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 @@ + @@ -36,6 +37,8 @@ + + @@ -91,6 +94,7 @@ + @@ -160,19 +164,31 @@ + + + + + + + + + + + + diff --git a/_gencontinuous.bat b/_gencontinuous.bat new file mode 100644 index 00000000..ca2867a5 --- /dev/null +++ b/_gencontinuous.bat @@ -0,0 +1,2 @@ +@ECHO OFF +CALL ./_genonce.bat -watch \ No newline at end of file diff --git a/_gencontinuous.sh b/_gencontinuous.sh new file mode 100644 index 00000000..b9ac5933 --- /dev/null +++ b/_gencontinuous.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./_genonce.sh -watch diff --git a/_genonce.sh b/_genonce.sh index 38efcb44..4f981f05 100755 --- a/_genonce.sh +++ b/_genonce.sh @@ -14,6 +14,8 @@ fi echo "$txoption" +export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8" + publisher=$input_cache_path/$publisher_jar if test -f "$publisher"; then java -jar $publisher -ig . $txoption $* diff --git a/_updatePublisher.bat b/_updatePublisher.bat new file mode 100644 index 00000000..67aebf58 --- /dev/null +++ b/_updatePublisher.bat @@ -0,0 +1,219 @@ +@ECHO OFF + +SETLOCAL + +SET dlurl=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar +SET publisher_jar=publisher.jar +SET input_cache_path=%CD%\input-cache\ +SET skipPrompts=false + +SET scriptdlroot=https://raw.githubusercontent.com/HL7/ig-publisher-scripts/main +SET update_bat_url=%scriptdlroot%/_updatePublisher.bat +SET gen_bat_url=%scriptdlroot%/_genonce.bat +SET gencont_bat_url=%scriptdlroot%/_gencontinuous.bat +SET gencont_sh_url=%scriptdlroot%/_gencontinuous.sh +SET gen_sh_url=%scriptdlroot%/_genonce.sh +SET update_sh_url=%scriptdlroot%/_updatePublisher.sh + +IF "%~1"=="/f" SET skipPrompts=y + + +ECHO. +ECHO Checking internet connection... +PING tx.fhir.org -4 -n 1 -w 1000 | FINDSTR TTL && GOTO isonline +ECHO We're offline, nothing to do... +GOTO end + +:isonline +ECHO We're online + + +:processflags +SET ARG=%1 +IF DEFINED ARG ( + IF "%ARG%"=="-f" SET FORCE=true + IF "%ARG%"=="--force" SET FORCE=true + SHIFT + GOTO processflags +) + +FOR %%x IN ("%CD%") DO SET upper_path=%%~dpx + +ECHO. +IF NOT EXIST "%input_cache_path%%publisher_jar%" ( + IF NOT EXIST "%upper_path%%publisher_jar%" ( + SET jarlocation="%input_cache_path%%publisher_jar%" + SET jarlocationname=Input Cache + ECHO IG Publisher is not yet in input-cache or parent folder. + REM we don't use jarlocation below because it will be empty because we're in a bracketed if statement + GOTO create + ) ELSE ( + ECHO IG Publisher FOUND in parent folder + SET jarlocation="%upper_path%%publisher_jar%" + SET jarlocationname=Parent folder + GOTO upgrade + ) +) ELSE ( + ECHO IG Publisher FOUND in input-cache + SET jarlocation="%input_cache_path%%publisher_jar%" + SET jarlocationname=Input Cache + GOTO upgrade +) + +:create +IF DEFINED FORCE ( + MKDIR "%input_cache_path%" 2> NUL + GOTO download +) + +IF "%skipPrompts%"=="y" ( + SET create=Y +) ELSE ( + SET /p create="Ok? (Y/N) " +) +IF /I "%create%"=="Y" ( + ECHO Will place publisher jar here: %input_cache_path%%publisher_jar% + MKDIR "%input_cache_path%" 2> NUL + GOTO download +) +GOTO done + +:upgrade +IF "%skipPrompts%"=="y" ( + SET overwrite=Y +) ELSE ( + SET /p overwrite="Overwrite %jarlocation%? (Y/N) " +) + +IF /I "%overwrite%"=="Y" ( + GOTO download +) +GOTO done + +:download +ECHO Downloading most recent publisher to %jarlocationname% - it's ~100 MB, so this may take a bit + +FOR /f "tokens=4-5 delims=. " %%i IN ('ver') DO SET VERSION=%%i.%%j +IF "%version%" == "10.0" GOTO win10 +IF "%version%" == "6.3" GOTO win8.1 +IF "%version%" == "6.2" GOTO win8 +IF "%version%" == "6.1" GOTO win7 +IF "%version%" == "6.0" GOTO vista + +ECHO Unrecognized version: %version% +GOTO done + +:win10 +CALL POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%dlurl%\",\"%jarlocation%\") } else { Invoke-WebRequest -Uri "%dlurl%" -Outfile "%jarlocation%" } + +GOTO done + +:win7 +rem this may be triggering the antivirus - bitsadmin.exe is a known threat +rem CALL bitsadmin /transfer GetPublisher /download /priority normal "%dlurl%" "%jarlocation%" + +rem this didn't work in win 10 +rem CALL Start-BitsTransfer /priority normal "%dlurl%" "%jarlocation%" + +rem this should work - untested +call (New-Object Net.WebClient).DownloadFile('%dlurl%', '%jarlocation%') +GOTO done + +:win8.1 +:win8 +:vista +GOTO done + + + +:done + + + + +ECHO. +ECHO Updating scripts +IF "%skipPrompts%"=="y" ( + SET updateScripts=Y +) ELSE ( + SET /p updateScripts="Update scripts? (Y/N) " +) +IF /I "%updateScripts%"=="Y" ( + GOTO scripts +) +GOTO end + + +:scripts + +REM Download all batch files (and this one with a new name) + +SETLOCAL DisableDelayedExpansion + + + +:dl_script_1 +ECHO Updating _updatePublisher.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%update_sh_url%\",\"_updatePublisher.new.sh\") } else { Invoke-WebRequest -Uri "%update_sh_url%" -Outfile "_updatePublisher.new.sh" } +if %ERRORLEVEL% == 0 goto upd_script_1 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_2 +:upd_script_1 +start copy /y "_updatePublisher.new.sh" "_updatePublisher.sh" ^&^& del "_updatePublisher.new.sh" ^&^& exit + + +:dl_script_2 +ECHO Updating _genonce.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gen_bat_url%\",\"_genonce.new.bat\") } else { Invoke-WebRequest -Uri "%gen_bat_url%" -Outfile "_genonce.bat" } +if %ERRORLEVEL% == 0 goto upd_script_2 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_3 +:upd_script_2 +start copy /y "_genonce.new.bat" "_genonce.bat" ^&^& del "_genonce.new.bat" ^&^& exit + +:dl_script_3 +ECHO Updating _gencontinuous.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gencont_bat_url%\",\"_gencontinuous.new.bat\") } else { Invoke-WebRequest -Uri "%gencont_bat_url%" -Outfile "_gencontinuous.bat" } +if %ERRORLEVEL% == 0 goto upd_script_3 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_4 +:upd_script_3 +start copy /y "_gencontinuous.new.bat" "_gencontinuous.bat" ^&^& del "_gencontinuous.new.bat" ^&^& exit + + +:dl_script_4 +ECHO Updating _genonce.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gen_sh_url%\",\"_genonce.new.sh\") } else { Invoke-WebRequest -Uri "%gen_sh_url%" -Outfile "_genonce.sh" } +if %ERRORLEVEL% == 0 goto upd_script_4 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_5 +:upd_script_4 +start copy /y "_genonce.new.sh" "_genonce.sh" ^&^& del "_genonce.new.sh" ^&^& exit + +:dl_script_5 +ECHO Updating _gencontinuous.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gencont_sh_url%\",\"_gencontinuous.new.sh\") } else { Invoke-WebRequest -Uri "%gencont_sh_url%" -Outfile "_gencontinuous.sh" } +if %ERRORLEVEL% == 0 goto upd_script_5 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_6 +:upd_script_5 +start copy /y "_gencontinuous.new.sh" "_gencontinuous.sh" ^&^& del "_gencontinuous.new.sh" ^&^& exit + + + +:dl_script_6 +ECHO Updating _updatePublisher.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%update_bat_url%\",\"_updatePublisher.new.bat\") } else { Invoke-WebRequest -Uri "%update_bat_url%" -Outfile "_updatePublisher.new.bat" } +if %ERRORLEVEL% == 0 goto upd_script_6 +echo "Errors encountered during download: %errorlevel%" +goto end +:upd_script_6 +start copy /y "_updatePublisher.new.bat" "_updatePublisher.bat" ^&^& del "_updatePublisher.new.bat" ^&^& exit + + +:end + + +IF "%skipPrompts%"=="true" ( + PAUSE +) diff --git a/_updatePublisher.sh b/_updatePublisher.sh index a817ce3e..0f9ecbed 100755 --- a/_updatePublisher.sh +++ b/_updatePublisher.sh @@ -25,18 +25,13 @@ while [ "$#" -gt 0 ]; do case $1 in -f|--force) FORCE=true ;; -y|--yes) skipPrompts=true ; FORCE=true ;; - -s|--skip) skipPrompts=true ;; *) echo "Unknown parameter passed: $1. Exiting"; exit 1 ;; esac shift done echo "Checking internet connection" -case "$OSTYPE" in - linux-gnu* ) ping tx.fhir.org -4 -c 1 -w 1000 >/dev/null ;; - darwin* ) ping tx.fhir.org -c 1 >/dev/null ;; - *) echo "unknown: $OSTYPE"; exit 1 ;; -esac +curl -sSf tx.fhir.org > /dev/null if [ $? -ne 0 ] ; then echo "Offline (or the terminology server is down), unable to update. Exiting" @@ -44,11 +39,11 @@ if [ $? -ne 0 ] ; then fi if [ ! -d "$input_cache_path" ] ; then - if [ $skipPrompts != true ]; then + if [ $FORCE != true ]; then echo "$input_cache_path does not exist" message="create it?" read -r -p "$message" response - else + else response=y fi fi @@ -90,14 +85,48 @@ if [[ $skipPrompts == false ]]; then fi read -r -p "$message" response else - if [[ $FORCE == true ]]; then - response=y - fi + response=y fi -if [[ $response =~ ^[yY].*$ ]]; then +if [[ $skipPrompts == true ]] || [[ $response =~ ^[yY].*$ ]]; then echo "Downloading most recent publisher to $jarlocationname - it's ~100 MB, so this may take a bit" curl -L $dlurl -o "$jarlocation" --create-dirs else echo cancelled publisher update fi + +if [[ $skipPrompts != true ]]; then + message="Update scripts? (enter 'y' or 'Y' to continue, any other key to cancel)?" + read -r -p "$message" response + fi + +if [[ $skipPrompts == true ]] || [[ $response =~ ^[yY].*$ ]]; then + echo "Downloading most recent scripts " + + curl -L $update_bat_url -o /tmp/_updatePublisher.new + cp /tmp/_updatePublisher.new _updatePublisher.bat + rm /tmp/_updatePublisher.new + + curl -L $gen_bat_url -o /tmp/_genonce.new + cp /tmp/_genonce.new _genonce.bat + rm /tmp/_genonce.new + + curl -L $gencont_bat_url -o /tmp/_gencontinuous.new + cp /tmp/_gencontinuous.new _gencontinuous.bat + rm /tmp/_gencontinuous.new + + curl -L $gencont_sh_url -o /tmp/_gencontinuous.new + cp /tmp/_gencontinuous.new _gencontinuous.sh + chmod +x _gencontinuous.sh + rm /tmp/_gencontinuous.new + + curl -L $gen_sh_url -o /tmp/_genonce.new + cp /tmp/_genonce.new _genonce.sh + chmod +x _genonce.sh + rm /tmp/_genonce.new + + curl -L $update_sh_url -o /tmp/_updatePublisher.new + cp /tmp/_updatePublisher.new _updatePublisher.sh + chmod +x _updatePublisher.sh + rm /tmp/_updatePublisher.new +fi diff --git a/input/hl7.fhir.us.ccda.xml b/input/hl7.fhir.us.ccda.xml index 15a5b420..61b80bbb 100644 --- a/input/hl7.fhir.us.ccda.xml +++ b/input/hl7.fhir.us.ccda.xml @@ -11,7 +11,7 @@ - + <status value="active"/> @@ -817,91 +817,151 @@ <nameUrl value="mappingBackground.html"/> <title value="Mapping Background"/> <generation value="markdown"/> - </page> - <page> - <nameUrl value="mappingGuidance.html"/> - <title value="Mapping General and Structural Guidance"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-index.html"/> - <title value="C-CDA → FHIR Index"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-index.html"/> - <title value="FHIR → C-CDA Index"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-patient.html"/> - <title value="C-CDA to FHIR Patient"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-allergies.html"/> - <title value="C-CDA to FHIR Allergies"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-immunizations.html"/> - <title value="C-CDA to FHIR Immunizations"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-medications.html"/> - <title value="C-CDA to FHIR Medications"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-problems.html"/> - <title value="C-CDA to FHIR Problems"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="CF-procedures.html"/> - <title value="C-CDA to FHIR Procedures"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-patient.html"/> - <title value="FHIR to C-CDA Patient"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-allergies.html"/> - <title value="FHIR to C-CDA Allergies"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-immunizations.html"/> - <title value="FHIR to C-CDA Immunizations"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-medications.html"/> - <title value="FHIR to C-CDA Medications"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-problems.html"/> - <title value="FHIR to C-CDA Problems"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="FC-procedures.html"/> - <title value="FHIR to C-CDA Procedures"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="conceptMaps.html"/> - <title value="Terminology Maps (Concept Maps)"/> - <generation value="markdown"/> - </page> - <page> - <nameUrl value="mappingIssues.html"/> - <title value="Known Issues"/> - <generation value="markdown"/> + <page> + <nameUrl value="mappingGuidance.html"/> + <title value="Mapping General and Structural Guidance"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-index.html"/> + <title value="C-CDA → FHIR Index"/> + <generation value="markdown"/> + <page> + <nameUrl value="CF-patient.html"/> + <title value="C-CDA to FHIR Patient"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-participations.html"/> + <title value="C-CDA to FHIR Participations"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-allergies.html"/> + <title value="C-CDA to FHIR Allergies"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-encounters.html"/> + <title value="C-CDA to FHIR Encounters"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-immunizations.html"/> + <title value="C-CDA to FHIR Immunizations"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-medications.html"/> + <title value="C-CDA to FHIR Medications"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-notes.html"/> + <title value="C-CDA to FHIR Notes"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-problems.html"/> + <title value="C-CDA to FHIR Problems"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-procedures.html"/> + <title value="C-CDA to FHIR Procedures"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-results.html"/> + <title value="C-CDA to FHIR Results"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-social.html"/> + <title value="C-CDA to FHIR Social History"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="CF-vitals.html"/> + <title value="C-CDA to FHIR Vital Signs"/> + <generation value="markdown"/> + </page> + </page> + <page> + <nameUrl value="FC-index.html"/> + <title value="FHIR → C-CDA Index"/> + <generation value="markdown"/> + <page> + <nameUrl value="FC-patient.html"/> + <title value="FHIR to C-CDA Patient"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-allergies.html"/> + <title value="FHIR to C-CDA Allergies"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-encounters.html"/> + <title value="FHIR to C-CDA Encounters"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-immunizations.html"/> + <title value="FHIR to C-CDA Immunizations"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-medications.html"/> + <title value="FHIR to C-CDA Medications"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-notes.html"/> + <title value="FHIR to C-CDA Medications"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-problems.html"/> + <title value="FHIR to C-CDA Problems"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-procedures.html"/> + <title value="FHIR to C-CDA Procedures"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-results.html"/> + <title value="FHIR to C-CDA Results"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-social.html"/> + <title value="FHIR to C-CDA Social History"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="FC-vitals.html"/> + <title value="FHIR to C-CDA Vital Signs"/> + <generation value="markdown"/> + </page> + </page> + <page> + <nameUrl value="conceptMaps.html"/> + <title value="Terminology Maps (Concept Maps)"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="mappingChangelog.html"/> + <title value="Change Log"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="mappingIssues.html"/> + <title value="Known Issues"/> + <generation value="markdown"/> + </page> </page> <page> <nameUrl value="the_specification.html"/> @@ -920,7 +980,7 @@ </parameter> <parameter> <code value="releaselabel"/> - <value value="STU 1"/> + <value value="STU 1.3"/> </parameter> <parameter> <code value="copyrightyear"/> 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 @@ - - -<a href="CF_allergy_example.png" target="_blank"><img src="CF_allergy_example.png" /></a> - -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 @@ - - -<a href="CF_immunization_example.png" target="_blank"><img src="CF_immunization_example.png" /></a> - -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 @@ - - -<a href="CF_medication_example.png" target="_blank"><img src="CF_medication_example.png" /></a> - -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 @@ - - -<a href="CF_patient_example.png" target="_blank"><img src="CF_patient_example.png" /></a> - -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 @@ - - -<a href="CF_problem_example.png" target="_blank"><img src="CF_problem_example.png" /></a> - -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 @@ - - -<a href="CF_procedure_example.png" target="_blank"><img src="CF_procedure_example.png" /></a> - -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 %} -<p> - <button class="btn btn-info btn-lg btn-block" type="button" title="Click to Open or Close Example" data-toggle="collapse" data-target="#{{target}}" aria-expanded="false" aria-controls="collapseExample"> - {{include.b_title | default: "Example" }} - </button> -</p> -<div class="collapse" id="{{target}}" > - <div class="card card-body" markdown="1"> - {% if file_type =="xhtml" or file_type =="html" or file_type =="md"%} - {% include {{include.example}} %} - {% else %} - {% include {{target}}.md %} - {% endif %} - </div> -</div> -<br /> \ No newline at end of file diff --git a/input/includes/menu.xml b/input/includes/menu.xml index c5fa711d..b6ca240e 100644 --- a/input/includes/menu.xml +++ b/input/includes/menu.xml @@ -24,6 +24,9 @@ <li> <a href="conceptMaps.html">Terminology Maps</a> </li> + <li> + <a href="mappingChangelog.html">Change Log</a> + </li> <li> <a href="mappingIssues.html">Known Issues</a> </li> diff --git a/input/includes/stu-note.xml b/input/includes/stu-note.xml index eac3b907..eecad0b0 100644 --- a/input/includes/stu-note.xml +++ b/input/includes/stu-note.xml @@ -1,6 +1,6 @@ <div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <blockquote class="stu-note"> - <b>2024 Publication of C-CDA ↔ FHIR US Core Mapping</b> + <b>2025 Ballot of C-CDA ↔ FHIR US Core Mapping</b> <p>The current release of this IG adds relevant mapping content from <a href="https://jira.hl7.org/browse/PSS-1811">C-CDA ↔ FHIR mapping project</a> which was related to the original <a diff --git a/input/maps/ConceptMap-CF-EncounterStatus.json b/input/maps/ConceptMap-CF-EncounterStatus.json new file mode 100644 index 00000000..d92c606f --- /dev/null +++ b/input/maps/ConceptMap-CF-EncounterStatus.json @@ -0,0 +1,142 @@ +{ + "resourceType" : "ConceptMap", + "id" : "CF-EncounterStatus", + "extension" : [ + { + "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", + "valueCode" : "cgp" + } + ], + "url" : "http://hl7.org/fhir/us/ccda/ConceptMap/CF-EncounterStatus", + "version" : "1.2.0", + "name" : "CCDAtoFHIREncounterStatus", + "title" : "C-CDA to FHIR Encounter Status", + "status" : "active", + "experimental" : false, + "date" : "2024-09-22T17:40:28+00:00", + "publisher" : "HL7 International / Cross-Group Projects", + "contact" : [ + { + "name" : "HL7 International / Cross-Group Projects", + "telecom" : [ + { + "system" : "url", + "value" : "http://www.hl7.org/Special/committees/cgp" + } + ] + } + ], + "description" : "C-CDA to FHIR Encounter Status", + "jurisdiction" : [ + { + "coding" : [ + { + "system" : "urn:iso:std:iso:3166", + "code" : "US" + } + ] + } + ], + "sourceUri" : "http://terminology.hl7.org/CodeSystem/v3-ActStatus", + "targetUri" : "http://hl7.org/fhir/encounter-status", + "group" : [ + { + "source" : "http://terminology.hl7.org/CodeSystem/v3-ActStatus", + "target" : "http://hl7.org/fhir/encounter-status", + "element" : [ + { + "code" : "aborted", + "display" : "Aborted", + "target" : [ + { + "code" : "unknown", + "display" : "Unknown", + "equivalence" : "wider", + "comment" : "Semantically this could be 'finished', but that might imply completion." + } + ] + }, + { + "code" : "active", + "display" : "Active", + "target" : [ + { + "code" : "in-progress", + "display" : "In Progress", + "equivalence" : "equal" + } + ] + }, + { + "code" : "cancelled", + "display" : "Cancelled", + "target" : [ + { + "code" : "cancelled", + "display" : "Cancelled", + "equivalence" : "equal" + } + ] + }, + { + "code" : "completed", + "display" : "Completed", + "target" : [ + { + "code" : "finished", + "display" : "Finished", + "equivalence" : "equal" + } + ] + }, + { + "code" : "held", + "display" : "Held", + "target" : [ + { + "code" : "planned", + "display" : "Planned", + "equivalence" : "wider", + "comment" : "Held encounters have been planned, but intent to execute has been suspended." + } + ] + }, + { + "code" : "new", + "display" : "New", + "target" : [ + { + "code" : "unknown", + "display" : "Unknown", + "equivalence" : "wider", + "comment" : "This is not Planned, because New encounters have been planned but may or may not have been started. 'Planned' encounters in FHIR have not been started." + } + ] + }, + { + "code" : "suspended", + "display" : "Suspended", + "target" : [ + { + "code" : "onleave", + "display" : "On Leave", + "equivalence" : "narrower", + "comment" : "Suspended encounters have been started, but intent to execute has been temporarily stopped. On-leave is a special case of this circumstance." + } + ] + }, + { + "code" : "nullified", + "display" : "Nullified", + "target" : [ + { + "code" : "entered-in-error", + "display" : "Entered in Error", + "equivalence" : "equal" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/input/maps/ConceptMap-CF-ResultReportStatus.xml b/input/maps/ConceptMap-CF-ResultReportStatus.xml new file mode 100644 index 00000000..afc2c6e2 --- /dev/null +++ b/input/maps/ConceptMap-CF-ResultReportStatus.xml @@ -0,0 +1,92 @@ +<ConceptMap xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <id value="CF-ResultReportStatus"/> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"> + <valueCode value="cgp" /> + </extension> + <url value="http://hl7.org/fhir/us/ccda/ConceptMap/CF-ResultReportStatus"/> + <version value="4.0.1"/> + <name value="CCDAtoFHIRResultReportStatus"/> + <title value="CCDA ResultStatus to FHIR DiagnosticReport status"/> + <status value="active"/> + <experimental value="false"/> + <publisher value="HL7 International"/> + <description value="C-CDA Result Status to FHIR DiagnosticReport status"/> + <contact> + <name value="HL7 International"/> + <telecom> + <system value="phone"/> + <value value="+1 734 677 7777"/> + </telecom> + <telecom> + <system value="fax"/> + <value value="+1 734 677 6622"/> + </telecom> + <telecom> + <system value="email"/> + <value value="info@hl7.org"/> + </telecom> + </contact> + <sourceUri value="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.11.20.9.39"/> + <targetUri value="http://hl7.org/fhir/ValueSet/diagnostic-report-status"/> + <group> + <source value="http://terminology.hl7.org/CodeSystem/2.16.840.1.113883.5.14"/> + <target value="http://hl7.org/fhir/diagnostic-report-status"/> + <element> + <code value="aborted"/> + <display value="aborted"/> + <target> + <code value="cancelled"/> + <display value="Cancelled"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="active"/> + <display value="active"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of registered."/> + </target> + </element> + <element> + <code value="cancelled"/> + <display value="cancelled"/> + <target> + <code value="cancelled"/> + <display value="Cancelled"/> + <equivalence value="equal"/> + </target> + </element> + <element> + <code value="completed"/> + <display value="completed"/> + <target> + <code value="final"/> + <display value="Final"/> + <equivalence value="equal"/> + </target> + </element> + <element> + <code value="held"/> + <display value="held"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of registered."/> + </target> + </element> + <element> + <code value="suspended"/> + <display value="suspended"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of registered."/> + </target> + </element> + </group> +</ConceptMap> \ 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 @@ +<ConceptMap xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <id value="CF-ResultStatus"/> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"> + <valueCode value="cgp" /> + </extension> + <url value="http://hl7.org/fhir/us/ccda/ConceptMap/CF-ResultStatus"/> + <version value="4.0.1"/> + <name value="CCDAtoFHIRResultStatus"/> + <title value="CCDA ResultStatus to FHIR Observation Status"/> + <status value="active"/> + <experimental value="false"/> + <publisher value="HL7 International"/> + <description value="C-CDA Result Status to FHIR Observation Status"/> + <contact> + <name value="HL7 International"/> + <telecom> + <system value="phone"/> + <value value="+1 734 677 7777"/> + </telecom> + <telecom> + <system value="fax"/> + <value value="+1 734 677 6622"/> + </telecom> + <telecom> + <system value="email"/> + <value value="info@hl7.org"/> + </telecom> + </contact> + <sourceUri value="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.11.20.9.39"/> + <targetUri value="http://hl7.org/fhir/ValueSet/observation-status"/> + <group> + <source value="http://terminology.hl7.org/CodeSystem/2.16.840.1.113883.5.14"/> + <target value="http://hl7.org/fhir/observation-status"/> + <element> + <code value="aborted"/> + <display value="aborted"/> + <target> + <code value="cancelled"/> + <display value="Cancelled"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="active"/> + <display value="active"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of regeistered."/> + </target> + </element> + <element> + <code value="cancelled"/> + <display value="cancelled"/> + <target> + <code value="cancelled"/> + <display value="Cancelled"/> + <equivalence value="equal"/> + </target> + </element> + <element> + <code value="completed"/> + <display value="completed"/> + <target> + <code value="final"/> + <display value="Final"/> + <equivalence value="equal"/> + </target> + </element> + <element> + <code value="held"/> + <display value="held"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of regeistered."/> + </target> + </element> + <element> + <code value="suspended"/> + <display value="suspended"/> + <target> + <code value="registered"/> + <display value="Registered"/> + <equivalence value="inexact"/> + <comment value="Caution: Multiple values map to the FHIR concept of regeistered."/> + </target> + </element> + </group> +</ConceptMap> \ 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 @@ +<ConceptMap xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <id value="FC-ResultStatus"/> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"> + <valueCode value="cgp" /> + </extension> + <url value="http://hl7.org/fhir/us/ccda/ConceptMap/FC-ResultStatus"/> + <version value="4.0.1"/> + <name value="FHIRtoCCDAResultStatus"/> + <title value="FHIR ResultStatus to C-CDA ResultStatus"/> + <status value="active"/> + <experimental value="false"/> + <publisher value="HL7 International"/> + <description value="FHIR ResultStatus to C-CDA ResultStatus"/> + <contact> + <name value="HL7 International"/> + <telecom> + <system value="phone"/> + <value value="+1 734 677 7777"/> + </telecom> + <telecom> + <system value="fax"/> + <value value="+1 734 677 6622"/> + </telecom> + <telecom> + <system value="email"/> + <value value="info@hl7.org"/> + </telecom> + </contact> + <sourceUri value="http://hl7.org/fhir/ValueSet/observation-status"/> + <targetUri value="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.11.20.9.39"/> + <group> + <source value="http://hl7.org/fhir/observation-status"/> + <target value="http://terminology.hl7.org/CodeSystem/2.16.840.1.113883.5.14"/> + <element> + <code value="registered"/> + <display value="registered"/> + <target> + <code value="active"/> + <display value="Active"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="preliminary"/> + <display value="Preliminary"/> + <target> + <code value="active"/> + <display value="Active"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="final"/> + <display value="Final"/> + <target> + <code value="completed"/> + <display value="completed"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="amended"/> + <display value="Amended"/> + <target> + <code value="completed"/> + <display value="completed"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="corrected"/> + <display value="Corrected"/> + <target> + <code value="completed"/> + <display value="completed"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="cancelled"/> + <display value="Cancelled"/> + <target> + <code value="cancelled"/> + <display value="cancelled"/> + <equivalence value="equal"/> + </target> + </element> + <element> + <code value="entered-in-error"/> + <display value="Entered-in-error"/> + <target> + <code value="aborted"/> + <display value="aborted"/> + <equivalence value="wider"/> + </target> + </element> + <element> + <code value="unknown"/> + <display value="unknown"/> + <target> + <equivalence value="unmatched"/> + </target> + </element> + </group> +</ConceptMap> \ 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 @@ <display value="Mobile"/> <target> <code value="MC"/> - <display value="mobile contact)"/> + <display value="mobile contact"/> <equivalence value="equivalent"/> </target> </element> 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 @@ -<style> -td, th { - border: 1px solid black!important; - max-width:500px; -} -</style> +<link rel="stylesheet" href="colors.css"> 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)). <br /> ### C-CDA to FHIR -| C-CDA¹ <br/>[Allergy Concern act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyConcernAct.html)| FHIR <br/>[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)|Transform Steps & Notes| +| C-CDA¹ <br/>[Allergy Concern act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyConcernAct.html)| FHIR <br/>[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)<br/>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.<br/>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.<br/>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)<br/>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<br/>&<br/>.category|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[CDA value → FHIR type](ConceptMap-CF-AllergyIntoleranceType.html) <br/> [CDA value → FHIR category](./ConceptMap-CF-AllergyIntoleranceCategory.html)| -|/author|.recorder<br/>&<br/>**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|**Constraint:** Only map single CDA author to FHIR recorder<br/>[Guidance on CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|/author/time|.recorded|**Constraint:** Only map earliest author/time <br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|/author|.recorder<br/>&<br/>**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|**Constraint:** Only map last CDA author to FHIR recorder<br/>[Guidance on CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| +|/author/time|.recordedDate|**Constraint:** Only map earliest author/time <br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |/participant/participantRole/playingEntity/code|.code|**Constraint:** When CDA negation is absent or false<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |/participant/participantRole/playingEntity/code<br/>&<br/>/value|.code|**Constraint:** When CDA negation is true and nullFlavor is used in playingEntity/code<br/>[CDA No known allergy → FHIR code](ConceptMap-CF-NoKnownAllergies.html)<br/> 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)**<br/>/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)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value³|.reaction.manifestation|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>Both use SNOMED clinical findings with minor valueSet definition differences -|**[Severity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-SeverityObservation.html)** (nested inside Reaction)<br/>/entryRelationship[@typeCode="MFST"]/observation/entryRelationship/observation[code/@code="SEV"]/value³|.reaction.severity|[CDA Severity value → FHIR Severity](./ConceptMap-CF-Severity.html)<br/>**Note:** CDA documents should not assign severity at the Allergy level.<br/><br/>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.<br/><br/>If severity is assigned at both levels, the reaction level should be used. -|**[Criticality](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CriticalityObservation.html)**<br/>/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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text³|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|| +|**[Status](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyStatusObservation.html)**<br/>/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)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value³|.reaction.manifestation|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>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)<br/>/entryRelationship[@typeCode="MFST"]/observation/...<br/>   ...entryRelationship/observation[code/@code="SEV"]/value³|.reaction.severity|[CDA Severity value → FHIR Severity](./ConceptMap-CF-Severity.html)<br/>**Note:** CDA documents should not assign severity at the Allergy level.<br/><br/>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.<br/><br/>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)**<br/>/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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text³|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| -1\. XPath abbrievated for C-CDA Allergy Concern act as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/ +1\. XPath abbreviated for C-CDA Allergy Concern act as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/ -2\. XPath abbrievated for C-CDA Allergy Inteolerance observation as: <br/> 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: <br/> 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" %} +<table><tr><th>CDA Allergy Act</th><th>FHIR AllergyIntolerance Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.30"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.30"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"1.3.6.1.4.1.22812.3.2009316.3.4.10"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color10">545077400001</mark>"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"1.3.6.1.4.1.22812.3.2009316.3.4.10"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color11">545077400003</mark>"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"CONC"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.6"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"<mark class="color12">active</mark>"</span> /> + <<span class="field">effectiveTime</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_TS"</span>> + <<span class="field">low</span> <span class="attrib">nullFlavor=</span><span class="value">"NI"</span> /> + </<span class="field">effectiveTime</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.7"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.7"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color13">1.3.6.1.4.1.22812.3.2009316.3.4.10.2</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color10">545077400001</mark>"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color13">1.3.6.1.4.1.22812.3.2009316.3.4.10.2</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color11">545077400003</mark>"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"ASSERTION"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">effectiveTime</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_TS"</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">20080501</mark>"</span> /> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color15">419511003</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color16">2.16.840.1.113883.6.96</mark>"</span>> + <<span class="field">originalText</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_6db75b62-deb2-4bab-b597-00c8ae86f6b4"</span> /> + </<span class="field">originalText</span>> + </<span class="field">value</span>> + <<span class="field">participant</span> <span class="attrib">typeCode=</span><span class="value">"CSM"</span>> + <<span class="field">participantRole</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <<span class="field">playingEntity</span> <span class="attrib">classCode=</span><span class="value">"MMAT"</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color17">1191</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color18">2.16.840.1.113883.6.88</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color19">Aspirin</mark>"</span>> + <<span class="field">translation</span> + <span class="attrib">code=</span><span class="value">"<mark class="color20">293586001</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color16">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color24">Allergy to Aspirin</mark>"</span>/> + </<span class="field">code</span>> + </<span class="field">playingEntity</span>> + </<span class="field">participantRole</span>> + </<span class="field">participant</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"MFST"</span> <span class="attrib">inversionInd=</span><span class="value">"true"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.9"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.9"</span> /> + <<span class="field">id</span> <span class="attrib">nullFlavor=</span><span class="value">"NI"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"ASSERTION"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span> /> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0"</span> /> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color22">247472004</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color16">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color23">Wheal</mark>"</span>> + <<span class="field">originalText</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0"</span> /> + </<span class="field">originalText</span>> + </<span class="field">value</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span> <span class="attrib">inversionInd=</span><span class="value">"true"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.8"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.8"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"SEV"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span> /> + <<span class="field">text</span>>Severe</<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"24484000"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color16">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color27">Severe</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">act</span>></div> +</td><td> + +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">AllergyIntolerance</span>", + "<span class="field">identifier</span>": [ + { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color13">1.3.6.1.4.1.22812.3.2009316.3.4.10.2</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color10">545077400001</mark></span>" + }, + { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color13">1.3.6.1.4.1.22812.3.2009316.3.4.10.2</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color11">545077400003</mark></span>" + } + ], + "<span class="field">clinicalStatus</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color12">active</mark></span>" + } + ] + }, + "<span class="field">category</span>": [ + "<mark class="color15">medication</mark>" + ], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color18">http://www.nlm.nih.gov/research/umls/rxnorm</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color17">1191</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color19">Aspirin</mark></span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color16">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color20">293586001</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color24">Allergy to Aspirin</mark></span>" + } + ], + "<span class="field">text</span>": "<span class="value"><mark class="color19">Aspirin</mark></span>" + }, + "<span class="field">patient</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/CF-patient</span>" + }, + "<span class="field">onsetDateTime</span>": "<span class="value"><mark class="color14">2008-05-01</mark></span>", + "<span class="field">reaction</span>": [ + { + "<span class="field">manifestation</span>": [ + { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color16">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color22">247472004</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color23">Wheal</mark></span>" + } + ], + "<span class="field">text</span>": "<span class="value"><mark class="color23">Wheal</mark></span>" + } + ], + "<span class="field">severity</span>": "<span class="value"><mark class="color27">severe</mark></span>" + } + ] +}</div> +</td></tr></table> #### 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 @@ +<link rel="stylesheet" href="colors.css"> + +This page provides a mapping from CDA to FHIR. <!-- For the FHIR to CDA mapping, please refer to [Encounters FHIR → CDA](./FC-encounters.html). --> 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 `<entryReference>` 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 `<id>`), it should be converted to a single FHIR resource. + +### C-CDA Encounter to FHIR +<sup>(b)</sup> - indicates element is only present in Encounter Activity in the body of the document<br/><sup>(h)</sup> - indicates element is only present in EncompassingEncounter in the header of the document + +|C-CDA¹<br/>[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<br/>[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 `<translation>`.<br/>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<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/statusCode <sup>(b)</sup>|.status|[CDA → FHIR encounter status](ConceptMap-CF-EncounterStatus.html)<br/>**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"`.<br/>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<br/>/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 <sup>(b)</sup><br/>/dischargeDispositionCode <sup>(h)</sup>|.hospialization.dischargeDisposition|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/performer <sup>(b)</sup><br/>/encounterParticipant <sup>(h)</sup>|.participant|[C-CDA → FHIR Participation](CF-participations.html) +|/performer/sdtc:functionCode <sup>(b)</sup>|.participant.type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/participant[@typeCode="LOC"] <sup>(b)</sup><br/>/location <sup>(h)</sup>|.location|[C-CDA → FHIR Participation](CF-participations.html) +|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)** <sup>(b)</sup><br/>/entryRelationship[@typeCode="RSON"]/observation|.reasonCode<br/>or<br/>.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.<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|**[Encounter Diagnosis](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-EncounterDiagnosis.html)** <sup>(b)</sup><br/>/entryRelationship/act[code/@code="29308-4"]/observation|**[Encounter Diagnosis](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-encounter-diagnosis.html)**<br/>&<br/>.diagnosis.condition|The observation maps identically to [CDA → FHIR Problems](./CF-problems.html).<br/>Since this is an encounter diagnosis, the `Observation.category` should be set to `encounter-diagnosis`. + + +### Example: Encounter + +<table><tr><th>CDA Encounter</th><th>FHIR Encounter Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">encounter</span> <span class="attrib">classCode=</span><span class="value">"ENC"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.49"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.49"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">2a620155-9d11-439e-92b3-5d9815ff4de8</mark>"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color11"><mark class="color11">99213</mark></mark>"</span> <span class="attrib">displayName=</span><span class="value">"<mark class="color12">Office outpatient visit 15 minutes</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"CPT"</span> <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.12</mark>"</span> + <span class="attrib">codeSystemVersion=</span><span class="value">"4"</span>> + <<span class="field">originalText</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#Encounter1_type"</span>/> + </<span class="field">originalText</span>> + </<span class="field">code</span>> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#Encounter1"</span>/> + </<span class="field">text</span>> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">201208151000-0800</mark>"</span>/> + <span class="comment"><!-- Maps to reference: <mark class="color16">Practitioner/62f17e2ae0231200076884d4</mark> --></span> + <<span class="field">performer</span>> + <<span class="field">assignedEntity</span>> + ... + </<span class="field">assignedEntity</span>> + </<span class="field">performer</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"REFR"</span>> + <<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <span class="comment"><!-- Encounter Diagnosis --></span> + <span class="comment"><!-- Creates reference: <mark class="color17">Condition/62f17e2aa2392d0008fbb232</mark> --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.80"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.80"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"29308-4"</span> <span class="attrib">displayName=</span><span class="value">"<mark class="color15">Diagnosis</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.1"</span> + <span class="attrib">codeSystemName=</span><span class="value">"LOINC"</span>/> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span>> + ... + </<span class="field">entryRelationship</span>> + </<span class="field">act</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">encounter</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Encounter</span>", + "<span class="field">id</span>": "<span class="value">62f17e2aa2392d0008fbb224</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color10">2a620155-9d11-439e-92b3-5d9815ff4de8</mark></span>", + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>" + }], + "<span class="field">status</span>": "<span class="value">finished</span>", + "<span class="field">class</span>": { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-ActCode</span>", + "<span class="field">code</span>": <mark class="color11">"AMB"</mark>, + "<span class="field">display</span>": "<span class="value">ambulatory</span>" + }, + "<span class="field">type</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://www.ama-assn.org/go/cpt</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color11">99213</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color12">Office outpatient visit 15 minutes</mark></span>" + }], + "<span class="field">text</span>": "<span class="value">Office outpatient visit</span>" + }], + "<span class="field">subject</span>": { "reference": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" }, + "<span class="field">participant</span>": [{ + "<span class="field">individual</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color16">Practitioner/62f17e2ae0231200076884d4</mark></span>" + } + }], + "<span class="field">period</span>": { + "<span class="field">start</span>": "<span class="value"><mark class="color14">2012-08-15T10:00:00-08:00</mark></span>" + }, + "<mark class="color15">diagnosis</mark>": [{ + "<span class="field">condition</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color17">Condition/62f17e2aa2392d0008fbb232</mark></span>" + } + }] +}</div> +</td></tr></table> + +### Example: EncompassingEncounter + +<table><tr><th>CDA EncompassingEncounter Example</th><th>FHIR Encounter Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">encompassingEncounter</span>> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">2a620155-9d11-439e-92b3-5d9815ff4de8</mark>"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color11"><mark class="color11">99213</mark></mark>"</span> <span class="attrib">displayName=</span><span class="value">"<mark class="color12">Office outpatient visit 15 minutes</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"CPT"</span> <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.12</mark>"</span> + <span class="attrib">codeSystemVersion=</span><span class="value">"4"</span> /> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">20120815100000-0800</mark>"</span> /> + <<span class="field">high</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">20120815101500-0800</mark>"</span> /> + </<span class="field">effectiveTime</span>> + <span class="comment"><!-- Maps to reference: <mark class="color16">Practitioner/62f17e2ae0231200076884d4</mark> --></span> + <<span class="field">participant</span>> + ... + </<span class="field">participant</span>> + <span class="comment"><!-- Maps to reference: <mark class="color17">Location/sdLoc</mark> --></span> + <<span class="field">location</span>> + ... + </<span class="field">location</span>> +</<span class="field">encompassingEncounter</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Encounter</span>", + "<span class="field">id</span>": "<span class="value">62f17e2aa2392d0008fbb224</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color10">2a620155-9d11-439e-92b3-5d9815ff4de8</mark></span>", + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>" + }], + "<span class="field">status</span>": "<span class="value">finished</span>", + "<span class="field">class</span>": { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-ActCode</span>", + "<span class="field">code</span>": <mark class="color11">"AMB"</mark>, + "<span class="field">display</span>": "<span class="value">ambulatory</span>" + }, + "<span class="field">type</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://www.ama-assn.org/go/cpt</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color11">99213</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color12">Office outpatient visit 15 minutes</mark></span>" + }] + }], + "<span class="field">subject</span>": { "reference": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" }, + "<span class="field">location</span>": [{ + "<span class="field">location</span>": { "reference": "<span class="value"><mark class="color17">Location/sdLoc</mark></span>" } + }], + "<span class="field">participant</span>": [{ + "<span class="field">individual</span>": { "reference": "<span class="value"><mark class="color16">Practitioner/62f17e2ae0231200076884d4</mark></span>" } + }], + "<span class="field">period</span>": { + "<span class="field">start</span>": "<span class="value"><mark class="color14">2012-08-15T10:00:00-08:00</mark></span>", + "<span class="field">end</span>": "<span class="value"><mark class="color15">2012-08-15T10:15:00-08:00</mark></span>" + } +} +</div> +</td></tr></table> \ 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 @@ -<style> -td, th { - border: 1px solid black!important; -} -</style> +<link rel="stylesheet" href="colors.css"> 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. <br /> <br /> ### C-CDA to FHIR -|C-CDA¹<br/>[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ImmunizationActivity.html)|FHIR<br/>[Immunization](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-immunization.html#profile)|Transform Steps| +|C-CDA¹<br/>[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationActivity.html)|FHIR<br/>[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.<br/>[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)**<br/>/entryRelationship[@typeCode="RSON"]²/observation/code<br/>(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)<br/>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)**<br/>/entryRelationship[@typeCode="RSON"]²/observation/value<br/>(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)**<br/>/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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|| +|**[Immunization Refusal Reason](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationRefusalReason.html)**<br/>/entryRelationship[@typeCode="RSON"]²/observation/code<br/>(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)<br/>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)**<br/>/entryRelationship[@typeCode="RSON"]²/observation/value<br/>(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)**<br/>/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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| 1\. XPath abbrievated for C-CDA Immunization Activity as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11369-6"]/entry/substanceAdministration<br/> 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" %} +<table><tr><th>CDA Immunization Example</th><th>FHIR Immunization Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">substanceAdministration</span> <span class="attrib">classCode=</span><span class="value">"SBADM"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span> <span class="attrib">negationInd=</span><span class="value">"false"</span>> + <span class="comment"><!-- ** Immunization activity ** --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.52"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.52"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92</mark>"</span>/> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#immun1"</span>/> + </<span class="field">text</span>> + <span class="comment"><!-- Indicates the status of the substanceAdministartion --></span> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"<mark class="color11">completed</mark>"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color12">20100815</mark>"</span>/> + <<span class="field">repeatNumber</span> <span class="attrib">value=</span><mark class="color13"><span class="value">"1"</span></mark>/> + <<span class="field">routeCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color14">C28161</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.3.26.1.1"</span> + <span class="attrib">codeSystemName=</span><span class="value">"National Cancer Institute (NCI) Thesaurus"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color15">Intramuscular Route of Administration</mark>"</span> /> + <<span class="field">approachSiteCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">700022004</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color17">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color17"><mark class="color17">SNOMED</mark> CT</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color18">Muscle and/or tendon structure of upper limb</mark>"</span> /> + <<span class="field">doseQuantity</span> <span class="attrib">value=</span><mark class="color19"><span class="value">"60"</span></mark> unit=<mark class="color20"><span class="value">"ug"</span></mark> /> + <<span class="field">administrationUnitCode</span> + <span class="attrib">code=</span><span class="value">"C44278"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.3.26.1.1"</span> + <span class="attrib">codeSystemName=</span><span class="value">"National Cancer Institute (NCI) Thesaurus"</span> + <span class="attrib">displayName=</span><span class="value">"Unit"</span>/> + <<span class="field">consumable</span>> + <<span class="field">manufacturedProduct</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <span class="comment"><!-- ** Immunization medication information ** --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.54"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.54"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"5823d446-9066-11ee-b9d1-0242ac120002"</span>/> + <<span class="field">manufacturedMaterial</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><mark class="color21"><span class="value">"88"</span></mark> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color22">2.16.840.1.113883.12.292</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color23">Influenza virus vaccine</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"CVX"</span>> + <<span class="field">originalText</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#ImmunizationProduct_100"</span>/> + </<span class="field">originalText</span>> + <<span class="field">translation</span> + <span class="attrib">code=</span><span class="value">"<mark class="color24">49281-0422-50</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color25">2.16.840.1.113883.6.69</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"NDC"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color26">Influenza vaccine</mark>"</span>/> + </<span class="field">code</span>> + <<span class="field">lotNumberText</span>>1</<span class="field">lotNumberText</span>> + </<span class="field">manufacturedMaterial</span>> + <<span class="field">manufacturerOrganization</span>> + <<span class="field">name</span>><mark class="color27">Health LS - Immuno Inc.</mark></<span class="field">name</span>> + </<span class="field">manufacturerOrganization</span>> + </<span class="field">manufacturedProduct</span>> + </<span class="field">consumable</span>> + <span class="comment"><!-- Optional Performer --></span> + <span class="comment"><!-- Creates resource: <mark class="color30">PractitionerRole/AmandaAtGoodHealthClinics</mark> --></span> + <span class="comment"><!-- With functionCode:<mark class="color31"> AP </mark>--></span> + <<span class="field">performer</span>> + <<span class="field">assignedEntity</span>> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.19.5.9999.456"</span> <span class="attrib">extension=</span><span class="value">"2981824"</span>/> + <<span class="field">addr</span>> + <<span class="field">streetAddressLine</span>>1021 Health Drive</<span class="field">streetAddressLine</span>> + <<span class="field">city</span>>Ann Arbor</<span class="field">city</span>> + <<span class="field">state</span>>MI</<span class="field">state</span>> + <<span class="field">postalCode</span>>99099</<span class="field">postalCode</span>> + </<span class="field">addr</span>> + <<span class="field">telecom</span> <span class="attrib">nullFlavor=</span><span class="value">"UNK"</span>/> + <<span class="field">assignedPerson</span>> + <<span class="field">name</span>> + <<span class="field">given</span>>Amanda</<span class="field">given</span>> + <<span class="field">family</span>>Assigned</<span class="field">family</span>> + </<span class="field">name</span>> + </<span class="field">assignedPerson</span>> + <<span class="field">representedOrganization</span>> + <<span class="field">name</span>>Good Health Clinic</<span class="field">name</span>> + </<span class="field">representedOrganization</span>> + </<span class="field">assignedEntity</span>> + </<span class="field">performer</span>> + <span class="comment"><!-- Optional Author --></span> + <<span class="field">author</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.119"</span>/> + <<span class="field">time</span> <span class="attrib">value=</span><span class="value">"<mark class="color12">20100815</mark>"</span>/> + <<span class="field">assignedAuthor</span>> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"99999999"</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.4.6"</span>/> + <<span class="field">telecom</span> <span class="attrib">use=</span><span class="value">"WP"</span> <span class="attrib">value=</span><span class="value">"tel:555-555-1002"</span>/> + <<span class="field">assignedPerson</span>> + <<span class="field">name</span>> + <<span class="field">given</span>>Henry</<span class="field">given</span>> + <<span class="field">family</span>>Seven</<span class="field">family</span>> + </<span class="field">name</span>> + </<span class="field">assignedPerson</span>> + </<span class="field">assignedAuthor</span>> + </<span class="field">author</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"RSON"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <span class="comment"><!-- Indication (V2) --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.19"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.19"</span>/> + <<span class="field">code</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span> + <span class="attrib">code=</span><span class="value">"404684003"</span> + <span class="attrib">displayName=</span><span class="value">"Clinical finding"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color28">195967001</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color17">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color29">asthma</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + <span class="comment"><!-- Reaction becomes Observation with id: <mark class="color32">Observation/WithCode247472004Wheal</mark> --></span> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"MFST"</span> <span class="attrib">inversionInd=</span><span class="value">"true"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.9"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.9"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"37006474-947a-11ee-b9d1-0242ac120002"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"ASSERTION"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span> /> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_8a7ed342-967a-400e-88d5-2f8c2b7cdda0"</span> /> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"20080501"</span>/> + <<span class="field">high</span> <span class="attrib">value=</span><span class="value">"20080501"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"247472004"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">displayName=</span><span class="value">"Wheal"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">substanceAdministration</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Immunization</span>", + "<span class="field">id</span>": "<span class="value">2b622767-4560-46ba-a1ac-58092fcdcdda</span>", + "<span class="field">status</span>": "<span class="value"><mark class="color11">completed</mark></span>", + "<span class="field">identifier</span>": [ + { + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>", + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color10">e6f1ba43-c0ed-4b9b-9f12-f435d8ad8f92</mark></span>" + } + ], + "<span class="field">vaccineCode</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color22">http://hl7.org/fhir/sid/cvx</mark></span>", + "<span class="field">code</span>": <mark class="color21">"88"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color23">Influenza virus vaccine</mark></span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color25">http://hl7.org/fhir/sid/ndc</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color24">49281-0422-50</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color26">Influenza vaccine</mark></span>" + } + ], + "<span class="field">text</span>": "<span class="value"><mark class="color23">Influenza virus vaccine</mark></span>" + }, + "<span class="field">doseQuantity</span>": { + "<span class="field">unit</span>": <mark class="color20">"ug"</mark>, + "<span class="field">value</span>": <mark class="color19">60,</mark> + "<span class="field">system</span>": "<span class="value">http://unitofmeasure.org</span>", + "<span class="field">code</span>": <mark class="color20">"ug"</mark> + }, + "<span class="field">lotNumber</span>": <mark class="color13">"1"</mark>, + "<span class="field">recorded</span>": "<span class="value"><mark class="color12">2010-08-15</mark></span>", + "<span class="field">performer</span>": [ + { + "<span class="field">actor</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color30">PractitionerRole/AmandaAtGoodHealthClinics</mark></span>" + }, + "<span class="field">function</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v2-0443</span>", + "<span class="field">code</span>": <mark class="color31">"AP"</mark>, + "<span class="field">display</span>": "<span class="value">Administering Provider</span>" + } + ] + } + } + ], + "<span class="field">reasonCode</span>": [ + { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color28">195967001</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color29">asthma</mark></span>" + } + ] + } + ], + "<span class="field">_primarySource</span>": { + "<span class="field">extension</span>": [ + { + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/data-absent-reason</span>", + "<span class="field">valueCode</span>": "<span class="value">unknown</span>" + } + ] + }, + "<span class="field">manufacturer</span>": { + "<span class="field">display</span>": "<span class="value"><mark class="color27">Health LS - Immuno Inc.</mark></span>" + }, + "<span class="field">site</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color16">700022004</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color18">Muscle and/or tendon structure of upper limb</mark></span>" + } + ] + }, + "<span class="field">route</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value">http://ncithesaurus-stage.nci.nih.gov</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color14">C28161</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color15">Intramuscular Route of Administration</mark></span>" + } + ] + }, + "<span class="field">patient</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/6581e92eb6ff5dadc088eae5</span>" + }, + "<span class="field">protocolApplied</span>": [ + { + "<span class="field">doseNumberPositiveInt</span>": <mark class="color13">1 +</mark> } + ], + "<span class="field">occurrenceDateTime</span>": "<span class="value"><mark class="color12">2010-08-15</mark></span>", + "<span class="field">reaction</span>": [ + { + "<span class="field">detail</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color32">Observation/WithCode247472004Wheal</mark></span>" + } + } + ] +}</div> +</td></tr></table> + +### Example: Refused Immunization + +<table><tr><th>CDA Refused Immunization Example</th><th>FHIR Immunization Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">entry</span> <span class="attrib">typeCode=</span><span class="value">"COMP"</span>> + <span class="comment"><!-- negationInd=true indicates substance was NOT given at this date--></span> + <<span class="field">substanceAdministration</span> <span class="attrib">classCode=</span><span class="value">"SBADM"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span> <mark class="color10">negationInd=<span class="value">"true"</span></mark>> + <span class="comment"><!-- ** Immunization activity ** --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.52"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.52"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color11">8d5942f9-5413-4486-af89-dcc5603dbec7</mark>"</span>/> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#immun2"</span>/> + </<span class="field">text</span>> + <span class="comment"><!-- Indicates the status of the substanceAdministartion --></span> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color12">20151115</mark>"</span>/> + <<span class="field">consumable</span>> + <<span class="field">manufacturedProduct</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <span class="comment"><!-- ** Immunization medication information ** --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.54"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.54"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">manufacturedMaterial</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><mark class="color13"><span class="value">"43"</span></mark> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.12.292</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color15">hepatitis B vaccine, adult dosage</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"CVX"</span>> + <<span class="field">originalText</span>>hepatitis B vaccine</<span class="field">originalText</span>> + </<span class="field">code</span>> + <lotNumberText<mark class="color16">>2<</mark>/lotNumberText> + </<span class="field">manufacturedMaterial</span>> + </<span class="field">manufacturedProduct</span>> + </<span class="field">consumable</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"RSON"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <span class="comment"><!-- Immunization Refusal Reason --></span> + <span class="comment"><!-- Included the reason since it may be relevant + to a future clinician or quality measurement --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.53"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"c1296315-9a6d-45a2-aac0-ee225d375409"</span>/> + <<span class="field">code</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color17">patient objection</mark>"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color18">PATOBJ</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"HL7 ActNoImmunizationReason"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color19">2.16.840.1.113883.5.8</mark>"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + </<span class="field">substanceAdministration</span>> +</<span class="field">entry</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">id</span>": "<span class="value">f122ceadccaa4a9accdc117634a89dda</span>", + "<span class="field">resourceType</span>": "<span class="value">Immunization</span>", + "<span class="field">vaccineCode</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": <mark class="color13">"43"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color15">hepatitis B vaccine, adult dosage</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color14">http://hl7.org/fhir/sid/cvx</mark></span>" + }] + }, + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>", + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color11">8d5942f9-5413-4486-af89-dcc5603dbec7</mark></span>" + }], + "<span class="field">lotNumber</span>": <mark class="color16">"2"</mark>, + "<span class="field">occurrenceDateTime</span>": "<span class="value"><mark class="color12">2015-11-15</mark></span>", + "<span class="field">patient</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/fff</span>" + }, + "<span class="field">_primarySource</span>": { + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/data-absent-reason</span>", + "<span class="field">valueCode</span>": "<span class="value">unknown</span>" + }] + }, + "<span class="field">status</span>": "<span class="value"><mark class="color10">not-done</mark></span>", + "<span class="field">statusReason</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color18">PATOBJ</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color17">patient objection</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color19">http://terminology.hl7.org/CodeSystem/v3-ActReason</mark></span>" + }] + } +}</div> +</td></tr></table> #### 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 @@ -<style> -td, th { - border: 1px solid black!important; -} -</style> +<link rel="stylesheet" href="colors.css"> 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 `<effectiveTime>` 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¹<br>[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-MedicationActivity.html)|FHIR<br>[MedicationRequest](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medicationrequest.html)|Transform Steps| +|C-CDA¹<br>[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationActivity.html)|FHIR<br>[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) <br/>[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<br/>[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<br/>[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<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| -|**Periodic Frequency**<br/>/effectiveTime[operator="A" and xsi:type="PIVL_TS"]<br/>.../@institutionSpecified<br/>.../period/@value<br/>.../period/@unit|.dosageInstruction.timing.repeat.frequency<br/>.dosageInstruction.timing.repeat.period<br/>.dosageInstruction.timing.repeat.periodUnit|Compare:<br/>[C-CDA Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) and <br/>[FHIR Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing) +|**Periodic Frequency**<br/>/effectiveTime[operator="A" and xsi:type="PIVL_TS"]<br/>.../@institutionSpecified<br/>.../period/@value<br/>.../period/@unit|.dosageInstruction.timing.repeat.frequency<br/>.dosageInstruction.timing.repeat.period<br/>.dosageInstruction.timing.repeat.periodUnit|Compare:<br/>[C-CDA Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) and <br/>[FHIR Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing) to determine whether `frequency` or `period` should be used.<br/>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**<br/>/effectiveTime[operator="A" and xsi:type="EIVL_TS"]<br/>.../event/@code<br/>.../offset|.dosageInstruction.timing.repeat.when<br/>.dosageInstruction.timing.repeat.offset|@code vocabulary matches .when<br/>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<br/>OR<br/>.medicationReference|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>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<br/>&<br/>**[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.<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|**[Drug Vehicle](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-DrugVehicle.html)**<br/>/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)**<br/>/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)**<br/>/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|.dosageInstruction.text|| +|**[Instruction Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Instruction.html)**<br/>/entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/act|.dosageInstruction.patientInstruction<br/>.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)**<br/>/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)<br/>`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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| |/precondition|.asNeededBoolean = true|The presence of a precondition element indicates asNeededBoolean should be true.<br/>More complex maps may be possible with .asNeededCodeableConcept.| -|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**<br/>/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)**<br/>/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|.dosageInstruction.text|| -|**[Instruction Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Instruction.html)**<br/>/entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/act|.dosageInstruction.patientInstruction<br/>.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)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|| 1\. XPath abbrievated for C-CDA Medication Activity as: <br/> 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¹<br>[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationActivity.html)|FHIR<br>[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)**<br/>.manufacturer| +|**[Drug Vehicle](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-DrugVehicle.html)**<br/>/participant[@typeCode="CSM"]/playingEntity/code|.ingredient.itemCodeableConcept|Set `.isActive = false`<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) + +### Example + +<table><tr><th>CDA Medication Example</th><th>FHIR MedicationRequest and Medication Resources</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">substanceAdministration</span> <span class="attrib">classCode=</span><span class="value">"SBADM"</span> <span class="attrib">moodCode=</span><span class="value">"INT"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.16"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.16"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">cdbd33f0-6cde-11db-9fe1-0800200c9a66</mark>"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"<mark class="color11">active</mark>"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_TS"</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"20120806"</span>/> + <<span class="field">high</span> <span class="attrib">nullFlavor=</span><span class="value">"UNK"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">effectiveTime</span> <span class="attrib">xsi:type=</span><span class="value">"PIVL_TS"</span> <span class="attrib">operator=</span>"A"> + <<span class="field">period</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_PQ"</span>> + <<span class="field">low</span> <span class="attrib">value=</span><mark class="color13"><span class="value">"4"</span></mark> unit=<mark class="color14"><span class="value">"h"</span></mark>/> + <<span class="field">high</span> <span class="attrib">value=</span><mark class="color15"><span class="value">"6"</span></mark> unit=<mark class="color14"><span class="value">"h"</span></mark>/> + </<span class="field">period</span>> + </<span class="field">effectiveTime</span>> + <<span class="field">repeatNumber</span> <span class="attrib">value=</span><mark class="color16"><mark class="color40"><span class="value">"1"</span></mark></mark>/> + <<span class="field">routeCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color17">C38288</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color18">2.16.840.1.113883.3.26.1.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"NCI Thesaurus"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color19">Oral Route of Administration</mark>"</span>/> + <<span class="field">doseQuantity</span> <span class="attrib">value=</span><mark class="color16"><mark class="color40"><span class="value">"1"</span></mark></mark>/> + <<span class="field">maxDoseQuantity</span> > + <<span class="field">numerator</span> <span class="attrib">value=</span><mark class="color15"><span class="value">"6"</span></mark> <span class="attrib">unit=</span><span class="value">"<mark class="color20">{spray}</mark>"</span> /> + <<span class="field">denominator</span> <span class="attrib">value=</span><mark class="color16"><mark class="color40"><span class="value">"1"</span></mark></mark> <span class="attrib">unit=</span><span class="value">"<mark class="color21">{day}</mark>"</span> /> + </<span class="field">maxDoseQuantity</span>> + <<span class="field">administrationUnitCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color22">C48501</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color18">2.16.840.1.113883.3.26.1.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"National Cancer Institute (NCI) Thesaurus"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color23">Inhalation dosing unit</mark>"</span>/> + <<span class="field">consumable</span>> + <<span class="field">manufacturedProduct</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.23"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.23"</span>/> + <<span class="field">manufacturedMaterial</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color24">1190220</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color25">2.16.840.1.113883.6.88</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color25">RxNorm</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color26">ACTUAT albuterol 0.1 MG/ACTUAT ... Spray</mark>"</span>/> + </<span class="field">manufacturedMaterial</span>> + <<span class="field">manufacturerOrganization</span>> + <<span class="field">name</span>><mark class="color27">Good Vaccines Inc</mark></<span class="field">name</span>> + </<span class="field">manufacturerOrganization</span>> + </<span class="field">manufacturedProduct</span>> + </<span class="field">consumable</span>> + <<span class="field">author</span>> + <span class="comment"><!-- Time the author noted that patient is on medication --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.119"</span>/> + <<span class="field">time</span> <span class="attrib">value=</span><span class="value">"<mark class="color28">201309111603-0700</mark>"</span>/> + <<span class="field">assignedAuthor</span>> + <span class="comment"><!-- Author maps to Provenance + not included in this example --></span> + </<span class="field">assignedAuthor</span>> + </<span class="field">author</span>> + <<span class="field">participant</span> <span class="attrib">typeCode=</span><span class="value">"CSM"</span>> + <<span class="field">participantRole</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.24"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"412307009"</span> + <span class="attrib">displayName=</span><span class="value">"Drug vehicle"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span>/> + <<span class="field">playingEntity</span> <span class="attrib">classCode=</span><span class="value">"MMAT"</span>> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color30">387390002</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color31">sodium chloride</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color29">SNOMED</mark>"</span>/> + <<span class="field">name</span>><mark class="color31">sodium chloride</mark></<span class="field">name</span>> + </<span class="field">playingEntity</span>> + </<span class="field">participantRole</span>> + </<span class="field">participant</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"COMP"</span>> + <span class="comment"><!-- Medication Free Text SIG --></span> + <<span class="field">substanceAdministration</span> <span class="attrib">classCode=</span><span class="value">"SBADM"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.147"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"76662-6"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.1"</span>/> + <<span class="field">text</span>> + <span class="comment"><!-- Resolves to: <mark class="color39">2 puffs every 4-6 hours as needed</mark> --></span> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#MedicationSig_PRN_222222"</span>/> + </<span class="field">text</span>> + <<span class="field">consumable</span>> + <<span class="field">manufacturedProduct</span>> + <<span class="field">manufacturedLabeledDrug</span> <span class="attrib">nullFlavor=</span><span class="value">"NA"</span>/> + </<span class="field">manufacturedProduct</span>> + </<span class="field">consumable</span>> + </<span class="field">substanceAdministration</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"RSON"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <span class="comment"><!-- Indication (V2) --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.19"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.19"</span>/> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"44"</span> <span class="attrib">root=</span><span class="value">"1.3.6.1.4.1.22812.3.99930.3.4.1.3"</span>/> + <<span class="field">code</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span> + <span class="attrib">code=</span><span class="value">"404684003"</span> + <span class="attrib">displayName=</span><span class="value">"Clinical finding"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">nullFlavor=</span><span class="value">"NI"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color32">56018004</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color33">wheezing</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span> <span class="attrib">inversionInd=</span><span class="value">"true"</span>> + <<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"INT"</span>> + <span class="comment"><!-- Instruction (V2) --></span> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.20"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.20"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color34">1153465004</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color35">Education about overdosing</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color29"><mark class="color29">SNOMED</mark> CT</mark>"</span>/> + <<span class="field">text</span>><mark class="color36">Do not overtake</mark></<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + </<span class="field">act</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"REFR"</span>> + <<span class="field">supply</span> <span class="attrib">classCode=</span><span class="value">"SPLY"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.18"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.18"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"1.2.3.4.56789.1"</span> <span class="attrib">extension=</span><span class="value">"cb734647-fc99-424c-a864-7e3cda82e704"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">effectiveTime</span>> + <<span class="field">high</span> <span class="attrib">value=</span><span class="value">"<mark class="color37">20121106</mark>"</span> /> + </<span class="field">effectiveTime</span>> + <span class="comment"><!-- Note in FHIR this is one less, so: 1 --></span> + <<span class="field">repeatNumber</span> <span class="attrib">value=</span><span class="value">"2"</span> /> + <<span class="field">quantity</span> <span class="attrib">value=</span><mark class="color38"><span class="value">"3"</span></mark> /> + <<span class="field">product</span>> + <<span class="field">manufacturedProduct</span> <span class="attrib">classCode=</span><span class="value">"MANU"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.23"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.23"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"2a620155-9d11-439e-92b3-5d9815ff4ee8"</span>/> + <<span class="field">manufacturedMaterial</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color24">1190220</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color25">2.16.840.1.113883.6.88</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color25">RxNorm</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color26">ACTUAT albuterol 0.1 MG/ACTUAT ... Spray</mark>"</span>/> + </<span class="field">manufacturedMaterial</span>> + </<span class="field">manufacturedProduct</span>> + </<span class="field">product</span>> + </<span class="field">supply</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">precondition</span> <span class="attrib">typeCode=</span><span class="value">"PRCN"</span>> + <<span class="field">criterion</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.25"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.25"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"ASSERTION"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color32">56018004</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color29">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color33">Wheezing</mark>"</span> /> + </<span class="field">criterion</span>> + </<span class="field">precondition</span>> +</<span class="field">substanceAdministration</span>></div> +</td><td> +<b>Note:</b> 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" %} +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">MedicationRequest</span>", + "<span class="field">id</span>": "<span class="value">7fc60296-0667-4a44-86e5-4c432403532e</span>", + "<span class="field">identifier</span>": [ + { + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>", + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color10">cdbd33f0-6cde-11db-9fe1-0800200c9a66</mark></span>" + } + ], + "<span class="field">status</span>": "<span class="value"><mark class="color11">active</mark></span>", + "<span class="field">intent</span>": "<span class="value">plan</span>", + "<span class="field">medicationReference</span>": { + "<span class="field">reference</span>": "<span class="value">#containedMed</span>" + }, + <span class="comment">/* Only one of these can be sent. + If not including a Medication resource + the code can just be sent in codeableConcept + "<span class="field">medicationCodeableConcept</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color25">http://www.nlm.nih.gov/research/umls/rxnorm</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color24">1190220</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color26">ACTUAT albuterol 0.1 MG/ACTUAT ... Spray</mark></span>" + } + ] + }, */ + </span>"<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/18025725</span>" + }, + "<span class="field">authoredOn</span>": "<span class="value"><mark class="color28">2013-09-11T16:03:00-07:00</mark></span>", + "<span class="field">reasonCode</span>": [ + { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color29">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color32">56018004</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color33">wheezing</mark></span>" + } + ] + } + ], + "<span class="field">dosageInstruction</span>": [ + { + "<span class="field">text</span>": "<span class="value"><mark class="color39">2 puffs every 4-6 hours as needed</mark></span>", + "<span class="field">patientInstruction</span>": "<span class="value"><mark class="color36">Do not overtake</mark></span>", + "<span class="field">additionalInstruction</span>": [ + { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color29">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color34">1153465004</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color35">Education about overdosing</mark></span>" + } + ] + } + ], + "<span class="field">timing</span>": { + "<span class="field">period</span>": <mark class="color13">4,</mark> + "<span class="field">periodMax</span>": <mark class="color15">6,</mark> + "<span class="field">periodUnit</span>": <mark class="color14">"h"</mark> + }, + "<span class="field">asNeededCodeableConcept</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color29">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color32">56018004</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color33">wheezing</mark></span>" + } + ] + }, + "<span class="field">route</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value">http://ncithesaurus-stage.nci.nih.gov</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color17">C38288</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color19">Oral Route of Administration</mark></span>" + } + ] + }, + "<span class="field">doseAndRate</span>": [ + { + "<span class="field">doseQuantity</span>": { + "<span class="field">value</span>": <mark class="color16"><mark class="color40">1 +</mark></mark> } + } + ], + "<span class="field">maxDosePerPeriod</span>": { + "<span class="field">numerator</span>": { + "<span class="field">value</span>": <span class="value">6,</span> + "<span class="field">unit</span>": "<span class="value"><mark class="color20">{spray}</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color20">{spray}</mark></span>", + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>" + }, + "<span class="field">denominator</span>": { + "<span class="field">value</span>": <span class="value">1,</span> + "<span class="field">unit</span>": "<span class="value"><mark class="color21">{day}</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color21">{day}</mark></span>", + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>" + } + } + } + ], + "<span class="field">dispenseRequest</span>": { + "<span class="field">numberOfRepeatsAllowed</span>": <span class="value">1,</span> + "<span class="field">validityPeriod</span>": { + "<span class="field">end</span>": "<span class="value"><mark class="color37">2012-11-06</mark></span>" + }, + "<span class="field">quantity</span>": { + "<span class="field">value</span>": <mark class="color38">3 +</mark> } + }, + "<span class="field">contained</span>": [{ + "<span class="field">resourceType</span>": "<span class="value">Medication</span>", + "<span class="field">id</span>": "<span class="value">containedMed</span>", + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color25">http://www.nlm.nih.gov/research/umls/rxnorm</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color24">1190220</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color26">ACTUAT albuterol 0.1 MG/ACTUAT ... Spray</mark></span>" + }] + }, + "<span class="field">form</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color18">http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color22">C48501</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color23">Inhalation dosing unit</mark></span>" + } + ] + }, + "<span class="field">manufacturer</span>": { + <span class="comment">// If more details exist, would map to Organization resource</span> + "<span class="field">display</span>": "<span class="value"><mark class="color27">Good Vaccines Inc</mark></span>" + }, + "<span class="field">ingredient</span>": [{ + "<span class="field">itemCodeableConcept</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color29">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color30">387390002</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color31">sodium chloride</mark></span>" + } + ] + } + }] + }] +}</div> +</td></tr></table> #### 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 @@ +<link rel="stylesheet" href="colors.css"> + +This page provides a mapping from CDA to FHIR. <!-- For the FHIR to CDA mapping, please refer to [Notes FHIR → CDA](./FC-notes.html). --> 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 `<act>` with a `<code>` value of `34109-9`. + +### C-CDA to FHIR + +|C-CDA¹<br/>[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)<br/>**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<br/>&<br/>/text/text()|.content.attachment.contentType<br/>&<br/>.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<br/>&<br/>.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.<br/>If the narrative has minimal markup (i.e. only `<content>` and `<paragraph>` elements which can be converted to line breaks), it can be converted to `text/plain`.<br/>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<br/>or<br/>Parent `<encounter>` element<br/>or<br/>`<encompassingEncounter>`|.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 `<encompassingEncounter>`, that is the encounter for the note.<br/>[CDA → FHIR Encounters](CF-encounters.html) +|/reference/externalDocument/id|.relatesTo.target.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| + +### Example + +<table><tr><th>CDA Note Activity Example</th><th>FHIR DocumentReference Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.202"</span> <span class="attrib">extension=</span><span class="value">"2016-11-01"</span>/> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color10">34109-9</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color11">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color11">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color12">Note</mark>"</span>> + <span class="comment"><!-- Code must match or be equivalent to section code --></span> + <<span class="field">translation</span> + <span class="attrib">code=</span><span class="value">"<mark class="color13">11488-4</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color11">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color11">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color14">Consultation note</mark>"</span>/> + </<span class="field">code</span>> + <<span class="field">text</span> <span class="attrib">mediaType=</span><span class="value">"<mark class="color16">application/rtf</mark>"</span> <span class="attrib">representation=</span><span class="value">"B64"</span>> + <mark class="color15">e1xydGYxXGFuc2kgSGVsbG8gd29ybGQhfQ==</mark> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#ConsultNote1"</span>/> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <span class="comment"><!-- Clinically-relevant time of the note --></span> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color17">20160908</mark>"</span>/> + <span class="comment"><!-- Author Participation --></span> + <<span class="field">author</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.119"</span>/> + <span class="comment"><!-- Time note was actually written --></span> + <<span class="field">time</span> <span class="attrib">value=</span><span class="value">"<mark class="color18">20160908083215-0500</mark>"</span>/> + <<span class="field">assignedAuthor</span>> + <span class="comment"><!-- Full author information is elsewhere in the document . --></span> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"20cf14fb-b65c-4c8c-a54d-b0cca834c18c"</span>/> + <span class="comment"><!-- Becomes reference: <mark class="color20">Practitioner/DrSpecialist</mark> --></span> + <<span class="field">assignedPerson</span>> + <<span class="field">name</span>> + <<span class="field">prefix</span>>Dr.</<span class="field">prefix</span>> + <<span class="field">family</span>>Specialist</<span class="field">family</span>> + </<span class="field">name</span>> + </<span class="field">assignedPerson</span>> + </<span class="field">assignedAuthor</span>> + </<span class="field">author</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"COMP"</span>> + <span class="comment"><!-- Creates an encounter with reference: <mark class="color21">Encounter/123</mark> --></span> + <<span class="field">encounter</span>> + ... + </<span class="field">encounter</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">reference</span> <span class="attrib">typeCode=</span><span class="value">"REFR"</span>> + <<span class="field">externalDocument</span>> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color19">4dc41c26-43a4-48d9-b17e-067890006b29</mark>"</span> /> + </<span class="field">externalDocument</span>> + </<span class="field">reference</span>> +</<span class="field">act</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">DocumentReference</span>", + "<span class="field">id</span>": "<span class="value">642ed1f93eec840007aaec72</span>", + "<span class="field">language</span>": "<span class="value">en-US</span>", + "<span class="field">status</span>": "<span class="value">current</span>", + "<span class="field">type</span>": { + "<span class="field">text</span>": "<span class="value"><mark class="color12">Note</mark></span>", + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color10">34109-9</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color11">http://loinc.org</mark></span>" + }, + { + "<span class="field">code</span>": "<span class="value"><mark class="color13">11488-4</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color11">http://loinc.org</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color14">Consultation Note</mark></span>" + }] + }, + "<span class="field">category</span>": [{ + "<span class="field">text</span>": "<span class="value">Clinical Note</span>", + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value">clinical-Note</span>", + "<span class="field">system</span>": "<span class="value">http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category</span>", + "<span class="field">display</span>": "<span class="value">Clinical Note</span>" + }] + }], + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">urn:uuid:a4986486-6599-4bb2-a7fb-e2deb8d50b5e</span>" + }, + "<span class="field">date</span>": "<span class="value"><mark class="color18">2016-09-08T08:32:15-05:00</mark></span>", + "<span class="field">author</span>": [{ + "<span class="field">reference</span>": "<span class="value"><mark class="color20">Practitioner/DrSpecialist</mark></span>" + }], + "<span class="field">content</span>": [{ + "<span class="field">attachment</span>": { + "<span class="field">data</span>": "<span class="value"><mark class="color15">e1xydGYxXGFuc2kgSGVsbG8gd29ybGQhfQ==</mark></span>", + "<span class="field">contentType</span>": "<span class="value"><mark class="color16">application/rtf</mark></span>" + } + }], + "<span class="field">context</span>": { + "<span class="field">period</span>": { + "<span class="field">start</span>": "<span class="value"><mark class="color17">2016-09-08</mark></span>" + }, + "<span class="field">encounter</span>": [{ + "<span class="field">reference</span>": "<span class="value"><mark class="color21">Encounter/123</mark></span>" + }] + }, + "<span class="field">relatesTo</span>": { + "<span class="field">target</span>": { + "<span class="field">identifier</span>": { + "<span class="field">system</span>": "<span class="value">urn:ietf:rfc:3986</span>", + "<span class="field">value</span>": "<span class="value">urn:uuid:<mark class="color19">4dc41c26-43a4-48d9-b17e-067890006b29</mark></span>" + } + } + } +}</div> +</td></tr></table> \ 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 @@ +<link rel="stylesheet" href="colors.css"> + +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)<br/>(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) / <br/>[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)<br/>(ClinicalDocument)|[Participant](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Participant2.html)<br/>(Everywhere Else)| +|:----|:----|:----|:----|:----|:----| +|`@typeCode=AUT`|`@typeCode=ENT`|`@typeCode=INF`|`@typeCode=PRF`|@typeCode|@typeCode +|functionCode|||sdtc:functionCode<br/>(no sdtc: in ServiceEvent)|functionCode|sdtc:functionCode +|time|time||time|time|time +||||modeCode (not in serviceEvent)||awarenessCode +|**assignedAuthor**|**assignedEntity**|**assignedEntity**<br/>or<br/>**relatedEntity**|**assignedEntity**|**associatedEntity**|**participantRole** +|`/@classCode=ASSIGNED`|`/@classCode=ASSIGNED`|/@classCode<br/>(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**<br/>or<br/>/**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**<br/>(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 `<asPatientRelationship>` 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 `<functionCode>` and `<time>` properties correspond to fields in the resource that is referencing the practitioner. For example, Encounter.participant.individual points to Practitioner, while CDA's `<functionCode>` would map to Encounter.participant.type. Likewise, `<time>` often maps to fields like `recorded` or `assertedDate`. + +### Mapping id +Though the `<id>` element in CDA is recorded at the role level, it is used to represent the id of the person, not their role. For example, clinicians' NPI's are recorded here. For this reason, the `<id>` should always be mapped to Practitioner.identifier or RelatedPerson.identifier, not to PractitionerRole.identifier + +Note that this is different than the `<id>` underneath `<representedOrganization>` or `<scopingOrganization>` which maps to the identifier in an Organization resource. + +### Mapping code +The `<code>` element in CDA is ambiguous and mapping to FHIR often depends on context and/or the coding system used. Common mappings to FHIR locations include: + +- **PractitionerRole.code** - role the participant is playing +- **PractitionerRole.specialty** - specific specialty of the provider +- **RelatedPerson.relationship** - when talking about a non-provider (though `<asPatientRelationship>/<code>` is a more appropriate location, it is a recently-added extension and not commonly populated) +- **Practitioner**.qualification.code - uncommon; this is more commonly found in name/suffix + +Additionally, if there is a `<representedOrganization>` or `<scopingOrganization>` with *only* a `<standardIndustryClassCode>` populated, this could also indicate specialty. + +### Practitioner vs ParticipantRole +When there is information about a person AND an organization, the PractitionerRole resource should be created to represent the role that person plays at that organization. + +Additionally, if `<code>` corresponds to role code or specialty, the PractitionerRole resource is the only way to convey this information. + +### CDA to FHIR Organization +Note when the only field populated is `<standardIndustryClassCode>`, the Organization resource can be omitted and simply populate the PractitionerRole.specialty. + +|CDA [Organization](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Organization.html)|CDA [Participant/scopingEntity](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Entity.html)<br/>(Only when `@classCode` = `ORG` or a similar class)|FHIR [Organization](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-organization.html)|Transform Steps| +|:----|:----|:---|:---| +|/id|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/name|/desc|.name|This is just a string in FHIR +|/telecom|/telecom|.telecom|[CDA id ↔ FHIR telecom](mappingGuidance.html#cda-telecom--fhir-telecom)| +|/addr|/addr|.address|[CDA id ↔ FHIR address](mappingGuidance.html#cda-addr--fhir-address)| +|/standardIndustryClassCode|/code|.type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/asOrganizationPartOf|/asOrganizationPartOf|.partOf|Recursive Organization reference + +#### Example - CDA to FHIR Organization +Note - the CDA tag could be any number of organization tags like `<representedOrganization>`, `<scopingOrganization>`, etc. +<table><tr><th>CDA Organization</th><th>FHIR Organization</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">Organization</span>> + <<span class="field">id</span> <span class="attrib">extension=</span><mark class="color10"><span class="value">"3"</span></mark> + <span class="attrib">root=</span><span class="value">"<mark class="color11">1.3.6.1.4.1.22812.3.2009316.3</mark>"</span> /> + <<span class="field">name</span>><mark class="color12">Primary Care Partners Test</mark></<span class="field">name</span>> + <<span class="field">telecom</span> <span class="attrib">use=</span><mark class="color13"><span class="value">"WP"</span></mark> + <span class="attrib">value=</span><span class="value">"tel:<mark class="color14">+1-(676)857-6769</mark>"</span> /> + <<span class="field">addr</span> <span class="attrib">use=</span><mark class="color13"><span class="value">"WP"</span></mark>> + <<span class="field">streetAddressLine</span>><mark class="color15">123 main street</mark></<span class="field">streetAddressLine</span>> + <<span class="field">city</span>><mark class="color16">Chicago</mark></<span class="field">city</span>> + <state<mark class="color17">>IL<</mark>/state> + <<span class="field">postalCode</span>><mark class="color18">60629</mark></<span class="field">postalCode</span>> + </<span class="field">addr</span>> +</<span class="field">Organization</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Organization</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">value</span>": <mark class="color10">"3"</mark>, + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color11">1.3.6.1.4.1.22812.3.2009316.3</mark></span>" + }], + "<span class="field">name</span>": "<span class="value"><mark class="color12">Primary Care Partners Test</mark></span>", + "<span class="field">address</span>": [{ + "<span class="field">use</span>": "<span class="value"><mark class="color13">work</mark></span>", + "<span class="field">line</span>": [ "<mark class="color15">123 main street</mark>" ], + "<span class="field">city</span>": "<span class="value"><mark class="color16">Chicago</mark></span>", + "<span class="field">state</span>": <mark class="color17">"IL"</mark>, + "<span class="field">postalCode</span>": "<span class="value"><mark class="color18">60629</mark></span>" + }], + "<span class="field">telecom</span>": [{ + "<span class="field">value</span>": "<span class="value"><mark class="color14">+1-(676)857-6769</mark></span>", + "<span class="field">use</span>": "<span class="value"><mark class="color13">work</mark></span>", + "<span class="field">system</span>": "<span class="value">phone</span>" + }], + "<span class="field">active</span>": true +}</div> +</td></tr></table> + +### CDA to FHIR Practitioner + +|[AssignedAuthor](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-AssignedAuthor.html)<br/>[AssignedEntity](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-AssignedEntity.html)<br/>[AssociatedEntity](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-AssociatedEntity.html)<br/>[ParticipantRole](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-ParticipantRole.html)|[Practitioner](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-practitioner.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/code||See [See Mapping code](#mapping-code)<br/>In most cases, the presence of a `<code>` requires a PractitionerRole resource.| +|/addr|.address|[CDA id ↔ FHIR address](mappingGuidance.html#cda-addr--fhir-address)<br/>In FHIR this is a non-role-specific, such as a home address.<br/>If this represents a role address, this should go into PractitionerRole.address.| +|/telecom|.telecom|[CDA id ↔ FHIR telecom](mappingGuidance.html#cda-telecom--fhir-telecom)| +|**[Person](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Person.html)<br/>[PlayingEntity](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-PlayingEntity.html)**||Person is the CDA data type for `<assignedPerson>` and `<associatedPerson>`.| +|//name|.name|[CDA name ↔ FHIR name](mappingGuidance.html#cda-name--fhir-name)| +|//name/suffix|.qualification.code|If the suffix contains a qualifier like PhD, CNP, etc.| +|//desc|.qualification.code<br/>or<br/>.text|Only map to qualifier if desc contains a qualifier. diff --git a/input/pagecontent/CF-patient.md b/input/pagecontent/CF-patient.md index 11d4442c..f2059764 100644 --- a/input/pagecontent/CF-patient.md +++ b/input/pagecontent/CF-patient.md @@ -1,8 +1,4 @@ -<style> -td, th { - border: 1px solid black!important; -} -</style> +<link rel="stylesheet" href="colors.css"> This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Patient FHIR → CDA](./FC-patient.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html) @@ -10,37 +6,307 @@ This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, plea <br /> ### C-CDA to FHIR -|C-CDA¹<br/>[US Realm Header recordTarget](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-USRealmHeader.html)|FHIR<br/>[Patient](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html#profile)|Transform Steps| +|C-CDA¹<br/>[US Realm Header recordTarget](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-USRealmHeader.html)|FHIR<br/>[Patient](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html#profile)|Transform Steps| |:----|:----|:----| -|/patientRole/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| -|/patientRole/addr|.address|[CDA addr ↔ FHIR address ](mappingGuidance.html#cda-addr--fhir-address)| -|/patientRole/telecom|.telecom|[CDA telecom ↔ FHIR telecom](mappingGuidance.html#cda-telecom--fhir-telecom)| -|/patientRole/patient/name|.name|[CDA name ↔ FHIR name ](mappingGuidance.html#cda-name--fhir-name)| -|/patientRole/patient/administrativeGenderCode|.gender|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[CDA administrativeGender → FHIR gender](ConceptMap-CF-AdministrativeGender.html)| -|/patientRole/patient/birthTime|.birthDate|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) <br/>**Note:** the FHIR birthDate element is less precise than the CDA birthtime element. Precision can be preserved by also using the extension [`patient-birthTime`](https://hl7.org/fhir/R4/extension-patient-birthtime.html).| -|/patientRole/patient/sdtc:deceasedInd|.deceasedBoolean|**Note:** Only one of `deceasedBoolean` or `deceasedDateTime` may exist. If both are present in CDA, use deceasedDateTime. -|/patientRole/patient/sdtc:deceasedTime|.deceasedDateTime|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) -|/patientRole/patient/maritalStatusCode|.maritalStatus|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|/patientRole/patient/raceCode|.extension:[us-core-race](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-race.html): ombCategory|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension.| -|/patientRole/patient/sdtc:raceCode|.extension:[us-core-race](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-race.html)|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>If code is in [OMB category](http://hl7.org/fhir/us/core/ValueSet/omb-race-category), use us-core-race: ombCategory; else use us-core-race: detailed.<br/>If the detailed race is under a different OMB category that the non-sdtc:raceCode element, then an additional OMB category sub-extension should be included as well.| -|/patientRole/patient/ethnicGroupCode|.extension:[us-core-ethnicity](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-ethnicity.html)|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension.| -|/patientRole/patient/sdtc:ethnicGroupCode|.extension:[us-core-ethnicity](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-ethnicity.html) : detailed|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>Used for detailed ethnicity| -|/patientRole/patient/languageCommunication/languageCode|.communication.language|| -|/patientRole/patient/languageCommunication/preferenceInd|.communication.preferred|| -|/patientRole/providerOrganization|.managingOrganization| - -1\. XPath abbrievated for C-CDA US Realm recordTarget as: <br/> ClinicalDocument/recordTarget/ - -### Illustrative example - -{% include examplebutton.html example="CF_patient_example" b_title = "Click on Here To See Highlighted Example" %} +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/addr|.address|[CDA addr ↔ FHIR address ](mappingGuidance.html#cda-addr--fhir-address)| +|/telecom|.telecom|[CDA telecom ↔ FHIR telecom](mappingGuidance.html#cda-telecom--fhir-telecom)| +|/patient/name|.name|[CDA name ↔ FHIR name ](mappingGuidance.html#cda-name--fhir-name)| +|/patient/administrativeGenderCode|.gender|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[CDA administrativeGender → FHIR gender](ConceptMap-CF-AdministrativeGender.html)| +|/patient/birthTime|.birthDate|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) <br/>**Note:** the FHIR birthDate element is less precise than the CDA birthtime element. Precision can be preserved by also using the extension [`patient-birthTime`](https://hl7.org/fhir/R4/extension-patient-birthtime.html).| +|/patient/sdtc:deceasedInd|.deceasedBoolean|**Note:** Only one of `deceasedBoolean` or `deceasedDateTime` may exist. If both are present in CDA, use deceasedDateTime. +|/patient/sdtc:deceasedTime|.deceasedDateTime|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/patient/maritalStatusCode|.maritalStatus|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/patient/religiousAffiliationCode|.extension:[patient-religion](https://hl7.org/fhir/extensions/StructureDefinition-patient-religion.html).valueCodeableConcept|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/patient/raceCode|.extension:[us-core-race](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-race.html): ombCategory|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension.| +|/patient/sdtc:raceCode|.extension:[us-core-race](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-race.html)|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>If code is in [OMB category](http://hl7.org/fhir/us/core/ValueSet/omb-race-category), use us-core-race: ombCategory; else use us-core-race: detailed.<br/>If the detailed race is under a different OMB category that the non-sdtc:raceCode element, then an additional OMB category sub-extension should be included as well.| +|/patient/raceCode/originalText<br/>and<br/>/patient/sdtc:raceCode/originalText|.extension:[us-core-race](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-race.html): text|The race extension's text sub-extension is required but may only exist once. Recommendation is to comma-delimit all originalText / displayNames available, taking care to not duplicate values. +|/patient/ethnicGroupCode|.extension:[us-core-ethnicity](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-ethnicity.html)|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>This should be a category and map to the ombCategory sub-extension. But if it is a detailed race, then it should go in the detailed sub-extension.| +|/patient/sdtc:ethnicGroupCode|.extension:[us-core-ethnicity](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-ethnicity.html) : detailed|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>Used for detailed ethnicity| +|/patient/guardian/code<br/>and<br/>/patient/guardian/guardianPerson/sdtc:asPatientRelationship/code|.contact.relationship|First, add a fixed relationship code of `GUARD` from [v3 RoleCode](http://terminology.hl7.org/CodeSystem/v3-RoleCode) (`http://terminology.hl7.org/CodeSystem/v3-RoleCode`) to preserve the CDA guardian relationship. Then map the two fields to additional relationship entries using [CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept) +|/patient/guardian/addr|.contact.address|[CDA addr ↔ FHIR address ](mappingGuidance.html#cda-addr--fhir-address)| +|/patient/guardian/telecom|.contact.telecom|[CDA telecom ↔ FHIR telecom](mappingGuidance.html#cda-telecom--fhir-telecom)| +|/patient/guardian/guardianPerson/name|.contact.name|[CDA name ↔ FHIR name ](mappingGuidance.html#cda-name--fhir-name)| +|/patient/birthPlace/place/addr|.extension:[patient-birthPlace](http://hl7.org/fhir/StructureDefinition/patient-birthPlace).valueAddress|[CDA addr ↔ FHIR address ](mappingGuidance.html#cda-addr--fhir-address)| +|/patient/languageCommunication/languageCode|.communication.language|| +|/patient/languageCommunication/preferenceInd|.communication.preferred|| +|/patient/languageCommunication/modeCode|.communication.extension:[patient-proficiency](http://hl7.org/fhir/StructureDefinition/patient-proficiency):type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>If both modeCode and proficiencyLevelCode are set for a language, only one `patient-proficiency` extension is needed. +|/patient/languageCommunication/proficiencyLevelCode|.communication.extension:[patient-proficiency](http://hl7.org/fhir/StructureDefinition/patient-proficiency):level|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>If both modeCode and proficiencyLevelCode are set for a language, only one `patient-proficiency` extension is needed. +|/providerOrganization|.managingOrganization| + +1\. XPath abbrievated for C-CDA US Realm recordTarget as: <br/> ClinicalDocument/recordTarget/patientRole + +### Example + +<table><tr><th>CDA RecordTarget Example</th><th>FHIR Patient Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">recordTarget</span>> + <<span class="field">patientRole</span>> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">068F3166-5721-4D69-94ED-8278FF035B8A</mark>"</span> /> + <<span class="field">addr</span> <span class="attrib">use=</span><mark class="color11"><span class="value">"H"</span></mark>> + <<span class="field">streetAddressLine</span>><mark class="color12">1357 Amber Drive</mark></<span class="field">streetAddressLine</span>> + <<span class="field">city</span>><mark class="color13">Beaverton</mark></<span class="field">city</span>> + <<span class="field">state</span>>OR</<span class="field">state</span>> + <<span class="field">postalCode</span>><mark class="color14">97006</mark></<span class="field">postalCode</span>> + </<span class="field">addr</span>> + <<span class="field">telecom</span> <span class="attrib">value=</span><span class="value">"tel:<mark class="color15">+1(565)867-5309</mark>"</span> <span class="attrib">use=</span><span class="value">"MC"</span>/> + <<span class="field">patient</span>> + <<span class="field">name</span> <span class="attrib">use=</span><span class="value">"L"</span>> + <<span class="field">given</span>><mark class="color16">Myra</mark></<span class="field">given</span>> + <<span class="field">family</span>><mark class="color17">Jones</mark></<span class="field">family</span>> + </<span class="field">name</span>> + <<span class="field">administrativeGenderCode</span> + <span class="attrib">code=</span><mark class="color18"><span class="value">"F"</span></mark> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.1"</span> /> + <<span class="field">birthTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color19">19470501</mark>"</span> /> + <<span class="field">sdtc:deceasedInd</span> <span class="attrib">value=</span><span class="value">"<mark class="color20">false</mark>"</span> /> + <<span class="field">maritalStatusCode</span> + <span class="attrib">code=</span><mark class="color21"><span class="value">"M"</span></mark> + <span class="attrib">displayName=</span><span class="value">"<mark class="color22">Married</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.2"</span> + <span class="attrib">codeSystemName=</span><span class="value">"MaritalStatus"</span>/> + <<span class="field">religiousAffiliationCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color23">1013</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color24">Christian (non-Catholic, non-specific)</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.1076"</span> + <span class="attrib">codeSystemName=</span><span class="value">"HL7 Religious Affiliation"</span>/> + <<span class="field">raceCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color25">2106-3</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color26">2.16.840.1.113883.6.238</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color27">White</mark>"</span> /> + <<span class="field">sdtc:raceCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color28">2108-9</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color29">European</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color26">2.16.840.1.113883.6.238</mark>"</span> /> + <<span class="field">ethnicGroupCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color30">2135-2</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color26">2.16.840.1.113883.6.238</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color31">Hispanic or Latino</mark>"</span> /> + <<span class="field">sdtc:ethnicGroupCode</span> + <span class="attrib">code=</span><span class="value">"<mark class="color32"><mark class="color32">20146-9</mark></mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color33">Spanish Basque</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color26">2.16.840.1.113883.6.238</mark>"</span> /> + <<span class="field">guardian</span>> + <<span class="field">code</span> + <span class="attrib">code=</span><mark class="color34"><span class="value">"FTH"</span></mark> + <span class="attrib">displayName=</span><span class="value">"<mark class="color35">father</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.111"</span> + <span class="attrib">codeSystemName=</span><span class="value">"RoleCode"</span> /> + <<span class="field">addr</span> <span class="attrib">use=</span><mark class="color11"><span class="value">"H"</span></mark>> + <<span class="field">streetAddressLine</span>><mark class="color36">123 main street</mark></<span class="field">streetAddressLine</span>> + <<span class="field">city</span>><mark class="color13">Beaverton</mark></<span class="field">city</span>> + <<span class="field">state</span>>OR</<span class="field">state</span>> + <<span class="field">postalCode</span>><mark class="color37">97867</mark></<span class="field">postalCode</span>> + </<span class="field">addr</span>> + <<span class="field">telecom</span> <span class="attrib">value=</span><span class="value">"tel:<mark class="color38">+1(555)555-2008</mark>"</span> <span class="attrib">use=</span><span class="value">"MC"</span> /> + <<span class="field">guardianPerson</span>> + <<span class="field">name</span>> + <<span class="field">given</span>><mark class="color39">Boris</mark></<span class="field">given</span>> + <<span class="field">given</span> <span class="attrib">qualifier=</span><span class="value">"CL"</span><mark class="color40">>Bo<</mark>/given> + <<span class="field">family</span>><mark class="color41">Betterhalf</mark></<span class="field">family</span>> + </<span class="field">name</span>> + </<span class="field">guardianPerson</span>> + </<span class="field">guardian</span>> + <<span class="field">birthplace</span>> + <<span class="field">place</span>> + <<span class="field">addr</span>> + <<span class="field">streetAddressLine</span>><mark class="color42">4444 Birth Street</mark></<span class="field">streetAddressLine</span>> + <<span class="field">city</span>><mark class="color13">Beaverton</mark></<span class="field">city</span>> + <<span class="field">state</span>>OR</<span class="field">state</span>> + <<span class="field">postalCode</span>><mark class="color37">97867</mark></<span class="field">postalCode</span>> + </<span class="field">addr</span>> + </<span class="field">place</span>> + </<span class="field">birthplace</span>> + <<span class="field">languageCommunication</span>> + <<span class="field">languageCode</span> <span class="attrib">code=</span><mark class="color10"><span class="value">"en"</span></mark> /> + <<span class="field">modeCode</span> + <span class="attrib">code=</span><mark class="color11"><span class="value">"ESP"</span></mark> + <span class="attrib">displayName=</span><span class="value">"<mark class="color12">Expressed spoken</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.60"</span> + <span class="attrib">codeSystemName=</span><span class="value">"LanguageAbilityMode"</span>/> + <<span class="field">proficiencyLevelCode</span> + <span class="attrib">code=</span><mark class="color13"><span class="value">"G"</span></mark> + <span class="attrib">displayName=</span><span class="value">"<mark class="color14">Good</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.61"</span> + <span class="attrib">codeSystemName=</span><span class="value">"LanguageAbilityProficiency"</span>/> + <<span class="field">preferenceInd</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">true</mark>"</span> /> + </<span class="field">languageCommunication</span>> + </<span class="field">patient</span>> + <span class="comment"><!-- Creates reference: <mark class="color16">Organization/PCPartnersTest</mark> --></span> + <<span class="field">providerOrganization</span>> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"3"</span> <span class="attrib">root=</span><span class="value">"1.3.6.1.4.1.22812.3.2009316.3"</span> /> + <<span class="field">name</span>>Primary Care's Partners Test</<span class="field">name</span>> + <<span class="field">telecom</span> <span class="attrib">use=</span><span class="value">"WP"</span> <span class="attrib">value=</span><span class="value">"tel:+1-(676)857-6769"</span> /> + </<span class="field">providerOrganization</span>> + </<span class="field">patientRole</span>> +</<span class="field">recordTarget</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Patient</span>", + "<span class="field">id</span>": "<span class="value">6581e92eb6ff5dadc088eae5</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:uuid:<mark class="color10">068f3166-5721-4d69-94ed-8278ff035b8a</mark></span>", + "<span class="field">value</span>": "<span class="value">urn:ietf:rfc:3986</span>" + }], + "<span class="field">language</span>": "<span class="value">en-US</span>", + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/patient-religion</span>", + "<span class="field">valueCodeableConcept</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-ReligiousAffiliation</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color23">1013</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color24">Christian (non-Catholic, non-specific)</mark></span>" + }] + } + }, { + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity</span>", + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">ombCategory</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color26">2.16.840.1.113883.6.238</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color30">2135-2</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color31">Hispanic or Latino</mark></span>" + } + }, { + "<span class="field">url</span>": "<span class="value">text</span>", + "<span class="field">valueString</span>": "<span class="value"><mark class="color31">Hispanic or Latino</mark>, <mark class="color33">Spanish Basque</mark></span>" + }, { + "<span class="field">url</span>": "<span class="value">detailed</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color26">2.16.840.1.113883.6.238</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color32"><mark class="color32">20146-9</mark></mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color33">Spanish Basque</mark></span>" + } + }] + }, { + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/us/core/StructureDefinition/us-core-race</span>", + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">ombCategory</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color26">2.16.840.1.113883.6.238</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color25">2106-3</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color27">White</mark></span>" + } + }, { + "<span class="field">url</span>": "<span class="value">text</span>", + "<span class="field">valueString</span>": "<span class="value"><mark class="color27">White</mark>, <mark class="color29">European</mark></span>" + }, { + "<span class="field">url</span>": "<span class="value">detailed</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color26">2.16.840.1.113883.6.238</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color28">2108-9</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color29">European</mark></span>" + } + }] + }, + { + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/patient-birthPlace</span>", + "<span class="field">valueAddress</span>": { + "<span class="field">line</span>": ["<mark class="color42">4444 Birth Street</mark>"], + "<span class="field">city</span>": "<span class="value"><mark class="color13">Beaverton</mark></span>", + "<span class="field">state</span>": "<span class="value">OR</span>", + "<span class="field">postalCode</span>": "<span class="value"><mark class="color37">97867</mark></span>" + } + }], + "<span class="field">name</span>": [{ + "<span class="field">text</span>": "<span class="value"><mark class="color16">Myra</mark> <mark class="color17">Jones</mark></span>", + "<span class="field">use</span>": "<span class="value">usual</span>", + "<span class="field">family</span>": "<span class="value"><mark class="color17">Jones</mark></span>", + "<span class="field">given</span>": ["<mark class="color16">Myra</mark>"] + }], + "<span class="field">telecom</span>": [{ + "<span class="field">system</span>": "<span class="value">phone</span>", + "<span class="field">value</span>": "<span class="value"><mark class="color15">+1(565)867-5309</mark></span>", + "<span class="field">use</span>": "<span class="value">mobile</span>" + }], + "<span class="field">gender</span>": "<span class="value"><mark class="color18">female</mark></span>", + "<span class="field">birthDate</span>": "<span class="value"><mark class="color19">1947-05-01</mark></span>", + "<span class="field">deceasedBoolean</span>": <mark class="color20">false</mark>, + "<span class="field">address</span>": [{ + "<span class="field">use</span>": "<span class="value"><mark class="color11">home</mark></span>", + "<span class="field">text</span>": "<span class="value"><mark class="color12">1357 Amber Drive</mark> <mark class="color13">Beaverton</mark> OR <mark class="color14">97006</mark></span>", + "<span class="field">line</span>": ["<mark class="color12">1357 Amber Drive</mark>"], + "<span class="field">city</span>": "<span class="value"><mark class="color13">Beaverton</mark></span>", + "<span class="field">state</span>": "<span class="value">OR</span>", + "<span class="field">postalCode</span>": "<span class="value"><mark class="color14">97006</mark></span>" + }], + "<span class="field">maritalStatus</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-MaritalStatus</span>", + "<span class="field">code</span>": <mark class="color21">"M"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color22">Married</mark></span>" + }] + }, + "<span class="field">contact</span>": [{ + "<span class="field">relationship</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-RoleCode</span>", + "<span class="field">code</span>": "<span class="value">GUARD</span>", + "<span class="field">display</span>": "<span class="value">Guardian</span>" + }] + }, { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-RoleCode</span>", + "<span class="field">code</span>": <mark class="color34">"FTH"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color35">father</mark></span>" + }] + }], + "<span class="field">name</span>": { + "<span class="field">family</span>": "<span class="value"><mark class="color41">Betterhalf</mark></span>", + "<span class="field">given</span>": [ + "<mark class="color39">Boris</mark>", + <mark class="color40">"Bo"</mark> + ] + }, + "<span class="field">telecom</span>": [{ + "<span class="field">system</span>": "<span class="value">phone</span>", + "<span class="field">value</span>": "<span class="value"><mark class="color38">+1(555)555-2008</mark></span>", + "<span class="field">use</span>": "<span class="value">mobile</span>" + }], + "<span class="field">address</span>": { + "<span class="field">use</span>": "<span class="value"><mark class="color11">home</mark></span>", + "<span class="field">line</span>": ["<mark class="color36">123 main street</mark>"], + "<span class="field">city</span>": "<span class="value"><mark class="color13">Beaverton</mark></span>", + "<span class="field">state</span>": "<span class="value">OR</span>", + "<span class="field">postalCode</span>": "<span class="value"><mark class="color37">97867</mark></span>" + } + }], + "<span class="field">communication</span>": [{ + "<span class="field">language</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:ietf:bcp:47</span>", + "<span class="field">code</span>": <mark class="color10">"en"</mark>, + "<span class="field">display</span>": "<span class="value">English</span>" + }] + }, + "<span class="field">preferred</span>": <mark class="color15">true</mark>, + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/patient-proficiency</span>", + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">level</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityProficiency</span>", + "<span class="field">code</span>": <mark class="color13">"G"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color14">Good</mark></span>" + } + }, { + "<span class="field">url</span>": "<span class="value">type</span>", + "<span class="field">valueCoding</span>": { + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v3-LanguageAbilityMode</span>", + "<span class="field">code</span>": <mark class="color11">"ESP"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color12">Expressed spoken</mark></span>" + } + }] + }] + }], + "<span class="field">managingOrganization</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color16">Organization/PCPartnersTest</mark></span>" + } +}</div> +</td></tr></table> #### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Patient CDA example](./Binary-CF-patient.html) -* [Patient FHIR example](./Patient-CF-patient.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%20Patient.csv) \ No newline at end of file +* [Patient FHIR example](./Patient-CF-patient.html) \ No newline at end of file diff --git a/input/pagecontent/CF-problems.md b/input/pagecontent/CF-problems.md index 36c2f153..33ff1c78 100644 --- a/input/pagecontent/CF-problems.md +++ b/input/pagecontent/CF-problems.md @@ -1,8 +1,4 @@ -<style> -td, th { - border: 1px solid black!important; -} -</style> +<link rel="stylesheet" href="colors.css"> This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Problems FHIR → CDA](./FC-problems.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). @@ -13,11 +9,11 @@ Note that C-CDA includes a Concern wrapper act from which status may be read; mo <br /> ### C-CDA to FHIR -|C-CDA¹<br/>[Problem Concern Act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemConcernAct.html)|FHIR<br/>[Condition and Health Concern](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-problems-health-concerns.html)|Transform Steps| +|C-CDA¹<br/>[Problem Concern Act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemConcernAct.html)|FHIR<br/>[Condition and Health Concern](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-problems-health-concerns.html)|Transform Steps| |:----|:----|:----| |From the parent section, use code@code|.category|[CDA section → FHIR category](ConceptMap-CF-ProblemCategory.html)<br/>**Note:** The section of a Problem Observation affects its FHIR category.| |/statusCode|.clinicalStatus|/statusCode → .clinicalStatus is to be used only if the C-CDA Problem Status Observation (see below) is missing.<br/>For more information on how status is managed in Problem Concern Act wrapper, refer to [C-CDA guidance, see 5.2.6.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)<br/> [Concern Status → Condition Clinical Status](ConceptMap-CF-ConditionClinicalStatus.html) -|All of the following are a [Problem observation](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemObservation.html) nested inside the [Problem Concern act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemConcernAct.html). Each observation should become a distinct FHIR Condition resource. <br/>/entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below²||| +|All of the following are a [Problem observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemObservation.html) nested inside the [Problem Concern act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemConcernAct.html). Each observation should become a distinct FHIR Condition resource. <br/>/entryRelationship[@typeCode="SUBJ"]/observation prefix to rows below²||| |/@negationInd=true|set .verificationStatus="refuted" or adjust .code for negated concept| |/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| |/code |.category|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| @@ -26,26 +22,370 @@ Note that C-CDA includes a Concern wrapper act from which status may be read; mo |/value|.code|**Constraint:** When CDA negation is absent or false<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |/author|.recorder<br/>&<br/>**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)**|.recorder should be authoritative (latest) author if there are multiple<br/>[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |/author/time|.recordedDate|Earliest, if more than one<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) -|**[Problem Status](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemStatus.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|.clinicalStatus|[CDA Problem Status Observation value → FHIR clinicalStatus](./ConceptMap-CF-ProblemStatus.html)| +|**[Problem Status](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemStatus.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|.clinicalStatus|[CDA Problem Status Observation value → FHIR clinicalStatus](./ConceptMap-CF-ProblemStatus.html)| |**[Date of Diagnosis](https://www.hl7.org/ccdasearch/templates/2.16.840.1.113883.10.20.22.4.502.html)**<br/>/entryRelationship/act[code/@code="77975-1"]/effectiveTime|.extension:[assertedDate](http://hl7.org/fhir/StructureDefinition/condition-assertedDate)|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)<br/>See **[US CORE Condition](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-problems-health-concerns.html#mandatory-and-must-support-data-elements)** for additional guidance| -|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|| +|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| +|**[Age Observation]()**<br/>/entryRelationship[@typeCode="SUBJ" and @inversionInd="true"]/observation[code/@code="445518008"]/value|.onsetAge|**CAUTION:** Only one of `onsetAge` or `onsetDateTime` may be present.<br/>[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|**Supporting Observations (e.g. [Assessment Scale Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AssessmentScaleObservation.html))**<br/>/entryRelationship[@typeCode="SPRT"]/observation|.evidence.detail|Create an Observation resource, mapping fields like `id`, `code`, `effectiveTime`, `value` similar to [Results](CF-results.html). If the CDA observation is an SDOH observation, use the [US Core Observation Screening Assessment](https://www.hl7.org/fhir/us/core/StructureDefinition-us-core-observation-screening-assessment.html) profile. -1\. XPath abbrievated for C-CDA Problem Concern act as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/ +1\. XPath abbreviated for C-CDA Problem Concern act as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/ -2\. XPath abbrievated for C-CDA Problem Observation as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation/ +2\. XPath abbreviated for C-CDA Problem Observation as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/entryRelationship[@typeCode="SUBJ"]/observation/ -When authors or other provenance are recorded in the parent [Problem Concern Act](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemConcernAct.html), it is recommended that those data be mapped to the FHIR Condition. +When authors or other provenance are recorded in the parent [Problem Concern Act](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemConcernAct.html), it is recommended that those data be mapped to the FHIR Condition. -### Illustrative example +### Example: Standard Problem -{% include examplebutton.html example="CF_problem_example" b_title = "Click on Here To See Highlighted Example" %} +<table><tr><th>CDA Problem Example</th><th>FHIR Condition Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.3"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.3"</span> /> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"<mark class="color10">545069300001</mark>"</span> <span class="attrib">root=</span><span class="value">"1.3.6.1.4.1.22812.3.2009316.3.4.1"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"CONC"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.6"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"active"</span> /> + <<span class="field">effectiveTime</span> > + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color11">20120806</mark>"</span> /> + </<span class="field">effectiveTime</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.4"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.4"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color12">1.3.6.1.4.1.22812.3.2009316.3.4.1.2.1</mark>"</span> + <span class="attrib">extension=</span><span class="value">"<mark class="color10">545069300001</mark>"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"55607006"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span>> + <<span class="field">translation</span> <span class="attrib">nullFlavor=</span><span class="value">"NI"</span> /> + </<span class="field">code</span>> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_5011447a-e27f-471d-9e1f-541148c5282f"</span> /> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">effectiveTime</span> > + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color11">20120806</mark>"</span> /> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color14">233604007</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color15">Pneumonia</mark>"</span>> + <<span class="field">translation</span> <span class="attrib">code=</span><mark class="color16"><span class="value">"486"</span></mark> <span class="attrib">codeSystem=</span><span class="value">"<mark class="color17">2.16.840.1.113883.6.103</mark>"</span> /> + <<span class="field">translation</span> <span class="attrib">code=</span><span class="value">"<mark class="color18">J18.9</mark>"</span> <span class="attrib">codeSystem=</span><span class="value">"<mark class="color19">2.16.840.1.113883.6.90</mark>"</span> /> + <<span class="field">translation</span> <span class="attrib">code=</span><span class="value">"<mark class="color20">87580</mark>"</span> <span class="attrib">codeSystem=</span><span class="value">"<mark class="color21">2.16.840.1.113883.3.247.1.1</mark>"</span> /> + </<span class="field">value</span>> + <span class="comment"><!-- Becomes recorder with reference: <mark class="color26">Practitioner/ProblemAuthor</mark> --></span> + <<span class="field">author</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.119"</span>/> + <<span class="field">time</span> <span class="attrib">value=</span><span class="value">"<mark class="color22">20140104</mark>"</span>/> + <<span class="field">assignedAuthor</span>> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"99999999"</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.4.6"</span>/> + <<span class="field">telecom</span> <span class="attrib">use=</span><span class="value">"WP"</span> <span class="attrib">value=</span><span class="value">"tel:555-555-1002"</span>/> + <<span class="field">assignedPerson</span>> + <<span class="field">name</span>> + <<span class="field">given</span>>Henry</<span class="field">given</span>> + <<span class="field">family</span>>SevenObs</<span class="field">family</span>> + </<span class="field">name</span>> + </<span class="field">assignedPerson</span>> + </<span class="field">assignedAuthor</span>> + </<span class="field">author</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"REFR"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.6"</span> + <span class="attrib">extension=</span><span class="value">"2019-06-20"</span> /> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"33999-4"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.1"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color23">246455001</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color23">Recurrence</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span> <span class="attrib">inversionInd=</span><span class="value">"true"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.31"</span> /> + <span class="comment"><!-- Age observation --></span> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"445518008"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">displayName=</span><span class="value">"Age At Onset"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> <span class="attrib">value=</span><mark class="color24"><span class="value">"65"</span></mark> unit=<mark class="color25"><span class="value">"a"</span></mark> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">act</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Condition</span>", + "<span class="field">id</span>": "<span class="value">6581e92f2d59f701ecc0f914</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color12">1.3.6.1.4.1.22812.3.2009316.3.4.1.2.1</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color10">545069300001</mark></span>" + }], + "<span class="field">clinicalStatus</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/condition-clinical</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color23">recurrence</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color23">recurrence</mark></span>" + }] + }, + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/condition-category</span>", + "<span class="field">code</span>": "<span class="value">problem-list-item</span>", + "<span class="field">display</span>": "<span class="value">Problem List Item</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [ + { + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color14">233604007</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color15">Pneumonia</mark></span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://hl7.org/fhir/sid/icd-9-cm</mark></span>", + "<span class="field">code</span>": <mark class="color16">"486"</mark>, + "<span class="field">display</span>": "<span class="value"><mark class="color15">Pneumonia</mark>, organism unspecified</span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color19">http://hl7.org/fhir/sid/icd-10-cm</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color18">J18.9</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color15">Pneumonia</mark>, unspecified organism</span>" + }, + { + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color21">2.16.840.1.113883.3.247.1.1</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color20">87580</mark></span>" + } + ], + "<span class="field">text</span>": "<span class="value"><mark class="color15">Pneumonia</mark></span>" + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/6581e92eb6ff5dadc088eae5</span>", + "<span class="field">display</span>": "<span class="value">Myra Jones</span>" + }, + "<span class="field">onsetDate</span>": "<span class="value"><mark class="color11">2012-08-06</mark></span>", + <span class="comment">/* Note only one of onsetDate or onsetAge is allowed */ + </span>"<span class="field">onsetAge</span>": { + "<span class="field">value</span>": <mark class="color24">65,</mark> + "<span class="field">unit</span>": "<span class="value">year</span>", + "<span class="field">code</span>": <mark class="color25">"a"</mark>, + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>" + }, + "<span class="field">recordedDate</span>": "<span class="value"><mark class="color22">2014-01-04</mark></span>", + "<span class="field">recorder</span>": { + "<span class="field">reference</span>": "<span class="value"><mark class="color26">Practitioner/ProblemAuthor</mark></span>" + } +}</div> +</td></tr></table> + +### Example: SDOH Problem + +<table> +<tr><th>CDA SDOH Problem</th><th>FHIR Condition Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.3"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.3"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"b46f0fc0-986f-11ee-b9d1-0242ac120002"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"CONC"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.6"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"<mark class="color10">active</mark>"</span>/> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"20130101"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SUBJ"</span>> + <span class="comment"><!-- SDOH Problem --></span> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.4"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.4"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.4"</span> <span class="attrib">extension=</span><span class="value">"2022-06-01"</span>/> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"<mark class="color11">68993</mark>"</span> <span class="attrib">root=</span><span class="value">"<mark class="color12">1.2.840.114350.1.13.6289.1.7.2.768076</mark>"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"093A5380-00CE-11E6-B4C5-0050568B000B"</span> <span class="attrib">extension=</span><span class="value">"1.1"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"55607006"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span> <span class="attrib">displayName=</span><span class="value">"Problem"</span>> + <<span class="field">originalText</span>>Problem</<span class="field">originalText</span>> + <<span class="field">translation</span> <span class="attrib">code=</span><span class="value">"75326-9"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.1"</span> + <span class="attrib">codeSystemName=</span><span class="value">"LOINC"</span> <span class="attrib">displayName=</span><span class="value">"Problem"</span>/> + </<span class="field">code</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">20100909</mark>"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">445281000124101</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color17">Nutrition impaired due to limited access to healthful foods</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color13"><mark class="color13">SNOMED</mark> CT</mark>"</span>> + <<span class="field">translation</span> <span class="attrib">code=</span><span class="value">"<mark class="color18">Z59.48</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color19">2.16.840.1.113883.6.90</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color19">ICD-10-CM</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color20">Other specified lack of adequate food</mark>"</span>/> + </<span class="field">value</span>> + <span class="comment"><!-- Assessment Scale Observation --></span> + <span class="comment"><!-- Creates observation referenced by evidence.detail --></span> + <span class="comment"><!-- This one: <mark class="color29">#sdoh1</mark> --></span> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SPRT"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.69"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.69"</span> + <span class="attrib">extension=</span><span class="value">"2022-06-01"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"f4dce790-8328-11db-9fe1-0800200c9a44"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color21">88122-7</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"(I/We) worried whether (my/our) food would run out..."</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color14">LOINC</mark>"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">20100909</mark>"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color22">LA28397-0</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color23">Often true</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.6.1</mark>"</span>> + </<span class="field">value</span>> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + <span class="comment"><!-- Creates observation referenced by evidence.detail --></span> + <span class="comment"><!-- This one: <mark class="color30">#sdoh2</mark> --></span> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"SPRT"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.69"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.69"</span> + <span class="attrib">extension=</span><span class="value">"2022-06-01"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"0e9c5b7c-9def-11ee-8c90-0242ac120002"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color24">88124-3</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color25">Food insecurity risk [HVS]</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color14">LOINC</mark>"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">20100909</mark>"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color26">LA19952-3</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color27">At risk</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.6.1</mark>"</span>/> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> + <span class="comment"><!-- Date of Diagnosis Act --></span> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"COMP"</span>> + <<span class="field">act</span> <span class="attrib">classCode=</span><span class="value">"ACT"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.502"</span> + <span class="attrib">extension=</span><span class="value">"2022-06-01"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"77975-1"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.1"</span> + <span class="attrib">codeSystemName=</span><span class="value">"LOINC"</span> + <span class="attrib">displayName=</span><span class="value">"Earliest date of diagnosis"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <span class="comment"><!-- SHALL to the year (MAY be more specific) --></span> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color28">20100101</mark>"</span>/> + </<span class="field">act</span>> + </<span class="field">entryRelationship</span>> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">act</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Condition</span>", + "<span class="field">language</span>": "<span class="value">en-US</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color12">1.2.840.114350.1.13.6289.1.7.2.768076</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color11">68993</mark></span>" + }], + "<span class="field">clinicalStatus</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/condition-clinical</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color10">active</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color10">active</mark></span>" + }] + }, + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/condition-category</span>", + "<span class="field">code</span>": "<span class="value">problem-list-item</span>", + "<span class="field">display</span>": "<span class="value">Problem List Item</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color16">445281000124101</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color17">Nutrition impaired due to limited access to healthful foods</mark></span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color19">http://hl7.org/fhir/sid/icd-10-cm</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color18">Z59.48</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color20">Other specified lack of adequate food</mark></span>" + } + ]}, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/6581e92eb6ff5dadc088eae5</span>" + }, + "<span class="field">onsetDateTime</span>": "<span class="value"><mark class="color15">2010-09-09</mark></span>", + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/StructureDefinition/condition-assertedDate</span>", + "<span class="field">valueDateTime</span>": "<span class="value"><mark class="color28">2010-01-01</mark></span>" + }], + "<span class="field">evidence</span>": [{ + "<span class="field">detail</span>": [{ + "<span class="field">reference</span>": "<span class="value"><mark class="color29">#sdoh1</mark></span>" + }, { + "<span class="field">reference</span>": "<span class="value"><mark class="color30">#sdoh2</mark></span>" + }] + }], + "<span class="field">contained</span>": [{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">sdoh1</span>", + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value">survey</span>", + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">value</span>": "<span class="value"><mark class="color21">88122-7</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color14">http://loinc.org</mark></span>" + }] + }, + "<span class="field">subject</span>": { "reference": "<span class="value">Patient/6581e92eb6ff5dadc088eae5</span>" }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color15">2010-09-09</mark></span>", + "<span class="field">valueCodeableConcept</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color22">LA28397-0</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color14">http://loinc.org</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color23">Often true</mark></span>" + }] + } + }, { + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">sdoh2</span>", + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value">survey</span>", + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">value</span>": "<span class="value"><mark class="color24">88124-3</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color14">http://loinc.org</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color25">Food insecurity risk [HVS]</mark></span>" + }] + }, + "<span class="field">subject</span>": { "reference": "<span class="value">Patient/6581e92eb6ff5dadc088eae5</span>" }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color15">2010-09-09</mark></span>", + "<span class="field">valueCodeableConcept</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color26">LA19952-3</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color14">http://loinc.org</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color27">At risk</mark></span>" + }] + } + }] +}</div> +</td></tr></table> #### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Problem CDA example](./Binary-CF-problem.html) -* [Condition FHIR example](./Condition-CF-problem.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%20Problem-Condition.csv) \ No newline at end of file +* [Condition FHIR example](./Condition-CF-problem.html) \ No newline at end of file diff --git a/input/pagecontent/CF-procedures.md b/input/pagecontent/CF-procedures.md index eb637b3d..339ce224 100644 --- a/input/pagecontent/CF-procedures.md +++ b/input/pagecontent/CF-procedures.md @@ -1,19 +1,15 @@ -<style> -td, th { - border: 1px solid black!important; -} -</style> +<link rel="stylesheet" href="colors.css"> This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Procedures FHIR → CDA](./FC-procedures.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html) <br/><br/> #### Note on template selection -C-CDA 2.1 describes three templates for Procedures: Procedure Activity Act, Procedure Activity Observation, and Procedure Activity Procedure. Procedure Activity Procedure is the most complete, containing everything the other two contain except Observation.value, and several properties not contained by the others. The [C-CDA 2.1 Companion Guide](https://www.hl7.org/ccdasearch/pdfs/Companion_Guide.pdf) points out that "most vendors successfully and exclusively use the . . . Procedure Activity Procedure," and it then specifies this template for "all interventional, non-interventional, surgical, diagnostic, or therapeutic procedures or treatments pertinent to the patient historically at the time the document is generated." For this reason, we begin with this most common pattern in this publication. Additional guidance for the other two templates (which will be very similar) will be forthcoming. +C-CDA 2.1 describes three templates for Procedures: Procedure Activity Act, Procedure Activity Observation, and Procedure Activity Procedure. Procedure Activity Procedure is the most complete, containing everything the other two contain except Observation.value, and several properties not contained by the others. The [C-CDA 2.1 Companion Guide](https://www.hl7.org/ccdasearch/pdfs/Companion_Guide.pdf) points out that "most vendors successfully and exclusively use the . . . Procedure Activity Procedure," and it then specifies this template for "all interventional, non-interventional, surgical, diagnostic, or therapeutic procedures or treatments pertinent to the patient historically at the time the document is generated." For this reason, we have only provided a mapping from Procedure Activity Procedure. Procedure Activity Act can use the same mapping to a FHIR Procedure resource because it contains a subset of the fields available in Procedure Activity Procedure. Procedure Activity Observation can be mapped to either a Procedure resource or to an Observation resource using the [results](CF-results.html) mapping (or a combination of the two). <br /> <br /> ### C-CDA to FHIR -|C-CDA¹<br/>[Procedure Activity procedure](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProcedureActivityProcedure.html)|FHIR<br/>[Procedure](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)|Transform Steps| +|C-CDA¹<br/>[Procedure Activity procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProcedureActivityProcedure.html)|FHIR<br/>[Procedure](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)|Transform Steps| |:----|:----|:----| |/@negationInd="true"|set status="not-done"|| |/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| @@ -25,23 +21,70 @@ C-CDA 2.1 describes three templates for Procedures: Procedure Activity Act, Proc |/targetSiteCode|.bodySite|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |/author|.recorder<br/>&<br/>**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)**|<br/>[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance) <br/>If a latest author can be identified, map to .recorder.<br/>Any author with a time can be put in Provenance.| |/performer/assignedEntity|.performer.actor|May map to Practitioner, PractitionerRole, or Organization<br/>onBehalfOf should not be used when actor is a Practitioner or PractitionerRole | -|**[Service Delivery Location](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ServiceDeliveryLocation.html)**<br/>/participant[@typeCode="LOC"]/participantRole|.location|| -|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note| +|**[Service Delivery Location](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ServiceDeliveryLocation.html)**<br/>/participant[@typeCode="LOC"]/participantRole|.location|| +|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|.reasonCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|See [Comment → Annotation](mappingGuidance.html#comment--annotation)| 1\. XPath abbrievated for C-CDA Procedure as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="47519-4"]/entry/procedure -### Illustrative example +### Example -{% include examplebutton.html example="CF_procedure_example" b_title = "Click on Here To See Highlighted Example" %} +<table><tr><th>CDA Procedure Example</th><th>FHIR Procedure Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">procedure</span> <span class="attrib">classCode=</span><span class="value">"PROC"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.14"</span> <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.14"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">1.3.6.1.4.1.22812.3.2009316.3.4.7</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color11">545069400001</mark>"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">1.3.6.1.4.1.22812.3.2009316.3.4.7</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color12">545069400003</mark>"</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color13">80146002</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color14">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color15">Excision of appendix</mark>"</span>> + <<span class="field">originalText</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_dfcf353c-538f-498a-9a53-80dda209e456"</span> /> + </<span class="field">originalText</span>> + <<span class="field">translation</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">0DBJ4ZZ</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.90"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color17">Excision of appendix, Percutaneous Endoscopic Approach</mark>"</span>/> + </<span class="field">code</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"<mark class="color18">completed</mark>"</span> /> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color19">20120806</mark>"</span>/> +</<span class="field">procedure</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>" : "<span class="value">Procedure</span>", + "<span class="field">identifier</span>" : [{ + "<span class="field">system</span>" : "<span class="value">urn:oid:<mark class="color10">1.3.6.1.4.1.22812.3.2009316.3.4.7</mark></span>", + "<span class="field">value</span>" : "<span class="value"><mark class="color11">545069400001</mark></span>" + }, + { + "<span class="field">system</span>" : "<span class="value">urn:oid:<mark class="color10">1.3.6.1.4.1.22812.3.2009316.3.4.7</mark></span>", + "<span class="field">value</span>" : "<span class="value"><mark class="color12">545069400003</mark></span>" + }], + "<span class="field">status</span>" : "<span class="value"><mark class="color18">completed</mark></span>", + "<span class="field">code</span>" : { + "<span class="field">coding</span>" : [{ + "<span class="field">system</span>" : "<span class="value"><mark class="color14">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color13">80146002</mark></span>", + "<span class="field">display</span>" : "<span class="value"><mark class="color15">Excision of appendix</mark></span>" + }, + { + "<span class="field">system</span>" : "<span class="value">http://www.cms.gov/Medicare/Coding/ICD10</span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color16">0DBJ4ZZ</mark></span>", + "<span class="field">display</span>" : "<span class="value"><mark class="color17">Excision of appendix, Percutaneous Endoscopic Approach</mark></span>" + }], + "<span class="field">text</span>" : "<span class="value"><mark class="color15">Excision of appendix</mark></span>" + }, + "<span class="field">subject</span>" : { + "<span class="field">reference</span>" : "<span class="value">Patient/CF-patient</span>" + }, + "<span class="field">performedDateTime</span>" : "<span class="value"><mark class="color19">2012-08-06</mark></span>" +}</div> +</td></tr></table> #### Links to example content The consensus mapping example developed through multiple vendors are available below: * [Procedure CDA example](./Binary-CF-procedure.html) -* [Procedure FHIR example](./Procedure-CF-procedure.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%20Procedure.csv) \ No newline at end of file +* [Procedure FHIR example](./Procedure-CF-procedure.html) \ No newline at end of file diff --git a/input/pagecontent/CF-results.md b/input/pagecontent/CF-results.md new file mode 100644 index 00000000..11e7509d --- /dev/null +++ b/input/pagecontent/CF-results.md @@ -0,0 +1,225 @@ +<link rel="stylesheet" href="colors.css"> + +This page provides a mapping from CDA to FHIR. <!-- For the FHIR to CDA mapping, please refer to [Results FHIR → CDA](./FC-results.html). --> For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). + +Results in C-CDA are collected into `<organizer>` elements containing one or more result `<observation>` element. This corresponds to one FHIR DiagnosticReport for the `<organizer>` which multiple `.result` references to FHIR Observation resources, one for each CDA `<observation>`. + +Observation values are generic - they can be of any CDA type in CDA, and *almost* any DataType in FHIR. In CDA, the type is represented by the `xsi:type` attribute on the `<value>` element. In FHIR, the type is represented by the `.value[x]` element; the `[x]` represents a choice among data types, so `.valueQuantity` represents a quantity data type, `.valueInteger` represents a numeric whole number, etc. Not every CDA type is a 1:1 match for a FHIR type, but significant differences have been included in the tables below. + +### C-CDA Organizer to FHIR Diagnostic Report + +|C-CDA¹<br/>[Result Organizer](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ResultOrganizer.html)|FHIR<br/>Diagnostic Report ([Lab](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-diagnosticreport-lab.html)) ([Reports](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-diagnosticreport-note.html))|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/code|.code<br/>&<br/>.category|Map to code using [CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept).<br/>Category (and target FHIR Profile) may be identified by looking up a LOINC code's CLASSTYPE (see process in next table).<br/>Alternatively, an extension for `<sdtc:category>` is being developed for CDA Organizer which, if present, will map directly to this field. +|/statusCode|.status|[CDA Result Status → FHIR Report Status](./ConceptMap-CF-ResultReportStatus.html) +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|If low and high are identical, use effectiveDateTime. If organizer/effectiveTime is missing, use the earliest and latest observation/effectiveTime as the source of the mapping.<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/specimen|.specimen|[See below](#c-cda-specimen-to-fhir-specimen) +|/author|**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| +|**[Result Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ResultObservation.html)**<br/>/component/observation|.result|See following table +|**[Specimen Collection Procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SpecimenCollectionProcedure.html)**<br/>/component/procedure[code/@code=17636008]|.specimen|[See below](#c-cda-specimen-to-fhir-specimen) + +### C-CDA Observation to FHIR Observation + +|C-CDA¹<br/>[Result Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ResultObservation.html)|FHIR<br/>[Lab Result Observation](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-observation-lab.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +||.category|If the code is LOINC, the category can be inferred from the LOINC code CLASSTYPE. Query a FHIR server via `{endpoint}CodeSystem/$lookup?system=http://loinc.org&code={code}&&property=CLASSTYPE` and set the category according to the CLASSTYPE property:<br/>1=Laboratory class (laboratory); 2=Clinical class (clinical-test); 3=Claims attachments (not mapped); 4=Surveys (survey) +|/code |.code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/statusCode|.status|[CDA Result Status → FHIR Observation Status](./ConceptMap-CF-ResultStatus.html) +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|Prefer effectiveDateTime<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/value[xsi:type=PQ]|.valueQuantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|/value[xsi:type=IVL_PQ]|.valueQuantity<br/>or<br/>.valueRange|[Ranges of Physical Quantities](mappingGuidance.html#ranges-of-physical-quantities) +|/value[xsi:type=CD]<br/>(or CE, CV, CO, CS)|.valueCodeableConcept|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/value[xsi:type=INT]|.valueInteger| +|/value[xsi:type=REAL]|.valueQuantity|Leave unit fields empty +|/value[xsi:type=ST]|.valueString| +|/interpretationCode|.interpretation|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/methodCode|.method|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/targetSiteCode|.bodySite|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/specimen|.specimen|[See below](#c-cda-specimen-to-fhir-specimen) +|/author|**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html)**|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| +|/referenceRange/observationRange/interpretationCode|**Not Supported**|FHIR expects reference ranges to be "normal" ranges. If C-CDA includes multiple reference ranges, only map the one with interpretationCode = `"N"`. +|/referenceRange/observationRange/value[xsi:type=IVL_PQ]|.referenceRange.low<br/>&<br/>.referenceRange.high| +|/referenceRange/observationRange/value[xsi:type=ST]<br/>or<br/>/referenceRange/observationRange/text|.referenceRange.text| + +### C-CDA Specimen to FHIR Specimen + +The CDA [Specimen](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Specimen.html) class may be present on either a Result Organizer or a Result Observation. If present on the organizer, the FHIR Specimen resource can be attached to the DiagnosticReport as well as each of the child Observation resources. If present only on a C-CDA Results Observation, it should only be attached at the FHIR Observation level. + +C-CDA also defines a [Specimen Collection Procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SpecimenCollectionProcedure.html) which can be present in the Result Organizer. The information in this procedure can be combined with information from the Specimen class and attached to the FHIR DiagnosticReport and Observation resources. + +|CDA<br/>[Specimen](https://hl7.org/cda/stds/core/2.0.0-sd/StructureDefinition-Specimen.html)|FHIR<br/>[Specimen](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-specimen.html)|Transform Steps| +|:----|:----|:----| +|/specimenRole/id|.identifier<br/>or<br/>.accessionIdentifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|/specimenRole/specimenPlayingEntity/code|.type|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/specimenRole/specimenPlayingEntity/name|.type.text|If there is no `<code>`. If code already exists, name may also go in `.note` +|/specimenRole/specimenPlayingEntity/quantity|.collection.quantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| +|/specimenRole/specimenPlayingEntity/desc|.note| +|**C-CDA [Specimen Collection Procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SpecimenCollectionProcedure.html)**<br/>/targetSiteCode|.collection.bodySite|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|**C-CDA [Specimen Condtion Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SpecimenConditionObservation.html)**<br/>/value|.condition|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| + +### Example + +<table><tr><th>CDA Result Example</th><th>FHIR DiagnosticReport and Observation Resources</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">organizer</span> <span class="attrib">classCode=</span><span class="value">"BATTERY"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.1"</span> <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.1"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">1.3.6.1.4.1.22812.20.1.1.4.5</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color11">R123</mark>"</span>/> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color12">24357-6</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.1</mark>"</span>> + <<span class="field">originalText</span>> + <span class="comment"><!-- Resolves to: <mark class="color22">Urinanalysis macro (dipstick) panel</mark> --></span> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_panel1Name"</span>/> + </<span class="field">originalText</span>> + </<span class="field">code</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_TS"</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">20150622</mark>"</span>/> + <<span class="field">high</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">20150622</mark>"</span>/> + </<span class="field">effectiveTime</span>> + <span class="comment"><!-- Becomes a FHIR reference: <mark class="color23">Practitioner/62f17e2ae0231200076884d0</mark> --></span> + <<span class="field">performer</span> <span class="attrib">typeCode=</span><span class="value">"PRF"</span>> + <<span class="field">assignedEntity</span>> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.19.5"</span>/> + <<span class="field">representedOrganization</span>> + <<span class="field">name</span>>Value Labs</<span class="field">name</span>> + </<span class="field">representedOrganization</span>> + </<span class="field">assignedEntity</span>> + </<span class="field">performer</span>> + <span class="comment"><!-- components removed to simplify example --></span> + <<span class="field">component</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.2"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.2"</span>/> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"<mark class="color10">1.3.6.1.4.1.22812.20.1.1.4.5</mark>"</span> <span class="attrib">extension=</span><span class="value">"<mark class="color15">OBS13</mark>"</span>/> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">5811-5</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color17">Specific gravity of Urine by Test strip</mark>"</span>> + <<span class="field">originalText</span>> + <span class="comment"><!-- reference the text of the coded component --></span> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_ea838e08-d5eb-4ed4-a176-e5f9a831a780"</span>/> + </<span class="field">originalText</span>> + </<span class="field">code</span>> + <<span class="field">text</span>> + <span class="comment"><!-- reference the entire text of the component --></span> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_13a52df8-79ed-4689-a9da-14c5905de830"</span>/> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color14">20150622</mark>"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> <span class="attrib">value=</span><span class="value">"<mark class="color18">1.015</mark>"</span> <span class="attrib">unit=</span><mark class="color19"><span class="value">"1"</span></mark>/> + <<span class="field">referenceRange</span>> + <<span class="field">observationRange</span>> + <<span class="field">text</span>> + <span class="comment"><!-- reference the text of the reference range --></span> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#_08b7d0ee-aff1-4144-a3a5-c89d56d855ad"</span>/> + </<span class="field">text</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"IVL_PQ"</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color20">1.005</mark>"</span> <span class="attrib">unit=</span><mark class="color19"><span class="value">"1"</span></mark>/> + <span class="comment"><!-- Note this will create a precision extension with + url: <mark class="color24">http://hl7.org/fhir/StructureDefinition/quantity-precision</mark> --></span> + <<span class="field">high</span> <span class="attrib">value=</span><span class="value">"<mark class="color21">1.030</mark>"</span> <span class="attrib">unit=</span><mark class="color19"><span class="value">"1"</span></mark>/> + </<span class="field">value</span>> + </<span class="field">observationRange</span>> + </<span class="field">referenceRange</span>> + </<span class="field">observation</span>> + </<span class="field">component</span>> + <span class="comment"><!-- components removed to simplify example --></span> +</<span class="field">organizer</span>></div> +</td><td> +<b>Note:</b> The following shows a DiagnosticReport resource with an Observation 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. +<br/> + +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">DiagnosticReport</span>", + "<span class="field">id</span>": "<span class="value">62f17e2aa2392d0008fbb236</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">value</span>": "<span class="value"><mark class="color11">R123</mark></span>", + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color10">1.3.6.1.4.1.22812.20.1.1.4.5</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/v2-0074</span>", + "<span class="field">code</span>": "<span class="value">LAB</span>", + "<span class="field">display</span>": "<span class="value">Laboratory</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color12">24357-6</mark></span>" + }], + "<span class="field">text</span>": "<span class="value"><mark class="color22">Urinanalysis macro (dipstick) panel</mark></span>" + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" + }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color14">2015-06-22</mark></span>", + "<span class="field">issued</span>": { + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value">http://hl7.org/fhir/extension-data-absent-reason</span>", + "<span class="field">valueCode</span>": "<span class="value">unknown</span>" + }] + }, + "<span class="field">performer</span>": [{ + "<span class="field">reference</span>": "<span class="value"><mark class="color23">Practitioner/62f17e2ae0231200076884d0</mark></span>" + }], + "<span class="field">result</span>": [{ + "<span class="field">reference</span>": "<span class="value">#exampleObs</span>" + }], + "<span class="field">contained</span>": [{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">exampleObs</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color10">1.3.6.1.4.1.22812.20.1.1.4.5</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color15">OBS13</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>": "<span class="value">laboratory</span>", + "<span class="field">display</span>": "<span class="value">Laboratory</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color16">5811-5</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color17">Specific gravity of Urine by Test strip</mark></span>" + }], + "<span class="field">text</span>": "<span class="value"><mark class="color17">Specific gravity of Urine by Test strip</mark></span>" + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" + }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color14">2015-06-22</mark></span>", + "<span class="field">valueQuantity</span>": { + "<span class="field">value</span>": <mark class="color18">1.015</mark>, + "<span class="field">unit</span>": <mark class="color19">"1"</mark> + }, + "<span class="field">referenceRange</span>": [{ + "<span class="field">low</span>": { + "<span class="field">value</span>": <mark class="color20">1.005</mark>, + "<span class="field">unit</span>": <mark class="color19">"1"</mark> + }, + "<span class="field">high</span>": { + "<span class="field">value</span>": <mark class="color21">1.03</mark>, + "<span class="field">unit</span>": <mark class="color19">"1"</mark>, + "<span class="field">_value</span>": { + "<span class="field">extension</span>": [{ + "<span class="field">url</span>": "<span class="value"><mark class="color24">http://hl7.org/fhir/StructureDefinition/quantity-precision</mark></span>", + "<span class="field">valueInteger</span>": 3 + }] + } + } + }] + }] +}</div> +</td></tr></table> + diff --git a/input/pagecontent/CF-social.md b/input/pagecontent/CF-social.md new file mode 100644 index 00000000..73d96c4b --- /dev/null +++ b/input/pagecontent/CF-social.md @@ -0,0 +1,202 @@ +<link rel="stylesheet" href="colors.css"> + +This page provides a mapping from CDA to FHIR. <!-- For the FHIR to CDA mapping, please refer to [Results FHIR → CDA](./FC-results.html). --> For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). + +Social History is a category of several templates in C-CDA and several profiles in US Core. At a high-level, mappings between CDA `<observation>` acts and FHIR Observation resources are similar and are represented by the top table. Differences are documented on the proceeding tables. + +Note that some observations in C-CDA map to extensions on the patient or elsewhere in FHIR. In these cases, a FHIR Observation should not be created; instead, the corresponding extension should be used. + +- [C-CDA Birth Sex Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-BirthSexObservation.html) ↔ [US Core Birth Sex Extension](https://www.hl7.org/fhir/us/core/StructureDefinition-us-core-birthsex.html) +- [C-CDA Gender Identity Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-GenderIdentityObservation.html) ↔ [US Core Gender Identity Extension](https://www.hl7.org/fhir/us/core/StructureDefinition-us-core-genderIdentity.html) +- [C-CDA Sex Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SexObservation.html) ↔ [US Core Sex Extension](https://www.hl7.org/fhir/us/core/StructureDefinition-us-core-sex.html) +- [C-CDA Tribal Affiliation Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-TribalAffiliationObservation.html) ↔ [US Core Tribal Affiliation Extension](https://www.hl7.org/fhir/us/core/StructureDefinition-us-core-tribal-affiliation.html) + +### C-CDA Social History Observation to FHIR Observation +This maps to US Core version 6's Simple Observation. Previous versions of US Core did not define a generic observation, but the following guidance can still be used to create a generic FHIR observation regardless of the version of US Core being targeted. + +|C-CDA<br/>[Social History Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SocialHistoryObservation.html)|FHIR<br/>[Simple Observation](https://hl7.org/fhir/us/core/STU6/StructureDefinition-us-core-simple-observation.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +||.category|Set to `social-history` from [Observation Category Codes](https://build.fhir.org/ig/HL7/UTG/CodeSystem-observation-category.html)<br/>Additional SDOH categories may be set as well, depending on the code of the observation. +|/code |.code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/statusCode|.status|[CDA Result Status → FHIR Observation Status](./ConceptMap-CF-ResultStatus.html) +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|Prefer effectiveDateTime<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/value[xsi:type=PQ]|.valueQuantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|/value[xsi:type=IVL_PQ]|.valueQuantity<br/>or<br/>.valueRange|[Ranges of Physical Quantities](mappingGuidance.html#ranges-of-physical-quantities) +|/value[xsi:type=CD]<br/>(or CE, CV, CO, CS)|.valueCodeableConcept|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/value[xsi:type=INT]|.valueInteger| +|/value[xsi:type=REAL]|.valueQuantity|Leave unit fields empty +|/value[xsi:type=ST]|.valueString| + +Additional fields, such as `.interpretationCode`, `.referenceRange`, `.performer` are not documented in C-CDA but can be mapped in the same manner as [Results](./CF-results.html). + +### C-CDA Smoking Status / Tobacco Use to FHIR Observation +In C-CDA 3.0, the Smoking Status - MU and Tobacco Use templates were merged into a single template to better match the [US Core V7](https://hl7.org/fhir/us/core/STU7/StructureDefinition-us-core-smokingstatus.html) Smoking Status template. In general, the mapping follows the standard Social History mapping above, but additional caveats are noted below. + +|C-CDA<br/>[Smoking Status - MU](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SmokingStatusMeaningfulUse.html) (Deprecated)<br/>[Tobacco Use](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-TobaccoUse.html) (Decprecated)<br/>[Smoking Status](https://build.fhir.org/ig/HL7/CDA-ccda/StructureDefinition-SmokingStatus.html) (C-CDA 3.0)²|FHIR<br/>[Smoking Status Observation (US Core 4)](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-smokingstatus.html)|Transform Steps| +|:----|:----|:----| +|/code|.code|Prior to US Core 7, the code in FHIR should be `72166-2 (Tobacco smoking status NCIS)`, but this is an extensible value set, so other codes used in the older C-CDA templates may be used.<br/>In US Core 7, the value set remains extensible, but contains the same 4 concepts allowed in the C-CDA R3.0's Smoking Status value set. +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|Smoking Status - MU required a timestamp; Tobacco Use required a time range; Smoking Status (3.0) combines the two templates into one and allows for either.<br/>When mapping to US Core be aware of the requirements around effectiveTime. In v7, time can be either a period or a single value. Prior to v7, the Smoking Status Observation only allowed a single timestamp. If Mapping a C-CDA Tobacco Use template that contains a date range, use one of the following approaches:<br/>- Map to the US Core 7 version of the Smoking Status Observation<br/>- Map to a generic FHIR observation (i.e. do not assert conformance with US Core)<br/>- Omit the effectiveTime high value or create a non-conformant US Core Smoking Status Observation + +### C-CDA Pregnancy Observation to FHIR Pregnancy Status Observation +In US Core, Pregnancy Observation was first defined in version 6. + +|C-CDA<br/>[Pregnancy Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-PregnancyObservation.html)|FHIR<br/>[Pregnancy Status](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-observation-pregnancystatus.html)|Transform Steps| +|:----|:----|:----| +|.moodCode||The C-CDA moodCode is `EVN` which is why this maps to FHIR's Pregnancy Status rather than Pregnancy Intent. +||.code|`82810-3 (Pregnancy Status)` - C-CDA uses `ASSERTION`, but FHIR clarifies the code to be used. +|/effectiveTime/@value<br/>or<br/>/effectiveTime/low/@value<br/>or<br/>/effectiveTime/high/@value<br/>or<br/>/author/time|.effectiveDateTime|FHIR only allows a single timestamp. Send the first element from the first column with a populated timestamp.<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|/value|.valueCodeableConcept|Value sets are the same<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/value/@nullFlavor=UNK|.valueCodeableConcept|Unknown becomes an actual value with system = `http://terminology.hl7.org/CodeSystem/v3-NullFlavor`. Any other nullFlavors should use a data-absent-reason extension. +|**[Estimated Date of Delivery](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-EstimatedDateofDelivery.html)**<br/>/entryRelationship/observation[code/@code="11778-8"]/value|.component.code<br/>.component.valueDateTime|Set code to `11778-8` and map value to `.valueDateTime`.<br/>Note that while C-CDA hard-codes this to a single value (`11778-8`), there are other, more specific, EDD LOINC codes that could be used as well (see [EDD Including Method](https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.11.20.9.81/expansion)). These might be communicated as translations on the entryRelationship/observation/code, as the methodCode, or sent as entirely custom observations. Any of these codes can also reasonably be included as a component to a Pregnancy Observation to represent the estimated date of delivery. + +### C-CDA Pregnancy Intention in Next Year to FHIR Pregnancy Intent Observation +In US Core, Pregnancy Intent was first defined in version 6. + +|C-CDA<br/>[Pregnancy Intention](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-PregnancyIntentionInNextYear.html)|FHIR<br/>[Pregnancy Intent](https://hl7.org/fhir/us/core/STU6/StructureDefinition-us-core-observation-pregnancyintent.html)|Transform Steps| +|:----|:----|:----| +|.moodCode||The C-CDA moodCode is `INT` which is why this maps to FHIR's Pregnancy Status rather than Pregnancy Intent. +|/code|.code|In both standards, the code is `86645-9` +|/effectiveTime/low/@value|.effectiveDateTime|FHIR only allows a single timestamp which corresponds to C-CDA's "low" +|/value|.valueCodeableConcept|Value sets are the same<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/value/@nullFlavor=UNK|.valueCodeableConcept|Unknown becomes an actual value with system = `http://terminology.hl7.org/CodeSystem/v3-NullFlavor`. Any other nullFlavors should use a data-absent-reason extension. + +### Example: Smoking Status + +The following is a comparison between C-CDA and FHIR Smoking Status Observations + +<table><tr><th>CDA Example</th><th>FHIR Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.78"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.78"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">id</span> + <span class="attrib">extension=</span><span class="value">"<mark class="color10">123456789</mark>"</span> + <span class="attrib">root=</span><span class="value">"<mark class="color11">2.16.840.1.113883.19</mark>"</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color12">72166-2</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color13">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color14">Tobacco smoking status NHIS</mark>"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color15">20140606153200+0000</mark>"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">449868002</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color17">2.16.840.1.113883.6.96</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color17"><mark class="color17">SNOMED</mark> CT</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color18">Current every day smoker</mark>"</span>/> +</<span class="field">observation</span>> +</div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">62f17e2aa2392d0008fbb23a</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color11">2.16.840.1.113883.19</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color10">123456789</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>": "<span class="value">social-history</span>", + "<span class="field">display</span>": "<span class="value">Social History</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color13">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color12">72166-2</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color14">Tobacco smoking status NHIS</mark></span>" + }] + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" + }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color15">2014-06-06T15:32:00.000Z</mark></span>", + "<span class="field">valueCodeableConcept</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://www.snomed.org/</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color16">449868002</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color18">Current every day smoker</mark></span>" + }] + } +}</div> +</td></tr></table> + + +### Example: Pregnancy Observation + +<table><tr><th>CDA Example</th><th>FHIR Resource</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.15.3.8"</span>/> + <<span class="field">id</span> <span class="attrib">extension=</span><span class="value">"<mark class="color10">123456789</mark>"</span> <span class="attrib">root=</span><span class="value">"<mark class="color11">2.16.840.1.113883.19</mark>"</span>/> + <span class="comment"><!-- ASSERTION maps to: <mark class="color19">82810-3</mark> --></span> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"ASSERTION"</span> <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.5.4"</span>/> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span>> + <<span class="field">low</span> <span class="attrib">value=</span><span class="value">"<mark class="color12">20220824103952+0000</mark>"</span>/> + </<span class="field">effectiveTime</span>> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"CD"</span> <span class="attrib">code=</span><span class="value">"<mark class="color13">77386006</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color14">pregnant</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color15">2.16.840.1.113883.6.96</mark>"</span>/> + <<span class="field">entryRelationship</span> <span class="attrib">typeCode=</span><span class="value">"REFR"</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.15.3.1"</span>/> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">11778-8</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color17">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"Estimated date of delivery"</span>/> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#dod"</span> /> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"TS"</span> <span class="attrib">value=</span><span class="value">"<mark class="color18">2023-02-14</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">entryRelationship</span>> +</<span class="field">observation</span>></div> +</td><td> +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">pregnancy-status</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color11">2.16.840.1.113883.19</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color10">123456789</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>": "<span class="value">social-history</span>", + "<span class="field">display</span>": "<span class="value">Social History</span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color19">82810-3</mark></span>", + "<span class="field">display</span>": "<span class="value">Pregnancy status</span>" + }] + }, + "<span class="field">subject</span>": { "reference": "<span class="value">Patient/example</span>" }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color12">2022-08-24T10:39:52Z</mark></span>", + "<span class="field">valueCodeableConcept</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color15">http://snomed.info/sct</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color13">77386006</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color14">Pregnant</mark></span>" + }] + }, + "<span class="field">component</span>": [{ + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color17">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color16">11778-8</mark></span>", + "<span class="field">display</span>": "<span class="value">Delivery date Estimated</span>" + }] + }, + "<span class="field">valueDateTime</span>": "<span class="value"><mark class="color18">2023-02-14</mark></span>" + }] +}</div> +</td></tr></table> \ No newline at end of file diff --git a/input/pagecontent/CF-vitals.md b/input/pagecontent/CF-vitals.md new file mode 100644 index 00000000..327e9cee --- /dev/null +++ b/input/pagecontent/CF-vitals.md @@ -0,0 +1,392 @@ +<link rel="stylesheet" href="colors.css"> + +This page provides a mapping from CDA to FHIR. For the FHIR to CDA mapping, please refer to [Vitals FHIR → CDA](./FC-vitals.html). For guidance on how to read the table +below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). + +C-CDA vitals are typically grouped into a Vital Signs Organizer to group one or more vitals readings together. This has been mapped to an additional FHIR Observation for the panel of vital signs. This panel contains a `.hasMember` field which references each observation mapped from the original C-CDA Vital Signs Organizer. + +### C-CDA Vital Signs Organizer to FHIR Observation Panel + +|C-CDA¹<br/>[Vital SignsOrganizer](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-VitalSignsOrganizer.html)|FHIR<br/>[Vital Signs Observation](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-vital-signs.html)|Transform Steps| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +||.category|Set to `vital-signs` from [Vital Signs value set](https://hl7.org/fhir/us/core/STU4/ValueSet-us-core-vital-signs.html) +||.code|Set to `85353-1` [CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/statusCode|.status|`final` (C-CDA is fixed to `completed`) +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|If low and high are identical, use effectiveDateTime. If organizer/effectiveTime is missing, use the earliest and latest observation/effectiveTime as the source of the mapping.<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +||.hasMember|Reference to each vital sign observation mapped from CDA + +### C-CDA Vital Signs Observation to FHIR Observation + +|C-CDA¹<br/>[Vital Sign Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-VitalSignObservation.html)|FHIR<br/>[Vital Signs Observation](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-vital-signs.html)|Transform Steps<br/>Note: US Core defines separate profiles for individual vitals such as [weight](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-body-weight.html), [heart rate](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-heart-rate.html), etc.| +|:----|:----|:----| +|/id|.identifier|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +||.category|Set to `vital-signs` from [Vital Signs value set](https://hl7.org/fhir/us/core/STU4/ValueSet-us-core-vital-signs.html) +|/code |.code²|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/effectiveTime|.effectiveDateTime<br/>or<br/>.effectivePeriod|Prefer effectiveDateTime<br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|value|.valueQuantity²|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|/interpretationCode|.interpretation²|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/methodCode|.method|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/targetSiteCode|.bodySite|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|/author|.performer<br/>&<br/>**[Provenance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)**|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| +|/referenceRange/observationRange/interpretationCode|**Not Supported**|FHIR expects reference ranges to be "normal" ranges. If C-CDA includes multiple reference ranges, only map the one with interpretationCode = `"N"`. +|/referenceRange/observationRange/value[xsi:type=IVL_PQ]|.referenceRange.low²<br/>&<br/>.referenceRange.high²|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity) +|/referenceRange/observationRange/value[xsi:type=ST]<br/>or<br/>/referenceRange/observationRange/text|.referenceRange.text²| + +1\. XPath abbreviated for C-CDA Vital Signs Observation as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="8716-3"]/entry/organizer/entryRelationship/component + +2\. Some C-CDA observations need special handling when converting to FHIR. When recording the following vitals, the value, interpretation, and referenceRange should be placed in a `.component` element within a parent Observation. + +**[Blood Pressure](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-blood-pressure.html)** (C-CDA observations with codes `8480-6` - systolic & `8462-4` - diastolic) +- Set `Observation.code` to `85354-9` (Blood Pressure Panel) and create 2 components for the systolic and diastolic readings. Both components are required. +- Do not send `Observation.valueQuantity` + +**[Pulse Oximetry](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-pulse-oximetry.html)** (C-CDA observations with codes `3150-0` - Inhaled Oxygen Concentration, `3151-8` - Inhaled Oxygen Flow Rate, `59408-5` - Oxygen saturation in Arterial blood by Pulse oximetry, or `2708-6` - Oxygen saturation in Arterial blood) +- `Observation.code` should contain two coding values: `59408-5` & `2708-6` +- Observation.valueQuantity represents the Oxygen saturation (e.g. `98%`) +- Create individual components for `3150-0` - Inhaled Oxygen Concentration & `3151-8` - Inhaled Oxygen Flow Rate (only if values exist) + +### Example: Simple Vitals Panel + +<table><tr><th>CDA Vitals Example</th><th>FHIR Observation Resources</th></tr> +<tr><td> +<div id="cda" class="border codeArea"><<span class="field">organizer</span> <span class="attrib">classCode=</span><span class="value">"CLUSTER"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.26"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.26"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span>/> + <<span class="field">id</span> + <span class="attrib">extension=</span><span class="value">"<mark class="color10">21688133041015158234</mark>"</span> + <span class="attrib">root=</span><span class="value">"<mark class="color11">2.16.840.1.113883.3.42.126.100001.19</mark>"</span>/> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color12">46680005</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color13">Vital Signs</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span>> + <<span class="field">translation</span> <span class="attrib">code=</span><span class="value">"<mark class="color14">74728-7</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color15">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color15">LOINC</mark>"</span>/> + </<span class="field">code</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color16">20140520193605-0600</mark>"</span>/> + <span class="comment"><!-- Each vital sign should be its own component. --></span> + <<span class="field">component</span>> + <<span class="field">observation</span> <span class="attrib">classCode=</span><span class="value">"OBS"</span> <span class="attrib">moodCode=</span><span class="value">"EVN"</span>> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span>/> + <<span class="field">templateId</span> <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span>/> + <<span class="field">id</span> + <span class="attrib">extension=</span><span class="value">"<mark class="color17">216881330410151584</mark>"</span> + <span class="attrib">root=</span><span class="value">"<mark class="color11">2.16.840.1.113883.3.42.126.100001.19</mark>"</span>/> + <<span class="field">code</span> <span class="attrib">code=</span><span class="value">"<mark class="color18">8867-4</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color15">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color15">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color19">HEART RATE</mark>"</span>/> + <<span class="field">text</span>> + <<span class="field">reference</span> <span class="attrib">value=</span><span class="value">"#Pulse_1"</span>/> + </<span class="field">text</span>> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span>/> + <<span class="field">effectiveTime</span> <span class="attrib">value=</span><span class="value">"<mark class="color16">20140520193605-0600</mark>"</span>/> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> + <span class="attrib">value=</span><mark class="color20"><span class="value">"80"</span></mark> + <span class="attrib">unit=</span><span class="value">"<mark class="color21">/min</mark>"</span>/> + </<span class="field">observation</span>> + </<span class="field">component</span>> +</<span class="field">organizer</span>></div> +</td><td> +<b>Note:</b> The following shows an Observation resource for the panel with an individual Observation 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. +<br/> + +<div id="fhir" class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">value</span>": "<span class="value"><mark class="color10">21688133041015158234</mark></span>", + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color11">2.16.840.1.113883.3.42.126.100001.19</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">text</span>": "<span class="value"><mark class="color12">vital-signs</mark></span>", + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color12">vital-signs</mark></span>", + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">display</span>": "<span class="value"><mark class="color13">Vital Signs</mark></span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">text</span>": "<span class="value">Vital Signs Panel</span>", + "<span class="field">coding</span>": [{ + "<span class="field">code</span>": "<span class="value"><mark class="color14">85353-1</mark></span>", + "<span class="field">system</span>": "<span class="value"><mark class="color15">http://loinc.org</mark></span>" + }] + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">urn:uuid:a4986486-6599-4bb2-a7fb-e2deb8d50b5e</span>" + }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color16">2014-05-20T19:36:05-06:00</mark></span>", + "<span class="field">hasMember</span>": [{ + "<span class="field">reference</span>": "<span class="value">#heartRate</span>" + }], + "<span class="field">contains</span>": [{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">id</span>": "<span class="value">heartRate</span>", + "<span class="field">identifier</span>": [{ + "<span class="field">system</span>": "<span class="value">urn:oid:<mark class="color11">2.16.840.1.113883.3.42.126.100001.19</mark></span>", + "<span class="field">value</span>": "<span class="value"><mark class="color17">216881330410151584</mark></span>" + }], + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color12">vital-signs</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color13">Vital Signs</mark></span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color15">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color18">8867-4</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color19">HEART RATE</mark></span>" + }] + }, + "<span class="field">subject</span>": { + "<span class="field">reference</span>": "<span class="value">Patient/62f17e29b7532c0009e217b7</span>" + }, + "<span class="field">effectiveDateTime</span>": "<span class="value"><mark class="color16">2014-05-20T19:36:05-06:00</mark></span>", + "<span class="field">valueQuantity</span>": { + "<span class="field">value</span>": <mark class="color20">80,</mark> + "<span class="field">unit</span>": "<span class="value"><mark class="color21">/min</mark></span>" + } + }] +}</div> +</td></tr></table> + +### Example: Blood Pressure + +<table> +<tr><th>C-CDA Blood Pressure (Codes & Values Only)</th><th>FHIR Blood Pressure</th></tr> +<tr><td> +<div class="border codeArea"><<span class="field">organizer</span>> + <span class="comment"><!-- C-CDA Vital Signs Organizer --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.26"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color10">46680005</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span> + <span class="attrib">displayName=</span><mark class="color10"><span class="value">"Vital Signs"</span></mark> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <span class="comment"><!-- effectiveTime, author, etc stripped --></span> + <<span class="field">component</span>> + <<span class="field">observation</span>> + <span class="comment"><!-- C-CDA Vital Signs Observation --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color11">8480-6</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color12">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color12">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color13">Systolic blood pressure</mark>"</span> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> + <span class="attrib">value=</span><mark class="color14"><span class="value">"115"</span></mark> + <span class="attrib">unit=</span><span class="value">"<mark class="color15">mm[Hg]</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">component</span>> + <<span class="field">component</span>> + <<span class="field">observation</span>> + <span class="comment"><!-- C-CDA Vital Signs Observation --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color16">8462-4</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color12">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color12">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color17">Diastolic blood pressure</mark>"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> <span class="attrib">value=</span><mark class="color18"><span class="value">"75"</span></mark> <span class="attrib">unit=</span><span class="value">"<mark class="color15">mm[Hg]</mark>"</span> /> + </<span class="field">observation</span>> + </<span class="field">component</span>> +</<span class="field">organizer</span>></div> +</td><td> +<div class="border codeArea">{ + "<span class="field">resourceType</span>" : "<span class="value">Observation</span>", + "<span class="field">status</span>" : "<span class="value">final</span>", + "<span class="field">category</span>" : [{ + "<span class="field">coding</span>" : [{ + "<span class="field">system</span>" : "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color10">vital-signs</mark></span>" + }] + }], + "<span class="field">code</span>" : { + "<span class="field">coding</span>" : [{ + "<span class="field">system</span>" : "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>" : "<span class="value">85354-9</span>", + "<span class="field">display</span>" : "<span class="value">Blood pressure panel with all children optional</span>" + }] + }, + "<span class="field">component</span>" : [{ + "<span class="field">code</span>" : { + "<span class="field">coding</span>" : [{ + "<span class="field">system</span>" : "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color11">8480-6</mark></span>", + "<span class="field">display</span>" : "<span class="value"><mark class="color13">Systolic blood pressure</mark></span>" + }], + "<span class="field">text</span>" : "<span class="value"><mark class="color13">Systolic blood pressure</mark></span>" + }, + "<span class="field">valueQuantity</span>" : { + "<span class="field">value</span>" : <mark class="color14">115,</mark> + "<span class="field">unit</span>" : "<span class="value">mmHg</span>", + "<span class="field">system</span>" : "<span class="value">http://unitsofmeasure.org</span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color15">mm[Hg]</mark></span>" + } + }, + { + "<span class="field">code</span>" : { + "<span class="field">coding</span>" : [{ + "<span class="field">system</span>" : "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color16">8462-4</mark></span>", + "<span class="field">display</span>" : "<span class="value"><mark class="color17">Diastolic blood pressure</mark></span>" + }], + "<span class="field">text</span>" : "<span class="value"><mark class="color17">Diastolic blood pressure</mark></span>" + }, + "<span class="field">valueQuantity</span>" : { + "<span class="field">value</span>" : <mark class="color18">75,</mark> + "<span class="field">unit</span>" : "<span class="value">mmHg</span>", + "<span class="field">system</span>" : "<span class="value">http://unitsofmeasure.org</span>", + "<span class="field">code</span>" : "<span class="value"><mark class="color15">mm[Hg]</mark></span>" + } + }] +}</div> +</td></tr></table> + +### Example: Pulse Oximetry + +<table><tr><th>C-CDA Pulse Oximetry (Codes & Values Only)</th><th>FHIR Pulse Oximetry</th></tr> +<tr><td> +<div class="border codeArea"><<span class="field">organizer</span>> + <span class="comment"><!-- C-CDA Vital Signs Organizer --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.26"</span> + <span class="attrib">extension=</span><span class="value">"2015-08-01"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color10">46680005</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"2.16.840.1.113883.6.96"</span> + <span class="attrib">codeSystemName=</span><span class="value">"SNOMED CT"</span> + <span class="attrib">displayName=</span><mark class="color10"><span class="value">"Vital Signs"</span></mark> /> + <<span class="field">statusCode</span> <span class="attrib">code=</span><span class="value">"completed"</span> /> + <span class="comment"><!-- effectiveTime, author, etc stripped --></span> + <<span class="field">component</span>> + <<span class="field">observation</span>> + <span class="comment"><!-- C-CDA Vital Signs Observation --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color11">2708-6</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color12">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color12">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"Oxygen saturation"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> + <span class="attrib">value=</span><mark class="color13"><span class="value">"98"</span></mark> + <span class="attrib">unit=</span><mark class="color14"><span class="value">"%"</span></mark> /> + </<span class="field">observation</span>> + <<span class="field">observation</span>> + <span class="comment"><!-- C-CDA Vital Signs Observation --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color15">3151-8</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color12">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color12">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"Inhaled Oxygen Flow Rate"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> + <span class="attrib">value=</span><mark class="color16"><span class="value">"6"</span></mark> + <span class="attrib">unit=</span><span class="value">"<mark class="color17">L/min</mark>"</span> /> + </<span class="field">observation</span>> + <<span class="field">observation</span>> + <span class="comment"><!-- C-CDA Vital Signs Observation --></span> + <<span class="field">templateId</span> + <span class="attrib">root=</span><span class="value">"2.16.840.1.113883.10.20.22.4.27"</span> + <span class="attrib">extension=</span><span class="value">"2014-06-09"</span> /> + <<span class="field">id</span> <span class="attrib">root=</span><span class="value">"..."</span> /> + <<span class="field">code</span> + <span class="attrib">code=</span><span class="value">"<mark class="color18">3150-0</mark>"</span> + <span class="attrib">codeSystem=</span><span class="value">"<mark class="color12">2.16.840.1.113883.6.1</mark>"</span> + <span class="attrib">codeSystemName=</span><span class="value">"<mark class="color12">LOINC</mark>"</span> + <span class="attrib">displayName=</span><span class="value">"<mark class="color19">Inhaled Oxygen Concentration</mark>"</span> /> + <<span class="field">value</span> <span class="attrib">xsi:type=</span><span class="value">"PQ"</span> + <span class="attrib">value=</span><mark class="color20"><span class="value">"35"</span></mark> + <span class="attrib">unit=</span><mark class="color14"><span class="value">"%"</span></mark> /> + </<span class="field">observation</span>> + </<span class="field">component</span>> +</<span class="field">organizer</span>></div> + +</td><td> +<div class="border codeArea">{ + "<span class="field">resourceType</span>": "<span class="value">Observation</span>", + "<span class="field">status</span>": "<span class="value">final</span>", + "<span class="field">category</span>": [{ + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value">http://terminology.hl7.org/CodeSystem/observation-category</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color10">vital-signs</mark></span>" + }] + }], + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color11">2708-6</mark></span>", + "<span class="field">display</span>": "<span class="value">Oxygen saturation in Arterial blood</span>" + }, + { + "<span class="field">system</span>": "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value">59408-5</span>", + "<span class="field">display</span>": "<span class="value">Oxygen saturation in Arterial blood by Pulse oximetry</span>" + }] + }, + "<span class="field">valueQuantity</span>": { + "<span class="field">value</span>": <mark class="color13">98,</mark> + "<span class="field">unit</span>": <mark class="color14">"%"</mark>, + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>", + "<span class="field">code</span>": <mark class="color14">"%"</mark> + }, + "<span class="field">component</span>": [{ + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color15">3151-8</mark></span>", + "<span class="field">display</span>": "<span class="value">Inhaled oxygen flow rate</span>" + }] + }, + "<span class="field">valueQuantity</span>": { + "<span class="field">value</span>": <mark class="color16">6,</mark> + "<span class="field">unit</span>": "<span class="value">liters/min</span>", + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>", + "<span class="field">code</span>": "<span class="value"><mark class="color17">L/min</mark></span>" + } + }, + { + "<span class="field">code</span>": { + "<span class="field">coding</span>": [{ + "<span class="field">system</span>": "<span class="value"><mark class="color12">http://loinc.org</mark></span>", + "<span class="field">code</span>": "<span class="value"><mark class="color18">3150-0</mark></span>", + "<span class="field">display</span>": "<span class="value"><mark class="color19">Inhaled Oxygen Concentration</mark></span>" + }] + }, + "<span class="field">valueQuantity</span>": { + "<span class="field">value</span>": <mark class="color20">35,</mark> + "<span class="field">unit</span>": <mark class="color14">"%"</mark>, + "<span class="field">system</span>": "<span class="value">http://unitsofmeasure.org</span>", + "<span class="field">code</span>": <mark class="color14">"%"</mark> + } + }] +}</div> +</td></tr> +</table> diff --git a/input/pagecontent/FC-allergies.md b/input/pagecontent/FC-allergies.md index c05428c6..9e0443f0 100644 --- a/input/pagecontent/FC-allergies.md +++ b/input/pagecontent/FC-allergies.md @@ -18,12 +18,12 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea ### FHIR to C-CDA -|FHIR<br/>[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html#profile)|C-CDA¹<br/>[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyIntoleranceObservation.html)|Transform Steps| +|FHIR<br/>[AllergyIntolerance](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html#profile)|C-CDA¹<br/>[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyIntoleranceObservation.html)|Transform Steps| |:----|:----|:----| |.identifier|/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| -|.clinicalStatus|(act parent to observation) ../../statusCode <br/>&<br />**[Allergy Status](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyStatusObservation.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|[FHIR clinicalStatus → CDA Allergy Status Observation value](./ConceptMap-FC-AllergyStatus.html)<br/>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)| +|.clinicalStatus|(act parent to observation) ../../statusCode <br/>&<br />**[Allergy Status](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyStatusObservation.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|[FHIR clinicalStatus → CDA Allergy Status Observation value](./ConceptMap-FC-AllergyStatus.html)<br/>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)| |.type<br/>&<br/>.category|/value|[FHIR type → CDA value](ConceptMap-FC-AllergyIntoleranceType.html)<br/>[FHIR category → CDA value](ConceptMap-FC-AllergyIntoleranceCategory.html)| -|.criticality|**[Criticality](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CriticalityObservation.html)**<br/>/entryRelationship/observation[code/@code="82606-5"]/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[FHIR criticality → CDA Criticality value](ConceptMap-FC-Criticality.html)| +|.criticality|**[Criticality](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CriticalityObservation.html)**<br/>/entryRelationship/observation[code/@code="82606-5"]/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[FHIR criticality → CDA Criticality value](ConceptMap-FC-Criticality.html)| |.code|/participant/participantRole/playingEntity/code|**Constraint**: When FHIR concept is not a negated concept<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.code|/participant/participantRole/playingEntity/code or /value<br/>&<br/>set @negationInd="true"|**Constraint**: When FHIR concept represents general negated concept (e.g. no known allergy)<br/>[FHIR code → CDA No Known Allergy](ConceptMap-FC-NoKnownAllergies.html)<br/>In case where a specific refutation is coded (no latex allergy), use text or a mapped concept.| |.encounter|/entryRelationship[@typeCode="REFR"]/act/id|| @@ -31,10 +31,10 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea |.onsetPeriod.start|/effectiveTime/low|effectiveTime/high should not be mapped from onsetPeriod| |.recordedDate|/assignedAuthor/time|These are not necessarily the same author| |.recorder|/assignedAuthor|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)<br/>Time and author are not necessarily the same| -|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| -|.reaction.manifestation|**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value|Both use SNOMED clinical findings with minor valueSet definition differences +|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| +|.reaction.manifestation|**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value|Both use SNOMED clinical findings with minor valueSet definition differences |.reaction.onset|/effectiveTime/low|Constraint: This should only be used in event that AlleryIntolerance.onset was not available| -|.reaction.severity|**[Severity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-SeverityObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/entryRelationship/observation[code/@code="SEV"]/value|[FHIR severity → CDA severity value ](ConceptMap-FC-Criticality.html)<br/>This should be nested in CDA within the respective allergic reaction observation| +|.reaction.severity|**[Severity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-SeverityObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/entryRelationship/observation[code/@code="SEV"]/value|[FHIR severity → CDA severity value ](ConceptMap-FC-Criticality.html)<br/>This should be nested in CDA within the respective allergic reaction observation| 1\. XPath abbrievated for C-CDA Allergy Intolerance as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="48765-2"]/entry/act/entryRelationship/observation diff --git a/input/pagecontent/FC-encounters.md b/input/pagecontent/FC-encounters.md new file mode 100644 index 00000000..ae8e0d67 --- /dev/null +++ b/input/pagecontent/FC-encounters.md @@ -0,0 +1 @@ +*Coming soon...* \ No newline at end of file diff --git a/input/pagecontent/FC-immunizations.md b/input/pagecontent/FC-immunizations.md index 08125510..93275b0f 100644 --- a/input/pagecontent/FC-immunizations.md +++ b/input/pagecontent/FC-immunizations.md @@ -17,13 +17,13 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea ### FHIR to C-CDA -|FHIR<br/>[Immunization](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-immunization.html#profile)|C-CDA¹<br/>[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ImmunizationActivity.html)|Transform Steps| +|FHIR<br/>[Immunization](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-immunization.html#profile)|C-CDA¹<br/>[Immunization Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationActivity.html)|Transform Steps| |:----|:----|:----| ||/@moodCode="EVN"|All FHIR Immunizations should be set to "EVN" moodCode |.identifier|/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| |.status|/statusCode|**Constraint** when .status.value="not-done"<br/>Set negationInd to true in CDA observation| |.status|/statusCode|**Constraint** all other values of .status<br/>[FHIR status → CDA statusCode](ConceptMap-FC-ImmunizationStatus.html)| -|.statusReason|**[Immunization Refusal Reason](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ImmunizationRefusalReason.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/code|[FHIR statusReason → CDA refusal](ConceptMap-FC-ImmunizationRefusal.html)| +|.statusReason|**[Immunization Refusal Reason](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ImmunizationRefusalReason.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/code|[FHIR statusReason → CDA refusal](ConceptMap-FC-ImmunizationRefusal.html)| |.vaccineCode|/consumable/manufacturedProduct/manufacturedMaterial/code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.primarySource||This element has no target in CDA |.occurrenceDateTime|/effectiveTime/@value|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| @@ -33,13 +33,13 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea |.route|/routeCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.doseQuantity|/doseQuantity|[CDA ↔ FHIR Quantity](mappingGuidance.html#cda--fhir-quantity)| |.performer.actor|/performer|**Constraint** when .performer.function="AP"<br/>[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| -|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|| +|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| +|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|| |.education.documentType|reference/ExternalDocument/code|| |.education.reference|/reference/ExternalDocument/id|| -|.reaction.id<br/><br/>|**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| -|.reaction.date|/**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/effectiveTime|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| -|.reaction.detail.valueCodeableConcept|**[Reaction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|.reaction.id<br/><br/>|**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| +|.reaction.date|/**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/effectiveTime|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|.reaction.detail.valueCodeableConcept|**[Reaction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ReactionObservation.html)**<br/>/entryRelationship[@typeCode="MFST"]/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.doseNumber[x].doseNumberPositiveInt|/repeatNumber|| 1\. XPath abbrievated for C-CDA Immunization Activity as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11369-6"]/entry/substanceAdministration diff --git a/input/pagecontent/FC-index.md b/input/pagecontent/FC-index.md index 3c3fa2cd..8e47623d 100644 --- a/input/pagecontent/FC-index.md +++ b/input/pagecontent/FC-index.md @@ -13,5 +13,6 @@ - [Patient](FC-patient.html) - [Problems](FC-problems.html) - [Procedures](FC-procedures.html) +- [Vitals](FC-vitals.html) Please refer to [mapping background](mappingBackground.html) for more information how maps were selected and developed. diff --git a/input/pagecontent/FC-medications.md b/input/pagecontent/FC-medications.md index d5f72e4f..97672cfc 100644 --- a/input/pagecontent/FC-medications.md +++ b/input/pagecontent/FC-medications.md @@ -19,7 +19,7 @@ See guidance on timing mappings on [Medications CDA → FHIR](./CF-medications.h ### FHIR to C-CDA -|FHIR<br>[MedicationRequest](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medicationrequest.html)|C-CDA¹<br>[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-MedicationActivity.html)|Transform Steps| +|FHIR<br>[MedicationRequest](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-medicationrequest.html)|C-CDA¹<br>[Medication Activity substanceAdministration](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationActivity.html)|Transform Steps| |:----|:----|:----| |.identifier|/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| |.status|/status|[FHIR status → CDA statusCode](ConceptMap-FC-MedicationStatus.html)| @@ -30,10 +30,10 @@ See guidance on timing mappings on [Medications CDA → FHIR](./CF-medications.h |.authoredOn|/author/time|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |.requester|/assignedAuthor|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |.performer|/performer|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| -|.dosageInstruction.text<br/>&<br/>.dosageInstruction.patientInstruction|**[Free text sig](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-MedicationFreeTextSig.html)**<br/>/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|| -|.dosageInstruction.additionalInstruction|**[Instruction](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Instruction.html)**<br/>/entryRelationship[@typeCode="SUBJ"]/act/code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>/entryRelationship/act[code/@code="48767-8"]/text|| +|.dosageInstruction.text<br/>&<br/>.dosageInstruction.patientInstruction|**[Free text sig](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-MedicationFreeTextSig.html)**<br/>/entryRelationship/substanceAdministration[code/@code="76662-6"]/text|| +|.dosageInstruction.additionalInstruction|**[Instruction](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Instruction.html)**<br/>/entryRelationship[@typeCode="SUBJ"]/act/code|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.dosageInstruction.timing.repeat.boundsPeriod.start|effectiveTime[1]/low|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)<br/>**Note:** in XPath, `[1]` is the first instance; there is no `[0]` in XPath.| |.dosageInstruction.timing.repeat.boundsPeriod.end|effectiveTime[1]/high|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |.dosageInstruction.timing.repeat.frequency<br/>&<br/>.dosageInstruction.timing.repeat.period<br/>&<br/>.dosageInstruction.timing.repeat.periodUnit<br/>|/effectiveTime[2]/...<br/>/@operator='A'<br/>/@xsi:type='PIVL_TS'<br/>/@institutionSpecified<br/>/period|Compare:<br/>[C-CDA Common Medication Frequencies](http://cdasearch.hl7.org/examples/view/9588687865c0f945a326364a9449321690c7a7ef) and <br/>[FHIR Timing Data Type](http://hl7.org/fhir/R4/datatypes.html#Timing)| diff --git a/input/pagecontent/FC-notes.md b/input/pagecontent/FC-notes.md new file mode 100644 index 00000000..ae8e0d67 --- /dev/null +++ b/input/pagecontent/FC-notes.md @@ -0,0 +1 @@ +*Coming soon...* \ No newline at end of file diff --git a/input/pagecontent/FC-patient.md b/input/pagecontent/FC-patient.md index 856f6e86..7e6a508f 100644 --- a/input/pagecontent/FC-patient.md +++ b/input/pagecontent/FC-patient.md @@ -17,7 +17,7 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea ### FHIR to C-CDA -|FHIR<br/>[Patient](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html#profile)|C-CDA¹<br/>[US Realm Header recordTarget](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-USRealmHeader.html)|Transform Steps| +|FHIR<br/>[Patient](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html#profile)|C-CDA¹<br/>[US Realm Header recordTarget](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-USRealmHeader.html)|Transform Steps| |:----|:----|:----| |.extension.extension (race)<br/>url=http://hl7.org/fhir/us/core/STU4/StructureDefinition/us-core-race|/patientRole/patient/raceCode<br/>&<br/>/patientRole/patient/sdtc:raceCode|only one ombCategory extension goes in raceCode; other values go in sdtc:raceCode| |.extension.extension (ethnicity)<br/>url=http://hl7.org/fhir/us/core/STU4/StructureDefinition/us-core-ethnicity|/patientRole/patient/ethnicGroupCode<br/>&<br/>/patientRole/patient/sdtc:ethnicGroupCode|only one ombCategory extension goes in ethnicGroupCode; other values go in sdtc:ethnicGroupCode| diff --git a/input/pagecontent/FC-problems.md b/input/pagecontent/FC-problems.md index c508360a..bd44bc13 100644 --- a/input/pagecontent/FC-problems.md +++ b/input/pagecontent/FC-problems.md @@ -17,11 +17,11 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea ### FHIR to C-CDA -|FHIR<br/>[Condition and Health Concern](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-problems-health-concerns.html)|C-CDA¹<br/>[Problem observation](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemObservation.html)|Transform Steps| +|FHIR<br/>[Condition and Health Concern](https://hl7.org/fhir/us/core/StructureDefinition-us-core-condition-problems-health-concerns.html)|C-CDA¹<br/>[Problem observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemObservation.html)|Transform Steps| |:----|:----|:----| |.identifier|/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| -|.clinicalStatus|(act parent to observation) ../../statusCode<br/>&<br/>**[Problem Status](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemStatus.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|[FHIR clinicalStatus → CDA Problem Status Observation value](./ConceptMap-FC-ProblemStatus.html)<br/>For more information on how status is managed in Problem Concern Act wrapper, refer to [C-CDA guidance, see 5.2.6.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)| -|.category|/code<br/>This also affects the C-CDA document section:<br/>**[Problems](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProblemSection.html)**<br/>**[Health Concerns](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-HealthConcernsSection.html)**<br/>**[Encounters](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-EncountersSection.html)**|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[FHIR category → CDA section](ConceptMap-FC-ProblemCategory.html)| +|.clinicalStatus|(act parent to observation) ../../statusCode<br/>&<br/>**[Problem Status](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemStatus.html)**<br/>/entryRelationship/observation[code/@code="33999-4"]/value|[FHIR clinicalStatus → CDA Problem Status Observation value](./ConceptMap-FC-ProblemStatus.html)<br/>For more information on how status is managed in Problem Concern Act wrapper, refer to [C-CDA guidance, see 5.2.6.1](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447)| +|.category|/code<br/>This also affects the C-CDA document section:<br/>**[Problems](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProblemSection.html)**<br/>**[Health Concerns](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-HealthConcernsSection.html)**<br/>**[Encounters](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-EncountersSection.html)**|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)<br/>[FHIR category → CDA section](ConceptMap-FC-ProblemCategory.html)| |.code|/value|**Constraint**: When FHIR concept does not represent negated concept<br/>[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.code|/value<br/>&<br/>set @negationInd="true"|**Constraint**: When FHIR concept represents negated concept| |.onsetDateTime|/effectiveTime/low|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| @@ -30,7 +30,7 @@ This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, plea |.recordedDate|**[Date of Diagnosis](https://www.hl7.org/ccdasearch/templates/2.16.840.1.113883.10.20.22.4.502.html)**<br/>entryRelationship/act[code/@code="77975-1"]/effectiveTime<br/>&<br/>/assignedAuthor/time|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |.recorder|/assignedAuthor|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |.asserter|/informant|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>entryRelationship/act[code/@code="48767-8"]/text|| +|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>entryRelationship/act[code/@code="48767-8"]/text|| 1\. XPath abbrievated for C-CDA Problem observation as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="11450-4"]/entry/act/entryRelationship/observation diff --git a/input/pagecontent/FC-procedures.md b/input/pagecontent/FC-procedures.md index 79438e6f..847887e4 100644 --- a/input/pagecontent/FC-procedures.md +++ b/input/pagecontent/FC-procedures.md @@ -16,11 +16,11 @@ td, th { This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, please refer to [Procedures CDA → FHIR](./CF-procedures.html). For guidance on how to read the table below, see [Reading the C-CDA ↔ FHIR Mapping Pages](./mappingGuidance.html). <br/> #### Note on template selection -It also specifies a template for “all interventional, non-interventional, surgical, diagnostic, or therapeutic procedures or treatments pertinent to the patient historically at the time the document is generated." For this reason, we recommend mapping [FHIR Procedures](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html) to [Procedure Activity Procedure](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProcedureActivityProcedure.html) when using the C-CDA R3/E1 guide for the targeted C-CDA, while guidance on mapping to the other templates when generating an older version C-CDA will be forthcoming. +It also specifies a template for “all interventional, non-interventional, surgical, diagnostic, or therapeutic procedures or treatments pertinent to the patient historically at the time the document is generated." For this reason, we recommend mapping [FHIR Procedures](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html) to [Procedure Activity Procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProcedureActivityProcedure.html) when using the C-CDA R3/E1 guide for the targeted C-CDA, while guidance on mapping to the other templates when generating an older version C-CDA will be forthcoming. ### FHIR to C-CDA -|FHIR<br/>[Procedure](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)|C-CDA¹<br/>[Procedure Activity procedure](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ProcedureActivityProcedure.html)|Transform Steps| +|FHIR<br/>[Procedure](http://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-procedure.html)|C-CDA¹<br/>[Procedure Activity procedure](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ProcedureActivityProcedure.html)|Transform Steps| |:----|:----|:----| |.identifier|/id|[CDA id ↔ FHIR identifier](mappingGuidance.html#cda-id--fhir-identifier)| |.status|/statusCode|[FHIR status → CDA statusCode](./ConceptMap-FC-ProcedureStatus.html)| @@ -30,10 +30,10 @@ It also specifies a template for “all interventional, non-interventional, surg |.performedPeriod.end|/effectiveTime/high|[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| |.performer.actor|/performer|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| |.performer.onBehalfOf|/perfomer/assignedEntity/representedOrganization|[CDA ↔ FHIR Provenance](mappingGuidance.html#cda--fhir-provenance)| -|.location|**[Service Delivery Location](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-ServiceDeliveryLocation.html)**<br/>/participant[@typeCode="LOC"]<br/>/participantRole|| -|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]<br/>/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|.location|**[Service Delivery Location](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-ServiceDeliveryLocation.html)**<br/>/participant[@typeCode="LOC"]<br/>/participantRole|| +|.reasonCode|**[Indication](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-Indication.html)**<br/>/entryRelationship[@typeCode="RSON"]<br/>/observation/value|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| |.bodySite|/targetSiteCode|[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| -|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-CommentActivity.html)**<br/>entryRelationship/act[code@code="48767-8"]/entryRelationship/act/text|| +|**[Annotation](https://hl7.org/fhir/datatypes.html#Annotation)**<br/>.note|**[Comment Activity](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-CommentActivity.html)**<br/>entryRelationship/act[code@code="48767-8"]/entryRelationship/act/text|| 1\. XPath abbrievated for C-CDA Procedure as: <br/> ClinicalDocument/component/structuredBody/component/section[code/@code="47519-4"]/entry/procedure diff --git a/input/pagecontent/FC-results.md b/input/pagecontent/FC-results.md new file mode 100644 index 00000000..ae8e0d67 --- /dev/null +++ b/input/pagecontent/FC-results.md @@ -0,0 +1 @@ +*Coming soon...* \ No newline at end of file diff --git a/input/pagecontent/FC-social.md b/input/pagecontent/FC-social.md new file mode 100644 index 00000000..ae8e0d67 --- /dev/null +++ b/input/pagecontent/FC-social.md @@ -0,0 +1 @@ +*Coming soon...* \ No newline at end of file diff --git a/input/pagecontent/FC-vitals.md b/input/pagecontent/FC-vitals.md new file mode 100644 index 00000000..d5488477 --- /dev/null +++ b/input/pagecontent/FC-vitals.md @@ -0,0 +1,40 @@ +<style> +td, th { + border: 1px solid black!important; +} +</style> + +This page provides a mapping from FHIR to CDA. For the CDA to FHIR mapping, please refer to [Vitals CDA → FHIR](./CF-vitals.html). For guidance on how to read the table below, see [Reading the FHIR ↔ C-CDA Mapping Pages](./mappingGuidance.html). + +FHIR Vitals that are grouped into a panel using the memberOf property are mapped to a CDA Vital Signs Organizer. + +### FHIR Observation Panel to C-CDA Vital Signs Organizer + +|FHIR<br/>[Vital Signs Observation](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-vital-signs.html)|C-CDA¹<br/>[Vital SignsOrganizer](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-VitalSignsOrganizer.html)|Transform Steps| +|:----|:----|:----| +|.identifier|/id|[FHIR identifier ↔ CDA id](mappingGuidance.html#cda-id--fhir-identifier)| +|.category = `vital-signs` ||| +|.code = `85353-1` ||[CDA coding ↔ FHIR CodeableConcept](mappingGuidance.html#cda-coding--fhir-codeableconcept)| +|.status|/statusCode|[FHIR Observation Status → CDA Result Status](./ConceptMap-FC-ObservationStatus.html)<br/> CDA requires 'completed', which will usually be the case| +|.effectiveDateTime|/effectiveTime|Use value| +|.effectivePeriod|/effectiveTime|Use high and low <br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates)| +|.hasMember|component|Reference to each vital sign observation | + +### FHIR Observation to C-CDA Vital Signs Observation + +|FHIR<br/>[Vital Signs Observation](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-vital-signs.html)|C-CDA¹<br/>[Vital Sign Observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-VitalSignObservation.html)|Transform Steps| +|:----|:----|:----| +|.identifier|/id|[FHIR identifier ↔ CDA id](mappingGuidance.html#cda-id--fhir-identifier)| +|.code |/code|[FHIR CodeableConcept ↔ CDA coding ](mappingGuidance.html#fhir-codeableconcept--cda-coding)| +|.status|/statusCode|Set to completed +|.effectiveDateTime|/effectiveTime|Use value +|.effectivePeriod|/effectiveTime|Use high and low <br/>[CDA ↔ FHIR Time/Dates](mappingGuidance.html#cda--fhir-timedates) +|.valueQuantity|/value|If not null <br> [FHIR ↔ CDA Quantities](mappingGuidance.html#cda--fhir-quantity) +|.dataAbsentReason|/value@nullFlavor|If value is null<br>[FHIR DataAbsentReason ↔ CDA NullFlavor](ConceptMap-FC-DataAbsentReasonNullFlavor.html) +|.interpretation|/interpretationCode|[FHIR CodeableConcept ↔ CDA coding](mappingGuidance.html#fhir-codeableconcept--cda-coding)| +|.method|/methodCode|[FHIR CodeableConcept ↔ CDA coding](mappingGuidance.html#fhir-codeableconcept--cda-coding)| +|.bodySite|/targetSiteCode|[FHIR CodeableConcept ↔ CDA coding](mappingGuidance.html#fhir-codeableconcept--cda-coding)| + + + +### Illustrative example \ No newline at end of file diff --git a/input/pagecontent/conceptMaps.md b/input/pagecontent/conceptMaps.md index 8adee1bf..75664eee 100644 --- a/input/pagecontent/conceptMaps.md +++ b/input/pagecontent/conceptMaps.md @@ -13,6 +13,7 @@ Shown below are terminology mappings for use in moving from CDA → FHIR. Entry - [Allergy Intolerance Observation value (CDA) → AllergyIntolerance category (FHIR)](./ConceptMap-CF-AllergyIntoleranceCategory.html) - [Allergy Status Observation (CDA) → AllergyIntolerance clinicalStatus (FHIR)](./ConceptMap-CF-AllergyStatus.html) - [Criticality value (CDA) → criticality (FHIR)](./ConceptMap-CF-Criticality.html) +- [Encounter status (CDA) → Encounter status (FHIR)](./ConceptMap-CF-EncounterStatus.html) - [Immunization Activity statusCode (CDA) → Immunization status (FHIR)](./ConceptMap-CF-ImmunizationStatus.html) - [Immunization Refusal Reason (CDA) → Immunization statusReason (FHIR)](./ConceptMap-CF-ImmunizationRefusal.html) - [Medication Activity statusCode (CDA) → MedicationRequest status (FHIR)](./ConceptMap-CF-MedicationStatus.html) diff --git a/input/pagecontent/index.md b/input/pagecontent/index.md index 6fa69df8..3e4fd98a 100644 --- a/input/pagecontent/index.md +++ b/input/pagecontent/index.md @@ -16,7 +16,7 @@ This first stage of the project defines all the C-CDA document-level profiles on Any coded data used by sections will be represented using relevant U.S. Core FHIR profiles where they exist. FHIR profiles defined by other work groups or unconstrained FHIR resources may also be referenced if no appropriate US Core Profile exist. -For further information see the [pdf-based C-CDA specification](http://www.hl7.org/implement/standards/product_brief.cfm?product_id=492), [StructureDefinition C-CDA specification](http://hl7.org/cda/stds/ccda/draft1/), [original project scope](https://confluence.hl7.org/pages/viewpage.action?pageId=76158360) and [mapping project scope](https://jira.hl7.org/browse/PSS-1811). +For further information see the [pdf-based C-CDA specification](http://www.hl7.org/implement/standards/product_brief.cfm?product_id=492), [StructureDefinition C-CDA specification](https://hl7.org/cda/us/ccda/3.0.0/), [original project scope](https://confluence.hl7.org/pages/viewpage.action?pageId=76158360) and [mapping project scope](https://jira.hl7.org/browse/PSS-1811). ### Authors (Composition Profiles, Extensions and CapabilityStatement ) diff --git a/input/pagecontent/mappingBackground.md b/input/pagecontent/mappingBackground.md index 7363d4cd..5b9ceb41 100644 --- a/input/pagecontent/mappingBackground.md +++ b/input/pagecontent/mappingBackground.md @@ -1,11 +1,11 @@ -[Consolidated Clinical Document Architecture (C-CDA)](https://hl7.org/cda/us/ccda/2024Jan/) and [Fast Healthcare Interoperability Resources (FHIR) US Core](http://hl7.org/fhir/us/core/STU4/) are two of the most common standards for exchanging clinical data in the United States. This [project's](https://confluence.hl7.org/display/CGP/C-CDA+to+and+from+US+Core+Mapping) goals are to establish HL7 mapping transformation guidance to provide clarity and consistency in translating data between C-CDA and FHIR and between FHIR and C-CDA. +[Consolidated Clinical Document Architecture (C-CDA)](https://hl7.org/cda/us/ccda/) and [Fast Healthcare Interoperability Resources (FHIR) US Core](http://hl7.org/fhir/us/core/STU4/) are two of the most common standards for exchanging clinical data in the United States. This [project's](https://confluence.hl7.org/display/CGP/C-CDA+to+and+from+US+Core+Mapping) goals are to establish HL7 mapping transformation guidance to provide clarity and consistency in translating data between C-CDA and FHIR and between FHIR and C-CDA. In our first publication, we focused on the subset of domains that are recognized as the most exchangeable concepts in the industry. This first publication is limited to Problems, Allergies, Medications, Immunizations, Procedures, and Patient (PAMI+) domains. Acknowledging the various stages of maturity for each domain, we included the entire work for these concepts. This project was scoped independently of the document-level profiles developed in earlier versions of this guide. <div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <blockquote class="stu-note"> <b>Mapping Consensus</b> - <p>Note that C-CDA → FHIR mappings had a significant exposure to achieve multi-vendor consensus. This included through two FHIR Connectathons (September 2022 and January 2023) and regular weekly engagement. Vendors and organizations participating in this process include: + <p>Note that C-CDA → FHIR mappings had a significant exposure to achieve multi-vendor consensus. This has included several FHIR [Connectathons](https://confluence.hl7.org/display/CGP/Scope+and+Schedule) and regular weekly engagements. Vendors and organizations participating in this process include: <ul> <li>Cerner (Oracle)</li> <li>Diameter Health (Availity)</li> @@ -26,6 +26,8 @@ In our first publication, we focused on the subset of domains that are recognize Bi-directional automated transform is possible in constrained use cases but is not lossless due to varying flexibility and expressiveness in the standards. Use of extensions may mitigate the loss of information in transformation but may not be included in this guide. The CDA content is scoped by C-CDA R2.1 and the C-CDA Companion Guide R2, FHIR content by US Core R4, and, by implication, US Core Data for Interoperability (USCDI). +Our roadmap prioritizes USCDI, so we strive to map items in the respective standards that support USCDI. As elements are added to new versions of USCDI, we may map them in advance, especially when we are already engaged in a related domain. We also may omit or defer maps for elements that are both difficult and of dubious use, i.e., items that are not in USCDI and are deprecated or omitted from later editions of either specification. + We employed several tactics to meet our goals. Standards developers drafted maps based on the respective specifications, and these were reviewed by stakeholders both offline and at public, regularly scheduled meetings. These meetings included implementors, terminologists, regulatory and public health representatives, and strategists, who engaged in realignment, consensus-seeking, and reformatting of the maps for a variety of audiences. Difficult questions were escalated to the work groups responsible for the specifications. Issues and their resolutions were logged in the publicly accessible project site. In addition, the project team employed the example-based approach through Connectathons with vendors and experts in the standards community. The approach involves sharing inbound examples among the vendors, comparing the outbound artifacts generated by these vendors, and discussing with the group to achieve alignment in best practice recommendations. Our team has been focused on the generated artifacts, regardless of the transformation technologies, so any vendor is empowered to achieve the same transformation results. Note that, to date, the Connectathons have addresses only the CDA-to-FHIR cases, though two implementers have provided feedback on the FHIR-to-CDA cases. diff --git a/input/pagecontent/mappingChangelog.md b/input/pagecontent/mappingChangelog.md new file mode 100644 index 00000000..6d1a3ef4 --- /dev/null +++ b/input/pagecontent/mappingChangelog.md @@ -0,0 +1,41 @@ +### 1.3.0 (Current STU Ballot) +Though feedback is welcome on any part of the IG, only changed content may be voted upon during an STU ballot. The following is a high-level list of changes since version 1.2.0 STU1. + +**New Resources / Guidance** +- [C-CDA → FHIR Encounters](CF-encounters.html) +- [C-CDA → FHIR Notes](CF-notes.html) +- [C-CDA → FHIR Participation](CF-participations.html) +- [C-CDA → FHIR Results](CF-results.html) +- [C-CDA → FHIR Social History](CF-social.html) +- [C-CDA → FHIR Vitals](CF-vitals.html) +- [FHIR → C-CDA Vitals](FC-vitals.html) +- [GeneralGuidance](mappingGuidance.html) + - [Missing Maps](mappingGuidance.html#missing-maps) + - [FHIR Code → CDA Coding](mappingGuidance.html#fhir-code--cda-coding) + - [Ranges of Physical Quantities](mappingGuidance.html#ranges-of-physical-quantities) + +**Updated Mappings** + +During the 2023 & 2024 connectathons, several mappings were enhanced. These updates addressed gaps for fields required by C-CDA or USCDI and included non-controversial mappings. For guidance on handling unmapped fields, refer to the [Missing Maps](mappingGuidance.html#missing-maps) section. +- [C-CDA → FHIR Medications](CF-medications.html) - Added `approachSiteCode`, `maxDoseQuantity`, `manufacturer`, `Drug Vehicle`, and`Supply`. +- [C-CDA → FHIR Patient](CF-patient.html) - Added guidance for `raceCode/originalText` as well as mappings for `guardian`, `languageCommunication/modeCode`, and `languageCommunication/proficiencyLevelCode`. +- [C-CDA → Probelms](CF-problems.html) - Added `Age Observation` and `Supporting Observations (e.g. Assessment Scale Observation)`. + +### 1.2.0 STU 1 (First Mapping Ballot) +- Mapping Background +- Bidirectional mappings for the following content: + - Allergies + - Immunizations + - Medications + - Patient + - Problems + - Procedures +- Structural Guidance + - Identifiers + - Time/Dates + - Coding/CodeableConcept + - Quantity + - Provenance (high-level) + - Name/Address/Telecom + - Missing Data + - Narrative Text \ No newline at end of file diff --git a/input/pagecontent/mappingGuidance.md b/input/pagecontent/mappingGuidance.md index 62adc4e9..706c624d 100644 --- a/input/pagecontent/mappingGuidance.md +++ b/input/pagecontent/mappingGuidance.md @@ -8,9 +8,9 @@ td, th { #### How to Read Mapping Tables and Transform Steps? -The header row of the mapping table provides links to the respective profiles in FHIR (e.g. **[US Core AllergyIntolerance](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)**) and templates in C-CDA (e.g. **[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-AllergyIntoleranceObservation.html)**)and specifies the "base" that each of the rows will build on. All FHIR elements use a simplified dot notation and the CDA elements use simplified slash notation. Always use the underlying standards, provided via header row links, to ensure conformance when building FHIR resources or C-CDA clinical documents. +The header row of the mapping table provides links to the respective profiles in FHIR (e.g. **[US Core AllergyIntolerance](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-allergyintolerance.html)**) and templates in C-CDA (e.g. **[Allergy Intolerance observation](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-AllergyIntoleranceObservation.html)**)and specifies the "base" that each of the rows will build on. All FHIR elements use a simplified dot notation and the CDA elements use simplified slash notation. Always use the underlying standards, provided via header row links, to ensure conformance when building FHIR resources or C-CDA clinical documents. -Rather than repeating cardinality, conformance, and other criteria from FHIR Resources or a C-CDA templates defined outside this implementaiton guide, external references are shown in tables as bold hyperlinks (e.g. **[US Core Patient](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html)** or **[C-CDA US Realm Header](https://hl7.org/cda/us/ccda/2024Jan/StructureDefinition-USRealmHeader.html)**). Unbolded links refer to guidance contained within this guide (e.g. [CDA ↔ FHIR Name, Address, and Telecom mapping](mappingGuidance.html#name-address-telecom)). When criteria for selecting XML elements from C-CDA is required, you will see **[XPath](https://en.wikipedia.org/wiki/XPath)** notation with the respective criteria within brackets (e.g. /entryRelationship[@typeCode="MSFT"]). +Rather than repeating cardinality, conformance, and other criteria from FHIR Resources or a C-CDA templates defined outside this implementaiton guide, external references are shown in tables as bold hyperlinks (e.g. **[US Core Patient](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-patient.html)** or **[C-CDA US Realm Header](https://hl7.org/cda/us/ccda/3.0.0/StructureDefinition-USRealmHeader.html)**). Unbolded links refer to guidance contained within this guide (e.g. [CDA ↔ FHIR Name, Address, and Telecom mapping](mappingGuidance.html#name-address-telecom)). When criteria for selecting XML elements from C-CDA is required, you will see **[XPath](https://en.wikipedia.org/wiki/XPath)** notation with the respective criteria within brackets (e.g. /entryRelationship[@typeCode="MSFT"]). The "Transform Steps" column of the table will provide guidance for mapping content between C-CDA and FHIR, those steps will be listed in the following order: @@ -27,6 +27,10 @@ Examples for C-CDA to FHIR transforms are provided based on a consensus of vario The highlighted output images were created using an [open source tool for C-CDA ↔ FHIR Mapping](https://github.com/jddamore/cda-fhir-compare) developed as part of this project. +#### Missing Maps + +If you have data in an input artifact that is defined in the source specification and for which no map is specified here, that means that this team did not find a target for which we could build consensus. In most cases, this means that the data is unusual enough that the target specification did not address it (e.g., treatments for allergy reactions, which would probably be reported in the Problems or Procedures section rather than the Allergies section). In these cases, the team felt that converging on one design from the many solution possible patterns was not an optimal investment of resources. If readers identify elements for which this seems insufficient, they should comment. + ### CDA id ↔ FHIR identifier Identifiers in both FHIR and CDA can divide the identifier value from its namespace: FHIR as the identifier.system and CDA as the id.root. In many cases, this correspondence works well. @@ -81,12 +85,12 @@ CDA timestamp values are based on a pattern of YYYYMMDDHHmmss+zzzz and [FHIR dat To convert between the standards, systems should deploy programming logic that converts formats and preserves the level of precision. For example, "20230531" from CDA would become "2023-05-31" in FHIR (not 2023-05-31T00:00:00+00:00). Additional examples below: -|CDA Date Time|FHIR Date Time| +|CDA Date Time|FHIR Date Time|Notes| |:-----|:-----|:-------------| |2023|2023| |202305|2023-05| |20230531|2023-05-31| -|202305312205-0500|2023-05-31T22:05-05:00| +|202305312205-0500|2023-05-31T22:05-05:00|Timezone offset should be preserved Note that in C-CDA, timezone offset is a SHOULD, while in FHIR, time zone offset is required when more specific than the day. There may be instances where a CDA date-time value omits a time zone offset and other data from the document may be necessary to populate FHIR dateTime requirements. @@ -108,6 +112,8 @@ Some CDA temporal fields can be either a single point-in-time or an interval ran The structure for coding in CDA and FHIR are fundamentally different. CDA employs a mechanism (xsi:type [CD](https://hl7.org/cda/stds/core/2.0.0-sd-snapshot1/StructureDefinition-CD.html) or [CE](https://hl7.org/cda/stds/core/2.0.0-sd-snapshot1/StructureDefinition-CD.html)) where the code is included in the element and then originalText and translations elements may be provided as child elements. In FHIR, [CodeableConcept](http://hl7.org/fhir/datatypes.html#codeableconcept) places all codes in a coding list with a separate element for the text representation. +Both C-CDA and FHIR stipulate that `display`/`@displayName` represents one of the display strings defined for that code by the code system. If a source contains other text, the transforming party may choose to send the system value in display, put that original value in `text`/`<originalText>` and put the system value in display, or simply send the source value. + #### CDA Coding → FHIR CodeableConcept |CDA Property|FHIR Target|Notes| @@ -139,6 +145,15 @@ In addition to the context of the previous section, CDA often requires elements Note that C-CDA sometimes requires a code from a specific system in the root of a CD and permits others in the translation +#### FHIR Code → CDA Coding + +Both CDA and FHIR employ a hierarchy of simpler types and more complex types that re-use the simpler ones. In some cases, a simpler type on one side will map to a more complex one on the other. Where the complexity supports metadata, these maps are essentially the same as the complex-to-complex maps (Coding & CodeableConcept, above). In a few cases, a complex type supports representing a simple source where a simple target would have failed. + +|FHIR Property|CDA Target|Notes| +|:-----|:-----|:-------------| +|code|originalText|If the CDA element is mapped to a value set that has no translation for the FHIR value, the FHIR value can be placed in orginalText. This does not satisfy CDA terminology bindings, should they exist.| + + #### Mapping OID ↔ URI FHIR requires that certain terminologies use a specific uniform resource identifier (URI) while CDA always uses object identifiers (OIDs) for codeSystems. This means: @@ -230,6 +245,223 @@ When mapping from FHIR to CDA, if the system is `http://unitsofmeasure.org`, the UCUM also provides the ability to include arbitrary units within a set of curly brackets (e.g. `{INR}`). No specific guidance on the use of curly brackets in unit translation is provided in this publication, however additional guidance on UCUM arbitrary units is [available here](https://ucum.org/ucum#section-Arbitrary-Units). +#### Ranges of Physical Quantities +CDA conveys ranges of values using the `IVL_PQ` data type. The `<low>` and `<high>` elements are normal Physical Quantity (PQ) elements with an additional `@inclusive` attribute. When this is present and set to `"false"`, the value of the boundary is not included in the range. The default value of this attribute is `"true"`, so regardless of whether it is absent or set to `"true"`, the value of the boundary IS included in the range. + +In FHIR, ranges with both a low and high are represented in the [Range](https://hl7.org/fhir/R4/datatypes.html#Range) data type, while ranges with only a low or a high are represented in the [Quantity](https://hl7.org/fhir/R4/datatypes.html#Quantity) data type using a [comparator](https://hl7.org/fhir/R4/valueset-quantity-comparator.html). + +Since a physical quantity is something that can be measured, a missing `<low>` value or a low value of `0` can be represented as `<` or `<=` the high value (based on the `@inclusive` property on `<high>`). If the `<high>` value is missing, it generally means the value was too large to measure, and the FHIR representation is `>` or `>=`. + +Note that in FHIR, `Observation.referenceRange` only contains `.low` and `.high` values, so this guidance is targeted to the actual values of observations. + +<table> +<tr><th>CDA IVL_PQ Value - High-only</th><th>FHIR Quantity</th></tr> +<tr><td> +<div markdown="1"> +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <high value="200" unit="mg/dL"/> +</value> +{% endhighlight %} +or +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="0" unit="mg/dL"/> + <high value="200" unit="mg/dL"/> +</value> +{% endhighlight %} +or + +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low nullFlavor="NINF"/> + <high value="200" unit="mg/dL"/> +</value> +{% endhighlight %} + +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"quantity": { + "value": 200, + "comparator": "<=", + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" +} +{% endhighlight %} + +(`<=` because inclusive is true by default) +</div> + +</td></tr> +<tr><td> +<div markdown="1"> +When `@inclusive="false"`: + +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <high value="200" unit="mg/dL" inclusive="false"/> +</value> +{% endhighlight %} +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"quantity": { + "value": 200, + "comparator": "<", + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" +} +{% endhighlight %} +</div> + +</td></tr> +<tr><td colspan="2"> </td></tr> +<tr><th>CDA IVL_PQ Value - Low-only</th><th>FHIR Quantity</th></tr> +<tr><td> +<div markdown="1"> +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="500" unit="mg/dL" inclusive="true"/> + <high nullFlavor="PINF"> +</value> +{% endhighlight %} + +or + +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="500" unit="mg/dL"/> +</value> +{% endhighlight %} + +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"quantity": { + "value": 500, + "comparator": ">=", + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" +} +{% endhighlight %} + + +(`>=` because inclusive is true by default) +</div> + +</td></tr> +<tr><td> +<div markdown="1"> +When `@inclusive="false"`: +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="500" unit="mg/dL" inclusive="false"/> + <high nullFlavor="PINF"/> +</value> +{% endhighlight %} + +or + +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="500" unit="mg/dL" inclusive="false"/> +</value> +{% endhighlight %} +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"quantity": { + "value": 500, + "comparator": ">", + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" +} +{% endhighlight %} +</div> + +</td></tr> +<tr><td colspan="2"> </td></tr> +<tr><th>CDA IVL_PQ Value - Low and High with Numeric Values</th><th>FHIR Range</th></tr> +<tr><td> +<div markdown="1"> +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="200" unit="mg/dL"/> + <high value="1000" unit="mg/dL"/> +</value> +{% endhighlight %} +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"range": { + "low": { + "value": 200, + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" + }, + "high": { + "value": 1000, + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" + } +} +{% endhighlight %} +</div> + +</td></tr> +<tr><td> +<div markdown="1"> +Units can be different, as long as they are equivalent: + +{% highlight xml %} +<value xsi:type="IVL_PQ"> + <low value="200" unit="mg/dL"/> + <high value="1" unit="g/dL"/> +</value> +{% endhighlight %} +</div> + +</td><td> +<div markdown="1"> +{% highlight json %} +"range": { + "low": { + "value": 200, + "unit": "mg/dL", + "code": "mg/dL", + "system": "http://unitsofmeasure.org" + }, + "high": { + "value": 1, + "unit": "g/dL", + "code": "g/dL", + "system": "http://unitsofmeasure.org" + } +} +{% endhighlight %} +</div> + +</td></tr> +</table> + + ### CDA ↔ FHIR Provenance CDA provides a repeated set of elements within each activity which may be used in populating data to/from FHIR [Provenance.Agent](https://hl7.org/fhir/us/core/STU4/StructureDefinition-us-core-provenance.html) @@ -308,7 +540,7 @@ The mappings of name, address and telecom information are useful in many part of |CDA telecom|FHIR telecom|Transform Steps |:-----|:-----|:--------- |@use|.use|[CDA telecom use → FHIR contact point use](./ConceptMap-CF-TelecomUse.html)<br/>Note that CDA's `@use='PG'` is equivalent to FHIR's `.system='pager'`| -|@value|.system<br/>&<br/>.value|[CDA telecom value → FHIR contact point system](./ConceptMap-CF-TelecomType.html)<br/>Only include information in FHIR value which comes after the CDA system prefix| +|@value|.system<br/>&<br/>.value|[CDA telecom value → FHIR contact point system](./ConceptMap-CF-TelecomType.html)<br/>Only include information in FHIR value which comes after the CDA system prefix; other formatting may be preserved. E.g. CDA `tel:+1(555)867-5309` becomes `+1(555)867-5309` in FHIR.<br/>| #### FHIR name → CDA name ##### @@ -339,19 +571,28 @@ The mappings of name, address and telecom information are useful in many part of |FHIR telecom|CDA telecom|Comments |:-----|:-----|:--------- -|.system<br/>&<br/>.value |@value|[FHIR contact point system → CDA telecom value](./ConceptMap-FC-TelecomType.html)<br/>Insert FHIR value after the CDA system prefix mapped from FHIR system<br/>Note that FHIR's `.system='pager'` is equivalent to CDA's `@use='PG'` | |.use|@use|[FHIR contact point use → CDA use](./ConceptMap-FC-TelecomUse.html)| +|.system<br/>&<br/>.value |@value|[FHIR contact point system → CDA telecom value](./ConceptMap-FC-TelecomType.html)<br/>Insert FHIR value after the CDA system prefix mapped from FHIR system<br/>Note that FHIR's `.system='pager'` is equivalent to CDA's `@use='PG'` | ### Missing Data in C-CDA vs. FHIR #### CDA and FHIR address missing data and null usage in different ways: -- The use of nullFlavor in CDA is explained in depth in Volume 1 of the [C-CDA Implementation Guide](https://hl7.org/cda/us/ccda/2024Jan/generalguidance.html#unknown-and-no-known-information) and in the [C-CDA Companion Guide](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447). +- The use of nullFlavor in CDA is explained in depth in Volume 1 of the [C-CDA Implementation Guide](https://hl7.org/cda/us/ccda/generalguidance.html#unknown-and-no-known-information) and in the [C-CDA Companion Guide](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=447). - The use of the data absent reason extension is explained in depth in the [US Core Implementation Guide](https://hl7.org/fhir/us/core/STU4/general-guidance.html#missing-data) and also in the [base extension](http://hl7.org/fhir/extension-data-absent-reason.html). In this publication, we include a mapping between missing data concepts. **Importantly, it should be noted that several mappings include non-equivalence (wider or narrower or unsupported) and that each standard may allow data elements to be omitted while the other requires**. Feedback to improve implementer guidance is welcome on the handling of missing data between C-CDA and FHIR: - [NullFlavor (CDA) → Data Absent Reason code (FHIR)](./ConceptMap-CF-NullFlavorDataAbsentReason.html) - [Data Absent Reason code (FHIR) → NullFlavor (CDA)](./ConceptMap-FC-DataAbsentReasonNullFlavor.html) +### Comment → Annotation +The CDA [Comment Activity](https://build.fhir.org/ig/HL7/CDA-ccda/StructureDefinition-CommentActivity.html) template is used for text notes accompanied by their author. The FHIR [Annotation](https://hl7.org/fhir/R4/datatypes.html#annotation) datatype can capture text and an author as well. + +|C-CDA<br/>[Comment Activity](https://build.fhir.org/ig/HL7/CDA-ccda/StructureDefinition-CommentActivity.html)|FHIR <br/> [Annotation](https://hl7.org/fhir/R4/datatypes.html#annotation)|Notes| +|:-------|:------|:---------| +|text|text|See [C-CDA Entry/Text → FHIR Resource.text](mappingGuidance.html#c-cda-entrytext--fhir-resourcetext)| +|author/time|time|| +|author/assignedAuthor|authorReference|Ideally this is a PractitionerRole, which can then support both Pracitioner (name) and Organization, if necessary.| + ### Narrative Text The CDA section narrative text is an authoritative portion of the document and must be preserved when transforming to FHIR. When creating a FHIR Composition resource (or converting a FHIR Composition back into CDA), this is a straightforward mapping between CDA's `section/text` and the FHIR Composition `section.text` field. There is a slight difference in allowed elements - CDA defines a limited set of elements in its NarrativeBlock schema, and FHIR limits narratives to a subset of XHTML - but these two fields can generally be mapped 1:1. These differences are described below. diff --git a/publication-request.json b/publication-request.json index 4baa771e..f86b2ef4 100644 --- a/publication-request.json +++ b/publication-request.json @@ -1,11 +1,19 @@ { "package-id" : "hl7.fhir.us.ccda", - "version" : "1.2.0", - "path" : "http://hl7.org/fhir/us/ccda/STU1.2", + "version" : "1.3.0", + "path" : "http://hl7.org/fhir/us/ccda/STU1.3", +<<<<<<< HEAD + "mode": "working", + "status" : "ballot", + "sequence" : "STU 3", + "desc" : "The C-CDA on FHIR Implementation Guide is a US Realm Implementation Guide of the FHIR Specification addressing the key aspects of Consolidated CDA (C-CDA) required for Meaningful Use (MU). This IG publication release focuses on providing data mappings for problems, allergies, medications, immunization, patient and procedures (PAMI+), and results, vitals, encounters, and social determinants of health. The clinical document header and document guidance from the earlier publications have not been updated since 2020.", + "descmd" : "The C-CDA on FHIR Implementation Guide is a US Realm Implementation Guide of the FHIR Specification addressing the key aspects of Consolidated CDA (C-CDA) required for Meaningful Use (MU). This IG publication release focuses on providing data mappings for problems, allergies, medications, immunization, patient and procedures (PAMI+), and results, vitals, encounters, and social determinants of health. The clinical document header and document guidance from the earlier publications have not been updated since 2020.", +======= "mode": "milestone", "status" : "trial-use", "sequence" : "STU 1", "desc" : "The C-CDA on FHIR Implementation Guide is a US Realm Implementation Guide of the FHIR Specification addressing the key aspects of Consolidated CDA (C-CDA) required for Meaningful Use (MU). This IG publication release focuses on providing data mappings for problems, allergies, medications, immunization, patient and procedures (PAMI+). The clinical document header and document guidance from the earlier publications have not been updated since 2020.", "descmd" : "The C-CDA on FHIR Implementation Guide is a US Realm Implementation Guide of the FHIR Specification addressing the key aspects of Consolidated CDA (C-CDA) required for Meaningful Use (MU). This IG publication release focuses on providing data mappings for problems, allergies, medications, immunization, patient and procedures (PAMI+). The clinical document header and document guidance from the earlier publications have not been updated since 2020.", +>>>>>>> 3919357a3e0900012fcd26ae9a677079588fb862 "first": false } \ No newline at end of file