0.1.0 -
Guía de Implementación de Homologación Regional (PH4H) de Costa Rica - Versión en desarrollo (v0.1.0): borrador de trabajo de la Iniciativa HL7® Costa Rica, que puede cambiar sin aviso.
| Page standards status: Draft |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="CRPractitionerRoleToIPS"/>
<language value="en"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap CRPractitionerRoleToIPS</b></p><a name="CRPractitionerRoleToIPS"> </a><a name="hcCRPractitionerRoleToIPS"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>https://hl7.or.cr/fhir/ph4h/StructureMap/CRPractitionerRoleToIPS<span style="color: navy">" = "</span>CRPractitionerRoleToIPS<span style="color: navy">"
</span><b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/5.0/StructureDefinition/PractitionerRole<span style="color: navy">" </span><b>alias </b>PractitionerRole <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/4.0/StructureDefinition/PractitionerRole<span style="color: navy">" </span><b>alias </b>PractitionerRoleR4 <b>as </b><b>target</b>
<b>imports</b><span style="color: navy"> "</span><a href="StructureMap-CRComun.html" title="CRComun">https://hl7.or.cr/fhir/ph4h/StructureMap/CRComun</a><span style="color: navy">"
</span>
<b>group </b>CRPractitionerRoleToIPS<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>PractitionerRole, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>PractitionerRoleR4<span style="color: navy">)</span><span style="color: navy"> {
</span> src.id<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>tgt.id = <span style="color: maroon">v</span><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>tgt.meta<b> as </b><span style="color: maroon">m</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>m.profile = <span style="color: blue">'http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips'</span> <i>"perfil"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"meta"</i><span style="color: navy">;</span>
src.active<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>tgt.active = <span style="color: maroon">v</span> <i>"activo"</i><span style="color: navy">;</span>
src.period<b> as </b><span style="color: maroon">p</span><span style="color: navy"><b> -> </b></span>tgt.period<b> as </b><span style="color: maroon">tp</span><b> then </b>Periodo<span style="color: navy">(</span><span style="color: maroon">p</span><span style="color: navy">, </span><span style="color: maroon">tp</span><span style="color: navy">)</span> <i>"periodo"</i><span style="color: navy">;</span>
src.practitioner<b> as </b><span style="color: maroon">r</span><span style="color: navy"><b> -> </b></span>tgt.practitioner<b> as </b><span style="color: maroon">tr</span><b> then </b>Referencia<span style="color: navy">(</span><span style="color: maroon">r</span><span style="color: navy">, </span><span style="color: maroon">tr</span><span style="color: navy">)</span> <i>"profesional"</i><span style="color: navy">;</span>
src.organization<b> as </b><span style="color: maroon">r</span><span style="color: navy"><b> -> </b></span>tgt.organization<b> as </b><span style="color: maroon">tr</span><b> then </b>Referencia<span style="color: navy">(</span><span style="color: maroon">r</span><span style="color: navy">, </span><span style="color: maroon">tr</span><span style="color: navy">)</span> <i>"organizacion"</i><span style="color: navy">;</span>
src.location<b> as </b><span style="color: maroon">r</span><span style="color: navy"><b> -> </b></span>tgt.location<b> as </b><span style="color: maroon">tr</span><b> then </b>Referencia<span style="color: navy">(</span><span style="color: maroon">r</span><span style="color: navy">, </span><span style="color: maroon">tr</span><span style="color: navy">)</span> <i>"ubicacion"</i><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">c</span><b> where </b><span style="color: navy">(</span>coding.where(system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud').exists()<span style="color: navy">)</span><span style="color: navy"><b> -> </b></span>tgt.code<b> as </b><span style="color: maroon">tc</span><b> then</b><span style="color: navy"> {
</span> c.coding<b> as </b><span style="color: maroon">sc</span><b> where </b><span style="color: navy">(</span>system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud'<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> sc<span style="color: navy"><b> -> </b></span>tc.coding<b> as </b><span style="color: maroon">t</span><b> then </b>Codificacion<span style="color: navy">(</span><span style="color: maroon">sc</span><span style="color: navy">, </span><span style="color: maroon">t</span><span style="color: navy">)</span> <i>"cr"</i><span style="color: navy">;</span>
sc<span style="color: navy"><b> -> </b></span>tc.coding = <b>translate</b><span style="color: navy">(</span><span style="color: maroon">sc</span><span style="color: navy">, </span><span style="color: blue">'https://hl7.or.cr/fhir/terminology/ConceptMap/cr-profesion-salud-isco08'</span><span style="color: navy">, </span><span style="color: blue">'Coding'</span><span style="color: navy">)</span> <i>"isco08"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codings"</i><span style="color: navy">;</span>
c.text<b> as </b><span style="color: maroon">v</span><span style="color: navy"><b> -> </b></span>tc.text = <span style="color: maroon">v</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"profesion"</i><span style="color: navy">;</span>
src.specialty<b> as </b><span style="color: maroon">s</span><span style="color: navy"><b> -> </b></span>tgt.specialty<b> as </b><span style="color: maroon">ts</span><b> then </b>Concepto<span style="color: navy">(</span><span style="color: maroon">s</span><span style="color: navy">, </span><span style="color: maroon">ts</span><span style="color: navy">)</span> <i>"especialidad"</i><span style="color: navy">;</span>
src.contact<b> as </b><span style="color: maroon">c</span><b> where </b><span style="color: navy">(</span>purpose.exists().not()<span style="color: navy">)</span><b> then</b><span style="color: navy"> {
</span> c.telecom<b> as </b><span style="color: maroon">t</span><span style="color: navy"><b> -> </b></span>tgt.telecom<b> as </b><span style="color: maroon">tt</span><b> then </b>Telecom<span style="color: navy">(</span><span style="color: maroon">t</span><span style="color: navy">, </span><span style="color: maroon">tt</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"contactoGeneral"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="https://hl7.or.cr/fhir/ph4h/StructureMap/CRPractitionerRoleToIPS"/>
<version value="0.1.0"/>
<name value="CRPractitionerRoleToIPS"/>
<status value="draft"/>
<date value="2026-09-30T16:04:28-06:00"/>
<publisher value="HL7 Costa Rica"/>
<contact>
<name value="HL7 Costa Rica"/>
<telecom>
<system value="url"/>
<value value="https://hl7.or.cr"/>
</telecom>
</contact>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="CR"/>
<display value="Costa Rica"/>
</coding>
</jurisdiction>
<structure>
<url
value="http://hl7.org/fhir/5.0/StructureDefinition/PractitionerRole"/>
<mode value="source"/>
<alias value="PractitionerRole"/>
</structure>
<structure>
<url
value="http://hl7.org/fhir/4.0/StructureDefinition/PractitionerRole"/>
<mode value="target"/>
<alias value="PractitionerRoleR4"/>
</structure>
<import value="https://hl7.or.cr/fhir/ph4h/StructureMap/CRComun"/>
<group>
<name value="CRPractitionerRoleToIPS"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="PractitionerRole"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="PractitionerRoleR4"/>
<mode value="target"/>
</input>
<rule>
<name value="id"/>
<source>
<context value="src"/>
<element value="id"/>
<variable value="v"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="copy"/>
<parameter>
<valueId value="v"/>
</parameter>
</target>
</rule>
<rule>
<name value="meta"/>
<source>
<context value="src"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="meta"/>
<variable value="m"/>
</target>
<rule>
<name value="perfil"/>
<source>
<context value="src"/>
</source>
<target>
<context value="m"/>
<contextType value="variable"/>
<element value="profile"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="activo"/>
<source>
<context value="src"/>
<element value="active"/>
<variable value="v"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="active"/>
<transform value="copy"/>
<parameter>
<valueId value="v"/>
</parameter>
</target>
</rule>
<rule>
<name value="periodo"/>
<source>
<context value="src"/>
<element value="period"/>
<variable value="p"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="tp"/>
</target>
<dependent>
<name value="Periodo"/>
<variable value="p"/>
<variable value="tp"/>
</dependent>
</rule>
<rule>
<name value="profesional"/>
<source>
<context value="src"/>
<element value="practitioner"/>
<variable value="r"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="practitioner"/>
<variable value="tr"/>
</target>
<dependent>
<name value="Referencia"/>
<variable value="r"/>
<variable value="tr"/>
</dependent>
</rule>
<rule>
<name value="organizacion"/>
<source>
<context value="src"/>
<element value="organization"/>
<variable value="r"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="organization"/>
<variable value="tr"/>
</target>
<dependent>
<name value="Referencia"/>
<variable value="r"/>
<variable value="tr"/>
</dependent>
</rule>
<rule>
<name value="ubicacion"/>
<source>
<context value="src"/>
<element value="location"/>
<variable value="r"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="location"/>
<variable value="tr"/>
</target>
<dependent>
<name value="Referencia"/>
<variable value="r"/>
<variable value="tr"/>
</dependent>
</rule>
<rule>
<name value="profesion"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="c"/>
<condition
value="coding.where(system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud').exists()"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="tc"/>
</target>
<rule>
<name value="codings"/>
<source>
<context value="c"/>
<element value="coding"/>
<variable value="sc"/>
<condition
value="system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud'"/>
</source>
<rule>
<name value="cr"/>
<source>
<context value="sc"/>
</source>
<target>
<context value="tc"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="t"/>
</target>
<dependent>
<name value="Codificacion"/>
<variable value="sc"/>
<variable value="t"/>
</dependent>
</rule>
<rule>
<name value="isco08"/>
<source>
<context value="sc"/>
</source>
<target>
<context value="tc"/>
<contextType value="variable"/>
<element value="coding"/>
<transform value="translate"/>
<parameter>
<valueId value="sc"/>
</parameter>
<parameter>
<valueString
value="https://hl7.or.cr/fhir/terminology/ConceptMap/cr-profesion-salud-isco08"/>
</parameter>
<parameter>
<valueString value="Coding"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="text"/>
<source>
<context value="c"/>
<element value="text"/>
<variable value="v"/>
</source>
<target>
<context value="tc"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueId value="v"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="especialidad"/>
<source>
<context value="src"/>
<element value="specialty"/>
<variable value="s"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="specialty"/>
<variable value="ts"/>
</target>
<dependent>
<name value="Concepto"/>
<variable value="s"/>
<variable value="ts"/>
</dependent>
</rule>
<rule>
<name value="contactoGeneral"/>
<source>
<context value="src"/>
<element value="contact"/>
<variable value="c"/>
<condition value="purpose.exists().not()"/>
</source>
<rule>
<name value="telecom"/>
<source>
<context value="c"/>
<element value="telecom"/>
<variable value="t"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="tt"/>
</target>
<dependent>
<name value="Telecom"/>
<variable value="t"/>
<variable value="tt"/>
</dependent>
</rule>
</rule>
</group>
</StructureMap>