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 in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for Condition: R4 to R5

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

FMLConversionforConditionR4toR5

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

uses "http://hl7.org/fhir/4.0/StructureDefinition/Condition" alias ConditionR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Condition" alias ConditionR5 as target

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

group Condition(source src : ConditionR4, target tgt : ConditionR5) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.clinicalStatus -> tgt.clinicalStatus;
  src.verificationStatus -> tgt.verificationStatus;
  src.category -> tgt.category;
  src.severity -> tgt.severity;
  src.code -> tgt.code;
  src.bodySite -> tgt.bodySite;
  src.subject -> tgt.subject;
  src.encounter -> tgt.encounter;
  src.onset : dateTime -> tgt.onset;
  src.onset : Age -> tgt.onset;
  src.onset : Period -> tgt.onset;
  src.onset : Range -> tgt.onset;
  src.onset : string -> tgt.onset;
  src.abatement : dateTime -> tgt.abatement;
  src.abatement : Age -> tgt.abatement;
  src.abatement : Period -> tgt.abatement;
  src.abatement : Range -> tgt.abatement;
  src.abatement : string -> tgt.abatement;
  src.recordedDate -> tgt.recordedDate;
  src.recorder as s -> tgt.participant as t then ConditionRecorder(s, t);
  src.asserter as s -> tgt.participant as t then ConditionAsserter(s, t);
  src.stage as s -> tgt.stage as t then ConditionStage(s, t);
  src.evidence as s -> tgt then {
    s.code : CodeableConcept as c -> tgt.evidence;
    s.detail : Reference as d -> tgt.evidence;
  };
  src.note -> tgt.note;
}

group ConditionStage(source src, target tgt) extends BackboneElement {
  src.summary -> tgt.summary;
  src.assessment -> tgt.assessment;
  src.type -> tgt.type;
}

group ConditionRecorder(source src, target tgt) extends BackboneElement {
  src.reference as v ->  tgt.function = create('CodeableConcept') as t,  t.coding = create('Coding') as tc,  tc.system = 'http://terminology.hl7.org/CodeSystem/provenance-participant-type',  tc.code = 'enterer',  tc.display = 'Enterer';
  src : Reference as v -> tgt.actor = v "reference";
}

group ConditionAsserter(source src, target tgt) extends BackboneElement {
  src.reference as v ->  tgt.function = create('CodeableConcept') as t,  t.coding = create('Coding') as tc,  tc.system = 'http://terminology.hl7.org/CodeSystem/provenance-participant-type',  tc.code = 'author',  tc.display = 'Author';
  src : Reference as v -> tgt.actor = v "reference";
}