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 : Patient Compartments : Device , Encounter , Patient , Practitioner

R2 : R3 Converson : R4 Conversion maps for DiagnosticReport.

Functional status for this map: 11 14 tests of which 3 fail to that all execute . 8 fail ok. All tests pass round-trip testing and 3 9 r3 resources are invalid (22 (0 errors). ( see documentation)

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

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


uses "http://hl7.org/fhir/DSTU2/StructureDefinition/DiagnosticReport" alias DiagnosticReportR2 as source
uses "http://hl7.org/fhir/StructureDefinition/DiagnosticReport" alias DiagnosticReport as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/DiagnosticReport" alias DiagnosticReportR3 as source
uses "http://hl7.org/fhir/StructureDefinition/DiagnosticReport" alias DiagnosticReport as target


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

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


group for type+types  DiagnosticReport extends DomainResource
  input src : DiagnosticReportR2 as source
  input tgt : DiagnosticReport as target

group DiagnosticReport(source src : DiagnosticReportR3, target tgt : DiagnosticReport) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.basedOn -> tgt.basedOn;
  src.status -> tgt.status;
  src.category -> tgt.category;
  src.code -> tgt.code;
  src.subject -> tgt.subject;
  src.context -> tgt.encounter;
  src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt);
  src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt);
  src.issued -> tgt.issued;
  src.performer as vs0 -> tgt.performer as vt0 then performer(vs0, vt0);
  src.specimen -> tgt.specimen;
  src.result -> tgt.result;
  src.imagingStudy -> tgt.imagingStudy;
  src.image as vs0 -> tgt.media as vt0 then image(vs0, vt0);
  src.conclusion -> tgt.conclusion;
  src.codedDiagnosis -> tgt.conclusionCode;
  src.presentedForm -> tgt.presentedForm;
}


  "DiagnosticReport-identifier" : for src.identifier make tgt.identifier
  "DiagnosticReport-status" : for src.status make tgt.status
  "DiagnosticReport-category" : for src.category make tgt.category
  "DiagnosticReport-code" : for src.code make tgt.code
  "DiagnosticReport-subject" : for src.subject make tgt.subject
  "DiagnosticReport-encounter" : for src.encounter make tgt.context
  "DiagnosticReport-effective" : for src.effective make tgt.effective 
  "DiagnosticReport-issued" : for src.issued make tgt.issued
  "DiagnosticReport-performer" : for src.performer as v make tgt.performer as p, p.actor as v
  "DiagnosticReport-request" : for src.request make tgt.basedOn
  "DiagnosticReport-specimen" : for src.specimen make tgt.specimen
  "DiagnosticReport-result" : for src.result make tgt.result
  "DiagnosticReport-imagingStudy" : for src.imagingStudy make tgt.imagingStudy
  "DiagnosticReport-image" : for src.image as vs0 make tgt.image as vt0 then drpImage(vs0, vt0)
  "DiagnosticReport-conclusion" : for src.conclusion make tgt.conclusion
  "DiagnosticReport-codedDiagnosis" : for src.codedDiagnosis make tgt.codedDiagnosis
  "DiagnosticReport-presentedForm" : for src.presentedForm make tgt.presentedForm
endgroup

group performer(source src, target tgt) {
  src.actor as v then Reference(v, tgt);
  src.role as v ->  tgt.extension as vt,  vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-DiagnosticReport.performer.role',  vt.value = v;
}

group image(source src, target tgt) extends BackboneElement {
  src.comment -> tgt.comment;
  src.link -> tgt.link;
}


group drpImage extends BackboneElement
  input src as source
  input tgt as target


  "DiagnosticReport.image-comment" : for src.comment make tgt.comment
  "DiagnosticReport.image-link" : for src.link make tgt.link
endgroup

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

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


uses "http://hl7.org/fhir/StructureDefinition/DiagnosticReport" alias DiagnosticReport as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/DiagnosticReport" alias DiagnosticReportR2 as target

uses "http://hl7.org/fhir/StructureDefinition/DiagnosticReport" alias DiagnosticReport as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/DiagnosticReport" alias DiagnosticReportR3 as target


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

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


