Broncode voor kerapu.shredder.ReferentieShredder

from lxml import etree

from kerapu.shredder.Shredder import Shredder


[documentatie]class ReferentieShredder(Shredder): """ Klasse voor het schreden en opslaan in CSV-formaat van referentietabellen opgeslagen in XML-formaat. """ # ------------------------------------------------------------------------------------------------------------------
[documentatie] def shred_xml_file(self, filename: str) -> None: """ Slaat de referentietabellen op in CSV-formaat. :param str filename: De filenaam van het XML bestand. """ self._io.title('Shredder') doc = etree.parse(filename) xpath = '/soapenv:Envelope/soapenv:Body/InlezenReferenties/Referenties/' namespaces = {'soapenv': 'http://schemas.xmlsoap.org/soap/envelope/'} # Extract AfsluitReden. table = doc.xpath(xpath + 'AfsluitRedenen/AfsluitReden', namespaces=namespaces) fields = ['AfsluitRedenCode', 'AfsluitRedenOmschrijving', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'AfsluitRedenen.csv', fields, fields) # Extract BehandelKlasse. table = doc.xpath(xpath + 'BehandelKlassen/BehandelKlasse', namespaces=namespaces) fields = ['ZorgProductGroepCode', 'ZorgActiviteitCode', 'BehandelKlasseCode', 'BehandelKlasseOmschrijving', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'BehandelKlassen.csv', fields, fields) # Extract Diagnose. table = doc.xpath(xpath + 'Diagnosen/Diagnose', namespaces=namespaces) fields = ['SpecialismeCode', 'DiagnoseCode', 'DiagnoseOmschrijving', 'DiagnoseAttribuutCode', 'ICD10DiagnoseCode', 'DiagnoseCluster1', 'DiagnoseCluster2', 'DiagnoseCluster3', 'DiagnoseCluster4', 'DiagnoseCluster5', 'DiagnoseCluster6', 'BeginDatum', 'EindDatum', 'VersieDatum'] xpaths = ['SpecialismeCode', 'DiagnoseCode', 'DiagnoseOmschrijving', 'DiagnoseAttribuutCode', 'ICD10DiagnoseCode', "DiagnoseCluster/DiagnoseClusterItem[@Key='1']", "DiagnoseCluster/DiagnoseClusterItem[@Key='2']", "DiagnoseCluster/DiagnoseClusterItem[@Key='3']", "DiagnoseCluster/DiagnoseClusterItem[@Key='4']", "DiagnoseCluster/DiagnoseClusterItem[@Key='5']", "DiagnoseCluster/DiagnoseClusterItem[@Key='6']", 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'Diagnosen.csv', fields, xpaths) # Extract Geslacht. table = doc.xpath(xpath + 'Geslachten/Geslacht', namespaces=namespaces) fields = ['GeslachtCodeNEN', 'GeslachtCodeHL7', 'GeslachtOmschrijving', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'Geslachten.csv', fields, fields) # Extract LimitatieMachtiging. table = doc.xpath(xpath + 'LimitatieMachtigingen/LimitatieMachtiging', namespaces=namespaces) fields = ['SpecialismeCode', 'DiagnoseCode', 'DiagnoseOmschrijving', 'ZorgActiviteitCode', 'ZorgActiviteitOmschrijving', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'LimitatieMachtigingen.csv', fields, fields) # Extract Specialisme. table = doc.xpath(xpath + 'Specialismen/Specialisme', namespaces=namespaces) fields = ['SpecialismeCode', 'SpecialismeOmschrijving', 'SpecialismeIndicatie', 'SpecialismeOID', 'SpecialismeCluster1', 'SpecialismeCluster2', 'IndicatieAanspraakbeperking', 'BeginDatum', 'EindDatum', 'VersieDatum'] xpaths = ['SpecialismeCode', 'SpecialismeOmschrijving', 'SpecialismeIndicatie', 'SpecialismeOID', 'SpecialismeCluster/SpecialismeClusterItem[(@Key=1)]', 'SpecialismeCluster/SpecialismeClusterItem[(@Key=2)]', 'IndicatieAanspraakbeperking', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'Specialismen.csv', fields, xpaths) # Extract VertaalZorgActiviteit. table = doc.xpath(xpath + 'VertaalZorgActiviteiten/VertaalZorgActiviteit', namespaces=namespaces) fields = ['ZorgActiviteitCode', 'ZorgActiviteitOmschrijving', 'ZorgActiviteitCodeOud', 'ZorgActiviteitOmschrijvingOud', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'VertaalZorgActiviteiten.csv', fields, fields) # Extract ZorgActiviteit. table = doc.xpath(xpath + 'ZorgActiviteiten/ZorgActiviteit', namespaces=namespaces) fields = ['ZorgActiviteitCode', 'ZorgActiviteitOmschrijving', 'ZorgActiviteitCluster01', 'ZorgActiviteitCluster02', 'ZorgActiviteitCluster03', 'ZorgActiviteitCluster04', 'ZorgActiviteitCluster05', 'ZorgActiviteitCluster06', 'ZorgActiviteitCluster07', 'ZorgActiviteitCluster08', 'ZorgActiviteitCluster09', 'ZorgActiviteitCluster10', 'ZorgActiviteitWeegFactor1', 'ZorgActiviteitWeegFactor2', 'WBMVCode', 'InnovatieCode', 'AanspraakCode', 'TariefType', 'Zorgprofielklassecode', 'OpNota', 'BeginDatum', 'EindDatum', 'VersieDatum'] xpaths = ['ZorgActiviteitCode', 'ZorgActiviteitOmschrijving', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=1]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=2]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=3]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=4]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=5]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=6]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=7]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=8]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=9]', 'ZorgActiviteitCluster/ZorgActiviteitClusterItem[@Key=10]', 'ZorgActiviteitWeegFactor/ZorgActiviteitWeegFactorItem[@Key=1]', 'ZorgActiviteitWeegFactor/ZorgActiviteitWeegFactorItem[@Key=2]', 'WBMVCode', 'InnovatieCode', 'AanspraakCode', 'TariefType', 'Zorgprofielklassecode', 'OpNota', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'ZorgActiviteiten.csv', fields, xpaths) # Extract ZorgProductGroep. table = doc.xpath(xpath + 'ZorgProductGroepen/ZorgProductGroep', namespaces=namespaces) fields = ['ZorgProductGroepCode', 'ZorgProductGroepOmschrijving', 'BeslisRegelStart', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'ZorgProductGroepen.csv', fields, fields) # Extract ZorgType. table = doc.xpath(xpath + 'ZorgTypen/ZorgType', namespaces=namespaces) fields = ['SpecialismeCode', 'ZorgTypeCode', 'ZorgTypeOmschrijving', 'ZorgTypeAttribuutCode', 'ZorgTypeCluster1', 'ZorgTypeCluster2', 'BeginDatum', 'EindDatum', 'VersieDatum'] xpaths = ['SpecialismeCode', 'ZorgTypeCode', 'ZorgTypeOmschrijving', 'ZorgTypeAttribuutCode', 'ZorgTypeCluster/ZorgTypeClusterItem[(@Key=1)]', 'ZorgTypeCluster/ZorgTypeClusterItem[(@Key=2)]', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'ZorgTypen.csv', fields, xpaths) # Extract ZorgVraag. table = doc.xpath(xpath + 'ZorgVragen/ZorgVraag', namespaces=namespaces) fields = ['SpecialismeCode', 'ZorgVraagCode', 'ZorgVraagOmschrijving', 'ZorgVraagAttribuutCode', 'ZorgVraagCluster1', 'ZorgVraagCluster2', 'BeginDatum', 'EindDatum', 'VersieDatum'] xpaths = ['SpecialismeCode', 'ZorgVraagCode', 'ZorgVraagOmschrijving', 'ZorgVraagAttribuutCode', 'ZorgVraagCluster/ZorgVraagClusterItem[(@Key=1)]', 'ZorgVraagCluster/ZorgVraagClusterItem[(@Key=2)]', 'BeginDatum', 'EindDatum', 'VersieDatum'] self.extract_table(table, 'ZorgVragen.csv', fields, xpaths)
# ----------------------------------------------------------------------------------------------------------------------