Esempio n. 1
0
    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))
Esempio n. 2
0
    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))
Esempio n. 3
0
    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))
Esempio n. 4
0
    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))
Esempio n. 5
0
    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))
Esempio n. 6
0
    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))
Esempio n. 7
0
    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))
Esempio n. 8
0
    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))