def __lees_attribuut_tabel(self, folder: str): """ Leest de attribuuttabel (opgeslagen in CSV). :type: str folder De folder met alle groupertabellen in CSV-formaat. """ with open(folder + '/Attributen.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue attribuut_id = int(regel[0]) boom_parameter_nummer = int(regel[2]) filter_toets_wijze = int(regel[3]) filter_waarde_type = int(regel[4]) onder_filter_waarde = clean_str(regel[5]) boven_filter_waarde = clean_str(regel[6]) self.__attributen[attribuut_id] = maak_attribuut(attribuut_id, boom_parameter_nummer, filter_toets_wijze, filter_waarde_type, onder_filter_waarde, boven_filter_waarde) print("Aantal attributen: %d" % (regel_nummer - 1))
def __lees_zorgactiviteiten_tabel(folder): """ Leest de zorgactiviteiten referentietabel (opgeslagen in CSV). """ with open(folder + '/ZorgActiviteiten.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue zorg_activiteit_code = clean_code(regel[0], LEN_ZORG_ACTIVITEIT_CODE) zorg_activiteit_cluster01 = clean_str(regel[2]) zorg_activiteit_cluster02 = clean_str(regel[3]) zorg_activiteit_cluster03 = clean_str(regel[4]) zorg_activiteit_cluster04 = clean_str(regel[5]) zorg_activiteit_cluster05 = clean_str(regel[6]) zorg_activiteit_cluster06 = clean_str(regel[7]) zorg_activiteit_cluster07 = clean_str(regel[8]) zorg_activiteit_cluster08 = clean_str(regel[9]) zorg_activiteit_cluster09 = clean_str(regel[10]) zorg_activiteit_cluster10 = clean_str(regel[11]) zorg_activiteit_weeg_factor1 = clean_int(regel[12]) zorg_activiteit_weeg_factor2 = clean_int(regel[13]) begin_datum = clean_date(regel[20]) eind_datum = clean_date(regel[21]) sleutel = zorg_activiteit_code rij = { 'zorg_activiteit_code': zorg_activiteit_code, 'zorg_activiteit_cluster01': zorg_activiteit_cluster01, 'zorg_activiteit_cluster02': zorg_activiteit_cluster02, 'zorg_activiteit_cluster03': zorg_activiteit_cluster03, 'zorg_activiteit_cluster04': zorg_activiteit_cluster04, 'zorg_activiteit_cluster05': zorg_activiteit_cluster05, 'zorg_activiteit_cluster06': zorg_activiteit_cluster06, 'zorg_activiteit_cluster07': zorg_activiteit_cluster07, 'zorg_activiteit_cluster08': zorg_activiteit_cluster08, 'zorg_activiteit_cluster09': zorg_activiteit_cluster09, 'zorg_activiteit_cluster10': zorg_activiteit_cluster10, 'zorg_activiteit_weeg_factor1': zorg_activiteit_weeg_factor1, 'zorg_activiteit_weeg_factor2': zorg_activiteit_weeg_factor2, 'begin_datum': begin_datum, 'eind_datum': eind_datum } if sleutel not in ZorgActiviteit.__zorg_activiteiten_tabel: ZorgActiviteit.__zorg_activiteiten_tabel[sleutel] = [] ZorgActiviteit.__zorg_activiteiten_tabel[sleutel].append(rij) print("Aantal zorgactiviteiten: %d" % (regel_nummer - 1))
def __lees_specialisme_tabel(folder: str): """ Leest de specialisme referentietabel (opgeslagen in CSV). :param str folder: De folder met alle goupertabellen. """ with open(folder + '/Specialismen.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue specialisme_code = clean_code(regel[0], LEN_SPECIALISME_CODE) specialisme_cluster1 = clean_str(regel[4]) specialisme_cluster2 = clean_str(regel[5]) begin_datum = clean_date(regel[7]) eind_datum = clean_date(regel[8]) rij = {'specialisme_code': specialisme_code, 'specialisme_cluster1': specialisme_cluster1, 'specialisme_cluster2': specialisme_cluster2, 'begin_datum': begin_datum, 'eind_datum': eind_datum} if specialisme_code not in Specialisme._specialisme_tabel: Specialisme._specialisme_tabel[specialisme_code] = [] Specialisme._specialisme_tabel[specialisme_code].append(rij) print("Aantal specialismen: %d" % (regel_nummer - 1))
def __lees_zorg_product_groepen(self, folder: str): """ Leest de zorgproductgroepen (opgeslagen in CSV). :type: str folder De folder met alle groupertabellen in CSV-formaat. """ with open(folder + '/ZorgProductGroepen.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue zorg_product_groep_code = clean_str(regel[0]) beslist_regel_id_start = int(regel[2]) begin_datum = clean_date(regel[3]) eind_datum = clean_date(regel[4]) if zorg_product_groep_code not in self.__zorgproductgroep_boom: self.__zorgproductgroep_boom[zorg_product_groep_code] = ZorgProductGroep(zorg_product_groep_code) versie = ZorgProductGroepVersie(zorg_product_groep_code, self.__beslisregels[beslist_regel_id_start], begin_datum, eind_datum) self.__zorgproductgroep_boom[zorg_product_groep_code].versie_toevoegen(versie) print("Aantal zorgproductgroep versies: %d" % (regel_nummer - 1))
def __lees_beslis_regel_tabel(self, folder: str): """ Leest de beslisregels (opgeslagen in CSV). :type: str folder De folder met alle groupertabellen in CSV-formaat. """ verrijkingen = {} with open(folder + '/BeslisRegels.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue beslis_regel_id = int(regel[0]) attribuut_groep_id = int(regel[1]) beslist_regel_id_true = clean_int(regel[2]) beslist_regel_id_false = clean_int(regel[3]) label_true = clean_str(regel[4]) label_false = clean_str(regel[5]) indicatie_aanspraakbeperking = clean_bool(regel[6]) if attribuut_groep_id not in self.__attribuutgroepen: raise RuntimeError("Onbekende attribuutgroep: '%d'" % attribuut_groep_id) verrijkingen[beslis_regel_id] = (beslist_regel_id_true, beslist_regel_id_false) self.__beslisregels[beslis_regel_id] = BeslisRegel(beslis_regel_id, self.__attribuutgroepen[attribuut_groep_id], label_true, label_false, indicatie_aanspraakbeperking) # Verrijk alle beslisregels met beslisregels voor true en false. for beslis_regel_id, (beslist_regel_id_true, beslist_regel_id_false) in verrijkingen.items(): beslist_regel_true = self.__beslisregels.get(beslist_regel_id_true, None) beslist_regel_false = self.__beslisregels.get(beslist_regel_id_false, None) self.__beslisregels[beslis_regel_id].verrijk(beslist_regel_true, beslist_regel_false) print("Aantal beslisregels: %d" % (regel_nummer - 1))
def __lees_zorg_type_tabel(folder): """ Leest de zorg_type referentietabel (opgeslagen in CSV). :param str folder: De folder met alle goupertabellen. """ with open(folder + '/ZorgTypen.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue specialisme_code = clean_code(regel[0], LEN_SPECIALISME_CODE) zorg_type_code = clean_code(regel[1], LEN_ZORG_TYPE_CODE) zorg_type_attribuut_code = clean_str(regel[3]) zorg_type_cluster01 = clean_str(regel[4]) zorg_type_cluster02 = clean_str(regel[5]) begin_datum = clean_date(regel[6]) eind_datum = clean_date(regel[7]) sleutel = (specialisme_code, zorg_type_code) rij = { 'specialisme_code': specialisme_code, 'zorg_type_code': zorg_type_code, 'zorg_type_attribuut_code': zorg_type_attribuut_code, 'zorg_type_cluster1': zorg_type_cluster01, 'zorg_type_cluster2': zorg_type_cluster02, 'begin_datum': begin_datum, 'eind_datum': eind_datum } if sleutel not in ZorgType.__zorg_type_tabel: ZorgType.__zorg_type_tabel[sleutel] = [] ZorgType.__zorg_type_tabel[sleutel].append(rij) print("Aantal zorgtypen: %d" % (regel_nummer - 1))
def __lees_diagnose_tabel(folder: str): """ Leest de diagnose referentietabel (opgeslagen in CSV). :param str folder: De folder met alle goupertabellen. """ with open(folder + '/Diagnosen.csv', encoding='utf-8') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue specialisme_code = clean_code(regel[0], LEN_SPECIALISME_CODE) diagnose_code = clean_code(regel[1], LEN_DIAGNOSE_CODE) diagnose_attribute_code = clean_str(regel[3]) diagnose_cluster01 = clean_str(regel[5]) diagnose_cluster02 = clean_str(regel[6]) diagnose_cluster03 = clean_str(regel[7]) diagnose_cluster04 = clean_str(regel[8]) diagnose_cluster05 = clean_str(regel[9]) diagnose_cluster06 = clean_str(regel[10]) begin_datum = clean_date(regel[11]) eind_datum = clean_date(regel[12]) sleutel = (specialisme_code, diagnose_code) rij = { 'specialisme_code': specialisme_code, 'diagnose_code': diagnose_code, 'diagnose_attribute_code': diagnose_attribute_code, 'diagnose_cluster1': diagnose_cluster01, 'diagnose_cluster2': diagnose_cluster02, 'diagnose_cluster3': diagnose_cluster03, 'diagnose_cluster4': diagnose_cluster04, 'diagnose_cluster5': diagnose_cluster05, 'diagnose_cluster6': diagnose_cluster06, 'begin_datum': begin_datum, 'eind_datum': eind_datum } if sleutel not in Diagnose.__diagnose_tabel: Diagnose.__diagnose_tabel[sleutel] = [] Diagnose.__diagnose_tabel[sleutel].append(rij) print("Aantal diagnosen: %d" % (regel_nummer - 1))
def __lees_behandel_klasse_tabel(folder): """ Leest de behandelklasse tabel (opgeslagen in CSV). """ with open(folder + '/BehandelKlassen.csv') as csv_file: reader = csv.reader(csv_file, ) regel_nummer = 0 for regel in reader: regel_nummer += 1 # Sla de eerste regel met koppen over. if regel_nummer == 1: continue zorg_product_groep_code = clean_code( regel[0], LEN_ZORG_PRODUCT_GROEP_CODE) zorg_activiteit_code = clean_code(regel[1], LEN_ZORG_ACTIVITEIT_CODE) behandel_klasse_code = clean_str(regel[2]) begin_datum = clean_date(regel[4]) eind_datum = clean_date(regel[5]) sleutel = (zorg_product_groep_code, zorg_activiteit_code, behandel_klasse_code) rij = { 'zorg_product_groep_code': zorg_product_groep_code, 'zorg_activiteit_code': zorg_activiteit_code, 'behandel_klasse_code': behandel_klasse_code, 'begin_datum': begin_datum, 'eind_datum': eind_datum } if sleutel not in ZorgActiviteit.__behandel_klassen_tabel: ZorgActiviteit.__behandel_klassen_tabel[sleutel] = [] ZorgActiviteit.__behandel_klassen_tabel[sleutel].append(rij) print("Aantal behandelklassen: %d" % (regel_nummer - 1))