Gnumed.wxpython.gui.gmEMRListJournalPlugin

Package Gnumed :: Package wxpython :: Package gui :: Module gmEMRListJournalPlugin |
[frames] | no frames]

# Source Code for Module Gnumed.wxpython.gui.gmEMRListJournalPlugin

     1  # -*- coding: utf-8 -*-
     2  #======================================================================
     3  # GNUmed patient EMR Journal plugin (list based)
     4  #======================================================================
     5  __author__ = "Karsten Hilbert"
     6  __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
     7
     8  import logging
     9
    10
    11  from Gnumed.pycommon import gmI18N
    12  from Gnumed.wxpython import gmPlugin
    13  from Gnumed.wxpython import gmEMRBrowser
    14  from Gnumed.wxpython import gmAccessPermissionWidgets
    15
    16  _log = logging.getLogger('gm.ui')
    17
    18  #======================================================================
    19 -class gmEMRListJournalPlugin(gmPlugin.cNotebookPlugin):
    20          """Plugin to encapsulate patient EMR list based Journal window."""
    21
    22          tab_name = _('EMR Journal')
    23          required_minimum_role = 'full clinical access'
    24
    25          #-------------------------------------------------
    26 -        def name (self):
    27                  return gmEMRListJournalPlugin.tab_name
    28
    29          #-------------------------------------------------
    30          @gmAccessPermissionWidgets.verify_minimum_required_role (
    31                  required_minimum_role,
    32                  activity = _('loading plugin <%s>') % tab_name,
    33                  return_value_on_failure = False,
    34                  fail_silently = False
    35          )
    36 -        def register(self):
    37                  gmPlugin.cNotebookPlugin.register(self)
    38
    39          #-------------------------------------------------
    40 -        def GetWidget (self, parent):
    41                  self._widget = gmEMRBrowser.cEMRListJournalPluginPnl(parent, -1)
    42                  return self._widget
    43
    44          #-------------------------------------------------
    45 -        def MenuInfo (self):
    46                  return ('emr', _('EMR &Journal (list)'))
    47
    48          #-------------------------------------------------
    49 -        def can_receive_focus(self):
    50                  # need patient
    51                  if not self._verify_patient_avail():
    52                          return None
    53                  return 1
    54
    55  #======================================================================
    56  # main
    57  #----------------------------------------------------------------------
    58  if __name__ == "__main__":
    59
    60      import sys
    61
    62      import wx
    63
    64      from Gnumed.exporters import gmPatientExporter
    65      from Gnumed.business import gmPersonSearch
    66
    67      _log.info("starting emr journal plugin...")
    68
    69      # obtain patient
    70      patient = gmPersonSearch.ask_for_patient()
    71      if patient is None:
    72          print("None patient. Exiting gracefully...")
    73          sys.exit(0)
    74      gmPatSearchWidgets.set_active_patient(patient=patient)
    75
    76      # display standalone browser
    77      application = wx.wxPyWidgetTester(size=(800,600))
    78      emr_journal = gmEMRBrowser.cEMRListJournalPluginPnl(application.frame, -1)
    79      emr_journal.refresh_journal()
    80
    81      application.frame.Show(True)
    82      application.MainLoop()
    83
    84      # clean up
    85      if patient is not None:
    86          try:
    87              patient.cleanup()
    88          except Exception:
    89              print("error cleaning up patient")
    90
    91      _log.info("closing emr journal plugin...")
    92
    93  #======================================================================
    94