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
9 import sys, logging
10
11
12
13 if __name__ == '__main__':
14 sys.path.insert(0, '../../')
15 from Gnumed.pycommon import gmPG2
16 from Gnumed.pycommon import gmBusinessDBObject
17 from Gnumed.pycommon import gmHooks
18 from Gnumed.pycommon import gmDispatcher
19
20 _log = logging.getLogger('gm.coding')
21 _log.info(__version__)
22
23
24
28
29 gmDispatcher.connect(_on_code_link_modified, u'episode_code_mod_db')
30 gmDispatcher.connect(_on_code_link_modified, u'rfe_code_mod_db')
31 gmDispatcher.connect(_on_code_link_modified, u'aoe_code_mod_db')
32 gmDispatcher.connect(_on_code_link_modified, u'health_issue_code_mod_db')
33 gmDispatcher.connect(_on_code_link_modified, u'narrative_code_mod_db')
34 gmDispatcher.connect(_on_code_link_modified, u'procedure_code_mod_db')
35
36
37
38
39 _SQL_get_generic_linked_codes = u"SELECT * FROM clin.v_linked_codes WHERE %s"
40
49
59
60
61
62 _SQL_get_generic_code = u"SELECT * FROM ref.v_generic_codes WHERE %s"
63
69
71 if order_by is None:
72 order_by = u'true'
73 else:
74 order_by = u'true ORDER BY %s' % order_by
75
76 cmd = _SQL_get_generic_code % order_by
77 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
78 return [ cGenericCode(row = {'data': r, 'idx': idx, 'pk_field': 'pk_generic_code'}) for r in rows ]
79
80
81
82
84
85 where_snippets = []
86 args = {}
87
88 if coding_systems is not None:
89 where_snippets.append(u"((coding_system IN %(sys)s) OR (coding_system_long IN %(sys)s)")
90 args['sys'] = tuple(coding_systems)
91
92 if languages is not None:
93 where_snippets.append(u'lang IN %(lang)s')
94 args['lang'] = tuple(languages)
95
96 cmd = u'select * from ref.v_coded_terms'
97
98 if len(where_snippets) > 0:
99 cmd += u' WHERE %s' % u' AND '.join(where_snippets)
100
101 if order_by is not None:
102 cmd += u' ORDER BY %s' % order_by
103
104 rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
105
106 return rows
107
108
109
110 if __name__ == "__main__":
111
112 if len(sys.argv) < 2:
113 sys.exit()
114
115 if sys.argv[1] != 'test':
116 sys.exit()
117
118
123
128
133
134
135
136 test_get_generic_linked_codes()
137
138
139