FHIR Extensions Pack v5.1.0-cibuild (2024-02-16)

FHIR Extensions Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 5.1.0-cibuild built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-extensions/ and changes regularly. See the Directory of published versions

Orders and Observations Work GroupMaturity Level: N/AStandards Status: InformativeSecurity Category: N/A Compartments: N/A

Following are maps for converting between the equivalent R4B resource and this R5 resource.

Maps to SpecimenDefinition

FML Conversion for SpecimenDefinition: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SpecimenDefinition5to4'
/// name = 'SpecimenDefinition5to4'
/// title = 'FML Conversion for SpecimenDefinition: R5 to R4'
/// status = 'active'

conceptmap "PublicationStatus" {
  prefix s = "http://hl7.org/fhir/publication-status"
  prefix t = "http://hl7.org/fhir/4.0/publication-status"

  s:draft - t:draft
  s:active - t:active
  s:retired - t:retired
  s:unknown - t:unknown
}

conceptmap "SpecimenContainedPreference" {
  prefix s = "http://hl7.org/fhir/specimen-contained-preference"
  prefix t = "http://hl7.org/fhir/4.0/specimen-contained-preference"

  s:preferred - t:preferred
  s:alternate - t:alternate
}

uses "http://hl7.org/fhir/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR4 as target

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

group SpecimenDefinition(source src : SpecimenDefinitionR5, target tgt : SpecimenDefinitionR4) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier; // src.url -> tgt.url;
  src.typeCollected -> tgt.typeCollected; // src.version -> tgt.version;
  src.patientPreparation -> tgt.patientPreparation;
  src.timeAspect -> tgt.timeAspect;
  src.collection -> tgt.collection;
  src.typeTested as s -> tgt.typeTested as t then SpecimenDefinitionTypeTested(s, t);
}

group SpecimenDefinitionTypeTested(source src, target tgt) extends BackboneElement {
  src.isDerived -> tgt.isDerived;
  src.type -> tgt.type;
  src.preference as v -> tgt.preference = translate(v, '#SpecimenContainedPreference', 'code');
  src.container as s -> tgt.container as t then SpecimenDefinitionTypeTestedContainer(s, t);
  src.requirement -> tgt.requirement;
  src.retentionTime -> tgt.retentionTime;
  src.rejectionCriterion -> tgt.rejectionCriterion; // src.singleUse -> tgt.singleUse;
  src.handling as s -> tgt.handling as t then SpecimenDefinitionTypeTestedHandling(s, t);
}

group SpecimenDefinitionTypeTestedContainer(source src, target tgt) extends BackboneElement {
  src.material -> tgt.material;
  src.type -> tgt.type;
  src.cap -> tgt.cap;
  src.description -> tgt.description;
  src.capacity -> tgt.capacity;
  src.minimumVolume : Quantity -> tgt.minimumVolume;
  src.minimumVolume : string -> tgt.minimumVolume;
  src.additive as s -> tgt.additive as t then SpecimenDefinitionTypeTestedContainerAdditive(s, t);
  src.preparation -> tgt.preparation;
}

group SpecimenDefinitionTypeTestedContainerAdditive(source src, target tgt) extends BackboneElement {
  src.additive : CodeableConcept -> tgt.additive;
  src.additive : Reference -> tgt.additive;
}

group SpecimenDefinitionTypeTestedHandling(source src, target tgt) extends BackboneElement {
  src.temperatureQualifier -> tgt.temperatureQualifier;
  src.temperatureRange -> tgt.temperatureRange;
  src.maxDuration -> tgt.maxDuration;
  src.instruction -> tgt.instruction;
}

FML Conversion for SpecimenDefinition: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SpecimenDefinition5to4B'
/// name = 'SpecimenDefinition5to4B'
/// title = 'FML Conversion for SpecimenDefinition: R5 to R4B'
/// status = 'active'

conceptmap "PublicationStatus" {
  prefix s = "http://hl7.org/fhir/publication-status"
  prefix t = "http://hl7.org/fhir/4.3/publication-status"

  s:draft - t:draft
  s:active - t:active
  s:retired - t:retired
  s:unknown - t:unknown
}

conceptmap "SpecimenContainedPreference" {
  prefix s = "http://hl7.org/fhir/specimen-contained-preference"
  prefix t = "http://hl7.org/fhir/4.3/specimen-contained-preference"

  s:preferred - t:preferred
  s:alternate - t:alternate
}

