0.1.0 - Costa Rica flag

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.

StructureMap:

Official URL: https://hl7.or.cr/fhir/ph4h/StructureMap/CRPractitionerRoleToIPS Version: 0.1.0
Standards status: Draft Computable Name: CRPractitionerRoleToIPS

Language: en

map "https://hl7.or.cr/fhir/ph4h/StructureMap/CRPractitionerRoleToIPS" = "CRPractitionerRoleToIPS"

uses "http://hl7.org/fhir/5.0/StructureDefinition/PractitionerRole" alias PractitionerRole as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/PractitionerRole" alias PractitionerRoleR4 as target

imports "https://hl7.or.cr/fhir/ph4h/StructureMap/CRComun"

group CRPractitionerRoleToIPS(source src : PractitionerRole, target tgt : PractitionerRoleR4) {
  src.id as v -> tgt.id = v;
  src -> tgt.meta as m then {
    src -> m.profile = 'http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips' "perfil";
  } "meta";
  src.active as v -> tgt.active = v "activo";
  src.period as p -> tgt.period as tp then Periodo(p, tp) "periodo";
  src.practitioner as r -> tgt.practitioner as tr then Referencia(r, tr) "profesional";
  src.organization as r -> tgt.organization as tr then Referencia(r, tr) "organizacion";
  src.location as r -> tgt.location as tr then Referencia(r, tr) "ubicacion";
  src.code as c where (coding.where(system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud').exists()) -> tgt.code as tc then {
    c.coding as sc where (system = 'https://hl7.or.cr/fhir/terminology/CodeSystem/cr-profesion-salud') then {
      sc -> tc.coding as t then Codificacion(sc, t) "cr";
      sc -> tc.coding = translate(sc, 'https://hl7.or.cr/fhir/terminology/ConceptMap/cr-profesion-salud-isco08', 'Coding') "isco08";
    } "codings";
    c.text as v -> tc.text = v;
  } "profesion";
  src.specialty as s -> tgt.specialty as ts then Concepto(s, ts) "especialidad";
  src.contact as c where (purpose.exists().not()) then {
    c.telecom as t -> tgt.telecom as tt then Telecom(t, tt);
  } "contactoGeneral";
}