group for type+types  DiagnosticReport extends DomainResource
  input src : DiagnosticReport as source
  input tgt : DiagnosticReportR2 as target

group DiagnosticReport(source src : DiagnosticReport, target tgt : DiagnosticReportR3) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.basedOn -> tgt.basedOn;
  src.status -> tgt.status;
  src.category -> tgt.category;
  src.code -> tgt.code;
  src.subject -> tgt.subject;
  src.encounter -> tgt.context;
  src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt);
  src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt);
  src.issued -> tgt.issued;
  src.performer as vs0 -> tgt.performer as vt0 then performer(vs0, vt0);
  src.specimen -> tgt.specimen;
  src.result -> tgt.result;
  src.imagingStudy -> tgt.imagingStudy;
  src.media as vs0 -> tgt.image as vt0 then image(vs0, vt0);
  src.conclusion -> tgt.conclusion;
  src.conclusionCode -> tgt.codedDiagnosis;
  src.presentedForm -> tgt.presentedForm;
}


  "DiagnosticReport-identifier" : for src.identifier make tgt.identifier
  "DiagnosticReport-status" : for src.status make tgt.status
  "DiagnosticReport-category" : for src.category make tgt.category
  "DiagnosticReport-code" : for src.code make tgt.code
  "DiagnosticReport-subject" : for src.subject make tgt.subject
  "DiagnosticReport-encounter" : for src.context make tgt.encounter
  "DiagnosticReport-effective" : for src.effective make tgt.effective 
  "DiagnosticReport-issued" : for src.issued make tgt.issued
  "DiagnosticReport-performer" : for src.performer as v then drpPerformer(v, tgt)
  "DiagnosticReport-request" : for src.basedOn make tgt.request
  "DiagnosticReport-specimen" : for src.specimen make tgt.specimen
  "DiagnosticReport-result" : for src.result make tgt.result
  "DiagnosticReport-imagingStudy" : for src.imagingStudy make tgt.imagingStudy
  "DiagnosticReport-image" : for src.image as vs0 make tgt.image as vt0 then drpImage(vs0, vt0)
  "DiagnosticReport-conclusion" : for src.conclusion make tgt.conclusion
  "DiagnosticReport-codedDiagnosis" : for src.codedDiagnosis make tgt.codedDiagnosis
  "DiagnosticReport-presentedForm" : for src.presentedForm make tgt.presentedForm
endgroup

group performer(source src, target tgt) {
  src -> tgt.actor as vt then Reference(src, vt) "actor";
  src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-DiagnosticReport.performer.role' then {
    e.value -> tgt.role;
  };
}


group drpPerformer extends BackboneElement
  input src as source
  input tgt as target
  
  "DiagnosticReport.performer-actor" : for src.actor make tgt.performer
  
endgroup

group image(source src, target tgt) extends BackboneElement {
  src.comment -> tgt.comment;
  src.link -> tgt.link;
}


group drpImage extends BackboneElement
  input src as source
  input tgt as target


  "DiagnosticReport.image-comment" : for src.comment make tgt.comment
  "DiagnosticReport.image-link" : for src.link make tgt.link
endgroup

f001 ERROR @ DiagnosticReport.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained.status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained.intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained.extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained.extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) f202 ERROR @ DiagnosticReport.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained.status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained.intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained.code': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained.extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.code': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained.extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) micro ERROR @ DiagnosticReport.contained[26]: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained[26].status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained[26]: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained[26].intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained[26]: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.contained[26].code': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.contained[26].extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.status': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.intent': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained: Profile http://hl7.org/fhir/StructureDefinition/ProcedureRequest, Element 'DiagnosticReport.basedOn.contained.code': minimum required = 1, but only found 0 (src = InstanceValidator) ERROR @ DiagnosticReport.basedOn.contained.extension: The extension http://hl7.org/fhir/diagnosticorder-r2-marker is unknown, and not allowed here (src = InstanceValidator) <p>No validation errors - all conversions are clean</p>