mp:V9 2.0.0 HL7v3CDA FHIRTiming: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
(Nieuwe pagina aangemaakt met '= FHIR timing in HL7v3 CDA substanceAdministration.effectiveTime = Volgens issue MP-347 moet het mogelijk worden om in HL7v3 CDA substanceAdministration.effectiveTi...')
 
 
(13 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
= FHIR timing in HL7v3 CDA substanceAdministration.effectiveTime =
+
__NUMBEREDHEADINGS__
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.
+
{{DISPLAYTITLE:FHIR timing in HL7v3 CDA substanceAdministration.effectiveTime}}
 +
Voor een overzicht van relevante wiki-pagina's voor Medicatieproces zie [[Landingspagina_Medicatieproces]]
 +
 
 +
Volgens issue [https://bits.nictiz.nl/browse/MP-347 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 Medicatieproces 9 versie 2.0.0, het gaat om toedieningsschema’s.
 
== FHIR versie: R4 ==
 
== 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”
 
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”
Regel 6: Regel 9:
 
== Scope ==  
 
== 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 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.
+
De wijziging wordt toegepast in GForge AORTA/trunk/XML/schemas en van daaruit uitgerold naar de (onderhouds)branches van de verschillende informatiestandaarden.
 +
 
 
== Kardinaliteit ==  
 
== Kardinaliteit ==  
 
FHIR kent navolgende kardinaliteiten:
 
FHIR kent navolgende kardinaliteiten:
 +
 
MedicationRequest.dosageInstruction 0..* Dosage
 
MedicationRequest.dosageInstruction 0..* Dosage
Dosage.timing 0..1 Timing
+
:Dosage.timing 0..1 Timing
 +
 
 
CDA substanceAdministration komt overeen met dosageInstruction. substanceAdministration.effectiveTime is 0..* (dat is normaal voor GTS).  
 
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
+
 
 +
effectiveTime met datatype f:Timing heeft voldoende aan kardinaliteit 0..1
 +
 
 
== Uitgangspunt: backwards compatibel ==  
 
== 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.
 
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.
Regel 28: Regel 36:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== Technische toelichting==
 
== Technische toelichting==
Geïmporteerd in folder schemas/fhir: FHIR 4.0.1 https://www.hl7.org/fhir/R4/fhir-codegen-xsd.zip.
+
De gehele FHIR xsd set is aangehouden. Redenen daarvoor zijn:
Wijziging: voeg xs:element effectiveTime toe in fhir-base.xsd voor reference.
+
*Eenvoudig door te voeren
HL7v3 xsd aangepast, POCD_MT000040NL_extended.xsd aangepast.
+
*Gemakkelijk om hetzelfde te doen met een nieuwe(re) FHIR versie
Import toegevoegd:
+
*De FHIR schema’s kent veel onderlinge afhankelijkheden, waardoor het isoleren van een datatype complex is. Verder heeft het weinig toegevoegde waarde, omdat het aantal schema’s niet drastisch zal verminderen.
<xs:import namespace="http://hl7.org/fhir" schemaLocation="fhir/fhir-base.xsd"/>
 
  
Wijziging:  
+
De stappen die gevolgd zijn:
<syntaxhighlight lang="xml">
+
# Geïmporteerd in folder schemas/fhir: FHIR 4.0.1 https://www.hl7.org/fhir/R4/fhir-codegen-xsd.zip.
 +
# Nieuw schema in folder schemas: fhir-for-v3.xsd in fhir namespace met daarin xs:element effectiveTime voor reference en een import van fhir/fhir-base.xsd.
 +
# HL7v3 xsd aangepast: POCD_MT000040NL_extended.xsd
 +
::*Import toegevoegd:
 +
::<syntaxhighlight lang="xml">
 +
<xs:import namespace="http://hl7.org/fhir" schemaLocation="fhir-for-v3.xsd"/>
 +
</syntaxhighlight>
 +
::*Wijziging:  
 +
::<syntaxhighlight lang="xml">
 
<xs:complexType name="POCD_MT000040.SubstanceAdministration">
 
<xs:complexType name="POCD_MT000040.SubstanceAdministration">
 
     <xs:sequence>
 
     <xs:sequence>
Regel 47: Regel 62:
 
</xs:complexType>
 
</xs:complexType>
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
== Voorbeelden ==  
 
== Voorbeelden ==  
 
=== 1 maal per dag ===
 
=== 1 maal per dag ===
In commentaar de HL7v3 GTS versie.
+
<syntaxhighlight lang="xml">
+
<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>
 +
</syntaxhighlight>
 +
 
 
=== Pilschema ===
 
=== Pilschema ===
 +
<syntaxhighlight lang="xml">
 +
<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>
 +
</syntaxhighlight>

Huidige versie van 5 apr 2022 om 08:27


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 Medicatieproces 9 versie 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 GForge 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 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

De gehele FHIR xsd set is aangehouden. Redenen daarvoor zijn:

  • Eenvoudig door te voeren
  • Gemakkelijk om hetzelfde te doen met een nieuwe(re) FHIR versie
  • De FHIR schema’s kent veel onderlinge afhankelijkheden, waardoor het isoleren van een datatype complex is. Verder heeft het weinig toegevoegde waarde, omdat het aantal schema’s niet drastisch zal verminderen.

De stappen die gevolgd zijn:

  1. Geïmporteerd in folder schemas/fhir: FHIR 4.0.1 https://www.hl7.org/fhir/R4/fhir-codegen-xsd.zip.
  2. Nieuw schema in folder schemas: fhir-for-v3.xsd in fhir namespace met daarin xs:element effectiveTime voor reference en een import van fhir/fhir-base.xsd.
  3. HL7v3 xsd aangepast: POCD_MT000040NL_extended.xsd
  • Import toegevoegd:
<xs:import namespace="http://hl7.org/fhir" schemaLocation="fhir-for-v3.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>