Netherlands - Generic Functions for data exchange Implementation Guide
0.1.0 - ci-build Netherlands flag

Netherlands - Generic Functions for data exchange Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Example Bundle: Bundle of FHIR Logical Models and StructureMaps for KVK Basisprofiel and Vestigingsprofiel

Bundle kvk-logicals-and-struturemaps of type transaction


Entry 1 - fullUrl = urn:uuid:KvkBasisprofiel

Resource StructureDefinition:

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. kvk-basisprofiel BaseKVK Basisprofiel
... kvkNummer 0..1stringNederlands Kamer van Koophandel nummer: bestaat uit 8 cijfers
... uraNummer 0..*stringURA nummer uit het LRZa
... indNonMailing 0..1stringIndicatie geen ongevraagde reclame per post of verkoop aan de deur
... formeleRegistratiedatum 0..1stringRegistratiedatum onderneming in het Handelsregister
... materieleRegistratie 0..1BackboneElementMateriële registratie datums
.... datumAanvang 0..1stringStartdatum onderneming
.... datumEinde 0..1stringEinddatum onderneming
... totaalWerkzamePersonen 0..1integerTotaal aantal werkzame personen
... statutaireNaam 0..1stringDe naam van de onderneming wanneer er statuten geregistreerd zijn
... handelsnamen 0..*BackboneElementAlle namen waaronder een onderneming of vestiging handelt (op volgorde van registreren)
.... naam 0..1stringHandelsnaam
.... volgorde 0..1integerVolgorde van registreren
... sbiActiviteiten 0..*BackboneElementSBI activiteiten conform SBI 2008 (Standard Industrial Classification)
.... sbiCode 0..1stringSBI code
.... sbiOmschrijving 0..1stringSBI omschrijving
.... indHoofdactiviteit 0..1stringIndicatie hoofdactiviteit
... embedded 0..1BackboneElementEmbedded resources (_embedded)
.... hoofdvestiging 0..1BackboneElementHoofdvestiging informatie
..... vestigingsnummer 0..1stringVestigingsnummer: uniek nummer van 12 cijfers
..... kvkNummer 0..1stringKVK nummer
..... rsin 0..1stringRechtspersonen Samenwerkingsverbanden Informatie Nummer
..... eersteHandelsnaam 0..1stringDe naam waaronder een onderneming of vestiging handelt
..... formeleRegistratiedatum 0..1stringRegistratiedatum onderneming in HR
..... statutaireNaam 0..1stringStatutaire naam
..... indHoofdvestiging 0..1stringIndicatie hoofdvestiging (Ja/Nee)
..... indCommercieleVestiging 0..1stringIndicatie commerciële vestiging (Ja/Nee)
..... voltijdWerkzamePersonen 0..1integerVoltijd werkzame personen
..... totaalWerkzamePersonen 0..1integerTotaal werkzame personen
..... deeltijdWerkzamePersonen 0..1integerDeeltijd werkzame personen
..... adressen 0..*BackboneElementAdressen van de vestiging
...... type 0..1stringCorrespondentieadres en/of bezoekadres
...... indAfgeschermd 0..1stringIndicatie of het adres is afgeschermd
...... volledigAdres 0..1stringVolledig adres
...... straatnaam 0..1stringStraatnaam
...... huisnummer 0..1integerHuisnummer
...... huisletter 0..1stringHuisletter
...... huisnummerToevoeging 0..1stringHuisnummer toevoeging
...... postcode 0..1stringPostcode
...... plaats 0..1stringPlaats
...... land 0..1stringLand
..... websites 0..*stringWebsites
.... eigenaar 0..1BackboneElementEigenaar informatie
..... rsin 0..1stringRechtspersonen Samenwerkingsverbanden Informatie Nummer
..... rechtsvorm 0..1stringRechtsvorm
..... uitgebreideRechtsvorm 0..1stringUitgebreide rechtsvorm
..... adressen 0..*BackboneElementAdressen van de eigenaar
...... type 0..1stringType adres
...... indAfgeschermd 0..1stringIndicatie of het adres is afgeschermd
...... volledigAdres 0..1stringVolledig adres
...... straatnaam 0..1stringStraatnaam
...... huisnummer 0..1integerHuisnummer
...... huisletter 0..1stringHuisletter
...... huisnummerToevoeging 0..1stringHuisnummer toevoeging
...... postcode 0..1stringPostcode
...... plaats 0..1stringPlaats
...... land 0..1stringLand
..... websites 0..*stringWebsites van de eigenaar

