R4 Ballot #1 #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.3.0: (v3.5.0: R4 Ballot 2). #2). 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

FHIR Infrastructure Work Group Maturity Level : N/A Ballot Status : Informative Compartments : Device , Patient , Practitioner

R2 : R3 : R4 Conversion maps for Group.

Functional status for this map: 2 tests that all execute ok. All tests pass 2 fail round-trip testing and all 2 r3 resources are valid. invalid (0 errors). ( see documentation)

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

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Group" alias GroupR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Group" alias Group as target

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


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


group for type+types  Group extends DomainResource
  input src : GroupR2 as source
  input tgt : Group as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/Group" alias GroupR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Group" alias Group as target


  "Group-identifier" : for src.identifier make tgt.identifier
  "Group-type" : for src.type make tgt.type
  "Group-actual" : for src.actual make tgt.actual
  "Group-code" : for src.code make tgt.code
  "Group-name" : for src.name make tgt.name
  "Group-quantity" : for src.quantity make tgt.quantity
  "Group-characteristic" : for src.characteristic as vs0 make tgt.characteristic as vt0 then grpCharacteristic(vs0, vt0)
  "Group-member" : for src.member as vs0 make tgt.member as vt0 then grpMember(vs0, vt0)
endgroup

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


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


  "Group.characteristic-code" : for src.code make tgt.code
  "Group.characteristic-value" : for src.value make tgt.value 
  "Group.characteristic-exclude" : for src.exclude make tgt.exclude
  "Group.characteristic-period" : for src.period make tgt.period
endgroup


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

group Group extends DomainResource
  input src : GroupR3 as source
  input tgt : Group as target


  "Group.member-entity" : for src.entity make tgt.entity
  "Group.member-period" : for src.period make tgt.period
  "Group.member-inactive" : for src.inactive make tgt.inactive

  "Group.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Group.active" : for src.active as vs make tgt.active as vt
  "Group.type" : for src.type as vs make tgt.type as vt
  "Group.actual" : for src.actual as vs make tgt.actual as vt
  "Group.code" : for src.code as vs make tgt.code as vt
  "Group.name" : for src.name as vs make tgt.name as vt
  "Group.quantity" : for src.quantity as vs make tgt.quantity as vt
  "Group.characteristic" : for src.characteristic as vs0 make tgt.characteristic as vt0 then {
    "Group.characteristic.code" : for vs0.code as vs make vt0.code as vt
    "Group.characteristic.value-CodeableConcept" : for vs0.value  : CodeableConcept as vs make vt0.value = create("CodeableConcept") as vt then CodeableConcept(vs,vt)
    "Group.characteristic.value-boolean" : for vs0.value  : boolean as vs make vt0.value = create("boolean") as vt then boolean(vs,vt)
    "Group.characteristic.value-Quantity" : for vs0.value  : Quantity as vs make vt0.value = create("Quantity") as vt then Quantity(vs,vt)
    "Group.characteristic.value-Range" : for vs0.value  : Range as vs make vt0.value = create("Range") as vt then Range(vs,vt)
    "Group.characteristic.exclude" : for vs0.exclude as vs make vt0.exclude as vt
    "Group.characteristic.period" : for vs0.period as vs make vt0.period as vt
  }
  "Group.member" : for src.member as vs0 make tgt.member as vt0 then {
    "Group.member.entity" : for vs0.entity as vs make vt0.entity as vt
    "Group.member.period" : for vs0.period as vs make vt0.period as vt
    "Group.member.inactive" : for vs0.inactive as vs make vt0.inactive as vt
  }

endgroup




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

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



uses "http://hl7.org/fhir/StructureDefinition/Group" alias Group as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Group" alias GroupR2 as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/Group" alias GroupR3 as target


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

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


group for type+types  Group extends DomainResource
  input src : Group as source
  input tgt : GroupR2 as target


  "Group-identifier" : for src.identifier make tgt.identifier
  "Group-type" : for src.type make tgt.type
  "Group-actual" : for src.actual make tgt.actual
  "Group-code" : for src.code make tgt.code
  "Group-name" : for src.name make tgt.name
  "Group-quantity" : for src.quantity make tgt.quantity
  "Group-characteristic" : for src.characteristic as vs0 make tgt.characteristic as vt0 then grpCharacteristic(vs0, vt0)
  "Group-member" : for src.member as vs0 make tgt.member as vt0 then grpMember(vs0, vt0)
endgroup

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


  "Group.characteristic-code" : for src.code make tgt.code
  "Group.characteristic-value" : for src.value make tgt.value 
  "Group.characteristic-exclude" : for src.exclude make tgt.exclude
  "Group.characteristic-period" : for src.period make tgt.period
endgroup

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

group Group extends DomainResource
  input src : Group as source
  input tgt : GroupR3 as target


  "Group.member-entity" : for src.entity make tgt.entity
  "Group.member-period" : for src.period make tgt.period
  "Group.member-inactive" : for src.inactive make tgt.inactive

  "Group.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Group.active" : for src.active as vs make tgt.active as vt
  "Group.type" : for src.type as vs make tgt.type as vt
  "Group.actual" : for src.actual as vs make tgt.actual as vt
  "Group.code" : for src.code as vs make tgt.code as vt
  "Group.name" : for src.name as vs make tgt.name as vt
  "Group.quantity" : for src.quantity as vs make tgt.quantity as vt
  "Group.characteristic" : for src.characteristic as vs0 make tgt.characteristic as vt0 then {
    "Group.characteristic.code" : for vs0.code as vs make vt0.code as vt
    "Group.characteristic.value-CodeableConcept" : for vs0.value  : CodeableConcept as vs make vt0.value = create("CodeableConcept") as vt then CodeableConcept(vs,vt)
    "Group.characteristic.value-boolean" : for vs0.value  : boolean as vs make vt0.value = create("boolean") as vt then boolean(vs,vt)
    "Group.characteristic.value-Quantity" : for vs0.value  : Quantity as vs make vt0.value = create("Quantity") as vt then Quantity(vs,vt)
    "Group.characteristic.value-Range" : for vs0.value  : Range as vs make vt0.value = create("Range") as vt then Range(vs,vt)
    "Group.characteristic.exclude" : for vs0.exclude as vs make vt0.exclude as vt
    "Group.characteristic.period" : for vs0.period as vs make vt0.period as vt
  }
  "Group.member" : for src.member as vs0 make tgt.member as vt0 then {
    "Group.member.entity" : for vs0.entity as vs make vt0.entity as vt
    "Group.member.period" : for vs0.period as vs make vt0.period as vt
    "Group.member.inactive" : for vs0.inactive as vs make vt0.inactive as vt
  }

endgroup