FHIR Release 3 (STU) R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.0.2: STU 3). (v3.5.0: R4 Ballot #2). 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

Patient Care Work Group Maturity Level : N/A Ballot Status : Informative Compartments : Encounter , Patient , Practitioner , RelatedPerson

R2 : R3 Converson : R4 Conversion maps for Procedure.

Functional status for this map: 9 15 tests that all of which 15 fail to execute ok. All tests pass round-trip testing and all r3 resources are valid. . ( see documentation)

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

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


uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Procedure" alias ProcedureR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Procedure" alias Procedure as target


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

uses "http://hl7.org/fhir/3.0/StructureDefinition/Procedure" alias ProcedureR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Procedure" alias Procedure as target


group for type+types  Procedure extends DomainResource
  input src : ProcedureR2 as source

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



group Procedure extends DomainResource
  input src : ProcedureR3 as source

  input tgt : Procedure as target

  "Procedure-identifier" : for src.identifier make tgt.identifier
  "Procedure-subject" : for src.subject make tgt.subject
  "Procedure-status" : for src.status make tgt.status
  "Procedure-category" : for src.category make tgt.category
  "Procedure-code" : for src.code make tgt.code
  "Procedure-notPerformed" : for src.notPerformed make tgt.notDone
  "Procedure-reasonNotPerformed" : for src.reasonNotPerformed make tgt.notDoneReason
  "Procedure-bodySite" : for src.bodySite make tgt.bodySite
  "Procedure-reasonCode" : for src.reason where $this is CodeableConcept make tgt.reasonCode
  "Procedure-reasonReference" : for src.reason where $this is Reference make tgt.reasonReference
  "Procedure-performed" : for src.performed make tgt.performed 
  "Procedure-performer" : for src.performer as vs0 make tgt.performer as vt0 then prcPerformer(vs0, vt0)
  "Procedure-encounter" : for src.encounter make tgt.context
  "Procedure-location" : for src.location make tgt.location
  "Procedure-outcome" : for src.outcome make tgt.outcome
  "Procedure-report" : for src.report make tgt.report
  "Procedure-complication" : for src.complication make tgt.complication
  "Procedure-followUp" : for src.followUp make tgt.followUp
  "Procedure-request" : for src.request make tgt.basedOn
  "Procedure-notes" : for src.notes make tgt.note
  "Procedure-focalDevice" : for src.focalDevice as vs0 make tgt.focalDevice as vt0 then prcFocalDevice(vs0, vt0)
  "Procedure-used" : for src.used make tgt.usedReference

  "Procedure.identifier": for src.identifier make tgt.identifier
  "Procedure.instantiatesCanonical": for src.instantiatesCanonical make tgt.instantiatesCanonical
  "Procedure.instantiatesUri": for src.instantiatesUri make tgt.instantiatesUri
  "Procedure.basedOn": for src.basedOn make tgt.basedOn
  "Procedure.partOf": for src.partOf make tgt.partOf
  "Procedure.status": for src.status make tgt.status
  "Procedure.statusReason": for src.statusReason make tgt.statusReason
  "Procedure.category": for src.category make tgt.category
  "Procedure.code": for src.code make tgt.code
  "Procedure.subject": for src.subject make tgt.subject
  "Procedure.context": for src.context make tgt.context
  "Procedure.performed": for src.performed make tgt.performed
  "Procedure.recorder": for src.recorder make tgt.recorder
  "Procedure.asserter": for src.asserter make tgt.asserter
  "Procedure.performer": for src.performer as s make tgt.performer as t then ProcedurePerformer(s,t)
  "Procedure.location": for src.location make tgt.location
  "Procedure.reasonCode": for src.reasonCode make tgt.reasonCode
  "Procedure.reasonReference": for src.reasonReference make tgt.reasonReference
  "Procedure.bodySite": for src.bodySite make tgt.bodySite
  "Procedure.outcome": for src.outcome make tgt.outcome
  "Procedure.report": for src.report make tgt.report
  "Procedure.complication": for src.complication make tgt.complication
  "Procedure.complicationDetail": for src.complicationDetail make tgt.complicationDetail
  "Procedure.followUp": for src.followUp make tgt.followUp
  "Procedure.note": for src.note make tgt.note
  "Procedure.focalDevice": for src.focalDevice as s make tgt.focalDevice as t then ProcedureFocalDevice(s,t)
  "Procedure.usedReference": for src.usedReference make tgt.usedReference
  "Procedure.usedCode": for src.usedCode make tgt.usedCode

endgroup

group prcPerformer extends BackboneElement
  input src : Procedure as source
  input tgt : ProcedureR2 as target


  "Procedure.performer-actor" : for src.actor make tgt.actor 
  "Procedure.performer-role" : for src.role make tgt.role 

group ProcedurePerformer extends BackboneElement
  input src : ProcedureR3 as source
  input tgt : Procedure as target

  "Procedure.performer.function": for src.function make tgt.function
  "Procedure.performer.actor": for src.actor make tgt.actor
  "Procedure.performer.onBehalfOf": for src.onBehalfOf make tgt.onBehalfOf

endgroup

group prcFocalDevice extends BackboneElement
  input src : Procedure as source
  input tgt : ProcedureR2 as target


  "Procedure.focalDevice-action" : for src.action make tgt.action
  "Procedure.focalDevice-manipulated" : for src.manipulated make tgt.manipulated

group ProcedureFocalDevice extends BackboneElement
  input src : ProcedureR3 as source
  input tgt : Procedure as target

  "Procedure.focalDevice.action": for src.action make tgt.action
  "Procedure.focalDevice.manipulated": for src.manipulated make tgt.manipulated

endgroup


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

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


uses "http://hl7.org/fhir/StructureDefinition/Procedure" alias  Procedure as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Procedure" alias  ProcedureR2 as target


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

uses "http://hl7.org/fhir/StructureDefinition/Procedure" alias Procedure as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Procedure" alias ProcedureR3 as target


group for type+types  Procedure extends DomainResource
  input src : Procedure as source
  input tgt : ProcedureR2 as target

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


  "Procedure-identifier" : for src.identifier make tgt.identifier
  "Procedure-subject" : for src.subject make tgt.subject
  "Procedure-status" : for src.status make tgt.status
  "Procedure-category" : for src.category make tgt.category
  "Procedure-code" : for src.code make tgt.code
  "Procedure-notPerformed" : for src.notDone make tgt.notPerformed
  "Procedure-reasonNotPerformed" : for src.notDoneReason make tgt.reasonNotPerformed
  "Procedure-bodySite" : for src.bodySite make tgt.bodySite
  "Procedure-reasonCode" : for src.reasonCode make tgt.reason
  "Procedure-reasonReference" : for src.reasonReference make tgt.reason
  "Procedure-performed" : for src.performed make tgt.performed 
  "Procedure-performer" : for src.performer as vs0 make tgt.performer as vt0 then prcPerformer(vs0, vt0)
  "Procedure-encounter" : for src.context make tgt.encounter
  "Procedure-location" : for src.location make tgt.location
  "Procedure-outcome" : for src.outcome make tgt.outcome
  "Procedure-report" : for src.report make tgt.report
  "Procedure-complication" : for src.complication make tgt.complication
  "Procedure-followUp" : for src.followUp make tgt.followUp
  "Procedure-request" : for src.basedOn make tgt.request
  "Procedure-notes" : for src.note make tgt.notes
  "Procedure-focalDevice" : for src.focalDevice as vs0 make tgt.focalDevice as vt0 then prcFocalDevice(vs0, vt0)
  "Procedure-used" : for src.usedReference make tgt.used
endgroup


group prcPerformer extends BackboneElement
  input src : Procedure as source
  input tgt : ProcedureR2 as target


  "Procedure.performer-actor" : for src.actor make tgt.actor 
  "Procedure.performer-role" : for src.role make tgt.role 

group Procedure extends DomainResource
  input src : ProcedureR3 as source
  input tgt : Procedure as target

  "Procedure.identifier": for src.identifier make tgt.identifier
  "Procedure.instantiatesCanonical": for src.instantiatesCanonical make tgt.instantiatesCanonical
  "Procedure.instantiatesUri": for src.instantiatesUri make tgt.instantiatesUri
  "Procedure.basedOn": for src.basedOn make tgt.basedOn
  "Procedure.partOf": for src.partOf make tgt.partOf
  "Procedure.status": for src.status make tgt.status
  "Procedure.statusReason": for src.statusReason make tgt.statusReason
  "Procedure.category": for src.category make tgt.category
  "Procedure.code": for src.code make tgt.code
  "Procedure.subject": for src.subject make tgt.subject
  "Procedure.context": for src.context make tgt.context
  "Procedure.performed": for src.performed make tgt.performed
  "Procedure.recorder": for src.recorder make tgt.recorder
  "Procedure.asserter": for src.asserter make tgt.asserter
  "Procedure.performer": for src.performer as s make tgt.performer as t then ProcedurePerformer(s,t)
  "Procedure.location": for src.location make tgt.location
  "Procedure.reasonCode": for src.reasonCode make tgt.reasonCode
  "Procedure.reasonReference": for src.reasonReference make tgt.reasonReference
  "Procedure.bodySite": for src.bodySite make tgt.bodySite
  "Procedure.outcome": for src.outcome make tgt.outcome
  "Procedure.report": for src.report make tgt.report
  "Procedure.complication": for src.complication make tgt.complication
  "Procedure.complicationDetail": for src.complicationDetail make tgt.complicationDetail
  "Procedure.followUp": for src.followUp make tgt.followUp
  "Procedure.note": for src.note make tgt.note
  "Procedure.focalDevice": for src.focalDevice as s make tgt.focalDevice as t then ProcedureFocalDevice(s,t)
  "Procedure.usedReference": for src.usedReference make tgt.usedReference
  "Procedure.usedCode": for src.usedCode make tgt.usedCode

endgroup

group prcFocalDevice extends BackboneElement
  input src : Procedure as source
  input tgt : ProcedureR2 as target

group ProcedurePerformer extends BackboneElement
  input src : ProcedureR3 as source
  input tgt : Procedure as target


  "Procedure.focalDevice-action" : for src.action make tgt.action
  "Procedure.focalDevice-manipulated" : for src.manipulated make tgt.manipulated

  "Procedure.performer.function": for src.function make tgt.function
  "Procedure.performer.actor": for src.actor make tgt.actor
  "Procedure.performer.onBehalfOf": for src.onBehalfOf make tgt.onBehalfOf

endgroup

group ProcedureFocalDevice extends BackboneElement
  input src : ProcedureR3 as source
  input tgt : Procedure as target

  "Procedure.focalDevice.action": for src.action make tgt.action
  "Procedure.focalDevice.manipulated": for src.manipulated make tgt.manipulated
endgroup