doco Documentation for this format

Request:

PUT StructureDefinition/KvkBasisprofiel

Entry 2 - fullUrl = urn:uuid:KvkBasisprofielToOrganization

Resource StructureMap:

map "http://minvws.github.io/generiekefuncties-docs/StructureMap/KvkBasisprofielToOrganization" = "KvkBasisprofielToOrganization"

// StructureMap die een KVK Basisprofiel API response transformeert naar een FHIR Organization resource.

uses "http://minvws.github.io/generiekefuncties-docs/StructureDefinition/kvk-basisprofiel" alias KvkBasisprofiel as source
uses "http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-organization" alias NlGfOrganization as target

group KvkBasisprofielToOrganization(source src : KvkBasisprofiel, target tgt : Organization) {
  src -> tgt.meta as meta then {
    src -> meta.profile = 'http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-organization' "setProfileUrl";
  } "setProfile";
  src.kvkNummer as kvkNum -> tgt.identifier as kvkId then {
    kvkNum -> kvkId.use = 'official' "kvkUse";
    kvkNum -> kvkId.system = 'http://fhir.nl/fhir/NamingSystem/kvk' "kvkSystem";
    kvkNum -> kvkId.value = kvkNum "kvkValue";
  };
  src.uraNummer as uraNum -> tgt.identifier as uraId then {
    uraNum -> uraId.use = 'official' "uraUse";
    uraNum -> uraId.system = 'http://fhir.nl/fhir/NamingSystem/ura' "uraSystem";
    uraNum -> uraId.value = uraNum "uraValue";
    uraNum -> uraId.assigner as assignerRef then {
      uraNum -> assignerRef.identifier as assignerId then {
        uraNum -> assignerId.system = 'http://fhir.nl/fhir/NamingSystem/ura' "assignerIdSystem";
        uraNum -> assignerId.value = '00000001' "assignerIdValue";
        uraNum -> assignerId.type as assignerIdType then {
          uraNum -> assignerIdType.coding as assignerIdTypeCoding then {
            uraNum -> assignerIdTypeCoding.system = 'http://terminology.hl7.org/CodeSystem/provenance-participant-type' "assignerIdTypeCodingSystem";
            uraNum -> assignerIdTypeCoding.code = 'author' "assignerIdTypeCodingCode";
          } "assignerIdTypeCoding";
        } "assignerIdType";
      } "assignerIdentifier";
    } "uraAssigner";
  };
  src.naam as naam -> tgt.name = naam;
  src -> tgt.active = true "setActive";
  src.statutaireNaam as statNaam -> tgt.alias = statNaam;
  src.handelsnamen as hn then KvkHandelsnaamToAlias(hn, tgt);
  src.sbiActiviteiten as sbi -> tgt.type as cc then KvkSBIToCodeableConcept(sbi, cc);
  src.embedded as emb then {
    emb.eigenaar as eig then {
      eig.rsin as rsin -> tgt.identifier as rsinId then {
        rsin -> rsinId.system = 'http://fhir.nl/fhir/NamingSystem/rsin' "rsinSystem";
        rsin -> rsinId.value = rsin "rsinValue";
      };
    };
    emb.hoofdvestiging as hv then {
      hv.adressen as adres -> tgt.address as addr then KvkAdresToAddress(adres, addr);
      hv.websites as web -> tgt.telecom as tel then KvkWebsiteToContactPoint(web, tel);
    };
  };
}

group KvkHandelsnaamToAlias(source src, target tgt : Organization) {
  src.naam as naam -> tgt.alias = naam;
}

