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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#======================================================================
# GnuMed notebook based patient edition plugin
# ------------------------------------------------
#
# this plugin displays a notebook container for patient edition
# current pages (0.1): identity, contacts, occupation
#
# @copyright: author
#======================================================================
__version__ = "$Revision: 1.8 $"
__author__ = "Carlos Moro, Karsten Hilbert"
__license__ = 'GPL (details at http://www.gnu.org)'
if __name__ == '__main__':
# stdlib
import sys
sys.path.insert(0, '../../../')
from Gnumed.pycommon import gmI18N
gmI18N.activate_locale()
gmI18N.install_domain()
# GNUmed
from Gnumed.wxpython import gmPlugin, gmDemographicsWidgets
from Gnumed.pycommon import gmLog
_log = gmLog.gmDefLog
_log.Log(gmLog.lInfo, __version__)
#======================================================================
class gmNotebookedPatientEditionPlugin(gmPlugin.cNotebookPlugin):
"""Plugin to encapsulate notebooked patient edition window."""
tab_name = _('Patient Details')
def name (self):
return gmNotebookedPatientEditionPlugin.tab_name
def GetWidget (self, parent):
self._widget = gmDemographicsWidgets.cNotebookedPatEditionPanel(parent, -1)
return self._widget
def MenuInfo (self):
return ('patient', _('Edit demographics'))
def can_receive_focus(self):
# need patient
if not self._verify_patient_avail():
return None
return 1
#======================================================================
# main
#----------------------------------------------------------------------
if __name__ == "__main__":
# 3rd party
import wx
# GNUmed
from Gnumed.pycommon import gmCfg
from Gnumed.business import gmPerson
_cfg = gmCfg.gmDefCfgFile
_log.Log (gmLog.lInfo, "starting Notebooked patient edition plugin...")
if _cfg is None:
_log.Log(gmLog.lErr, "Cannot run without config file.")
sys.exit("Cannot run without config file.")
try:
# obtain patient
patient = gmPerson.ask_for_patient()
if patient is None:
print "None patient. Exiting gracefully..."
sys.exit(0)
gmPerson.set_active_patient(patient=patient)
# display standalone notebooked patient editor
application = wx.PyWidgetTester(size=(800,600))
application.SetWidget(gmDemographicsWidgets.cNotebookedPatEditionPanel, -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.LogException("unhandled exception caught !", sys.exc_info(), 1)
# but re-raise them
raise
_log.Log (gmLog.lInfo, "closing Notebooked progress notes input plugin...")
#======================================================================
# $Log: gmNotebookedPatientEditionPlugin.py,v $
# Revision 1.8 2006/12/15 16:31:32 ncq
# - fix test suite
#
# Revision 1.7 2006/10/31 16:06:19 ncq
# - no more gmPG
#
# Revision 1.6 2006/10/25 07:23:30 ncq
# - no gmPG no more
#
# Revision 1.5 2006/05/04 09:49:20 ncq
# - get_clinical_record() -> get_emr()
# - adjust to changes in set_active_patient()
# - need explicit set_active_patient() after ask_for_patient() if wanted
#
# Revision 1.4 2005/10/03 13:49:21 sjtan
# using new wx. temporary debugging to stdout(easier to read). where is rfe ?
#
# Revision 1.3 2005/09/26 18:01:52 ncq
# - use proper way to import wx26 vs wx2.4
# - note: THIS WILL BREAK RUNNING THE CLIENT IN SOME PLACES
# - time for fixup
#
# Revision 1.2 2005/05/26 15:57:03 ncq
# - slightly better strings
#
# Revision 1.1 2005/05/25 22:52:47 cfmoro
# Added notebooked patient edition plugin
#
|