FHIR Extensions Pack
5.1.0 - 5.1.0 (April 2024) International flag

This page is part of the FHIR Core Extensions Registry (v5.1.0: Release 5.1) based on FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version. For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for AdministrableProductDefinition: R4B to R5

Official URL: http://hl7.org/fhir/StructureMap/AdministrableProductDefinition4Bto5 Version: 5.1.0
Standards status: Trial-use Maturity Level: 1 Computable Name: AdministrableProductDefinition4Bto5

FMLConversionforAdministrableProductDefinitionR4BtoR5

/// url = 'http://hl7.org/fhir/StructureMap/AdministrableProductDefinition4Bto5'
/// name = 'AdministrableProductDefinition4Bto5'
/// title = 'FML Conversion for AdministrableProductDefinition: 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
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/AdministrableProductDefinition" alias AdministrableProductDefinitionR4B as source
uses "http://hl7.org/fhir/StructureDefinition/AdministrableProductDefinition" alias AdministrableProductDefinitionR5 as target

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

group AdministrableProductDefinition(source src : AdministrableProductDefinitionR4B, target tgt : AdministrableProductDefinitionR5) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status as v -> tgt.status = translate(v, '#PublicationStatus', 'code');
  src.formOf -> tgt.formOf;
  src.administrableDoseForm -> tgt.administrableDoseForm;
  src.unitOfPresentation -> tgt.unitOfPresentation;
  src.producedFrom -> tgt.producedFrom;
  src.ingredient -> tgt.ingredient;
  src.device -> tgt.device;
  src.property as s -> tgt.property as t then AdministrableProductDefinitionProperty(s, t); // src.description -> tgt.description;
  src.routeOfAdministration as s -> tgt.routeOfAdministration as t then AdministrableProductDefinitionRouteOfAdministration(s, t);
}

group AdministrableProductDefinitionProperty(source src, target tgt) extends BackboneElement {
  src.type -> tgt.type;
  src.value : CodeableConcept -> tgt.value;
  src.value : Quantity -> tgt.value;
  src.value : date -> tgt.value;
  src.value : boolean -> tgt.value;
  src.value : Attachment -> tgt.value; // src.value : markdown -> tgt.value;
  src.status as v -> tgt.status = translate(v, '#PublicationStatus', 'code'); // src.value : Reference -> tgt.value;
}

group AdministrableProductDefinitionRouteOfAdministration(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.firstDose -> tgt.firstDose;
  src.maxSingleDose -> tgt.maxSingleDose;
  src.maxDosePerDay -> tgt.maxDosePerDay;
  src.maxDosePerTreatmentPeriod -> tgt.maxDosePerTreatmentPeriod;
  src.maxTreatmentPeriod -> tgt.maxTreatmentPeriod;
  src.targetSpecies as s -> tgt.targetSpecies as t then AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(s, t);
}

group AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(source src, target tgt) extends BackboneElement {
  src.code -> tgt.code;
  src.withdrawalPeriod as s -> tgt.withdrawalPeriod as t then RouteOfAdministrationTargetSpeciesWithdrawalPeriod(s, t);
}

group RouteOfAdministrationTargetSpeciesWithdrawalPeriod(source src, target tgt) extends BackboneElement {
  src.tissue -> tgt.tissue;
  src.value -> tgt.value;
  src.supportingInformation -> tgt.supportingInformation;
}