group KvkSBIToCodeableConcept(source src, target tgt : CodeableConcept) {
  src -> tgt.coding as coding then {
    src -> coding.system = 'http://minvws.github.io/generiekefuncties-docs/CodeSystem/nl-gf-sbi-2025-cs' "sbiSystem";
    src.sbiCode as code -> coding.code = code;
    src.sbiOmschrijving as omschr -> coding.display = omschr "sbiDisplay";
  } "sbiCoding";
}

group KvkAdresToAddress(source src, target tgt : Address) {
  src.volledigAdres as volledigAdres -> tgt.text = volledigAdres;
  src.straatnaam as straat -> tgt.line = straat as addrLine then {
    straat -> addrLine.extension as ext then {
      straat -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName' "streetNameExtUrl";
      straat -> ext.valueString = straat "streetNameExtValue";
    } "streetNameExt";
  };
  src.huisnummer as huisnr -> tgt.line = cast(huisnr, 'string') as addrLine2 then {
    huisnr -> addrLine2.extension as ext then {
      huisnr -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber' "houseNumberExtUrl";
      huisnr -> ext.valueString = cast(huisnr, 'string') "houseNumberExtValue";
    } "houseNumberExt";
  };
  src.huisletter as huisltr -> tgt.line = huisltr as addrLine3 then {
    huisltr -> addrLine3.extension as ext then {
      huisltr -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix' "houseLetterExtUrl";
      huisltr -> ext.valueString = huisltr "houseLetterExtValue";
    } "houseLetterExt";
  };
  src.huisnummerToevoeging as huisnrToev -> tgt.line = huisnrToev as addrLine4 then {
    huisnrToev -> addrLine4.extension as ext then {
      huisnrToev -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix' "houseNumberAdditionExtUrl";
      huisnrToev -> ext.valueString = huisnrToev "houseNumberAdditionExtValue";
    } "houseNumberAdditionExt";
  };
  src.postcode as pc -> tgt.postalCode = pc;
  src.plaats as plaats -> tgt.city = plaats;
  src.land as land -> tgt.country = land;
  src -> tgt.use = 'work' "setUse";
}

group KvkWebsiteToContactPoint(source src, target tgt : ContactPoint) {
  src -> tgt.system = 'url' "setSystem";
  src as url -> tgt.value = url "setValue";
  src -> tgt.use = 'work' "setUse";
}

Request:

PUT StructureMap/KvkBasisprofielToOrganization

Entry 3 - fullUrl = urn:uuid:KvkVestigingsprofiel

