1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 __version__ = "$Revision: 1.11 $"
22 __author__ = "R.Terry <rterry@gnumed.net>, H.Herb <hherb@gnumed.net>, S.Tan"
23
24 try:
25 import wxversion
26 import wx
27 except ImportError:
28 from wxPython import wx
29
30 import gmEditArea, gmPlugin_Patient
31 import gmGuiElement_HeadingCaptionPanel
32 import gmGuiElement_DividerCaptionPanel
33 import gmGuiElement_AlertCaptionPanel
34 from gmPatientHolder import PatientHolder
35
36
37 ID_MEMBERCONDITIONSLIST = wxNewId()
38 ID_FAMILYMEMBERSLIST = wxNewId()
39 ID_IMMUNISATIONS = wxNewId()
40 ID_ALL_MENU = wxNewId()
41 gmSECTION_FAMILYHISTORY = 4
42
43
44
45 familymemberdata = {
46 1 : ("Mother",""),
47 2 : ("General Family History",""),
48 3 : ("Freda -Aunt",""),
49 }
50 membersconditionsdata = {
51 1 : ("Acute myocardial infarction aged 73, caused death 73",""),
52 2 : ("Hypertension age onset 40",""),
53 }
54
55
56 -class FamilyHistoryPanel(wxPanel, PatientHolder):
57
58 - def __init__(self, parent,id):
59 wxPanel.__init__(self, parent, id,wxDefaultPosition,wxDefaultSize,wxRAISED_BORDER)
60 PatientHolder.__init__(self)
61
62 self.FamilyHistoryPanelheading = gmGuiElement_HeadingCaptionPanel.HeadingCaptionPanel(self,-1," FAMILY AND SOCIAL HISTORY ")
63
64 self.editarea = gmEditArea.gmFamilyHxEditArea(self, -1)
65
66
67
68
69 self.family_members_heading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,"Family Members")
70 self.members_disease_conditions = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,"Condition")
71 self.sizer_divider_members_condition = wxBoxSizer(wxHORIZONTAL)
72 self.sizer_divider_members_condition.Add(self.family_members_heading,1, wxEXPAND)
73 self.sizer_divider_members_condition.Add( self.members_disease_conditions,1, wxEXPAND)
74
75
76
77
78
79
80
81
82
83 self.family_members_list = wxListCtrl(self, ID_FAMILYMEMBERSLIST, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
84 self.family_members_list.SetFont(wxFont(12,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
85 self.member_conditions_list = wxListCtrl(self,ID_MEMBERCONDITIONSLIST, wxDefaultPosition, wxDefaultSize,wxLC_REPORT|wxLC_NO_HEADER|wxSUNKEN_BORDER)
86 self.member_conditions_list.SetFont(wxFont(12,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
87 self.sizer_members_conditions = wxBoxSizer(wxHORIZONTAL)
88 self.sizer_members_conditions.Add(self.family_members_list,4,wxEXPAND)
89 self.sizer_members_conditions.Add(self.member_conditions_list,6, wxEXPAND)
90
91
92
93 self.family_members_list.InsertColumn(0, "Member")
94 self.family_members_list.InsertColumn(1, "null")
95
96
97
98
99
100 items = familymemberdata.items()
101 for x in range(len(items)):
102 key, data = items[x]
103
104 self.family_members_list.InsertStringItem(x, data[0])
105 self.family_members_list.SetStringItem(x, 1, data[1])
106 self.family_members_list.SetItemData(x, key)
107 self.family_members_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
108
109
110
111 self.member_conditions_list.InsertColumn(0, "Condition")
112 self.member_conditions_list.InsertColumn(1, "null")
113
114
115
116
117
118 items = membersconditionsdata.items()
119 for x in range(len(items)):
120 key, data = items[x]
121
122 self.member_conditions_list.InsertStringItem(x, data[0])
123 self.member_conditions_list.SetStringItem(x, 1, data[1])
124 self.member_conditions_list.SetItemData(x, key)
125
126 self.member_conditions_list.SetColumnWidth(0, wxLIST_AUTOSIZE)
127 self.member_conditions_list.SetColumnWidth(1, wxLIST_AUTOSIZE)
128
129
130
131 self.social_history_subheading = gmGuiElement_DividerCaptionPanel.DividerCaptionPanel(self,-1,"Social History")
132 self.txt_social_history = wxTextCtrl(self, 30,
133 "Born in QLD, son of an itinerant drover. Mother worked as a bush nurse. "
134 "Two brothers, Fred and Peter. Left school aged 15yrs, apprentice fitter "
135 "then worked in industry for 10ys. At 22yrs age married Joan, two children"
136 "Peter b1980 and Rachaelb1981. Retired in 1990 due to receiving a fortune.",
137 wxDefaultPosition,wxDefaultSize, style=wxTE_MULTILINE|wxNO_3D|wxSIMPLE_BORDER)
138 self.txt_social_history.SetInsertionPoint(0)
139 self.txt_social_history.SetFont(wxFont(12,wxSWISS, wxNORMAL, wxNORMAL, False, ''))
140
141
142
143 self.alertpanel = gmGuiElement_AlertCaptionPanel.AlertCaptionPanel(self,-1," Alerts ")
144
145
146
147 self.mainsizer = wxBoxSizer(wxVERTICAL)
148 self.mainsizer.Add(self.FamilyHistoryPanelheading,0,wxEXPAND)
149
150 self.mainsizer.Add(self.editarea,6,wxEXPAND)
151 self.mainsizer.Add(self.sizer_divider_members_condition,0,wxEXPAND)
152 self.mainsizer.Add(self.sizer_members_conditions,4,wxEXPAND)
153 self.mainsizer.Add(self.social_history_subheading,0,wxEXPAND)
154 self.mainsizer.Add(self.txt_social_history,4,wxEXPAND)
155 self.mainsizer.Add(self.alertpanel,0,wxEXPAND)
156 self.SetSizer(self.mainsizer)
157 self.mainsizer.Fit (self)
158 self.SetAutoLayout(True)
159 EVT_SIZE (self, self.OnSize)
160
161 - def OnSize (self, event):
162 w, h = event.GetSize ()
163 self.mainsizer.SetDimension (0, 0, w, h)
164
165 -class gmGP_FamilyHistory(gmPlugin_Patient.wxPatientPlugin):
166 """Plugin to encapsulate the family history window."""
167
168 __icons = {
169 """icon_two_people""": 'x\xda\x9d\x90\xb1\x0e\x83 \x10\x86w\x9f\xe2\x12@\x9b\x98\x10X\xaa#\x81\xc4\
170 \xb1\x0c.\xae\xc6t\xaa)}\xff\xa9w\x07\xd8\xb4n\x05\xf5\xf2}w?$^\xf6\x97m\xe6\
171 \xce^\x81\x1e\x0b\xb6k\xd6\xb9\x93\xb0\x81\xdf\xd7\xed\xc1\xd4"\x89a\x1c\x82\
172 1\xcc\x82x\x1a\x8d\x99F\xe6\x85\xd8\xe0\n\xb9\x1f+\x97\xbe\xcey2\xcc)\xe7C\
173 \xed\x03\xf2-=\xef\x0c.\x87\xa7P\x9a\xaa^V\xc2=\xb1\x1f}\xf05\xfc\xbd\x8a\
174 \xd4Z3\xe6\x9a\xa5^p\x93[\x12\xd52\x99R\xe2A\xac\x1f\t\xa9\x1c\x97\x8e3c\x8c\
175 =\xbe\xe0\x9c\x13\xc2\xb9C\xba\x08(A:\tU\x82\x94\x92%H\xa8R\xb0\x14\xb8\x95R\
176 \xf8-\x17I\x1a\x01rh\x7f$\'N\xb2\xc5}\xc8\x0c\x7f\xcb\xd3\xaf\xd3o\x85>c\\'
177 }
178
180 return 'Family History Window'
181
182
184 return ('view', '&Family History')
185
186 - def GetIconData(self, anIconID = None):
187 if anIconID == None:
188 return self.__icons[_("""icon_two_people""")]
189 else:
190 if self.__icons.has_key(anIconID):
191 return self.__icons[anIconID]
192 else:
193 return self.__icons[_("""icon_two_people""")]
194
197
198
199
200 if __name__ == "__main__":
201 app = wxPyWidgetTester(size = (600, 600))
202 app.SetWidget(FamilyHistoryPanel, -1)
203 app.MainLoop()
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240