Data Management with FHIR
0.1.0 - ci-build

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

## : Mapping FHIR Patient resource to OMOP Person - XML Representation

Draft as of 2025-10-23

Raw xml | Download

    <StructureMap xmlns="http://hl7.org/fhir">
      <id value="CoreFHIR2OMOPPerson"/>
      <text>
        <status value="generated"/>
        <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Narratif généré : StructureMap CoreFHIR2OMOPPerson</b></p><a name="CoreFHIR2OMOPPerson"> </a><a name="hcCoreFHIR2OMOPPerson"> </a><pre class="fml">
    <b>map</b><span style="color: navy"> &quot;</span>https://interop.aphp.fr/ig/fhir/dm/StructureMap/CoreFHIR2OMOPPerson<span style="color: navy">&quot; = &quot;</span>CoreFHIR2OMOPPerson<span style="color: navy">&quot;

    </span><span style="color: navy">// </span><span style="color: green">Mapping FHIR Patient resource to OMOP Person</span>

    <b>uses</b><span style="color: navy"> &quot;</span><a href="http://hl7.org/fhir/R4/patient.html" title="Patient">http://hl7.org/fhir/StructureDefinition/Patient</a><span style="color: navy">&quot; </span><b>alias </b>Patient <b>as </b><b>source</b>
    <b>uses</b><span style="color: navy"> &quot;</span><a href="StructureDefinition-OMOPPerson.html" title="Person OMOP Table">https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPPerson</a><span style="color: navy">&quot; </span><b>alias </b>PersonTable <b>as </b><b>target</b>

    <b>group </b>Person<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>Patient, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>PersonTable<span style="color: navy">)</span><span style="color: navy"> {
    </span>  src.id<b> as </b><span style="color: maroon">srcId</span><span style="color: navy"><b> -&gt; </b></span>tgt.person_source_value = <span style="color: maroon">srcId</span><span style="color: navy">;</span>
      src.gender<b> as </b><span style="color: maroon">srcGender</span><b> then</b><span style="color: navy"> {
    </span>    srcGender<span style="color: navy"><b> -&gt; </b></span>tgt.gender_concept_id = <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">tgtReference</span><b> then</b><span style="color: navy"> {
    </span>      srcGender<span style="color: navy"><b> -&gt; </b></span> <b>translate</b><span style="color: navy">(</span><span style="color: maroon">srcGender</span><span style="color: navy">, </span><span style="color: blue">'https://interop.aphp.fr/ig/fhir/dm/ConceptMap/hl7-gender-to-ohdsi-gender'</span><span style="color: navy">, </span><span style="color: blue">'code'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">genderCode</span><span style="color: navy">, </span> tgtReference.reference = <b>append</b><span style="color: navy">(</span><span style="color: blue">'Concept/'</span><span style="color: navy">, </span><span style="color: maroon">genderCode</span><span style="color: navy">)</span> <i>&quot;ref&quot;</i><span style="color: navy">;</span>
        <span style="color: navy">}</span> <i>&quot;refConcept&quot;</i><span style="color: navy">;</span>
        srcGender<span style="color: navy"><b> -&gt; </b></span>tgt.gender_source_value = <span style="color: maroon">srcGender</span> <i>&quot;sourceGender&quot;</i><span style="color: navy">;</span>
      <span style="color: navy">}</span><span style="color: navy">;</span>
      src.birthDate<b> as </b><span style="color: maroon">srcBirthDate</span><b> then</b><span style="color: navy"> {
    </span>    srcBirthDate<span style="color: navy"><b> -&gt; </b></span>tgt.birth_datetime = <span style="color: maroon">srcBirthDate</span> <i>&quot;dateTime&quot;</i><span style="color: navy">;</span>
        srcBirthDate<span style="color: navy"><b> -&gt; </b></span>tgt.year_of_birth = <span style="color: navy">(</span>%srcBirthDate.toString().substring(0, 4).toInteger()<span style="color: navy">)</span> <i>&quot;year&quot;</i><span style="color: navy">;</span>
        srcBirthDate<span style="color: navy"><b> -&gt; </b></span>tgt.month_of_birth = <span style="color: navy">(</span>%srcBirthDate.toString().substring(5, 2).toInteger()<span style="color: navy">)</span> <i>&quot;month&quot;</i><span style="color: navy">;</span>
        srcBirthDate<span style="color: navy"><b> -&gt; </b></span>tgt.day_of_birth = <span style="color: navy">(</span>%srcBirthDate.toString().substring(8, 2).toInteger()<span style="color: navy">)</span> <i>&quot;day&quot;</i><span style="color: navy">;</span>
      <span style="color: navy">}</span><span style="color: navy">;</span>
    <span style="color: navy">}

    </span></pre></div>
      </text>
      <url
           value="https://interop.aphp.fr/ig/fhir/dm/StructureMap/CoreFHIR2OMOPPerson"/>
      <version value="0.1.0"/>
      <name value="CoreFHIR2OMOPPerson"/>
      <title value="Mapping FHIR Patient resource to OMOP Person"/>
      <status value="draft"/>
      <date value="2025-10-23T20:49:03+00:00"/>
      <publisher value="AP-HP"/>
      <contact>
        <name value="AP-HP"/>
        <telecom>
          <system value="url"/>
          <value value="https://aphp.fr"/>
        </telecom>
      </contact>
      <description value="Mapping FHIR Patient resource to OMOP Person"/>
      <jurisdiction>
        <coding>
          <system value="urn:iso:std:iso:3166"/>
          <code value="FR"/>
          <display value="France"/>
        </coding>
      </jurisdiction>
      <structure>
        <url value="http://hl7.org/fhir/StructureDefinition/Patient"/>
        <mode value="source"/>
        <alias value="Patient"/>
      </structure>
      <structure>
        <url
             value="https://interop.aphp.fr/ig/fhir/dm/StructureDefinition/OMOPPerson"/>
        <mode value="target"/>
        <alias value="PersonTable"/>
      </structure>
      <group>
        <name value="Person"/>
        <typeMode value="none"/>
        <input>
          <name value="src"/>
          <type value="Patient"/>
          <mode value="source"/>
        </input>
        <input>
          <name value="tgt"/>
          <type value="PersonTable"/>
          <mode value="target"/>
        </input>
        <rule>
          <name value="id"/>
          <source>
            <context value="src"/>
            <element value="id"/>
            <variable value="srcId"/>
          </source>
          <target>
            <context value="tgt"/>
            <contextType value="variable"/>
            <element value="person_source_value"/>
            <transform value="copy"/>
            <parameter>
              <valueId value="srcId"/>
            </parameter>
          </target>
        </rule>
        <rule>
          <name value="gender"/>
          <source>
            <context value="src"/>
            <element value="gender"/>
            <variable value="srcGender"/>
          </source>
          <rule>
            <name value="refConcept"/>
            <source>
              <context value="srcGender"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="gender_concept_id"/>
              <variable value="tgtReference"/>
              <transform value="create"/>
              <parameter>
                <valueString value="Reference"/>
              </parameter>
            </target>
            <rule>
              <name value="ref"/>
              <source>
                <context value="srcGender"/>
              </source>
              <target>
                <contextType value="variable"/>
                <variable value="genderCode"/>
                <transform value="translate"/>
                <parameter>
                  <valueId value="srcGender"/>
                </parameter>
                <parameter>
                  <valueString
                               value="https://interop.aphp.fr/ig/fhir/dm/ConceptMap/hl7-gender-to-ohdsi-gender"/>
                </parameter>
                <parameter>
                  <valueString value="code"/>
                </parameter>
              </target>
              <target>
                <context value="tgtReference"/>
                <contextType value="variable"/>
                <element value="reference"/>
                <transform value="append"/>
                <parameter>
                  <valueString value="Concept/"/>
                </parameter>
                <parameter>
                  <valueId value="genderCode"/>
                </parameter>
              </target>
            </rule>
          </rule>
          <rule>
            <name value="sourceGender"/>
            <source>
              <context value="srcGender"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="gender_source_value"/>
              <transform value="copy"/>
              <parameter>
                <valueId value="srcGender"/>
              </parameter>
            </target>
          </rule>
        </rule>
        <rule>
          <name value="birthDate"/>
          <source>
            <context value="src"/>
            <element value="birthDate"/>
            <variable value="srcBirthDate"/>
          </source>
          <rule>
            <name value="dateTime"/>
            <source>
              <context value="srcBirthDate"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="birth_datetime"/>
              <transform value="copy"/>
              <parameter>
                <valueId value="srcBirthDate"/>
              </parameter>
            </target>
          </rule>
          <rule>
            <name value="year"/>
            <source>
              <context value="srcBirthDate"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="year_of_birth"/>
              <transform value="evaluate"/>
              <parameter>
                <valueString
                             value="%srcBirthDate.toString().substring(0, 4).toInteger()"/>
              </parameter>
            </target>
          </rule>
          <rule>
            <name value="month"/>
            <source>
              <context value="srcBirthDate"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="month_of_birth"/>
              <transform value="evaluate"/>
              <parameter>
                <valueString
                             value="%srcBirthDate.toString().substring(5, 2).toInteger()"/>
              </parameter>
            </target>
          </rule>
          <rule>
            <name value="day"/>
            <source>
              <context value="srcBirthDate"/>
            </source>
            <target>
              <context value="tgt"/>
              <contextType value="variable"/>
              <element value="day_of_birth"/>
              <transform value="evaluate"/>
              <parameter>
                <valueString
                             value="%srcBirthDate.toString().substring(8, 2).toInteger()"/>
              </parameter>
            </target>
          </rule>
        </rule>
      </group>
    </StructureMap>