FHIR Release 3 (STU) 4

This page is part of the FHIR Specification (v3.0.2: (v4.0.1: R4 - Mixed Normative and STU 3). ) in it's permanent home (it will always be available at this URL). 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 R4 R3

Orders and Observations Work Group Maturity Level : N/A Ballot Standards Status : Informative Security Category : Business Compartments : Not linked to any defined compartments

R2 : R3 Converson : R4 Conversion maps for Substance.

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

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

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Substance" alias SubstanceR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Substance" alias Substance as target

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

group for type+types  Substance extends DomainResource
  input src : SubstanceR2 as source
  input tgt : Substance as target

  "Substance-identifier" : for src.identifier make tgt.identifier
  "Substance-category" : for src.category make tgt.category
  "Substance-code" : for src.code make tgt.code
  "Substance-description" : for src.description make tgt.description
  "Substance-instance" : for src.instance as vs0 make tgt.instance as vt0 then sbsInstance(vs0, vt0)
  "Substance-ingredient" : for src.ingredient as vs0 make tgt.ingredient as vt0 then sbsIngredient(vs0, vt0) 
endgroup


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


group sbsInstance extends BackboneElement
  input src : Substance as source
  input tgt : SubstanceR2 as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/Substance" alias SubstanceR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Substance" alias Substance as target


  "Substance.instance-identifier" : for src.identifier make tgt.identifier
  "Substance.instance-expiry" : for src.expiry make tgt.expiry
  "Substance.instance-quantity" : for src.quantity make tgt.quantity
endgroup

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


group sbsIngredient extends BackboneElement
  input src : Substance as source
  input tgt : SubstanceR2 as target

group Substance(source src : SubstanceR3, target tgt : Substance) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.category -> tgt.category;
  src.code -> tgt.code;
  src.description -> tgt.description;
  src.instance as vs0 -> tgt.instance as vt0 then instance(vs0, vt0);
  src.ingredient as vs0 -> tgt.ingredient as vt0 then ingredient(vs0, vt0);
}


  "Substance.ingredient-quantity" : for src.quantity make tgt.quantity
  "Substance.ingredient-substance" : for src.substance make tgt.substance
endgroup

group instance(source src, target tgt) extends BackboneElement {
  src.identifier -> tgt.identifier;
  src.expiry -> tgt.expiry;
  src.quantity -> tgt.quantity;
}


group ingredient(source src, target tgt) extends BackboneElement {
  src.quantity -> tgt.quantity;
  src.substance : CodeableConcept as vs -> tgt.substance = create('CodeableConcept') as vt then CodeableConcept(vs, vt);
  src.substance : Reference as vs -> tgt.substance = create('Reference') as vt then Reference(vs, vt);
}



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

uses "http://hl7.org/fhir/StructureDefinition/Substance" alias Substance as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Substance" alias SubstanceR2 as target

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

group for type+types  Substance extends DomainResource
  input src : Substance as source
  input tgt : SubstanceR2 as target

  "Substance-identifier" : for src.identifier make tgt.identifier
  "Substance-category" : for src.category make tgt.category
  "Substance-code" : for src.code make tgt.code
  "Substance-description" : for src.description make tgt.description
  "Substance-instance" : for src.instance as vs0 make tgt.instance as vt0 then sbsInstance(vs0, vt0)
  "Substance-ingredient" : for src.ingredient as vs0 make tgt.ingredient as vt0 then sbsIngredient(vs0, vt0) 
endgroup


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


group sbsInstance extends BackboneElement
  input src : Substance as source
  input tgt : SubstanceR2 as target

uses "http://hl7.org/fhir/StructureDefinition/Substance" alias Substance as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Substance" alias SubstanceR3 as target


  "Substance.instance-identifier" : for src.identifier make tgt.identifier
  "Substance.instance-expiry" : for src.expiry make tgt.expiry
  "Substance.instance-quantity" : for src.quantity make tgt.quantity
endgroup

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


group sbsIngredient extends BackboneElement
  input src : Substance as source
  input tgt : SubstanceR2 as target

group Substance(source src : Substance, target tgt : SubstanceR3) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.category -> tgt.category;
  src.code -> tgt.code;
  src.description -> tgt.description;
  src.instance as vs0 -> tgt.instance as vt0 then instance(vs0, vt0);
  src.ingredient as vs0 -> tgt.ingredient as vt0 then ingredient(vs0, vt0);
}


  "Substance.ingredient-quantity" : for src.quantity make tgt.quantity
  "Substance.ingredient-substance" : for src.substance where $this is "Reference" make tgt.substance
endgroup

group instance(source src, target tgt) extends BackboneElement {
  src.identifier -> tgt.identifier;
  src.expiry -> tgt.expiry;
  src.quantity -> tgt.quantity;
}


group ingredient(source src, target tgt) extends BackboneElement {
  src.quantity -> tgt.quantity;
  src.substance : CodeableConcept as vs -> tgt.substance = create('CodeableConcept') as vt then CodeableConcept(vs, vt);
  src.substance : Reference as vs -> tgt.substance = create('Reference') as vt then Reference(vs, vt);
}



<p>No validation errors - all conversions are clean</p>