| Home | Trees | Indices | Help |
|
|---|
|
|
1 """GNUmed coding systems handling middleware"""
2 #============================================================
3 __license__ = "GPL"
4 __version__ = "$Revision: 1.2 $"
5 __author__ = "K.Hilbert <Karsten.Hilbert@gmx.net>"
6
7
8 # stdlib
9 import sys, logging
10
11
12 # GNUmed modules
13 if __name__ == '__main__':
14 sys.path.insert(0, '../../')
15 from Gnumed.pycommon import gmPG2
16 from Gnumed.pycommon import gmBusinessDBObject
17
18 _log = logging.getLogger('gm.coding')
19 _log.info(__version__)
20
21 #============================================================
22 # generic linked code handling
23 #------------------------------------------------------------
24 _SQL_get_generic_linked_codes = u"SELECT * FROM clin.v_linked_codes WHERE %s"
25
27 """Represents a generic linked code.
28
29 READ ONLY
30 """
31 _cmd_fetch_payload = _SQL_get_generic_linked_codes % u"pk_lnk_code2item = %s"
32 _cmds_store_payload = []
33 _updatable_fields = []
34 #------------------------------------------------------------
36 if order_by is None:
37 order_by = u'true'
38 else:
39 order_by = u'true ORDER BY %s' % order_by
40
41 cmd = _SQL_get_generic_linked_codes % order_by
42 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
43 return [ cGenericLinkedCode(row = {'data': r, 'idx': idx, 'pk_field': 'pk_lnk_code2item'}) for r in rows ]
44 #============================================================
45 # this class represents a generic (non-qualified) code
46 #------------------------------------------------------------
47 _SQL_get_generic_code = u"SELECT * FROM ref.v_generic_codes WHERE %s"
48
50 """READ ONLY"""
51 _cmd_fetch_payload = _SQL_get_generic_code % u"pk_generic_code = %s"
52 _cmds_store_payload = []
53 _updatable_fields = []
54 #------------------------------------------------------------
56 if order_by is None:
57 order_by = u'true'
58 else:
59 order_by = u'true ORDER BY %s' % order_by
60
61 cmd = _SQL_get_generic_code % order_by
62 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
63 return [ cGenericCode(row = {'data': r, 'idx': idx, 'pk_field': 'pk_generic_code'}) for r in rows ]
64
65 #============================================================
66 # module level functions
67 #------------------------------------------------------------
69
70 where_snippets = []
71 args = {}
72
73 if coding_systems is not None:
74 where_snippets.append(u"((coding_system IN %(sys)s) OR (coding_system_long IN %(sys)s)")
75 args['sys'] = tuple(coding_systems)
76
77 if languages is not None:
78 where_snippets.append(u'lang IN %(lang)s')
79 args['lang'] = tuple(languages)
80
81 cmd = u'select * from ref.v_coded_terms'
82
83 if len(where_snippets) > 0:
84 cmd += u' WHERE %s' % u' AND '.join(where_snippets)
85
86 if order_by is not None:
87 cmd += u' ORDER BY %s' % order_by
88
89 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
90
91 return rows
92 #============================================================
93 # main
94 #------------------------------------------------------------
95 if __name__ == "__main__":
96
97 if len(sys.argv) < 2:
98 sys.exit()
99
100 if sys.argv[1] != 'test':
101 sys.exit()
102
103 #----------------------------------------------------
108 #----------------------------------------------------
113 #----------------------------------------------------
115 print "generically linked generic codes:"
116 for code in get_generic_linked_codes():
117 print code
118 #----------------------------------------------------
119 #test_get_coded_terms()
120 #test_get_generic_codes()
121 test_get_generic_linked_codes()
122
123 #============================================================
124
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Tue Jun 7 03:58:56 2011 | http://epydoc.sourceforge.net |