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