Package Gnumed :: Package wxGladeWidgets :: Module wxgCardiacDevicePluginPnl |
[frames] | no frames]

# Source Code for Module Gnumed.wxGladeWidgets.wxgCardiacDevicePluginPnl

      1  #!/usr/bin/env python
      2  # -*- coding: utf8 -*-
      3  # generated by wxGlade HG on Thu Apr  9 10:01:05 2009
      4
      5  import wx
      6
      7  # begin wxGlade: extracode
      8  # end wxGlade
      9
     10 -class wxgCardiacDevicePluginPnl(wx.ScrolledWindow):
     11 -    def __init__(self, *args, **kwds):
     12
     13          from Gnumed.wxpython.gmNarrativeWidgets import cSoapNoteInputNotebook
     14          from Gnumed.wxpython.gmDateTimeInput import cFuzzyTimestampInput
     15          from Gnumed.wxpython.gmEMRStructWidgets import cEncounterTypePhraseWheel
     16          from Gnumed.wxpython import gmListWidgets
     17
     18          # begin wxGlade: wxgCardiacDevicePluginPnl.__init__
     19          kwds["style"] = wx.NO_BORDER|wx.TAB_TRAVERSAL
     20          wx.ScrolledWindow.__init__(self, *args, **kwds)
     21          self._splitter_main = wx.SplitterWindow(self, -1, style=wx.SP_3D|wx.SP_BORDER|wx.SP_PERMIT_UNSPLIT)
     22          self.__splitter_main_right_pnl = wx.Panel(self._splitter_main, -1, style=wx.NO_BORDER)
     23          self._splitter_right = wx.SplitterWindow(self.__splitter_main_right_pnl, -1, style=wx.SP_3D|wx.SP_BORDER|wx.SP_PERMIT_UNSPLIT)
     24          self.__splitter_right_bottom_pnl = wx.ScrolledWindow(self._splitter_right, -1, style=wx.NO_BORDER)
     25          self.__splitter_right_top_pnl = wx.Panel(self._splitter_right, -1, style=wx.NO_BORDER)
     26          self._NB_device_editors = cSoapNoteInputNotebook(self.__splitter_right_top_pnl, -1, style=0)
     27          self.__splitter_main_left_pnl = wx.Panel(self._splitter_main, -1, style=wx.NO_BORDER|wx.FULL_REPAINT_ON_RESIZE)
     28          self._splitter_left = wx.SplitterWindow(self.__splitter_main_left_pnl, -1, style=wx.SP_3D|wx.SP_BORDER)
     29          self.__splitter_left_bottom_pnl = wx.Panel(self._splitter_left, -1, style=wx.NO_BORDER)
     30          self.__splitter_left_top_pnl = wx.Panel(self._splitter_left, -1)
     31          self.__szr_bottom_left_staticbox = wx.StaticBox(self.__splitter_left_bottom_pnl, -1, _("Previous Encounters"))
     32          self.__szr_top_right_staticbox = wx.StaticBox(self.__splitter_right_top_pnl, -1, _("New notes in current encounter"))
     33          self.__szr_lower_bottom_right_staticbox = wx.StaticBox(self.__splitter_right_bottom_pnl, -1, _("Tips and Hints"))
     34          self.__szr_top_left_staticbox = wx.StaticBox(self.__splitter_left_top_pnl, -1, _("Active Device Settings"))
     35          self._TCTRL_current_status = wx.TextCtrl(self.__splitter_left_top_pnl, -1, _("In this area GNUmed will place the status of all cardiac devices and device parts. There can be more than one device at a time\n\nIt potentially looks like this\n----------------------------------------------------------------------------------------------------------------\nDevice: SJM Atlas DR (active)     Battery: 2.4V (MOL)      Implanted:  Feb 09 2008\n\nRA: Medtronic Sprint fidelis (active, flaky, replacement)             Implanted: Feb 09 2008\nSensing: 2 (1.5) mV    Threshold: 0.7/0.5 (1/0.4) V/ms       Impedance: 800 (900) Ohm\n\nRV: Medtronic Sprint fidelis (active, flaky, replacement)             Implanted: Feb 09 2008\nSensing: 7 (15) mV    Threshold: 0.7/0.5 (1/0.4) V/ms       Impedance: 800 (900) Ohm\n\nLV: Medtronic Sprint fidelis (active, flaky, Y-connector)             Implanted: Feb 09 2008\nSensing: 7 ( ?) mV    Threshold: 1/1.5 (1/1) V/ms       Impedance: 800 (900) Ohm\n----------------------------------------------------------------------------------------------------------------\nDevice: Medtronic Relia SR (inactive)     Batttery 2.1V (EOL)   Implanted: Jan 23 2000\n\nDevice: Medtronic Kappa SR (explanted)     Batttery 2.1V (EOL)   Explanted: Jan 23 2000 (Jan 23 1995)\n-----------------------------------------------------------------------------------------------------------------\nRA Lead: Medtronic ? (inactive, capped)             Implanted: Jan 23 2000\nRV Lead: Medtronic ? (explanted)                        Explanted: Feb 09 2008"), style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_WORDWRAP|wx.NO_BORDER)
     36          self._LCTRL_pevious_encounters = gmListWidgets.cReportListCtrl(self.__splitter_left_bottom_pnl, -1, style=wx.LC_REPORT|wx.NO_BORDER|wx.FULL_REPAINT_ON_RESIZE)
     37          self._PRW_encounter_type = cEncounterTypePhraseWheel(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     38          self._PRW_encounter_start = cFuzzyTimestampInput(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     39          self._PRW_encounter_end = cFuzzyTimestampInput(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     40          self._BTN_new_encounter = wx.Button(self.__splitter_right_top_pnl, -1, _("New"), style=wx.BU_EXACTFIT)
     41          self._TCTRL_rfe = wx.TextCtrl(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     42          self.notebook_1_pane_1 = wx.Panel(self._NB_device_editors, -1)
     43          self._TCTRL_aoe = wx.TextCtrl(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     44          self._TCTRL_ekg = wx.TextCtrl(self.__splitter_right_top_pnl, -1, "", style=wx.NO_BORDER)
     45          self._BTN_save_all = wx.Button(self.__splitter_right_top_pnl, -1, _("&All"), style=wx.BU_EXACTFIT)
     46          self._BTN_save_encounter = wx.Button(self.__splitter_right_top_pnl, -1, _("&Encounter"), style=wx.BU_EXACTFIT)
     47          self._BTN_save_note = wx.Button(self.__splitter_right_top_pnl, -1, _("&Note"), style=wx.BU_EXACTFIT)
     48          self._BTN_new_editor = wx.Button(self.__splitter_right_top_pnl, -1, _("&New"), style=wx.BU_EXACTFIT)
     49          self._BTN_clear_editor = wx.Button(self.__splitter_right_top_pnl, -1, _("&Clear"), style=wx.BU_EXACTFIT)
     50          self._BTN_discard_editor = wx.Button(self.__splitter_right_top_pnl, -1, _("&Discard"), style=wx.BU_EXACTFIT)
     51          self._lbl_hints = wx.StaticText(self.__splitter_right_bottom_pnl, -1, _("In this area GNUmed will place hints and tips\nrelated to the current interrogation note and patient.\n\nThose hints will be derived from a variety of\nsources such as classifications (ICD, ...), \nsafety warnings, online resources (Google\nand friends), device databases, etc.\n\nEventually, those hints will be active in that you\ncan click on them and be taken to the relevant\ninformation/an appropriate action be performed."))
     52
     53          self.__set_properties()
     54          self.__do_layout()
     55
     56          self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._on_problem_activated, self._LCTRL_pevious_encounters)
     57          self.Bind(wx.EVT_BUTTON, self._on_new_encounter_button_pressed, self._BTN_new_encounter)
     58          self.Bind(wx.EVT_BUTTON, self._on_save_all_button_pressed, self._BTN_save_all)
     59          self.Bind(wx.EVT_BUTTON, self._on_save_encounter_button_pressed, self._BTN_save_encounter)
     60          self.Bind(wx.EVT_BUTTON, self._on_save_note_button_pressed, self._BTN_save_note)
     61          self.Bind(wx.EVT_BUTTON, self._on_new_editor_button_pressed, self._BTN_new_editor)
     62          self.Bind(wx.EVT_BUTTON, self._on_clear_editor_button_pressed, self._BTN_clear_editor)
     63          self.Bind(wx.EVT_BUTTON, self._on_discard_editor_button_pressed, self._BTN_discard_editor)
     64          # end wxGlade
     65
     66 -    def __set_properties(self):
     67          # begin wxGlade: wxgCardiacDevicePluginPnl.__set_properties
     68          self.SetScrollRate(10, 10)
     69          self._TCTRL_current_status.Enable(False)
     70          self._LCTRL_pevious_encounters.SetToolTipString(_("This shows the list of previous encounters"))
     71          self._PRW_encounter_type.SetToolTipString(_("Select the type of encounter."))
     72          self._PRW_encounter_start.SetToolTipString(_("Date and time when the current (!) encounter started."))
     73          self._PRW_encounter_end.SetToolTipString(_("Date and time when the current (!) encounter ends."))
     74          self._BTN_new_encounter.SetToolTipString(_("Start a new encounter. If there are any changes to the current encounter you will be asked whether to save them."))
     75          self._TCTRL_rfe.SetToolTipString(_("This documents why the encounter takes place.\n\nIt may be due to a patient request or it may be prompted by other reasons. Often initially collected at the front desk and put into a waiting list comment. May turn out to just be a proxy request for why the patient really is here.\n\nAlso known as the Reason For Encounter/Visit (RFE)."))
     76          self._TCTRL_aoe.SetToolTipString(_("This summarizes the outcome/assessment of the consultation from the doctors point of view. Note that this summary spans all the problems discussed during this encounter."))
     77          self._TCTRL_ekg.SetToolTipString(_("This summarizes the outcome/assessment of the consultation from the doctors point of view. Note that this summary spans all the problems discussed during this encounter."))
     78          self._BTN_save_all.SetToolTipString(_("Save encounter details and all progress notes."))
     79          self._BTN_save_encounter.SetToolTipString(_("Save the encounter details."))
     80          self._BTN_save_note.SetToolTipString(_("Save the currently displayed progress note."))
     81          self._BTN_new_editor.SetToolTipString(_("Open a new progress note editor.\n\nThere is a configuration item on whether to allow several new-episode editors at once."))
     82          self._BTN_clear_editor.SetToolTipString(_("Clear the editor for the displayed progress note."))
     83          self._BTN_discard_editor.SetToolTipString(_("Discard the editor for the displayed progress note."))
     84          self.__splitter_right_bottom_pnl.SetScrollRate(10, 10)
     85          # end wxGlade
     86
     87 -    def __do_layout(self):
     88          # begin wxGlade: wxgCardiacDevicePluginPnl.__do_layout
     89          __szr_main = wx.BoxSizer(wx.HORIZONTAL)
     90          __szr_right = wx.BoxSizer(wx.VERTICAL)
     91          __szr_lower_bottom_right = wx.StaticBoxSizer(self.__szr_lower_bottom_right_staticbox, wx.VERTICAL)
     92          __szr_top_right = wx.StaticBoxSizer(self.__szr_top_right_staticbox, wx.VERTICAL)
     93          __szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
     94          __szr_ekg = wx.BoxSizer(wx.HORIZONTAL)
     95          __szr_aoe = wx.BoxSizer(wx.HORIZONTAL)
     96          __gszr_encounter_details = wx.FlexGridSizer(2, 2, 2, 5)
     97          __szr_encounter_details = wx.BoxSizer(wx.HORIZONTAL)
     98          __szr_left = wx.BoxSizer(wx.VERTICAL)
     99          __szr_bottom_left = wx.StaticBoxSizer(self.__szr_bottom_left_staticbox, wx.VERTICAL)
    100          __szr_top_left = wx.StaticBoxSizer(self.__szr_top_left_staticbox, wx.VERTICAL)
    101          __szr_top_left.Add(self._TCTRL_current_status, 1, wx.EXPAND, 0)
    102          self.__splitter_left_top_pnl.SetSizer(__szr_top_left)
    103          __szr_bottom_left.Add(self._LCTRL_pevious_encounters, 1, wx.EXPAND, 0)
    104          self.__splitter_left_bottom_pnl.SetSizer(__szr_bottom_left)
    105          self._splitter_left.SplitHorizontally(self.__splitter_left_top_pnl, self.__splitter_left_bottom_pnl)
    106          __szr_left.Add(self._splitter_left, 1, wx.EXPAND, 0)
    107          self.__splitter_main_left_pnl.SetSizer(__szr_left)
    108          __lbl_encounter_details = wx.StaticText(self.__splitter_right_top_pnl, -1, _("Encounter"))
    109          __gszr_encounter_details.Add(__lbl_encounter_details, 0, wx.ALIGN_CENTER_VERTICAL, 0)
    110          __szr_encounter_details.Add(self._PRW_encounter_type, 1, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 10)
    111          __szr_encounter_details.Add(self._PRW_encounter_start, 1, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
    112          __lbl_until = wx.StaticText(self.__splitter_right_top_pnl, -1, _("until"))
    113          __szr_encounter_details.Add(__lbl_until, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
    114          __szr_encounter_details.Add(self._PRW_encounter_end, 1, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
    115          __szr_encounter_details.Add(self._BTN_new_encounter, 0, wx.EXPAND, 0)
    116          __gszr_encounter_details.Add(__szr_encounter_details, 1, wx.EXPAND, 0)
    117          __lbl_rfe = wx.StaticText(self.__splitter_right_top_pnl, -1, _("Request"))
    118          __gszr_encounter_details.Add(__lbl_rfe, 0, wx.ALIGN_CENTER_VERTICAL, 0)
    119          __gszr_encounter_details.Add(self._TCTRL_rfe, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
    120          __gszr_encounter_details.AddGrowableCol(1)
    121          __szr_top_right.Add(__gszr_encounter_details, 0, wx.RIGHT|wx.EXPAND, 3)
    122          self._NB_device_editors.AddPage(self.notebook_1_pane_1, _("device1"))
    123          __szr_top_right.Add(self._NB_device_editors, 1, wx.RIGHT|wx.TOP|wx.EXPAND, 3)
    124          __lbl_aoe = wx.StaticText(self.__splitter_right_top_pnl, -1, _("Summary"))
    125          __szr_aoe.Add(__lbl_aoe, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
    126          __szr_aoe.Add(self._TCTRL_aoe, 1, wx.RIGHT|wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
    127          __szr_top_right.Add(__szr_aoe, 0, wx.RIGHT|wx.TOP|wx.EXPAND, 3)
    128          __lbl_ekg = wx.StaticText(self.__splitter_right_top_pnl, -1, _("EKG"))
    129          __szr_ekg.Add(__lbl_ekg, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
    130          __szr_ekg.Add(self._TCTRL_ekg, 1, wx.RIGHT|wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
    131          __szr_top_right.Add(__szr_ekg, 0, wx.RIGHT|wx.TOP|wx.EXPAND, 3)
    132          __lbl_save = wx.StaticText(self.__splitter_right_top_pnl, -1, _("Save:"))
    133          __szr_buttons.Add(__lbl_save, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
    134          __szr_buttons.Add(self._BTN_save_all, 0, wx.RIGHT|wx.EXPAND, 3)
    135          __szr_buttons.Add(self._BTN_save_encounter, 0, wx.RIGHT|wx.EXPAND, 3)
    136          __szr_buttons.Add(self._BTN_save_note, 0, wx.EXPAND, 0)
    137          __szr_buttons.Add((1, 1), 1, 0, 0)
    138          __lbl_editor = wx.StaticText(self.__splitter_right_top_pnl, -1, _("Editor:"))
    139          __szr_buttons.Add(__lbl_editor, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
    140          __szr_buttons.Add(self._BTN_new_editor, 0, wx.RIGHT|wx.EXPAND, 3)
    141          __szr_buttons.Add(self._BTN_clear_editor, 0, wx.RIGHT|wx.EXPAND, 3)
    142          __szr_buttons.Add(self._BTN_discard_editor, 0, wx.EXPAND, 0)
    143          __szr_buttons.Add((1, 1), 1, 0, 0)
    144          __szr_top_right.Add(__szr_buttons, 0, wx.RIGHT|wx.TOP|wx.EXPAND, 3)
    145          self.__splitter_right_top_pnl.SetSizer(__szr_top_right)
    146          __szr_lower_bottom_right.Add(self._lbl_hints, 0, wx.EXPAND, 0)
    147          self.__splitter_right_bottom_pnl.SetSizer(__szr_lower_bottom_right)
    148          self._splitter_right.SplitHorizontally(self.__splitter_right_top_pnl, self.__splitter_right_bottom_pnl)
    149          __szr_right.Add(self._splitter_right, 1, wx.EXPAND, 0)
    150          self.__splitter_main_right_pnl.SetSizer(__szr_right)
    151          self._splitter_main.SplitVertically(self.__splitter_main_left_pnl, self.__splitter_main_right_pnl)
    152          __szr_main.Add(self._splitter_main, 1, wx.EXPAND, 0)
    153          self.SetSizer(__szr_main)
    154          __szr_main.Fit(self)
    155          # end wxGlade
    156
    157 -    def _on_problem_activated(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    158          print "Event handler `_on_problem_activated' not implemented!"
    159          event.Skip()
    160
    161 -    def _on_new_encounter_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    162          print "Event handler `_on_new_encounter_button_pressed' not implemented!"
    163          event.Skip()
    164
    165 -    def _on_save_all_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    166          print "Event handler `_on_save_all_button_pressed' not implemented!"
    167          event.Skip()
    168
    169 -    def _on_save_encounter_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    170          print "Event handler `_on_save_encounter_button_pressed' not implemented!"
    171          event.Skip()
    172
    173 -    def _on_save_note_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    174          print "Event handler `_on_save_note_button_pressed' not implemented!"
    175          event.Skip()
    176
    177 -    def _on_new_editor_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    178          print "Event handler `_on_new_editor_button_pressed' not implemented!"
    179          event.Skip()
    180
    181 -    def _on_clear_editor_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    182          print "Event handler `_on_clear_editor_button_pressed' not implemented!"
    183          event.Skip()
    184
    185 -    def _on_discard_editor_button_pressed(self, event): # wxGlade: wxgCardiacDevicePluginPnl.<event_handler>
    186          print "Event handler `_on_discard_editor_button_pressed' not implemented!"
    187          event.Skip()
    188
    189  # end of class wxgCardiacDevicePluginPnl
    190