1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
# -*- coding: utf-8 -*-
"""This is a cardiac device interrogation management plugin """
__author__ = "Karsten Hilbert <Karsten.Hilbert@gmx.net>"
#================================================================
import os.path, sys, logging
import wx
from Gnumed.wxpython import gmPlugin, gmDeviceWidgets
if __name__ == '__main__':
# stdlib
import sys
sys.path.insert(0, '../../../')
from Gnumed.pycommon import gmI18N
gmI18N.activate_locale()
gmI18N.install_domain()
_log = logging.getLogger('gm.ui')
#================================================================
class gmCardiacDevicePlugin(gmPlugin.cNotebookPlugin):
"""Plugin to encapsulate document tree."""
tab_name = _("Cardiac Devices")
def name (self):
return gmCardiacDevicePlugin.tab_name
#--------------------------------------------------------
def GetWidget (self, parent):
self._widget = gmDeviceWidgets.cCardiacDevicePluginPnl(parent, -1)
return self._widget
#--------------------------------------------------------
def MenuInfo (self):
return ('emr', _('Show &cardiac devices'))
#--------------------------------------------------------
def can_receive_focus(self):
# need patient
if not self._verify_patient_avail():
return None
return 1
#--------------------------------------------------------
def _on_raise_by_signal(self, **kwds):
if not gmPlugin.cNotebookPlugin._on_raise_by_signal(self, **kwds):
return False
try:
if kwds['sort_mode'] == 'review':
self._widget._on_sort_by_review_selected(None)
except KeyError:
pass
return True
#================================================================
# MAIN
#----------------------------------------------------------------
if __name__ == '__main__':
# GNUmed
from Gnumed.business import gmPersonSearch
from Gnumed.wxpython import gmMeasurementWidgets,gmPatSearchWidgets
_log.info("starting Notebooked cardiac device input plugin...")
try:
# obtain patient
patient = gmPersonSearch.ask_for_patient()
if patient is None:
print "None patient. Exiting gracefully..."
sys.exit(0)
gmPatSearchWidgets.set_active_patient(patient=patient)
# display standalone multisash progress notes input
application = wx.wx.PyWidgetTester(size = (800,600))
multisash_notes = gmMeasurementWidgets.cCardiacDeviceMeasurementsPnl(application.frame, -1)
application.frame.Show(True)
application.MainLoop()
# clean up
if patient is not None:
try:
patient.cleanup()
except:
print "error cleaning up patient"
except StandardError:
_log.exception("unhandled exception caught !")
# but re-raise them
raise
_log.info("closing Notebooked cardiac device input plugin...")
#================================================================
|