uses "http://hl7.org/fhir/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group SpecimenDefinition(source src : SpecimenDefinitionR5, target tgt : SpecimenDefinitionR4B) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier; // src.url -> tgt.url;
  src.typeCollected -> tgt.typeCollected; // src.version -> tgt.version;
  src.patientPreparation -> tgt.patientPreparation;
  src.timeAspect -> tgt.timeAspect;
  src.collection -> tgt.collection;
  src.typeTested as s -> tgt.typeTested as t then SpecimenDefinitionTypeTested(s, t);
}

group SpecimenDefinitionTypeTested(source src, target tgt) extends BackboneElement {
  src.isDerived -> tgt.isDerived;
  src.type -> tgt.type;
  src.preference as v -> tgt.preference = translate(v, '#SpecimenContainedPreference', 'code');
  src.container as s -> tgt.container as t then SpecimenDefinitionTypeTestedContainer(s, t);
  src.requirement -> tgt.requirement;
  src.retentionTime -> tgt.retentionTime;
  src.rejectionCriterion -> tgt.rejectionCriterion; // src.singleUse -> tgt.singleUse;
  src.handling as s -> tgt.handling as t then SpecimenDefinitionTypeTestedHandling(s, t);
}

group SpecimenDefinitionTypeTestedContainer(source src, target tgt) extends BackboneElement {
  src.material -> tgt.material;
  src.type -> tgt.type;
  src.cap -> tgt.cap;
  src.description -> tgt.description;
  src.capacity -> tgt.capacity;
  src.minimumVolume : Quantity -> tgt.minimumVolume;
  src.minimumVolume : string -> tgt.minimumVolume;
  src.additive as s -> tgt.additive as t then SpecimenDefinitionTypeTestedContainerAdditive(s, t);
  src.preparation -> tgt.preparation;
}

group SpecimenDefinitionTypeTestedContainerAdditive(source src, target tgt) extends BackboneElement {
  src.additive : CodeableConcept -> tgt.additive;
  src.additive : Reference -> tgt.additive;
}

group SpecimenDefinitionTypeTestedHandling(source src, target tgt) extends BackboneElement {
  src.temperatureQualifier -> tgt.temperatureQualifier;
  src.temperatureRange -> tgt.temperatureRange;
  src.maxDuration -> tgt.maxDuration;
  src.instruction -> tgt.instruction;
}

Maps from SpecimenDefinition

FML Conversion for SpecimenDefinition: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SpecimenDefinition4Bto5'
/// name = 'SpecimenDefinition4Bto5'
/// title = 'FML Conversion for SpecimenDefinition: R4B to R5'
/// status = 'active'

conceptmap "PublicationStatus" {
  prefix s = "http://hl7.org/fhir/4.3/publication-status"
  prefix t = "http://hl7.org/fhir/publication-status"

  s:draft - t:draft
  s:active - t:active
  s:retired - t:retired
  s:unknown - t:unknown
}

conceptmap "SpecimenContainedPreference" {
  prefix s = "http://hl7.org/fhir/4.3/specimen-contained-preference"
  prefix t = "http://hl7.org/fhir/specimen-contained-preference"

  s:preferred - t:preferred
  s:alternate - t:alternate
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR4B as source
uses "http://hl7.org/fhir/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR5 as target

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

group SpecimenDefinition(source src : SpecimenDefinitionR4B, target tgt : SpecimenDefinitionR5) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier; // src.url -> tgt.url;
  src.typeCollected -> tgt.typeCollected; // src.version -> tgt.version;
  src.patientPreparation -> tgt.patientPreparation;
  src.timeAspect -> tgt.timeAspect;
  src.collection -> tgt.collection;
  src.typeTested as s -> tgt.typeTested as t then SpecimenDefinitionTypeTested(s, t);
}

group SpecimenDefinitionTypeTested(source src, target tgt) extends BackboneElement {
  src.isDerived -> tgt.isDerived;
  src.type -> tgt.type;
  src.preference as v -> tgt.preference = translate(v, '#SpecimenContainedPreference', 'code');
  src.container as s -> tgt.container as t then SpecimenDefinitionTypeTestedContainer(s, t);
  src.requirement -> tgt.requirement;
  src.retentionTime -> tgt.retentionTime;
  src.rejectionCriterion -> tgt.rejectionCriterion; // src.singleUse -> tgt.singleUse;
  src.handling as s -> tgt.handling as t then SpecimenDefinitionTypeTestedHandling(s, t);
}

