Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

PatientList.java

Go to the documentation of this file.
00001 import java.sql.SQLException;
00002 
00003 public class PatientList extends Widget
00004 { 
00005   public ActionButton action;
00006   public PatientEditor editor;
00007   public int patient_id = 0;  
00008         
00009         public static final int EDIT = 1;
00010         public static final int DELETE = 2;
00011                 
00012         public PatientList(String prefix, Form form)
00013         {
00014           super(prefix, form);
00015           action = new ActionButton(n("action"), form);
00016           addChild(action);
00017         }
00018         
00019         public void loadValues()
00020         {
00021     super.loadValues();
00022 
00023     int a = toInt(loadAttribute("patient_id"),0);
00024     boolean editing = a != 0;
00025     
00026     for(;;)
00027     if (editing)
00028     {
00029       if (a != 0) patient_id = a;
00030       editor = new PatientEditor(patient_id, n("editor"), form);
00031       addChild(editor);
00032       if (a != 0) editor.loadValues(); else editor.loadDefaults(); 
00033       if (editor.done)
00034         patient_id = 0;
00035       else
00036       {
00037         modalChild = editor;
00038         editor.modal = true;
00039       }
00040       return;
00041     }   
00042     else
00043     {   
00044       switch (action.action)
00045       {
00046         case EDIT:
00047           editing = true;
00048           patient_id = action.param;
00049         break;
00050         case DELETE:
00051           deletePatient(action.param);
00052           return;  
00053         default:
00054           return;
00055       }
00056     }
00057         }
00058         
00059         public void deletePatient(int id)
00060         {
00061           Query q = new Query(form.connectDb(), form.pw);
00062           try
00063           {
00064             String where1 = " WHERE patient_id = " + id;
00065             String where2 = " WHERE appointment_id IN (SELECT appointment_id FROM appointments" + where1 + ")";
00066             q.execute(
00067               "DELETE FROM appointment_services" + where2 + ";\n" +
00068               "DELETE FROM diagnoses" + where2 + ";\n" +
00069               "DELETE FROM referrals" + where2 + ";\n" +
00070               "DELETE FROM appointments" + where1 + ";\n" +
00071               "DELETE FROM patients" + where1 + ";\n"
00072             );
00073           }
00074           finally
00075           {
00076             q.close();
00077           }
00078         }       
00079         
00080         public void display(boolean hidden)
00081         {
00082     super.display(hidden);
00083   
00084     printAttribute("patient_id", "" + patient_id);
00085 
00086     if (hidden || modalChild != null) return;
00087 
00088     p("<p align=center>");
00089     action.display("Create new patient...", EDIT, -1);
00090     p("</p>");
00091 
00092     Query q = new Query(form.connectDb(), form.pw);
00093     try
00094     {
00095       q.query("\n"+
00096 "        SELECT t.name, t.address, t.phone, c.name || ': ' || p.description, patient_id\n"+
00097 "        FROM patients AS t\n"+
00098 "        INNER JOIN insurance_policies AS p USING (insurance_policy_id)\n"+
00099 "        INNER JOIN insurance_companies AS c USING (insurance_company_id)\n"+
00100 "        ORDER BY t.name\n"+
00101 "      ");
00102       
00103       if (q.r != null)
00104       {
00105         p("<table border=1>\n");
00106         p("<tr><td>Name</td><td>Phone</td><td>Address</td><td>Insurance</td><td>&nbsp;</td></tr>\n");
00107         while(q.r.next())
00108         {
00109           p("<tr><td>" + q.r.getString(1) + "</td><td>" + q.r.getString(2)
00110             + "</td><td>" + q.r.getString(3) + "</td><td>" + q.r.getString(4)
00111             + "</td><td>");
00112           
00113           action.display("Edit", EDIT, q.r.getInt(5));
00114           action.display("Delete", DELETE, q.r.getInt(5));
00115             
00116           p("</td></tr>\n");
00117         }
00118         p("</table>\n");
00119       }
00120     }
00121     catch(SQLException e)
00122     {
00123       p(e);
00124     }
00125     finally
00126     {
00127       q.close();
00128     }
00129   }
00130 };

Generated on Mon Mar 6 23:34:34 2006 by  doxygen 1.4.4