MedMij:Vsuperdraft Kwalificatie FAQ: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
(Added nowiki tags for urn:oid)
 
(2 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 6: Regel 6:
 
* Waar de fout doorgaans in het bericht te vinden is.
 
* Waar de fout doorgaans in het bericht te vinden is.
 
* De ernst van de fout (blokkerend betekend dat herkwalificatie nodig is)
 
* De ernst van de fout (blokkerend betekend dat herkwalificatie nodig is)
* Uitleg over de fout met waar mogelijk, links naar de relevante informatie
+
* Uitleg over de fout met waar mogelijk, links naar de relevante informatie met waar mogelijk een stuk voorbeeldcode over wat verwacht wordt in de technische kwalificatie
* Waar mogelijk een stuk voorbeeldcode over wat verwacht wordt in de technische kwalificatie
 
 
Het is sterk aangeraden om zelf voorafgaand aan de kwalificatie met behulp van deze tabel te controleren of FHIR berichten correct worden gegenereerd. Bij verdere vragen kan een ticket worden ingeschoten in Bits op het MedMij project.
 
Het is sterk aangeraden om zelf voorafgaand aan de kwalificatie met behulp van deze tabel te controleren of FHIR berichten correct worden gegenereerd. Bij verdere vragen kan een ticket worden ingeschoten in Bits op het MedMij project.
  
  
{| class="wikitable"
+
{| class="wikitable sortable mw-collapsible"
 
! Informatiestandaard !! Veel voorkomende fouten !! Element !! Blokkerend !! Uitleg  
 
! Informatiestandaard !! Veel voorkomende fouten !! Element !! Blokkerend !! Uitleg  
 
|-
 
|-
Regel 29: Regel 28:
 
URL-gebaseerde fullUrl in Bundles MOET zijn gebaseerd op Resource.id van de entry.resource. Resource.id MOET stabiel op de FHIR-server zijn, en is daardoor geschikt voor RESTful read. In dit geval verwacht je dus dat in alle Bundles bij dezelfde resource, ook dezelfde fulllUrl wordt gehanteerd.
 
URL-gebaseerde fullUrl in Bundles MOET zijn gebaseerd op Resource.id van de entry.resource. Resource.id MOET stabiel op de FHIR-server zijn, en is daardoor geschikt voor RESTful read. In dit geval verwacht je dus dat in alle Bundles bij dezelfde resource, ook dezelfde fulllUrl wordt gehanteerd.
  
urn:oid gebaseerde fullUrl in Bundles is normalerwijs gebaseerd op Resource.identifier van de resource. Bijvoorbeeld het UZI-nummer van de zorgverlener of de URA van de zorgaanbieder. De OID-gebaseerde identificatie heeft dezelfde stabiele eigenschappen als identificatie op basis van een absolute URL. De OID kan echter langer zijn dan de 64 tekens die een Resource.id toestaat, dus is niet altijd bruikbaar als zodanig. urn:oid gebaseerde fullUrls MOETEN stabiel te zijn in alle Bundles van dezelfde aanbieder
+
<nowiki>urn:oid</nowiki> gebaseerde fullUrl in Bundles is normalerwijs gebaseerd op Resource.identifier van de resource. Bijvoorbeeld het UZI-nummer van de zorgverlener of de URA van de zorgaanbieder. De OID-gebaseerde identificatie heeft dezelfde stabiele eigenschappen als identificatie op basis van een absolute URL. De OID kan echter langer zijn dan de 64 tekens die een Resource.id toestaat, dus is niet altijd bruikbaar als zodanig. <nowiki>urn:oid</nowiki> gebaseerde fullUrls MOETEN stabiel te zijn in alle Bundles van dezelfde aanbieder
 
urn:uuid gebaseerde fullUrl in Bundles zijn Bundle-uniek en kun je niet vergelijken tussen Bundles. Overeenkomsten tussen Bundles zijn onwaarschijnlijk, maar als ze er al zijn is dat toeval.
 
urn:uuid gebaseerde fullUrl in Bundles zijn Bundle-uniek en kun je niet vergelijken tussen Bundles. Overeenkomsten tussen Bundles zijn onwaarschijnlijk, maar als ze er al zijn is dat toeval.
 
Zie voor meer informatie: https://www.hl7.org/fhir/STU3/bundle.html"
 
Zie voor meer informatie: https://www.hl7.org/fhir/STU3/bundle.html"
Regel 189: Regel 188:
 
|-
 
|-
 
| Alle || Resource.contained mag niet leeg zijn indien aanwezig || Resource.contained || Ja || Resource.contained MOET, indien aanwezig, een Resource bevatten met inhoud. Als het enige wat je van een Resource weet, de identifier is, dan is het zinvoller om geen Reference.reference te gebruiken, maar een Reference.identifier. Op die manier hoef je geen contained pseudo resource te maken.
 
| Alle || Resource.contained mag niet leeg zijn indien aanwezig || Resource.contained || Ja || Resource.contained MOET, indien aanwezig, een Resource bevatten met inhoud. Als het enige wat je van een Resource weet, de identifier is, dan is het zinvoller om geen Reference.reference te gebruiken, maar een Reference.identifier. Op die manier hoef je geen contained pseudo resource te maken.
 +
|-
 +
| PDF/A || Onjuist gebruik of afwezigheid identifier en/of masteridentifier || resource.masterIdentifier of resource.Identifier || Ja || De DocumentManifest.masterIdentifier en DocumentReference.masterIdentifier dienen door de XIS zelf te worden gegeneerd, met een eigen system. De .masterIdentifier is de versie specifieke identifier waar de .identifier een versie onafhankelijke identifier kan zijn (https://www.hl7.org/fhir/stu3/documentmanifest-definitions.html#DocumentManifest.masterIdentifier)
 
|}
 
|}

Huidige versie van 15 mei 2020 om 10:05

Technische Kwalificatie

Het technisch op de juiste manier FHIR berichten genereren, blijkt in de praktijk vaak niet bij de eerste kwalificatie goed te gaan en levert daarmee vertraging op in het kwalificatieproces. Om het kwalificatieproces soepeler te laten verlopen, is een overzicht gemaakt van fouten in de FHIR berichten die het vaakst opduiken tijdens de technische kwalificatie. In het hieronder volgende overzicht wordt duidelijk gemaakt:

  • Welke informatiestandaard wordt geraakt
  • Wat de fout betreft.
  • Waar de fout doorgaans in het bericht te vinden is.
  • De ernst van de fout (blokkerend betekend dat herkwalificatie nodig is)
  • Uitleg over de fout met waar mogelijk, links naar de relevante informatie met waar mogelijk een stuk voorbeeldcode over wat verwacht wordt in de technische kwalificatie

Het is sterk aangeraden om zelf voorafgaand aan de kwalificatie met behulp van deze tabel te controleren of FHIR berichten correct worden gegenereerd. Bij verdere vragen kan een ticket worden ingeschoten in Bits op het MedMij project.


Informatiestandaard Veel voorkomende fouten Element Blokkerend Uitleg
Alle Resource.id ontbreekt Resource.id Ja, maar "Resource.id ontbreekt. Deze is verplicht volgens de FHIR specificatie: ‘The only time that a resource does not have an id is when it is being submitted to the server using a create operation.’ https://www.hl7.org/fhir/STU3/resource-definitions.html#Resource.id

Dit beleid is bijgesteld in latere versies van FHIR. De aanwezigheid van een Resource.id veronderstelt namelijk ook dat een read-actie op dit id mogelijk is en dat daar dan ook altijd hetzelfde object (meting, conditie, allergie, ...) uit komt. Als een FHIR server dit niet kan garanderen, bijvoorbeeld omdat het een middlewarepartij is zoals een DVZA, die niet stateful is en geen input heeft in wat hem wordt aangeleverd op de backend (XIS), dan kan hij ook geen Resource.id opleveren.

Resource.id is ""verplicht tenzij"". Een FHIR server mooet er alles aan doen deze te ondersteunen, omdat ontbreken ervan RESTful read onmogelijk maakt en daarop steunende use cases, maar als het niet kan, is dat niet blokkerend, zolang de informatiestandaard die wordt gekwalificeerd geen read vereist."

<Patient xmlns="http://hl7.org/fhir">
    <id value="nl-core-patient-03"/>
Alle Bundle.entry.fullUrl en Resource.id is zijn niet consistent resource.id Ja, maar "Een verwijzing naar Patient/Practitioner etc. moet over verschillende references altijd dezelfde relatieve of absolute URL hebben, als deze resources ook beschikken over een Resource.id.

Als resources worden geincludeerd in Bundles zonder Resource.id, dan is de fullUrl naar verwachting dus ook Bundle-uniek en kun je die niet vergelijken tusen Bundles.

URL-gebaseerde fullUrl in Bundles MOET zijn gebaseerd op Resource.id van de entry.resource. Resource.id MOET stabiel op de FHIR-server zijn, en is daardoor geschikt voor RESTful read. In dit geval verwacht je dus dat in alle Bundles bij dezelfde resource, ook dezelfde fulllUrl wordt gehanteerd.

urn:oid gebaseerde fullUrl in Bundles is normalerwijs gebaseerd op Resource.identifier van de resource. Bijvoorbeeld het UZI-nummer van de zorgverlener of de URA van de zorgaanbieder. De OID-gebaseerde identificatie heeft dezelfde stabiele eigenschappen als identificatie op basis van een absolute URL. De OID kan echter langer zijn dan de 64 tekens die een Resource.id toestaat, dus is niet altijd bruikbaar als zodanig. urn:oid gebaseerde fullUrls MOETEN stabiel te zijn in alle Bundles van dezelfde aanbieder urn:uuid gebaseerde fullUrl in Bundles zijn Bundle-uniek en kun je niet vergelijken tussen Bundles. Overeenkomsten tussen Bundles zijn onwaarschijnlijk, maar als ze er al zijn is dat toeval. Zie voor meer informatie: https://www.hl7.org/fhir/STU3/bundle.html"

<!-- Resource.id verplicht, anders klopt de fullUrl op http ook niet -->
<entry>
    <fullUrl value="http://example.org/fhir/AllergyIntolerance/f9125272-8305-11ea-5462-020000000000"/>
    <resource>
        <AllergyIntolerance>
            <id value="f9125272-8305-11ea-5462-020000000000"/>

--------
<!-- Resource.id verplicht, indien read mogelijk -->
<entry>
    <fullUrl value="urn:oid:2.16.528.1.1007.3.3.2222"/>
    <resource>
        <Practitioner>
            <id value="2.16.528.1.1007.3.3.2222"/>
            <identifier>
                <system value="http://fhir.nl/fhir/NamingSystem/uzi-nr-pers"/>
                <value value="00002222"/>
            </identifier>

---------
<!-- Geen resource.id naar verwachting, als wel aanwezig moet hij kloppen en zou je een absolute URL verwachten als fullUrl -->
<entry>
    <fullUrl value="urn:uuid:f9125272-8305-11ea-5462-020000000000"/>
        <resource>
            <Patient>
Alle Bundle.entry.fullUrl MAG NIET een relatieve URL zijn Bundle.entry.fullUrl Ja "Indien Bundle//fullUrl's daadwerkelijk URL's zijn, MOETEN ze absoluut zijn en niet relatief. De references binnen een resource mogen wel relatief te zijn als dit een URL is.

Verwacht in fullUrl is een absolute URL, een UUID of een OID. Zie

<!-- Bijvoorbeeld -->
<entry>
    <fullUrl value="urn:oid:2.16.840.1.113883.2.4.6.6.90000258.4.6.525"/>
Alle FHIR Resources bevatten niet alle in het script gevraagde informatie Ja, maar "FHIR profielen maken het mogelijk dat bepaalde informatie niet in alle gevallen bekend is en dwingen dus weinig af. Bij kwalificatie echter is de informatie wel bekend via het kwalificatiescript.

Kwalificatie is onder andere om te kunnen aantonen of een systeem informatie indien beschikbaar ook op de juiste wijze aanbiedt. Het is denkbaar dat een script een systeem tijdens kwalificatie overvraagt omdat bepaalde informatie irrelevant in de context van het systeem is en dus niet kan worden ingevoerd. Per item dient dit tijdens kwalificatie worden besproken en gewogen."

Alle FHIR Resources valideren niet tegen het verwachte profiel Ja "Controleer voor elk profiel in simplifier of alle verplichte elementen zijn meegenomen. Deze verplichte elementen hoeven niet altijd onderdeel te zijn van het addendum. De validator in touchstone geeft hier naar alle waarschijnlijkheid een foutmelding over.

Als een resource niet FHIR conform is, valideert hij uiteraard ook niet tegen het profiel."

Alle Datatype Reference, Coding of CodeableConcept mist display Meerdere elementen per resource mogelijk Ja Bij elke reference hoort een display value. Deze display values zijn niet terug te vinden in het bericht. Zie hiervoor de specificaties van het reference datatype in MedMij:
<generalPractitioner>
    <reference value="Organization/nl-core-organization-01"/>
    <display value="Maatschap Vaste Huisarts"/>
</generalPractitioner>
Alle Extensie code-specification waarin de zib-waarde staat, ontbreekt Meerdere elementen per resource mogelijk Ja, op plaatsen waar de mapping niet 1-op-1 is "De extensie code-specification is bedoeld voor het meegeven van de oorspronkelijke zib-waarde als de FHIR Resource dat op die plaats niet direct toelaat. Dat zijn vaak statuscodes waarvoor FHIR zelf verplichte terminologie heeft. Om geen zib-informatie kwijt te raken, bijvoorbeeld omdat de mapping op de FHIR codes niet geheel 1-op-1 is, is meegeven van de zib-waarde dus van belang.

Bijvoorbeeld: gender (https://zibs.nl/wiki/Patient-v3.1(2017NL)), adres (soort, landcode, nummergebruik https://zibs.nl/wiki/Adresgegevens-v1.0(2017NL), naam (use, https://zibs.nl/wiki/Naamgegevens-v1.0.1(2017NL)) en eventueel andere. "

    <gender value="male">
        <extension url="http://nictiz.nl/fhir/StructureDefinition/code-specification">
            <valueCodeableConcept>
                <coding>
                    <system value="http://hl7.org/fhir/v3/AdministrativeGender"/>
                    <code value="M"/>
                    <display value="male"/>
                </coding>
            </valueCodeableConcept>
        </extension>
    </gender>
Alle Burgerservicenummer mag niet worden gebruikt in query en/of resources Ja "Het MedMij afsprakenstelsel definieert op basis van vigerende wetgeving dat burgerservicenummers niet mogen worden uitgewisseld. Uitzondering vormen plaats waar het onredelijk of onmogelijk is om te eisen dat deze worden verwijderd, zoals in een PDF-document.

Gebruik in query-parameters zoals patient of subject, in een Bundle.link, als Patient.id, Patient.identifier en andere gestructureerde locaties is niet toegestaan "

Alle Resource.text ontbreekt. Ook bekend als Narrative Resource.text Ja, maar ValueSet etc.) een text element met status empty te gebruiken. Uitzondering op dit alles is de contained resource. Deze MAG GEEN text hebben. Zie
Alle FHIR server heeft geen CapabilityStatement, of kan deze niet opleveren met de verwachte minimale inhoud bij de informatiestandaard Ja Geen CapabilityStatement beschikbaar op het /metadata endpoint. Dit is een SHALL vanuit de FHIR spec: https://www.hl7.org/fhir/stu3/http.html#2.21.0
Alle Bundle.type ontbreekt Bundle.type Ja Bundle.type is verplicht volgens de FHIR specificatie. https://www.hl7.org/fhir/STU3/bundle.html
<Bundle xmlns="http://hl7.org/fhir">
    <id value="medmij-pdfa-fhir3-0-1-scenario-3-1-bundle"/>
    <type value="transaction"/>
    <entry>
Alle Bundle van type searchset moet Bundle.link bevatten Bundle.link Ja Bundle.link heeft een SHALL in de FHIR spec, zie voor meer informatie:
<link>
    <relation value="self"/>
    <url value="http://nictiz.wildfhir.org/fhir3-i2/AllergyIntolerance?"/>
</link>
Alle HumanName mist extensies voor het identificeren van de verschillende naamdelen HumanName.family Ja Bij HumanName.family wordt een extensie verwacht die extra informatie geeft over de naamdelen, zoals voorgeschreven door de zib. https://zibs.nl/wiki/Naamgegevens-v1.0.1(2017NL) https://simplifier.net/NictizSTU3-Zib2017/nl-core-humanname
<family value="Jongeneel-de Haas">
   <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name">
       <valueString value="Jongeneel"/>
   </extension>
   <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-prefix">
       <valueString value="de "/>
   </extension>
   <extension url="http://hl7.org/fhir/StructureDefinition/humanname-partner-name">
        <valueString value="Haas"/>
   </extension>
</family>

<given value="Irma">
  <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier">
    <valueCode value="CL"/>
  </extension>
</given>
<given value="I.">
  <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier">
    <valueCode value="IN"/>
  </extension>
</given>
Alle Address mist extensies voor het identificeren van de verschillende adresdelen Address.line Ja Bij Address.line wordt een extensie verwacht die gebruikt wordt om elk specifiek onderdeel van het Address de kunnen onderscheiden, zoals voorgeschreven door de zib.
<address>
        <extension url="http://fhir.nl/fhir/StructureDefinition/nl-core-address-official">
            <valueBoolean value="true"/>
        </extension>
        <use value="home"/>
        <type value="both"/>
        <line value="Straatweg 12bII">
            <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName">
                <valueString value="Straatweg"/>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber">
                <valueString value="12"/>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-buildingNumberSuffix">
                <valueString value="bII"/>
            </extension>
        </line>
Alle Resource.contained mag niet leeg zijn indien aanwezig Resource.contained Ja Resource.contained MOET, indien aanwezig, een Resource bevatten met inhoud. Als het enige wat je van een Resource weet, de identifier is, dan is het zinvoller om geen Reference.reference te gebruiken, maar een Reference.identifier. Op die manier hoef je geen contained pseudo resource te maken.
PDF/A Onjuist gebruik of afwezigheid identifier en/of masteridentifier resource.masterIdentifier of resource.Identifier Ja De DocumentManifest.masterIdentifier en DocumentReference.masterIdentifier dienen door de XIS zelf te worden gegeneerd, met een eigen system. De .masterIdentifier is de versie specifieke identifier waar de .identifier een versie onafhankelijke identifier kan zijn (https://www.hl7.org/fhir/stu3/documentmanifest-definitions.html#DocumentManifest.masterIdentifier)