HL7v3 Templating Guidelines: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
 
(12 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
 
{{NoteBox|Dit materiaal is in bewerking en op dit moment alleen bedoeld voor de schrijvers van deze pagina (HL7-specialisten bij Nictiz)!}}
 
{{NoteBox|Dit materiaal is in bewerking en op dit moment alleen bedoeld voor de schrijvers van deze pagina (HL7-specialisten bij Nictiz)!}}
 
= Templating in HL7v3 =
 
= Templating in HL7v3 =
== TODO lijst ==
 
 
Hier volgt uitleg over template-id’s, naamgeving, wanneer een nieuwe/eigen template en wanneer niet, relatie tussen het hl7 algemene model en de invulling voor de informatiestandaard (verplichte waarden t.o.v. zib/datasetspec), infraonafhankelijkheid, gebruik van een CDA component of een entry, verplicht gebruik van html, …
 
  
 
== Template id's ==
 
== Template id's ==
Hoe template id's te gebruiken staat beschreven in een document dat gepubliceerd is door HL7. Dit document is voor Nictiz medewerkers te vinden via [https://nictiznl.sharepoint.com/:b:/r/sites/HL7Team/Gedeelde%20documenten/General/HL7v3/HL7_TEMPLATES_R1_2018MAY.pdf?csf=1&web=1&e=n2rxQL SharePoint].
+
Hoe template id's te gebruiken staat beschreven in een document dat gepubliceerd is door HL7. Dit document is voor Nictiz medewerkers te vinden via [https://nictiznl.sharepoint.com/:b:/r/sites/Standaarden/Gedeelde%20%20documenten/HL7/HL7_TEMPLATES_R1_2018MAY.pdf?csf=1&web=1&e=QIKlg3 SharePoint] en hierbij ook een [http://www.hl7.org/documentcenter/private/standards/HL7_TEMPLATES_R1_2018MAY.pdf locatie op internet].
  
 +
Het meest relevante stuk tekst staat in §2.13 van dat document.
  
 
When does a new design represent a new template as opposed to a new version of an existing template? If the intent/purpose of the template changes substantially or the design of template is substantively different, a new template needs to be created. Typical situations where a new template is required include:  
 
When does a new design represent a new template as opposed to a new version of an existing template? If the intent/purpose of the template changes substantially or the design of template is substantively different, a new template needs to be created. Typical situations where a new template is required include:  
Regel 15: Regel 13:
 
* Containment of other templates  
 
* Containment of other templates  
 
* Backward compatibility invalidation (see also section 3.4.8 about “backward compatibility”).
 
* Backward compatibility invalidation (see also section 3.4.8 about “backward compatibility”).
 +
 +
En dan §3.4.8 en §3.4.9 over backward en forward compatibility.
 +
 +
'''3.4.8 Backwards compatibility'''
 +
 +
Indicates that a template is considered to be backward compatible to a previous version of the template. A template version is backwards compatible if all instances of data which are compliant under the prior version also are compliant under the new version.
 +
Determining true backward compatibility can be complex. A new version of a template defined as “open” may reject instances constructed using the older version as “open”, which means other elements are allowed in an instance beyond those explicitly defined. In other words, older instances may contain legal additional input that fails to validate against a newer version of the template. On the other hand loosening constraints would generally be backward compatible.
 +
True backward compatibility can be determined more reliably with templates defined as “closed” only
 +
 +
'''3.4.9 Forward compatibility'''
 +
 +
This relationship indicates that a template version is compatible with a newer version of the template. Forward compatibility means that an instances of data created under the newer template can be used with applications designed to work with data created under the prior template.. Instances conforming to the new template should also conform to all the old templates.
 +
 +
== Template associaties ==
 +
Template associaties leggen verband tussen een dataset concept en een HL7 element of attribuut. Het dataset concept komt dus terecht in het stuk HL7 waarnaar een connectie wordt gelegd.
 +
Deze associaties kunnen zowel op een XML element als een XML attribuut gelegd worden. Het heeft daarbij in principe de voorkeur dit te doen op het element, maar soms is er geen keuze en moet de associatie gelegd worden naar een attribuut.
 +
 +
Voorbeelden:
 +
* Een dataset concept van type 'code' associeer je meestal met een HL7 XML element van type CD. Beide types kennen onderliggende kenmerken/attributen als code, codeSystem, displayName et cetera.
 +
* Een dataset concept van type 'hoeveelheid' associeer je meestal met een HL7 XML element van type PQ. Beide types kennen onderliggende kenmerken/attributen als value en unit.
 +
* Een dataset concept van type 'boolean':
 +
** kan je associeren met een HL7 XML element van type BL
 +
** het kan ook nodig zijn om een dergelijk concept te associëren met een attribuut, denk aan @negationInd
 +
* Een dataset concept van type 'datum' of 'datumtijd' associeer je meestal met een HL7 XML element van type TS.
 +
* Het kan ook zijn dat de dataset de eenheid (@unit) apart heeft gedefinieerd omdat er een waardelijst aan moest worden gehangen. Eigenlijk is het datatype 'hoeveelheid' dan handmatig gemaakt met een getal en een bijbehorend concept van type code. In dat geval associeer je die losse concepten met de @value en @unit attributen van het bijbehorende HL7 concept van type PQ.
 +
 +
== TODO lijst ==
 +
 +
Hier volgt uitleg over naamgeving, relatie tussen het hl7 algemene model en de invulling voor de informatiestandaard (verplichte waarden t.o.v. zib/datasetspec), infraonafhankelijkheid, gebruik van een CDA component of een entry, verplicht gebruik van html, …

Huidige versie van 16 jun 2021 om 08:37

Templating in HL7v3

Template id's

Hoe template id's te gebruiken staat beschreven in een document dat gepubliceerd is door HL7. Dit document is voor Nictiz medewerkers te vinden via SharePoint en hierbij ook een locatie op internet.

Het meest relevante stuk tekst staat in §2.13 van dat document.

When does a new design represent a new template as opposed to a new version of an existing template? If the intent/purpose of the template changes substantially or the design of template is substantively different, a new template needs to be created. Typical situations where a new template is required include:

  • Different purpose, where the difference can be either a narrower or broader purpose from an existing template’s definition, or a substantively different purpose
  • Value Set Bindings,
  • Cardinality / conformance of template elements,
  • Containment of other templates
  • Backward compatibility invalidation (see also section 3.4.8 about “backward compatibility”).

En dan §3.4.8 en §3.4.9 over backward en forward compatibility.

3.4.8 Backwards compatibility

Indicates that a template is considered to be backward compatible to a previous version of the template. A template version is backwards compatible if all instances of data which are compliant under the prior version also are compliant under the new version. Determining true backward compatibility can be complex. A new version of a template defined as “open” may reject instances constructed using the older version as “open”, which means other elements are allowed in an instance beyond those explicitly defined. In other words, older instances may contain legal additional input that fails to validate against a newer version of the template. On the other hand loosening constraints would generally be backward compatible. True backward compatibility can be determined more reliably with templates defined as “closed” only

3.4.9 Forward compatibility

This relationship indicates that a template version is compatible with a newer version of the template. Forward compatibility means that an instances of data created under the newer template can be used with applications designed to work with data created under the prior template.. Instances conforming to the new template should also conform to all the old templates.

Template associaties

Template associaties leggen verband tussen een dataset concept en een HL7 element of attribuut. Het dataset concept komt dus terecht in het stuk HL7 waarnaar een connectie wordt gelegd. Deze associaties kunnen zowel op een XML element als een XML attribuut gelegd worden. Het heeft daarbij in principe de voorkeur dit te doen op het element, maar soms is er geen keuze en moet de associatie gelegd worden naar een attribuut.

Voorbeelden:

  • Een dataset concept van type 'code' associeer je meestal met een HL7 XML element van type CD. Beide types kennen onderliggende kenmerken/attributen als code, codeSystem, displayName et cetera.
  • Een dataset concept van type 'hoeveelheid' associeer je meestal met een HL7 XML element van type PQ. Beide types kennen onderliggende kenmerken/attributen als value en unit.
  • Een dataset concept van type 'boolean':
    • kan je associeren met een HL7 XML element van type BL
    • het kan ook nodig zijn om een dergelijk concept te associëren met een attribuut, denk aan @negationInd
  • Een dataset concept van type 'datum' of 'datumtijd' associeer je meestal met een HL7 XML element van type TS.
  • Het kan ook zijn dat de dataset de eenheid (@unit) apart heeft gedefinieerd omdat er een waardelijst aan moest worden gehangen. Eigenlijk is het datatype 'hoeveelheid' dan handmatig gemaakt met een getal en een bijbehorend concept van type code. In dat geval associeer je die losse concepten met de @value en @unit attributen van het bijbehorende HL7 concept van type PQ.

TODO lijst

Hier volgt uitleg over naamgeving, relatie tussen het hl7 algemene model en de invulling voor de informatiestandaard (verplichte waarden t.o.v. zib/datasetspec), infraonafhankelijkheid, gebruik van een CDA component of een entry, verplicht gebruik van html, …