R4 Draft for Comment

This page is part of the FHIR Specification (v3.2.0: R4 Ballot 1). 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 GroupMaturity Level: N/ABallot Status: Informative Compartments: Encounter, Patient, Practitioner, RelatedPerson

R2 : R3 Conversion maps for Condition.

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

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

conceptmap "ConditionClinicalStatus" {
  prefix s = "http://hl7.org/fhir/ValueSet/condition-clinical"
  prefix t = "http://hl7.org/fhir/ValueSet/condition-clinical"

  unmapped for s = provided
  
  s:relapse	= t:recurrence
}


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

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

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
  input tgt : Condition as target

  "Condition.stage-summary" : for src.summary make tgt.summary
  "Condition.stage-assessment" : for src.assessment make tgt.assessment
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"

conceptmap "ConditionClinicalStatus" {
  prefix s = "http://hl7.org/fhir/ValueSet/condition-clinical"
  prefix t = "http://hl7.org/fhir/ValueSet/condition-clinical"

  unmapped for s = provided
  
  s:recurrence = t:relapse
}


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

  "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
  }
  
endgroup

group cndStage extends BackboneElement
  input src : ConditionR2 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
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

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)