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 Condition.

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

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

conceptmap "ConditionClinicalStatus" {
  prefix s = "http://hl7.org/fhir/devicestatus"
  prefix t = "http://hl7.org/fhir/devicestatus"

  s:available	 = t:active 
  s:inactive = t:"not-available"
  s:"entered-in-error" = t:"entered-in-error"
}

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



uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Condition" alias ConditionR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Condition" alias Condition as target

uses "http://hl7.org/fhir/3.0/StructureDefinition/Condition" alias ConditionR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Condition" alias Condition as target


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

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


group for type+types  Condition extends DomainResource
  input src : ConditionR2 as source
  input tgt : Condition as target


  "Condition-identifier" : for src.identifier make tgt.identifier
  "Condition-patient" : for src.patient make tgt.subject
  "Condition-encounter" : for src.encounter make tgt.context
  "Condition-asserter" : for src.asserter make tgt.asserter
  "Condition-dateRecorded" : for src.dateRecorded make tgt.assertedDate
  "Condition-code" : for src.code make tgt.code
  "Condition-category" : for src.category make tgt.category
  "Condition-clinicalStatus" : for src.clinicalStatus as v make tgt.clinicalStatus = translate(v, "#ConditionClinicalStatus", "code")
  "Condition-verificationStatus" : for src.verificationStatus make tgt.verificationStatus
  "Condition-severity" : for src.severity make tgt.severity
  "Condition-onset" : for src.onset make tgt.onset
  "Condition-abatement" : for src.abatement make tgt.abatement
  "Condition-stage" : for src.stage as vs0 make tgt.stage as vt0 then cndStage(vs0, vt0)
  "Condition-evidence" : for src.evidence as vs0 make tgt.evidence as vt0 then cndEvidence(vs0, vt0)
  "Condition-bodySite" : for src.bodySite make tgt.bodySite
  "Condition-notes" : for src.notes as v make tgt.note as n, n.text = v
endgroup


group cndStage extends BackboneElement
  input src : ConditionR2 as source

group Condition extends DomainResource
  input src : ConditionR3 as source

  input tgt : Condition as target

  "Condition.stage-summary" : for src.summary make tgt.summary
  "Condition.stage-assessment" : for src.assessment make tgt.assessment

  "Condition.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Condition.clinicalStatus" : for src.clinicalStatus as vs make tgt.clinicalStatus as vt
  "Condition.verificationStatus" : for src.verificationStatus as vs make tgt.verificationStatus as vt
  "Condition.category" : for src.category as vs make tgt.category as vt
  "Condition.severity" : for src.severity as vs make tgt.severity as vt
  "Condition.code" : for src.code as vs make tgt.code as vt
  "Condition.bodySite" : for src.bodySite as vs make tgt.bodySite as vt
  "Condition.subject" : for src.subject as vs make tgt.subject as vt
  "Condition.context" : for src.context as vs make tgt.context as vt
  "Condition.onset-dateTime" : for src.onset  : dateTime as vs make tgt.onset = create("dateTime") as vt then dateTime(vs,vt)
  "Condition.onset-Age" : for src.onset  : Age as vs make tgt.onset = create("Age") as vt then Age(vs,vt)
  "Condition.onset-Period" : for src.onset  : Period as vs make tgt.onset = create("Period") as vt then Period(vs,vt)
  "Condition.onset-Range" : for src.onset  : Range as vs make tgt.onset = create("Range") as vt then Range(vs,vt)
  "Condition.onset-string" : for src.onset  : string as vs make tgt.onset = create("string") as vt then string(vs,vt)
  "Condition.abatement-dateTime" : for src.abatement  : dateTime as vs make tgt.abatement = create("dateTime") as vt then dateTime(vs,vt)
  "Condition.abatement-Age" : for src.abatement  : Age as vs make tgt.abatement = create("Age") as vt then Age(vs,vt)
  "Condition.abatement-Period" : for src.abatement  : Period as vs make tgt.abatement = create("Period") as vt then Period(vs,vt)
  "Condition.abatement-Range" : for src.abatement  : Range as vs make tgt.abatement = create("Range") as vt then Range(vs,vt)
  "Condition.abatement-string" : for src.abatement  : string as vs make tgt.abatement = create("string") as vt then string(vs,vt)
  "Condition.recordedDate" : for src.assertedDate as vs make tgt.recordedDate as vt
  "Condition.asserter" : for src.asserter as vs make tgt.asserter as vt
  "Condition.stage" : for src.stage as vs0 make tgt.stage as vt0 then {
    "Condition.stage.summary" : for vs0.summary as vs make vt0.summary as vt
    "Condition.stage.assessment" : for vs0.assessment as vs make vt0.assessment as vt
  }
  "Condition.evidence" : for src.evidence as vs0 make tgt.evidence as vt0 then {
    "Condition.evidence.code" : for vs0.code as vs make vt0.code as vt
    "Condition.evidence.detail" : for vs0.detail as vs make vt0.detail as vt
  }
  "Condition.note" : for src.note as vs make tgt.note as vt

