1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 try:
26 import wxversion
27 import wx
28 except ImportError:
29 from wxPython import wx
30
31 import gmGuiElement_HeadingCaptionPanel
32 import gmGuiElement_DividerCaptionPanel
33 import gmGuiElement_AlertCaptionPanel
34 import gmEditArea
35 import gmPlugin_Patient
36 import gmI18N
37 from gmListCtrlMapper import gmListCtrlMapper
38
39 import gmPatientHolder
40
41 ID_MEASUREMENTVALUESLIST = wxNewId()
42 gmSECTION_MEASUREMENTS = 10
43 ID_MEASURMENTTYPESLIST = wxNewId()
44
45
46
47
48 measurementtypesdata = {
49 1 : ("Blood Pressure",""),
50 2 : ("Height",""),
51 3 : ("Weight",""),
52 4 : ("INR",""),
53 5 : ("Etc, Etc....",""),
54 }
55
56 values_BP_data = {
57 1 : ("01/10/2001","140/80"),
58 2 : ("19/01/2002","180/105"),
59 3 : ("21/05/2002","156/84"),
60 4 : ("08/08/2002","170/110"),
61 }
62
63 values_INR_data = {
64 1 : ("01/10/2001","1.1"),
65 2 : ("19/01/2002","2.7"),
66 3 : ("21/05/2002","3.5"),
67 4 : ("08/08/2002","2.8"),
68 }
69 values_Weight_data = {
70 1 : ("01/10/2001","79.8"),
71 2 : ("19/01/2002","88.5"),
72 3 : ("21/05/2002","87.4"),
73 4 : ("08/08/2002","87.3"),
74 }
75 values_Height_data = {
76 1 : ("01/10/2001","142"),
77 2 : ("19/01/2002","148"),
78 3 : ("21/05/2002","149"),
79 4 : ("08/08/2002","152"),
80 }
81 measurement_prompts = {
82 1:("Type"),
83 2:("Value"),
84 3:("Date"),
85 4:("Comment"),
86 5:("Progress Notes"),
87 6:(""),
88 }
89
92 wxPanel.__init__(self, parent, id, wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER)
93 gmPatientHolder.PatientHolder.__init__(self)
94
95
96
97 self.pasthistorypanelheading = gmGuiElement_HeadingCaptionPanel.HeadingCaptionPanel(self,-1," MEASUREMENTS ")
98
99
100
101 self.dummypanel1 = wxPanel(self,-1,wxDefaultPosition,wxDefaultSize,0)
102 self.dummypanel1.SetBackgroundColour(wxColor(222,222,222))
103
104
105
106
107 self.editarea = gmEditArea.gmMeasurementEditArea(self, -1)
108
109
110
111
112
113 self.measurementtypes_heading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,"Type")
114 self.measurements_values_heading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,"Values")
115 self.sizer_measurements_types_heading = wxBoxSizer(wxHORIZONTAL)
116 self.sizer_measurements_types_heading.Add(self.measurementtypes_heading,1, wxEXPAND)
117 self.sizer_measurements_types_heading.Add(self.measurements_values_heading,1, wxEXPAND)
118
119
120
121
122
123
124
125
126
127
128 self.measurement_types_list = wxListCtrl(self, ID_MEASURMENTTYPESLIST, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
129 self.measurement_types_list.SetFont(wxFont(10,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
130 self.measurements_values_list = wxListCtrl(self, ID_MEASUREMENTVALUESLIST, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
131 self.measurements_values_list.SetFont(wxFont(10,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
132 self.sizer_measurementtypes_values = wxBoxSizer(wxHORIZONTAL)
133 self.sizer_measurementtypes_values.Add(self.measurement_types_list,4,wxEXPAND)
134 self.sizer_measurementtypes_values.Add(self.measurements_values_list,6, wxEXPAND)
135
136
137
138 self.measurement_types_list.InsertColumn(0, _("Type"))
139 self.measurement_types_list.InsertColumn(1, "")
140
141
142
143
144
145 m = gmListCtrlMapper(self.measurement_types_list)
146 m.SetData(measurementtypesdata)
147 self.typesMapper = m
148
149
150
151
152
153
154 self.measurement_types_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
155 self.measurement_types_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
156
157
158
159 self.measurements_values_list.InsertColumn(0, "Date")
160 self.measurements_values_list.InsertColumn(1, "Value")
161
162
163
164
165
166 m = gmListCtrlMapper(self.measurements_values_list)
167 m.SetData(values_BP_data)
168 self.valueMapper = m
169
170
171
172
173
174
175 self.measurements_values_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
176 self.measurements_values_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
177
178
179
180 self.alertpanel = gmGuiElement_AlertCaptionPanel.AlertCaptionPanel(self,-1," Alerts ")
181
182
183
184 self.mainsizer = wxBoxSizer(wxVERTICAL)
185 self.mainsizer.Add(self.pasthistorypanelheading,0,wxEXPAND)
186 self.mainsizer.Add(self.dummypanel1,0,wxEXPAND)
187 self.mainsizer.Add(self.editarea,1,wxEXPAND)
188 self.mainsizer.Add(self.sizer_measurements_types_heading,0,wxEXPAND)
189 self.mainsizer.Add(self.sizer_measurementtypes_values,2,wxEXPAND)
190 self.mainsizer.Add(self.alertpanel,0,wxEXPAND)
191 self.SetSizer(self.mainsizer)
192 self.mainsizer.Fit
193 self.SetAutoLayout(True)
194 self.Show(True)
195
196
197
199 """
200 Plugin to encapsulate the prescriptions window
201 """
202
203 __icons = {
204 """icon_Set_Square""": 'x\xda\xd3\xc8)0\xe4\nV74S\x00"S\x05Cu\xae\xc4`\xf5|\x85d\x05\xa7\x9c\xc4\
205 \xe4l0O\x0f\xc8S6\xb70w60\x00\xf3\xfda|s\x0b0?\x02\xc4w\xb3p\x83\xc9+\x00\
206 \xf9~\xf9y\xa9P\x8e\x82\x82^D\x84\x9e\x02\x14 \x0b\xe6c\x11\xd4\xcb\'\xac2\
207 \x1f\r@\\\x19\x81\n\xa1\x82\xa8\x00\xb7\xa0?\x10\xe4\xeb\xe9\xe5\xfbC\x015\
208 \xdcI}\x95z\x00\xc7\xd5_\x1b'
209 }
210
212 return 'Measurements'
213
215 return ('view', '&Measurements')
216
218 if anIconID == None:
219 return self.__icons[_("""icon_Set_Square""")]
220 else:
221 if self.__icons.has_key(anIconID):
222 return self.__icons[anIconID]
223 else:
224 return self.__icons[_("""icon_Set_Square""")]
225
228
229
230 if __name__ == "__main__":
231 app = wxPyWidgetTester(size = (600, 600))
232 app.SetWidget(MeasurementPanel, -1)
233 app.MainLoop()
234