diff --git a/FHIR-us-ccda.xml b/FHIR-us-ccda.xml
index 5d8b9b10..e8045a67 100644
--- a/FHIR-us-ccda.xml
+++ b/FHIR-us-ccda.xml
@@ -26,6 +26,7 @@
-
diff --git a/input/ignoreWarnings.txt b/input/ignoreWarnings.txt
index 83c7ddcc..2772f35b 100644
--- a/input/ignoreWarnings.txt
+++ b/input/ignoreWarnings.txt
@@ -8,34 +8,5 @@ A definition for CodeSystem 'urn:oid:2.16.840.1.113883.3.247.1.1' could not be f
Unknown Code '486' in the system%
-# LOINC Imaging Document Codes value set marked as incomplete (and also too large), but has all (6343) codes from 2022-07 release of http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.12009.10.2.5
-INFORMATION: ValueSet/1.3.6.1.4.1.12009.10.2.5: ValueSet.compose.include[0]: The value set include has too many codes to validate (6,342), so each individual code has not been checked
-INFORMATION: ValueSet.where(id = '1.3.6.1.4.1.12009.10.2.5'): The value set expansion is too large, and only a subset has been displayed
-
-
-# Draft, trial-use and external reference elements in examples prior to 2023 ballot
-Reference to draft CodeSystem http://terminology.hl7.org/CodeSystem/organization-type|0.1.0
-Reference to draft CodeSystem http://terminology.hl7.org/CodeSystem/condition-category|0.5.0
-
-
# Missing performers in examples prior to 2023 ballot
Best Practice Recommendation: In general, all observations should have a performer
-
-
-# Publisher is adding these modifier extensions - https://chat.fhir.org/#narrow/stream/179252-IG-creation/topic/Regression.20in.20ConceptMap
-The modifier extension http://hl7.org/fhir/1.0/StructureDefinition/extension-ConceptMap.element.target.equivalence from FHIR version 1.0 is not allowed to be used at this point (allowed = e:ConceptMap.element.target; this element is [[BackboneElement, ConceptMap.group.element.target]; this is a warning since contexts may be renamed between FHIR versions)
-
-
-# Publisher is not checking all SNOMED/LOINC codes in ConceptMap
-Source Code System http://snomed.info/sct doesn't have all content (content = not-present), so the source codes cannot be checked
-Target Code System http://snomed.info/sct doesn't have all content (content = not-present), so the target codes cannot be checked
-Source Code System http://loinc.org doesn't have all content (content = not-present), so the source codes cannot be checked
-Target Code System http://loinc.org doesn't have all content (content = not-present), so the target codes cannot be checked
-
-
-# Poor / Buggy Displays from AddressUse Code System
-WARNING: ConceptMap/CF-TelecomUse: ConceptMap.group[0].element[7].code: The source display 'mobile contact' for the code 'http://terminology.hl7.org/CodeSystem/v3-AddressUse|2.1.0#MC' is not valid. Possible displays: 'mobile contact)'
-
-
-# Deprecated extension is still needed in R4
-The extension http://hl7.org/fhir/StructureDefinition/composition-clinicaldocument-versionNumber|5.1.0-cibuild is deprecated
\ No newline at end of file
diff --git a/input/images/CF_allergy_example.png b/input/images/CF_allergy_example.png
deleted file mode 100644
index fa87d87c..00000000
Binary files a/input/images/CF_allergy_example.png and /dev/null differ
diff --git a/input/images/CF_immunization_example.png b/input/images/CF_immunization_example.png
deleted file mode 100644
index 2c73b52b..00000000
Binary files a/input/images/CF_immunization_example.png and /dev/null differ
diff --git a/input/images/CF_medication_example.png b/input/images/CF_medication_example.png
deleted file mode 100644
index 8b9e32a5..00000000
Binary files a/input/images/CF_medication_example.png and /dev/null differ
diff --git a/input/images/CF_patient_example.png b/input/images/CF_patient_example.png
deleted file mode 100644
index 0ffc4858..00000000
Binary files a/input/images/CF_patient_example.png and /dev/null differ
diff --git a/input/images/CF_problem_example.png b/input/images/CF_problem_example.png
deleted file mode 100644
index 82b315cd..00000000
Binary files a/input/images/CF_problem_example.png and /dev/null differ
diff --git a/input/images/CF_procedure_example.png b/input/images/CF_procedure_example.png
deleted file mode 100644
index 730ba001..00000000
Binary files a/input/images/CF_procedure_example.png and /dev/null differ
diff --git a/input/images/colors.css b/input/images/colors.css
new file mode 100644
index 00000000..43099b8d
--- /dev/null
+++ b/input/images/colors.css
@@ -0,0 +1,128 @@
+td, th {
+ border: 1px solid black!important;
+}
+
+.codeArea {
+ font-family: 'Courier New', Courier, monospace;
+ white-space: pre;
+ background: #f5f2f0; /* FHIR prism template */
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+
+.comment {
+ color: #999;
+}
+.field {
+ color: #2f6f9f;
+}
+.attrib {
+ color: #690;
+}
+.value {
+ color: #d44950;
+}
+
+mark span{
+ color: black !important;
+}
+
+.color10 {
+ background-color: #ffff00ff;
+}
+.color11 {
+ background-color: #7cfc00ff;
+}
+.color12 {
+ background-color: #00ffffff;
+}
+.color13 {
+ background-color: #ffc0cbff;
+}
+.color14 {
+ background-color: #87cefaff;
+}
+.color15 {
+ background-color: #c0c0c0ff;
+}
+.color16 {
+ background-color: #eee8aaff;
+}
+.color17 {
+ background-color: #ffa500ff;
+}
+.color18 {
+ background-color: #ffd700ff;
+}
+.color19 {
+ background-color: #9acd32ff;
+}
+.color20 {
+ background-color: #1e90ffff;
+}
+.color21 {
+ background-color: #deb887ff;
+}
+.color22{
+ background-color: #dda0ddff;
+}
+.color23 {
+ background-color: #ff6347ff;
+}
+.color24 {
+ background-color: #b8860bff;
+}
+.color25 {
+ background-color: #808080ff;
+}
+.color26 {
+ background-color: #2e8b57ff;
+}
+.color27 {
+ background-color: #4682b4ff;
+}
+.color28 {
+ background-color: #808000ff;
+}
+.color29 {
+ background-color: #5f9ea0ff;
+}
+.color30 {
+ background-color: #ba55d3ff;
+}
+.color31 {
+ background-color: #d3d3d3ff;
+}
+.color32 {
+ background-color: #d2691eff;
+}
+.color33 {
+ background-color: #ffe4c4ff;
+}
+.color34 {
+ background-color: #ff7f50ff;
+}
+.color35 {
+ background-color: #98fb98ff;
+}
+.color36 {
+ background-color: #ff00ffff;
+}
+.color37 {
+ background-color: #778899ff;
+}
+.color38 {
+ background-color: #ff4500ff;
+}
+.color39 {
+ background-color: #20b2aaff;
+}
+.color40 {
+ background-color: #9370dbff;
+}
+.color41 {
+ background-color: #ff8c00ff;
+}
+.color42 {
+ background-color: #ff0000ff;
+}
\ No newline at end of file
diff --git a/input/includes/CF_allergy_example.md b/input/includes/CF_allergy_example.md
deleted file mode 100644
index eafadde6..00000000
--- a/input/includes/CF_allergy_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/CF_immunization_example.md b/input/includes/CF_immunization_example.md
deleted file mode 100644
index 2ddc3c5c..00000000
--- a/input/includes/CF_immunization_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/CF_medication_example.md b/input/includes/CF_medication_example.md
deleted file mode 100644
index 8dfdafae..00000000
--- a/input/includes/CF_medication_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/CF_patient_example.md b/input/includes/CF_patient_example.md
deleted file mode 100644
index 8d3bd10c..00000000
--- a/input/includes/CF_patient_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/CF_problem_example.md b/input/includes/CF_problem_example.md
deleted file mode 100644
index b3e7276b..00000000
--- a/input/includes/CF_problem_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/CF_procedure_example.md b/input/includes/CF_procedure_example.md
deleted file mode 100644
index a073501a..00000000
--- a/input/includes/CF_procedure_example.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-An illustrative example with highlighting is shown above based on the consensus of mapping and guidance. Not all possible elements in CDA or FHIR may be represented. To access the content for the above example, click on the links below.
diff --git a/input/includes/examplebutton.html b/input/includes/examplebutton.html
deleted file mode 100644
index 6abd4f05..00000000
--- a/input/includes/examplebutton.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% assign target = include.example | split: "." | first %}
-{% assign file_type = include.example | split: "." | last %}
-- -
-- 2024 Publication of C-CDA ↔ FHIR US Core Mapping + 2025 Ballot of C-CDA ↔ FHIR US Core MappingThe current release of this IG adds relevant mapping content from C-CDA ↔ FHIR mapping project which was related to the original +
+ + ++ + + + + + + + + + ++ + ++ + + ++ + + ++ + + + + + + \ No newline at end of file diff --git a/input/maps/ConceptMap-CF-ResultStatus.xml b/input/maps/ConceptMap-CF-ResultStatus.xml new file mode 100644 index 00000000..b6dc6053 --- /dev/null +++ b/input/maps/ConceptMap-CF-ResultStatus.xml @@ -0,0 +1,92 @@ ++ + ++
+ + ++
+ + + ++
+ + ++
+ + + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + + ++
+ + ++
+ + + + \ No newline at end of file diff --git a/input/maps/ConceptMap-FC-ObservationStatus.xml b/input/maps/ConceptMap-FC-ObservationStatus.xml new file mode 100644 index 00000000..ba747ed9 --- /dev/null +++ b/input/maps/ConceptMap-FC-ObservationStatus.xml @@ -0,0 +1,105 @@ ++ + ++ + + + + + + + + + ++ + ++ + + ++ + + ++ + + + + + ++ + ++
+ + ++
+ + + ++
+ + ++
+ + + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + + ++
+ + ++
+ + + + \ No newline at end of file diff --git a/input/maps/ConceptMap-FC-TelecomUse.xml b/input/maps/ConceptMap-FC-TelecomUse.xml index 251452d6..1c1546dc 100644 --- a/input/maps/ConceptMap-FC-TelecomUse.xml +++ b/input/maps/ConceptMap-FC-TelecomUse.xml @@ -81,7 +81,7 @@+ + ++ + + + + + + + + + ++ + ++ + + ++ + + ++ + + + + + ++ + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++
+ + + ++
+ + ++ diff --git a/input/pagecontent/CF-allergies.md b/input/pagecontent/CF-allergies.md index 7a44eab1..bc163696 100644 --- a/input/pagecontent/CF-allergies.md +++ b/input/pagecontent/CF-allergies.md @@ -1,54 +1,189 @@ - + This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Allergies FHIR → CDA](./FC-allergies.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html) -**Uncommon use case:** Multiple C-CDA Allergy Intolerance observations inside a single Allery Concern act should map to separate and distinct FHIR AllergyIntolerance resources. The C-CDA Companion Guide ([see 5.2.7.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)) actively discourages the practice of multiple osbervations insice a single act. It may occur, however, since Allergy Concern act allows for multiple Allergy Intolerance observations in C-CDA. Lossless transformations may not be possible without the use of extensions ([see 3.1 of this guide](./mappingBackground.html)). +**Uncommon use case:** Multiple C-CDA Allergy Intolerance observations inside a single Allergy Concern act should map to separate and distinct FHIR AllergyIntolerance resources. The C-CDA Companion Guide ([see 5.2.7.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)) actively discourages the practice of multiple observations inside a single act. It may occur, however, since Allergy Concern act allows for multiple Allergy Intolerance observations in C-CDA. Lossless transformations may not be possible without the use of extensions ([see 3.1 of this guide](./mappingBackground.html)). -
+
### C-CDA to FHIR -| C-CDA¹
[Allergy Concern act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyConcernAct.html)| FHIR
[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)|Transform Steps & Notes| +| C-CDA¹
[Allergy Concern act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyConcernAct.html)| FHIR
[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)|Transform Steps & Notes| |:-------|:------|:---------| |/statusCode|.clinicalStatus|For more information on how status is managed in Allergy Concern Act wrapper, refer to [C-CDA guidance, see 5.2.7.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)
Also see Status entryRelationship mapping below| -| All of the following are a **[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyIntoleranceObservation.html)** nested inside the **[Allergy Concern act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyConcernAct.html)**. Each observation should become a distinct FHIR **[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)** resource.
Include /entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below²| +| All of the following are a **[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyIntoleranceObservation.html)** nested inside the **[Allergy Concern act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyConcernAct.html)**. Each observation should become a distinct FHIR **[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)** resource.
Include /entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below²| |/@negationInd||See constraints under /participant |/id|.identifier| [CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| |/effectiveTime/low|.onsetDateTime|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)
effectiveTime/high should not be mapped within onset (DateTime or Period)| +|/effectiveTime/high|.extension:[allergyintolerance-abatement](http://hl7.org/fhir/StructureDefinition/allergyintolerance-abatement)|| |/value|.type
&
.category|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
[CDA value → FHIR type](ConceptMap-CF-AllergyIntoleranceType.html)
[CDA value → FHIR category](./ConceptMap-CF-AllergyIntoleranceCategory.html)| -|/author|.recorder
&
**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|**Constraint:** Only map single CDA author to FHIR recorder
[Guidance on CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|/author/time|.recorded|**Constraint:** Only map earliest author/time
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|/author|.recorder
&
**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|**Constraint:** Only map last CDA author to FHIR recorder
[Guidance on CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| +|/author/time|.recordedDate|**Constraint:** Only map earliest author/time
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |/participant/participantRole/playingEntity/code|.code|**Constraint:** When CDA negation is absent or false
[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |/participant/participantRole/playingEntity/code
&
/value|.code|**Constraint:** When CDA negation is true and nullFlavor is used in playingEntity/code
[CDA No known allergy → FHIR code](ConceptMap-CF-NoKnownAllergies.html)
When negation is true and playingEntity/code is populated, use equivalent negated concept (e.g. map latex substance to no known latex allergy [1003774007, SNOMED CT]) if available. If not, use the [substanceExposureRisk extension](https://hl7.org/fhir/extensions/StructureDefinition-allergyintolerance-substanceExposureRisk.html), placing the substance in the substance sub-extension and setting the exposureRisk sub-extension to `no-known-reaction-risk`. Note that when using this extension, the AllergyIntolerance resource will not be a conformant US Core AllergyIntolerance since the extension prohibits the required .code element.| -|**[Status](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyStatusObservation.html)**
/entryRelationship/observation[code/@code="33999-4"]/value³|.clinicalStatus|[CDA Allergy Status Observation value → FHIR clinicalStatus](./ConceptMap-CF-AllergyStatus.html) -|**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**
/entryRelationship[@typeCode="MFST"]/observation/value³|.reaction.manifestation|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
Both use SNOMED clinical findings with minor valueSet definition differences -|**[Severity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-SeverityObservation.html)** (nested inside Reaction)
/entryRelationship[@typeCode="MFST"]/observation/entryRelationship/observation[code/@code="SEV"]/value³|.reaction.severity|[CDA Severity value → FHIR Severity](./ConceptMap-CF-Severity.html)
**Note:** CDA documents should not assign severity at the Allergy level.
In cases where CDA assigns severity only to the Allergy rather than the reaction, map the severity to FHIR reaction severity, even if there are more than one. This means assuming that the same severity applies to all child reactions.
If severity is assigned at both levels, the reaction level should be used. -|**[Criticality](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CriticalityObservation.html)**
/entryRelationship/observation[code/@code="82606-5"]/value³|.criticality|[CDA Criticality value → FHIR Criticality](./ConceptMap-CF-Criticality.html) -|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text³|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|| +|**[Status](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyStatusObservation.html)**
/entryRelationship/observation[code/@code="33999-4"]/value³|.clinicalStatus|[CDA Allergy Status Observation value → FHIR clinicalStatus](./ConceptMap-CF-AllergyStatus.html) +|**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**
/entryRelationship[@typeCode="MFST"]/observation/value³|.reaction.manifestation|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
Both use SNOMED clinical findings with minor valueSet definition differences +|**[Severity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SeverityObservation.html)** (nested inside Reaction)
/entryRelationship[@typeCode="MFST"]/observation/...
...entryRelationship/observation[code/@code="SEV"]/value³|.reaction.severity|[CDA Severity value → FHIR Severity](./ConceptMap-CF-Severity.html)
**Note:** CDA documents should not assign severity at the Allergy level.
In cases where CDA assigns severity only to the Allergy rather than the reaction, map the severity to FHIR reaction severity, even if there are more than one. This means assuming that the same severity applies to all child reactions.
If severity is assigned at both levels, the reaction level should be used. +|**[Criticality](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CriticalityObservation.html)**
/entryRelationship/observation[code/@code="82606-5"]/value³|.criticality|[CDA Criticality value → FHIR Criticality](./ConceptMap-CF-Criticality.html) +|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text³|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| -1\. XPath abbrievated for C-CDA Allergy Concern act as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/ +1\. XPath abbreviated for C-CDA Allergy Concern act as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/ -2\. XPath abbrievated for C-CDA Allergy Inteolerance observation as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation +2\. XPath abbreviated for C-CDA Allergy Intolerance observation as:
ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation 3\. Note that these entryRelationships will also have inversionInd="true" in CDA -When authors or other provenance are recorded in the parent [Allergy Concern Act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyConcernAct.html), it is recommended that those data be mapped to the FHIR AllergyIntolerance. +When authors or other provenance are recorded only in the parent [Allergy Concern Act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyConcernAct.html), it is recommended that those data be mapped to the FHIR AllergyIntolerance. -### Illustrative example +### Example -{% include examplebutton.html example="CF_allergy_example" b_title = "Click on Here To See Highlighted Example" %} +#### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Allergy CDA example](./Binary-CF-allergy.html) -* [Allergy FHIR example](./AllergyIntolerance-CF-allergy.html) - -### Prior work and Expanded Spreadsheets - -As reviewed in the methodology, a more comprehensive review was performed via spreadsheets. These spreadsheets have been consolidated and further revised in the tables above but are provided for [reference here](https://github.com/HL7/ccda-on-fhir/blob/master/mappings/CF/CCDA-FHIR%20Allergy.csv) \ No newline at end of file +* [Allergy FHIR example](./AllergyIntolerance-CF-allergy.html) \ No newline at end of file diff --git a/input/pagecontent/CF-encounters.md b/input/pagecontent/CF-encounters.md new file mode 100644 index 00000000..a66949fe --- /dev/null +++ b/input/pagecontent/CF-encounters.md @@ -0,0 +1,162 @@ + + +This page provides a mapping from CDA to FHIR. For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). + +Encounter Activities in the Encounters Section (or elsewhere in the document, such as `
+ CDA Allergy Act FHIR AllergyIntolerance Resource + <act classCode="ACT" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.30" extension="2015-08-01" /> + <templateId root="2.16.840.1.113883.10.20.22.4.30" /> + <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10" extension="545077400001" /> + <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10" extension="545077400003" /> + <code code="CONC" codeSystem="2.16.840.1.113883.5.6" /> + <statusCode code="active" /> + <effectiveTime xsi:type="IVL_TS"> + <low nullFlavor="NI" /> + </effectiveTime> + <entryRelationship typeCode="SUBJ"> + <observation classCode="OBS" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.7" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.7" /> + <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10.2" extension="545077400001" /> + <id root="1.3.6.1.4.1.22812.3.2009316.3.4.10.2" extension="545077400003" /> + <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> + <statusCode code="completed" /> + <effectiveTime xsi:type="IVL_TS"> + <low value="20080501" /> + </effectiveTime> + <value xsi:type="CD" + code="419511003" + codeSystem="2.16.840.1.113883.6.96"> + <originalText> + <reference value="#_6db75b62-deb2-4bab-b597-00c8ae86f6b4" /> + </originalText> + </value> + <participant typeCode="CSM"> + <participantRole classCode="MANU"> + <playingEntity classCode="MMAT"> + <code + code="1191" + codeSystem="2.16.840.1.113883.6.88" + displayName="Aspirin"> + <translation + code="293586001" + codeSystem="2.16.840.1.113883.6.96" + displayName="Allergy to Aspirin"/> + </code> + </playingEntity> + </participantRole> + </participant> + <entryRelationship typeCode="MFST" inversionInd="true"> + <observation classCode="OBS" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.9" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.9" /> + <id nullFlavor="NI" /> + <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> + <text> + <reference value="#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0" /> + </text> + <statusCode code="completed" /> + <value xsi:type="CD" + code="247472004" + codeSystem="2.16.840.1.113883.6.96" + displayName="Wheal"> + <originalText> + <reference value="#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0" /> + </originalText> + </value> + <entryRelationship typeCode="SUBJ" inversionInd="true"> + <observation classCode="OBS" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.8" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.8" /> + <code code="SEV" codeSystem="2.16.840.1.113883.5.4" /> + <text>Severe</text> + <statusCode code="completed" /> + <value xsi:type="CD" + code="24484000" + codeSystem="2.16.840.1.113883.6.96" + displayName="Severe" /> + </observation> + </entryRelationship> + </observation> + </entryRelationship> + </observation> + </entryRelationship> +</act>++ + { + "resourceType": "AllergyIntolerance", + "identifier": [ + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.10.2", + "value": "545077400001" + }, + { + "system": "urn:oid:1.3.6.1.4.1.22812.3.2009316.3.4.10.2", + "value": "545077400003" + } + ], + "clinicalStatus": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", + "code": "active" + } + ] + }, + "category": [ + "medication" + ], + "code": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1191", + "display": "Aspirin" + }, + { + "system": "http://snomed.info/sct", + "code": "293586001", + "display": "Allergy to Aspirin" + } + ], + "text": "Aspirin" + }, + "patient": { + "reference": "Patient/CF-patient" + }, + "onsetDateTime": "2008-05-01", + "reaction": [ + { + "manifestation": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "247472004", + "display": "Wheal" + } + ], + "text": "Wheal" + } + ], + "severity": "severe" + } + ] +}+` on Clinical Notes) correspond FHIR Encounter resources. If the document itself contains a `componentOf/encompassingEncounter`, this should also be converted to a FHIR Encounter resource. In all cases, when the same encounter is referenced multiple times (such as the `encompassingEncounter` and an Encounter Activity in the Encounters Section containing the same ` `), it should be converted to a single FHIR resource. + +### C-CDA Encounter to FHIR +(b) - indicates element is only present in Encounter Activity in the body of the document
(h) - indicates element is only present in EncompassingEncounter in the header of the document + +|C-CDA¹
[Encounter Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-EncounterActivity.html) or [EncompassingEncounter](https://hl7.org/cda/stds/core/2.0.0-sd-snapshot1/StructureDefinition-EncompassingEncounter.html)|FHIR
[Encounter](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-encounter.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/code |.class|Only the V3 ActCode system, which may be present in the root element or any ``.
Other code systems may map to V3 ActCode (for example CPT codes 99211-99215 map to `AMB`, 99221-99223 to `IMP`, 99281-99285 to `EMER`, etc), but if this mapping is not possible, use the [Data Absent Reason](http://hl7.org/fhir/StructureDefinition/data-absent-reason) extension.| +|/code|.type|The remaining codes besides V3 ActCode
[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/statusCode (b)|.status|[CDA → FHIR encounter status](ConceptMap-CF-EncounterStatus.html)
**Note:** statusCode is optional in C-CDA. If missing, fallback to effectiveTime mapping. +|/effectiveTime|.status|If effectiveTime is a single timestamp or contains a high, status = `"finished"`.
If low is present and high is missing, the status may be `"in-progress"` but implementers may choose to evaluate historical values as `"finished"` or `"unknown"` if appropriate. +|/effectiveTime/@value
/effectiveTime/low/@value|.period.start|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/effectiveTime/high/@value|.period.end|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/sdtc:dischargeDispositionCode (b)
/dischargeDispositionCode (h)|.hospialization.dischargeDisposition|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/performer (b)
/encounterParticipant (h)|.participant|[C-CDA → FHIR Participation](CF-participations.html) +|/performer/sdtc:functionCode (b)|.participant.type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/participant[@typeCode="LOC"] (b)
/location (h)|.location|[C-CDA → FHIR Participation](CF-participations.html) +|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)** (b)
/entryRelationship[@typeCode="RSON"]/observation|.reasonCode
or
.reasonReference|If the id of the indication references a problem in the document that has been converted to a FHIR resource, populate .reasonReference with a reference to that resource. Otherwise, map observation/value to .reasonCode.
[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|**[Encounter Diagnosis](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-EncounterDiagnosis.html)** (b)
/entryRelationship/act[code/@code="29308-4"]/observation|**[Encounter Diagnosis](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-encounter-diagnosis.html)**
&
.diagnosis.condition|The observation maps identically to [CDA → FHIR Problems](./CF-problems.html).
Since this is an encounter diagnosis, the `Observation.category` should be set to `encounter-diagnosis`. + + +### Example: Encounter + ++ +### Example: EncompassingEncounter + +
+ CDA Encounter FHIR Encounter Resource + <encounter classCode="ENC" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.49" extension="2015-08-01"/> + <templateId root="2.16.840.1.113883.10.20.22.4.49"/> + <id root="2a620155-9d11-439e-92b3-5d9815ff4de8"/> + <code code="99213" displayName="Office outpatient visit 15 minutes" + codeSystemName="CPT" codeSystem="2.16.840.1.113883.6.12" + codeSystemVersion="4"> + <originalText> + <reference value="#Encounter1_type"/> + </originalText> + </code> + <text> + <reference value="#Encounter1"/> + </text> + <effectiveTime value="201208151000-0800"/> + <!-- Maps to reference: Practitioner/62f17e2ae0231200076884d4 --> + <performer> + <assignedEntity> + ... + </assignedEntity> + </performer> + <entryRelationship typeCode="REFR"> + <act classCode="ACT" moodCode="EVN"> + <!-- Encounter Diagnosis --> + <!-- Creates reference: Condition/62f17e2aa2392d0008fbb232 --> + <templateId root="2.16.840.1.113883.10.20.22.4.80" extension="2015-08-01" /> + <templateId root="2.16.840.1.113883.10.20.22.4.80"/> + <code code="29308-4" displayName="Diagnosis" + codeSystem="2.16.840.1.113883.6.1" + codeSystemName="LOINC"/> + <entryRelationship typeCode="SUBJ"> + ... + </entryRelationship> + </act> + </entryRelationship> +</encounter>++ { + "resourceType": "Encounter", + "id": "62f17e2aa2392d0008fbb224", + "identifier": [{ + "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8", + "system": "urn:ietf:rfc:3986" + }], + "status": "finished", + "class": { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", + "code": "AMB", + "display": "ambulatory" + }, + "type": [{ + "coding": [{ + "system": "http://www.ama-assn.org/go/cpt", + "code": "99213", + "display": "Office outpatient visit 15 minutes" + }], + "text": "Office outpatient visit" + }], + "subject": { "reference": "Patient/62f17e29b7532c0009e217b7" }, + "participant": [{ + "individual": { + "reference": "Practitioner/62f17e2ae0231200076884d4" + } + }], + "period": { + "start": "2012-08-15T10:00:00-08:00" + }, + "diagnosis": [{ + "condition": { + "reference": "Condition/62f17e2aa2392d0008fbb232" + } + }] +}+\ No newline at end of file diff --git a/input/pagecontent/CF-immunizations.md b/input/pagecontent/CF-immunizations.md index e2a24354..1c69e028 100644 --- a/input/pagecontent/CF-immunizations.md +++ b/input/pagecontent/CF-immunizations.md @@ -1,18 +1,14 @@ - + This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Immunizations FHIR → CDA](./FC-immunizations.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html) -Mapping is from `@moodCode="EVN"` (i.e. historical) immunizations, not `INT` (future / planned) immunizations. +Mapping is from `@moodCode="EVN"` (i.e. historical) immunizations, not `INT` (future / planned) immunizations. For INT, use the MedicationRequest resource.
+ CDA EncompassingEncounter Example FHIR Encounter Resource + <encompassingEncounter> + <id root="2a620155-9d11-439e-92b3-5d9815ff4de8"/> + <code code="99213" displayName="Office outpatient visit 15 minutes" + codeSystemName="CPT" codeSystem="2.16.840.1.113883.6.12" + codeSystemVersion="4" /> + <effectiveTime> + <low value="20120815100000-0800" /> + <high value="20120815101500-0800" /> + </effectiveTime> + <!-- Maps to reference: Practitioner/62f17e2ae0231200076884d4 --> + <participant> + ... + </participant> + <!-- Maps to reference: Location/sdLoc --> + <location> + ... + </location> +</encompassingEncounter>++ { + "resourceType": "Encounter", + "id": "62f17e2aa2392d0008fbb224", + "identifier": [{ + "value": "urn:uuid:2a620155-9d11-439e-92b3-5d9815ff4de8", + "system": "urn:ietf:rfc:3986" + }], + "status": "finished", + "class": { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", + "code": "AMB", + "display": "ambulatory" + }, + "type": [{ + "coding": [{ + "system": "http://www.ama-assn.org/go/cpt", + "code": "99213", + "display": "Office outpatient visit 15 minutes" + }] + }], + "subject": { "reference": "Patient/62f17e29b7532c0009e217b7" }, + "location": [{ + "location": { "reference": "Location/sdLoc" } + }], + "participant": [{ + "individual": { "reference": "Practitioner/62f17e2ae0231200076884d4" } + }], + "period": { + "start": "2012-08-15T10:00:00-08:00", + "end": "2012-08-15T10:15:00-08:00" + } +} ++
### C-CDA to FHIR -|C-CDA¹
[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ImmunizationActivity.html)|FHIR
[Immunization](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-immunization.html#profile)|Transform Steps| +|C-CDA¹
[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationActivity.html)|FHIR
[Immunization](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-immunization.html#profile)|Transform Steps| |:----|:----|:----| |/@negationInd="true"||Set ```.status="not-done"``` when @negationInd="true"| |/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| @@ -25,29 +21,356 @@ Mapping is from `@moodCode="EVN"` (i.e. historical) immunizations, not `INT` (fu |/consumable/manufacturedProduct/manufacturedMaterial/code|.vaccineCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) |/consumable/manufacturedMaterial/lotNumberText|.lotNumber|| |/consumable/manufacturedMaterial/manufacturerOrganization|.manufacturer| -|N/A|.primarySource|Since this is unavailable in CDA, when mapping to a FHIR profile that requires the element (such as USCore prior to Release 6), include a [data-absent-reason extension](http://hl7.org/fhir/StructureDefinition/data-absent-reason). +|N/A|.primarySource|Since this is unavailable in CDA, when mapping to a FHIR profile that requires the element (such as USCore prior to Release 6), include a [data-absent-reason extension](http://hl7.org/fhir/StructureDefinition/data-absent-reason) such as 'unsupported'. |/author|**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |/author/time|.recorded|Earliest, if more than one.
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) |/performer|.performer|Set ```performer.function="AP"``` -|**[Immunization Refusal Reason](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ImmunizationRefusalReason.html)**
/entryRelationship[@typeCode="RSON"]²/observation/code
(only if code is from ValueSet [No Immunization Reason](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.1.11.19717/expansion/Latest))|.statusReason|[CDA refusal → FHIR statusReason](ConceptMap-CF-ImmunizationRefusal.html)
Indicates the reason the immunization event was **not** performed. This is generally only used for the status of "not-done".| -|**[Indication](http://hl7.org/cda/stds/ccda/draft1/StructureDefinition-2.16.840.1.113883.10.20.22.4.19.html)**
/entryRelationship[@typeCode="RSON"]²/observation/value
(only if observation/code is from ValueSet [Problem Type](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.88.12.3221.7.2/expansion/Latest))|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**
/entryRelationship[@typeCode="MFST"]/observation/value|.reaction|It is recommended that reaction observation value be mapped to reaction detail (Observation) valueCodeable concept. Comments are welcome on how this may be best implemented. -|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|| +|**[Immunization Refusal Reason](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationRefusalReason.html)**
/entryRelationship[@typeCode="RSON"]²/observation/code
(only if code is from ValueSet [No Immunization Reason](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.1.11.19717/expansion/Latest))|.statusReason|[CDA refusal → FHIR statusReason](ConceptMap-CF-ImmunizationRefusal.html)
Indicates the reason the immunization event was **not** performed. This is generally only used for the status of "not-done".| +|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**
/entryRelationship[@typeCode="RSON"]²/observation/value
(only if observation/code is from ValueSet [Problem Type](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.88.12.3221.7.2/expansion/Latest))|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**
/entryRelationship[@typeCode="MFST"]/observation/value|.reaction|It is recommended that reaction observation value be mapped to reaction detail (Observation) valueCodeable concept. Comments are welcome on how this may be best implemented. +|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| 1\. XPath abbrievated for C-CDA Immunization Activity as:
ClinicalDocument/component/structuredBody/component/section[code/@code="11369-6"]/entry/substanceAdministration
2\. Both indication and refusal reason are observations related by @typeCode="RSON". Typically templateIds should not be used to identify content, but the Indication template does not require a specific code. If the observation/code comes from ValueSet [No Immunization Reason](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.1.11.19717/expansion/Latest), then it is clearly a refusal reason. If it comes from ValueSet [Problem Type](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.88.12.3221.7.2/expansion/Latest), then it is an indication. But if the code comes from neither value set, the observation is *possibly* an indication, but the only way to know is to check the templateId. -### Illustrative example +### Example: Standard Immunization -{% include examplebutton.html example="CF_immunization_example" b_title = "Click on Here To See Highlighted Example" %} ++ +### Example: Refused Immunization + +
+ CDA Immunization Example FHIR Immunization Resource + <substanceAdministration classCode="SBADM" moodCode="EVN" negationInd="false"> + <!-- ** Immunization activity ** --> + <templateId root="2.16.840.1.113883.10.20.22.4.52"/> + <templateId root="2.16.840.1.113883.10.20.22.4.52" extension="2015-08-01"/> + <id root="e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92"/> + <text> + <reference value="#immun1"/> + </text> + <!-- Indicates the status of the substanceAdministartion --> + <statusCode code="completed"/> + <effectiveTime value="20100815"/> + <repeatNumber value="1"/> + <routeCode + code="C28161" + codeSystem="2.16.840.1.113883.3.26.1.1" + codeSystemName="National Cancer Institute (NCI) Thesaurus" + displayName="Intramuscular Route of Administration" /> + <approachSiteCode + code="700022004" + codeSystem="2.16.840.1.113883.6.96" + codeSystemName="SNOMED CT" + displayName="Muscle and/or tendon structure of upper limb" /> + <doseQuantity value="60" unit="ug" /> + <administrationUnitCode + code="C44278" + codeSystem="2.16.840.1.113883.3.26.1.1" + codeSystemName="National Cancer Institute (NCI) Thesaurus" + displayName="Unit"/> + <consumable> + <manufacturedProduct classCode="MANU"> + <!-- ** Immunization medication information ** --> + <templateId root="2.16.840.1.113883.10.20.22.4.54"/> + <templateId root="2.16.840.1.113883.10.20.22.4.54" extension="2014-06-09"/> + <id root="5823d446-9066-11ee-b9d1-0242ac120002"/> + <manufacturedMaterial> + <code + code="88" + codeSystem="2.16.840.1.113883.12.292" + displayName="Influenza virus vaccine" + codeSystemName="CVX"> + <originalText> + <reference value="#ImmunizationProduct_100"/> + </originalText> + <translation + code="49281-0422-50" + codeSystem="2.16.840.1.113883.6.69" + codeSystemName="NDC" + displayName="Influenza vaccine"/> + </code> + <lotNumberText>1</lotNumberText> + </manufacturedMaterial> + <manufacturerOrganization> + <name>Health LS - Immuno Inc.</name> + </manufacturerOrganization> + </manufacturedProduct> + </consumable> + <!-- Optional Performer --> + <!-- Creates resource: PractitionerRole/AmandaAtGoodHealthClinics --> + <!-- With functionCode: AP --> + <performer> + <assignedEntity> + <id root="2.16.840.1.113883.19.5.9999.456" extension="2981824"/> + <addr> + <streetAddressLine>1021 Health Drive</streetAddressLine> + <city>Ann Arbor</city> + <state>MI</state> + <postalCode>99099</postalCode> + </addr> + <telecom nullFlavor="UNK"/> + <assignedPerson> + <name> + <given>Amanda</given> + <family>Assigned</family> + </name> + </assignedPerson> + <representedOrganization> + <name>Good Health Clinic</name> + </representedOrganization> + </assignedEntity> + </performer> + <!-- Optional Author --> + <author> + <templateId root="2.16.840.1.113883.10.20.22.4.119"/> + <time value="20100815"/> + <assignedAuthor> + <id extension="99999999" root="2.16.840.1.113883.4.6"/> + <telecom use="WP" value="tel:555-555-1002"/> + <assignedPerson> + <name> + <given>Henry</given> + <family>Seven</family> + </name> + </assignedPerson> + </assignedAuthor> + </author> + <entryRelationship typeCode="RSON"> + <observation classCode="OBS" moodCode="EVN"> + <!-- Indication (V2) --> + <templateId root="2.16.840.1.113883.10.20.22.4.19" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.19"/> + <code + codeSystem="2.16.840.1.113883.6.96" + codeSystemName="SNOMED CT" + code="404684003" + displayName="Clinical finding"/> + <statusCode code="completed"/> + <value xsi:type="CD" + code="195967001" + codeSystem="2.16.840.1.113883.6.96" + displayName="asthma" /> + </observation> + </entryRelationship> + <!-- Reaction becomes Observation with id: Observation/WithCode247472004Wheal --> + <entryRelationship typeCode="MFST" inversionInd="true"> + <observation classCode="OBS" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.9" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.9" /> + <id root="37006474-947a-11ee-b9d1-0242ac120002"/> + <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> + <text> + <reference value="#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0" /> + </text> + <statusCode code="completed" /> + <effectiveTime> + <low value="20080501"/> + <high value="20080501"/> + </effectiveTime> + <value xsi:type="CD" + code="247472004" + codeSystem="2.16.840.1.113883.6.96" + displayName="Wheal" /> + </observation> + </entryRelationship> +</substanceAdministration>++ { + "resourceType": "Immunization", + "id": "2b622767-4560-46ba-a1ac-58092fcdcdda", + "status": "completed", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92" + } + ], + "vaccineCode": { + "coding": [ + { + "system": "http://hl7.org/fhir/sid/cvx", + "code": "88", + "display": "Influenza virus vaccine" + }, + { + "system": "http://hl7.org/fhir/sid/ndc", + "code": "49281-0422-50", + "display": "Influenza vaccine" + } + ], + "text": "Influenza virus vaccine" + }, + "doseQuantity": { + "unit": "ug", + "value": 60, + "system": "http://unitofmeasure.org", + "code": "ug" + }, + "lotNumber": "1", + "recorded": "2010-08-15", + "performer": [ + { + "actor": { + "reference": "PractitionerRole/AmandaAtGoodHealthClinics" + }, + "function": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0443", + "code": "AP", + "display": "Administering Provider" + } + ] + } + } + ], + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "195967001", + "display": "asthma" + } + ] + } + ], + "_primarySource": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unknown" + } + ] + }, + "manufacturer": { + "display": "Health LS - Immuno Inc." + }, + "site": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "700022004", + "display": "Muscle and/or tendon structure of upper limb" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://ncithesaurus-stage.nci.nih.gov", + "code": "C28161", + "display": "Intramuscular Route of Administration" + } + ] + }, + "patient": { + "reference": "Patient/6581e92eb6ff5dadc088eae5" + }, + "protocolApplied": [ + { + "doseNumberPositiveInt": 1 + } + ], + "occurrenceDateTime": "2010-08-15", + "reaction": [ + { + "detail": { + "reference": "Observation/WithCode247472004Wheal" + } + } + ] +}+#### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Immuniztion CDA example](./Binary-CF-immunization.html) -* [Immuniztion FHIR example](./Immunization-CF-immunization.html) - -### Prior work and Expanded Spreadsheets - -As reviewed in the methodology, a more comprehensive review was performed via spreadsheets. These spreadsheets have been consolidated and further revised in the tables above but are provided for [reference here](https://github.com/HL7/ccda-on-fhir/blob/master/mappings/CF/CCDA-FHIR%20Immunization.csv) \ No newline at end of file +* [Immuniztion FHIR example](./Immunization-CF-immunization.html) \ No newline at end of file diff --git a/input/pagecontent/CF-index.md b/input/pagecontent/CF-index.md index 26392e1f..092e2591 100644 --- a/input/pagecontent/CF-index.md +++ b/input/pagecontent/CF-index.md @@ -9,10 +9,16 @@ #### Available Maps - [Allergies](CF-allergies.html) +- [Encounters](CF-encounters.html) - [Immunizations](CF-immunizations.html) - [Medications](CF-medications.html) +- [Notes](CF-notes.html) +- [Participation](CF-participations.html) (Including Author, DataEnterer, Informant, Performer, Participant) - [Patient](CF-patient.html) - [Problems](CF-problems.html) - [Procedures](CF-procedures.html) +- [Results](CF-results.html) +- [Social History](CF-social.html) (Including Smoking Status, Pregnancy Observation) +- [Vital Signs](CF-vitals.html) Please refer to [mapping background](mappingBackground.html) for more information how maps were selected and developed. diff --git a/input/pagecontent/CF-medications.md b/input/pagecontent/CF-medications.md index 76012b6e..01021b06 100644 --- a/input/pagecontent/CF-medications.md +++ b/input/pagecontent/CF-medications.md @@ -1,8 +1,4 @@ - + This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Medications FHIR → CDA](./FC-medications.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html) @@ -23,9 +19,9 @@ The second `
+ CDA Refused Immunization Example FHIR Immunization Resource + <entry typeCode="COMP"> + <!-- negationInd=true indicates substance was NOT given at this date--> + <substanceAdministration classCode="SBADM" moodCode="EVN" negationInd="true"> + <!-- ** Immunization activity ** --> + <templateId root="2.16.840.1.113883.10.20.22.4.52"/> + <templateId root="2.16.840.1.113883.10.20.22.4.52" extension="2015-08-01"/> + <id root="8d5942f9-5413-4486-af89-dcc5603dbec7"/> + <text> + <reference value="#immun2"/> + </text> + <!-- Indicates the status of the substanceAdministartion --> + <statusCode code="completed"/> + <effectiveTime value="20151115"/> + <consumable> + <manufacturedProduct classCode="MANU"> + <!-- ** Immunization medication information ** --> + <templateId root="2.16.840.1.113883.10.20.22.4.54"/> + <templateId root="2.16.840.1.113883.10.20.22.4.54" extension="2014-06-09"/> + <manufacturedMaterial> + <code + code="43" + codeSystem="2.16.840.1.113883.12.292" + displayName="hepatitis B vaccine, adult dosage" + codeSystemName="CVX"> + <originalText>hepatitis B vaccine</originalText> + </code> + <lotNumberText>2</lotNumberText> + </manufacturedMaterial> + </manufacturedProduct> + </consumable> + <entryRelationship typeCode="RSON"> + <observation classCode="OBS" moodCode="EVN"> + <!-- Immunization Refusal Reason --> + <!-- Included the reason since it may be relevant + to a future clinician or quality measurement --> + <templateId root="2.16.840.1.113883.10.20.22.4.53"/> + <id root="c1296315-9a6d-45a2-aac0-ee225d375409"/> + <code + displayName="patient objection" + code="PATOBJ" + codeSystemName="HL7 ActNoImmunizationReason" + codeSystem="2.16.840.1.113883.5.8"/> + <statusCode code="completed"/> + </observation> + </entryRelationship> + </substanceAdministration> +</entry>++ { + "id": "f122ceadccaa4a9accdc117634a89dda", + "resourceType": "Immunization", + "vaccineCode": { + "coding": [{ + "code": "43", + "display": "hepatitis B vaccine, adult dosage", + "system": "http://hl7.org/fhir/sid/cvx" + }] + }, + "identifier": [{ + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:8d5942f9-5413-4486-af89-dcc5603dbec7" + }], + "lotNumber": "2", + "occurrenceDateTime": "2015-11-15", + "patient": { + "reference": "Patient/fff" + }, + "_primarySource": { + "extension": [{ + "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", + "valueCode": "unknown" + }] + }, + "status": "not-done", + "statusReason": { + "coding": [{ + "code": "PATOBJ", + "display": "patient objection", + "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason" + }] + } +}+` represents the frequency and contains the attribute The C-CDA Example Search site maintains a document of [Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) which can be cross-referenced with a similar table in FHIR's [Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing) to properly map CDA frequencies to FHIR timing values. -### C-CDA to FHIR +### C-CDA to FHIR (MedicationRequest) -|C-CDA¹
[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-MedicationActivity.html)|FHIR
[MedicationRequest](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medicationrequest.html)|Transform Steps| +|C-CDA¹
[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationActivity.html)|FHIR
[MedicationRequest](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medicationrequest.html)|Transform Steps| |:----|:----|:----| |/@negationInd="true"|set .doNotPerform=true|| |@moodCode|.intent|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
[Mood to intent](ConceptMap-CF-MedActivityMood.html)| @@ -34,33 +30,361 @@ The C-CDA Example Search site maintains a document of [Common Medication Frequen |/effectiveTime[1]/@value|.dosageInstruction.timing.event|**Constraint**: Use this when effectiveTime@value is populated
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |/effectiveTime[1]/low|.dosageInstruction.timing.repeat.boundsPeriod.start|**Constraint**: Use this when effectiveTime/@value is not populated
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |/effectiveTime[1]/high|.dosageInstruction.timing.repeat.boundsPeriod.end|**Constraint**: Use this when effectiveTime/@value is not populated
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| -|**Periodic Frequency**
/effectiveTime[operator="A" and xsi:type="PIVL_TS"]
.../@institutionSpecified
.../period/@value
.../period/@unit|.dosageInstruction.timing.repeat.frequency
.dosageInstruction.timing.repeat.period
.dosageInstruction.timing.repeat.periodUnit|Compare:
[C-CDA Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) and
[FHIR Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing) +|**Periodic Frequency**
/effectiveTime[operator="A" and xsi:type="PIVL_TS"]
.../@institutionSpecified
.../period/@value
.../period/@unit|.dosageInstruction.timing.repeat.frequency
.dosageInstruction.timing.repeat.period
.dosageInstruction.timing.repeat.periodUnit|Compare:
[C-CDA Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) and
[FHIR Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing) to determine whether `frequency` or `period` should be used.
If CDA `period` contains `low` and `high` (e.g. a range like 4-6 hours or 3-4 times a day), map `low` the same as `@value` (e.g. to `repeat.period` or `repeat.frequency`) and map `high` to `repeat.periodMax` or `repeat.frequencyMax` depending on whether it is a frequency or period. |**Event-Based Timing**
/effectiveTime[operator="A" and xsi:type="EIVL_TS"]
.../event/@code
.../offset|.dosageInstruction.timing.repeat.when
.dosageInstruction.timing.repeat.offset|@code vocabulary matches .when
CDA offset must be converted to minutes for FHIR |/routeCode|.dosageInstruction.route|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/approachSiteCode|.dosageInstruction.site|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |/doseQuantity|.dosageInstruction.doseAndRate.doseQuantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| |/rateQuantity|.dosageInstruction.doseAndRate.rateQuantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| -|/consumable/manufacturedProduct/manufacturedMaterial/code|.medicationCodeableConcept|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/maxDoseQuantity/numerator|.dosageInstruction.maxDosePerPeriod.numerator|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| +|/maxDoseQuantity/denominator|.dosageInstruction.maxDosePerPeriod.denominator|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| +|/administrationUnitCode|Medication.form|[See below](#c-cda-to-fhir-medication) +|/consumable/manufacturedProduct/manufacturedMaterial/code|.medicationCodeableConcept
OR
.medicationReference|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
Only one of these fields may be populated. When generating a Medication resource ([see below](#c-cda-to-fhir-medication)), use the medicationReference field.| +|/consumable/manufacturedProduct/manufacturerOrganization|Medication.manufacturer|[See below](#c-cda-to-fhir-medication) |/author|.requester
&
**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)**|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |/author/time|.authoredOn|Earliest, if more than one.
[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|**[Drug Vehicle](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-DrugVehicle.html)**
/participant[@typeCode="CSM"]/playingEntity/code|Medication.ingredient|[See below](#c-cda-to-fhir-medication) +|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**
/entryRelationship[@typeCode="RSON"]/observation/value|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|**[Free text sig](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationFreeTextSig.html)**
/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|.dosageInstruction.text|| +|**[Instruction Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Instruction.html)**
/entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/act|.dosageInstruction.patientInstruction
.dosageInstruction.additionalInstruction|act/text or act/code/originalText can map to patientInstructions. If coded, can map to additionalInstruction. +|**[Supply Order](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationSupplyOrder.html)**
/entryRelationship[@typeCode="REFR"]/substanceAdministration[@moodCode="INT"]||Note: moodCode=INT means supply, moodCode=EVN means dispense, which is not documented here. +|../effectiveTime/high|.dispenseRequest.validityPeriod.end|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)
`low` would similarly map to `start`, but only high is called out in C-CDA.| +|../repeatNumber|.dispenseRequest.numberOfRepeatsAllowed|**Caution:** in CDA, repeatNumber indicates total number of dispenses allowed. In FHIR, this field is exclusive of the original dispense. So the `numberOfRepeatsAllowed` will be one less than `repeatNumber`. +|../quantity|.dispenseRequest.quantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| |/precondition|.asNeededBoolean = true|The presence of a precondition element indicates asNeededBoolean should be true.
More complex maps may be possible with .asNeededCodeableConcept.| -|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**
/entryRelationship[@typeCode="RSON"]/observation/value|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|**[Free text sig](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-MedicationFreeTextSig.html)**
/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|.dosageInstruction.text|| -|**[Instruction Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Instruction.html)**
/entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/act|.dosageInstruction.patientInstruction
.dosageInstruction.additionalInstruction|act/text or act/code/originalText can map to patientInstructions. If coded, can map to additionalInstruction. -|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**
/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**
.note|| 1\. XPath abbrievated for C-CDA Medication Activity as:
ClinicalDocument/component/structuredBody/component/section[code/@code="10160-0"]/entry/substanceAdministration +### C-CDA to FHIR (Medication) +MedicationRequest (and other resources) may represent the medication as a simple CodeableConcept. But when additional information about the medication needs to be conveyed, a Medication resource should be created instead and referenced by the MedicationRequest resource. Implementers may also opt to always create Medication resources. -### Illustrative example +|C-CDA¹
[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationActivity.html)|FHIR
[Medication](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medication.html)|Transform Steps| +|:----|:----|:----| +|/administrationUnitCode|.form|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/consumable/manufacturedProduct/manufacturedMaterial/code|.code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/consumable/manufacturedProduct/manufacturerOrganization|**[Organization](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-organization.html)**
.manufacturer| +|**[Drug Vehicle](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-DrugVehicle.html)**
/participant[@typeCode="CSM"]/playingEntity/code|.ingredient.itemCodeableConcept|Set `.isActive = false`
[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) + +### Example + +#### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Medication CDA example](./Binary-CF-medication.html) -* [MedicationRequest FHIR example](./MedicationRequest-CF-medication.html) - -### Prior work and Expanded Spreadsheets - -As reviewed in the methodology, a more comprehensive review was performed via spreadsheets. These spreadsheets have been consolidated and further revised in the tables above but are provided for [reference here](https://github.com/HL7/ccda-on-fhir/blob/master/mappings/CF/CCDA-FHIR%20MedicationRequest.csv) \ No newline at end of file +* [MedicationRequest FHIR example](./MedicationRequest-CF-medication.html) \ No newline at end of file diff --git a/input/pagecontent/CF-notes.md b/input/pagecontent/CF-notes.md new file mode 100644 index 00000000..59824213 --- /dev/null +++ b/input/pagecontent/CF-notes.md @@ -0,0 +1,132 @@ + + +This page provides a mapping from CDA to FHIR. For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). + +Clinical Notes may appear in their own section or as an entry in any open section. They are identified by an `
+ CDA Medication Example FHIR MedicationRequest and Medication Resources + <substanceAdministration classCode="SBADM" moodCode="INT"> + <templateId root="2.16.840.1.113883.10.20.22.4.16" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.16"/> + <id root="cdbd33f0-6cde-11db-9fe1-0800200c9a66"/> + <statusCode code="active"/> + <effectiveTime xsi:type="IVL_TS"> + <low value="20120806"/> + <high nullFlavor="UNK"/> + </effectiveTime> + <effectiveTime xsi:type="PIVL_TS" operator="A"> + <period xsi:type="IVL_PQ"> + <low value="4" unit="h"/> + <high value="6" unit="h"/> + </period> + </effectiveTime> + <repeatNumber value="1"/> + <routeCode + code="C38288" + codeSystem="2.16.840.1.113883.3.26.1.1" + codeSystemName="NCI Thesaurus" + displayName="Oral Route of Administration"/> + <doseQuantity value="1"/> + <maxDoseQuantity > + <numerator value="6" unit="{spray}" /> + <denominator value="1" unit="{day}" /> + </maxDoseQuantity> + <administrationUnitCode + code="C48501" + codeSystem="2.16.840.1.113883.3.26.1.1" + codeSystemName="National Cancer Institute (NCI) Thesaurus" + displayName="Inhalation dosing unit"/> + <consumable> + <manufacturedProduct classCode="MANU"> + <templateId root="2.16.840.1.113883.10.20.22.4.23" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.23"/> + <manufacturedMaterial> + <code + code="1190220" + codeSystem="2.16.840.1.113883.6.88" + codeSystemName="RxNorm" + displayName="ACTUAT albuterol 0.1 MG/ACTUAT ... Spray"/> + </manufacturedMaterial> + <manufacturerOrganization> + <name>Good Vaccines Inc</name> + </manufacturerOrganization> + </manufacturedProduct> + </consumable> + <author> + <!-- Time the author noted that patient is on medication --> + <templateId root="2.16.840.1.113883.10.20.22.4.119"/> + <time value="201309111603-0700"/> + <assignedAuthor> + <!-- Author maps to Provenance + not included in this example --> + </assignedAuthor> + </author> + <participant typeCode="CSM"> + <participantRole classCode="MANU"> + <templateId root="2.16.840.1.113883.10.20.22.4.24"/> + <code code="412307009" + displayName="Drug vehicle" + codeSystem="2.16.840.1.113883.6.96"/> + <playingEntity classCode="MMAT"> + <code code="387390002" + displayName="sodium chloride" + codeSystem="2.16.840.1.113883.6.96" + codeSystemName="SNOMED"/> + <name>sodium chloride</name> + </playingEntity> + </participantRole> + </participant> + <entryRelationship typeCode="COMP"> + <!-- Medication Free Text SIG --> + <substanceAdministration classCode="SBADM" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.147"/> + <code code="76662-6" codeSystem="2.16.840.1.113883.6.1"/> + <text> + <!-- Resolves to: 2 puffs every 4-6 hours as needed --> + <reference value="#MedicationSig_PRN_222222"/> + </text> + <consumable> + <manufacturedProduct> + <manufacturedLabeledDrug nullFlavor="NA"/> + </manufacturedProduct> + </consumable> + </substanceAdministration> + </entryRelationship> + <entryRelationship typeCode="RSON"> + <observation classCode="OBS" moodCode="EVN"> + <!-- Indication (V2) --> + <templateId root="2.16.840.1.113883.10.20.22.4.19" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.19"/> + <id extension="44" root="1.3.6.1.4.1.22812.3.99930.3.4.1.3"/> + <code + codeSystem="2.16.840.1.113883.6.96" + codeSystemName="SNOMED CT" + code="404684003" + displayName="Clinical finding"/> + <statusCode code="completed"/> + <effectiveTime> + <low nullFlavor="NI"/> + </effectiveTime> + <value xsi:type="CD" + code="56018004" + codeSystem="2.16.840.1.113883.6.96" + displayName="wheezing" /> + </observation> + </entryRelationship> + <entryRelationship typeCode="SUBJ" inversionInd="true"> + <act classCode="ACT" moodCode="INT"> + <!-- Instruction (V2) --> + <templateId root="2.16.840.1.113883.10.20.22.4.20" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.20"/> + <code code="1153465004" + displayName="Education about overdosing" + codeSystem="2.16.840.1.113883.6.96" + codeSystemName="SNOMED CT"/> + <text>Do not overtake</text> + <statusCode code="completed"/> + </act> + </entryRelationship> + <entryRelationship typeCode="REFR"> + <supply classCode="SPLY" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.18" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.18"/> + <id root="1.2.3.4.56789.1" extension="cb734647-fc99-424c-a864-7e3cda82e704" /> + <statusCode code="completed" /> + <effectiveTime> + <high value="20121106" /> + </effectiveTime> + <!-- Note in FHIR this is one less, so: 1 --> + <repeatNumber value="2" /> + <quantity value="3" /> + <product> + <manufacturedProduct classCode="MANU"> + <templateId root="2.16.840.1.113883.10.20.22.4.23" extension="2014-06-09"/> + <templateId root="2.16.840.1.113883.10.20.22.4.23"/> + <id root="2a620155-9d11-439e-92b3-5d9815ff4ee8"/> + <manufacturedMaterial> + <code + code="1190220" + codeSystem="2.16.840.1.113883.6.88" + codeSystemName="RxNorm" + displayName="ACTUAT albuterol 0.1 MG/ACTUAT ... Spray"/> + </manufacturedMaterial> + </manufacturedProduct> + </product> + </supply> + </entryRelationship> + <precondition typeCode="PRCN"> + <criterion> + <templateId root="2.16.840.1.113883.10.20.22.4.25" extension="2014-06-09" /> + <templateId root="2.16.840.1.113883.10.20.22.4.25"/> + <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> + <value xsi:type="CD" + code="56018004" + codeSystem="2.16.840.1.113883.6.96" + displayName="Wheezing" /> + </criterion> + </precondition> +</substanceAdministration>++Note: The following shows a MedicationRequest resource with a Medication resource embedded in its contained property. This was done for ease of creating a single, visual, highlighted example, but implementers may choose to create separate, external resources according to their own policy. -{% include examplebutton.html example="CF_medication_example" b_title = "Click on Here To See Highlighted Example" %} + { + "resourceType": "MedicationRequest", + "id": "7fc60296-0667-4a44-86e5-4c432403532e", + "identifier": [ + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:cdbd33f0-6cde-11db-9fe1-0800200c9a66" + } + ], + "status": "active", + "intent": "plan", + "medicationReference": { + "reference": "#containedMed" + }, + /* Only one of these can be sent. + If not including a Medication resource + the code can just be sent in codeableConcept + "medicationCodeableConcept": { + "coding": [ + { + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1190220", + "display": "ACTUAT albuterol 0.1 MG/ACTUAT ... Spray" + } + ] + }, */ + "subject": { + "reference": "Patient/18025725" + }, + "authoredOn": "2013-09-11T16:03:00-07:00", + "reasonCode": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "56018004", + "display": "wheezing" + } + ] + } + ], + "dosageInstruction": [ + { + "text": "2 puffs every 4-6 hours as needed", + "patientInstruction": "Do not overtake", + "additionalInstruction": [ + { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "1153465004", + "display": "Education about overdosing" + } + ] + } + ], + "timing": { + "period": 4, + "periodMax": 6, + "periodUnit": "h" + }, + "asNeededCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "56018004", + "display": "wheezing" + } + ] + }, + "route": { + "coding": [ + { + "system": "http://ncithesaurus-stage.nci.nih.gov", + "code": "C38288", + "display": "Oral Route of Administration" + } + ] + }, + "doseAndRate": [ + { + "doseQuantity": { + "value": 1 + } + } + ], + "maxDosePerPeriod": { + "numerator": { + "value": 6, + "unit": "{spray}", + "code": "{spray}", + "system": "http://unitsofmeasure.org" + }, + "denominator": { + "value": 1, + "unit": "{day}", + "code": "{day}", + "system": "http://unitsofmeasure.org" + } + } + } + ], + "dispenseRequest": { + "numberOfRepeatsAllowed": 1, + "validityPeriod": { + "end": "2012-11-06" + }, + "quantity": { + "value": 3 + } + }, + "contained": [{ + "resourceType": "Medication", + "id": "containedMed", + "code": { + "coding": [{ + "system": "http://www.nlm.nih.gov/research/umls/rxnorm", + "code": "1190220", + "display": "ACTUAT albuterol 0.1 MG/ACTUAT ... Spray" + }] + }, + "form": { + "coding": [ + { + "system": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl", + "code": "C48501", + "display": "Inhalation dosing unit" + } + ] + }, + "manufacturer": { + // If more details exist, would map to Organization resource + "display": "Good Vaccines Inc" + }, + "ingredient": [{ + "itemCodeableConcept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "387390002", + "display": "sodium chloride" + } + ] + } + }] + }] +}+` with a ` ` value of `34109-9`. + +### C-CDA to FHIR + +|C-CDA¹
[Note Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-NoteActivity.html)|[DocumentReference](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-documentreference.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/code/translation|.type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)
**NOTE:** The root code in C-CDA is always `34109-9: Note`. A more specific code may be sent in translation which should be sent as the DocumentReference.type. If there is no translation, however, `34109-9` may be sent as the type. +||.category|Set to `clinical-note`. +|/text/@mediaType
&
/text/text()|.content.attachment.contentType
&
.content.attachment.data|If @mediaType is present, then representation should = B64, and the inner-text contents are embedded base64-encoded data. In this case, the mediaType and base64-encoded data map 1:1 to attachment.contentType and .data. +|/text/reference/@value|.content.attachment.contentType
&
.content.attachment.data|Convert the narrative element referenced by @value following [Narrative Text](mappingGuidance.html#narrative-text) guidance and use `application/xhtml+xml` as the contentType.
If the narrative has minimal markup (i.e. only `` and ` ` elements which can be converted to line breaks), it can be converted to `text/plain`.
To send the raw CDA narrative without converting, use `application/cda+xml`, but this is less useful to receivers. +|/effectiveTime|.context.period|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/author|.author|[C-CDA → FHIR Participation](CF-participations.html) +|/author/time|.date|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/entryRelationship[@typeCode=COMP]/encounter
or
Parent `` element
or
``|.context.encounter|C-CDA requires an encounter for notes, but allows for context conduction. If the Note Activity is in an entryRelationship chain that includes an Encounter Activity, use that. Otherwise, if the document contains an ` `, that is the encounter for the note.
[CDA → FHIR Encounters](CF-encounters.html) +|/reference/externalDocument/id|.relatesTo.target.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| + +### Example + +\ No newline at end of file diff --git a/input/pagecontent/CF-participations.md b/input/pagecontent/CF-participations.md new file mode 100644 index 00000000..9b56c532 --- /dev/null +++ b/input/pagecontent/CF-participations.md @@ -0,0 +1,141 @@ + + +CDA defines participants in a number of elements, but the structure is often similar. These represent people (usually providers), organizations, and in some cases devices, locations, or some combination of all of the above. + +The FHIR equivalent of these fields are most commonly Practitioner, Organization, and PractitionerRole resources. Occasionally RelatedPerson, Device, or Location may be appropriate targets of CDA participants as well. + +### Comparison of CDA Participant elements + +The following table shows the common and unique fields of each CDA participation type. Since all (except Participant) are just specific flavors of participation, they can all be mapped to FHIR fairly similarly. For Participant mapping, the `@typeCode` and `@classCode` attributes are key in determining the type of FHIR resource to create. + +|[Author](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Author.html)
+ CDA Note Activity Example FHIR DocumentReference Resource + <act classCode="ACT" moodCode="EVN"> + <templateId root="2.16.840.1.113883.10.20.22.4.202" extension="2016-11-01"/> + <code + code="34109-9" + codeSystem="2.16.840.1.113883.6.1" + codeSystemName="LOINC" + displayName="Note"> + <!-- Code must match or be equivalent to section code --> + <translation + code="11488-4" + codeSystem="2.16.840.1.113883.6.1" + codeSystemName="LOINC" + displayName="Consultation note"/> + </code> + <text mediaType="application/rtf" representation="B64"> + e1xydGYxXGFuc2kgSGVsbG8gd29ybGQhfQ== + <reference value="#ConsultNote1"/> + </text> + <statusCode code="completed"/> + <!-- Clinically-relevant time of the note --> + <effectiveTime value="20160908"/> + <!-- Author Participation --> + <author> + <templateId root="2.16.840.1.113883.10.20.22.4.119"/> + <!-- Time note was actually written --> + <time value="20160908083215-0500"/> + <assignedAuthor> + <!-- Full author information is elsewhere in the document . --> + <id root="20cf14fb-b65c-4c8c-a54d-b0cca834c18c"/> + <!-- Becomes reference: Practitioner/DrSpecialist --> + <assignedPerson> + <name> + <prefix>Dr.</prefix> + <family>Specialist</family> + </name> + </assignedPerson> + </assignedAuthor> + </author> + <entryRelationship typeCode="COMP"> + <!-- Creates an encounter with reference: Encounter/123 --> + <encounter> + ... + </encounter> + </entryRelationship> + <reference typeCode="REFR"> + <externalDocument> + <id root="4dc41c26-43a4-48d9-b17e-067890006b29" /> + </externalDocument> + </reference> +</act>++ { + "resourceType": "DocumentReference", + "id": "642ed1f93eec840007aaec72", + "language": "en-US", + "status": "current", + "type": { + "text": "Note", + "coding": [{ + "code": "34109-9", + "system": "http://loinc.org" + }, + { + "code": "11488-4", + "system": "http://loinc.org", + "display": "Consultation Note" + }] + }, + "category": [{ + "text": "Clinical Note", + "coding": [{ + "code": "clinical-Note", + "system": "http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category", + "display": "Clinical Note" + }] + }], + "subject": { + "reference": "urn:uuid:a4986486-6599-4bb2-a7fb-e2deb8d50b5e" + }, + "date": "2016-09-08T08:32:15-05:00", + "author": [{ + "reference": "Practitioner/DrSpecialist" + }], + "content": [{ + "attachment": { + "data": "e1xydGYxXGFuc2kgSGVsbG8gd29ybGQhfQ==", + "contentType": "application/rtf" + } + }], + "context": { + "period": { + "start": "2016-09-08" + }, + "encounter": [{ + "reference": "Encounter/123" + }] + }, + "relatesTo": { + "target": { + "identifier": { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:4dc41c26-43a4-48d9-b17e-067890006b29" + } + } + } +}+
(Non-Device)|[Data Enterer](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-DataEnterer.html)|[Informant](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Informant.html)|[Performer](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Performer2.html) /
[Performer (Service Event)](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Performer1.html)|[Participant](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Participant1.html)
(ClinicalDocument)|[Participant](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Participant2.html)
(Everywhere Else)| +|:----|:----|:----|:----|:----|:----| +|`@typeCode=AUT`|`@typeCode=ENT`|`@typeCode=INF`|`@typeCode=PRF`|@typeCode|@typeCode +|functionCode|||sdtc:functionCode
(no sdtc: in ServiceEvent)|functionCode|sdtc:functionCode +|time|time||time|time|time +||||modeCode (not in serviceEvent)||awarenessCode +|**assignedAuthor**|**assignedEntity**|**assignedEntity**
or
**relatedEntity**|**assignedEntity**|**associatedEntity**|**participantRole** +|`/@classCode=ASSIGNED`|`/@classCode=ASSIGNED`|/@classCode
(assignedEntity = `ASSIGNED`)|/`@classCode=ASSIGNED`|/@classCode|/@classCode +|/id|/id|/id (not in related)|/id|/id|/id +|/code|/code|/code|/code|/code|/code +|/addr|/addr|/addr|/addr|/addr|/addr +|/telecom|/telecom|/telecom|/telecom|/telecom|/telecom +|||/effectiveTime (only in related) +||/sdtc:patient/id|/sdtc:patient/id (not in related)|/sdtc:patient/id +|/**assignedPerson**|/**assignedPerson**|/**assignedPerson**
or
/**relatedPerson**|/**assignedPerson**|/**associatedPerson**|/**playingEntity** +|//`@classCode=PSN`|//`@classCode=PSN`|//`@classCode=PSN`|//`@classCode=PSN`|//`@classCode=PSN`|//@classCode +|//name|//name|//name|//name|//name|//name +|//sdtc:desc|//sdtc:desc|//sdtc:desc|//sdtc:desc|//sdtc:desc|//desc +|//asPatientRelationship/code|//asPatientRelationship/code|//asPatientRelationship/code|//asPatientRelationship/code|//asPatientRelationship/code +||||||//code +||||||//quantity +||||||//sdtc:birthTime +|/**representedOrganization**|/**representedOrganization**|/**representedOrganization**
(not in related)|/**representedOrganization**|/**scopingOrganization**|/**scopingEntity** +|/`@classCode=ORG`|/`@classCode=ORG`|/`@classCode=ORG`|/`@classCode=ORG`|/`@classCode=ORG`|//@classCode +|//id|//id|//id|//id|//id|//id +|//name|//name|//name|//name|//name|//desc +|//telecom|//telecom|//telecom|//telecom|//telecom +|//addr|//addr|//addr|//addr|//addr +|//standardIndustryClassCode|//standardIndustryClassCode|//standardIndustryClassCode|//standardIndustryClassCode|//standardIndustryClassCode|//code +|//asOrganizationPartOf (recursive)|//asOrganizationPartOf (recursive)|//asOrganizationPartOf (recursive)|//asOrganizationPartOf (recursive)|//asOrganizationPartOf + +### Mapping to different FHIR resource types + +The general process for creating FHIR resources from CDA Participations is as follows: + +- If the device element is populated (Author and Participation), create a **[Device](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-implantable-device.html)** resource +- If the relatedPerson element is present (Informant only), the `` element is present, or Participant/@typeCode indicates a non-clinical Person, create a **[RelatedPerson](https://hl7.org/fhir/us/core/StructureDefinition-us-core-relatedperson.html)** resource. Note that RelatedPerson has no Organization component, so if CDA conveys an organization, an additional Person resource may need to be created with a `level4` link to RelatedPerson. +- If the @typeCode (Participant only) indicates a physical location, create a **[Location](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-location.html)** resource. +- If there is no person element present and only an organization element is present, create an **[Organization](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-organization.html)** resource. +- If there is both a person element and either an organization or a person/code element (see below for more details), create a **[PractitionerRole](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-practitionerrole.html)** and **[Practitioner](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-practitioner.html)** resource. If there is an organization, also create an **[Organization](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-organization.html)** resource. + +In some cases a specific FHIR resource type may not be allowed (for example, a `.recorder` that can reference Practitioner or PractitionerRole but not Device). Implementers should be aware of requirements and make adjustments accordingly. + +### Mapping functionCode & time +In most cases the ` ` and `