Home | Trees | Indices | Help |
|
---|
|
1 # GNUmed ... 2 # licnese: GPL v2 or later 3 4 #=============================================================== 5 # $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/wxpython/patient/gmGP_ScratchPadRecalls.py,v $ 6 # $Id: gmGP_ScratchPadRecalls.py,v 1.19 2008-04-13 14:39:49 ncq Exp $ 7 __version__ = "$Revision: 1.19 $" 8 9 try: 10 import wxversion 11 import wx 12 except ImportError: 13 from wxPython import wx 14 15 import gmPlugin, gmShadow, gmDispatcher, gmPG2 16 from gmPatientHolder import PatientHolder 17 scratchpaddata = {} 18 recalldata = {} 19 20 query_scratchpad = "select id, timestamp, text, author from scratchpad where id_identity=%s" 21 query_recalls = "select id, timestamp, reason from recalls where id_identity=%s" 22 23 #===============================================================141 142 #===============================================================26 self.patientID=None 27 wxPanel.__init__(self,parent,id,wxDefaultPosition,wxDefaultSize,style = wxRAISED_BORDER) 28 PatientHolder.__init__(self) 29 self.parent=parent 30 self.create_widgets() 31 self.layout_widgets() 32 self.register_interests() 33 self._con = gmPG.ConnectionPool()34 35 3638 self.lbl_fgcolour = wxColor(0,0,131) 39 self.list_fgcolour = wxColor(255,0,0) 40 self.lbl_font = wxFont(12,wxSWISS,wxNORMAL, wxBOLD,False,'') 41 #add a label which is the heading for the text data entry 'Scratchpad' 42 self.scratchpad_lbl = wxStaticText(self,-1, _("Scratch Pad"),style = wxALIGN_CENTRE) #add static text control for the capion 43 self.scratchpad_lbl.SetForegroundColour(self.lbl_fgcolour) #set caption text colour 44 self.scratchpad_lbl.SetFont(self.lbl_font) 45 #Add a text control under that 46 self.scratchpad_txt = wxTextCtrl(self,-1,"",wxDefaultPosition,wxDefaultSize,0) 47 #Add a label for the recalls/reviews list 48 self.recalls_lbl = wxStaticText(self,-1, _("Recalls/Reviews"),style = wxALIGN_CENTRE) #add static text control for the capion 49 self.recalls_lbl.SetForegroundColour(self.lbl_fgcolour) #set caption text colour 50 self.recalls_lbl.SetFont(self.lbl_font) 51 52 #------------------------------------------------------------------------------ 53 #Add a simple listcontrol under that for scratchpad items 54 #------------------------------------------------------------------------------ 55 self.list_scratchpad = wxListCtrl(self, -1, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER) 56 self.list_scratchpad.SetForegroundColour(self.list_fgcolour) 57 self.list_scratchpad.InsertColumn(0, _("Logged")) 58 self.list_scratchpad.InsertColumn(1, "", wxLIST_FORMAT_LEFT) 59 60 #-------------------------------------------------------------------------- 61 #Add a simple listcontrol under that for recall items 62 #-------------------------------------------------------------------------- 63 self.list_recalls = wxListCtrl(self, -1, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER) 64 self.list_recalls.SetForegroundColour(self.list_fgcolour) 65 self.list_recalls.InsertColumn(0, _("Recall or Review")) 66 self.list_recalls.InsertColumn(1, _("Status"), wxLIST_FORMAT_LEFT)6769 self.sizer= wxBoxSizer(wxVERTICAL) 70 self.sizer.Add(self.scratchpad_lbl,0,wxEXPAND) 71 self.sizer.Add(self.scratchpad_txt,0,wxEXPAND) 72 #sizer.Add(10,10,0,wxEXPAND) 73 self.sizer.Add(self.list_scratchpad,30,wxEXPAND) 74 self.sizer.Add(self.recalls_lbl,0, wxEXPAND) 75 #sizer.Add(5,5,0,wxEXPAND) 76 self.sizer.Add(self.list_recalls,70,wxEXPAND) 77 self.SetSizer(self.sizer) #set the sizer 78 self.sizer.Fit(self) #set to minimum size as calculated by sizer 79 self.SetAutoLayout(True) #tell frame to use the sizer 80 self.Show(True)81 8587 self.list_scratchpad.DeleteAllItems() 88 if patid is None: 89 return 90 db = self._con.GetConnection('clinical') 91 cur = db.cursor() 92 cur.execute(query_recalls % str(patid)) 93 fetched = cur.fetchall() 94 for index in range(len(fetched)): 95 row=fetched[index] 96 id=row[0] 97 #date=row[1].strftime("%d.%m.%y") 98 date=str(row[1])[:10] 99 text=row[2] 100 self.list_recalls.InsertStringItem(index, date ) 101 self.list_recalls.SetStringItem(index, 1, text) 102 self.list_recalls.SetItemData(index, id) 103 self.list_recalls.SetColumnWidth(0, wxLIST_AUTOSIZE) 104 self.list_recalls.SetColumnWidth(1, 200)105 106108 self.list_scratchpad.DeleteAllItems() 109 self.scratchpad_txt.SetValue("") 110 if patid is None: 111 return 112 db = self._con.GetConnection('clinical') 113 cur = db.cursor() 114 cur.execute(query_scratchpad % str(patid)) 115 fetched = cur.fetchall() 116 for index in range(len(fetched)): 117 row=fetched[index] 118 id=row[0] 119 #date=row[1].strftime("%d.%m.%y") 120 date=str(row[1])[:10] 121 reason=row[2] 122 self.list_scratchpad.InsertStringItem(index, date) 123 self.list_scratchpad.SetStringItem(index, 1, reason) 124 self.list_scratchpad.SetItemData(index, id) 125 self.list_scratchpad.SetColumnWidth(0, wxLIST_AUTOSIZE) 126 self.list_scratchpad.SetColumnWidth(1, 200)127 128130 "must be executed when the current patient changes. Updates all widgets accordingly" 131 if kwargs is None: 132 #new patient, blank widgets 133 self.UpdateRecalls(None) 134 self.UpdateSCratchpad(None) 135 return 136 137 kwds = kwargs['kwds'] 138 patid = kwds['ID'] 139 self.UpdateRecalls(patid) 140 self.UpdateScratchpad(patid)144 """ 145 Plugin to encapsulate the scratch pad and recalls 146 """ 149157 158 #=============================================================== 159 # Main 160 #=============================================================== 161 if __name__ == "__main__": 162 app = wxPyWidgetTester(size = (400, 500)) 163 app.SetWidget(ScratchPadRecalls, -1) 164 app.MainLoop() 165 #=============================================================== 166 # $Log: gmGP_ScratchPadRecalls.py,v $ 167 # Revision 1.19 2008-04-13 14:39:49 ncq 168 # - no more old style logging 169 # 170 # Revision 1.18 2008/01/30 14:03:42 ncq 171 # - use signal names directly 172 # - switch to std lib logging 173 # 174 # Revision 1.17 2006/05/15 13:42:02 ncq 175 # - use new signals for activating_patient/patient_selected 176 # 177 # Revision 1.16 2005/09/26 18:01:53 ncq 178 # - use proper way to import wx26 vs wx2.4 179 # - note: THIS WILL BREAK RUNNING THE CLIENT IN SOME PLACES 180 # - time for fixup 181 # 182 # Revision 1.15 2004/07/18 20:30:54 ncq 183 # - wxPython.true/false -> Python.True/False as Python tells us to do 184 # 185 # Revision 1.14 2003/11/17 10:56:42 sjtan 186 # 187 # synced and commiting. 188 # 189 # Revision 1.2 2003/10/25 08:29:40 sjtan 190 # 191 # uses gmDispatcher to send new currentPatient objects to toplevel gmGP_ widgets. Proprosal to use 192 # yaml serializer to store editarea data in narrative text field of clin_root_item until 193 # clin_root_item schema stabilizes. 194 # 195 # Revision 1.1 2003/10/23 06:02:40 sjtan 196 # 197 # manual edit areas modelled after r.terry's specs. 198 # 199 # Revision 1.13 2003/04/05 00:39:23 ncq 200 # - "patient" is now "clinical", changed all the references 201 # 202 # Revision 1.12 2003/02/02 13:37:27 ncq 203 # - typo 204 # 205 # Revision 1.11 2003/02/02 13:36:52 ncq 206 # - cvs metadata keywords 207 # 208151 mwm = self.gb['clinical.manager'] 152 mwm.RegisterRightSide ('scratchpad_recalls', ScratchPadRecalls 153 (mwm.righthalfpanel, -1), position=2)154
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Sat Aug 3 03:57:10 2013 | http://epydoc.sourceforge.net |