group SpecimenDefinitionTypeTestedContainer(source src, target tgt) extends BackboneElement {
  src.material -> tgt.material;
  src.type -> tgt.type;
  src.cap -> tgt.cap;
  src.description -> tgt.description;
  src.capacity -> tgt.capacity;
  src.minimumVolume : Quantity -> tgt.minimumVolume;
  src.minimumVolume : string -> tgt.minimumVolume;
  src.additive as s -> tgt.additive as t then SpecimenDefinitionTypeTestedContainerAdditive(s, t);
  src.preparation -> tgt.preparation;
}

group SpecimenDefinitionTypeTestedContainerAdditive(source src, target tgt) extends BackboneElement {
  src.additive : CodeableConcept -> tgt.additive;
  src.additive : Reference -> tgt.additive;
}

group SpecimenDefinitionTypeTestedHandling(source src, target tgt) extends BackboneElement {
  src.temperatureQualifier -> tgt.temperatureQualifier;
  src.temperatureRange -> tgt.temperatureRange;
  src.maxDuration -> tgt.maxDuration;
  src.instruction -> tgt.instruction;
}

FML Conversion for SpecimenDefinition: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SpecimenDefinition4to5'
/// name = 'SpecimenDefinition4to5'
/// title = 'FML Conversion for SpecimenDefinition: R4 to R5'
/// status = 'active'

conceptmap "PublicationStatus" {
  prefix s = "http://hl7.org/fhir/4.0/publication-status"
  prefix t = "http://hl7.org/fhir/publication-status"

  s:draft - t:draft
  s:active - t:active
  s:retired - t:retired
  s:unknown - t:unknown
}

conceptmap "SpecimenContainedPreference" {
  prefix s = "http://hl7.org/fhir/4.0/specimen-contained-preference"
  prefix t = "http://hl7.org/fhir/specimen-contained-preference"

  s:preferred - t:preferred
  s:alternate - t:alternate
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR4 as source
uses "http://hl7.org/fhir/StructureDefinition/SpecimenDefinition" alias SpecimenDefinitionR5 as target

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

group SpecimenDefinition(source src : SpecimenDefinitionR4, target tgt : SpecimenDefinitionR5) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier; // src.url -> tgt.url;
  src.typeCollected -> tgt.typeCollected; // src.version -> tgt.version;
  src.patientPreparation -> tgt.patientPreparation;
  src.timeAspect -> tgt.timeAspect;
  src.collection -> tgt.collection;
  src.typeTested as s -> tgt.typeTested as t then SpecimenDefinitionTypeTested(s, t);
}

group SpecimenDefinitionTypeTested(source src, target tgt) extends BackboneElement {
  src.isDerived -> tgt.isDerived;
  src.type -> tgt.type;
  src.preference as v -> tgt.preference = translate(v, '#SpecimenContainedPreference', 'code');
  src.container as s -> tgt.container as t then SpecimenDefinitionTypeTestedContainer(s, t);
  src.requirement -> tgt.requirement;
  src.retentionTime -> tgt.retentionTime;
  src.rejectionCriterion -> tgt.rejectionCriterion; // src.singleUse -> tgt.singleUse;
  src.handling as s -> tgt.handling as t then SpecimenDefinitionTypeTestedHandling(s, t);
}

group SpecimenDefinitionTypeTestedContainer(source src, target tgt) extends BackboneElement {
  src.material -> tgt.material;
  src.type -> tgt.type;
  src.cap -> tgt.cap;
  src.description -> tgt.description;
  src.capacity -> tgt.capacity;
  src.minimumVolume : Quantity -> tgt.minimumVolume;
  src.minimumVolume : string -> tgt.minimumVolume;
  src.additive as s -> tgt.additive as t then SpecimenDefinitionTypeTestedContainerAdditive(s, t);
  src.preparation -> tgt.preparation;
}

group SpecimenDefinitionTypeTestedContainerAdditive(source src, target tgt) extends BackboneElement {
  src.additive : CodeableConcept -> tgt.additive;
  src.additive : Reference -> tgt.additive;
}

group SpecimenDefinitionTypeTestedHandling(source src, target tgt) extends BackboneElement {
  src.temperatureQualifier -> tgt.temperatureQualifier;
  src.temperatureRange -> tgt.temperatureRange;
  src.maxDuration -> tgt.maxDuration;
  src.instruction -> tgt.instruction;
}