FHIR Release 3 (STU) 4

This page is part of the FHIR Specification (v3.0.2: (v4.0.1: R4 - Mixed Normative and STU 3). ) in it's permanent home (it will always be available at this URL). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R4 R3

Patient Administration Work Group Maturity Level : N/A Ballot Standards Status : Informative Security Category : Patient Compartments : Patient , Practitioner

R2 : R3 Converson : R4 Conversion maps for EpisodeOfCare.

Functional status for this map: 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid. ( see documentation)

map "http://hl7.org/fhir/StructureMap/EpisodeOfCare2to3" = "R2 to R3 Conversions for EpisodeOfCare"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/EpisodeOfCare" alias EpisodeOfCareR2 as source
uses "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" alias EpisodeOfCare as target

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

group for type+types  EpisodeOfCare extends DomainResource
  input src : EpisodeOfCareR2 as source
  input tgt : EpisodeOfCare as target

  "EpisodeOfCare-identifier" : for src.identifier make tgt.identifier
  "EpisodeOfCare-status" : for src.status make tgt.status
  "EpisodeOfCare-statusHistory" : for src.statusHistory as vs0 make tgt.statusHistory as vt0 then epcStatusHistory(vs0, vt0)
  "EpisodeOfCare-type" : for src.type make tgt.type
  "EpisodeOfCare-condition" : for src.condition as v make tgt.diagnosis as d, d.condition = v
  "EpisodeOfCare-patient" : for src.patient make tgt.patient
  "EpisodeOfCare-managingOrganization" : for src.managingOrganization make tgt.managingOrganization
  "EpisodeOfCare-period" : for src.period make tgt.period
  "EpisodeOfCare-referralRequest" : for src.referralRequest make tgt.referralRequest
  "EpisodeOfCare-careManager" : for src.careManager make tgt.careManager

  "EpisodeOfCare-careteam" : for src where src.careTeam.exists() make create("CareTeam") as vt0 then epiCareTeam(src, vt0, tgt)
endgroup

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


group epcStatusHistory extends BackboneElement
  input src as source
  input tgt as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/EpisodeOfCare" alias EpisodeOfCareR3 as source
uses "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" alias EpisodeOfCare as target


  "EpisodeOfCare.statusHistory-status" : for src.status make tgt.status
  "EpisodeOfCare.statusHistory-period" : for src.period make tgt.period
endgroup

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


group epiCareTeam 
  input src as source
  input tgt as target
  input tgtE as target

group EpisodeOfCare(source src : EpisodeOfCareR3, target tgt : EpisodeOfCare) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.statusHistory as vs0 -> tgt.statusHistory as vt0 then statusHistory(vs0, vt0);
  src.type -> tgt.type;
  src.diagnosis as vs0 -> tgt.diagnosis as vt0 then diagnosis(vs0, vt0);
  src.patient -> tgt.patient;
  src.managingOrganization -> tgt.managingOrganization;
  src.period -> tgt.period;
  src.referralRequest -> tgt.referralRequest;
  src.careManager -> tgt.careManager;
  src.team -> tgt.team;
  src.account -> tgt.account;
}


  "EpisodeOfCare.careteam-link" : for src make tgtE.team = reference(tgt)
  "EpisodeOfCare.careteam-member" : for src.careTeam as vs make tgt.participant as vt then epiCareTeamMember(vs, vt)
endgroup

group statusHistory(source src, target tgt) extends BackboneElement {
  src.status -> tgt.status;
  src.period -> tgt.period;
}


group epiCareTeamMember extends BackboneElement
  input src as source
  input tgt as target

group diagnosis(source src, target tgt) extends BackboneElement {
  src.condition -> tgt.condition;
  src.role -> tgt.role;
  src.rank -> tgt.rank;
}


  "EpisodeOfCare.careteam-role" : for src.role make tgt.role
  "EpisodeOfCare.careteam-period" : for src.period make tgt.period
  "EpisodeOfCare.careteam-member" : for src.member make tgt.member
endgroup


map "http://hl7.org/fhir/StructureMap/EpisodeOfCare3to2" = "R3 to R2 Conversion for EpisodeOfCare"

uses "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" alias EpisodeOfCare as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/EpisodeOfCare" alias EpisodeOfCareR2 as target

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

group for type+types  EpisodeOfCare extends DomainResource
  input src : EpisodeOfCare as source
  input tgt : EpisodeOfCareR2 as target

  "EpisodeOfCare-identifier" : for src.identifier make tgt.identifier
  "EpisodeOfCare-status" : for src.status make tgt.status
  "EpisodeOfCare-statusHistory" : for src.statusHistory as vs0 make tgt.statusHistory as vt0 then epcStatusHistory(vs0, vt0)
  "EpisodeOfCare-type" : for src.type make tgt.type
  "EpisodeOfCare-condition" : for src.diagnosis as d then epcDiagnosis(d, tgt)
  "EpisodeOfCare-patient" : for src.patient make tgt.patient
  "EpisodeOfCare-managingOrganization" : for src.managingOrganization make tgt.managingOrganization
  "EpisodeOfCare-period" : for src.period make tgt.period
  "EpisodeOfCare-referralRequest" : for src.referralRequest make tgt.referralRequest
  "EpisodeOfCare-careManager" : for src.careManager make tgt.careManager
  "EpisodeOfCare-careTeam" : for src.team as vs where reference.resolve().exists() make (src.team.reference.resolve()) as ct then epiCareTeam(ct, tgt)

endgroup

group epcDiagnosis extends BackboneElement
  input src as source
  input tgt as target

  "EpisodeOfCare.indication-condition1" : for src.condition as v where src.role.coding.code.contains("AD").not() and role.coding.code.contains("DD").not() make tgt.condition = v
endgroup


group epcStatusHistory extends BackboneElement
  input src as source
  input tgt as target

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


  "EpisodeOfCare.statusHistory-status" : for src.status make tgt.status
  "EpisodeOfCare.statusHistory-period" : for src.period make tgt.period
endgroup

uses "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" alias EpisodeOfCare as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/EpisodeOfCare" alias EpisodeOfCareR3 as target


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


group epiCareTeam 
  input src as source
  input tgt as target

group EpisodeOfCare(source src : EpisodeOfCare, target tgt : EpisodeOfCareR3) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.statusHistory as vs0 -> tgt.statusHistory as vt0 then statusHistory(vs0, vt0);
  src.type -> tgt.type;
  src.diagnosis as vs0 -> tgt.diagnosis as vt0 then diagnosis(vs0, vt0);
  src.patient -> tgt.patient;
  src.managingOrganization -> tgt.managingOrganization;
  src.period -> tgt.period;
  src.referralRequest -> tgt.referralRequest;
  src.careManager -> tgt.careManager;
  src.team -> tgt.team;
  src.account -> tgt.account;
}


  "EpisodeOfCare.careteam-member" : for src.participant as vs make tgt.careTeam as vt then epiCareTeamMember(vs, vt)
endgroup

group statusHistory(source src, target tgt) extends BackboneElement {
  src.status -> tgt.status;
  src.period -> tgt.period;
}


group epiCareTeamMember extends BackboneElement
  input src as source
  input tgt as target

group diagnosis(source src, target tgt) extends BackboneElement {
  src.condition -> tgt.condition;
  src.role -> tgt.role;
  src.rank -> tgt.rank;
}


  "EpisodeOfCare.careteam-role" : for src.role make tgt.role
  "EpisodeOfCare.careteam-period" : for src.period make tgt.period
  "EpisodeOfCare.careteam-member" : for src.member make tgt.member
endgroup


<p>No validation errors - all conversions are clean</p>