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