FHIR timing in HL7v3 CDA substanceAdministration.effectiveTime

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen


Voor een overzicht van relevante wiki-pagina's voor Medicatieproces zie Landingspagina_Medicatieproces

Volgens issue MP-347 moet het mogelijk worden om in HL7v3 CDA substanceAdministration.effectiveTime te kiezen voor (de reeds bestaande) SXPR_TS en het FHIR timing datatype. Aanleiding hiervoor is MP 9 2.0.0, het gaat om toedieningsschema’s.

1 FHIR versie: R4

Alle versies van FHIR zitten in 1 namespace. Als je nu FHIR versie x aankoppelt, kun je later niet goed naar FHIR versie y, omdat je niet aan een instance kunt zien wat het “is” Gekozen is om gebruik te maken van FHIR 4.0.1. MP 9 2.0.0 is gebaseerd op zibs-2020 en zibs-2020 gaan in FHIR R4. Timing is normatief in FHIR 4.0.1: eventuele wijzigingen zullen backward compatible zijn.

2 Scope

De scope voor deze wijziging is toedieningsschema voor medicatiedosering vanaf MP 9 2.0.0. Alleen CDA substanceAdministration.effectiveTime heeft het nodig. Deze wijziging is daarom zo klein mogelijk: alleen toegepast op substanceAdministration.effectiveTime. Het betreft daarom géén wijziging in coreschemas. De wijziging wordt toegepast in AORTA/trunk/XML/schemas en van daaruit uitgerold naar de (onderhouds)branches van de verschillende informatiestandaarden.

3 Kardinaliteit

FHIR kent navolgende kardinaliteiten: MedicationRequest.dosageInstruction 0..* Dosage Dosage.timing 0..1 Timing CDA substanceAdministration komt overeen met dosageInstruction. substanceAdministration.effectiveTime is 0..* (dat is normaal voor GTS). effectiveTime met datatype f:Timing heeft dan voldoende aan kardinaliteit 0..1

4 Uitgangspunt: backwards compatibel

De schemawijziging moet backward compatibel zijn. Dat betekent dat instantiaties die gebruik maken van het bestaande HL7v3-datatype SXCM_TS door het schema goedgekeurd moeten blijven worden.

5 XML schema’s (XSD's)

De wijziging in het HL7v3 CDA schema behelst het maken van een choice, we gaan dus van:

<xs:element name="effectiveTime" type="SXCM_TS" minOccurs="0" maxOccurs="unbounded"/>

naar:

<xs:choice>
    <xs:element name="effectiveTime" type="SXCM_TS" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element ref="f:effectiveTime" minOccurs="0" maxOccurs="1"/>
</xs:choice>

6 Technische toelichting

Geïmporteerd in folder schemas/fhir: FHIR 4.0.1 https://www.hl7.org/fhir/R4/fhir-codegen-xsd.zip. Wijziging: voeg xs:element effectiveTime toe in fhir-base.xsd voor reference. HL7v3 xsd aangepast, POCD_MT000040NL_extended.xsd aangepast. Import toegevoegd: <xs:import namespace="http://hl7.org/fhir" schemaLocation="fhir/fhir-base.xsd"/>

Wijziging:

<xs:complexType name="POCD_MT000040.SubstanceAdministration">
     <xs:sequence>
         ....
         <xs:choice minOccurs="0" maxOccurs="1">
            <xs:element name="effectiveTime" type="SXCM_TS" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="f:effectiveTime" minOccurs="0" maxOccurs="1"/>
         </xs:choice>
        ....
     </xs:sequence>
</xs:complexType>

7 Voorbeelden

7.1 1 maal per dag

<substanceAdministration classCode="SBADM" moodCode="RQO">
    <templateId root="2.16.840.1.113883.2.4.3.11.60.20.77.10.9359"/>
    <effectiveTime xsi:type="Timing" xmlns="http://hl7.org/fhir">
        <repeat>
            <frequency value="1"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </effectiveTime>
    <doseQuantity>
        <center value="1" unit="1">
            <translation value="1" code="245" displayName="stuk" codeSystem="2.16.840.1.113883.2.4.4.1.900.2" codeSystemName="G-Standaard thesaurus basiseenheden"/>
        </center>
    </doseQuantity>
    <consumable xsi:nil="true"/>
</substanceAdministration>

7.2 Pilschema

<substanceAdministration classCode="SBADM" moodCode="RQO">
    <templateId root="2.16.840.1.113883.2.4.3.11.60.20.77.10.9359"/>
    <effectiveTime xsi:type="Timing" xmlns="http://hl7.org/fhir">
        <modifierExtension url="http://nictiz.nl/fhir/StructureDefinition/zib-Medication-RepeatPeriodCyclicalSchedule">
            <valueDuration>
                <value value="28"/>
                <unit value="d"/>
                <system value="http://unitsofmeasure.org"/>
                <code value="d"/>
            </valueDuration>
        </modifierExtension>
        <repeat>
            <boundsDuration>
                <value value="21"/>
                <unit value="dag"/>
                <system value="http://unitsofmeasure.org"/>
                <code value="d"/>
            </boundsDuration>
            <frequency value="1"/>
            <period value="1"/>
            <periodUnit value="d"/>
        </repeat>
    </effectiveTime>
    <doseQuantity>
        <center value="1" unit="1">
            <translation value="1" code="245" displayName="stuk" codeSystem="2.16.840.1.113883.2.4.4.1.900.2" codeSystemName="G-Standaard thesaurus basiseenheden"/>
        </center>
    </doseQuantity>
    <consumable xsi:nil="true"/>
</substanceAdministration>