Resource StructureDefinition:

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. kvk-vestigingsprofiel BaseKVK Vestigingsprofiel
... vestigingsnummer 0..1stringVestigingsnummer: uniek nummer dat bestaat uit 12 cijfers
... kvkNummer 0..1stringNederlands Kamer van Koophandel nummer: bestaat uit 8 cijfers
... rsin 0..1stringRechtspersonen Samenwerkingsverbanden Informatie Nummer
... formeleRegistratiedatum 0..1stringRegistratiedatum onderneming in HR
... materieleRegistratie 0..1BackboneElementMateriële registratie datums
.... datumAanvang 0..1stringStartdatum vestiging
.... datumEinde 0..1stringEinddatum vestiging
... statutaireNaam 0..1stringDe naam van de vestiging wanneer er statuten geregistreerd zijn
... eersteHandelsnaam 0..1stringDe naam waaronder een onderneming of vestiging handelt
... indHoofdvestiging 0..1stringHoofdvestiging (Ja/Nee)
... indCommercieleVestiging 0..1stringCommerciële vestiging (Ja/Nee)
... voltijdWerkzamePersonen 0..1integerAantal voltijd werkzame personen
... totaalWerkzamePersonen 0..1integerTotaal aantal werkzame personen
... deeltijdWerkzamePersonen 0..1integerAantal deeltijd werkzame personen
... handelsnamen 0..*BackboneElementAlle namen waaronder een vestiging handelt (op volgorde van registreren)
.... naam 0..1stringHandelsnaam
.... volgorde 0..1integerVolgorde van registreren
... adressen 0..*BackboneElementAdressen van de vestiging
.... type 0..1stringCorrespondentieadres en/of bezoekadres
.... indAfgeschermd 0..1stringIndicatie of het adres is afgeschermd
.... volledigAdres 0..1stringVolledig adres
.... straatnaam 0..1stringStraatnaam
.... huisnummer 0..1integerHuisnummer
.... huisletter 0..1stringHuisletter
.... huisnummerToevoeging 0..1stringHuisnummer toevoeging
.... toevoegingAdres 0..1stringToevoeging adres
.... postcode 0..1stringPostcode
.... postbusnummer 0..1integerPostbusnummer
.... plaats 0..1stringPlaats
.... straatHuisnummer 0..1stringStraat en huisnummer
.... postcodeWoonplaats 0..1stringPostcode en woonplaats
.... regio 0..1stringRegio
.... land 0..1stringLand
.... geoData 0..1BackboneElementBAG geoData
..... addresseerbaarObjectId 0..1stringUnieke BAG id
..... nummerAanduidingId 0..1stringUnieke BAG nummeraanduiding id
..... gpsLatitude 0..1decimalLengtegraad
..... gpsLongitude 0..1decimalBreedtegraad
..... rijksdriehoekX 0..1decimalRijksdriehoek X-coördinaat
..... rijksdriehoekY 0..1decimalRijksdriehoek Y-coördinaat
..... rijksdriehoekZ 0..1decimalRijksdriehoek Z-coördinaat
... websites 0..*stringWebsites
... sbiActiviteiten 0..*BackboneElementSBI activiteiten conform SBI 2008
.... sbiCode 0..1stringSBI code
.... sbiOmschrijving 0..1stringSBI omschrijving
.... indHoofdactiviteit 0..1stringIndicatie hoofdactiviteit

doco Documentation for this format

Request:

PUT StructureDefinition/KvkVestigingsprofiel

Entry 4 - fullUrl = urn:uuid:KvkVestigingsprofielToLocation

Resource StructureMap:

map "http://minvws.github.io/generiekefuncties-docs/StructureMap/KvkVestigingsprofielToLocation" = "KvkVestigingsprofielToLocation"

// StructureMap die een KVK Vestigingsprofiel API response transformeert naar een FHIR Location resource.

uses "http://minvws.github.io/generiekefuncties-docs/StructureDefinition/kvk-vestigingsprofiel" alias KvkVestigingsprofiel as source
uses "http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-location" alias NlGfLocation as target

group KvkVestigingsprofielToLocation(source src : KvkVestigingsprofiel, target tgt : Location) {
  src -> tgt.meta as meta then {
    src -> meta.profile = 'http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-location' "setProfileUrl";
  } "setProfile";
  src.vestigingsnummer as vestNr -> tgt.identifier as vestId then {
    vestNr -> vestId.use = 'official' "vestUse";
    vestNr -> vestId.system = 'http://fhir.nl/fhir/NamingSystem/kvk-vestigingsnummer' "vestSystem";
    vestNr -> vestId.value = vestNr "vestValue";
    vestNr -> vestId.assigner as assignerRef then {
      vestNr -> assignerRef.identifier as assignerId then {
        vestNr -> assignerId.system = 'http://fhir.nl/fhir/NamingSystem/ura' "assignerIdSystem";
        vestNr -> assignerId.value = '00000001' "assignerIdValue";
        vestNr -> assignerId.type as assignerIdType then {
          vestNr -> assignerIdType.coding as assignerIdTypeCoding then {
            vestNr -> assignerIdTypeCoding.system = 'http://terminology.hl7.org/CodeSystem/provenance-participant-type' "assignerIdTypeCodingSystem";
            vestNr -> assignerIdTypeCoding.code = 'author' "assignerIdTypeCodingCode";
          } "assignerIdTypeCoding";
        } "assignerIdType";
      } "assignerIdentifier";
    } "vestAssigner";
  };
  src.kvkNummer as kvkNum -> tgt.managingOrganization as orgRef then {
    kvkNum -> orgRef.identifier as orgId then {
      kvkNum -> orgId.system = 'http://fhir.nl/fhir/NamingSystem/kvk' "orgIdSystem";
      kvkNum -> orgId.value = kvkNum "orgIdValue";
    } "orgRefIdentifier";
    kvkNum -> orgRef.type = 'Organization' "orgRefType";
    kvkNum -> orgRef.reference = append('Organization/', kvkNum) "orgRefReference";
  };
  src.eersteHandelsnaam as naam -> tgt.name = naam;
  src -> tgt.status = 'active' "setStatus";
  src -> tgt.mode = 'instance' "setMode";
  src.statutaireNaam as statNaam -> tgt.alias = statNaam;
  src.handelsnamen as hn then KvkVestHandelsnaamToAlias(hn, tgt);
  src.adressen as adres -> tgt.address as addr then KvkVestAdresToAddress(adres, addr);
  src.adressen as adres then {
    adres.geoData as geo -> tgt.position as pos then KvkGeoDataToPosition(geo, pos) "geoDataToPosition";
  } "geoData";
  src.websites as web -> tgt.telecom as tel then KvkVestWebsiteToContactPoint(web, tel);
  src.sbiActiviteiten as sbi -> tgt.type as cc then KvkVestSBIToCodeableConcept(sbi, cc);
}

