R4 Ballot #2 (Mixed Normative/Trial use)

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

Orders and Observations Work GroupMaturity Level: N/ABallot Status: Informative Compartments: Device, Patient, Practitioner

R3 : R4 Conversion maps for Specimen.

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

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


uses "http://hl7.org/fhir/3.0/StructureDefinition/Specimen" alias SpecimenR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Specimen" alias Specimen as target

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



group Specimen extends DomainResource
  input src : SpecimenR3 as source
  input tgt : Specimen as target

  "Specimen.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Specimen.accessionIdentifier" : for src.accessionIdentifier as vs make tgt.accessionIdentifier as vt
  "Specimen.status" : for src.status as vs make tgt.status as vt
  "Specimen.type" : for src.type as vs make tgt.type as vt
  "Specimen.subject" : for src.subject as vs make tgt.subject as vt
  "Specimen.receivedTime" : for src.receivedTime as vs make tgt.receivedTime as vt
  "Specimen.parent" : for src.parent as vs make tgt.parent as vt
  "Specimen.request" : for src.request as vs make tgt.request as vt
  "Specimen.collection" : for src.collection as vs0 make tgt.collection as vt0 then {
    "Specimen.collection.collector" : for vs0.collector as vs make vt0.collector as vt
    "Specimen.collection.collected-dateTime" : for vs0.collected  : dateTime as vs make vt0.collected = create("dateTime") as vt then dateTime(vs,vt)
    "Specimen.collection.collected-Period" : for vs0.collected  : Period as vs make vt0.collected = create("Period") as vt then Period(vs,vt)
    "Specimen.collection.quantity" : for vs0.quantity as vs make vt0.quantity as vt
    "Specimen.collection.method" : for vs0.method as vs make vt0.method as vt
    "Specimen.collection.bodySite" : for vs0.bodySite as vs make vt0.bodySite as vt
  }
  "Specimen.processing" : for src.processing as vs0 make tgt.processing as vt0 then {
    "Specimen.processing.description" : for vs0.description as vs make vt0.description as vt
    "Specimen.processing.procedure" : for vs0.procedure as vs make vt0.procedure as vt
    "Specimen.processing.additive" : for vs0.additive as vs make vt0.additive as vt
    "Specimen.processing.time-dateTime" : for vs0.time  : dateTime as vs make vt0.time = create("dateTime") as vt then dateTime(vs,vt)
    "Specimen.processing.time-Period" : for vs0.time  : Period as vs make vt0.time = create("Period") as vt then Period(vs,vt)
  }
  "Specimen.container" : for src.container as vs0 make tgt.container as vt0 then {
    "Specimen.container.identifier" : for vs0.identifier as vs make vt0.identifier as vt
    "Specimen.container.description" : for vs0.description as vs make vt0.description as vt
    "Specimen.container.type" : for vs0.type as vs make vt0.type as vt
    "Specimen.container.capacity" : for vs0.capacity as vs make vt0.capacity as vt
    "Specimen.container.specimenQuantity" : for vs0.specimenQuantity as vs make vt0.specimenQuantity as vt
    "Specimen.container.additive-CodeableConcept" : for vs0.additive  : CodeableConcept as vs make vt0.additive = create("CodeableConcept") as vt then CodeableConcept(vs,vt)
    "Specimen.container.additive-Reference" : for vs0.additive  : Reference as vs make vt0.additive = create("Reference") as vt then Reference(vs,vt)
  }
  "Specimen.note" : for src.note as vs make tgt.note as vt
endgroup


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


uses "http://hl7.org/fhir/StructureDefinition/Specimen" alias Specimen as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Specimen" alias SpecimenR3 as target

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



group Specimen extends DomainResource
  input src : Specimen as source
  input tgt : SpecimenR3 as target

  "Specimen.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Specimen.accessionIdentifier" : for src.accessionIdentifier as vs make tgt.accessionIdentifier as vt
  "Specimen.status" : for src.status as vs make tgt.status as vt
  "Specimen.type" : for src.type as vs make tgt.type as vt
  "Specimen.subject" : for src.subject as vs make tgt.subject as vt
  "Specimen.receivedTime" : for src.receivedTime as vs make tgt.receivedTime as vt
  "Specimen.parent" : for src.parent as vs make tgt.parent as vt
  "Specimen.request" : for src.request as vs make tgt.request as vt
  "Specimen.collection" : for src.collection as vs0 make tgt.collection as vt0 then {
    "Specimen.collection.collector" : for vs0.collector as vs make vt0.collector as vt
    "Specimen.collection.collected-dateTime" : for vs0.collected  : dateTime as vs make vt0.collected = create("dateTime") as vt then dateTime(vs,vt)
    "Specimen.collection.collected-Period" : for vs0.collected  : Period as vs make vt0.collected = create("Period") as vt then Period(vs,vt)
    "Specimen.collection.quantity" : for vs0.quantity as vs make vt0.quantity as vt
    "Specimen.collection.method" : for vs0.method as vs make vt0.method as vt
    "Specimen.collection.bodySite" : for vs0.bodySite as vs make vt0.bodySite as vt
  }
  "Specimen.processing" : for src.processing as vs0 make tgt.processing as vt0 then {
    "Specimen.processing.description" : for vs0.description as vs make vt0.description as vt
    "Specimen.processing.procedure" : for vs0.procedure as vs make vt0.procedure as vt
    "Specimen.processing.additive" : for vs0.additive as vs make vt0.additive as vt
    "Specimen.processing.time-dateTime" : for vs0.time  : dateTime as vs make vt0.time = create("dateTime") as vt then dateTime(vs,vt)
    "Specimen.processing.time-Period" : for vs0.time  : Period as vs make vt0.time = create("Period") as vt then Period(vs,vt)
  }
  "Specimen.container" : for src.container as vs0 make tgt.container as vt0 then {
    "Specimen.container.identifier" : for vs0.identifier as vs make vt0.identifier as vt
    "Specimen.container.description" : for vs0.description as vs make vt0.description as vt
    "Specimen.container.type" : for vs0.type as vs make vt0.type as vt
    "Specimen.container.capacity" : for vs0.capacity as vs make vt0.capacity as vt
    "Specimen.container.specimenQuantity" : for vs0.specimenQuantity as vs make vt0.specimenQuantity as vt
    "Specimen.container.additive-CodeableConcept" : for vs0.additive  : CodeableConcept as vs make vt0.additive = create("CodeableConcept") as vt then CodeableConcept(vs,vt)
    "Specimen.container.additive-Reference" : for vs0.additive  : Reference as vs make vt0.additive = create("Reference") as vt then Reference(vs,vt)
  }
  "Specimen.note" : for src.note as vs make tgt.note as vt
endgroup