FHIR Extensions Pack v5.1.0-snapshot1 (2024-03-12)

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

Patient Care 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 Condition

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

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

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

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

group Condition(source src : ConditionR5, target tgt : ConditionR4) 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.participant as s where code = 'enterer' -> tgt.recorder = s.actor "recorder";
  src.participant as s where code = 'author' -> tgt.asserter = s.actor "asserter";
  src.stage as s -> tgt.stage as t then ConditionStage(s, t);
  src.evidence as s -> tgt.evidence as t then {
    s.concept : CodeableConcept -> t.code;
    s.reference : Reference -> t.detail;
  };
  src.note -> tgt.note;
}

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

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

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

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

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

group Condition(source src : ConditionR5, target tgt : ConditionR4B) 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.participant as s where code = 'enterer' -> tgt.recorder = s.actor "recorder";
  src.participant as s where code = 'author' -> tgt.asserter = s.actor "asserter";
  src.stage as s -> tgt.stage as t then ConditionStage(s, t);
  src.evidence as s -> tgt.evidence as t then {
    s.concept : CodeableConcept -> t.code;
    s.reference : Reference -> t.detail;
  };
  src.note -> tgt.note;
}

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

Maps from Condition

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

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

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

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

group Condition(source src : ConditionR4B, 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";
}

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

/// 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";
}