POC - Mapping CDA to FHIR
0.1.0 - ci-build
POC - Mapping CDA to FHIR - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2025-11-07 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="CdaToBundle"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Narratif généré : StructureMap CdaToBundle</b></p><a name="CdaToBundle"> </a><a name="hcCdaToBundle"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/StructureMap/CdaToBundle<span style="color: navy">" = "</span>CdaToBundle<span style="color: navy">"
</span><span style="color: navy">// </span><span style="color: green">Mapping de CDA vers FHIR Bundle (A partir des sources de Oliver Egger)</span>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-ClinicalDocument.html" title="ClinicalDocument (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument</a><span style="color: navy">" </span><b>alias </b>ClinicalDocument <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-AssignedAuthor.html" title="AssignedAuthor (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/AssignedAuthor</a><span style="color: navy">" </span><b>alias </b>AssignedAuthor <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-AssignedEntity.html" title="AssignedEntity (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/AssignedEntity</a><span style="color: navy">" </span><b>alias </b>AssignedEntity <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-CustodianOrganization.html" title="CustodianOrganization (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/CustodianOrganization</a><span style="color: navy">" </span><b>alias </b>CustodianOrganization <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Section.html" title="Section (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/Section</a><span style="color: navy">" </span><b>alias </b>Section <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-PatientRole.html" title="PatientRole (CDA Class)">http://hl7.org/cda/stds/core/StructureDefinition/PatientRole</a><span style="color: navy">" </span><b>alias </b>PatientRole <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/bundle.html" title="Bundle">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style="color: navy">" </span><b>alias </b>Bundle <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/composition.html" title="Composition">http://hl7.org/fhir/StructureDefinition/Composition</a><span style="color: navy">" </span><b>alias </b>Composition <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/patient.html" title="Patient">http://hl7.org/fhir/StructureDefinition/Patient</a><span style="color: navy">" </span><b>alias </b>Patient <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/person.html" title="Person">http://hl7.org/fhir/StructureDefinition/Person</a><span style="color: navy">" </span><b>alias </b>Person <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/practitioner.html" title="Practitioner">http://hl7.org/fhir/StructureDefinition/Practitioner</a><span style="color: navy">" </span><b>alias </b>Practitioner <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/organization.html" title="Organization">http://hl7.org/fhir/StructureDefinition/Organization</a><span style="color: navy">" </span><b>alias </b>Organization <b>as </b><b>target</b>
<b>imports</b><span style="color: navy"> "</span><a href="StructureMap-CdaToFHIRTypes.html" title="Mapping de CDA vers les FHIR Types (A partir des sources de Oliver Egger)">https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/StructureMap/CdaToFHIRTypes</a><span style="color: navy">"
</span>
<span style="color: navy">// </span><span style="color: green">_________________________ Document Level Template _________________________</span>
<b>group </b>CdaToBundle<span style="color: navy">(</span><b>source</b> <span style="color: maroon">cda</span><span style="color: navy"> : </span>ClinicalDocument, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> cda<span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Composition'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">composition</span><span style="color: navy">, </span> composition.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid</span><span style="color: navy">)</span><span style="color: navy">, </span> bundle.entry<b> as </b><span style="color: maroon">e2</span><span style="color: navy">, </span> e2.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Patient'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">patient</span><span style="color: navy">, </span> patient.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e2.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> cda<b> then </b>ClinicalDocumentToBundle<span style="color: navy">(</span><span style="color: maroon">cda</span><span style="color: navy">, </span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">composition</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">)</span> <i>"cdatobundle"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ClinicalDocumentToBody"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>ClinicalDocumentToBundle<span style="color: navy">(</span><b>source</b> <span style="color: maroon">cda</span><span style="color: navy"> : </span>ClinicalDocument, <b>target</b> <span style="color: maroon">patient</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">composition</span><span style="color: navy"> : </span>Composition, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> cda<span style="color: navy"><b> -> </b></span>bundle.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"id"</i><span style="color: navy">;</span>
cda.id<b> as </b><span style="color: maroon">cdaId</span><span style="color: navy"><b> -> </b></span>bundle.identifier<b> as </b><span style="color: maroon">identifier</span><b> then</b><span style="color: navy"> {
</span> cdaId.root<b> as </b><span style="color: maroon">root</span><b> where </b>cdaId.extension.exists()<span style="color: navy"><b> -> </b></span>identifier.system = <b>translate</b><span style="color: navy">(</span><span style="color: maroon">root</span><span style="color: navy">, </span><span style="color: blue">'#oid2uri'</span><span style="color: navy">, </span><span style="color: blue">'uri'</span><span style="color: navy">)</span> <i>"system"</i><span style="color: navy">;</span>
cdaId.extension<b> as </b><span style="color: maroon">extension</span><span style="color: navy"><b> -> </b></span>identifier.value = <span style="color: maroon">extension</span> <i>"value"</i><span style="color: navy">;</span>
cdaId.root<b> as </b><span style="color: maroon">root</span><b> where </b>cdaId.extension.empty()<span style="color: navy"><b> -> </b></span>identifier.system = <span style="color: blue">'urn:ietf:rfc:3986'</span> <i>"systemOid"</i><span style="color: navy">;</span>
cdaId.root<b> as </b><span style="color: maroon">root</span><b> where </b>cdaId.extension.empty()<span style="color: navy"><b> -> </b></span>identifier.value = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:oid:'</span><span style="color: navy">, </span><span style="color: maroon">root</span><span style="color: navy">)</span> <i>"valueOid"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"identifier"</i><span style="color: navy">;</span>
cda<span style="color: navy"><b> -> </b></span>bundle.type = <span style="color: blue">'document'</span> <i>"type"</i><span style="color: navy">;</span>
cda.effectiveTime<b> as </b><span style="color: maroon">effectiveTime</span><span style="color: navy"><b> -> </b></span>bundle.timestamp = <b>create</b><span style="color: navy">(</span><span style="color: blue">'instant'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">timestamp</span><b> then </b>TSInstant<span style="color: navy">(</span><span style="color: maroon">effectiveTime</span><span style="color: navy">, </span><span style="color: maroon">timestamp</span><span style="color: navy">)</span> <i>"timestamp"</i><span style="color: navy">;</span>
cda<b> then </b>ClinicalDocumentComposition<span style="color: navy">(</span><span style="color: maroon">cda</span><span style="color: navy">, </span><span style="color: maroon">composition</span><span style="color: navy">, </span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">)</span> <i>"composition"</i><span style="color: navy">;</span>
cda.component<b> as </b><span style="color: maroon">cdaComponent</span><b> then</b><span style="color: navy"> {
</span> cdaComponent.structuredBody<b> as </b><span style="color: maroon">body</span><b> then</b><span style="color: navy"> {
</span> body.component<b> as </b><span style="color: maroon">bodyComponent</span><b> then</b><span style="color: navy"> {
</span> bodyComponent.section<b> as </b><span style="color: maroon">srcSection</span><b> where </b>$this.code.empty()<span style="color: navy"><b> -> </b></span>composition.section<b> as </b><span style="color: maroon">tgtSection</span><b> then </b>ClinicalDocumentSection<span style="color: navy">(</span><span style="color: maroon">cda</span><span style="color: navy">, </span><span style="color: maroon">srcSection</span><span style="color: navy">, </span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">tgtSection</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"bodyComponent"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"body"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"cdaComponent"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">// _________________________ Section Level Templates _________________________</span>
<b>group </b>ClinicalDocumentSection<span style="color: navy">(</span><b>source</b> <span style="color: maroon">cda</span><span style="color: navy"> : </span>ClinicalDocument, <b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>Section, <b>source</b> <span style="color: maroon">patient</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">tgt</span>, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> src.title<b> as </b><span style="color: maroon">t</span><span style="color: navy"><b> -> </b></span>tgt.title = <span style="color: navy">(</span>t.xmlText<span style="color: navy">)</span><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">srcCode</span><span style="color: navy"><b> -> </b></span>tgt.code = <span style="color: maroon">srcCode</span><span style="color: navy">;</span>
src.text<b> as </b><span style="color: maroon">cdaText</span><span style="color: navy"><b> -> </b></span>tgt.text<b> as </b><span style="color: maroon">fhirText</span><b> then</b><span style="color: navy"> {
</span> cdaText<span style="color: navy"><b> -> </b></span>fhirText.status = <span style="color: blue">'generated'</span> <i>"narrativeStatus"</i><span style="color: navy">;</span>
cdaText<b> as </b><span style="color: maroon">t</span><span style="color: navy"><b> -> </b></span>fhirText.div = <span style="color: maroon">t</span> <i>"narrativeText"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"cdaText"</i><span style="color: navy">;</span>
src.section<b> as </b><span style="color: maroon">srcSection</span><span style="color: navy"><b> -> </b></span>tgt.section<b> as </b><span style="color: maroon">tgtSection</span><b> then </b>ClinicalDocumentSection<span style="color: navy">(</span><span style="color: maroon">cda</span><span style="color: navy">, </span><span style="color: maroon">srcSection</span><span style="color: navy">, </span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">tgtSection</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">_________________________ Entry Level Templates ________________________</span>
<span style="color: navy">// </span><span style="color: green">_________________________ Header Level Templates _________________________</span>
<b>group </b>ClinicalDocumentComposition<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>ClinicalDocument, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Composition, <b>target</b> <span style="color: maroon">patientResource</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> src.languageCode<b> as </b><span style="color: maroon">languageCode</span><span style="color: navy"><b> -> </b></span>tgt.language = <b>create</b><span style="color: navy">(</span><span style="color: blue">'code'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">code</span><b> then </b>CSCode<span style="color: navy">(</span><span style="color: maroon">languageCode</span><span style="color: navy">, </span><span style="color: maroon">code</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.id<b> as </b><span style="color: maroon">id</span><b> where </b>src.setId.exists().not()<span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">id</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span> <i>"identifier"</i><span style="color: navy">;</span>
src.setId<b> as </b><span style="color: maroon">setId</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">setId</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span> <i>"setIdentifier"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.status = <span style="color: blue">'final'</span> <i>"status"</i><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">srcCode</span><span style="color: navy"><b> -> </b></span>tgt.type = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">srcCode</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.title<b> as </b><span style="color: maroon">t</span><span style="color: navy"><b> -> </b></span>tgt.title = <span style="color: navy">(</span>t.xmlText<span style="color: navy">)</span><span style="color: navy">;</span>
src.recordTarget<b> as </b><span style="color: maroon">recordTarget</span><b> then</b><span style="color: navy"> {
</span> recordTarget.patientRole<b> as </b><span style="color: maroon">patient</span><span style="color: navy"><b> -> </b></span> tgt.subject = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %patientResource.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentPatientRole<span style="color: navy">(</span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">patientResource</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">)</span> <i>"subject"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"patientRole"</i><span style="color: navy">;</span>
src.componentOf<b> as </b><span style="color: maroon">comp</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Encounter'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">encounter</span><span style="color: navy">, </span> encounter.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> comp.encompassingEncounter<b> as </b><span style="color: maroon">srcEnc</span><span style="color: navy"><b> -> </b></span> tgt.encounter = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %encounter.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentEncounter<span style="color: navy">(</span><span style="color: maroon">srcEnc</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">, </span><span style="color: maroon">encounter</span><span style="color: navy">)</span> <i>"srcEncounter"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"encompassingEncounter"</i><span style="color: navy">;</span>
src.effectiveTime<b> as </b><span style="color: maroon">effectiveTime</span><span style="color: navy"><b> -> </b></span>tgt.date = <b>create</b><span style="color: navy">(</span><span style="color: blue">'dateTime'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">date</span><b> then </b>TSDateTime<span style="color: navy">(</span><span style="color: maroon">effectiveTime</span><span style="color: navy">, </span><span style="color: maroon">date</span><span style="color: navy">)</span> <i>"compositionDate"</i><span style="color: navy">;</span>
src.author<b> as </b><span style="color: maroon">srcAuthor</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Practitioner'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">practitioner</span><span style="color: navy">, </span> practitioner.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><span style="color: navy">, </span> bundle.entry<b> as </b><span style="color: maroon">eRole</span><span style="color: navy">, </span> eRole.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'PractitionerRole'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">practitionerRole</span><span style="color: navy">, </span> practitionerRole.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuidRole</span><span style="color: navy">, </span> eRole.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuidRole</span><span style="color: navy">)</span><span style="color: navy">, </span> tgt.author = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %practitionerRole.id<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> srcAuthor<span style="color: navy"><b> -> </b></span>practitioner.meta = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Meta'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">meta</span><b> then</b><span style="color: navy"> {
</span> srcAuthor<span style="color: navy"><b> -> </b></span>meta.profile = <span style="color: blue">'https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitioner'</span> <i>"practitionerProfile"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"practitionerMeta"</i><span style="color: navy">;</span>
srcAuthor<span style="color: navy"><b> -> </b></span>practitionerRole.meta = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Meta'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">metaRole</span><b> then</b><span style="color: navy"> {
</span> srcAuthor<span style="color: navy"><b> -> </b></span>metaRole.profile = <span style="color: blue">'https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitionerrole'</span> <i>"practitionerRoleProfile"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"practitionerRoleMeta"</i><span style="color: navy">;</span>
srcAuthor<span style="color: navy"><b> -> </b></span> practitionerRole.practitioner = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">refPract</span><span style="color: navy">, </span> refPract.reference = <span style="color: navy">(</span>'urn:uuid:' + %practitioner.id<span style="color: navy">)</span> <i>"practitionerRef"</i><span style="color: navy">;</span>
srcAuthor.assignedAuthor<b> as </b><span style="color: maroon">assignedAuthor</span><b> then</b><span style="color: navy"> {
</span> assignedAuthor.id<b> as </b><span style="color: maroon">id</span><span style="color: navy"><b> -> </b></span>practitioner.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then</b><span style="color: navy"> {
</span> id<span style="color: navy"><b> -> </b></span>identifier<b> then </b>II<span style="color: navy">(</span><span style="color: maroon">id</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span> <i>"baseIdentifier"</i><span style="color: navy">;</span>
id<b> where </b>root = '1.2.250.1.71.4.2.1'<span style="color: navy"><b> -> </b></span>identifier.type = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">type</span><b> then</b><span style="color: navy"> {
</span> id<span style="color: navy"><b> -> </b></span>type.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> id<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203'</span> <i>"system"</i><span style="color: navy">;</span>
id<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'IDNPS'</span> <i>"code"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"coding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"idNatPs"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"identifier"</i><span style="color: navy">;</span>
assignedAuthor.addr<b> as </b><span style="color: maroon">addr</span><span style="color: navy"><b> -> </b></span>practitioner.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">addr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
assignedAuthor.telecom<b> as </b><span style="color: maroon">tlc</span><span style="color: navy"><b> -> </b></span>practitioner.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">tlc</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
assignedAuthor.assignedPerson<b> as </b><span style="color: maroon">assPerson</span><b> then</b><span style="color: navy"> {
</span> assPerson.name<b> as </b><span style="color: maroon">pName</span><span style="color: navy"><b> -> </b></span>practitioner.name = <b>create</b><span style="color: navy">(</span><span style="color: blue">'HumanName'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">humanName</span><b> then </b>ENHumanName<span style="color: navy">(</span><span style="color: maroon">pName</span><span style="color: navy">, </span><span style="color: maroon">humanName</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"name"</i><span style="color: navy">;</span>
assignedAuthor.code<b> as </b><span style="color: maroon">roleCode</span><span style="color: navy"><b> -> </b></span>practitionerRole.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">roleCode</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span> <i>"roleCode"</i><span style="color: navy">;</span>
assignedAuthor.code<b> as </b><span style="color: maroon">roleCode</span><b> where </b>code.contains('/')<span style="color: navy"><b> -> </b></span>practitioner.qualification<b> as </b><span style="color: maroon">qualification</span><b> then</b><span style="color: navy"> {
</span> roleCode<span style="color: navy"><b> -> </b></span>qualification.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">qualCode</span><b> then</b><span style="color: navy"> {
</span> roleCode.code<b> as </b><span style="color: maroon">fullCode</span><span style="color: navy"><b> -> </b></span>qualCode.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> fullCode<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: navy">(</span>%fullCode.substring(%fullCode.indexOf('/') + 1)<span style="color: navy">)</span> <i>"savoirFaireCode"</i><span style="color: navy">;</span>
fullCode<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'https://mos.esante.gouv.fr/NOS/TRE_R38-SpecialiteOrdinale/FHIR/TRE-R38-SpecialiteOrdinale'</span> <i>"systemSavoirFaire"</i><span style="color: navy">;</span>
roleCode.displayName<b> as </b><span style="color: maroon">display</span><span style="color: navy"><b> -> </b></span>coding.display = <span style="color: maroon">display</span> <i>"display"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"coding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"qualCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"savoirFaire"</i><span style="color: navy">;</span>
assignedAuthor.code<b> as </b><span style="color: maroon">roleCode</span><b> where </b>code.contains('/') and code.contains('_')<span style="color: navy"><b> -> </b></span>practitioner.qualification<b> as </b><span style="color: maroon">qualification</span><b> then</b><span style="color: navy"> {
</span> roleCode<span style="color: navy"><b> -> </b></span>qualification.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">qualCode</span><b> then</b><span style="color: navy"> {
</span> roleCode.code<b> as </b><span style="color: maroon">fullCode</span><span style="color: navy"><b> -> </b></span>qualCode.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> fullCode<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: navy">(</span>%fullCode.substring(%fullCode.indexOf('_') + 1).substring(0, %fullCode.substring(%fullCode.indexOf('_') + 1).indexOf('/'))<span style="color: navy">)</span> <i>"professionCode"</i><span style="color: navy">;</span>
fullCode<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'https://mos.esante.gouv.fr/NOS/TRE_G15-ProfessionSante/FHIR/TRE-G15-ProfessionSante'</span> <i>"systemProfession"</i><span style="color: navy">;</span>
fullCode<b> where </b>%fullCode.substring(%fullCode.indexOf('_') + 1).substring(0, %fullCode.substring(%fullCode.indexOf('_') + 1).indexOf('/')) = '10'<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Médecin'</span> <i>"displayMedecin"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"coding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"qualCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"profession"</i><span style="color: navy">;</span>
assignedAuthor.representedOrganization<b> as </b><span style="color: maroon">srcOrg</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e2</span><span style="color: navy">, </span> e2.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Organization'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">organization</span><span style="color: navy">, </span> organization.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid3</span><span style="color: navy">, </span> e2.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid3</span><span style="color: navy">)</span><span style="color: navy">, </span> practitionerRole.organization = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">refOrg</span><span style="color: navy">, </span> refOrg.reference = <span style="color: navy">(</span>'urn:uuid:' + %organization.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentOrganization<span style="color: navy">(</span><span style="color: maroon">srcOrg</span><span style="color: navy">, </span><span style="color: maroon">organization</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"author"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"srcAuthor"</i><span style="color: navy">;</span>
src.informant<b> as </b><span style="color: maroon">srcInformant</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'RelatedPerson'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">relatedPerson</span><span style="color: navy">, </span> relatedPerson.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuidRelated</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuidRelated</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> srcInformant.relatedEntity<b> as </b><span style="color: maroon">relatedEntity</span><b> then</b><span style="color: navy"> {
</span> relatedEntity<span style="color: navy"><b> -> </b></span> relatedPerson.patient = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">patientRef</span><span style="color: navy">, </span> patientRef.reference = <span style="color: navy">(</span>'urn:uuid:' + %patientResource.id<span style="color: navy">)</span> <i>"patientRef"</i><span style="color: navy">;</span>
relatedEntity.code<b> as </b><span style="color: maroon">relationCode</span><span style="color: navy"><b> -> </b></span>relatedPerson.relationship = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">relationCode</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span> <i>"relationship"</i><span style="color: navy">;</span>
relatedEntity.addr<b> as </b><span style="color: maroon">addr</span><span style="color: navy"><b> -> </b></span>relatedPerson.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">addr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span> <i>"address"</i><span style="color: navy">;</span>
relatedEntity.telecom<b> as </b><span style="color: maroon">tlc</span><span style="color: navy"><b> -> </b></span>relatedPerson.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">tlc</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
relatedEntity.relatedPerson<b> as </b><span style="color: maroon">relPerson</span><b> then</b><span style="color: navy"> {
</span> relPerson.name<b> as </b><span style="color: maroon">pName</span><span style="color: navy"><b> -> </b></span>relatedPerson.name = <b>create</b><span style="color: navy">(</span><span style="color: blue">'HumanName'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">humanName</span><b> then </b>ENHumanName<span style="color: navy">(</span><span style="color: maroon">pName</span><span style="color: navy">, </span><span style="color: maroon">humanName</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"relatedPersonName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
src.confidentialityCode<b> as </b><span style="color: maroon">confCode</span><span style="color: navy"><b> -> </b></span>tgt.confidentiality = <b>create</b><span style="color: navy">(</span><span style="color: blue">'code'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">code</span><b> then </b>CSCode<span style="color: navy">(</span><span style="color: maroon">confCode</span><span style="color: navy">, </span><span style="color: maroon">code</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.legalAuthenticator<b> as </b><span style="color: maroon">legalAuth</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Practitioner'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">practitioner</span><span style="color: navy">, </span> practitioner.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> legalAuth<span style="color: navy"><b> -> </b></span>tgt.attester<b> as </b><span style="color: maroon">attester</span><b> then</b><span style="color: navy"> {
</span> legalAuth<span style="color: navy"><b> -> </b></span>attester.mode = <span style="color: blue">'legal'</span> <i>"mode"</i><span style="color: navy">;</span>
legalAuth.time<b> as </b><span style="color: maroon">time</span><span style="color: navy"><b> -> </b></span>attester.time = <b>create</b><span style="color: navy">(</span><span style="color: blue">'dateTime'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">dt</span><b> then </b>TSDateTime<span style="color: navy">(</span><span style="color: maroon">time</span><span style="color: navy">, </span><span style="color: maroon">dt</span><span style="color: navy">)</span><span style="color: navy">;</span>
legalAuth.assignedEntity<b> as </b><span style="color: maroon">entity</span><span style="color: navy"><b> -> </b></span> attester.party = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %practitioner.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentEntityPractitioner<span style="color: navy">(</span><span style="color: maroon">entity</span><span style="color: navy">, </span><span style="color: maroon">practitioner</span><span style="color: navy">)</span> <i>"entity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"attester"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"legalAuth"</i><span style="color: navy">;</span>
src.authenticator<b> as </b><span style="color: maroon">auth</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Practitioner'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">practitioner</span><span style="color: navy">, </span> practitioner.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> auth<span style="color: navy"><b> -> </b></span>tgt.attester<b> as </b><span style="color: maroon">attester</span><b> then</b><span style="color: navy"> {
</span> auth<span style="color: navy"><b> -> </b></span>attester.mode = <span style="color: blue">'official'</span> <i>"mode"</i><span style="color: navy">;</span>
auth.time<b> as </b><span style="color: maroon">time</span><span style="color: navy"><b> -> </b></span>attester.time = <b>create</b><span style="color: navy">(</span><span style="color: blue">'dateTime'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">dt</span><b> then </b>TSDateTime<span style="color: navy">(</span><span style="color: maroon">time</span><span style="color: navy">, </span><span style="color: maroon">dt</span><span style="color: navy">)</span><span style="color: navy">;</span>
auth.assignedEntity<b> as </b><span style="color: maroon">entity</span><span style="color: navy"><b> -> </b></span> attester.party = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %practitioner.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentEntityPractitioner<span style="color: navy">(</span><span style="color: maroon">entity</span><span style="color: navy">, </span><span style="color: maroon">practitioner</span><span style="color: navy">)</span> <i>"entity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"attester"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"auth"</i><span style="color: navy">;</span>
src.custodian<b> as </b><span style="color: maroon">custodian</span><span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> custodian.assignedCustodian<b> as </b><span style="color: maroon">assignedCustodian</span><span style="color: navy"><b> -> </b></span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Organization'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">organization</span><span style="color: navy">, </span> organization.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid3</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid3</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> assignedCustodian.representedCustodianOrganization<b> as </b><span style="color: maroon">srcOrg</span><span style="color: navy"><b> -> </b></span> tgt.custodian = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %organization.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentOrganization<span style="color: navy">(</span><span style="color: maroon">srcOrg</span><span style="color: navy">, </span><span style="color: maroon">organization</span><span style="color: navy">)</span> <i>"assignedCustodian"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"custodian"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"cust"</i><span style="color: navy">;</span>
src.documentationOf<b> as </b><span style="color: maroon">docOf</span><b> then</b><span style="color: navy"> {
</span> docOf.serviceEvent<b> as </b><span style="color: maroon">serviceEvent</span><span style="color: navy"><b> -> </b></span>tgt.event<b> as </b><span style="color: maroon">event</span><b> then</b><span style="color: navy"> {
</span> serviceEvent.code<b> as </b><span style="color: maroon">eventCode</span><span style="color: navy"><b> -> </b></span>event.code = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">eventCode</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span> <i>"eventCode"</i><span style="color: navy">;</span>
serviceEvent.effectiveTime<b> as </b><span style="color: maroon">effectivetime</span><span style="color: navy"><b> -> </b></span>event.period = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Period'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">period</span><b> then </b>IVLTSPeriod<span style="color: navy">(</span><span style="color: maroon">effectivetime</span><span style="color: navy">, </span><span style="color: maroon">period</span><span style="color: navy">)</span> <i>"eventTime"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">performerType: for src.performer.typeCode ...</span>
<span style="color: navy">}</span> <i>"docOf"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
src.relatedDocument<b> as </b><span style="color: maroon">relatedDoc</span><span style="color: navy"><b> -> </b></span>tgt.relatesTo<b> as </b><span style="color: maroon">relates</span><b> then</b><span style="color: navy"> {
</span> relatedDoc.typeCode<b> as </b><span style="color: maroon">typeCode</span><span style="color: navy"><b> -> </b></span>relates.code = <span style="color: maroon">typeCode</span><span style="color: navy">;</span>
relatedDoc.parentDocument<b> as </b><span style="color: maroon">parentDoc</span><b> then</b><span style="color: navy"> {
</span> parentDoc.setId<b> as </b><span style="color: maroon">sid</span><span style="color: navy"><b> -> </b></span>relates.targetIdentifier = <span style="color: maroon">sid</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"parentDoc"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"relatedDoc"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>ClinicalDocumentEntityPractitioner<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>AssignedEntity, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Practitioner<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.meta = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Meta'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">meta</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>meta.profile = <span style="color: blue">'https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitioner'</span> <i>"profile"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"meta"</i><span style="color: navy">;</span>
src.id<b> as </b><span style="color: maroon">srcId</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then</b><span style="color: navy"> {
</span> srcId<span style="color: navy"><b> -> </b></span>identifier<b> then </b>II<span style="color: navy">(</span><span style="color: maroon">srcId</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span> <i>"baseIdentifier"</i><span style="color: navy">;</span>
srcId<b> where </b>root = '1.2.250.1.71.4.2.1'<span style="color: navy"><b> -> </b></span>identifier.type = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">type</span><b> then</b><span style="color: navy"> {
</span> srcId<span style="color: navy"><b> -> </b></span>type.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> srcId<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203'</span> <i>"system"</i><span style="color: navy">;</span>
srcId<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'IDNPS'</span> <i>"code"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"coding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"idNatPs"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"identifier"</i><span style="color: navy">;</span>
src.addr<b> as </b><span style="color: maroon">srcAddr</span><span style="color: navy"><b> -> </b></span>tgt.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">srcAddr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.telecom<b> as </b><span style="color: maroon">srcTelecom</span><span style="color: navy"><b> -> </b></span>tgt.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">srcTelecom</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.assignedPerson<b> as </b><span style="color: maroon">person</span><b> then</b><span style="color: navy"> {
</span> person.name<b> as </b><span style="color: maroon">pName</span><span style="color: navy"><b> -> </b></span>tgt.name = <b>create</b><span style="color: navy">(</span><span style="color: blue">'HumanName'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">humanName</span><b> then </b>ENHumanName<span style="color: navy">(</span><span style="color: maroon">pName</span><span style="color: navy">, </span><span style="color: maroon">humanName</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"name"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>ClinicalDocumentOrganization<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>CustodianOrganization, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Organization<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>tgt.meta = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Meta'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">meta</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>meta.profile = <span style="color: blue">'https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-organization'</span> <i>"profile"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"meta"</i><span style="color: navy">;</span>
src.id<b> as </b><span style="color: maroon">srcId</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">srcId</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.name<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>tgt.name = <span style="color: navy">(</span>v.other<span style="color: navy">)</span><span style="color: navy">;</span>
src.telecom<b> as </b><span style="color: maroon">srcTelecom</span><span style="color: navy"><b> -> </b></span>tgt.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">srcTelecom</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.addr<b> as </b><span style="color: maroon">srcAddr</span><span style="color: navy"><b> -> </b></span>tgt.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">srcAddr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>ClinicalDocumentPatientRole<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>PatientRole, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> <span style="color: #b36b00" title="Cet élément nétait pas défini avant R5">// src.id -> tgt.identifier;</span>
<span style="color: navy">// </span><span style="color: green">Patient.identifier.type for EPR context, because there is only the identifier "LocalPid" allowed, LocalPid requires an type -> http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-patient-epr.html</span>
<span style="color: navy">// </span><span style="color: green">Modification NR</span>
src.id<b> as </b><span style="color: maroon">id</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>setFrPatientIdentifier<span style="color: navy">(</span><span style="color: maroon">id</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.addr<b> as </b><span style="color: maroon">srcAddr</span><span style="color: navy"><b> -> </b></span>tgt.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">srcAddr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.telecom<b> as </b><span style="color: maroon">srcTelecom</span><span style="color: navy"><b> -> </b></span>tgt.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">srcTelecom</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.patient<b> as </b><span style="color: maroon">patient</span><b> then</b><span style="color: navy"> {
</span> patient.name<b> as </b><span style="color: maroon">patientName</span><span style="color: navy"><b> -> </b></span>tgt.name = <b>create</b><span style="color: navy">(</span><span style="color: blue">'HumanName'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">humanName</span><b> then </b>ENHumanName<span style="color: navy">(</span><span style="color: maroon">patientName</span><span style="color: navy">, </span><span style="color: maroon">humanName</span><span style="color: navy">)</span><span style="color: navy">;</span>
patient.administrativeGenderCode<b> as </b><span style="color: maroon">gender</span><b> then</b><span style="color: navy"> {
</span> gender.code<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>tgt.gender = <b>translate</b><span style="color: navy">(</span><span style="color: maroon">v</span><span style="color: navy">, </span><span style="color: blue">'https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/ConceptMap/cm-v3-administrative-gender'</span><span style="color: navy">, </span><span style="color: blue">'code'</span><span style="color: navy">)</span> <i>"gender"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"gender"</i><span style="color: navy">;</span>
patient.birthTime<b> as </b><span style="color: maroon">birthTime</span><span style="color: navy"><b> -> </b></span>tgt.birthDate = <b>create</b><span style="color: navy">(</span><span style="color: blue">'date'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">date</span><b> then </b>TSDate<span style="color: navy">(</span><span style="color: maroon">birthTime</span><span style="color: navy">, </span><span style="color: maroon">date</span><span style="color: navy">)</span> <i>"birthDate"</i><span style="color: navy">;</span>
patient.deceasedInd<b> as </b><span style="color: maroon">indicator</span><b> where </b>patient.deceasedTime.empty()<span style="color: navy"><b> -> </b></span>tgt.deceased = <b>create</b><span style="color: navy">(</span><span style="color: blue">'boolean'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">bool</span><b> then </b>boolean<span style="color: navy">(</span><span style="color: maroon">indicator</span><span style="color: navy">, </span><span style="color: maroon">bool</span><span style="color: navy">)</span> <i>"deceasedBL"</i><span style="color: navy">;</span>
patient.deceasedTime<b> as </b><span style="color: maroon">dTime</span><span style="color: navy"><b> -> </b></span>tgt.deceased = <span style="color: maroon">dTime</span><span style="color: navy">;</span>
patient.maritalStatusCode<b> as </b><span style="color: maroon">mStatus</span><span style="color: navy"><b> -> </b></span>tgt.maritalStatus = <span style="color: maroon">mStatus</span> <i>"maritalStatus"</i><span style="color: navy">;</span>
patient.languageCommunication<b> as </b><span style="color: maroon">language</span><span style="color: navy"><b> -> </b></span>tgt.communication<b> as </b><span style="color: maroon">communication</span><b> then</b><span style="color: navy"> {
</span> language.languageCode<b> as </b><span style="color: maroon">lCode</span><span style="color: navy"><b> -> </b></span>communication.language = <span style="color: maroon">lCode</span> <i>"communication"</i><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">preference: for language.preferenceInd make communication.preferred</span>
<span style="color: navy">}</span> <i>"language"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"patientrole"</i><span style="color: navy">;</span>
src.providerOrganization<b> as </b><span style="color: maroon">org</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Organization'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">organization</span><span style="color: navy">, </span> organization.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid3</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid3</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> org<span style="color: navy"><b> -> </b></span> tgt.managingOrganization = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %organization.id<span style="color: navy">)</span> <i>"reference"</i><span style="color: navy">;</span>
org.id<b> as </b><span style="color: maroon">orgId</span><span style="color: navy"><b> -> </b></span>organization.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">orgId</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span><span style="color: navy">;</span>
org.name<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>organization.name = <span style="color: navy">(</span>v.other<span style="color: navy">)</span><span style="color: navy">;</span>
org.telecom<b> as </b><span style="color: maroon">orgTel</span><span style="color: navy"><b> -> </b></span>organization.telecom = <b>create</b><span style="color: navy">(</span><span style="color: blue">'ContactPoint'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">contactPoint</span><b> then </b>TELContactPoint<span style="color: navy">(</span><span style="color: maroon">orgTel</span><span style="color: navy">, </span><span style="color: maroon">contactPoint</span><span style="color: navy">)</span><span style="color: navy">;</span>
org.addr<b> as </b><span style="color: maroon">orgAddr</span><span style="color: navy"><b> -> </b></span>organization.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">orgAddr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"organization"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>setFrPatientIdentifier<span style="color: navy">(</span><b>source</b> <span style="color: maroon">id</span><span style="color: navy"> : </span>II, <b>target</b> <span style="color: maroon">identifier</span><span style="color: navy"> : </span>Identifier<span style="color: navy">)</span><span style="color: navy"> {
</span> id<span style="color: navy"><b> -> </b></span> identifier<span style="color: navy">, </span> identifier.type<b> as </b><span style="color: maroon">type</span><span style="color: navy">, </span> type.coding<b> as </b><span style="color: maroon">coding</span><span style="color: navy">, </span> coding.system<b> as </b><span style="color: maroon">system</span><span style="color: navy">, </span> coding.code<b> as </b><span style="color: maroon">code</span><b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">src -> system.value = 'http://terminology.hl7.org/CodeSystem/v2-0203' "system";</span>
<span style="color: navy">// </span><span style="color: green">INS-NIR - 1.2.250.1.213.1.4.8</span>
id<b> where </b>(id.root = '1.2.250.1.213.1.4.8')<span style="color: navy"><b> -> </b></span>system.value = <span style="color: blue">'https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203'</span> <i>"system"</i><span style="color: navy">;</span>
id<b> where </b>(id.root = '1.2.250.1.213.1.4.8')<span style="color: navy"><b> -> </b></span>code.value = <span style="color: blue">'INS-NIR'</span> <i>"code"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">IPP - 1.2.3.4.5.6.7.8.9.10</span>
id<b> where </b>(id.root = '1.2.3.4.5.6.7.8.9.10')<span style="color: navy"><b> -> </b></span>system.value = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/v2-0203'</span> <i>"system"</i><span style="color: navy">;</span>
id<b> where </b>(id.root = '1.2.3.4.5.6.7.8.9.10')<span style="color: navy"><b> -> </b></span>code.value = <span style="color: blue">'PI'</span> <i>"code"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"identifierType"</i><span style="color: navy">;</span>
id.extension<b> as </b><span style="color: maroon">extension</span><span style="color: navy"><b> -> </b></span> identifier.value<b> as </b><span style="color: maroon">value</span><span style="color: navy">, </span> value.value = <span style="color: maroon">extension</span><span style="color: navy">;</span>
id.root<b> as </b><span style="color: maroon">root</span><span style="color: navy"><b> -> </b></span> identifier.system<b> as </b><span style="color: maroon">system</span><span style="color: navy">, </span> system.value = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:oid:'</span><span style="color: navy">, </span><span style="color: maroon">root</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">Fin modification NR</span>
<span style="color: navy">// </span><span style="color: green">Etat initial</span>
<span style="color: #b36b00" title="Cet élément nétait pas défini avant R5">// src -> tgt.identifier as identifier then {</span>
<span style="color: #b36b00" title="Cet élément nétait pas défini avant R5">// src.id as id -> identifier.type as type, type.coding as coding, coding.system as system, coding.code as code then {</span>
<span style="color: #b36b00" title="Cet élément nétait pas défini avant R5">// src -> system.value = 'http://terminology.hl7.org/CodeSystem/v2-0203' "system";</span>
<span style="color: #b36b00" title="Cet élément nétait pas défini avant R5">// src -> code.value = 'MR' "code";</span>
<span style="color: navy">// </span><span style="color: green">id.extension as extension -> identifier.value as value, value.value = extension "extension";</span>
<span style="color: navy">// </span><span style="color: green">id.root as root -> identifier.system as system, system.value = append('urn:oid:', root) "root";</span>
<span style="color: navy">// </span><span style="color: green">} "id";</span>
<span style="color: navy">// </span><span style="color: green">} "identifier";</span>
<span style="color: navy">// </span><span style="color: green">Fin état initial</span>
<b>group </b>ClinicalDocumentEncounter<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>EncompassingEncounter, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Encounter<span style="color: navy">)</span><span style="color: navy"> {
</span> src.id<b> as </b><span style="color: maroon">Id</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">Id</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.status = <span style="color: blue">'finished'</span> <i>"status"</i><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">srcCode</span><span style="color: navy"><b> -> </b></span>tgt.class = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> srcCode.code<b> as </b><span style="color: maroon">code</span><span style="color: navy"><b> -> </b></span>coding.code = <b>cast</b><span style="color: navy">(</span><span style="color: maroon">code</span><span style="color: navy">, </span><span style="color: blue">'string'</span><span style="color: navy">)</span><span style="color: navy">;</span>
srcCode.codeSystem<b> as </b><span style="color: maroon">system</span><span style="color: navy"><b> -> </b></span>coding.system = <b>translate</b><span style="color: navy">(</span><span style="color: maroon">system</span><span style="color: navy">, </span><span style="color: blue">'http://hl7.org/fhir/ConceptMap/special-oid2uri'</span><span style="color: navy">, </span><span style="color: blue">'uri'</span><span style="color: navy">)</span><span style="color: navy">;</span>
srcCode.displayName<b> as </b><span style="color: maroon">display</span><span style="color: navy"><b> -> </b></span>coding.display = <b>cast</b><span style="color: navy">(</span><span style="color: maroon">display</span><span style="color: navy">, </span><span style="color: blue">'string'</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"class"</i><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">srcCode</span><span style="color: navy"><b> -> </b></span>tgt.type = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">srcCode</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.effectiveTime<b> as </b><span style="color: maroon">effTime</span><span style="color: navy"><b> -> </b></span>tgt.period = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Period'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">period</span><b> then </b>IVLTSPeriod<span style="color: navy">(</span><span style="color: maroon">effTime</span><span style="color: navy">, </span><span style="color: maroon">period</span><span style="color: navy">)</span><span style="color: navy">;</span>
src<b> where </b>admissionReferralSourceCode.exists() or dischargeDispositionCode.exists()<span style="color: navy"><b> -> </b></span>tgt.hospitalization<b> as </b><span style="color: maroon">hosp</span><b> then</b><span style="color: navy"> {
</span> src.admissionReferralSourceCode<b> as </b><span style="color: maroon">admRef</span><span style="color: navy"><b> -> </b></span>hosp.admitSource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">admRef</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span> <i>"adminReferral"</i><span style="color: navy">;</span>
src.dischargeDispositionCode<b> as </b><span style="color: maroon">discDispo</span><span style="color: navy"><b> -> </b></span>hosp.dischargeDisposition = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then </b>CDCodeableConcept<span style="color: navy">(</span><span style="color: maroon">discDispo</span><span style="color: navy">, </span><span style="color: maroon">cc</span><span style="color: navy">)</span> <i>"discDisposition"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"hospitalization"</i><span style="color: navy">;</span>
src.encounterParticipant<b> as </b><span style="color: maroon">srcPart</span><span style="color: navy"><b> -> </b></span>tgt.participant<b> as </b><span style="color: maroon">tgtPart</span><b> then</b><span style="color: navy"> {
</span> srcPart.typeCode<b> as </b><span style="color: maroon">code</span><span style="color: navy"><b> -> </b></span>tgtPart.type = <b>cc</b><span style="color: navy">(</span><span style="color: blue">'http://terminology.hl7.org/CodeSystem/v3-ParticipationType'</span><span style="color: navy">, </span><span style="color: maroon">code</span><span style="color: navy">)</span><span style="color: navy">;</span>
srcPart.time<b> as </b><span style="color: maroon">srcTime</span><span style="color: navy"><b> -> </b></span>tgtPart.period = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Period'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">period</span><b> then </b>IVLTSPeriod<span style="color: navy">(</span><span style="color: maroon">srcTime</span><span style="color: navy">, </span><span style="color: maroon">period</span><span style="color: navy">)</span><span style="color: navy">;</span>
srcPart.assignedEntity<b> as </b><span style="color: maroon">entity</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Practitioner'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">practitioner</span><span style="color: navy">, </span> practitioner.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> entity<span style="color: navy"><b> -> </b></span> tgtPart.individual = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %practitioner.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentEntityPractitioner<span style="color: navy">(</span><span style="color: maroon">entity</span><span style="color: navy">, </span><span style="color: maroon">practitioner</span><span style="color: navy">)</span> <i>"entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"entity"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"participant"</i><span style="color: navy">;</span>
src.location<b> as </b><span style="color: maroon">srcLocation</span><b> then</b><span style="color: navy"> {
</span> srcLocation.healthCareFacility<b> as </b><span style="color: maroon">facility</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Location'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">location</span><span style="color: navy">, </span> location.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid2</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid2</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> facility<span style="color: navy"><b> -> </b></span> tgt.location<b> as </b><span style="color: maroon">tgtLocation</span><span style="color: navy">, </span> tgtLocation.location = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %location.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentLocation<span style="color: navy">(</span><span style="color: maroon">facility</span><span style="color: navy">, </span><span style="color: maroon">bundle</span><span style="color: navy">, </span><span style="color: maroon">location</span><span style="color: navy">)</span> <i>"facLocation"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"facility"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>ClinicalDocumentLocation<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>HealthCareFacility, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Location<span style="color: navy">)</span><span style="color: navy"> {
</span> src.id<b> as </b><span style="color: maroon">srcIdentifier</span><span style="color: navy"><b> -> </b></span>tgt.identifier = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Identifier'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">identifier</span><b> then </b>II<span style="color: navy">(</span><span style="color: maroon">srcIdentifier</span><span style="color: navy">, </span><span style="color: maroon">identifier</span><span style="color: navy">)</span><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">srcCode</span><span style="color: navy"><b> -> </b></span>tgt.type = <b>create</b><span style="color: navy">(</span><span style="color: blue">'CodeableConcept'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">cc</span><b> then</b><span style="color: navy"> {
</span> srcCode.code<b> as </b><span style="color: maroon">code</span><span style="color: navy"><b> -> </b></span>cc.coding = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Coding'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> code<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: maroon">code</span> <i>"code"</i><span style="color: navy">;</span>
code<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite/FHIR/TRE-R02-SecteurActivite'</span> <i>"system"</i><span style="color: navy">;</span>
srcCode.displayName<b> as </b><span style="color: maroon">display</span><span style="color: navy"><b> -> </b></span>coding.display = <span style="color: maroon">display</span> <i>"display"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"coding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"locationType"</i><span style="color: navy">;</span>
src.location<b> as </b><span style="color: maroon">location</span><b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">place names are usually stored with no parts location.name as srcName -> tgt.name = cast(srcName, 'string');</span>
location.addr<b> as </b><span style="color: maroon">locAddr</span><span style="color: navy"><b> -> </b></span>tgt.address = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Address'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">address</span><b> then </b>ADAddress<span style="color: navy">(</span><span style="color: maroon">locAddr</span><span style="color: navy">, </span><span style="color: maroon">address</span><span style="color: navy">)</span><span style="color: navy">;</span>
location.serviceProviderOrganization<b> as </b><span style="color: maroon">srcOrg</span><span style="color: navy"><b> -> </b></span> bundle.entry<b> as </b><span style="color: maroon">e</span><span style="color: navy">, </span> e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Organization'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">organization</span><span style="color: navy">, </span> organization.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">uuid3</span><span style="color: navy">, </span> e.fullUrl = <b>append</b><span style="color: navy">(</span><span style="color: blue">'urn:uuid:'</span><span style="color: navy">, </span><span style="color: maroon">uuid3</span><span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> srcOrg<span style="color: navy"><b> -> </b></span> tgt.managingOrganization = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Reference'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">reference</span><span style="color: navy">, </span> reference.reference = <span style="color: navy">(</span>'urn:uuid:' + %organization.id<span style="color: navy">)</span><b> then </b>ClinicalDocumentOrganization<span style="color: navy">(</span><span style="color: maroon">srcOrg</span><span style="color: navy">, </span><span style="color: maroon">organization</span><span style="color: navy">)</span> <i>"organization"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"org"</i><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span> <span style="color: navy">// </span><span style="color: green">place names are usually stored with no parts</span>
<span style="color: navy">}
</span><span style="color: navy">// </span><span style="color: green">_________________________ Template Type not specified ___________________</span>
<b>group </b>NarrativeLink<span style="color: navy">(</span><b>source</b> <span style="color: maroon">url</span>, <b>target</b> <span style="color: maroon">ext</span><span style="color: navy"> : </span>Extension<span style="color: navy">)</span><span style="color: navy"> {
</span> url<span style="color: navy"><b> -> </b></span>ext.url = <span style="color: blue">'http://hl7.org/fhir/StructureDefinition/narrativeLink'</span> <i>"url"</i><span style="color: navy">;</span>
url<span style="color: navy"><b> -> </b></span> ext.value = <b>create</b><span style="color: navy">(</span><span style="color: blue">'url'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">value</span><span style="color: navy">, </span> value.value = <span style="color: maroon">url</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/StructureMap/CdaToBundle"/>
<version value="0.1.0"/>
<name value="CdaToBundle"/>
<title
value="Mapping de CDA vers FHIR Bundle (A partir des sources de Oliver Egger)"/>
<status value="draft"/>
<date value="2025-11-07T10:30:30+00:00"/>
<publisher
value="Agence du Numérique en Santé (ANS) - 2-10 Rue d'Oradour-sur-Glane, 75015 Paris"/>
<contact>
<name
value="Agence du Numérique en Santé (ANS) - 2-10 Rue d'Oradour-sur-Glane, 75015 Paris"/>
<telecom>
<system value="url"/>
<value value="https://esante.gouv.fr"/>
</telecom>
</contact>
<description
value="Mapping de CDA vers FHIR Bundle (A partir des sources de Oliver Egger)"/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="FR"/>
<display value="FRANCE"/>
</coding>
</jurisdiction>
<structure>
<url
value="http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument"/>
<mode value="source"/>
<alias value="ClinicalDocument"/>
</structure>
<structure>
<url
value="http://hl7.org/cda/stds/core/StructureDefinition/AssignedAuthor"/>
<mode value="source"/>
<alias value="AssignedAuthor"/>
</structure>
<structure>
<url
value="http://hl7.org/cda/stds/core/StructureDefinition/AssignedEntity"/>
<mode value="source"/>
<alias value="AssignedEntity"/>
</structure>
<structure>
<url
value="http://hl7.org/cda/stds/core/StructureDefinition/CustodianOrganization"/>
<mode value="source"/>
<alias value="CustodianOrganization"/>
</structure>
<structure>
<url value="http://hl7.org/cda/stds/core/StructureDefinition/Section"/>
<mode value="source"/>
<alias value="Section"/>
</structure>
<structure>
<url
value="http://hl7.org/cda/stds/core/StructureDefinition/PatientRole"/>
<mode value="source"/>
<alias value="PatientRole"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
<mode value="target"/>
<alias value="Bundle"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Composition"/>
<mode value="target"/>
<alias value="Composition"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Patient"/>
<mode value="target"/>
<alias value="Patient"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Person"/>
<mode value="target"/>
<alias value="Person"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Practitioner"/>
<mode value="target"/>
<alias value="Practitioner"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Organization"/>
<mode value="target"/>
<alias value="Organization"/>
</structure>
<import
value="https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/StructureMap/CdaToFHIRTypes"/>
<group>
<name value="CdaToBundle"/>
<typeMode value="none"/>
<documentation
value="_________________________ Document Level Template _________________________"/>
<input>
<name value="cda"/>
<type value="ClinicalDocument"/>
<mode value="source"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="ClinicalDocumentToBody"/>
<source>
<context value="cda"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="composition"/>
<transform value="create"/>
<parameter>
<valueString value="Composition"/>
</parameter>
</target>
<target>
<context value="composition"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid"/>
</parameter>
</target>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e2"/>
</target>
<target>
<context value="e2"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="patient"/>
<transform value="create"/>
<parameter>
<valueString value="Patient"/>
</parameter>
</target>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e2"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<rule>
<name value="cdatobundle"/>
<source>
<context value="cda"/>
</source>
<dependent>
<name value="ClinicalDocumentToBundle"/>
<variable value="cda"/>
<variable value="patient"/>
<variable value="composition"/>
<variable value="bundle"/>
</dependent>
</rule>
</rule>
</group>
<group>
<name value="ClinicalDocumentToBundle"/>
<typeMode value="none"/>
<input>
<name value="cda"/>
<type value="ClinicalDocument"/>
<mode value="source"/>
</input>
<input>
<name value="patient"/>
<type value="Patient"/>
<mode value="target"/>
</input>
<input>
<name value="composition"/>
<type value="Composition"/>
<mode value="target"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="id"/>
<source>
<context value="cda"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="identifier"/>
<source>
<context value="cda"/>
<element value="id"/>
<variable value="cdaId"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
</target>
<rule>
<name value="system"/>
<source>
<context value="cdaId"/>
<element value="root"/>
<variable value="root"/>
<condition value="cdaId.extension.exists()"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="translate"/>
<parameter>
<valueId value="root"/>
</parameter>
<parameter>
<valueString value="#oid2uri"/>
</parameter>
<parameter>
<valueString value="uri"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="cdaId"/>
<element value="extension"/>
<variable value="extension"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="extension"/>
</parameter>
</target>
</rule>
<rule>
<name value="systemOid"/>
<source>
<context value="cdaId"/>
<element value="root"/>
<variable value="root"/>
<condition value="cdaId.extension.empty()"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="urn:ietf:rfc:3986"/>
</parameter>
</target>
</rule>
<rule>
<name value="valueOid"/>
<source>
<context value="cdaId"/>
<element value="root"/>
<variable value="root"/>
<condition value="cdaId.extension.empty()"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="append"/>
<parameter>
<valueString value="urn:oid:"/>
</parameter>
<parameter>
<valueId value="root"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="type"/>
<source>
<context value="cda"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="document"/>
</parameter>
</target>
</rule>
<rule>
<name value="timestamp"/>
<source>
<context value="cda"/>
<element value="effectiveTime"/>
<variable value="effectiveTime"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="timestamp"/>
<variable value="timestamp"/>
<transform value="create"/>
<parameter>
<valueString value="instant"/>
</parameter>
</target>
<dependent>
<name value="TSInstant"/>
<variable value="effectiveTime"/>
<variable value="timestamp"/>
</dependent>
</rule>
<rule>
<name value="composition"/>
<source>
<context value="cda"/>
</source>
<dependent>
<name value="ClinicalDocumentComposition"/>
<variable value="cda"/>
<variable value="composition"/>
<variable value="patient"/>
<variable value="bundle"/>
</dependent>
</rule>
<rule>
<name value="cdaComponent"/>
<source>
<context value="cda"/>
<element value="component"/>
<variable value="cdaComponent"/>
</source>
<rule>
<name value="body"/>
<source>
<context value="cdaComponent"/>
<element value="structuredBody"/>
<variable value="body"/>
</source>
<rule>
<name value="bodyComponent"/>
<source>
<context value="body"/>
<element value="component"/>
<variable value="bodyComponent"/>
</source>
<rule>
<name value="section"/>
<source>
<context value="bodyComponent"/>
<element value="section"/>
<variable value="srcSection"/>
<condition value="$this.code.empty()"/>
</source>
<target>
<context value="composition"/>
<contextType value="variable"/>
<element value="section"/>
<variable value="tgtSection"/>
</target>
<dependent>
<name value="ClinicalDocumentSection"/>
<variable value="cda"/>
<variable value="srcSection"/>
<variable value="patient"/>
<variable value="tgtSection"/>
<variable value="bundle"/>
</dependent>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="ClinicalDocumentSection"/>
<typeMode value="none"/>
<documentation
value="// _________________________ Section Level Templates _________________________"/>
<input>
<name value="cda"/>
<type value="ClinicalDocument"/>
<mode value="source"/>
</input>
<input>
<name value="src"/>
<type value="Section"/>
<mode value="source"/>
</input>
<input>
<name value="patient"/>
<type value="Patient"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<mode value="target"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="title"/>
<source>
<context value="src"/>
<element value="title"/>
<variable value="t"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="title"/>
<transform value="evaluate"/>
<parameter>
<valueString value="t.xmlText"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="srcCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueId value="srcCode"/>
</parameter>
</target>
</rule>
<rule>
<name value="cdaText"/>
<source>
<context value="src"/>
<element value="text"/>
<variable value="cdaText"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="text"/>
<variable value="fhirText"/>
</target>
<rule>
<name value="narrativeStatus"/>
<source>
<context value="cdaText"/>
</source>
<target>
<context value="fhirText"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="generated"/>
</parameter>
</target>
</rule>
<rule>
<name value="narrativeText"/>
<source>
<context value="cdaText"/>
<variable value="t"/>
</source>
<target>
<context value="fhirText"/>
<contextType value="variable"/>
<element value="div"/>
<transform value="copy"/>
<parameter>
<valueId value="t"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="section"/>
<source>
<context value="src"/>
<element value="section"/>
<variable value="srcSection"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="section"/>
<variable value="tgtSection"/>
</target>
<dependent>
<name value="ClinicalDocumentSection"/>
<variable value="cda"/>
<variable value="srcSection"/>
<variable value="patient"/>
<variable value="tgtSection"/>
<variable value="bundle"/>
</dependent>
</rule>
</group>
<group>
<name value="ClinicalDocumentComposition"/>
<typeMode value="none"/>
<documentation
value="_________________________ Entry Level Templates ________________________
_________________________ Header Level Templates _________________________"/>
<input>
<name value="src"/>
<type value="ClinicalDocument"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Composition"/>
<mode value="target"/>
</input>
<input>
<name value="patientResource"/>
<type value="Patient"/>
<mode value="target"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="languageCode"/>
<source>
<context value="src"/>
<element value="languageCode"/>
<variable value="languageCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="language"/>
<variable value="code"/>
<transform value="create"/>
<parameter>
<valueString value="code"/>
</parameter>
</target>
<dependent>
<name value="CSCode"/>
<variable value="languageCode"/>
<variable value="code"/>
</dependent>
</rule>
<rule>
<name value="identifier"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="id"/>
<condition value="src.setId.exists().not()"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="id"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="setIdentifier"/>
<source>
<context value="src"/>
<element value="setId"/>
<variable value="setId"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="setId"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="final"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="srcCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="srcCode"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="title"/>
<source>
<context value="src"/>
<element value="title"/>
<variable value="t"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="title"/>
<transform value="evaluate"/>
<parameter>
<valueString value="t.xmlText"/>
</parameter>
</target>
</rule>
<rule>
<name value="patientRole"/>
<source>
<context value="src"/>
<element value="recordTarget"/>
<variable value="recordTarget"/>
</source>
<rule>
<name value="subject"/>
<source>
<context value="recordTarget"/>
<element value="patientRole"/>
<variable value="patient"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="subject"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %patientResource.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentPatientRole"/>
<variable value="patient"/>
<variable value="patientResource"/>
<variable value="bundle"/>
</dependent>
</rule>
</rule>
<rule>
<name value="encompassingEncounter"/>
<source>
<context value="src"/>
<element value="componentOf"/>
<variable value="comp"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="encounter"/>
<transform value="create"/>
<parameter>
<valueString value="Encounter"/>
</parameter>
</target>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid"/>
</parameter>
</target>
<rule>
<name value="srcEncounter"/>
<source>
<context value="comp"/>
<element value="encompassingEncounter"/>
<variable value="srcEnc"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="encounter"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %encounter.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentEncounter"/>
<variable value="srcEnc"/>
<variable value="bundle"/>
<variable value="encounter"/>
</dependent>
</rule>
</rule>
<rule>
<name value="compositionDate"/>
<source>
<context value="src"/>
<element value="effectiveTime"/>
<variable value="effectiveTime"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="date"/>
<variable value="date"/>
<transform value="create"/>
<parameter>
<valueString value="dateTime"/>
</parameter>
</target>
<dependent>
<name value="TSDateTime"/>
<variable value="effectiveTime"/>
<variable value="date"/>
</dependent>
</rule>
<rule>
<name value="srcAuthor"/>
<source>
<context value="src"/>
<element value="author"/>
<variable value="srcAuthor"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="practitioner"/>
<transform value="create"/>
<parameter>
<valueString value="Practitioner"/>
</parameter>
</target>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="eRole"/>
</target>
<target>
<context value="eRole"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="practitionerRole"/>
<transform value="create"/>
<parameter>
<valueString value="PractitionerRole"/>
</parameter>
</target>
<target>
<context value="practitionerRole"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuidRole"/>
<transform value="uuid"/>
</target>
<target>
<context value="eRole"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuidRole"/>
</parameter>
</target>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="author"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %practitionerRole.id"/>
</parameter>
</target>
<rule>
<name value="practitionerMeta"/>
<source>
<context value="srcAuthor"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="meta"/>
<transform value="create"/>
<parameter>
<valueString value="Meta"/>
</parameter>
</target>
<rule>
<name value="practitionerProfile"/>
<source>
<context value="srcAuthor"/>
</source>
<target>
<context value="meta"/>
<contextType value="variable"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitioner"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="practitionerRoleMeta"/>
<source>
<context value="srcAuthor"/>
</source>
<target>
<context value="practitionerRole"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="metaRole"/>
<transform value="create"/>
<parameter>
<valueString value="Meta"/>
</parameter>
</target>
<rule>
<name value="practitionerRoleProfile"/>
<source>
<context value="srcAuthor"/>
</source>
<target>
<context value="metaRole"/>
<contextType value="variable"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitionerrole"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="practitionerRef"/>
<source>
<context value="srcAuthor"/>
</source>
<target>
<context value="practitionerRole"/>
<contextType value="variable"/>
<element value="practitioner"/>
<variable value="refPract"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="refPract"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %practitioner.id"/>
</parameter>
</target>
</rule>
<rule>
<name value="author"/>
<source>
<context value="srcAuthor"/>
<element value="assignedAuthor"/>
<variable value="assignedAuthor"/>
</source>
<rule>
<name value="identifier"/>
<source>
<context value="assignedAuthor"/>
<element value="id"/>
<variable value="id"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<rule>
<name value="baseIdentifier"/>
<source>
<context value="id"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
</target>
<dependent>
<name value="II"/>
<variable value="id"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="idNatPs"/>
<source>
<context value="id"/>
<condition value="root = '1.2.250.1.71.4.2.1'"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="type"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="coding"/>
<source>
<context value="id"/>
</source>
<target>
<context value="type"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="system"/>
<source>
<context value="id"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="id"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="IDNPS"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="addr"/>
<source>
<context value="assignedAuthor"/>
<element value="addr"/>
<variable value="addr"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="addr"/>
<variable value="address"/>
</dependent>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="assignedAuthor"/>
<element value="telecom"/>
<variable value="tlc"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="tlc"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="name"/>
<source>
<context value="assignedAuthor"/>
<element value="assignedPerson"/>
<variable value="assPerson"/>
</source>
<rule>
<name value="name"/>
<source>
<context value="assPerson"/>
<element value="name"/>
<variable value="pName"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="humanName"/>
<transform value="create"/>
<parameter>
<valueString value="HumanName"/>
</parameter>
</target>
<dependent>
<name value="ENHumanName"/>
<variable value="pName"/>
<variable value="humanName"/>
</dependent>
</rule>
</rule>
<rule>
<name value="roleCode"/>
<source>
<context value="assignedAuthor"/>
<element value="code"/>
<variable value="roleCode"/>
</source>
<target>
<context value="practitionerRole"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="roleCode"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="savoirFaire"/>
<source>
<context value="assignedAuthor"/>
<element value="code"/>
<variable value="roleCode"/>
<condition value="code.contains('/')"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="qualification"/>
<variable value="qualification"/>
</target>
<rule>
<name value="qualCode"/>
<source>
<context value="roleCode"/>
</source>
<target>
<context value="qualification"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="qualCode"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="coding"/>
<source>
<context value="roleCode"/>
<element value="code"/>
<variable value="fullCode"/>
</source>
<target>
<context value="qualCode"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="savoirFaireCode"/>
<source>
<context value="fullCode"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString
value="%fullCode.substring(%fullCode.indexOf('/') + 1)"/>
</parameter>
</target>
</rule>
<rule>
<name value="systemSavoirFaire"/>
<source>
<context value="fullCode"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://mos.esante.gouv.fr/NOS/TRE_R38-SpecialiteOrdinale/FHIR/TRE-R38-SpecialiteOrdinale"/>
</parameter>
</target>
</rule>
<rule>
<name value="display"/>
<source>
<context value="roleCode"/>
<element value="displayName"/>
<variable value="display"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueId value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="profession"/>
<source>
<context value="assignedAuthor"/>
<element value="code"/>
<variable value="roleCode"/>
<condition value="code.contains('/') and code.contains('_')"/>
</source>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="qualification"/>
<variable value="qualification"/>
</target>
<rule>
<name value="qualCode"/>
<source>
<context value="roleCode"/>
</source>
<target>
<context value="qualification"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="qualCode"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="coding"/>
<source>
<context value="roleCode"/>
<element value="code"/>
<variable value="fullCode"/>
</source>
<target>
<context value="qualCode"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="professionCode"/>
<source>
<context value="fullCode"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString
value="%fullCode.substring(%fullCode.indexOf('_') + 1).substring(0, %fullCode.substring(%fullCode.indexOf('_') + 1).indexOf('/'))"/>
</parameter>
</target>
</rule>
<rule>
<name value="systemProfession"/>
<source>
<context value="fullCode"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://mos.esante.gouv.fr/NOS/TRE_G15-ProfessionSante/FHIR/TRE-G15-ProfessionSante"/>
</parameter>
</target>
</rule>
<rule>
<name value="displayMedecin"/>
<source>
<context value="fullCode"/>
<condition
value="%fullCode.substring(%fullCode.indexOf('_') + 1).substring(0, %fullCode.substring(%fullCode.indexOf('_') + 1).indexOf('/')) = '10'"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Médecin"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="representedOrganization"/>
<source>
<context value="assignedAuthor"/>
<element value="representedOrganization"/>
<variable value="srcOrg"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e2"/>
</target>
<target>
<context value="e2"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="organization"/>
<transform value="create"/>
<parameter>
<valueString value="Organization"/>
</parameter>
</target>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid3"/>
<transform value="uuid"/>
</target>
<target>
<context value="e2"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid3"/>
</parameter>
</target>
<target>
<context value="practitionerRole"/>
<contextType value="variable"/>
<element value="organization"/>
<variable value="refOrg"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="refOrg"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %organization.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentOrganization"/>
<variable value="srcOrg"/>
<variable value="organization"/>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="informant"/>
<source>
<context value="src"/>
<element value="informant"/>
<variable value="srcInformant"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="relatedPerson"/>
<transform value="create"/>
<parameter>
<valueString value="RelatedPerson"/>
</parameter>
</target>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuidRelated"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuidRelated"/>
</parameter>
</target>
<rule>
<name value="relatedEntity"/>
<source>
<context value="srcInformant"/>
<element value="relatedEntity"/>
<variable value="relatedEntity"/>
</source>
<rule>
<name value="patientRef"/>
<source>
<context value="relatedEntity"/>
</source>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="patient"/>
<variable value="patientRef"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="patientRef"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %patientResource.id"/>
</parameter>
</target>
</rule>
<rule>
<name value="relationship"/>
<source>
<context value="relatedEntity"/>
<element value="code"/>
<variable value="relationCode"/>
</source>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="relationship"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="relationCode"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="address"/>
<source>
<context value="relatedEntity"/>
<element value="addr"/>
<variable value="addr"/>
</source>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="addr"/>
<variable value="address"/>
</dependent>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="relatedEntity"/>
<element value="telecom"/>
<variable value="tlc"/>
</source>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="tlc"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="relatedPersonName"/>
<source>
<context value="relatedEntity"/>
<element value="relatedPerson"/>
<variable value="relPerson"/>
</source>
<rule>
<name value="name"/>
<source>
<context value="relPerson"/>
<element value="name"/>
<variable value="pName"/>
</source>
<target>
<context value="relatedPerson"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="humanName"/>
<transform value="create"/>
<parameter>
<valueString value="HumanName"/>
</parameter>
</target>
<dependent>
<name value="ENHumanName"/>
<variable value="pName"/>
<variable value="humanName"/>
</dependent>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="confidentialityCode"/>
<source>
<context value="src"/>
<element value="confidentialityCode"/>
<variable value="confCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="confidentiality"/>
<variable value="code"/>
<transform value="create"/>
<parameter>
<valueString value="code"/>
</parameter>
</target>
<dependent>
<name value="CSCode"/>
<variable value="confCode"/>
<variable value="code"/>
</dependent>
</rule>
<rule>
<name value="legalAuth"/>
<source>
<context value="src"/>
<element value="legalAuthenticator"/>
<variable value="legalAuth"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="practitioner"/>
<transform value="create"/>
<parameter>
<valueString value="Practitioner"/>
</parameter>
</target>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<rule>
<name value="attester"/>
<source>
<context value="legalAuth"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="attester"/>
<variable value="attester"/>
</target>
<rule>
<name value="mode"/>
<source>
<context value="legalAuth"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="mode"/>
<transform value="copy"/>
<parameter>
<valueString value="legal"/>
</parameter>
</target>
</rule>
<rule>
<name value="time"/>
<source>
<context value="legalAuth"/>
<element value="time"/>
<variable value="time"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="time"/>
<variable value="dt"/>
<transform value="create"/>
<parameter>
<valueString value="dateTime"/>
</parameter>
</target>
<dependent>
<name value="TSDateTime"/>
<variable value="time"/>
<variable value="dt"/>
</dependent>
</rule>
<rule>
<name value="entity"/>
<source>
<context value="legalAuth"/>
<element value="assignedEntity"/>
<variable value="entity"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="party"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %practitioner.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentEntityPractitioner"/>
<variable value="entity"/>
<variable value="practitioner"/>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="auth"/>
<source>
<context value="src"/>
<element value="authenticator"/>
<variable value="auth"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="practitioner"/>
<transform value="create"/>
<parameter>
<valueString value="Practitioner"/>
</parameter>
</target>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<rule>
<name value="attester"/>
<source>
<context value="auth"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="attester"/>
<variable value="attester"/>
</target>
<rule>
<name value="mode"/>
<source>
<context value="auth"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="mode"/>
<transform value="copy"/>
<parameter>
<valueString value="official"/>
</parameter>
</target>
</rule>
<rule>
<name value="time"/>
<source>
<context value="auth"/>
<element value="time"/>
<variable value="time"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="time"/>
<variable value="dt"/>
<transform value="create"/>
<parameter>
<valueString value="dateTime"/>
</parameter>
</target>
<dependent>
<name value="TSDateTime"/>
<variable value="time"/>
<variable value="dt"/>
</dependent>
</rule>
<rule>
<name value="entity"/>
<source>
<context value="auth"/>
<element value="assignedEntity"/>
<variable value="entity"/>
</source>
<target>
<context value="attester"/>
<contextType value="variable"/>
<element value="party"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %practitioner.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentEntityPractitioner"/>
<variable value="entity"/>
<variable value="practitioner"/>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="cust"/>
<source>
<context value="src"/>
<element value="custodian"/>
<variable value="custodian"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="custodian"/>
<source>
<context value="custodian"/>
<element value="assignedCustodian"/>
<variable value="assignedCustodian"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="organization"/>
<transform value="create"/>
<parameter>
<valueString value="Organization"/>
</parameter>
</target>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid3"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid3"/>
</parameter>
</target>
<rule>
<name value="assignedCustodian"/>
<source>
<context value="assignedCustodian"/>
<element value="representedCustodianOrganization"/>
<variable value="srcOrg"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="custodian"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %organization.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentOrganization"/>
<variable value="srcOrg"/>
<variable value="organization"/>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="documentationOf"/>
<source>
<context value="src"/>
<element value="documentationOf"/>
<variable value="docOf"/>
</source>
<rule>
<name value="docOf"/>
<source>
<context value="docOf"/>
<element value="serviceEvent"/>
<variable value="serviceEvent"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="event"/>
<variable value="event"/>
</target>
<rule>
<name value="eventCode"/>
<source>
<context value="serviceEvent"/>
<element value="code"/>
<variable value="eventCode"/>
</source>
<target>
<context value="event"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="eventCode"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="eventTime"/>
<source>
<context value="serviceEvent"/>
<element value="effectiveTime"/>
<variable value="effectivetime"/>
</source>
<target>
<context value="event"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="period"/>
<transform value="create"/>
<parameter>
<valueString value="Period"/>
</parameter>
</target>
<dependent>
<name value="IVLTSPeriod"/>
<variable value="effectivetime"/>
<variable value="period"/>
</dependent>
<documentation
value="performerType: for src.performer.typeCode ..."/>
</rule>
</rule>
</rule>
<rule>
<name value="relatedDoc"/>
<source>
<context value="src"/>
<element value="relatedDocument"/>
<variable value="relatedDoc"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="relatesTo"/>
<variable value="relates"/>
</target>
<rule>
<name value="typeCode"/>
<source>
<context value="relatedDoc"/>
<element value="typeCode"/>
<variable value="typeCode"/>
</source>
<target>
<context value="relates"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueId value="typeCode"/>
</parameter>
</target>
</rule>
<rule>
<name value="parentDoc"/>
<source>
<context value="relatedDoc"/>
<element value="parentDocument"/>
<variable value="parentDoc"/>
</source>
<rule>
<name value="setId"/>
<source>
<context value="parentDoc"/>
<element value="setId"/>
<variable value="sid"/>
</source>
<target>
<context value="relates"/>
<contextType value="variable"/>
<element value="targetIdentifier"/>
<transform value="copy"/>
<parameter>
<valueId value="sid"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="ClinicalDocumentEntityPractitioner"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="AssignedEntity"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Practitioner"/>
<mode value="target"/>
</input>
<rule>
<name value="meta"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="meta"/>
<transform value="create"/>
<parameter>
<valueString value="Meta"/>
</parameter>
</target>
<rule>
<name value="profile"/>
<source>
<context value="src"/>
</source>
<target>
<context value="meta"/>
<contextType value="variable"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-practitioner"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="identifier"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="srcId"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<rule>
<name value="baseIdentifier"/>
<source>
<context value="srcId"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
</target>
<dependent>
<name value="II"/>
<variable value="srcId"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="idNatPs"/>
<source>
<context value="srcId"/>
<condition value="root = '1.2.250.1.71.4.2.1'"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="type"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="coding"/>
<source>
<context value="srcId"/>
</source>
<target>
<context value="type"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="system"/>
<source>
<context value="srcId"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="srcId"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="IDNPS"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="addr"/>
<source>
<context value="src"/>
<element value="addr"/>
<variable value="srcAddr"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="srcAddr"/>
<variable value="address"/>
</dependent>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="src"/>
<element value="telecom"/>
<variable value="srcTelecom"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="srcTelecom"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="name"/>
<source>
<context value="src"/>
<element value="assignedPerson"/>
<variable value="person"/>
</source>
<rule>
<name value="name"/>
<source>
<context value="person"/>
<element value="name"/>
<variable value="pName"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="humanName"/>
<transform value="create"/>
<parameter>
<valueString value="HumanName"/>
</parameter>
</target>
<dependent>
<name value="ENHumanName"/>
<variable value="pName"/>
<variable value="humanName"/>
</dependent>
</rule>
</rule>
</group>
<group>
<name value="ClinicalDocumentOrganization"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="CustodianOrganization"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Organization"/>
<mode value="target"/>
</input>
<rule>
<name value="meta"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="meta"/>
<transform value="create"/>
<parameter>
<valueString value="Meta"/>
</parameter>
</target>
<rule>
<name value="profile"/>
<source>
<context value="src"/>
</source>
<target>
<context value="meta"/>
<contextType value="variable"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-organization"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="id"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="srcId"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="srcId"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="name"/>
<source>
<context value="src"/>
<element value="name"/>
<variable value="v"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="name"/>
<transform value="evaluate"/>
<parameter>
<valueString value="v.other"/>
</parameter>
</target>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="src"/>
<element value="telecom"/>
<variable value="srcTelecom"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="srcTelecom"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="addr"/>
<source>
<context value="src"/>
<element value="addr"/>
<variable value="srcAddr"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="srcAddr"/>
<variable value="address"/>
</dependent>
</rule>
</group>
<group>
<name value="ClinicalDocumentPatientRole"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="PatientRole"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Patient"/>
<mode value="target"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="id"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="id"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="setFrPatientIdentifier"/>
<variable value="id"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="addr"/>
<source>
<context value="src"/>
<element value="addr"/>
<variable value="srcAddr"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="srcAddr"/>
<variable value="address"/>
</dependent>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="src"/>
<element value="telecom"/>
<variable value="srcTelecom"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="srcTelecom"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="patientrole"/>
<source>
<context value="src"/>
<element value="patient"/>
<variable value="patient"/>
</source>
<rule>
<name value="name"/>
<source>
<context value="patient"/>
<element value="name"/>
<variable value="patientName"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="humanName"/>
<transform value="create"/>
<parameter>
<valueString value="HumanName"/>
</parameter>
</target>
<dependent>
<name value="ENHumanName"/>
<variable value="patientName"/>
<variable value="humanName"/>
</dependent>
</rule>
<rule>
<name value="gender"/>
<source>
<context value="patient"/>
<element value="administrativeGenderCode"/>
<variable value="gender"/>
</source>
<rule>
<name value="gender"/>
<source>
<context value="gender"/>
<element value="code"/>
<variable value="v"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="gender"/>
<transform value="translate"/>
<parameter>
<valueId value="v"/>
</parameter>
<parameter>
<valueString
value="https://interop.esante.gouv.fr/ig/fhir/mappingcdafhir/ConceptMap/cm-v3-administrative-gender"/>
</parameter>
<parameter>
<valueString value="code"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="birthDate"/>
<source>
<context value="patient"/>
<element value="birthTime"/>
<variable value="birthTime"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="birthDate"/>
<variable value="date"/>
<transform value="create"/>
<parameter>
<valueString value="date"/>
</parameter>
</target>
<dependent>
<name value="TSDate"/>
<variable value="birthTime"/>
<variable value="date"/>
</dependent>
</rule>
<rule>
<name value="deceasedBL"/>
<source>
<context value="patient"/>
<element value="deceasedInd"/>
<variable value="indicator"/>
<condition value="patient.deceasedTime.empty()"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="deceased"/>
<variable value="bool"/>
<transform value="create"/>
<parameter>
<valueString value="boolean"/>
</parameter>
</target>
<dependent>
<name value="boolean"/>
<variable value="indicator"/>
<variable value="bool"/>
</dependent>
</rule>
<rule>
<name value="deceasedTime"/>
<source>
<context value="patient"/>
<element value="deceasedTime"/>
<variable value="dTime"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="deceased"/>
<transform value="copy"/>
<parameter>
<valueId value="dTime"/>
</parameter>
</target>
</rule>
<rule>
<name value="maritalStatus"/>
<source>
<context value="patient"/>
<element value="maritalStatusCode"/>
<variable value="mStatus"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="maritalStatus"/>
<transform value="copy"/>
<parameter>
<valueId value="mStatus"/>
</parameter>
</target>
</rule>
<rule>
<name value="language"/>
<source>
<context value="patient"/>
<element value="languageCommunication"/>
<variable value="language"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="communication"/>
<variable value="communication"/>
</target>
<rule>
<name value="communication"/>
<source>
<context value="language"/>
<element value="languageCode"/>
<variable value="lCode"/>
</source>
<target>
<context value="communication"/>
<contextType value="variable"/>
<element value="language"/>
<transform value="copy"/>
<parameter>
<valueId value="lCode"/>
</parameter>
</target>
<documentation
value="preference: for language.preferenceInd make communication.preferred"/>
</rule>
</rule>
</rule>
<rule>
<name value="organization"/>
<source>
<context value="src"/>
<element value="providerOrganization"/>
<variable value="org"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="organization"/>
<transform value="create"/>
<parameter>
<valueString value="Organization"/>
</parameter>
</target>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid3"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid3"/>
</parameter>
</target>
<rule>
<name value="reference"/>
<source>
<context value="org"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="managingOrganization"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %organization.id"/>
</parameter>
</target>
</rule>
<rule>
<name value="id"/>
<source>
<context value="org"/>
<element value="id"/>
<variable value="orgId"/>
</source>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="orgId"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="name"/>
<source>
<context value="org"/>
<element value="name"/>
<variable value="v"/>
</source>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="name"/>
<transform value="evaluate"/>
<parameter>
<valueString value="v.other"/>
</parameter>
</target>
</rule>
<rule>
<name value="telecom"/>
<source>
<context value="org"/>
<element value="telecom"/>
<variable value="orgTel"/>
</source>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="contactPoint"/>
<transform value="create"/>
<parameter>
<valueString value="ContactPoint"/>
</parameter>
</target>
<dependent>
<name value="TELContactPoint"/>
<variable value="orgTel"/>
<variable value="contactPoint"/>
</dependent>
</rule>
<rule>
<name value="addr"/>
<source>
<context value="org"/>
<element value="addr"/>
<variable value="orgAddr"/>
</source>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="orgAddr"/>
<variable value="address"/>
</dependent>
</rule>
</rule>
</group>
<group>
<name value="setFrPatientIdentifier"/>
<typeMode value="none"/>
<input>
<name value="id"/>
<type value="II"/>
<mode value="source"/>
</input>
<input>
<name value="identifier"/>
<type value="Identifier"/>
<mode value="target"/>
</input>
<rule>
<name value="identifierType"/>
<source>
<context value="id"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
</target>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="type"/>
</target>
<target>
<context value="type"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<variable value="system"/>
</target>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="code"/>
</target>
<rule>
<name value="system"/>
<source>
<context value="id"/>
<condition value="(id.root = '1.2.250.1.213.1.4.8')"/>
</source>
<target>
<context value="system"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="id"/>
<condition value="(id.root = '1.2.250.1.213.1.4.8')"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueString value="INS-NIR"/>
</parameter>
</target>
</rule>
<rule>
<name value="system"/>
<source>
<context value="id"/>
<condition value="(id.root = '1.2.3.4.5.6.7.8.9.10')"/>
</source>
<target>
<context value="system"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/v2-0203"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="id"/>
<condition value="(id.root = '1.2.3.4.5.6.7.8.9.10')"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueString value="PI"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="extension"/>
<source>
<context value="id"/>
<element value="extension"/>
<variable value="extension"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="value"/>
<variable value="value"/>
</target>
<target>
<context value="value"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="extension"/>
</parameter>
</target>
</rule>
<rule>
<name value="root"/>
<source>
<context value="id"/>
<element value="root"/>
<variable value="root"/>
</source>
<target>
<context value="identifier"/>
<contextType value="variable"/>
<element value="system"/>
<variable value="system"/>
</target>
<target>
<context value="system"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="append"/>
<parameter>
<valueString value="urn:oid:"/>
</parameter>
<parameter>
<valueId value="root"/>
</parameter>
</target>
</rule>
</group>
<group>
<name value="ClinicalDocumentEncounter"/>
<typeMode value="none"/>
<documentation
value="Fin modification NR
Etat initial
src -> tgt.identifier as identifier then {
src.id as id -> identifier.type as type, type.coding as coding, coding.system as system, coding.code as code then {
src -> system.value = 'http://terminology.hl7.org/CodeSystem/v2-0203' "system";
src -> code.value = 'MR' "code";
id.extension as extension -> identifier.value as value, value.value = extension "extension";
id.root as root -> identifier.system as system, system.value = append('urn:oid:', root) "root";
} "id";
} "identifier";
Fin état initial"/>
<input>
<name value="src"/>
<type value="EncompassingEncounter"/>
<mode value="source"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<input>
<name value="tgt"/>
<type value="Encounter"/>
<mode value="target"/>
</input>
<rule>
<name value="id"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="Id"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="Id"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="finished"/>
</parameter>
</target>
</rule>
<rule>
<name value="class"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="srcCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="class"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="code"/>
<source>
<context value="srcCode"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="cast"/>
<parameter>
<valueId value="code"/>
</parameter>
<parameter>
<valueString value="string"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeSystem"/>
<source>
<context value="srcCode"/>
<element value="codeSystem"/>
<variable value="system"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="translate"/>
<parameter>
<valueId value="system"/>
</parameter>
<parameter>
<valueString
value="http://hl7.org/fhir/ConceptMap/special-oid2uri"/>
</parameter>
<parameter>
<valueString value="uri"/>
</parameter>
</target>
</rule>
<rule>
<name value="displayName"/>
<source>
<context value="srcCode"/>
<element value="displayName"/>
<variable value="display"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="cast"/>
<parameter>
<valueId value="display"/>
</parameter>
<parameter>
<valueString value="string"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="srcCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="srcCode"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="effectiveTime"/>
<source>
<context value="src"/>
<element value="effectiveTime"/>
<variable value="effTime"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="period"/>
<transform value="create"/>
<parameter>
<valueString value="Period"/>
</parameter>
</target>
<dependent>
<name value="IVLTSPeriod"/>
<variable value="effTime"/>
<variable value="period"/>
</dependent>
</rule>
<rule>
<name value="hospitalization"/>
<source>
<context value="src"/>
<condition
value="admissionReferralSourceCode.exists() or dischargeDispositionCode.exists()"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="hospitalization"/>
<variable value="hosp"/>
</target>
<rule>
<name value="adminReferral"/>
<source>
<context value="src"/>
<element value="admissionReferralSourceCode"/>
<variable value="admRef"/>
</source>
<target>
<context value="hosp"/>
<contextType value="variable"/>
<element value="admitSource"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="admRef"/>
<variable value="cc"/>
</dependent>
</rule>
<rule>
<name value="discDisposition"/>
<source>
<context value="src"/>
<element value="dischargeDispositionCode"/>
<variable value="discDispo"/>
</source>
<target>
<context value="hosp"/>
<contextType value="variable"/>
<element value="dischargeDisposition"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<dependent>
<name value="CDCodeableConcept"/>
<variable value="discDispo"/>
<variable value="cc"/>
</dependent>
</rule>
</rule>
<rule>
<name value="participant"/>
<source>
<context value="src"/>
<element value="encounterParticipant"/>
<variable value="srcPart"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="participant"/>
<variable value="tgtPart"/>
</target>
<rule>
<name value="typeCode"/>
<source>
<context value="srcPart"/>
<element value="typeCode"/>
<variable value="code"/>
</source>
<target>
<context value="tgtPart"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="cc"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/v3-ParticipationType"/>
</parameter>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="time"/>
<source>
<context value="srcPart"/>
<element value="time"/>
<variable value="srcTime"/>
</source>
<target>
<context value="tgtPart"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="period"/>
<transform value="create"/>
<parameter>
<valueString value="Period"/>
</parameter>
</target>
<dependent>
<name value="IVLTSPeriod"/>
<variable value="srcTime"/>
<variable value="period"/>
</dependent>
</rule>
<rule>
<name value="entity"/>
<source>
<context value="srcPart"/>
<element value="assignedEntity"/>
<variable value="entity"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="practitioner"/>
<transform value="create"/>
<parameter>
<valueString value="Practitioner"/>
</parameter>
</target>
<target>
<context value="practitioner"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<rule>
<name value="entry"/>
<source>
<context value="entity"/>
</source>
<target>
<context value="tgtPart"/>
<contextType value="variable"/>
<element value="individual"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %practitioner.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentEntityPractitioner"/>
<variable value="entity"/>
<variable value="practitioner"/>
</dependent>
</rule>
</rule>
</rule>
<rule>
<name value="location"/>
<source>
<context value="src"/>
<element value="location"/>
<variable value="srcLocation"/>
</source>
<rule>
<name value="facility"/>
<source>
<context value="srcLocation"/>
<element value="healthCareFacility"/>
<variable value="facility"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="location"/>
<transform value="create"/>
<parameter>
<valueString value="Location"/>
</parameter>
</target>
<target>
<context value="location"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid2"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid2"/>
</parameter>
</target>
<rule>
<name value="facLocation"/>
<source>
<context value="facility"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="location"/>
<variable value="tgtLocation"/>
</target>
<target>
<context value="tgtLocation"/>
<contextType value="variable"/>
<element value="location"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %location.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentLocation"/>
<variable value="facility"/>
<variable value="bundle"/>
<variable value="location"/>
</dependent>
</rule>
</rule>
</rule>
</group>
<group>
<name value="ClinicalDocumentLocation"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="HealthCareFacility"/>
<mode value="source"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<input>
<name value="tgt"/>
<type value="Location"/>
<mode value="target"/>
</input>
<rule>
<name value="id"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="srcIdentifier"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="identifier"/>
<transform value="create"/>
<parameter>
<valueString value="Identifier"/>
</parameter>
</target>
<dependent>
<name value="II"/>
<variable value="srcIdentifier"/>
<variable value="identifier"/>
</dependent>
</rule>
<rule>
<name value="locationType"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="srcCode"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="cc"/>
<transform value="create"/>
<parameter>
<valueString value="CodeableConcept"/>
</parameter>
</target>
<rule>
<name value="coding"/>
<source>
<context value="srcCode"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="cc"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
<transform value="create"/>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
<rule>
<name value="code"/>
<source>
<context value="code"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
<rule>
<name value="system"/>
<source>
<context value="code"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite/FHIR/TRE-R02-SecteurActivite"/>
</parameter>
</target>
</rule>
<rule>
<name value="display"/>
<source>
<context value="srcCode"/>
<element value="displayName"/>
<variable value="display"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueId value="display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="location"/>
<source>
<context value="src"/>
<element value="location"/>
<variable value="location"/>
</source>
<rule>
<name value="addr"/>
<source>
<context value="location"/>
<element value="addr"/>
<variable value="locAddr"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="address"/>
<transform value="create"/>
<parameter>
<valueString value="Address"/>
</parameter>
</target>
<dependent>
<name value="ADAddress"/>
<variable value="locAddr"/>
<variable value="address"/>
</dependent>
</rule>
<rule>
<name value="org"/>
<source>
<context value="location"/>
<element value="serviceProviderOrganization"/>
<variable value="srcOrg"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="organization"/>
<transform value="create"/>
<parameter>
<valueString value="Organization"/>
</parameter>
</target>
<target>
<context value="organization"/>
<contextType value="variable"/>
<element value="id"/>
<variable value="uuid3"/>
<transform value="uuid"/>
</target>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="append"/>
<parameter>
<valueString value="urn:uuid:"/>
</parameter>
<parameter>
<valueId value="uuid3"/>
</parameter>
</target>
<rule>
<name value="organization"/>
<source>
<context value="srcOrg"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="managingOrganization"/>
<variable value="reference"/>
<transform value="create"/>
<parameter>
<valueString value="Reference"/>
</parameter>
</target>
<target>
<context value="reference"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'urn:uuid:' + %organization.id"/>
</parameter>
</target>
<dependent>
<name value="ClinicalDocumentOrganization"/>
<variable value="srcOrg"/>
<variable value="organization"/>
</dependent>
</rule>
</rule>
<documentation value="place names are usually stored with no parts"/>
</rule>
</group>
<group>
<name value="NarrativeLink"/>
<typeMode value="none"/>
<documentation
value="_________________________ Template Type not specified ___________________"/>
<input>
<name value="url"/>
<mode value="source"/>
</input>
<input>
<name value="ext"/>
<type value="Extension"/>
<mode value="target"/>
</input>
<rule>
<name value="url"/>
<source>
<context value="url"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://hl7.org/fhir/StructureDefinition/narrativeLink"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="url"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="value"/>
<variable value="value"/>
<transform value="create"/>
<parameter>
<valueString value="url"/>
</parameter>
</target>
<target>
<context value="value"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="url"/>
</parameter>
</target>
</rule>
</group>
</StructureMap>