| Home | Trees | Indices | Help |
|
|---|
|
|
1 #!/usr/bin/python
2 #############################################################################
3 #
4 # gmGP_PastHistory.py
5 # ----------------------------------
6 #
7 # This panel will hold all the pasthistory details
8 #
9 # If you don't like it - change this code see @TODO!
10 #
11 # @author: Dr. Richard Terry
12 # @copyright: author
13 # @license: GPL v2 or later (details at http://www.gnu.org)
14 # @dependencies: wxPython (>= version 2.3.1)
15 # @change log:
16 # 10.06.2002 rterry initial implementation, untested
17 # 31.07.2002 rterry added to cvs
18 #
19 # @TODO:almost everything!
20 # contains dummy data only
21 #
22 ############################################################################
23 try:
24 import wxversion
25 import wx
26 except ImportError:
27 from wxPython import wx
28
29 import gmGuiElement_HeadingCaptionPanel #panel class to display top headings
30 import gmGuiElement_DividerCaptionPanel #panel class to display sub-headings or divider headings
31 import gmGuiElement_AlertCaptionPanel #panel to hold flashing alert messages
32 import gmEditArea #panel class holding editing prompts and text boxes
33 import gmPlugin_Patient
34
35 import gmDispatcher
36
37 from gmPatientHolder import PatientHolder
38 import gmPatientHolder
39
40 from gmListCtrlMapper import gmListCtrlMapper
41
42 import gmMultiColumnList
43
44 ID_SIGNIFICANTPASTHISTORYLIST = wxNewId()
45 ID_ACTIVEPROBLEMLIST = wxNewId()
46 gmSECTION_PASTHISTORY = 5
47 #------------------------------------
48 #Dummy data to simulate allergy items
49 #------------------------------------
50 activehistorydata = {
51 1 : ("1982","Hypertension"),
52 2 : ("1990","Ischaemic Heart Disease"),
53 3 : ("1995","NIDDM"),
54 4 : ("1998","Lymphoma"),
55 5:("1998","Chemotherapy"),
56 }
57 significanthistorydata = {
58 1 : ("1982","Hypertension"),
59 2 : ("1990","Acute myocardial infarction"),
60 3 : ("1994","CABG"),
61 4 : ("1995","Cholecystectomy"),
62 }
63
64 pasthistoryprompts = {
65 1:("Condition"),
66 2:("Notes"),
67 3:(""),
68 4:("Age Onset"),
69 5:("Year Onset"),
70 6:(""),
71 7:("Progress Notes"),
72 8:(""),
73 }
74
75
76
79 wxPanel.__init__(self, parent, id,wxDefaultPosition,wxDefaultSize,wxRAISED_BORDER)
80 PatientHolder.__init__(self)
81
82 #--------------------
83 #add the main heading
84 #--------------------
85 self.pasthistorypanelheading = gmGuiElement_HeadingCaptionPanel.HeadingCaptionPanel(self,-1, " PAST HISTORY ")
86 #----------------------------------
87 #dummy panel above the editing area
88 #----------------------------------
89 self.dummypanel1 = wxPanel(self,-1,wxDefaultPosition,wxDefaultSize,0)
90 self.dummypanel1.SetBackgroundColour(wxColor(222,222,222))
91 #--------------------------------------------------
92 #now create the editarea specific for past history
93 #-------------------------------------------------
94 #self.editarea = gmEditArea.EditArea(self,-1,pasthistoryprompts,gmSECTION_PASTHISTORY)
95 self.editarea = gmEditArea.gmPastHistoryEditArea(self,-1)
96 self.dummypanel2 = wxPanel(self,-1,wxDefaultPosition,wxDefaultSize,0)
97 self.dummypanel2.SetBackgroundColour(wxColor(222,222,222))
98 #-----------------------------------------------
99 #add the divider headings below the editing area
100 #-----------------------------------------------
101 self.significant_history_heading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,_("Significant Past Problems"))
102 self.sizer_significant_history_heading = wxBoxSizer(wxHORIZONTAL)
103 self.sizer_significant_history_heading.Add(self.significant_history_heading,1, wxEXPAND)
104 #--------------------------------------------------------------------------------------
105 #add the list of significant problems
106 #
107 # c++ Default Constructor:
108 # wxListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition,
109 # const wxSize& size = wxDefaultSize, long style = wxLC_ICON,
110 # const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl")
111 #
112 #--------------------------------------------------------------------------------------
113 #self.significant_problem_list = wxListCtrl(self, ID_SIGNIFICANTPASTHISTORYLIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
114 self.significant_problem_list = gmMultiColumnList.MultiColumnList(self, -1)
115 self.significant_problem_list.SetFont(wxFont(12,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
116 #self.active_problem_list = wxListCtrl(self, ID_ACTIVEPROBLEMLIST, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
117 self.active_problem_list = gmMultiColumnList.MultiColumnList(self, -1)
118 self.active_problem_list.SetFont(wxFont(12,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
119 #---------------------------------------------------------
120 # add some dummy data to the significant past problem list
121 #---------------------------------------------------------
122 #self.significant_problem_list.InsertColumn(0, _("year onset"))
123 #self.significant_problem_list.InsertColumn(1, _("Condition"))
124 #self.significant_problem_list.InsertColumn(2, _("Notes"))
125 #-------------------------------------------------------------------------
126 #loop through the significanthistorydata array and add to the list control
127 #note the different syntax for the first coloum of each row
128 #i.e. here > self.significant_problem_list.InsertStringItem(x, data[0])!!
129 #--------------------------------------------------------------------------
130 #self.significant_mapper = gmListCtrlMapper(self.significant_problem_list)
131 #self.significant_mapper.SetData( significanthistorydata)
132 self.significant_problem_list.SetData( significanthistorydata)
133 #items = significanthistorydata.items()
134 #for x in range(len(items)):
135 # key, data = items[x]
136 # gmLog.gmDefLog.Log (gmLog.lData, items[x])
137 # self.significant_problem_list.InsertStringItem(x, data[0])
138 # self.significant_problem_list.SetStringItem(x, 1, data[1])
139 # self.significant_problem_list.SetItemData(x, key)
140 # self.significant_problem_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
141 #self.significant_problem_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
142 #------------------------------------------------
143 #add some dummy data to the active problems list
144 #------------------------------------------------
145 #self.active_problem_list.InsertColumn(0, _("Year Onset"))
146 #self.active_problem_list.InsertColumn(1, _("Condition"))
147 #self.active_problem_list.InsertColumn(2, _("Notes"))
148 #-------------------------------------------------------------
149 #loop through the activehistorydata array and add to the list control
150 #note the different syntax for the first coloum of each row
151 #i.e. here > self.significant_problem_list.InsertStringItem(x, data[0])!!
152 #-------------------------------------------------------------
153 #self.active_mapper = gmListCtrlMapper(self.active_problem_list)
154 #self.active_mapper.SetData( activehistorydata)
155 self.active_problem_list.SetData( activehistorydata)
156
157 #items = activehistorydata.items()
158 #for x in range(len(items)):
159 # key, data = items[x]
160 # gmLog.gmDefLog.Log (gmLog.lData, items[x])
161 # self.active_problem_list.InsertStringItem(x, data[0])
162 # self.active_problem_list.SetStringItem(x, 1, data[1])
163 # self.active_problem_list.SetItemData(x, key)
164 #self.active_problem_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
165 #self.active_problem_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
166 #--------------------------------------------------------------------------------------
167 #add a richtext control or a wxTextCtrl multiline to display the class text information
168 #e.g. would contain say information re the penicillins
169 #--------------------------------------------------------------------------------------
170 self.active_problems_heading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,_("Active Problems"))
171 #----------------------------------------
172 #add an alert caption panel to the bottom
173 #----------------------------------------
174 self.alertpanel = gmGuiElement_AlertCaptionPanel.AlertCaptionPanel(self,-1," Alerts ")
175 #---------------------------------------------
176 #add all elements to the main background sizer
177 #---------------------------------------------
178 self.mainsizer = wxBoxSizer(wxVERTICAL)
179 self.mainsizer.Add(self.pasthistorypanelheading,0,wxEXPAND)
180 #self.mainsizer.Add(self.dummypanel1,0,wxEXPAND)
181 self.mainsizer.Add(self.editarea,6,wxEXPAND)
182 #self.mainsizer.Add(self.dummypanel2,0,wxEXPAND)
183 self.mainsizer.Add(self.significant_history_heading,0,wxEXPAND)
184 self.mainsizer.Add(self.significant_problem_list,4,wxEXPAND)
185 self.mainsizer.Add(self.active_problems_heading,0,wxEXPAND)
186 self.mainsizer.Add(self.active_problem_list,4,wxEXPAND)
187 self.mainsizer.Add(self.alertpanel,0,wxEXPAND)
188 self.SetSizer(self.mainsizer)
189 self.mainsizer.Fit
190 self.SetAutoLayout(True)
191 self.Show(True)
192
193 gmDispatcher.connect(self._updateUI, u'clin_history_updated')
194
195 self.significant_problem_list.addItemListener( self._significantPastItemSelected)
196
197 self.active_problem_list.addItemListener(self._activePastItemSelected)
198
200 clinical = self.get_past_history()
201 self._historyItemSelected( event ,clinical.get_significant_past_history() )
202
204 clinical = self.get_past_history()
205 self._historyItemSelected( event ,clinical.get_active_history() )
206
208 (selId, str) = event['item']
209 for (id, map) in list:
210 if id == selId:
211 clinical = self.get_past_history()
212 self.editarea.setInputFieldValues(map, id)
213
214
216 clinical = self.get_past_history()
217 significant_past = clinical.get_significant_past_history()
218 active_hx = clinical.get_active_history()
219 self.active_problem_list.SetData( self._get_list_map( active_hx) , fitClientSize = 1)
220 #self.significant_mapper.SetData( self._get_list_map( significant_past) )
221 self.significant_problem_list.SetData( self._get_list_map( significant_past), fitClientSize = 1 )
222
223
225 newMap = {}
226 for (id, map) in clin_history_list:
227 newMap[id] = self.get_past_history().short_format(map)
228 return newMap
229
230
231
232
233
234 #----------------------------------------------------------------------
236 """Plugin to encapsulate the immunisation window."""
237
238 __icons = {
239 """icon_hx_ship""": 'x\xdaU\x8e1\x0b\x830\x10\x85\xf7\xfe\x8a\x80\x82\x85@\xa8K\xb5\xdb\x11\xc1\
240 \xb17\xb8\xbcU\xa4S\xa5\xe9\xff\x9fz\x97\xc44^$\xe4{w\xef\x9d\xd7\xfd\xdb_\
241 \x96\xae\xbf\x1b\xf9\x1e\xa6\xef.\xeb\xd2\xc1l\xc6\xef\xeb\xf6\x8ed\x85\x9a\
242 \x9b\xd40F&\xe5a\x1c\xa6\xcc\xcd\xd1\x9f\x13\x9b\xd4W%r\x10~\x86\xcf+\x02ks\
243 \x1e\xe7)\x0f\xbb\xc4e\xb8U\xf6\xa3\x9f|\x0es\xce\x18H\x85T)1\x00\xcc\x8c \
244 \x07\x95\x18\xc0\x80e\xab\x8d"\x12\xac\xd8\x1b\x96\xc7_\xb42\x198\xe7Vv&9\
245 \xda\xab\xec\x00\x11\xceb\x8c\xc4\xc9\x1e\x87H\x02P-\x92\x1dm\xfaU\xb0@\x11I\
246 E\xbd\x08\x95\x1d\xf9:\xeci\x83\x84\xe6my\xb2\xae\xb2\xe8\xa4e\xbb\xadO\x14\
247 \xdd\x0f&\xf7\x8a\xe4'
248 }
249
252
255
257 if anIconID == None:
258 return self.__icons[_("""icon_hx_ship""")]
259 else:
260 if self.__icons.has_key(anIconID):
261 return self.__icons[anIconID]
262 else:
263 return self.__icons[_("""icon_hx_ship""")]
264
266 return PastHistoryPanel (parent, -1)
267 #----------------------------------------------------------------------
268 if __name__ == "__main__":
269 app = wxPyWidgetTester(size = (600, 600))
270 app.SetWidget(PastHistoryPanel, -1)
271 app.MainLoop()
272
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Mon Dec 5 04:00:22 2011 | http://epydoc.sourceforge.net |