File: gmNotebookedPatientEditionPlugin.py

package info (click to toggle)
gnumed-client 0.2.8.10-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 5,028 kB
  • ctags: 4,693
  • sloc: python: 38,024; sh: 286; makefile: 67
file content (131 lines) | stat: -rw-r--r-- 3,693 bytes parent folder | download
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
#