1 """GNUmed coding systems handling middleware"""
2
3 __license__ = "GPL"
4 __author__ = "K.Hilbert <Karsten.Hilbert@gmx.net>"
5
6
7
8 import sys, logging
9
10
11
12 if __name__ == '__main__':
13 sys.path.insert(0, '../../')
14 from Gnumed.pycommon import gmPG2
15 from Gnumed.pycommon import gmBusinessDBObject
16 from Gnumed.pycommon import gmHooks
17 from Gnumed.pycommon import gmDispatcher
18
19 _log = logging.getLogger('gm.coding')
20
21
22
26
27 gmDispatcher.connect(_on_code_link_modified, u'clin.episode_code_mod_db')
28 gmDispatcher.connect(_on_code_link_modified, u'clin.rfe_code_mod_db')
29 gmDispatcher.connect(_on_code_link_modified, u'clin.aoe_code_mod_db')
30 gmDispatcher.connect(_on_code_link_modified, u'clin.health_issue_code_mod_db')
31 gmDispatcher.connect(_on_code_link_modified, u'clin.narrative_code_mod_db')
32 gmDispatcher.connect(_on_code_link_modified, u'clin.procedure_code_mod_db')
33
34
35
36
37 _SQL_get_generic_linked_codes = u"SELECT * FROM clin.v_linked_codes WHERE %s"
38
47
57
58
59
60 _SQL_get_generic_code = u"SELECT * FROM ref.v_generic_codes WHERE %s"
61
67
69 if order_by is None:
70 order_by = u'true'
71 else:
72 order_by = u'true ORDER BY %s' % order_by
73
74 cmd = _SQL_get_generic_code % order_by
75 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
76 return [ cGenericCode(row = {'data': r, 'idx': idx, 'pk_field': 'pk_generic_code'}) for r in rows ]
77
78
79
80
82
83 where_snippets = []
84 args = {}
85
86 if coding_systems is not None:
87 where_snippets.append(u"((coding_system IN %(sys)s) OR (coding_system_long IN %(sys)s)")
88 args['sys'] = tuple(coding_systems)
89
90 if languages is not None:
91 where_snippets.append(u'lang IN %(lang)s')
92 args['lang'] = tuple(languages)
93
94 cmd = u'select * from ref.v_coded_terms'
95
96 if len(where_snippets) > 0:
97 cmd += u' WHERE %s' % u' AND '.join(where_snippets)
98
99 if order_by is not None:
100 cmd += u' ORDER BY %s' % order_by
101
102 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
103
104 return rows
105
107 cmd = u'SELECT * FROM ref.data_source ORDER BY %s' % order_by
108 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = False)
109 return rows
110
111
112
113
114 if __name__ == "__main__":
115
116 if len(sys.argv) < 2:
117 sys.exit()
118
119 if sys.argv[1] != 'test':
120 sys.exit()
121
122
127
132
137
138
139
140 test_get_generic_linked_codes()
141
142
143