Current Build
Patient Administration Work GroupMaturity Level: N/ABallot Status: Informative Compartments: Patient, Practitioner, RelatedPerson

R3 : R4 Conversion maps for Patient.

Functional status for this map: 16 tests of which 2 fail to execute. 14 fail round-trip testing and 14 r3 resources are invalid (0 errors). (see documentation)

map "http://hl7.org/fhir/StructureMap/Patient3to4" = "R3 to R4 Conversions for Patient"


uses "http://hl7.org/fhir/3.0/StructureDefinition/Patient" alias PatientR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as target

imports "http://hl7.org/fhir/StructureMap/*3to4"



group Patient extends DomainResource
  input src : PatientR3 as source
  input tgt : Patient as target

  "Patient.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Patient.active" : for src.active as vs make tgt.active as vt
  "Patient.name" : for src.name as vs make tgt.name as vt
  "Patient.telecom" : for src.telecom as vs make tgt.telecom as vt
  "Patient.gender" : for src.gender as vs make tgt.gender as vt
  "Patient.birthDate" : for src.birthDate as vs make tgt.birthDate as vt
  "Patient.deceased-boolean" : for src.deceased  : boolean as vs make tgt.deceased = create("boolean") as vt then boolean(vs,vt)
  "Patient.deceased-dateTime" : for src.deceased  : dateTime as vs make tgt.deceased = create("dateTime") as vt then dateTime(vs,vt)
  "Patient.address" : for src.address as vs make tgt.address as vt
  "Patient.maritalStatus" : for src.maritalStatus as vs make tgt.maritalStatus as vt
  "Patient.multipleBirth-boolean" : for src.multipleBirth  : boolean as vs make tgt.multipleBirth = create("boolean") as vt then boolean(vs,vt)
  "Patient.multipleBirth-integer" : for src.multipleBirth  : integer as vs make tgt.multipleBirth = create("integer") as vt then integer(vs,vt)
  "Patient.photo" : for src.photo as vs make tgt.photo as vt
  "Patient.communication" : for src.communication as vs0 make tgt.communication as vt0 then {
    "Patient.communication.language" : for vs0.language as vs make vt0.language as vt
    "Patient.communication.preferred" : for vs0.preferred as vs make vt0.preferred as vt
  }
  "Patient.generalPractitioner" : for src.generalPractitioner as vs make tgt.generalPractitioner as vt
  "Patient.managingOrganization" : for src.managingOrganization as vs make tgt.managingOrganization as vt
  "Patient.link" : for src.link as vs0 make tgt.link as vt0 then {
    "Patient.link.other" : for vs0.other as vs make vt0.other as vt
    "Patient.link.type" : for vs0.type as vs make vt0.type as vt
  }
endgroup


map "http://hl7.org/fhir/StructureMap/Patient4to3" = "R4 to R3 Conversion for Patient"


uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Patient" alias PatientR3 as target

imports "http://hl7.org/fhir/StructureMap/*4to3"



group Patient extends DomainResource
  input src : Patient as source
  input tgt : PatientR3 as target

  "Patient.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Patient.active" : for src.active as vs make tgt.active as vt
  "Patient.name" : for src.name as vs make tgt.name as vt
  "Patient.telecom" : for src.telecom as vs make tgt.telecom as vt
  "Patient.gender" : for src.gender as vs make tgt.gender as vt
  "Patient.birthDate" : for src.birthDate as vs make tgt.birthDate as vt
  "Patient.deceased-boolean" : for src.deceased  : boolean as vs make tgt.deceased = create("boolean") as vt then boolean(vs,vt)
  "Patient.deceased-dateTime" : for src.deceased  : dateTime as vs make tgt.deceased = create("dateTime") as vt then dateTime(vs,vt)
  "Patient.address" : for src.address as vs make tgt.address as vt
  "Patient.maritalStatus" : for src.maritalStatus as vs make tgt.maritalStatus as vt
  "Patient.multipleBirth-boolean" : for src.multipleBirth  : boolean as vs make tgt.multipleBirth = create("boolean") as vt then boolean(vs,vt)
  "Patient.multipleBirth-integer" : for src.multipleBirth  : integer as vs make tgt.multipleBirth = create("integer") as vt then integer(vs,vt)
  "Patient.photo" : for src.photo as vs make tgt.photo as vt
  "Patient.communication" : for src.communication as vs0 make tgt.communication as vt0 then {
    "Patient.communication.language" : for vs0.language as vs make vt0.language as vt
    "Patient.communication.preferred" : for vs0.preferred as vs make vt0.preferred as vt
  }
  "Patient.generalPractitioner" : for src.generalPractitioner as vs make tgt.generalPractitioner as vt
  "Patient.managingOrganization" : for src.managingOrganization as vs make tgt.managingOrganization as vt
  "Patient.link" : for src.link as vs0 make tgt.link as vt0 then {
    "Patient.link.other" : for vs0.other as vs make vt0.other as vt
    "Patient.link.type" : for vs0.type as vs make vt0.type as vt
  }
endgroup