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 132
|
#======================================================================
# GnuMed notebook based progress note input plugin
# ------------------------------------------------
#
# this plugin displays the list of patient problems
# toghether whith a notebook container for progress notes
#
# @copyright: author
#======================================================================
__version__ = "$Revision: 1.8 $"
__author__ = "Carlos Moro, Karsten Hilbert"
__license__ = 'GPL (details at http://www.gnu.org)'
from Gnumed.wxpython import gmPlugin, gmSOAPWidgets
from Gnumed.pycommon import gmLog
_log = gmLog.gmDefLog
_log.Log(gmLog.lInfo, __version__)
#======================================================================
class gmNotebookedProgressNoteInputPlugin(gmPlugin.cNotebookPlugin):
"""Plugin to encapsulate multisash based progress note input window."""
tab_name = _('Progress notes')
def name (self):
return gmNotebookedProgressNoteInputPlugin.tab_name
def GetWidget (self, parent):
self._widget = gmSOAPWidgets.cNotebookedProgressNoteInputPanel(parent, -1)
return self._widget
def MenuInfo (self):
return ('emr', _('Add progress notes'))
def can_receive_focus(self):
# need patient
if not self._verify_patient_avail():
return None
return 1
#======================================================================
# main
#----------------------------------------------------------------------
if __name__ == "__main__":
import sys
try:
import wxversion
import wx
except ImportError:
from wxPython import wx
from Gnumed.pycommon import gmPG, gmCfg
from Gnumed.business import gmPerson
_cfg = gmCfg.gmDefCfgFile
_log.Log (gmLog.lInfo, "starting Notebooked progress notes input plugin...")
if _cfg is None:
_log.Log(gmLog.lErr, "Cannot run without config file.")
sys.exit("Cannot run without config file.")
try:
# make sure we have a db connection
gmPG.set_default_client_encoding('latin1')
pool = gmPG.ConnectionPool()
# 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 multisash progress notes input
application = wx.wxPyWidgetTester(size=(800,600))
multisash_notes = gmSOAPWidgets.cNotebookedProgressNoteInputPanel(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.LogException("unhandled exception caught !", sys.exc_info(), 1)
# but re-raise them
raise
try:
pool.StopListeners()
except:
_log.LogException('unhandled exception caught', sys.exc_info(), verbose=1)
raise
_log.Log (gmLog.lInfo, "closing Notebooked progress notes input plugin...")
#======================================================================
# $Log: gmNotebookedProgressNoteInputPlugin.py,v $
# Revision 1.8 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.7 2005/10/03 13:59:59 sjtan
# indentation errors
#
# Revision 1.6 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.5 2005/09/12 15:11:15 ncq
# - tab name capitalized
#
# Revision 1.4 2005/06/30 10:21:01 cfmoro
# String corrections
#
# Revision 1.3 2005/06/07 10:19:18 ncq
# - string improvement
#
# Revision 1.2 2005/05/12 15:13:28 ncq
# - cleanup
#
# Revision 1.1 2005/05/08 21:45:25 ncq
# - new plugin for progress note input ...
#
|