Esempio n. 1
0
    def test_run6(self):
        print('======================================================')
        print('===        R U N  6                                ===')
        print('======================================================')
        # # naam terug naar oorspronkelijke waarde
        exec_sql(source_db_sql[4], test_system_config['source_connection'])

        mapping = SorToEntityMapping('handeling_hstage', Handeling,
                                     self.pipe.sor)
        mapping.map_bk('id')
        mapping.map_field("naam", Handeling.Default.naam)
        mapping.map_field("datum::date", Handeling.Default.datum)
        mapping.map_field("kosten::numeric", Handeling.Financieel.kostprijs)
        self.pipe.mappings.append(mapping)

        self.pipeline.run()

        self.assertEqual(get_row_count('sor_extra.handeling_hstage'), 5)
        self.assertEqual(get_row_count('dv.handeling_hub'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat'), 5)
        self.assertEqual(get_row_count('dv.handeling_sat_financieel'), 2)

        revision = get_fields('dv.handeling_sat', [6],
                              filter='_runid = 0.06')[0][0]
        self.assertEqual(revision, 3)

        actual_row = get_fields('dv.handeling_view',
                                fields=['default_naam'],
                                filter="bk = '1'")[0]
        self.assertEqual(actual_row[0], 'OK1')
Esempio n. 2
0
    def test_run7(self):
        print('======================================================')
        print('===        R U N  7                                ===')
        print('======================================================')
        # # naam terug naar oorspronkelijke waarde
        exec_sql(source_db_sql[4], test_system_config['source_connection'])

        mapping = SorToEntityMapping('handeling_hstage', Handeling,
                                     self.pipe.sor)
        mapping.map_bk('id')
        mapping.map_field("naam", Handeling.Default.naam)
        mapping.map_field("datum::date", Handeling.Default.datum)
        mapping.map_field("kosten::numeric", Handeling.Financieel.kostprijs)
        mapping.map_field("kosten::numeric+200",
                          Handeling.Financieel.vraagprijs)
        mapping.map_field("(21.0)", Handeling.Financieel.btw)
        mapping.map_field(ConstantValue(9.98), Handeling.Financieel.korting)
        self.pipe.mappings.append(mapping)

        self.pipeline.run()

        self.assertEqual(get_row_count('sor_extra.handeling_hstage'), 5)
        self.assertEqual(get_row_count('dv.handeling_hub'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat'), 5)
        self.assertEqual(get_row_count('dv.handeling_sat_financieel'), 4)

        revision = get_fields('dv.handeling_sat_financieel',
                              fields=['_revision'],
                              filter='_runid = 0.07')[0][0]
        self.assertEqual(revision, 1)

        actual_row = get_fields('dv.handeling_view',
                                fields=[
                                    'financieel_kostprijs',
                                    'financieel_vraagprijs', 'financieel_btw',
                                    'financieel_korting'
                                ],
                                filter="bk = '2'")[0]

        self.assertEqual(actual_row[0], 500.0)
        self.assertEqual(actual_row[1], 700.0)
        self.assertEqual(actual_row[2], 21.0)
        self.assertEqual(str(actual_row[3] + 1), '10.98')
Esempio n. 3
0
    def test_run2(self):
        print('======================================================')
        print('===        R U N  2                                ===')
        print('======================================================')
        # # geen aanpassingen doen, aantallen moeten gelijk blijven

        mapping = SorToEntityMapping('handeling_hstage', Handeling,
                                     self.pipe.sor)
        mapping.map_bk('id')
        mapping.map_field("naam", Handeling.Default.naam)
        mapping.map_field("datum", Handeling.Default.datum)
        self.pipe.mappings.append(mapping)

        self.pipeline.run()

        self.assertEqual(get_row_count('sor_extra.handeling_hstage'), 2)
        self.assertEqual(get_row_count('dv.handeling_hub'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat_financieel'), 0)
Esempio n. 4
0
    def test_run3(self):
        print('======================================================')
        print('===        R U N  3                                ===')
        print('======================================================')
        # # sat financieel krijgt nu ook mapping en moet waarden gaan bevatten

        mapping = SorToEntityMapping('handeling_hstage', Handeling,
                                     self.pipe.sor)
        mapping.map_bk('id')
        mapping.map_field("naam", Handeling.Default.naam)
        mapping.map_field("datum::date", Handeling.Default.datum)
        mapping.map_field("kosten::numeric", Handeling.Financieel.kostprijs)
        self.pipe.mappings.append(mapping)

        self.pipeline.run()

        self.assertEqual(get_row_count('sor_extra.handeling_hstage'), 2)
        self.assertEqual(get_row_count('dv.handeling_hub'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat_financieel'), 2)
Esempio n. 5
0
def init_sor_to_dv_mappings(sor):
    mappings = []
    mapping = SorToEntityMapping('patient_hstage', Patient, sor)
    mapping.map_bk('patientnummer')
    # mapping.map_field('lower(upper(achternaam)) => personalia.achternaam text')
    # mapping.map_field('tussenvoegsels => personalia.tussenvoegsels text')
    # mapping.map_field('voornaam => personalia.voornaam text')
    # mapping.map_field('straat => adres.straat text')
    # mapping.map_field('huisnummer::integer => adres.huisnummer integer')
    # mapping.map_field('huisnummertoevoeging => adres.huisnummertoevoeging text')
    # mapping.map_field('postcode => adres.postcode text')
    # mapping.map_field('plaats => adres.plaats text')
    # mapping.map_field('geslacht => default.geslacht text')
    # mapping.map_field('now() => default.geboortedatum date')
    # mapping.map_field("Coalesce(inschrijvingsnummer, 'jahgsd') => default.inschrijvingsnummer text")
    # mapping.map_field('bsn => default.bsn text')
    # mapping.map_field('inschrijvingsdatum::date => default.inschrijvingsdatum date')
    mapping.map_field(CreateAgb('inschrijvingsdatum', 'bsn'), Patient.Personalia.achternaam)
    mapping.map_field(CreateAgb('plaats', 'bsn'), Patient.Personalia.tussenvoegsels)
    mappings.append(mapping)
    return mappings
Esempio n. 6
0
    def test_run1(self):
        print('======================================================')
        print('===        R U N  1                                ===')
        print('======================================================')
        # # maak tabellen in bron leeg
        exec_sql(source_db_sql[0], test_system_config['source_connection'])
        # # vul bron tabellen met initiele waarden
        exec_sql(source_db_sql[1], test_system_config['source_connection'])
        # exec_sql(source_db_sql[2], test_system_config['source_connection'])

        mapping = SorToEntityMapping('handeling_hstage', Handeling,
                                     self.pipe.sor)
        mapping.map_bk('id')
        mapping.map_field("naam", Handeling.Default.naam)
        mapping.map_field("datum::timestamp", Handeling.Default.datum)
        self.pipe.mappings.append(mapping)

        self.pipeline.run()

        self.assertEqual(get_row_count('sor_extra.handeling_hstage'), 2)
        self.assertEqual(get_row_count('dv.handeling_hub'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat'), 2)
        self.assertEqual(get_row_count('dv.handeling_sat_financieel'), 0)
Esempio n. 7
0
def init_sor_to_dv_mappings(pipe):
    mappings = []
    sor = pipe.sor
    mapping = SorToEntityMapping('zorgverlener_hstage', Zorgverlener, pipe.sor)
    mapping.map_field("zorgverlenernummer", Zorgverlener.bk)
    mapping.map_field('achternaam', Zorgverlener.Personalia.achternaam)
    mapping.map_field('tussenvoegsels', Zorgverlener.Personalia.tussenvoegsels)
    mapping.map_field('voorletters', Zorgverlener.Personalia.voorletters)
    mapping.map_field('voornaam', Zorgverlener.Personalia.voornaam)

    mapping.map_field('zorgverlenernummer',
                      Zorgverlener.Default.zorgverlenernummer)
    mapping.map_field("COALESCE(aanvangsdatum, '0001-01-01')::date",
                      Zorgverlener.Default.aanvangsdatum)
    mapping.map_field('einddatum::date', Zorgverlener.Default.einddatum)

    mapping.map_field('telefoon',
                      Zorgverlener.ContactGegevens.telnummer,
                      type=Zorgverlener.ContactGegevens.Types.telefoon)
    mapping.map_field('telefoon_landcode',
                      Zorgverlener.ContactGegevens.landcode,
                      type=Zorgverlener.ContactGegevens.Types.telefoon)
    mapping.map_field('telefoon_datum::date',
                      Zorgverlener.ContactGegevens.datum,
                      type=Zorgverlener.ContactGegevens.Types.telefoon)
    mapping.map_field('mobiel',
                      Zorgverlener.ContactGegevens.telnummer,
                      type=Zorgverlener.ContactGegevens.Types.mobiel)
    mapping.map_field('mobiel_landcode',
                      Zorgverlener.ContactGegevens.landcode,
                      type=Zorgverlener.ContactGegevens.Types.mobiel)
    mapping.map_field('mobiel_datum::date',
                      Zorgverlener.ContactGegevens.datum,
                      type=Zorgverlener.ContactGegevens.Types.mobiel)
    mapping.map_field('mobiel2',
                      Zorgverlener.ContactGegevens.telnummer,
                      type=Zorgverlener.ContactGegevens.Types.mobiel2)
    mapping.map_field('mobiel2_landcode',
                      Zorgverlener.ContactGegevens.landcode,
                      type=Zorgverlener.ContactGegevens.Types.mobiel2)
    mapping.map_field('mobiel2_datum::date',
                      Zorgverlener.ContactGegevens.datum,
                      type=Zorgverlener.ContactGegevens.Types.mobiel2)
    mappings.append(mapping)

    mapping = SorToEntityMapping('zorgverlener_hstage',
                                 Adres,
                                 pipe.sor,
                                 type='woon')
    mapping.map_bk(
        ["w_postcode||w_huisnummer||COALESCE(w_huisnummer_toevoeging, '')"])
    mapping.map_field('w_straat', Adres.Default.straat)
    mapping.map_field('w_huisnummer::integer', Adres.Default.huisnummer)
    mapping.map_field('w_huisnummer_toevoeging',
                      Adres.Default.huisnummer_toevoeging)
    mapping.map_field('w_postcode', Adres.Default.postcode)
    mapping.map_field('w_plaats', Adres.Default.plaats)
    mapping.map_field('w_land', Adres.Default.land)
    mappings.append(mapping)

    link_mapping = SorToLinkMapping('zorgverlener_hstage',
                                    Zorgverlener_Adres_Link,
                                    sor,
                                    type='woon')
    link_mapping.map_entity(Zorgverlener_Adres_Link.zorgverlener)
    link_mapping.map_entity(Zorgverlener_Adres_Link.adres, type='woon')
    mappings.append(link_mapping)

    mapping = SorToEntityMapping('zorgverlener_hstage',
                                 Adres,
                                 sor,
                                 type=Zorgverlener_Adres_Link.Types.bezoek)
    # mapping = SorToEntityMapping('zorgverlener_hstage', Adres, type='bezoek')
    mapping.map_bk(
        ["b_postcode||b_huisnummer||COALESCE(b_huisnummer_toevoeging, '')"])
    mapping.map_field('b_huisnummer::integer', Adres.Default.huisnummer)
    mapping.map_field('b_huisnummer_toevoeging',
                      Adres.Default.huisnummer_toevoeging)
    mapping.map_field('b_postcode', Adres.Default.postcode)
    mapping.map_field('b_plaats', Adres.Default.plaats)
    mapping.map_field('b_land', Adres.Default.land)
    mapping.map_field('b_straat', Adres.Default.straat)
    mappings.append(mapping)

    link_mapping = SorToLinkMapping('zorgverlener_hstage',
                                    Zorgverlener_Adres_Link,
                                    sor,
                                    type='bezoek')
    link_mapping.map_entity(Zorgverlener_Adres_Link.zorgverlener)
    link_mapping.map_entity(Zorgverlener_Adres_Link.adres, type='bezoek')
    mappings.append(link_mapping)

    mapping = SorToEntityMapping('zorgverlener_hstage',
                                 Adres,
                                 sor,
                                 type='post')
    mapping.map_bk(
        ["p_postcode||p_huisnummer||COALESCE(p_huisnummer_toevoeging, '')"])
    mapping.map_field('p_straat', Adres.Default.straat)
    mapping.map_field('p_huisnummer::integer', Adres.Default.huisnummer)
    mapping.map_field('p_huisnummer_toevoeging',
                      Adres.Default.huisnummer_toevoeging)
    mapping.map_field('p_postcode', Adres.Default.postcode)
    mapping.map_field('p_plaats', Adres.Default.plaats)
    mapping.map_field('p_land', Adres.Default.land)
    mappings.append(mapping)

    link_mapping = SorToLinkMapping('zorgverlener_hstage',
                                    Zorgverlener_Adres_Link,
                                    sor,
                                    type='post')
    link_mapping.map_entity(Zorgverlener_Adres_Link.zorgverlener)
    link_mapping.map_entity(Zorgverlener_Adres_Link.adres, type='post')
    mappings.append(link_mapping)

    mapping = SorToEntityMapping('zorginstelling_hstage', Zorginstelling, sor)
    mapping.map_field("zorginstellings_nummer", Zorginstelling.bk)
    mapping.map_field('zorginstellings_naam',
                      Zorginstelling.Default.zorginstellings_naam)
    mappings.append(mapping)

    mapping = SorToEntityMapping('zorginstelling_hstage',
                                 Adres,
                                 sor,
                                 type='hoofd')
    mapping.map_field(
        "postcode||huisnummer||COALESCE(huisnummer_toevoeging,'')", Adres.bk)
    mapping.map_field('straat', Adres.Default.straat)
    mapping.map_field('huisnummer::integer', Adres.Default.huisnummer)
    mapping.map_field('huisnummer_toevoeging',
                      Adres.Default.huisnummer_toevoeging)
    mapping.map_field('postcode', Adres.Default.postcode)
    mapping.map_field('plaats', Adres.Default.plaats)
    mapping.map_field('land', Adres.Default.land)
    mappings.append(mapping)

    link_mapping = SorToLinkMapping('zorginstelling_hstage',
                                    Zorginstelling_Adres_Link,
                                    sor,
                                    type='hoofd')
    link_mapping.map_entity(Zorginstelling_Adres_Link.zorginstelling)
    link_mapping.map_entity(Zorginstelling_Adres_Link.adres, type='hoofd')
    mappings.append(link_mapping)

    return mappings

    def get_row_count(unittest, table_name, count):
        test_sql = "SELECT * FROM " + table_name
        result = execute_sql(test_sql)
        unittest.assertEqual(len(result), count, table_name)