group KvkVestHandelsnaamToAlias(source src, target tgt : Location) {
  src.naam as naam -> tgt.alias = naam;
}

group KvkVestAdresToAddress(source src, target tgt : Address) {
  src.volledigAdres as volledigAdres -> tgt.text = volledigAdres;
  src.straatnaam as straat -> tgt.line = straat as addrLine then {
    straat -> addrLine.extension as ext then {
      straat -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName' "streetNameExtUrl";
      straat -> ext.valueString = straat "streetNameExtValue";
    } "streetNameExt";
  };
  src.huisnummer as huisnr -> tgt.line = cast(huisnr, 'string') as addrLine2 then {
    huisnr -> addrLine2.extension as ext then {
      huisnr -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber' "houseNumberExtUrl";
      huisnr -> ext.valueString = cast(huisnr, 'string') "houseNumberExtValue";
    } "houseNumberExt";
  };
  src.huisletter as huisltr -> tgt.line = huisltr as addrLine3 then {
    huisltr -> addrLine3.extension as ext then {
      huisltr -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix' "houseLetterExtUrl";
      huisltr -> ext.valueString = huisltr "houseLetterExtValue";
    } "houseLetterExt";
  };
  src.huisnummerToevoeging as huisnrToev -> tgt.line = huisnrToev as addrLine4 then {
    huisnrToev -> addrLine4.extension as ext then {
      huisnrToev -> ext.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix' "houseNumberAdditionExtUrl";
      huisnrToev -> ext.valueString = huisnrToev "houseNumberAdditionExtValue";
    } "houseNumberAdditionExt";
  };
  src.postcode as pc -> tgt.postalCode = pc;
  src.plaats as plaats -> tgt.city = plaats;
  src.regio as regio -> tgt.district = regio;
  src.land as land -> tgt.country = land;
  src -> tgt.use = 'work' "setUse";
}

group KvkGeoDataToPosition(source src, target tgt : Location.position) {
  src.gpsLatitude as lat -> tgt.latitude = lat "latitude";
  src.gpsLongitude as lon -> tgt.longitude = lon "longitude";
}

group KvkVestWebsiteToContactPoint(source src, target tgt : ContactPoint) {
  src -> tgt.system = 'url' "setSystem";
  src as url -> tgt.value = url "setValue";
  src -> tgt.use = 'work' "setUse";
}

group KvkVestSBIToCodeableConcept(source src, target tgt : CodeableConcept) {
  src -> tgt.coding as coding then {
    src -> coding.system = 'http://minvws.github.io/generiekefuncties-docs/CodeSystem/nl-gf-sbi-2025-cs' "sbiSystem";
    src.sbiCode as code -> coding.code = code;
    src.sbiOmschrijving as omschr -> coding.display = omschr "sbiDisplay";
  } "sbiCoding";
}

Request:

PUT StructureMap/KvkVestigingsprofielToLocation