This page is part of the FHIR Specification (v5.0.0-snapshot3: R5 Snapshot #3, to support Connectathon 32). 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
Financial Management Work Group | Maturity Level: N/A | Standards Status: Informative | Security Category: Patient | Compartments: Patient, RelatedPerson |
R4 : R5 Conversion maps for Coverage.
Functional status for this map: 4 tests that all execute ok. 1 fail round-trip testing and all r3 resources are valid. (see documentation)
map "http://hl7.org/fhir/StructureMap/Coverage3to4" = "R3 to R4 Conversions for Coverage" uses "http://hl7.org/fhir/3.0/StructureDefinition/Coverage" alias CoverageR3 as source uses "http://hl7.org/fhir/StructureDefinition/Coverage" alias Coverage as target imports "http://hl7.org/fhir/StructureMap/*3to4" group Coverage(source src : CoverageR3, target tgt : Coverage) extends DomainResource <<type+>> { src.identifier -> tgt.identifier; src.status -> tgt.status; src.type -> tgt.type; src.policyHolder -> tgt.policyHolder; src.subscriber -> tgt.subscriber; src.subscriberId -> tgt.subscriberId; src.beneficiary -> tgt.beneficiary; src.dependent -> tgt.dependent; src.relationship -> tgt.relationship; src.period -> tgt.period; src.payor -> tgt.payor; src.grouping as g where src.grouping.group.exists() -> tgt.class as t then CoverageGroupingGroup(g, t); src.grouping as g where src.grouping.subGroup.exists() -> tgt.class as t then CoverageGroupingSubGroup(g, t); src.grouping as g where src.grouping.plan.exists() -> tgt.class as t then CoverageGroupingPlan(g, t); src.grouping as g where src.grouping.subPlan.exists() -> tgt.class as t then CoverageGroupingSubPlan(g, t); src.grouping as g where src.grouping.class.exists() -> tgt.class as t then CoverageGroupingClass(g, t); src.grouping as g where src.grouping.subClass.exists() -> tgt.class as t then CoverageGroupingSubClass(g, t); src.order -> tgt.order; src.network -> tgt.network; src.contract -> tgt.contract; } group CoverageGroupingGroup(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'group' "group"; src.group -> tgt.value; src.groupDisplay -> tgt.name; } group CoverageGroupingSubGroup(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'subgroup' "subgroup"; src.subGroup -> tgt.value; src.subGroupDisplay -> tgt.name; } group CoverageGroupingPlan(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'plan' "plan"; src.plan -> tgt.value; src.planDisplay -> tgt.name; } group CoverageGroupingSubPlan(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'subplan' "subplan"; src.subPlan -> tgt.value; src.subPlanDisplay -> tgt.name; } group CoverageGroupingClass(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'class' "class"; src.class -> tgt.value; src.classDisplay -> tgt.name; } group CoverageGroupingSubClass(source src, target tgt) extends BackboneElement { src -> tgt.type as vt, vt.coding as c, c.system = 'http://terminology.hl7.org/CodeSystem/coverage-class', c.code = 'subclass' "subclass"; src.subClass -> tgt.value; src.subClassDisplay -> tgt.name; }
map "http://hl7.org/fhir/StructureMap/Coverage4to3" = "R4 to R3 Conversion for Coverage" uses "http://hl7.org/fhir/StructureDefinition/Coverage" alias Coverage as source uses "http://hl7.org/fhir/3.0/StructureDefinition/Coverage" alias CoverageR3 as target imports "http://hl7.org/fhir/StructureMap/*4to3" group Coverage(source src : Coverage, target tgt : CoverageR3) extends DomainResource <<type+>> { src.identifier -> tgt.identifier; src.status -> tgt.status; src.type -> tgt.type; src.policyHolder -> tgt.policyHolder; src.subscriber -> tgt.subscriber; src.subscriberId -> tgt.subscriberId; src.beneficiary -> tgt.beneficiary; src.dependent -> tgt.dependent; src.relationship -> tgt.relationship; src.period -> tgt.period; src.payor -> tgt.payor; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'group' then { c then CoverageClassGroup(class, t) "CoverageClassGroup"; }; }; }; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'subgroup' then { c then CoverageClassSubGroup(class, t) "CoverageClassSubGroup"; }; }; }; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'plan' then { c then CoverageClassPlanGroup(class, t) "CoverageClassPlanGroup"; }; }; }; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'subplan' then { c then CoverageClassSubPlanGroup(class, t) "CoverageClassSubPlanGroup"; }; }; }; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'class' then { c then CoverageClassClassGroup(class, t) "CoverageClassClassGroup"; }; }; }; src.class as class -> tgt.grouping as t then { class.type as vs then { vs.coding as c where code = 'subclass' then { c then CoverageClassSubClassGroup(class, t) "CoverageClassSubClassGroup"; }; }; }; src.class as class then { class.type as vs then { vs.coding as c where code = 'sequence' then { c then CoverageClassSequenceGroup(class, tgt) "CoverageClassSequenceGroup"; }; }; }; src.order -> tgt.order; src.network -> tgt.network; src.contract -> tgt.contract; } group CoverageClassGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.group; src.name -> tgt.groupDisplay; } group CoverageClassSubGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.subGroup; src.name -> tgt.subGroupDisplay; } group CoverageClassPlanGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.plan; src.name -> tgt.planDisplay; } group CoverageClassSubPlanGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.subPlan; src.name -> tgt.subPlanDisplay; } group CoverageClassClassGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.class; src.name -> tgt.classDisplay; } group CoverageClassSubClassGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.subClass; src.name -> tgt.subClassDisplay; } group CoverageClassSequenceGroup(source src, target tgt) extends BackboneElement { src.value -> tgt.sequence; }