Module Gnumed.business.gmCoding
GNUmed coding systems handling middleware
Functions
def create_data_source(long_name=None, short_name=None, version=None, source=None, language=None)
-
Expand source code
def create_data_source(long_name=None, short_name=None, version=None, source=None, language=None): args = { 'lname': long_name, 'sname': short_name, 'ver': version, 'src': source, 'lang': language } cmd = "SELECT pk FROM ref.data_source WHERE name_long = %(lname)s AND name_short = %(sname)s AND version = %(ver)s" rows = gmPG2.run_ro_queries(queries = [{'sql': cmd, 'args': args}]) if len(rows) > 0: return rows[0]['pk'] cmd = """ INSERT INTO ref.data_source (name_long, name_short, version, source, lang) VALUES ( %(lname)s, %(sname)s, %(ver)s, %(src)s, %(lang)s ) RETURNING pk """ rows = gmPG2.run_rw_queries(queries = [{'sql': cmd, 'args': args}], return_data = True) return rows[0]['pk']
def get_coded_terms(coding_systems=None, languages=None, order_by=None)
-
Expand source code
def get_coded_terms(coding_systems=None, languages=None, order_by=None): where_snippets = [] args = {} if coding_systems is not None: where_snippets.append("((coding_system = ANY(%(sys)s)) OR (coding_system_long = ANY(%(sys)s))") args['sys'] = coding_systems if languages is not None: where_snippets.append('lang = ANY(%(lang)s)') args['lang'] = languages cmd = 'select * from ref.v_coded_terms' if len(where_snippets) > 0: cmd += ' WHERE %s' % ' AND '.join(where_snippets) if order_by is not None: cmd += ' ORDER BY %s' % order_by rows = gmPG2.run_ro_queries(queries = [{'sql': cmd, 'args': args}]) return rows
def get_data_sources(order_by='name_long, lang, version')
-
Expand source code
def get_data_sources(order_by='name_long, lang, version'): cmd = 'SELECT * FROM ref.data_source ORDER BY %s' % order_by rows = gmPG2.run_ro_queries(queries = [{'sql': cmd}]) return rows
def get_generic_codes(order_by=None)
-
Expand source code
def get_generic_codes(order_by=None): if order_by is None: order_by = 'true' else: order_by = 'true ORDER BY %s' % order_by cmd = _SQL_get_generic_code % order_by rows = gmPG2.run_ro_queries(queries = [{'sql': cmd}]) return [ cGenericCode(row = {'data': r, 'pk_field': 'pk_generic_code'}) for r in rows ]
def get_generic_linked_codes(order_by=None)
-
Expand source code
def get_generic_linked_codes(order_by=None): if order_by is None: order_by = 'true' else: order_by = 'true ORDER BY %s' % order_by cmd = _SQL_get_generic_linked_codes % order_by rows = gmPG2.run_ro_queries(queries = [{'sql': cmd}]) return [ cGenericLinkedCode(row = {'data': r, 'pk_field': 'pk_lnk_code2item'}) for r in rows ]
Classes
class cGenericCode (aPK_obj: int | dict = None, row: dict = None, link_obj=None)
-
Expand source code
class cGenericCode(gmBusinessDBObject.cBusinessDBObject): """READ ONLY""" _cmd_fetch_payload = _SQL_get_generic_code % "pk_generic_code = %s" _cmds_store_payload:list = [] _updatable_fields:list = []
READ ONLY
Call init from child classes like so:
super().__init__(aPK_obj = aPK_obj, row = row, link_obj = link_obj)
Args
aPK_obj
- retrieve data from backend
- an scalar value the ._cmd_fetch_payload WHERE condition must be a simple column: "… WHERE pk_col = %s"
- a dictionary of values the ._cmd_fetch_payload WHERE condition must consume the dictionary and produce a unique row
row
- must hold the fields
- data: list of column values for the row selected by ._cmd_fetch_payload (as returned by cursor.fetchone() in the DB-API)
- pk_field: the name of the primary key column OR
- pk_obj: a dictionary suitable for being passed to cursor.execute and holding the primary key values, used for composite PKs
- for example:
row = { 'data': rows[0], 'pk_field': 'pk_XXX (the PK column name)', 'pk_obj': {'pk_col1': pk_col1_val, 'pk_col2': pk_col2_val} } rows = gmPG2.run_ro_queries(queries = [{'sql': cmd, 'args': args}]) objects = [ cChildClass(row = {'data': r, 'pk_field': 'the PK column name'}) for r in rows ]
Ancestors
Inherited members
class cGenericLinkedCode (aPK_obj: int | dict = None, row: dict = None, link_obj=None)
-
Expand source code
class cGenericLinkedCode(gmBusinessDBObject.cBusinessDBObject): """Represents a generic linked code. READ ONLY """ _cmd_fetch_payload = _SQL_get_generic_linked_codes % "pk_lnk_code2item = %s" _cmds_store_payload:list = [] _updatable_fields:list = []
Represents a generic linked code.
READ ONLY
Call init from child classes like so:
super().__init__(aPK_obj = aPK_obj, row = row, link_obj = link_obj)
Args
aPK_obj
- retrieve data from backend
- an scalar value the ._cmd_fetch_payload WHERE condition must be a simple column: "… WHERE pk_col = %s"
- a dictionary of values the ._cmd_fetch_payload WHERE condition must consume the dictionary and produce a unique row
row
- must hold the fields
- data: list of column values for the row selected by ._cmd_fetch_payload (as returned by cursor.fetchone() in the DB-API)
- pk_field: the name of the primary key column OR
- pk_obj: a dictionary suitable for being passed to cursor.execute and holding the primary key values, used for composite PKs
- for example:
row = { 'data': rows[0], 'pk_field': 'pk_XXX (the PK column name)', 'pk_obj': {'pk_col1': pk_col1_val, 'pk_col2': pk_col2_val} } rows = gmPG2.run_ro_queries(queries = [{'sql': cmd, 'args': args}]) objects = [ cChildClass(row = {'data': r, 'pk_field': 'the PK column name'}) for r in rows ]
Ancestors
Inherited members