Data Management with FHIR
0.1.0 - ci-build France flag

Data Management with FHIR - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: Alignement de l''usage Core du modèle physique du DPI vers les ressources FHIR - TTL Representation

Draft as of 2025-10-23

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:StructureMap ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "CorePhysical2FHIR"] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Narratif généré : StructureMap CorePhysical2FHIR</b></p><a name=\"CorePhysical2FHIR\"> </a><a name=\"hcCorePhysical2FHIR\"> </a><pre class=\"fml\">#xD;\n<b>map</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureMap/CorePhysical2FHIR<span style=\"color: navy\">\" = \"</span>CorePhysical2FHIR<span style=\"color: navy\">\"#xD;\n#xD;\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">Alignement de l''usage Core du modèle physique du DPI vers les ressources FHIR</span>#xD;\n#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDataSet<span style=\"color: navy\">\" </span><b>alias </b>DataSet <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CorePatient<span style=\"color: navy\">\" </span><b>alias </b>PatientTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreSejour<span style=\"color: navy\">\" </span><b>alias </b>SejourTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreBiology<span style=\"color: navy\">\" </span><b>alias </b>BiologyTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreClinical<span style=\"color: navy\">\" </span><b>alias </b>ClinicalTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDiag<span style=\"color: navy\">\" </span><b>alias </b>DiagTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreActe<span style=\"color: navy\">\" </span><b>alias </b>ActeTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreAddress<span style=\"color: navy\">\" </span><b>alias </b>AddressTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationAdm<span style=\"color: navy\">\" </span><b>alias </b>MedicationAdmTable <b>as </b><b>source</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span>https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationPre<span style=\"color: navy\">\" </span><b>alias </b>MedicationPreTable <b>as </b><b>source</b>#xD;\n<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>FHIRBundle <b>as </b><b>target</b>#xD;\n<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>FHIRPatient <b>as </b><b>target</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span><a href=\"http://hl7.org/fhir/R4/encounter.html\" title=\"Encounter\">http://hl7.org/fhir/StructureDefinition/Encounter</a><span style=\"color: navy\">\" </span><b>alias </b>FHIREncounter <b>as </b><b>target</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span><a href=\"http://hl7.org/fhir/R4/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">\" </span><b>alias </b>FHIRObservation <b>as </b><b>target</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span><a href=\"http://hl7.org/fhir/R4/datatypes.html#Meta\" title=\"Meta\">http://hl7.org/fhir/StructureDefinition/Meta</a><span style=\"color: navy\">\" </span><b>alias </b>FHIRMeta <b>as </b><b>target</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span><a href=\"http://hl7.org/fhir/R4/procedure.html\" title=\"Procedure\">http://hl7.org/fhir/StructureDefinition/Procedure</a><span style=\"color: navy\">\" </span><b>alias </b>FHIRProcedure <b>as </b><b>target</b>#xD;\n<b>uses</b><span style=\"color: navy\"> \"</span><a href=\"http://hl7.org/fhir/R4/condition.html\" title=\"Condition\">http://hl7.org/fhir/StructureDefinition/Condition</a><span style=\"color: navy\">\" </span><b>alias </b>FHIRCondition <b>as </b><b>target</b>#xD;\n#xD;\n<b>group </b>dataSet<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcDataSet</span><span style=\"color: navy\"> : </span>DataSet, <b>target</b> <span style=\"color: maroon\">tgtBundle</span><span style=\"color: navy\"> : </span>FHIRBundle<span style=\"color: navy\">)</span><b> &lt;&lt;types&gt;&gt;</b><span style=\"color: navy\"> {#xD;\n</span>  srcDataSet<span style=\"color: navy\"><b> -&gt; </b></span>tgtBundle.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDataSet<span style=\"color: navy\"><b> -&gt; </b></span>tgtBundle.type = <span style=\"color: blue\">'transaction'</span> <i>\"setType\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDataSet.patient<b> as </b><span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"><b> -&gt; </b></span> tgtBundle.entry<b> as </b><span style=\"color: maroon\">tgtPatientEntry</span><span style=\"color: navy\">, </span> tgtPatientEntry.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\">newPatient</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcPatient<b> then </b>patient<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">)</span> <i>\"setPatient\"</i><span style=\"color: navy\">;</span>#xD;\n    srcPatient<b> then </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtPatientEntry</span><span style=\"color: navy\">)</span> <i>\"setRequestAndFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n    srcDataSet.address<b> as </b><span style=\"color: maroon\">srcAddress</span><b> where </b>patientNi.reference = ('PatientCore/' + %srcPatient.patientNi.toString())<b> then </b>patientAddress<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcAddress</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">)</span> <i>\"addPatientAddress\"</i><span style=\"color: navy\">;</span>#xD;\n    srcDataSet.sejour<b> as </b><span style=\"color: maroon\">srcSejour</span><b> where </b>patientNi.reference = ('PatientCore/' + %srcPatient.patientNi.toString())<span style=\"color: navy\"><b> -&gt; </b></span> tgtBundle.entry<b> as </b><span style=\"color: maroon\">tgtEncounterEntry</span><span style=\"color: navy\">, </span> tgtEncounterEntry.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\">newEncounter</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>      srcSejour<b> then </b>encounter<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcSejour</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">)</span> <i>\"setEncounter\"</i><span style=\"color: navy\">;</span>#xD;\n      srcSejour<b> then </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtEncounterEntry</span><span style=\"color: navy\">)</span> <i>\"setRequestAndFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n      srcDataSet.acte<b> as </b><span style=\"color: maroon\">srcActe</span><b> where </b>sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())<span style=\"color: navy\"><b> -&gt; </b></span> tgtBundle.entry<b> as </b><span style=\"color: maroon\">tgtProcedureEntry</span><span style=\"color: navy\">, </span> tgtProcedureEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Procedure'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">newProcedure</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>        srcActe<b> then </b>procedure<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcActe</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newProcedure</span><span style=\"color: navy\">)</span> <i>\"setProcedure\"</i><span style=\"color: navy\">;</span>#xD;\n        srcActe<b> then </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">newProcedure</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtProcedureEntry</span><span style=\"color: navy\">)</span> <i>\"setRequestAndFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n      <span style=\"color: navy\">}</span> <i>\"createProcedure\"</i><span style=\"color: navy\">;</span>#xD;\n      srcDataSet.diag<b> as </b><span style=\"color: maroon\">srcDiag</span><b> where </b>sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())<span style=\"color: navy\"><b> -&gt; </b></span> tgtBundle.entry<b> as </b><span style=\"color: maroon\">tgtConditionEntry</span><span style=\"color: navy\">, </span> tgtConditionEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Condition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">newCondition</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>        srcDiag<b> then </b>condition<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcDiag</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newCondition</span><span style=\"color: navy\">)</span> <i>\"setCondition\"</i><span style=\"color: navy\">;</span>#xD;\n        srcDiag<b> then </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">newCondition</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtConditionEntry</span><span style=\"color: navy\">)</span> <i>\"setRequestAndFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n      <span style=\"color: navy\">}</span> <i>\"createProcedure\"</i><span style=\"color: navy\">;</span>#xD;\n      srcDataSet.biology<b> as </b><span style=\"color: maroon\">srcBiology</span><b> where </b>sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())<span style=\"color: navy\"><b> -&gt; </b></span> tgtBundle.entry<b> as </b><span style=\"color: maroon\">tgtBiologyEntry</span><span style=\"color: navy\">, </span> tgtBiologyEntry.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">newObservation</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>        srcBiology<b> then </b>observationBiol<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcBiology</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newObservation</span><span style=\"color: navy\">)</span> <i>\"setBiology\"</i><span style=\"color: navy\">;</span>#xD;\n        srcBiology<b> then </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><span style=\"color: maroon\">newObservation</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtBiologyEntry</span><span style=\"color: navy\">)</span> <i>\"setRequestAndFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n      <span style=\"color: navy\">}</span> <i>\"createObservation\"</i><span style=\"color: navy\">;</span>#xD;\n    <span style=\"color: navy\">}</span> <i>\"createEncounter\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"createPatient\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>patient<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>PatientTable, <b>target</b> <span style=\"color: maroon\">tgtPatient</span><span style=\"color: navy\"> : </span>FHIRPatient<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcPatient<span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.patientNi<b> as </b><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.meta<b> as </b><span style=\"color: maroon\">tgtMeta</span><b> then </b>setPatientMeta<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\">)</span> <i>\"setMeta\"</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">copie la valeur du champ patientNi de la table Patient dans l'élément id de la ressource FHIR Patient</span>#xD;\n  srcPatient<span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.name<b> as </b><span style=\"color: maroon\">tgtPatientName</span><b> then </b>setHumainName<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtPatientName</span><span style=\"color: navy\">)</span> <i>\"setHumainName\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient<span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.identifier<b> as </b><span style=\"color: maroon\">tgtPatientIdentifier</span><b> then </b>setHumainNir<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtPatientIdentifier</span><span style=\"color: navy\">)</span> <i>\"setHumainNir\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.gender<b> as </b><span style=\"color: maroon\">srcPatientGender</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.gender = <b>translate</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">srcPatientGender</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'https://interop.aphp.fr/ig/fhir/dm/ConceptMap/DpiGender2Hl7Gender'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'code'</span><span style=\"color: navy\">)</span> <i>\"setGender\"</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">traduit la valeur du champ gender de la table Patient dans l'élément gender de la ressource FHIR Patient</span>#xD;\n  srcPatient.birthDate<b> as </b><span style=\"color: maroon\">srcPatientBirthDate</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.birthDate = <span style=\"color: maroon\">srcPatientBirthDate</span> <i>\"setBirthDate\"</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">copie la valeur du champ birthDate de la table Patient dans l'élément birthDate de la ressource FHIR Patient</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setPatientMeta<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcNi</span>, <b>target</b> <span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\"> : </span>FHIRMeta<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcNi<span style=\"color: navy\"><b> -&gt; </b></span>tgtMeta.source = <span style=\"color: navy\">(</span>'https://aphp.fr/fhir/Endpoint/dpi/PatientTable' + '/' + %srcNi.toString()<span style=\"color: navy\">)</span> <i>\"setSource\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setHumainName<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>PatientTable, <b>target</b> <span style=\"color: maroon\">tgtPatientName</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcPatient<span style=\"color: navy\"><b> -&gt; </b></span>tgtPatientName.use = <span style=\"color: blue\">'usual'</span> <i>\"setUse\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: #b36b00\" title=\"Cet élément nétait pas défini avant R5\">// srcPatient -&gt; tgtPatientName.text = (%srcPatient.firstName + ' ' + %srcPatient.name) \"setText\";</span>#xD;\n  <span style=\"color: #b36b00\" title=\"Cet élément nétait pas défini avant R5\">// srcPatient.name as srcPatientName -&gt; tgtPatientName.family = srcPatientName \"setName\";</span>#xD;\n  <span style=\"color: #b36b00\" title=\"Cet élément nétait pas défini avant R5\">// srcPatient.firstName as srcPatientFirstName -&gt; tgtPatientName.given = srcPatientFirstName \"setFirstName\";</span>#xD;\n  <span style=\"color: navy\">// </span><span style=\"color: green\">les trois lignes précédentes marchent dans matchbox mais génèrent une erreur au QA. La solution ci dessous marche dans matchbox et ne génère pas d'erreur au QA.</span>#xD;\n  srcPatient.name<b> as </b><span style=\"color: maroon\">srcPatientName</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtPatientName.family = <span style=\"color: maroon\">srcPatientName</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcPatient.firstName<b> as </b><span style=\"color: maroon\">srcPatientFirstName</span><span style=\"color: navy\"><b> -&gt; </b></span> tgtPatientName.given = <span style=\"color: maroon\">srcPatientFirstName</span><span style=\"color: navy\">, </span> tgtPatientName.text = <span style=\"color: navy\">(</span>%srcPatientFirstName + ' ' + %srcPatientName<span style=\"color: navy\">)</span> <i>\"setFirstNameAndText\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setName\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setHumainNir<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>PatientTable, <b>target</b> <span style=\"color: maroon\">tgtPatientIdentifier</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcPatient.nir<b> as </b><span style=\"color: maroon\">srcPatientNir</span><span style=\"color: navy\"><b> -&gt; </b></span> tgtPatientIdentifier.use = <span style=\"color: blue\">'official'</span><span style=\"color: navy\">, </span> tgtPatientIdentifier.type = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'INS-NIR'</span><span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgtPatientIdentifier.system = <span style=\"color: blue\">'urn:oid:1.2.250.1.213.1.4.8'</span><span style=\"color: navy\">, </span> tgtPatientIdentifier.value = <span style=\"color: maroon\">srcPatientNir</span> <i>\"setNir\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>patientAddress<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcAddress</span><span style=\"color: navy\"> : </span>AddressTable, <b>target</b> <span style=\"color: maroon\">tgtPatient</span><span style=\"color: navy\"> : </span>FHIRPatient<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcAddress<span style=\"color: navy\"><b> -&gt; </b></span>tgtPatient.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\">newAddress</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcAddress.zipCode<b> as </b><span style=\"color: maroon\">srczip</span><span style=\"color: navy\"><b> -&gt; </b></span>newAddress.postalCode = <span style=\"color: maroon\">srczip</span> <i>\"setZip\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress.city<b> as </b><span style=\"color: maroon\">srcCity</span><span style=\"color: navy\"><b> -&gt; </b></span>newAddress.city = <span style=\"color: maroon\">srcCity</span> <i>\"setCity\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress.country<b> as </b><span style=\"color: maroon\">srcCountry</span><span style=\"color: navy\"><b> -&gt; </b></span>newAddress.country = <span style=\"color: maroon\">srcCountry</span> <i>\"setCountry\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress.address<b> as </b><span style=\"color: maroon\">srcAddressText</span><span style=\"color: navy\"><b> -&gt; </b></span>newAddress.text = <span style=\"color: maroon\">srcAddressText</span> <i>\"setText\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress<b> where </b>current = true<span style=\"color: navy\"><b> -&gt; </b></span>newAddress.use = <span style=\"color: blue\">'home'</span> <i>\"setUseHome\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress<b> where </b>current = false<span style=\"color: navy\"><b> -&gt; </b></span>newAddress.use = <span style=\"color: blue\">'old'</span> <i>\"setUseOld\"</i><span style=\"color: navy\">;</span>#xD;\n    srcAddress<b> where </b>latitude.exists() or longitude.exists()<span style=\"color: navy\"><b> -&gt; </b></span>newAddress.extension = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">firstLevelExtension</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>      srcAddress<span style=\"color: navy\"><b> -&gt; </b></span>firstLevelExtension.url = <span style=\"color: navy\">(</span>'http://hl7.org/fhir/StructureDefinition/geolocation'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>        srcAddress.latitude<b> as </b><span style=\"color: maroon\">srcLat</span><span style=\"color: navy\"><b> -&gt; </b></span>firstLevelExtension.extension = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">latExtension</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>          srcLat<span style=\"color: navy\"><b> -&gt; </b></span> latExtension.url = <span style=\"color: navy\">(</span>'latitude'<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> latExtension.value = <span style=\"color: maroon\">srcLat</span> <i>\"setLat\"</i><span style=\"color: navy\">;</span>#xD;\n        <span style=\"color: navy\">}</span> <i>\"setLatExt\"</i><span style=\"color: navy\">;</span>#xD;\n        srcAddress.longitude<b> as </b><span style=\"color: maroon\">srcLong</span><span style=\"color: navy\"><b> -&gt; </b></span>firstLevelExtension.extension = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Extension'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">longExtension</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>          srcLong<span style=\"color: navy\"><b> -&gt; </b></span> longExtension.url = <span style=\"color: navy\">(</span>'longitude'<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> longExtension.value = <span style=\"color: maroon\">srcLong</span> <i>\"setLong\"</i><span style=\"color: navy\">;</span>#xD;\n        <span style=\"color: navy\">}</span> <i>\"setLongExt\"</i><span style=\"color: navy\">;</span>#xD;\n      <span style=\"color: navy\">}</span> <i>\"setflext\"</i><span style=\"color: navy\">;</span>#xD;\n    <span style=\"color: navy\">}</span> <i>\"setCoordinatesExtension\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setAddress\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>encounter<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcSejour</span><span style=\"color: navy\"> : </span>SejourTable, <b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>FHIRPatient, <b>target</b> <span style=\"color: maroon\">tgtEncounter</span><span style=\"color: navy\"> : </span>FHIREncounter<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcSejour<span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcSejour.sejourNi<b> as </b><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.meta<b> as </b><span style=\"color: maroon\">tgtMeta</span><b> then </b>setEncounterMeta<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\">)</span> <i>\"setMeta\"</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">copie la valeur du champ patientNi de la table Patient dans l'élément id de la ressource FHIR Patient</span>#xD;\n  srcSejour<span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.status = <span style=\"color: blue\">'finished'</span> <i>\"setStatus\"</i><span style=\"color: navy\">;</span>#xD;\n  srcSejour.sejourType<b> as </b><span style=\"color: maroon\">srcSejourType</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.class = <b>translate</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">srcSejourType</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'https://interop.aphp.fr/ig/fhir/dm/ConceptMap/DpiEncounterType2SemanticLayerEncounterClass'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'Coding'</span><span style=\"color: navy\">)</span> <i>\"setEncounterClass\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.id<b> as </b><span style=\"color: maroon\">patientId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.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\">newSubject</span><b> then </b>setSubjectReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">patientId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newSubject</span><span style=\"color: navy\">)</span> <i>\"setSubjectReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcSejour.patientNi<span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">fk vers le patient à conserver pour la construction auto du périmètre final</span>#xD;\n  srcSejour<span style=\"color: navy\"><b> -&gt; </b></span>tgtEncounter.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\">newActualPeriod</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcSejour.sejourStart<b> as </b><span style=\"color: maroon\">srcPeriodStart</span><span style=\"color: navy\"><b> -&gt; </b></span>newActualPeriod.start = <span style=\"color: maroon\">srcPeriodStart</span> <i>\"setStart\"</i><span style=\"color: navy\">;</span>#xD;\n    srcSejour.sejourEnd<b> as </b><span style=\"color: maroon\">srcPeriodEnd</span><span style=\"color: navy\"><b> -&gt; </b></span>newActualPeriod.end = <span style=\"color: maroon\">srcPeriodEnd</span> <i>\"setEnd\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setPeriod\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setEncounterMeta<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcNi</span>, <b>target</b> <span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\"> : </span>FHIRMeta<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcNi<span style=\"color: navy\"><b> -&gt; </b></span>tgtMeta.source = <span style=\"color: navy\">(</span>'https://aphp.fr/fhir/Endpoint/dpi/SejourTable' + '/' + %srcNi.toString()<span style=\"color: navy\">)</span> <i>\"setSource\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setSubjectReference<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcPatientId</span>, <b>target</b> <span style=\"color: maroon\">newSubject</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcPatientId<span style=\"color: navy\"><b> -&gt; </b></span>newSubject.reference = <span style=\"color: navy\">(</span>'Patient/' + %srcPatientId.toString()<span style=\"color: navy\">)</span> <i>\"setReference\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>procedure<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcActe</span><span style=\"color: navy\"> : </span>ActeTable, <b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>FHIRPatient, <b>source</b> <span style=\"color: maroon\">srcEncounter</span><span style=\"color: navy\"> : </span>FHIREncounter, <b>target</b> <span style=\"color: maroon\">tgtProcedure</span><span style=\"color: navy\"> : </span>FHIRProcedure<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcActe<span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcActe.acteNi<b> as </b><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.meta<b> as </b><span style=\"color: maroon\">tgtMeta</span><b> then </b>setProcedureMeta<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\">)</span> <i>\"setMeta\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.id<b> as </b><span style=\"color: maroon\">patientId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.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\">newSubject</span><b> then </b>setSubjectReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">patientId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newSubject</span><span style=\"color: navy\">)</span> <i>\"setSubjectReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcEncounter.id<b> as </b><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.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\">newEncounter</span><b> then </b>setEncounterReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">)</span> <i>\"setEncounterReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcActe<span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.status = <span style=\"color: blue\">'completed'</span> <i>\"setStatus\"</i><span style=\"color: navy\">;</span>#xD;\n  srcActe<b> where </b>dateStart.exists() or dateEnd.exists<span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.performed = <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\">tgtProcedurePeriod</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcActe.dateStart<b> as </b><span style=\"color: maroon\">srcActeStart</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedurePeriod.start = <span style=\"color: maroon\">srcActeStart</span> <i>\"setActeStart\"</i><span style=\"color: navy\">;</span>#xD;\n    srcActe.dateEnd<b> as </b><span style=\"color: maroon\">srcActeEnd</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedurePeriod.end = <span style=\"color: maroon\">srcActeEnd</span> <i>\"setActeEnd\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setDate\"</i><span style=\"color: navy\">;</span>#xD;\n  srcActe.code<b> as </b><span style=\"color: maroon\">acteCode</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtProcedure.code = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'https://smt.esante.gouv.fr/terminologie-ccam'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">acteCode</span><span style=\"color: navy\">)</span> <i>\"setCode\"</i><span style=\"color: navy\">;</span> <span style=\"color: navy\">// </span><span style=\"color: green\">C'est le code de la CCAM facturante</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setProcedureMeta<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcNi</span>, <b>target</b> <span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\"> : </span>FHIRMeta<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcNi<span style=\"color: navy\"><b> -&gt; </b></span>tgtMeta.source = <span style=\"color: navy\">(</span>'https://aphp.fr/fhir/Endpoint/dpi/ActeTable' + '/' + %srcNi.toString()<span style=\"color: navy\">)</span> <i>\"setSource\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setEncounterReference<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcEncounterId</span>, <b>target</b> <span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcEncounterId<span style=\"color: navy\"><b> -&gt; </b></span>newEncounter.reference = <span style=\"color: navy\">(</span>'Encounter/' + %srcEncounterId.toString()<span style=\"color: navy\">)</span> <i>\"setReference\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>condition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcDiag</span><span style=\"color: navy\"> : </span>DiagTable, <b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>FHIRPatient, <b>source</b> <span style=\"color: maroon\">srcEncounter</span><span style=\"color: navy\"> : </span>FHIREncounter, <b>target</b> <span style=\"color: maroon\">tgtCondition</span><span style=\"color: navy\"> : </span>FHIRCondition<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcDiag<span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDiag.diagNi<b> as </b><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.meta<b> as </b><span style=\"color: maroon\">tgtMeta</span><b> then </b>setConditionMeta<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\">)</span> <i>\"setMeta\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.id<b> as </b><span style=\"color: maroon\">patientId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.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\">newSubject</span><b> then </b>setSubjectReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">patientId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newSubject</span><span style=\"color: navy\">)</span> <i>\"setSubjectReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcEncounter.id<b> as </b><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.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\">newEncounter</span><b> then </b>setEncounterReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">)</span> <i>\"setEncounterReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDiag<span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.verificationStatus = <span style=\"color: blue\">'confirmed'</span> <i>\"setVerificationStatus\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDiag<span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.category = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-category'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'encounter-diagnosis'</span><span style=\"color: navy\">)</span> <i>\"setCategory\"</i><span style=\"color: navy\">;</span>#xD;\n  srcDiag.code<b> as </b><span style=\"color: maroon\">diagCode</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtCondition.code = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'http://hl7.org/fhir/sid/icd-10'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">diagCode</span><span style=\"color: navy\">)</span> <i>\"setCode\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setConditionMeta<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcNi</span>, <b>target</b> <span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\"> : </span>FHIRMeta<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcNi<span style=\"color: navy\"><b> -&gt; </b></span>tgtMeta.source = <span style=\"color: navy\">(</span>'https://aphp.fr/fhir/Endpoint/dpi/DiagTable' + '/' + %srcNi.toString()<span style=\"color: navy\">)</span> <i>\"setSource\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>observationBiol<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcBiology</span><span style=\"color: navy\"> : </span>BiologyTable, <b>source</b> <span style=\"color: maroon\">srcPatient</span><span style=\"color: navy\"> : </span>FHIRPatient, <b>source</b> <span style=\"color: maroon\">srcEncounter</span><span style=\"color: navy\"> : </span>FHIREncounter, <b>target</b> <span style=\"color: maroon\">tgtObservation</span><span style=\"color: navy\"> : </span>FHIRObservation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcBiology<span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>\"setId\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology.biologyNi<b> as </b><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.meta<b> as </b><span style=\"color: maroon\">tgtMeta</span><b> then </b>setBiologyMeta<span style=\"color: navy\">(</span><span style=\"color: maroon\">srcNi</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\">)</span> <i>\"setMeta\"</i><span style=\"color: navy\">;</span>#xD;\n  srcPatient.id<b> as </b><span style=\"color: maroon\">patientId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.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\">newSubject</span><b> then </b>setSubjectReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">patientId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newSubject</span><span style=\"color: navy\">)</span> <i>\"setSubjectReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcEncounter.id<b> as </b><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.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\">newEncounter</span><b> then </b>setEncounterReference<span style=\"color: navy\">(</span><span style=\"color: maroon\">encounterId</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">newEncounter</span><span style=\"color: navy\">)</span> <i>\"setEncounterReference\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology<span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.status = <span style=\"color: blue\">'final'</span> <i>\"setStatus\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology<span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.category = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'vital-signs'</span><span style=\"color: navy\">)</span> <i>\"setCategory\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology.biologyDatePrel<b> as </b><span style=\"color: maroon\">biologyDatePrel</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.effective = <span style=\"color: maroon\">biologyDatePrel</span> <i>\"setDate\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology.biologyCode<b> as </b><span style=\"color: maroon\">biologyCode</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.code = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'http://loinc.org'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">biologyCode</span><span style=\"color: navy\">)</span> <i>\"setCode\"</i><span style=\"color: navy\">;</span>#xD;\n  srcBiology.biologyValue<span style=\"color: navy\"><b> -&gt; </b></span>tgtObservation.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgtObsQuantity</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    srcBiology.biologyValue<b> as </b><span style=\"color: maroon\">biologyValue</span><span style=\"color: navy\"><b> -&gt; </b></span>tgtObsQuantity.value = <span style=\"color: maroon\">biologyValue</span> <i>\"setValue\"</i><span style=\"color: navy\">;</span>#xD;\n    srcBiology.biologyUnit<b> as </b><span style=\"color: maroon\">biologyUnit</span><span style=\"color: navy\"><b> -&gt; </b></span> tgtObsQuantity.code = <span style=\"color: maroon\">biologyUnit</span><span style=\"color: navy\">, </span> tgtObsQuantity.unit = <span style=\"color: maroon\">biologyUnit</span><span style=\"color: navy\">, </span> tgtObsQuantity.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>\"setUnit\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setQuantity\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setBiologyMeta<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">srcNi</span>, <b>target</b> <span style=\"color: maroon\">tgtMeta</span><span style=\"color: navy\"> : </span>FHIRMeta<span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  srcNi<span style=\"color: navy\"><b> -&gt; </b></span>tgtMeta.source = <span style=\"color: navy\">(</span>'https://aphp.fr/fhir/Endpoint/dpi/BiologyTable' + '/' + %srcNi.toString()<span style=\"color: navy\">)</span> <i>\"setSource\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span><b>group </b>setEntryRequestAndFullUrl<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">newRes</span>, <b>target</b> <span style=\"color: maroon\">tgtEntry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {#xD;\n</span>  newRes.id<b> as </b><span style=\"color: maroon\">newResId</span><b> then</b><span style=\"color: navy\"> {#xD;\n</span>    newResId<span style=\"color: navy\"><b> -&gt; </b></span>tgtEntry.fullUrl = <span style=\"color: navy\">(</span>'https://aphp.fr/' + %newRes.type().name + '/' + %newResId<span style=\"color: navy\">)</span> <i>\"setFullUrl\"</i><span style=\"color: navy\">;</span>#xD;\n    newResId<span style=\"color: navy\"><b> -&gt; </b></span> tgtEntry.request<b> as </b><span style=\"color: maroon\">tgtEntryRequest</span><span style=\"color: navy\">, </span> tgtEntryRequest.method = <span style=\"color: blue\">'POST'</span><span style=\"color: navy\">, </span> tgtEntryRequest.url = <span style=\"color: navy\">(</span>%newRes.type().name + '/' + %newResId<span style=\"color: navy\">)</span> <i>\"setRequest\"</i><span style=\"color: navy\">;</span>#xD;\n  <span style=\"color: navy\">}</span> <i>\"setResourceType\"</i><span style=\"color: navy\">;</span>#xD;\n<span style=\"color: navy\">}#xD;\n#xD;\n</span></pre></div>"^^rdf:XMLLiteral
  ] ; # 
  fhir:url [ fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureMap/CorePhysical2FHIR"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.1.0"] ; # 
  fhir:name [ fhir:v "CorePhysical2FHIR"] ; # 
  fhir:title [ fhir:v "Alignement de l''usage Core du modèle physique du DPI vers les ressources FHIR"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:date [ fhir:v "2025-10-23T20:49:03+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "AP-HP"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "AP-HP" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "https://aphp.fr" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "Alignement de l''usage Core du modèle physique du DPI vers les ressources FHIR"] ; # 
  fhir:jurisdiction ( [
    ( fhir:coding [
fhir:system [ fhir:v "urn:iso:std:iso:3166"^^xsd:anyURI ] ;
fhir:code [ fhir:v "FR" ] ;
fhir:display [ fhir:v "France" ]     ] )
  ] ) ; # 
  fhir:structure ( [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDataSet"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDataSet>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "DataSet" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CorePatient"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CorePatient>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "PatientTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreSejour"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreSejour>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "SejourTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreBiology"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreBiology>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "BiologyTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreClinical"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreClinical>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "ClinicalTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDiag"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreDiag>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "DiagTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreActe"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreActe>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "ActeTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreAddress"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreAddress>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "AddressTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationAdm"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationAdm>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "MedicationAdmTable" ]
  ] [
fhir:url [
fhir:v "https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationPre"^^xsd:anyURI ;
fhir:link <https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/CoreMedicationPre>     ] ;
fhir:mode [ fhir:v "source" ] ;
fhir:alias [ fhir:v "MedicationPreTable" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Bundle"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Bundle>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRBundle" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Patient"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Patient>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRPatient" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Encounter"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Encounter>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIREncounter" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Observation"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Observation>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRObservation" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Meta"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Meta>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRMeta" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Procedure"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Procedure>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRProcedure" ]
  ] [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/Condition"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Condition>     ] ;
fhir:mode [ fhir:v "target" ] ;
fhir:alias [ fhir:v "FHIRCondition" ]
  ] ) ; # 
  fhir:group ( [
fhir:name [ fhir:v "dataSet" ] ;
fhir:typeMode [ fhir:v "types" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcDataSet" ] ;
fhir:type [ fhir:v "DataSet" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtBundle" ] ;
fhir:type [ fhir:v "FHIRBundle" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setType" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "type" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "transaction"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "createPatient" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "patient" ] ;
fhir:variable [ fhir:v "srcPatient" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "tgtPatientEntry" ]       ] [
fhir:context [ fhir:v "tgtPatientEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "newPatient" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Patient"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setPatient" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]         ] ) ;
        ( fhir:dependent [
fhir:name [ fhir:v "patient" ] ;
          ( fhir:variable [ fhir:v "srcPatient" ] [ fhir:v "newPatient" ] )         ] )       ] [
fhir:name [ fhir:v "setRequestAndFullUrl" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]         ] ) ;
        ( fhir:dependent [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
          ( fhir:variable [ fhir:v "newPatient" ] [ fhir:v "tgtPatientEntry" ] )         ] )       ] [
fhir:name [ fhir:v "addPatientAddress" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "address" ] ;
fhir:variable [ fhir:v "srcAddress" ] ;
fhir:condition [ fhir:v "patientNi.reference = ('PatientCore/' + %srcPatient.patientNi.toString())" ]         ] ) ;
        ( fhir:dependent [
fhir:name [ fhir:v "patientAddress" ] ;
          ( fhir:variable [ fhir:v "srcAddress" ] [ fhir:v "newPatient" ] )         ] )       ] [
fhir:name [ fhir:v "createEncounter" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "sejour" ] ;
fhir:variable [ fhir:v "srcSejour" ] ;
fhir:condition [ fhir:v "patientNi.reference = ('PatientCore/' + %srcPatient.patientNi.toString())" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "tgtEncounterEntry" ]         ] [
fhir:context [ fhir:v "tgtEncounterEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "newEncounter" ] ;
fhir:transform [ fhir:v "create" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Encounter"             ]           ] )         ] ) ;
        ( fhir:rule [
fhir:name [ fhir:v "setEncounter" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcSejour" ]           ] ) ;
          ( fhir:dependent [
fhir:name [ fhir:v "encounter" ] ;
            ( fhir:variable [ fhir:v "srcSejour" ] [ fhir:v "newPatient" ] [ fhir:v "newEncounter" ] )           ] )         ] [
fhir:name [ fhir:v "setRequestAndFullUrl" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcSejour" ]           ] ) ;
          ( fhir:dependent [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
            ( fhir:variable [ fhir:v "newEncounter" ] [ fhir:v "tgtEncounterEntry" ] )           ] )         ] [
fhir:name [ fhir:v "createProcedure" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "acte" ] ;
fhir:variable [ fhir:v "srcActe" ] ;
fhir:condition [ fhir:v "sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())" ]           ] ) ;
          ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "tgtProcedureEntry" ]           ] [
fhir:context [ fhir:v "tgtProcedureEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "newProcedure" ] ;
fhir:transform [ fhir:v "create" ] ;
            ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Procedure"               ]             ] )           ] ) ;
          ( fhir:rule [
fhir:name [ fhir:v "setProcedure" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcActe" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "procedure" ] ;
              ( fhir:variable [ fhir:v "srcActe" ] [ fhir:v "newPatient" ] [ fhir:v "newEncounter" ] [ fhir:v "newProcedure" ] )             ] )           ] [
fhir:name [ fhir:v "setRequestAndFullUrl" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcActe" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
              ( fhir:variable [ fhir:v "newProcedure" ] [ fhir:v "tgtProcedureEntry" ] )             ] )           ] )         ] [
fhir:name [ fhir:v "createProcedure" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "diag" ] ;
fhir:variable [ fhir:v "srcDiag" ] ;
fhir:condition [ fhir:v "sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())" ]           ] ) ;
          ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "tgtConditionEntry" ]           ] [
fhir:context [ fhir:v "tgtConditionEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "newCondition" ] ;
fhir:transform [ fhir:v "create" ] ;
            ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Condition"               ]             ] )           ] ) ;
          ( fhir:rule [
fhir:name [ fhir:v "setCondition" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcDiag" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "condition" ] ;
              ( fhir:variable [ fhir:v "srcDiag" ] [ fhir:v "newPatient" ] [ fhir:v "newEncounter" ] [ fhir:v "newCondition" ] )             ] )           ] [
fhir:name [ fhir:v "setRequestAndFullUrl" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcDiag" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
              ( fhir:variable [ fhir:v "newCondition" ] [ fhir:v "tgtConditionEntry" ] )             ] )           ] )         ] [
fhir:name [ fhir:v "createObservation" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcDataSet" ] ;
fhir:element [ fhir:v "biology" ] ;
fhir:variable [ fhir:v "srcBiology" ] ;
fhir:condition [ fhir:v "sejourNi.reference = ('SejourCore/' + %srcSejour.sejourNi.toString())" ]           ] ) ;
          ( fhir:target [
fhir:context [ fhir:v "tgtBundle" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "entry" ] ;
fhir:variable [ fhir:v "tgtBiologyEntry" ]           ] [
fhir:context [ fhir:v "tgtBiologyEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "resource" ] ;
fhir:variable [ fhir:v "newObservation" ] ;
fhir:transform [ fhir:v "create" ] ;
            ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Observation"               ]             ] )           ] ) ;
          ( fhir:rule [
fhir:name [ fhir:v "setBiology" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcBiology" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "observationBiol" ] ;
              ( fhir:variable [ fhir:v "srcBiology" ] [ fhir:v "newPatient" ] [ fhir:v "newEncounter" ] [ fhir:v "newObservation" ] )             ] )           ] [
fhir:name [ fhir:v "setRequestAndFullUrl" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcBiology" ]             ] ) ;
            ( fhir:dependent [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
              ( fhir:variable [ fhir:v "newObservation" ] [ fhir:v "tgtBiologyEntry" ] )             ] )           ] )         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "patient" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "PatientTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setMeta" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "patientNi" ] ;
fhir:variable [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "meta" ] ;
fhir:variable [ fhir:v "tgtMeta" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setPatientMeta" ] ;
        ( fhir:variable [ fhir:v "srcNi" ] [ fhir:v "tgtMeta" ] )       ] ) ;
fhir:documentation [ fhir:v "copie la valeur du champ patientNi de la table Patient dans l'élément id de la ressource FHIR Patient" ]     ] [
fhir:name [ fhir:v "setHumainName" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:variable [ fhir:v "tgtPatientName" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setHumainName" ] ;
        ( fhir:variable [ fhir:v "srcPatient" ] [ fhir:v "tgtPatientName" ] )       ] )     ] [
fhir:name [ fhir:v "setHumainNir" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "identifier" ] ;
fhir:variable [ fhir:v "tgtPatientIdentifier" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setHumainNir" ] ;
        ( fhir:variable [ fhir:v "srcPatient" ] [ fhir:v "tgtPatientIdentifier" ] )       ] )     ] [
fhir:name [ fhir:v "setGender" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "gender" ] ;
fhir:variable [ fhir:v "srcPatientGender" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "gender" ] ;
fhir:transform [ fhir:v "translate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPatientGender"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "https://interop.aphp.fr/ig/fhir/dm/ConceptMap/DpiGender2Hl7Gender"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "code"           ]         ] )       ] ) ;
fhir:documentation [ fhir:v "traduit la valeur du champ gender de la table Patient dans l'élément gender de la ressource FHIR Patient" ]     ] [
fhir:name [ fhir:v "setBirthDate" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "birthDate" ] ;
fhir:variable [ fhir:v "srcPatientBirthDate" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "birthDate" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPatientBirthDate"           ]         ] )       ] ) ;
fhir:documentation [ fhir:v "copie la valeur du champ birthDate de la table Patient dans l'élément birthDate de la ressource FHIR Patient" ]     ] )
  ] [
fhir:name [ fhir:v "setPatientMeta" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcNi" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtMeta" ] ;
fhir:type [ fhir:v "FHIRMeta" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setSource" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtMeta" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "source" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/fhir/Endpoint/dpi/PatientTable' + '/' + %srcNi.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setHumainName" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "PatientTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtPatientName" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setUse" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatientName" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "use" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "usual"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setName" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "name" ] ;
fhir:variable [ fhir:v "srcPatientName" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatientName" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "family" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPatientName"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setFirstNameAndText" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "firstName" ] ;
fhir:variable [ fhir:v "srcPatientFirstName" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtPatientName" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "given" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPatientFirstName"             ]           ] )         ] [
fhir:context [ fhir:v "tgtPatientName" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "text" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "%srcPatientFirstName + ' ' + %srcPatientName"             ]           ] )         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setHumainNir" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "PatientTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtPatientIdentifier" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setNir" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "nir" ] ;
fhir:variable [ fhir:v "srcPatientNir" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatientIdentifier" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "use" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "official"           ]         ] )       ] [
fhir:context [ fhir:v "tgtPatientIdentifier" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "type" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "https://hl7.fr/ig/fhir/core/CodeSystem/fr-core-cs-v2-0203"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "INS-NIR"           ]         ] )       ] [
fhir:context [ fhir:v "tgtPatientIdentifier" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "system" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "urn:oid:1.2.250.1.213.1.4.8"           ]         ] )       ] [
fhir:context [ fhir:v "tgtPatientIdentifier" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "value" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPatientNir"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "patientAddress" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcAddress" ] ;
fhir:type [ fhir:v "AddressTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setAddress" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcAddress" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtPatient" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "address" ] ;
fhir:variable [ fhir:v "newAddress" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Address"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setZip" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "zipCode" ] ;
fhir:variable [ fhir:v "srczip" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "postalCode" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srczip"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setCity" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "city" ] ;
fhir:variable [ fhir:v "srcCity" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "city" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcCity"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setCountry" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "country" ] ;
fhir:variable [ fhir:v "srcCountry" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "country" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcCountry"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setText" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "address" ] ;
fhir:variable [ fhir:v "srcAddressText" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "text" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcAddressText"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setUseHome" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:condition [ fhir:v "current = true" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "use" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "home"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setUseOld" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:condition [ fhir:v "current = false" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "use" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "old"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setCoordinatesExtension" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:condition [ fhir:v "latitude.exists() or longitude.exists()" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newAddress" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "extension" ] ;
fhir:variable [ fhir:v "firstLevelExtension" ] ;
fhir:transform [ fhir:v "create" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Extension"             ]           ] )         ] ) ;
        ( fhir:rule [
fhir:name [ fhir:v "setflext" ] ;
          ( fhir:source [
fhir:context [ fhir:v "srcAddress" ]           ] ) ;
          ( fhir:target [
fhir:context [ fhir:v "firstLevelExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "url" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
            ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'http://hl7.org/fhir/StructureDefinition/geolocation'"               ]             ] )           ] ) ;
          ( fhir:rule [
fhir:name [ fhir:v "setLatExt" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "latitude" ] ;
fhir:variable [ fhir:v "srcLat" ]             ] ) ;
            ( fhir:target [
fhir:context [ fhir:v "firstLevelExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "extension" ] ;
fhir:variable [ fhir:v "latExtension" ] ;
fhir:transform [ fhir:v "create" ] ;
              ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Extension"                 ]               ] )             ] ) ;
            ( fhir:rule [
fhir:name [ fhir:v "setLat" ] ;
              ( fhir:source [
fhir:context [ fhir:v "srcLat" ]               ] ) ;
              ( fhir:target [
fhir:context [ fhir:v "latExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "url" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
                ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'latitude'"                   ]                 ] )               ] [
fhir:context [ fhir:v "latExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "value" ] ;
fhir:transform [ fhir:v "copy" ] ;
                ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcLat"                   ]                 ] )               ] )             ] )           ] [
fhir:name [ fhir:v "setLongExt" ] ;
            ( fhir:source [
fhir:context [ fhir:v "srcAddress" ] ;
fhir:element [ fhir:v "longitude" ] ;
fhir:variable [ fhir:v "srcLong" ]             ] ) ;
            ( fhir:target [
fhir:context [ fhir:v "firstLevelExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "extension" ] ;
fhir:variable [ fhir:v "longExtension" ] ;
fhir:transform [ fhir:v "create" ] ;
              ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Extension"                 ]               ] )             ] ) ;
            ( fhir:rule [
fhir:name [ fhir:v "setLong" ] ;
              ( fhir:source [
fhir:context [ fhir:v "srcLong" ]               ] ) ;
              ( fhir:target [
fhir:context [ fhir:v "longExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "url" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
                ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'longitude'"                   ]                 ] )               ] [
fhir:context [ fhir:v "longExtension" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "value" ] ;
fhir:transform [ fhir:v "copy" ] ;
                ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcLong"                   ]                 ] )               ] )             ] )           ] )         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "encounter" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcSejour" ] ;
fhir:type [ fhir:v "SejourTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtEncounter" ] ;
fhir:type [ fhir:v "FHIREncounter" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setMeta" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ] ;
fhir:element [ fhir:v "sejourNi" ] ;
fhir:variable [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "meta" ] ;
fhir:variable [ fhir:v "tgtMeta" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setEncounterMeta" ] ;
        ( fhir:variable [ fhir:v "srcNi" ] [ fhir:v "tgtMeta" ] )       ] ) ;
fhir:documentation [ fhir:v "copie la valeur du champ patientNi de la table Patient dans l'élément id de la ressource FHIR Patient" ]     ] [
fhir:name [ fhir:v "setStatus" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "status" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "finished"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setEncounterClass" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ] ;
fhir:element [ fhir:v "sejourType" ] ;
fhir:variable [ fhir:v "srcSejourType" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "class" ] ;
fhir:transform [ fhir:v "translate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcSejourType"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "https://interop.aphp.fr/ig/fhir/dm/ConceptMap/DpiEncounterType2SemanticLayerEncounterClass"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "Coding"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setSubjectReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "patientId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "subject" ] ;
fhir:variable [ fhir:v "newSubject" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setSubjectReference" ] ;
        ( fhir:variable [ fhir:v "patientId" ] [ fhir:v "newSubject" ] )       ] )     ] [
fhir:name [ fhir:v "patientNi" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ] ;
fhir:element [ fhir:v "patientNi" ]       ] ) ;
fhir:documentation [ fhir:v "fk vers le patient à conserver pour la construction auto du périmètre final" ]     ] [
fhir:name [ fhir:v "setPeriod" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcSejour" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "period" ] ;
fhir:variable [ fhir:v "newActualPeriod" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Period"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setStart" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcSejour" ] ;
fhir:element [ fhir:v "sejourStart" ] ;
fhir:variable [ fhir:v "srcPeriodStart" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newActualPeriod" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "start" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPeriodStart"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setEnd" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcSejour" ] ;
fhir:element [ fhir:v "sejourEnd" ] ;
fhir:variable [ fhir:v "srcPeriodEnd" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "newActualPeriod" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "end" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcPeriodEnd"             ]           ] )         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setEncounterMeta" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcNi" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtMeta" ] ;
fhir:type [ fhir:v "FHIRMeta" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setSource" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtMeta" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "source" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/fhir/Endpoint/dpi/SejourTable' + '/' + %srcNi.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setSubjectReference" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcPatientId" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "newSubject" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatientId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "newSubject" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "reference" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'Patient/' + %srcPatientId.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "procedure" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcActe" ] ;
fhir:type [ fhir:v "ActeTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcEncounter" ] ;
fhir:type [ fhir:v "FHIREncounter" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtProcedure" ] ;
fhir:type [ fhir:v "FHIRProcedure" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcActe" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setMeta" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcActe" ] ;
fhir:element [ fhir:v "acteNi" ] ;
fhir:variable [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "meta" ] ;
fhir:variable [ fhir:v "tgtMeta" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setProcedureMeta" ] ;
        ( fhir:variable [ fhir:v "srcNi" ] [ fhir:v "tgtMeta" ] )       ] )     ] [
fhir:name [ fhir:v "setSubjectReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "patientId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "subject" ] ;
fhir:variable [ fhir:v "newSubject" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setSubjectReference" ] ;
        ( fhir:variable [ fhir:v "patientId" ] [ fhir:v "newSubject" ] )       ] )     ] [
fhir:name [ fhir:v "setEncounterReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcEncounter" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "encounterId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "encounter" ] ;
fhir:variable [ fhir:v "newEncounter" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setEncounterReference" ] ;
        ( fhir:variable [ fhir:v "encounterId" ] [ fhir:v "newEncounter" ] )       ] )     ] [
fhir:name [ fhir:v "setStatus" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcActe" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "status" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "completed"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setDate" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcActe" ] ;
fhir:condition [ fhir:v "dateStart.exists() or dateEnd.exists" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "performed" ] ;
fhir:variable [ fhir:v "tgtProcedurePeriod" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Period"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setActeStart" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcActe" ] ;
fhir:element [ fhir:v "dateStart" ] ;
fhir:variable [ fhir:v "srcActeStart" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtProcedurePeriod" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "start" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcActeStart"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setActeEnd" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcActe" ] ;
fhir:element [ fhir:v "dateEnd" ] ;
fhir:variable [ fhir:v "srcActeEnd" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtProcedurePeriod" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "end" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "srcActeEnd"             ]           ] )         ] )       ] )     ] [
fhir:name [ fhir:v "setCode" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcActe" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:variable [ fhir:v "acteCode" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtProcedure" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "https://smt.esante.gouv.fr/terminologie-ccam"           ]         ] [
fhir:value [
a fhir:id ;
fhir:v "acteCode"           ]         ] )       ] ) ;
fhir:documentation [ fhir:v "C'est le code de la CCAM facturante" ]     ] )
  ] [
fhir:name [ fhir:v "setProcedureMeta" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcNi" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtMeta" ] ;
fhir:type [ fhir:v "FHIRMeta" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setSource" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtMeta" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "source" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/fhir/Endpoint/dpi/ActeTable' + '/' + %srcNi.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setEncounterReference" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcEncounterId" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "newEncounter" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcEncounterId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "newEncounter" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "reference" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'Encounter/' + %srcEncounterId.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "condition" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcDiag" ] ;
fhir:type [ fhir:v "DiagTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcEncounter" ] ;
fhir:type [ fhir:v "FHIREncounter" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtCondition" ] ;
fhir:type [ fhir:v "FHIRCondition" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDiag" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setMeta" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDiag" ] ;
fhir:element [ fhir:v "diagNi" ] ;
fhir:variable [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "meta" ] ;
fhir:variable [ fhir:v "tgtMeta" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setConditionMeta" ] ;
        ( fhir:variable [ fhir:v "srcNi" ] [ fhir:v "tgtMeta" ] )       ] )     ] [
fhir:name [ fhir:v "setSubjectReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "patientId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "subject" ] ;
fhir:variable [ fhir:v "newSubject" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setSubjectReference" ] ;
        ( fhir:variable [ fhir:v "patientId" ] [ fhir:v "newSubject" ] )       ] )     ] [
fhir:name [ fhir:v "setEncounterReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcEncounter" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "encounterId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "encounter" ] ;
fhir:variable [ fhir:v "newEncounter" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setEncounterReference" ] ;
        ( fhir:variable [ fhir:v "encounterId" ] [ fhir:v "newEncounter" ] )       ] )     ] [
fhir:name [ fhir:v "setVerificationStatus" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDiag" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "verificationStatus" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "confirmed"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setCategory" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDiag" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "category" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "http://terminology.hl7.org/CodeSystem/condition-category"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "encounter-diagnosis"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setCode" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcDiag" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:variable [ fhir:v "diagCode" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtCondition" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "http://hl7.org/fhir/sid/icd-10"           ]         ] [
fhir:value [
a fhir:id ;
fhir:v "diagCode"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setConditionMeta" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcNi" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtMeta" ] ;
fhir:type [ fhir:v "FHIRMeta" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setSource" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtMeta" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "source" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/fhir/Endpoint/dpi/DiagTable' + '/' + %srcNi.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "observationBiol" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcBiology" ] ;
fhir:type [ fhir:v "BiologyTable" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcPatient" ] ;
fhir:type [ fhir:v "FHIRPatient" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "srcEncounter" ] ;
fhir:type [ fhir:v "FHIREncounter" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtObservation" ] ;
fhir:type [ fhir:v "FHIRObservation" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setId" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:transform [ fhir:v "uuid" ]       ] )     ] [
fhir:name [ fhir:v "setMeta" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyNi" ] ;
fhir:variable [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "meta" ] ;
fhir:variable [ fhir:v "tgtMeta" ]       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setBiologyMeta" ] ;
        ( fhir:variable [ fhir:v "srcNi" ] [ fhir:v "tgtMeta" ] )       ] )     ] [
fhir:name [ fhir:v "setSubjectReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcPatient" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "patientId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "subject" ] ;
fhir:variable [ fhir:v "newSubject" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setSubjectReference" ] ;
        ( fhir:variable [ fhir:v "patientId" ] [ fhir:v "newSubject" ] )       ] )     ] [
fhir:name [ fhir:v "setEncounterReference" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcEncounter" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "encounterId" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "encounter" ] ;
fhir:variable [ fhir:v "newEncounter" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Reference"           ]         ] )       ] ) ;
      ( fhir:dependent [
fhir:name [ fhir:v "setEncounterReference" ] ;
        ( fhir:variable [ fhir:v "encounterId" ] [ fhir:v "newEncounter" ] )       ] )     ] [
fhir:name [ fhir:v "setStatus" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "status" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "final"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setCategory" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "category" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "http://terminology.hl7.org/CodeSystem/observation-category"           ]         ] [
fhir:value [
a fhir:string ;
fhir:v "vital-signs"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setDate" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyDatePrel" ] ;
fhir:variable [ fhir:v "biologyDatePrel" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "effective" ] ;
fhir:transform [ fhir:v "copy" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "biologyDatePrel"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setCode" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyCode" ] ;
fhir:variable [ fhir:v "biologyCode" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:transform [ fhir:v "cc" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "http://loinc.org"           ]         ] [
fhir:value [
a fhir:id ;
fhir:v "biologyCode"           ]         ] )       ] )     ] [
fhir:name [ fhir:v "setQuantity" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyValue" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtObservation" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "value" ] ;
fhir:variable [ fhir:v "tgtObsQuantity" ] ;
fhir:transform [ fhir:v "create" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "Quantity"           ]         ] )       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setValue" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyValue" ] ;
fhir:variable [ fhir:v "biologyValue" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtObsQuantity" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "value" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "biologyValue"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setUnit" ] ;
        ( fhir:source [
fhir:context [ fhir:v "srcBiology" ] ;
fhir:element [ fhir:v "biologyUnit" ] ;
fhir:variable [ fhir:v "biologyUnit" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtObsQuantity" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "code" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "biologyUnit"             ]           ] )         ] [
fhir:context [ fhir:v "tgtObsQuantity" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "unit" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:id ;
fhir:v "biologyUnit"             ]           ] )         ] [
fhir:context [ fhir:v "tgtObsQuantity" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "system" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "http://unitsofmeasure.org"             ]           ] )         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setBiologyMeta" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "srcNi" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtMeta" ] ;
fhir:type [ fhir:v "FHIRMeta" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setSource" ] ;
      ( fhir:source [
fhir:context [ fhir:v "srcNi" ]       ] ) ;
      ( fhir:target [
fhir:context [ fhir:v "tgtMeta" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "source" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
        ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/fhir/Endpoint/dpi/BiologyTable' + '/' + %srcNi.toString()"           ]         ] )       ] )     ] )
  ] [
fhir:name [ fhir:v "setEntryRequestAndFullUrl" ] ;
fhir:typeMode [ fhir:v "none" ] ;
    ( fhir:input [
fhir:name [ fhir:v "newRes" ] ;
fhir:mode [ fhir:v "source" ]     ] [
fhir:name [ fhir:v "tgtEntry" ] ;
fhir:mode [ fhir:v "target" ]     ] ) ;
    ( fhir:rule [
fhir:name [ fhir:v "setResourceType" ] ;
      ( fhir:source [
fhir:context [ fhir:v "newRes" ] ;
fhir:element [ fhir:v "id" ] ;
fhir:variable [ fhir:v "newResId" ]       ] ) ;
      ( fhir:rule [
fhir:name [ fhir:v "setFullUrl" ] ;
        ( fhir:source [
fhir:context [ fhir:v "newResId" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "fullUrl" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "'https://aphp.fr/' + %newRes.type().name + '/' + %newResId"             ]           ] )         ] )       ] [
fhir:name [ fhir:v "setRequest" ] ;
        ( fhir:source [
fhir:context [ fhir:v "newResId" ]         ] ) ;
        ( fhir:target [
fhir:context [ fhir:v "tgtEntry" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "request" ] ;
fhir:variable [ fhir:v "tgtEntryRequest" ]         ] [
fhir:context [ fhir:v "tgtEntryRequest" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "method" ] ;
fhir:transform [ fhir:v "copy" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "POST"             ]           ] )         ] [
fhir:context [ fhir:v "tgtEntryRequest" ] ;
fhir:contextType [ fhir:v "variable" ] ;
fhir:element [ fhir:v "url" ] ;
fhir:transform [ fhir:v "evaluate" ] ;
          ( fhir:parameter [
fhir:value [
a fhir:string ;
fhir:v "%newRes.type().name + '/' + %newResId"             ]           ] )         ] )       ] )     ] )
  ] ) . #