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

PatientEditor.java

Go to the documentation of this file.
00001 import java.sql.SQLException;
00002 import java.sql.PreparedStatement;
00003 
00004 public class PatientEditor extends Widget
00005 { 
00006         public static final int SAVE = 1;
00007         public static final int CANCEL = 2;
00008         
00009         public int patient_id;
00010         public PolicySelect policy;
00011         public TextBox name;
00012         public TextBox address;
00013         public TextBox phone;
00014         
00015         public ActionButton action;
00016         public boolean done = false;
00017         
00018         public PatientEditor(int patient_id, String prefix, Form form)
00019         {
00020           super(prefix, form);
00021           this.patient_id = patient_id;
00022     action = new ActionButton(n("action"), form);
00023     name = new TextBox(0,20,n("name"), form);
00024     phone = new TextBox(0,20,n("phone"), form);
00025     address = new TextBox(2,20,n("address"), form);
00026     policy = new PolicySelect(n("policy"), form);
00027     addChild(action);
00028     addChild(name);
00029     addChild(phone);
00030     addChild(address);
00031     addChild(policy);
00032         }
00033         
00034         public void loadValues()
00035         {
00036     super.loadValues();
00037     
00038     if (action.action == SAVE)
00039     {
00040       if (save()) done = true;
00041     }
00042     else if (action.action == CANCEL)
00043     {
00044       done = true;
00045     }
00046         }
00047         
00048         public void loadDefaults()
00049         {
00050           super.loadDefaults();
00051           Query q = new Query(form.connectDb(), form.pw);
00052           try
00053           {
00054             q.query("SELECT name, phone, address, insurance_policy_id FROM patients WHERE patient_id = " + patient_id);
00055             if (q.r == null || !q.r.next()) return;
00056       name.text = q.r.getString(1);
00057       phone.text = q.r.getString(2);
00058       address.text = q.r.getString(3);
00059       policy.id = new Integer(q.r.getInt(4));
00060           }
00061           catch (SQLException e)
00062           {
00063             p(e);
00064           }
00065           finally
00066           {
00067             q.close();
00068           }
00069         }
00070 
00071         protected boolean save()
00072         {
00073           form.connectDb();
00074           Query q = new Query(form.conn, form.pw);
00075           try
00076           {
00077             PreparedStatement s;
00078             if (patient_id > 0)
00079             {
00080               s = form.conn.prepareStatement("\n"+
00081 "               UPDATE patients SET name = ?, phone = ?, \n"+
00082 "                 address = ?, insurance_policy_id = ?\n"+
00083 "               WHERE patient_id = " + patient_id);
00084             }
00085             else
00086             {
00087               s = form.conn.prepareStatement("\n"+
00088 "               INSERT INTO patients (name, phone, address, insurance_policy_id)\n"+
00089 "               VALUES (?,?,?,?)");
00090             }
00091             try
00092             {
00093               s.setString(1, name.text);
00094               s.setString(2, phone.text);
00095               s.setString(3, address.text);
00096               s.setInt(4, policy.id.intValue());
00097               s.executeUpdate();
00098             }
00099             finally
00100             {
00101               s.close();
00102             }
00103             
00104             if (patient_id <= 0)
00105             {
00106               q.query("SELECT currval('patients_patient_id_seq')");
00107               if (q != null && !q.r.next())
00108                 patient_id = q.r.getInt(1);
00109             }
00110           }
00111           catch (SQLException e)
00112           {
00113             p(e);
00114           }
00115           catch (Throwable e)
00116           {
00117             Query.rethrow(e);
00118           }
00119           finally
00120           {
00121             q.close();
00122           }
00123           return true;
00124         }
00125         
00126         public void display(boolean hidden)
00127         {
00128     super.display(hidden);
00129     
00130     if (hidden || modalChild != null) return;
00131     
00132     p(
00133 "<table>\n"+
00134 "<tr>\n"+
00135 "  <td valign=top>Name:</td>\n"+
00136 "  <td>"); name.display(); p("</td>\n"+
00137 "</tr>\n"+
00138 "<tr>\n"+
00139 "  <td valign=top>Phone:</td>\n"+
00140 "  <td>"); phone.display(); p("</td>\n"+
00141 "</tr>\n"+
00142 "<tr>\n"+
00143 "  <td valign=top>Address:</td>\n"+
00144 "  <td>"); address.display(); p("</td>\n"+
00145 "</tr>\n"+
00146 "<tr>\n"+
00147 "  <td valign=top>Insurance Policy:</td>\n"+
00148 "  <td>"); policy.display(); p("</td>\n"+
00149 "</tr>\n"+
00150 "<tr>\n"+
00151 "  <td>&nbsp;</td>\n"+
00152 "  <td>\n"+
00153 "  "); action.display("Save Changes", SAVE); action.display("Cancel", CANCEL); 
00154 p("\n"+
00155 "  </td>\n"+
00156 "</td>\n"+
00157 "</table>\n"+
00158 "");
00159         }
00160 };

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