1
2
3
4
5 import wx
6
7
8
9
10
11
14
15 from Gnumed.wxpython import gmDateTimeInput, gmMeasurementWidgets, gmProviderInboxWidgets, gmEMRStructWidgets
16
17
18 kwds["style"] = wx.NO_BORDER|wx.TAB_TRAVERSAL
19 wx.Panel.__init__(self, *args, **kwds)
20 self._PRW_test = gmMeasurementWidgets.cMeasurementTypePhraseWheel(self, -1, "", style=wx.NO_BORDER)
21 self._BTN_test_info = wx.Button(self, -1, _("Info"), style=wx.BU_EXACTFIT)
22 self._TCTRL_result = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
23 self._PRW_units = gmMeasurementWidgets.cUnitPhraseWheel(self, -1, "", style=wx.NO_BORDER)
24 self._PRW_abnormality_indicator = gmMeasurementWidgets.cTestResultIndicatorPhraseWheel(self, -1, "", style=wx.NO_BORDER)
25 self._DPRW_evaluated = gmDateTimeInput.cFuzzyTimestampInput(self, -1, "", style=wx.NO_BORDER)
26 self._TCTRL_note_test_org = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
27 self._PRW_intended_reviewer = gmProviderInboxWidgets.cProviderPhraseWheel(self, -1, "", style=wx.NO_BORDER)
28 self._PRW_problem = gmEMRStructWidgets.cEpisodeSelectionPhraseWheel(self, -1, "", style=wx.NO_BORDER)
29 self._TCTRL_narrative = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
30 self._CHBOX_review = wx.CheckBox(self, -1, _("&Sign as:"))
31 self._CHBOX_abnormal = wx.CheckBox(self, -1, _("&Abnormal"))
32 self._CHBOX_relevant = wx.CheckBox(self, -1, _("&Relevant"))
33 self._TCTRL_review_comment = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
34 self._TCTRL_normal_min = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
35 self._TCTRL_normal_max = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
36 self._TCTRL_normal_range = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
37 self._TCTRL_target_min = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
38 self._TCTRL_target_max = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
39 self._TCTRL_target_range = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
40 self._TCTRL_norm_ref_group = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
41
42 self.__set_properties()
43 self.__do_layout()
44
45 self.Bind(wx.EVT_BUTTON, self._on_test_info_button_pressed, self._BTN_test_info)
46 self.Bind(wx.EVT_CHECKBOX, self._on_review_box_checked, self._CHBOX_review)
47
48
50
51 self.SetSize((610, 370))
52 self._PRW_test.SetToolTipString(_("The type of measurement or test this result is about."))
53 self._PRW_test.SetFocus()
54 self._BTN_test_info.SetToolTipString(_("Show a web search on this test type."))
55 self._TCTRL_result.SetToolTipString(_("The result of the measurement. Numeric and alphanumeric input is allowed."))
56 self._PRW_units.SetToolTipString(_("The units this result comes in."))
57 self._PRW_abnormality_indicator.SetToolTipString(_("Enter an indicator for the degree of abnormality.\nOften +, -, !, ?, () or any combination thereof."))
58 self._DPRW_evaluated.SetToolTipString(_("When was this result actually obtained. Usually the same or between the time for \"sample taken\" and \"result reported\"."))
59 self._TCTRL_note_test_org.SetToolTipString(_("A technical comment on the result.\nUsually by the entering Medical Technical Assistant."))
60 self._PRW_intended_reviewer.SetToolTipString(_("The doctor in charge who will have to assess and sign off this result."))
61 self._PRW_problem.SetToolTipString(_("The medical problem this test results pertains to."))
62 self._TCTRL_narrative.SetToolTipString(_("A clinical assessment of the measurement.\nUsually by a doctor."))
63 self._CHBOX_review.SetToolTipString(_("Check if you want to save a review."))
64 self._CHBOX_abnormal.SetToolTipString(_("Check if this result is technically abnormal."))
65 self._CHBOX_abnormal.Enable(False)
66 self._CHBOX_relevant.SetToolTipString(_("Check if this result is clinically relevant."))
67 self._CHBOX_relevant.Enable(False)
68 self._TCTRL_review_comment.SetToolTipString(_("A comment on this review."))
69 self._TCTRL_review_comment.Enable(False)
70 self._TCTRL_normal_min.SetToolTipString(_("The lower bound of the range of technically normal values."))
71 self._TCTRL_normal_max.SetToolTipString(_("The upper bound of the range of technically normal values."))
72 self._TCTRL_normal_range.SetToolTipString(_("An alphanumeric range of technically normal values."))
73 self._TCTRL_target_min.SetToolTipString(_("The lower bound of the target range for this test in this patient."))
74 self._TCTRL_target_max.SetToolTipString(_("The lower bound of the target range for this test in this patient."))
75 self._TCTRL_target_range.SetToolTipString(_("An alphanumeric target range for this test in this patient."))
76 self._TCTRL_norm_ref_group.SetToolTipString(_("The reference group the normal range for this value pertains to."))
77
78
80
81 _gszr_main = wx.FlexGridSizer(17, 2, 1, 3)
82 __szr_range_target = wx.BoxSizer(wx.HORIZONTAL)
83 __szr_range_normal = wx.BoxSizer(wx.HORIZONTAL)
84 __szr_review = wx.BoxSizer(wx.HORIZONTAL)
85 __szr_result = wx.BoxSizer(wx.HORIZONTAL)
86 __szr_test = wx.BoxSizer(wx.HORIZONTAL)
87 _gszr_main.Add((20, 20), 0, wx.EXPAND, 0)
88 __lbl_result_details = wx.StaticText(self, -1, _("Measurement details"))
89 __lbl_result_details.SetForegroundColour(wx.Colour(95, 159, 159))
90 _gszr_main.Add(__lbl_result_details, 0, wx.ALIGN_CENTER_VERTICAL, 0)
91 __lbl_test = wx.StaticText(self, -1, _("Test"))
92 __lbl_test.SetForegroundColour(wx.Colour(204, 50, 50))
93 _gszr_main.Add(__lbl_test, 0, wx.ALIGN_CENTER_VERTICAL, 0)
94 __szr_test.Add(self._PRW_test, 1, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
95 __szr_test.Add(self._BTN_test_info, 0, wx.ALIGN_CENTER_VERTICAL, 0)
96 _gszr_main.Add(__szr_test, 1, wx.EXPAND, 0)
97 __lbl_result = wx.StaticText(self, -1, _("Value"))
98 __lbl_result.SetForegroundColour(wx.Colour(204, 50, 50))
99 _gszr_main.Add(__lbl_result, 0, wx.ALIGN_CENTER_VERTICAL, 0)
100 __szr_result.Add(self._TCTRL_result, 2, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
101 __lbl_unit = wx.StaticText(self, -1, _("Units"))
102 __lbl_unit.SetForegroundColour(wx.Colour(204, 50, 50))
103 __szr_result.Add(__lbl_unit, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 4)
104 __szr_result.Add(self._PRW_units, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
105 __lbl_abnormality = wx.StaticText(self, -1, _("Indicator"))
106 __szr_result.Add(__lbl_abnormality, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 4)
107 __szr_result.Add(self._PRW_abnormality_indicator, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
108 _gszr_main.Add(__szr_result, 1, wx.EXPAND, 0)
109 __lbl_evaluated = wx.StaticText(self, -1, _("Date"))
110 __lbl_evaluated.SetForegroundColour(wx.Colour(204, 50, 50))
111 _gszr_main.Add(__lbl_evaluated, 0, wx.ALIGN_CENTER_VERTICAL, 0)
112 _gszr_main.Add(self._DPRW_evaluated, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
113 __lbl_note_test_org = wx.StaticText(self, -1, _("Context"))
114 _gszr_main.Add(__lbl_note_test_org, 0, wx.ALIGN_CENTER_VERTICAL, 3)
115 _gszr_main.Add(self._TCTRL_note_test_org, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
116 _gszr_main.Add((20, 20), 0, wx.EXPAND, 0)
117 __lbl_clinical_assessment = wx.StaticText(self, -1, _("Clinical details"))
118 __lbl_clinical_assessment.SetForegroundColour(wx.Colour(95, 159, 159))
119 _gszr_main.Add(__lbl_clinical_assessment, 0, wx.ALIGN_CENTER_VERTICAL, 0)
120 __lbl_in_charge = wx.StaticText(self, -1, _("In charge"))
121 __lbl_in_charge.SetForegroundColour(wx.Colour(204, 50, 50))
122 _gszr_main.Add(__lbl_in_charge, 0, wx.ALIGN_CENTER_VERTICAL, 0)
123 _gszr_main.Add(self._PRW_intended_reviewer, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
124 __lbl_problem = wx.StaticText(self, -1, _("Problem"))
125 __lbl_problem.SetForegroundColour(wx.Colour(204, 50, 50))
126 _gszr_main.Add(__lbl_problem, 0, wx.ALIGN_CENTER_VERTICAL, 3)
127 _gszr_main.Add(self._PRW_problem, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
128 __lbl_narrative = wx.StaticText(self, -1, _("Comment"))
129 _gszr_main.Add(__lbl_narrative, 0, wx.ALIGN_CENTER_VERTICAL, 0)
130 _gszr_main.Add(self._TCTRL_narrative, 2, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
131 __lbl_review = wx.StaticText(self, -1, _("Review"))
132 _gszr_main.Add(__lbl_review, 0, wx.ALIGN_CENTER_VERTICAL, 0)
133 __szr_review.Add(self._CHBOX_review, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 10)
134 __szr_review.Add(self._CHBOX_abnormal, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
135 __szr_review.Add(self._CHBOX_relevant, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
136 __szr_review.Add(self._TCTRL_review_comment, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
137 _gszr_main.Add(__szr_review, 1, wx.EXPAND, 0)
138 _gszr_main.Add((20, 20), 0, wx.EXPAND, 0)
139 __lbl_reference = wx.StaticText(self, -1, _("Reference information"))
140 __lbl_reference.SetForegroundColour(wx.Colour(95, 159, 159))
141 _gszr_main.Add(__lbl_reference, 0, wx.ALIGN_CENTER_VERTICAL, 0)
142 __lbl_range_normal = wx.StaticText(self, -1, _("Normal"))
143 _gszr_main.Add(__lbl_range_normal, 0, wx.ALIGN_CENTER_VERTICAL, 0)
144 __szr_range_normal.Add(self._TCTRL_normal_min, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
145 __lbl_from_to = wx.StaticText(self, -1, _("--"))
146 __szr_range_normal.Add(__lbl_from_to, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 3)
147 __szr_range_normal.Add(self._TCTRL_normal_max, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
148 __lbl_range_or_range = wx.StaticText(self, -1, _("or"))
149 __szr_range_normal.Add(__lbl_range_or_range, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
150 __szr_range_normal.Add(self._TCTRL_normal_range, 2, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
151 _gszr_main.Add(__szr_range_normal, 1, wx.EXPAND, 0)
152 __lbl_range_target = wx.StaticText(self, -1, _("Target"))
153 _gszr_main.Add(__lbl_range_target, 0, wx.ALIGN_CENTER_VERTICAL, 0)
154 __szr_range_target.Add(self._TCTRL_target_min, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
155 __lbl_from_to_target = wx.StaticText(self, -1, _("--"))
156 __szr_range_target.Add(__lbl_from_to_target, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 3)
157 __szr_range_target.Add(self._TCTRL_target_max, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
158 __lbl_range_or_range_target = wx.StaticText(self, -1, _("or"))
159 __szr_range_target.Add(__lbl_range_or_range_target, 0, wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
160 __szr_range_target.Add(self._TCTRL_target_range, 2, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
161 _gszr_main.Add(__szr_range_target, 1, wx.EXPAND, 0)
162 __lbl_ref_group = wx.StaticText(self, -1, _("Group"))
163 _gszr_main.Add(__lbl_ref_group, 0, wx.ALIGN_CENTER_VERTICAL, 0)
164 _gszr_main.Add(self._TCTRL_norm_ref_group, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
165 self.SetSizer(_gszr_main)
166 _gszr_main.AddGrowableCol(1)
167
168
170 print "Event handler `_on_test_info_button_pressed' not implemented!"
171 event.Skip()
172
174 print "Event handler `_on_review_box_checked' not implemented!"
175 event.Skip()
176
177
178