| Home | Trees | Indices | Help |
|
|---|
|
|
1 # -*- coding: utf-8 -*-
2 #!/usr/bin/python
3 #############################################################################
4 #
5 # gmGP_Measurements
6 # ----------------------------------
7 #
8 # This panel will allow the input of measurements eg Blood pressure, weight
9 # height, INR, etc, or display things ' measurable' grabbed from other sections
10 # e.g Hb, wcc etc
11 #
12 # If you don't like it - change this code see @TODO!
13 #
14 # @author: Dr. Richard Terry
15 # @copyright: author
16 # @license: GPL v2 or later (details at http://www.gnu.org)
17 # @dependencies: wxPython (>= version 2.3.1)
18 # @change log:
19 # 09.08.2002 rterry initial implementation, untested
20 #
21 # @TODO: just about everything. Gui for demonstration purposes only
22 #
23 #
24 ############################################################################
25
26 import wx
27
28 import gmGuiElement_HeadingCaptionPanel #panel class to display top headings
29 import gmGuiElement_DividerCaptionPanel #panel class to display sub-headings or divider headings
30 import gmGuiElement_AlertCaptionPanel #panel to hold flashing alert messages
31 import gmEditArea #panel class holding editing
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 #Dummy data to simulate allergy items
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 #add the main heading
93 #--------------------
94 self.pasthistorypanelheading = gmGuiElement_HeadingCaptionPanel.HeadingCaptionPanel(self,-1," MEASUREMENTS ")
95 #----------------------------------
96 #dummy panel above the editing area
97 #----------------------------------
98 self.dummypanel1 = wxPanel(self,-1,wxDefaultPosition,wxDefaultSize,0)
99 self.dummypanel1.SetBackgroundColour(wxColor(222,222,222))
100 ##--------------------------------------------------
101 #now create the editarea specific for measurements
102 #--------------------------------------------------
103 #self.editarea = gmEditArea.EditArea(self,-1,measurement_prompts,gmSECTION_MEASUREMENTS)
104 self.editarea = gmEditArea.gmMeasurementEditArea(self, -1)
105 #self.dummypanel2 = wxPanel(self,-1,wxDefaultPosition,wxDefaultSize,0)
106 #self.dummypanel2.SetBackgroundColour(wxColor(222,222,222))
107 #-----------------------------------------------
108 #add the divider headings below the editing area
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 #add the list of significant problems
118 #
119 # c++ Default Constructor:
120 # wxListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition,
121 # const wxSize& size = wxDefaultSize, long style = wxLC_ICON,
122 # const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl")
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 # add some dummy data to the measurements list
134 #---------------------------------------------
135 self.measurement_types_list.InsertColumn(0, _("Type"))
136 self.measurement_types_list.InsertColumn(1, "")
137 #-------------------------------------------------------------
138 #loop through the measurementtypesdata array and add to the list control
139 #note the different syntax for the first coloum of each row
140 #i.e. here > self.measurement_types_list.InsertItem(x, data[0])!!
141 #-------------------------------------------------------------
142 m = gmListCtrlMapper(self.measurement_types_list)
143 m.SetData(measurementtypesdata)
144 self.typesMapper = m
145 #items = measurementtypesdata.items()
146 #for x in range(len(items)):
147 # key, data = items[x]
148 # self.measurement_types_list.InsertItem(x, data[0])
149 # self.measurement_types_list.SetItem(x, 1, data[1])
150 # self.measurement_types_list.SetItemData(x, key)
151 self.measurement_types_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
152 self.measurement_types_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
153 #-----------------------------------------
154 # add some dummy data to the values list
155 #-----------------------------------------
156 self.measurements_values_list.InsertColumn(0, "Date")
157 self.measurements_values_list.InsertColumn(1, "Value")
158 #-------------------------------------------------------------
159 #loop through the measurementtypesdata array and add to the list control
160 #note the different syntax for the first coloum of each row
161 #i.e. here > self.measurement_types_list.InsertItem(x, data[0])!!
162 #-------------------------------------------------------------
163 m = gmListCtrlMapper(self.measurements_values_list)
164 m.SetData(values_BP_data)
165 self.valueMapper = m
166 #items = values_BP_data.items()
167 #for x in range(len(items)):
168 # key, data = items[x]
169 # self.measurements_values_list.InsertItem(x, data[0])
170 # self.measurements_values_list.SetItem(x, 1, data[1])
171 # self.measurements_values_list.SetItemData(x, key)
172 self.measurements_values_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
173 self.measurements_values_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
174 #----------------------------------------
175 #add an alert caption panel to the bottom
176 #----------------------------------------
177 self.alertpanel = gmGuiElement_AlertCaptionPanel.AlertCaptionPanel(self,-1," Alerts ")
178 #---------------------------------------------
179 #add all elements to the main background sizer
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
210
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
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Feb 29 02:55:27 2020 | http://epydoc.sourceforge.net |