endgroup

group cndEvidence extends BackboneElement
  input src : ConditionR2 as source
  input tgt : Condition as target

  "Condition.evidence-code" : for src.code make tgt.code
  "Condition.evidence-detail" : for src.detail make tgt.detail
endgroup


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

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


conceptmap "ConditionClinicalStatus" {
  prefix s = "http://hl7.org/fhir/devicestatus"
  prefix t = "http://hl7.org/fhir/devicestatus"


  s:available	 = t:active 
  s:"not-available" = t:inactive
  s:"entered-in-error" = t:"entered-in-error"
}

uses "http://hl7.org/fhir/StructureDefinition/Condition" alias Condition as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Condition" alias ConditionR3 as target


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


uses "http://hl7.org/fhir/StructureDefinition/Condition" alias Condition as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Condition" alias ConditionR2 as target


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


group for type+types  Condition extends DomainResource
  input src : Condition as source
  input tgt : ConditionR2 as target

group Condition extends DomainResource
  input src : ConditionR3 as source
  input tgt : Condition as target


  "Condition-identifier" : for src.identifier make tgt.identifier
  "Condition-patient" : for src.subject make tgt.patient
  "Condition-encounter" : for src.context make tgt.encounter
  "Condition-asserter" : for src.asserter make tgt.asserter
  "Condition-dateRecorded" : for src.assertedDate make tgt.dateRecorded
  "Condition-code" : for src.code make tgt.code
  "Condition-category" : for src.category make tgt.category
  "Condition-clinicalStatus" : for src.clinicalStatus as v check $this != 'inactive' make tgt.clinicalStatus = translate(v, "#ConditionClinicalStatus", "code")
  "Condition-verificationStatus" : for src.verificationStatus make tgt.verificationStatus
  "Condition-severity" : for src.severity make tgt.severity
  "Condition-onset" : for src.onset make tgt.onset
  "Condition-abatement" : for src.abatement make tgt.abatement
  "Condition-stage" : for src.stage as vs0 make tgt.stage as vt0 then cndStage(vs0, vt0)
  "Condition-evidence" : for src.evidence as vs0 make tgt.evidence as vt0 then cndEvidence(vs0, vt0)
  "Condition-bodySite" : for src.bodySite make tgt.bodySite
  "Condition-note" : for src.note as n then {
    "Condition.notes-text" : for n.text make tgt.notes
  }
  

  "Condition.identifier": for src.identifier make tgt.identifier
  "Condition.clinicalStatus": for src.clinicalStatus make tgt.clinicalStatus
  "Condition.verificationStatus": for src.verificationStatus make tgt.verificationStatus
  "Condition.category": for src.category make tgt.category
  "Condition.severity": for src.severity make tgt.severity
  "Condition.code": for src.code make tgt.code
  "Condition.bodySite": for src.bodySite make tgt.bodySite
  "Condition.subject": for src.subject make tgt.subject
  "Condition.context": for src.context make tgt.context
  "Condition.onset": for src.onset make tgt.onset
  "Condition.abatement": for src.abatement make tgt.abatement
  "Condition.recordedDate": for src.recordedDate make tgt.recordedDate
  "Condition.recorder": for src.recorder make tgt.recorder
  "Condition.asserter": for src.asserter make tgt.asserter
  "Condition.stage": for src.stage as s make tgt.stage as t then ConditionStage(s,t)
  "Condition.evidence": for src.evidence as s make tgt.evidence as t then ConditionEvidence(s,t)
  "Condition.note": for src.note make tgt.note

endgroup

group cndStage extends BackboneElement
  input src : ConditionR2 as source

group ConditionStage extends BackboneElement
  input src : ConditionR3 as source

  input tgt : Condition as target

  "Condition.stage-summary" : for src.summary make tgt.summary
  "Condition.stage-assessment" : for src.assessment make tgt.assessment

  "Condition.stage.summary": for src.summary make tgt.summary
  "Condition.stage.assessment": for src.assessment make tgt.assessment
  "Condition.stage.type": for src.type make tgt.type

endgroup

group cndEvidence extends BackboneElement
  input src : ConditionR2 as source

group ConditionEvidence extends BackboneElement
  input src : ConditionR3 as source

  input tgt : Condition as target

  "Condition.evidence-code" : for src.code make tgt.code
  "Condition.evidence-detail" : for src.detail make tgt.detail

  "Condition.evidence.code": for src.code make tgt.code
  "Condition.evidence.detail": for src.detail make tgt.detail

endgroup

cond-uslab-example1 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) cond-uslab-example2 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) condition-example ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) example ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f001 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f002 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f003 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f201 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f202 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f203 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f204 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) f205 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) stroke ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator) example2 ERROR @ Condition: Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error [verificationStatus='entered-in-error' or clinicalStatus.exists()] (src = InstanceValidator)