diff --git a/_debug.bat b/_debug.bat new file mode 100644 index 0000000000..9f1697e7b6 --- /dev/null +++ b/_debug.bat @@ -0,0 +1,35 @@ +@echo off +setlocal enabledelayedexpansion + +REM Check the first argument provided to the script +if "%~1"=="jekyll" ( + echo Running Jekyll build... + jekyll build -s temp/pages -d output + goto :eof +) + +if "%~1"=="clean" ( + echo Cleaning up directories... + + REM For each directory you want to delete, repeat the following block + if exist ".\input-cache\" ( + rmdir /s /q ".\input-cache" + echo Removed: .\input-cache + ) + if exist ".\temp\" ( + rmdir /s /q ".\temp" + echo Removed: .\temp + ) + if exist ".\output\" ( + rmdir /s /q ".\output" + echo Removed: .\output + ) + if exist ".\template\" ( + rmdir /s /q ".\template" + echo Removed: .\template + ) + goto :eof +) + +REM If none of the conditions matched, print an error message +echo Invalid argument. Please use "debug jekyll" or "debug clean". \ No newline at end of file diff --git a/_genonce.bat b/_genonce.bat index a922fdbedd..a9864ef10a 100644 --- a/_genonce.bat +++ b/_genonce.bat @@ -1,27 +1,27 @@ -@ECHO OFF -SET publisher_jar=publisher.jar -SET input_cache_path=%CD%\input-cache - -ECHO Checking internet connection... -PING tx.fhir.org -4 -n 1 -w 1000 | FINDSTR TTL && GOTO isonline -ECHO We're offline... -SET txoption=-tx n/a -GOTO igpublish - -:isonline -ECHO We're online -SET txoption= - -:igpublish - -SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 - -IF EXIST "%input_cache_path%\%publisher_jar%" ( - JAVA -jar "%input_cache_path%\%publisher_jar%" -ig . %txoption% %* -) ELSE If exist "..\%publisher_jar%" ( - JAVA -jar "..\%publisher_jar%" -ig . %txoption% %* -) ELSE ( - ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting... -) - -PAUSE +@ECHO OFF +SET publisher_jar=publisher.jar +SET input_cache_path=%CD%\input-cache + +ECHO Checking internet connection... +PING tx.fhir.org -4 -n 1 -w 1000 | FINDSTR TTL && GOTO isonline +ECHO We're offline... +SET txoption=-tx n/a +GOTO igpublish + +:isonline +ECHO We're online +SET txoption= + +:igpublish + +SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 + +IF EXIST "%input_cache_path%\%publisher_jar%" ( + JAVA -jar "%input_cache_path%\%publisher_jar%" -ig . %txoption% %* +) ELSE If exist "..\%publisher_jar%" ( + JAVA -jar "..\%publisher_jar%" -ig . %txoption% %* +) ELSE ( + ECHO IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting... +) + +PAUSE diff --git a/_updatePublisher.bat b/_updatePublisher.bat index 9e3682f153..67aebf5834 100644 --- a/_updatePublisher.bat +++ b/_updatePublisher.bat @@ -1,219 +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 -) +@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 f127f6612a..0f9ecbed9c 100755 --- a/_updatePublisher.sh +++ b/_updatePublisher.sh @@ -117,13 +117,16 @@ if [[ $skipPrompts == true ]] || [[ $response =~ ^[yY].*$ ]]; then 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/cql/IMMZConcepts.cql b/input/cql/IMMZConcepts.cql index e00b9be37d..3c56f79bcb 100644 --- a/input/cql/IMMZConcepts.cql +++ b/input/cql/IMMZConcepts.cql @@ -12,36 +12,36 @@ codesystem "ICHI": 'https://mitel.dimi.uniud.it/ichi/#http://id.who.int/ichi' codesystem "ICF": 'http://hl7.org/fhir/sid/icf-nl' codesystem "Extended Codes CodeSystem codes": 'http://fhir.org/guides/who/anc-cds/CodeSystem/anc-custom-codes' -codesystem "IMMZ.C": 'http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.C' -codesystem "IMMZ.D1": 'http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D1' -codesystem "IMMZ.D4": 'http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4' +codesystem "IMMZ.C": 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.C' +codesystem "IMMZ.D1": 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' +codesystem "IMMZ.D4": 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4' //WHO ATC IPS Valueset valueset "WHO ATC": 'http://hl7.org/fhir/uv/ips/ValueSet/whoatc-uv-ips' // General use ValueSets -valueset "Negative Result": 'http://smart.who.int/ig/smart-immunizations/ValueSet/Negativetestresult-values' -valueset "Positive Result": 'http://smart.who.int/ig/smart-immunizations/ValueSet/PositiveTestResult-values' -valueset "Immunocompromised": 'http://smart.who.int/ig/smart-immunizations/ValueSet/Immunocompromised-values' -valueset "Patient birth weight observation value": 'http://smart.who.int/ig/smart-immunizations/ValueSet/Birthweight-values' -valueset "PretermBirth": 'http://smart.who.int/ig/smart-immunizations/ValueSet/Preterm-values' -valueset "Live Attenuated": 'http://smart.who.int/ig/smart-immunizations/ValueSet/LiveAttenduatedVaccines' +valueset "Negative Result": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Negativetestresult-values' +valueset "Positive Result": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/PositiveTestResult-values' +valueset "Immunocompromised": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Immunocompromised-values' +valueset "Patient birth weight observation value": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Birthweight-values' +valueset "PretermBirth": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Preterm-values' +valueset "Live Attenuated": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/LiveAttenduatedVaccines' //valueset "Target Disease": 'http://hl7.org/fhir/ValueSet/immunization-target-disease' -valueset "HIV status": 'http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values' +valueset "HIV status": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values' valueset "HIV status - HIV positive Choices": 'http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de46' valueset "HIV status - HIV negative Choices": 'http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de47' -valueset "ARV Drugs": 'http://smart.who.int/ig/smart-immunizations/ValueSet/ARVDrugs-values' +valueset "ARV Drugs": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/ARVDrugs-values' // Vaccine Value Sets -valueset "MCV Vaccine": 'http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE9' +valueset "MCV Vaccine": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.A1.DE9' // Plugin is complaining about not finding these so that should be resolved, but here until it can be fixed -valueset "BCG Vaccine": 'http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE1' -valueset "Cholera Vaccine": 'http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE2' +valueset "BCG Vaccine": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.A1.DE1' +valueset "Cholera Vaccine": 'http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.A1.DE2' diff --git a/input/cql/IMMZINDMeasles.cql b/input/cql/IMMZINDMeasles.cql index fa937c36f5..b7d72914c4 100644 --- a/input/cql/IMMZINDMeasles.cql +++ b/input/cql/IMMZINDMeasles.cql @@ -4,7 +4,7 @@ * Compares the administered doses of measles containing vaccines (MCV) with the estimated number of surviving infants (if dose 1) or a country supplied denominator (if dose 2) expressed as a percentage. * * Numerator: Number of administrations of vaccinations containing a Measles component during reporting period - * Numerator Computation: COUNT immunization events WHERE administered product is a Measles vaccine (IMMZ.A1.DE9) during reporting period + * Numerator Computation: COUNT immunization events WHERE administered product is a Measles vaccine (IMMZ.Z.DE9) during reporting period * Denominator: Estimated number of surviving infants (for dose 1) and country supplied denominator for dose sequence 2 (see comments) * Denominator Computation: PARAMETER number of surviving infants (if Dose Sequence = 1) or PARAMETER of country supplied denominator (if Dose Sequence = 2) * diff --git a/input/fsh/activitydefinitions/IMMZD2DTMeaslesCIMR.fsh b/input/fsh/activitydefinitions/IMMZD2DTMeaslesCIMR.fsh index b2481afec8..6e68a099f4 100644 --- a/input/fsh/activitydefinitions/IMMZD2DTMeaslesCIMR.fsh +++ b/input/fsh/activitydefinitions/IMMZD2DTMeaslesCIMR.fsh @@ -4,7 +4,7 @@ Title: "IMMZ.D2.DT.Measles.Contraindication" Description: "Provide measles immunization" Usage: #definition -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZD2DTMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles" * extension[+] * url = "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability" * valueCode = #computable diff --git a/input/fsh/activitydefinitions/IMMZD2DTMeaslesMR.fsh b/input/fsh/activitydefinitions/IMMZD2DTMeaslesMR.fsh index a8e8dbb925..ed30b00277 100644 --- a/input/fsh/activitydefinitions/IMMZD2DTMeaslesMR.fsh +++ b/input/fsh/activitydefinitions/IMMZD2DTMeaslesMR.fsh @@ -4,7 +4,7 @@ Title: "IMMZ.D2.DT.Measles.MR" Description: "Provide measles immunization" Usage: #definition -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZD2DTMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles" * extension[+] * url = "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability" * valueCode = #computable @@ -43,4 +43,4 @@ Usage: #definition * expression * description = "Expiration date for MCV dose" * language = #text/cql-identifier - * expression = "Expiration Date for MCV dose" \ No newline at end of file + * expression = "Expiration Date for MCV dose" diff --git a/input/fsh/codesystems/ICD11.fsh b/input/fsh/codesystems/ICD11.fsh index b68a4a81a2..9b9867767a 100644 --- a/input/fsh/codesystems/ICD11.fsh +++ b/input/fsh/codesystems/ICD11.fsh @@ -4,16 +4,37 @@ Title: "ICD-11" Description: "ICD-11." * ^url = $ICD11 +//* ^hierarchyMeaning = #is-a + +* ^property[+].code = #parent +* ^property[=].type = #code +* ^property[=].uri = "http://hl7.org/fhir/concept-properties#parent" + + * #XM28X5 "Measles vaccines" * #XM8L15 "Measles, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM28X5 * #XM9439 "Measles, combinations with mumps, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM28X5 * #XM8TF3 "Measles, combinations with mumps and rubella, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM28X5 * #XM21H2 "Measles, combinations with rubella, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM28X5 * #XM4AJ8 "Measles, combinations with mumps, rubella and varicella, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM28X5 * #XM1131 "Mumps vaccines" * #XM2340 "Mumps, live attenuated" + * ^property[+].code = #parent + * ^property[=].valueCode = #XM1131 + + * #XX45B7 "Intersex" * #XX2PX3 "Biological sex not specified" @@ -42,4 +63,19 @@ Description: "ICD-11." * #QA41 "Pregnant state" * #QC44.0 "Personal history of anaphylaxis" * #QC44.2 "Personal history of allergy to drugs, medicaments or biological substances" -* #1C62.1 "HIV disease clinical stage 2 without mention of tuberculosis or malaria" \ No newline at end of file +* #1C62.1 "HIV disease clinical stage 2 without mention of tuberculosis or malaria" + + +* #MA14.0 "Laboratory evidence of human immunodeficiency virus" + +* #XM8142 "Tuberculosis, live attenuated vaccines" +* #XM72A0 "Cholera, live attenuated vaccines" +* #XM0VX8 "Poliomyelitis oral, monovalent live attenuated" +* #XM0KZ1 "Poliomyelitis oral, trivalent, live attenuated" +* #XM4GV0 "Rota virus, live attenuated" +* #XM9PS9 "Rubella, live attenuated" +* #XM3B09 "Rubella, combinations with mumps, live attenuated" +* #XM5V64 "Influenza vaccines, live attenuated" +* #XM0NS8 "Varicella, live attenuated" +* #XM3418 "Yellow Fever, live attenuated" +* #XM5DF6 "COVID-19 vaccines, live attenuated virus" diff --git a/input/fsh/codesystems/IMMZ-D1.fsh b/input/fsh/codesystems/IMMZ-D1.fsh deleted file mode 100644 index 8644e237c7..0000000000 --- a/input/fsh/codesystems/IMMZ-D1.fsh +++ /dev/null @@ -1,183 +0,0 @@ -CodeSystem: IMMZ-D1 -Title: "IMMZ-D1 CodeSystem for Data Elements" -Description: "CodeSystem for IMMZ.C Data Elements" - -* ^experimental = false -* ^caseSensitive = false -* ^name = "IMMZ_D1" - -* #DE80 "Dose 0 administered" "Indicates if the client has received a birth dose and/or supplementary dose" -* #DE8 "Completed the primary vaccination series" "Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen." -* #DE81 "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)" -* #DE9 "Currently pregnant" "The client is currently pregnant" -* #DE82 "Breastfeeding" "The client is currently breastfeeding" -* #DE10 "HIV status" "The current human immunodeficiency virus (HIV) status of the client" -* #DE11 "HIV-positive" "The client is known to be HIV positive" -* #DE12 "HIV-negative" "The client is known to be HIV negative" -* #DE13 "Unknown" "The client's HIV status is unknown" -* #DE15 "Preterm birth" "The infant was preterm" -* #DE16 "Immunocompromised" "The client is known to be immunocompromised or immunosuppressed. This means the client has a weakened immune system and having a reduced ability to fight infections and other diseases" -* #DE17 "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)" -* #DE84 "Type of TB infection test performed" "The type of TB infection test performed" -* #DE85 "IGRA" "Interferon-gamma release assay (IGRA)" -* #DE86 "TST" "Tuberculin skin test (TST)" -* #DE87 "TB infection test result" "Records the result of the TB infection test" -* #DE88 "Positive" "Test result was positive" -* #DE89 "Negative" "Test result was negative" -* #DE90 "HIV-exposed infant" "The infant is known to be exposed to HIV (i.e. born to an HIV-infected woman)" -* #DE29 "Birth weight in grams" "Represents the client's birth weight value measures in grams" -* #DE35 "Type of polio dose" "The type of the polio vaccine dose administered to the client" -* #DE36 "IPV" "Inactivated poliovirus vaccine (IPV)" -* #DE37 "bOPV" "Bivalent oral poliovirus vaccine (bOPV)" -* #DE38 "Age in years when client received first DTP dose" "The client's age in years when they received their first diphtheria-tetanus-pertussis (DTP) dose" -* #DE39 "Age in months when client received first Hib dose" "The client's age in months when they received their first Haemophilus influenzae type b (Hib) dose" -* #DE40 "Sickle-cell disease" "The client is known to have a sickle-cell disease" -* #DE41 "Age in months when client received third pneumococcal dose" "The client's age in months when they received their third pneumococcal dose" -* #DE42 "No history of intussusception" "The client is known to have no history of intussusception" -* #DE43 "Previous rotavirus doses given were the same product" "Indicates whether or not all of the client's previous rotavirus doses were the same product" -* #DE46 "Immune reconstitution was achieved" "The client is known to have achieved immune reconstitution" -* #DE92 "Severely immunosuppressed" "The client is known to be severely immunocompromised or immunosuppressed" -* #DE49 "ART start date" "The date on which the client started or restarted antiretroviral therapy (ART)" -* #DE52 "Type of last JE dose" "The type of the last Japanese encephalitis (JE) vaccine dose administered to the client" -* #DE53 "Inactivated Vero cell-derived vaccine" "Inactivated Vero cell-derived Japanese encephalitis (JE) vaccine type" -* #DE54 "Live attenuated vaccine" "Live attenuated Japanese encephalitis (JE) vaccine type" -* #DE55 "Live recombinant vaccine" "Live recombinant Japanese encephalitis (JE) vaccine type" -* #DE56 "Type of last TBE dose" "The type of the last tick-borne encephalitis (TBE) vaccine dose administered" -* #DE57 "FSME-Immun" "FSME-Immun vaccine product, which is an inactivated whole-virus vaccine for tick-borne encephalitis (TBE)" -* #DE58 "Encepur" "Encepur vaccine product, which is an inactivated viral vaccine for tick-borne encephalitis (TBE)" -* #DE59 "TBE-Moscow" "TBE-Moscow vaccine product, which is a vaccine for tick-borne encephalitis (TBE)" -* #DE60 "EnceVir" "EnceVir vaccine product, which is a vaccine for tick-borne encephalitis (TBE)" -* #DE61 "Type of last typhoid dose" "The type of the last typhoid vaccine dose administered to the client" -* #DE62 "Typbar-TCV" "Typbar-TCV vaccine" -* #DE63 "ViPS" "Vi polysaccharide (ViPS) vaccine" -* #DE64 "Ty21a" "Ty21a vaccine" -* #DE65 "Type of last cholera dose" "The type of the last cholera vaccine dose administered to the client" -* #DE66 "WC vaccine" "Killed whole cell (WC) only cholera vaccine" -* #DE67 "WC-rBS vaccine" "Vaccine contains a mixture of the recombinant B subunit (rBS) of cholera toxin plus killed whole cell (WC)" -* #DE68 "Type of last meningococcal dose" "The type of the last meningococcal vaccine dose administered to the client" -* #DE69 "MenA conjugate vaccine (5µg)" "Monovalent serogroup A (MenA) conjugate vaccine (5µg) vaccine" -* #DE70 "Monovalent MenC conjugate" "Monovalent MenC conjugate vaccine" -* #DE71 "Quadrivalent conjugate" "Quadrivalent conjugate (A,C,W135,Y-D and A,C,W135,Y-CRM) vaccines" -* #DE72 "Age in months when client received first meningococcal dose" "The age in months when client received their first meningococcal dose" -* #DE73 "Type of last hepatitis A dose" "The type of the last hepatitis A vaccine dose administered to the client" -* #DE74 "Live attenuated hepatitis A vaccine" "Live attenuated hepatitis A vaccine" -* #DE75 "Inactivated hepatitis A vaccine" "Inactivated hepatitis A vaccine" -* #DE76 "VNA level" "Vaccine-induced neutralizing (VNA) antibody level. It is a measured as a serum antibody concentration amount observed from the result of the concentrated, purified cell culture and embryonated egg-based rabies vaccines (CCEEV)" -* #DE77 "Seronegative for dengue" "The client is known to be seronegative for dengue" - - -ValueSet: IMMZ-D1.DE10 -Title: "IMMZ-D1.DE10 ValueSet for HIV Status" -Description: "ValueSet for HIV Status for IMMZ-D1.DE10." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE10" - -* IMMZ-D1#DE11 "HIV-positive" -* IMMZ-D1#DE12 "HIV-negative" -* IMMZ-D1#DE13 "Unknown" - -ValueSet: IMMZ-D1.DE84 -Title: "IMMZ-D1.DE84 ValueSet for Type of TB infection test performed" -Description: "ValueSet for Type of TB infection test performed for IMMZ-D1.DE84." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE84" - -* IMMZ-D1#DE85 "IGRA" -* IMMZ-D1#DE86 "TST" - -ValueSet: IMMZ-D1.DE87 -Title: "IMMZ-D1.DE87 ValueSet for TB infection test result" -Description: "ValueSet for TB infection test result for IMMZ-D1.DE87." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE87" - -* IMMZ-D1#DE88 "Positive" -* IMMZ-D1#DE89 "Negative" - -ValueSet: IMMZ-D1.DE35 -Title: "IMMZ-D1.DE35 ValueSet for Type of polio dose" -Description: "ValueSet for Type of polio dose for IMMZ-D1.DE35." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE35" - -* IMMZ-D1#DE36 "IPV" -* IMMZ-D1#DE37 "bOPV" - -ValueSet: IMMZ-D1.DE52 -Title: "IMMZ-D1.DE52 ValueSet for Type of last JE dose" -Description: "ValueSet for Type of last JE dose for IMMZ-D1.DE52." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE52" - -* IMMZ-D1#DE53 "Inactivated Vero cell-derived vaccine" -* IMMZ-D1#DE54 "Live attenuated vaccine" -* IMMZ-D1#DE55 "Live recombinant vaccine" - -ValueSet: IMMZ-D1.DE56 -Title: "IMMZ-D1.DE56 ValueSet for Type of last TBE dose" -Description: "ValueSet for Type of last TBE dose for IMMZ-D1.DE56." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE56" - -* IMMZ-D1#DE57 "FSME-Immun" -* IMMZ-D1#DE58 "Encepur" -* IMMZ-D1#DE59 "TBE-Moscow" -* IMMZ-D1#DE60 "EnceVir" - -ValueSet: IMMZ-D1.DE61 -Title: "IMMZ-D1.DE61 ValueSet for Type of last typhoid dose" -Description: "ValueSet for Type of last typhoid dose for IMMZ-D1.DE61." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE61" - -* IMMZ-D1#DE62 "Typbar-TCV" -* IMMZ-D1#DE63 "ViPS" -* IMMZ-D1#DE64 "Ty21a" - -ValueSet: IMMZ-D1.DE65 -Title: "IMMZ-D1.DE65 ValueSet for Type of last cholera dose" -Description: "ValueSet for Type of last cholera dose for IMMZ-D1.DE65." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE65" - -* IMMZ-D1#DE66 "WC vaccine" -* IMMZ-D1#DE67 "WC-rBS vaccine" - -ValueSet: IMMZ-D1.DE68 -Title: "IMMZ-D1.DE68 ValueSet for Type of last meningococcal dose" -Description: "ValueSet for Type of last meningococcal dose for IMMZ-D1.DE68." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE68" - -* IMMZ-D1#DE69 "MenA conjugate vaccine (5µg)" -* IMMZ-D1#DE70 "Monovalent MenC conjugate" -* IMMZ-D1#DE71 "Quadrivalent conjugate" - -ValueSet: IMMZ-D1.DE73 -Title: "IMMZ-D1.DE73 ValueSet for Type of last hepatitis A dose" -Description: "ValueSet for Type of last hepatitis A dose for IMMZ-D1.DE73." - -* ^status = #active -* ^experimental = false -* ^name = "IMMZ_D1_DE73" - -* IMMZ-D1#DE74 "Live attenuated hepatitis A vaccine" -* IMMZ-D1#DE75 "Inactivated hepatitis A vaccine" diff --git a/input/fsh/codesystems/IMMZ-C.fsh b/input/fsh/codesystems/IMMZ.C.fsh similarity index 94% rename from input/fsh/codesystems/IMMZ-C.fsh rename to input/fsh/codesystems/IMMZ.C.fsh index 83d11b1646..8ef149087a 100644 --- a/input/fsh/codesystems/IMMZ-C.fsh +++ b/input/fsh/codesystems/IMMZ.C.fsh @@ -1,28 +1,25 @@ - -CodeSystem: IMMZ-C -Title: "IMMZ-C CodeSystem for Data Elements" -Description: "CodeSystem for IMMZ.C Data Elements" - -* ^experimental = false -* ^caseSensitive = false -* ^name = "IMMZ_C" -* #DE1 "Unique identifier" "Unique identifier for the client, according to the policies applicable to each country. There can be more than one unique identifier used to link records (e.g. national ID, health ID, immunization information system ID, medical record ID)." -* #DE2 "Name" "The full name of the client" -* #DE3 "First name" "Client's first name or given name" -* #DE4 "Family name" "Client's family name or last name" -* #DE5 "Sex" "Documentation of a specific instance of sex information for the client" -* #DE6 "Male" "Client's biological sex is male" -* #DE7 "Female" "Client's biological sex is female" -* #DE8 "Biological sex not specified" "Client's biological sex is not specified" -* #DE9 "Intersex" "Client's biological sex is intersex" -* #DE10 "Date of birth" "Client's date of birth (DOB) if known; if unknown, use assigned DOB for administrative purposes" -* #DE13 "Age" "The client's calculated age (presented as number of years, months, days) based on the date of birth (DOB) and the visit date" -* #DE14 "Caregivers (multiple)" "The client's caregiver (person) which could be next of kin (e.g. partner, husband, mother, sibling, etc.)" -* #DE15 "Caregiver's full name" "The full name of the client's caregiver" -* #DE16 "Caregiver's first name" "First or given name of the client's caregiver" -* #DE17 "Caregiver's family name" "Family name or last name of the client's caregiver" -* #DE18 "Contact phone number" "Client's phone number" -* #DE19 "Administrative area" "The name of the city/municipality/town/village of where the client lives" -* #DE20 "Active health worker" "Is the client an active and participating health worker. This data element is used mainly for reporting and indicators purposes." - - +CodeSystem: IMMZ.C +Title: "IMMZ.C CodeSystem for Data Elements" +Description: "CodeSystem for IMMZ.C Data Elements" + +* ^experimental = false +* ^caseSensitive = false +* ^name = "IMMZ_C" +* #DE1 "Unique identifier" "Unique identifier for the client, according to the policies applicable to each country. There can be more than one unique identifier used to link records (e.g. national ID, health ID, immunization information system ID, medical record ID)." +* #DE2 "Name" "The full name of the client" +* #DE3 "First name" "Client's first name or given name" +* #DE4 "Family name" "Client's family name or last name" +* #DE5 "Sex" "Documentation of a specific instance of sex information for the client" +* #DE6 "Male" "Client's biological sex is male" +* #DE7 "Female" "Client's biological sex is female" +* #DE8 "Biological sex not specified" "Client's biological sex is not specified" +* #DE9 "Intersex" "Client's biological sex is intersex" +* #DE10 "Date of birth" "Client's date of birth (DOB) if known; if unknown, use assigned DOB for administrative purposes" +* #DE13 "Age" "The client's calculated age (presented as number of years, months, days) based on the date of birth (DOB) and the visit date" +* #DE14 "Caregivers (multiple)" "The client's caregiver (person) which could be next of kin (e.g. partner, husband, mother, sibling, etc.)" +* #DE15 "Caregiver's full name" "The full name of the client's caregiver" +* #DE16 "Caregiver's first name" "First or given name of the client's caregiver" +* #DE17 "Caregiver's family name" "Family name or last name of the client's caregiver" +* #DE18 "Contact phone number" "Client's phone number" +* #DE19 "Administrative area" "The name of the city/municipality/town/village of where the client lives" +* #DE20 "Active health worker" "Is the client an active and participating health worker. This data element is used mainly for reporting and indicators purposes." diff --git a/input/fsh/codesystems/IMMZ.D1.fsh b/input/fsh/codesystems/IMMZ.D1.fsh new file mode 100644 index 0000000000..fbe588dd38 --- /dev/null +++ b/input/fsh/codesystems/IMMZ.D1.fsh @@ -0,0 +1,20 @@ +CodeSystem: IMMZ.D1 +Title: "IMMZ.D1 CodeSystem for Data Elements" +Description: "CodeSystem for IMMZ.C Data Elements" + +* ^experimental = false +* ^caseSensitive = false +* ^name = "IMMZ_D1" + +* #DE80 "Dose 0 administered" "Indicates if the client has received a birth dose and/or supplementary dose" +* #DE8 "Completed the primary vaccination series" "Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen." +* #DE81 "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)" +* #DE10 "HIV status" "The current human immunodeficiency virus (HIV) status of the client" +* #DE11 "HIV-positive" "The client is known to be HIV positive" +* #DE12 "HIV-negative" "The client is known to be HIV negative" +* #DE13 "Unknown" "The client's HIV status is unknown" +* #DE15 "Preterm birth" "The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks" +* #DE92 "Severely immunosuppressed" "The client is known to be severely immunocompromised or immunosuppressed" +* #DE49 "ART start date" "The date on which the client started or restarted antiretroviral therapy (ART)" +* #DE19 "Vaccine type" "Vaccine type/category that was administered or was to be administered. Any vaccine code available in the IMMZ.Z Vaccine Library list of codes applies in this data element" +* #DE20 "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client" \ No newline at end of file diff --git a/input/fsh/models/codes-IMMZ.D4.fsh b/input/fsh/codesystems/IMMZ.D4.fsh similarity index 70% rename from input/fsh/models/codes-IMMZ.D4.fsh rename to input/fsh/codesystems/IMMZ.D4.fsh index e08c689bc4..86c27a3510 100644 --- a/input/fsh/models/codes-IMMZ.D4.fsh +++ b/input/fsh/codesystems/IMMZ.D4.fsh @@ -12,19 +12,3 @@ Description: "CodeSystem for IMMZ.D4 Check Contraindications Data Elements" * #DE166 "History of anaphylactic reactions" "The client is known to have history of anaphylaxis in the past. Anaphylaxis is a severe and potentially life-threatening allergic reaction that can occur rapidly after exposure to an allergen or vaccine component." * #DE167 "Severe allergic reactions" "The client is known to have severe allergic reaction to vaccine" * #DE168 "Symptomatic HIV infection" "The client is experiencing HIV-related symptoms" - - -ValueSet: IMMZ.D4.DE161 -Title: "IMMZ.D4.DE161 ValueSet for Potential Contraindications" -Description: "ValueSet for Potential Contraindications for IMMZ.D4.DE161." - -* ^status = #active -* ^name = "IMMZ_D4_DE161" - -* IMMZ.D4#DE162 "Currently pregnant" -* IMMZ.D4#DE165 "Severely immunosuppressed" -* IMMZ.D4#DE166 "History of anaphylactic reactions" -* IMMZ.D4#DE167 "Severe allergic reactions" -* IMMZ.D4#DE168 "Symptomatic HIV infection" - - diff --git a/input/fsh/conceptmaps/IMMZ-D1.fsh b/input/fsh/conceptmaps/IMMZ-D1.fsh deleted file mode 100644 index 6fc98d9376..0000000000 --- a/input/fsh/conceptmaps/IMMZ-D1.fsh +++ /dev/null @@ -1,143 +0,0 @@ - -Instance: IMMZ-D1.ConceptMap -InstanceOf: ConceptMap -Description: "Mapping to and from IMMZ-D1 Data Dictionary to other codesystems." -Usage: #definition - -* name = "IMMZ_D1_ConceptMap" -* title = "ConceptMap to and from IMMZ-D1 DataElements" -* status = #active -* experimental = false -* date = "2023-08-09" - -* group[+] - * source = Canonical(IMMZ-D1) - * target = $ICD11 - * insert ElementMap(DE88, 1B1Z, relatedto) - * insert ElementMap(DE11, 1C62.Z, equivalent) - * insert ElementMap(DE13, 1H0Z, equivalent) - * insert ElementMap(DE40, 3A51, equivalent) - * insert ElementMap(DE16, 4B4Z, wider) - * insert ElementMap(DE15, KA21.4, equivalent) - * insert ElementMap(DE89, QA02.0, relatedto) - * insert ElementMap(DE12, QA02.Y, relatedto) - * insert ElementMap(DE82, QA48.1, wider) - * insert ElementMap(DE90, QC60, wider) - * insert ElementMap(DE70, XM18Y8, equivalent) - * insert ElementMap(DE69, XM2280, equivalent) - * insert ElementMap(DE64, XM33K4, wider) - * insert ElementMap(DE85, XM3KQ4, wider) - * insert ElementMap(DE63, XM3SF6, wider) - * insert ElementMap(DE54, XM47S0, equivalent) - * insert ElementMap(DE36, XM5V19, equivalent) - * insert ElementMap(DE37, XM79H3, equivalent) - * insert ElementMap(DE86, XM7PF6, wider) - * insert ElementMap(DE9, XT0S, equivalent) - -* group[+] - * source = $ICD11 - * target = Canonical(IMMZ-D1) - * insert ElementMap(1B1Z, DE88, relatedto) - * insert ElementMap(1C62.Z, DE11, equivalent) - * insert ElementMap(1H0Z, DE13, equivalent) - * insert ElementMap(3A51, DE40, equivalent) - * insert ElementMap(4B4Z, DE16, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(KA21.4, DE15, equivalent) - * insert ElementMap(QA02.0, DE89, relatedto) - * insert ElementMap(QA02.Y, DE12, relatedto) - * insert ElementMap(QA48.1, DE82, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(QC60, DE90, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(XM18Y8, DE70, equivalent) - * insert ElementMap(XM2280, DE69, equivalent) - * insert ElementMap(XM33K4, DE64, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(XM3KQ4, DE85, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(XM3SF6, DE63, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(XM47S0, DE54, equivalent) - * insert ElementMap(XM5V19, DE36, equivalent) - * insert ElementMap(XM79H3, DE37, equivalent) - * insert ElementMap(XM7PF6, DE86, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(XT0S, DE9, equivalent) - -* group[+] - * source = Canonical(IMMZ-D1) - * target = $LNC - * insert ElementMap(DE90, 10157-6, relatedto) - * insert ElementMap(DE85, 27415-9, wider) - * insert ElementMap(DE86, 39263-9, equivalent) - * insert ElementMap(DE88, 45241-7, relatedto) - * insert ElementMap(DE11, 45683-0, equivalent) - * insert ElementMap(DE10, 55277-8, equivalent) - * insert ElementMap(DE82, 63895-7, wider) - * insert ElementMap(DE15, 76517-2, equivalent) - * insert ElementMap(DE9, 82810-3, equivalent) - * insert ElementMap(DE29, 8339-4, equivalent) - * insert ElementMap(DE16, 96381-9, relatedto) - * insert ElementMap(DE92, 96381-9, relatedto) - -* group[+] - * source = $LNC - * target = Canonical(IMMZ-D1) - * insert ElementMap(10157-6, DE90, relatedto) - * insert ElementMap(27415-9, DE85, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(39263-9, DE86, equivalent) - * insert ElementMap(45241-7, DE88, relatedto) - * insert ElementMap(45683-0, DE11, equivalent) - * insert ElementMap(55277-8, DE10, equivalent) - * insert ElementMap(63895-7, DE82, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(76517-2, DE15, equivalent) - * insert ElementMap(82810-3, DE9, equivalent) - * insert ElementMap(8339-4, DE29, equivalent) - * insert ElementMap(96381-9, DE16, relatedto) - * insert ElementMap(96381-9, DE92, relatedto) - -* group[+] - * source = Canonical(IMMZ-D1) - * target = $SCT - * insert ElementMap(DE88, 10828004, wider) - * insert ElementMap(DE86, 28163009, equivalent) - * insert ElementMap(DE85, 68311008, equivalent) - * insert ElementMap(DE82, 69840006, equivalent) - * insert ElementMap(DE9, 77386006, equivalent) - * insert ElementMap(DE12, 165815009, equivalent) - * insert ElementMap(DE11, 165816005, equivalent) - * insert ElementMap(DE89, 260385009, wider) - * insert ElementMap(DE13, 261665006, wider) - * insert ElementMap(DE10, 278977008, equivalent) - * insert ElementMap(DE16, 370388006, equivalent) - * insert ElementMap(DE15, 395507008, equivalent) - * insert ElementMap(DE40, 417357006, equivalent) - * insert ElementMap(DE90, 438998000, wider) - * insert ElementMap(DE36, 871740006, equivalent) - - -* group[+] - * source = $SCT - * target = Canonical(IMMZ-D1) - * insert ElementMap(10828004, DE88, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(28163009, DE86, equivalent) - * insert ElementMap(68311008, DE85, equivalent) - * insert ElementMap(69840006, DE82, equivalent) - * insert ElementMap(77386006, DE9, equivalent) - * insert ElementMap(165815009, DE12, equivalent) - * insert ElementMap(165816005, DE11, equivalent) - * insert ElementMap(260385009, DE89, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(261665006, DE13, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(278977008, DE10, equivalent) - * insert ElementMap(370388006, DE16, equivalent) - * insert ElementMap(395507008, DE15, equivalent) - * insert ElementMap(417357006, DE40, equivalent) - * insert ElementMap(438998000, DE90, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - * insert ElementMap(871740006, DE36, equivalent) diff --git a/input/fsh/conceptmaps/IMMZ_C_ConceptMap.fsh b/input/fsh/conceptmaps/IMMZ.C.ConceptMap.fsh similarity index 91% rename from input/fsh/conceptmaps/IMMZ_C_ConceptMap.fsh rename to input/fsh/conceptmaps/IMMZ.C.ConceptMap.fsh index 88d20e5b11..3a15f9f969 100644 --- a/input/fsh/conceptmaps/IMMZ_C_ConceptMap.fsh +++ b/input/fsh/conceptmaps/IMMZ.C.ConceptMap.fsh @@ -1,66 +1,66 @@ - -Instance: IMMZ.C.ConceptMap -InstanceOf: ConceptMap -Description: "Mapping to and from IMMZ.C Data Dictionary to other codesystems." -Usage: #definition - -* name = "IMMZ_C_ConceptMap" -* title = "ConceptMap to and from IMMZ.C DataElements" -* status = #active -* experimental = false -* date = "2023-08-04" - -* group[+] - * source = Canonical(IMMZ-C) - * target = $ICD11 - * insert ElementMap(DE6, XX2UQ8, equivalent) - * insert ElementMap(DE7, XX2V25, equivalent) - * insert ElementMap(DE8, XX2PX3, equivalent) - * insert ElementMap(DE9, XX45B7, equivalent) - -* group[+] - * source = $ICD11 - * target = Canonical(IMMZ-C) - * insert ElementMap(XX2UQ8, DE6, equivalent) - * insert ElementMap(XX2V25, DE7, equivalent) - * insert ElementMap(XX2PX3, DE8, equivalent) - * insert ElementMap(XX45B7, DE9, equivalent) - -* group[+] - * source = Canonical(IMMZ-C) - * target = $LNC - * insert ElementMap(DE2, 54125-0, equivalent) - * insert ElementMap(DE3, 45392-8, relatedto) - * insert ElementMap(DE4, 45394-4, relatedto) - * insert ElementMap(DE5, 46098-0, equivalent) - * insert ElementMap(DE10, 21112-8, equivalent) - * insert ElementMap(DE13, 63900-5, wider) - * insert ElementMap(DE18, 42077-8, equivalent) - * insert ElementMap(DE19, 56799-0, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - -* group[+] - * source = Canonical(IMMZ-C) - * target = $SCT - * insert ElementMap(DE2, 371484003, equivalent) - * insert ElementMap(DE3, 184095009, relatedto) - * insert ElementMap(DE4, 184096005, relatedto) - * insert ElementMap(DE5, 184100006, equivalent) - * insert ElementMap(DE6, 248153007, equivalent) - * insert ElementMap(DE7, 248152002, equivalent) - * insert ElementMap(DE8, 772004004, relatedto) - * insert ElementMap(DE9, 15867007, equivalent) - * insert ElementMap(DE10, 184099003, equivalent) - * insert ElementMap(DE14, 184140000, wider) - * insert ElementMap(DE15, 184140000, wider) - * insert ElementMap(DE18, 184103008, equivalent) - * insert ElementMap(DE19, 184097001, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" - -* group[+] - * source = $SCT - * target = Canonical(IMMZ-C) - * insert ElementMap(248153007, DE6, equivalent) - * insert ElementMap(248152002, DE7, equivalent) - * insert ElementMap(772004004, DE8, relatedto) - * insert ElementMap(15867007, DE9, equivalent) + +Instance: IMMZ.C.ConceptMap +InstanceOf: ConceptMap +Description: "Mapping to and from IMMZ.C Data Dictionary to other codesystems." +Usage: #definition + +* name = "IMMZ_C_ConceptMap" +* title = "ConceptMap to and from IMMZ.C DataElements" +* status = #active +* experimental = false +* date = "2023-08-04" + +* group[+] + * source = Canonical(IMMZ.C) + * target = $ICD11 + * insert ElementMap(DE6, XX2UQ8, equivalent) + * insert ElementMap(DE7, XX2V25, equivalent) + * insert ElementMap(DE8, XX2PX3, equivalent) + * insert ElementMap(DE9, XX45B7, equivalent) + +* group[+] + * source = $ICD11 + * target = Canonical(IMMZ.C) + * insert ElementMap(XX2UQ8, DE6, equivalent) + * insert ElementMap(XX2V25, DE7, equivalent) + * insert ElementMap(XX2PX3, DE8, equivalent) + * insert ElementMap(XX45B7, DE9, equivalent) + +* group[+] + * source = Canonical(IMMZ.C) + * target = $LNC + * insert ElementMap(DE2, 54125-0, equivalent) + * insert ElementMap(DE3, 45392-8, relatedto) + * insert ElementMap(DE4, 45394-4, relatedto) + * insert ElementMap(DE5, 46098-0, equivalent) + * insert ElementMap(DE10, 21112-8, equivalent) + * insert ElementMap(DE13, 63900-5, wider) + * insert ElementMap(DE18, 42077-8, equivalent) + * insert ElementMap(DE19, 56799-0, narrower) + * element[=].target[=].comment = "The source concept is more specific than the target" + +* group[+] + * source = Canonical(IMMZ.C) + * target = $SCT + * insert ElementMap(DE2, 371484003, equivalent) + * insert ElementMap(DE3, 184095009, relatedto) + * insert ElementMap(DE4, 184096005, relatedto) + * insert ElementMap(DE5, 184100006, equivalent) + * insert ElementMap(DE6, 248153007, equivalent) + * insert ElementMap(DE7, 248152002, equivalent) + * insert ElementMap(DE8, 772004004, relatedto) + * insert ElementMap(DE9, 15867007, equivalent) + * insert ElementMap(DE10, 184099003, equivalent) + * insert ElementMap(DE14, 184140000, wider) + * insert ElementMap(DE15, 184140000, wider) + * insert ElementMap(DE18, 184103008, equivalent) + * insert ElementMap(DE19, 184097001, narrower) + * element[=].target[=].comment = "The source concept is more specific than the target" + +* group[+] + * source = $SCT + * target = Canonical(IMMZ.C) + * insert ElementMap(248153007, DE6, equivalent) + * insert ElementMap(248152002, DE7, equivalent) + * insert ElementMap(772004004, DE8, relatedto) + * insert ElementMap(15867007, DE9, equivalent) diff --git a/input/fsh/conceptmaps/IMMZ_C_SexToAdministrativeGender.fsh b/input/fsh/conceptmaps/IMMZ.C.SexToAdministrativeGender.fsh similarity index 67% rename from input/fsh/conceptmaps/IMMZ_C_SexToAdministrativeGender.fsh rename to input/fsh/conceptmaps/IMMZ.C.SexToAdministrativeGender.fsh index 95d94ba6c9..13f6efb14a 100644 --- a/input/fsh/conceptmaps/IMMZ_C_SexToAdministrativeGender.fsh +++ b/input/fsh/conceptmaps/IMMZ.C.SexToAdministrativeGender.fsh @@ -1,31 +1,27 @@ -Instance: IMMZCSexToAdministrativeGender -InstanceOf: ConceptMap -Description: "Mapping to and from IMMZ.C sex coding to FHIR Administrative Gender." -Usage: #definition - -* url = "http://smart.who.int/ig/smart-immunizations-measles/ConceptMap/IMMZCSexToAdministrativeGender" - -* name = "IMMZCSexToAdministrativeGender" -* title = "ConceptMap to and From IMMZ.C sex to administrative gender" -* status = #active -* experimental = false -* date = "2023-08-09" - -* group[+] - * source = Canonical(IMMZ-C) - * target = $GENDER - * insert ElementMap(DE6, male, equivalent) - * insert ElementMap(DE7, female, equivalent) - * insert ElementMap(DE8, unknown, equivalent) - * insert ElementMap(DE9, other, wider) - -* group[+] - * source = $GENDER - * target = Canonical(IMMZ-C) - * insert ElementMap(male, DE6, equivalent) - * insert ElementMap(female, DE7, equivalent) - * insert ElementMap(unknown, DE8, equivalent) - * insert ElementMap(other, DE9, narrower) - - * element[=].target[=].comment = "intersex isn't as broad as 'other' but the FHIR binding doesn't support it" - \ No newline at end of file +Instance: IMMZCSexToAdministrativeGender +InstanceOf: ConceptMap +Description: "Mapping to and from IMMZ.C sex coding to FHIR Administrative Gender." +Usage: #definition + +* name = "IMMZ_C_SexToAdministrativeGender" +* title = "ConceptMap to and From IMMZ.C sex to administrative gender" +* status = #active +* experimental = false +* date = "2023-08-09" + +* group[+] + * source = Canonical(IMMZ.C) + * target = $GENDER + * insert ElementMap(DE6, male, equivalent) + * insert ElementMap(DE7, female, equivalent) + * insert ElementMap(DE8, unknown, equivalent) + * insert ElementMap(DE9, other, wider) + +* group[+] + * source = $GENDER + * target = Canonical(IMMZ.C) + * insert ElementMap(male, DE6, equivalent) + * insert ElementMap(female, DE7, equivalent) + * insert ElementMap(unknown, DE8, equivalent) + * insert ElementMap(other, DE9, narrower) + * element[=].target[=].comment = "The source concept is more specific than the target" \ No newline at end of file diff --git a/input/fsh/conceptmaps/IMMZ.D1.ConceptMap.fsh b/input/fsh/conceptmaps/IMMZ.D1.ConceptMap.fsh new file mode 100644 index 0000000000..e196adc817 --- /dev/null +++ b/input/fsh/conceptmaps/IMMZ.D1.ConceptMap.fsh @@ -0,0 +1,68 @@ +Instance: IMMZ.D1.ConceptMap +InstanceOf: ConceptMap +Description: "Mapping to and from IMMZ.D1 Data Dictionary to other codesystems." +Usage: #definition + +* name = "IMMZ_D1_ConceptMap" +* title = "ConceptMap to and from IMMZ.D1 DataElements" +* status = #active +* experimental = false +* date = "2023-08-09" + +* group[+] + * source = Canonical(IMMZ.D1) + * target = $ICD11 + * insert ElementMap(DE11, 1C62.Z, narrower) + * element[=].target[=].comment = "The source concept is more specific than the target" + + * insert ElementMap(DE12, QA02.Y, relatedto) + * insert ElementMap(DE15, KA21.4, equivalent) + +* group[+] + * source = $ICD11 + * target = Canonical(IMMZ.D1) + * insert ElementMap(1C62.Z, DE11, wider) + * insert ElementMap(QA02.Y, DE12, relatedto) + * insert ElementMap(KA21.4, DE15, equivalent) + + +* group[+] + * source = Canonical(IMMZ.D1) + * target = $LNC + * insert ElementMap(DE11, 45683-0, equivalent) + * insert ElementMap(DE10, 55277-8, equivalent) + * insert ElementMap(DE92, 96381-9, relatedto) + * insert ElementMap(DE15, 76517-2, equivalent) + * insert ElementMap(DE19, 39236-5, equivalent) + * insert ElementMap(DE20, 30952-6, equivalent) + +* group[+] + * source = $LNC + * target = Canonical(IMMZ.D1) + * insert ElementMap(45683-0, DE11, equivalent) + * insert ElementMap(55277-8, DE10, equivalent) + * insert ElementMap(96381-9, DE92, relatedto) + * insert ElementMap(76517-2, DE15, equivalent) + * insert ElementMap(39236-5, DE19, equivalent) + * insert ElementMap(30952-6, DE20, equivalent) + +* group[+] + * source = Canonical(IMMZ.D1) + * target = $SCT + * insert ElementMap(DE12, 165815009, equivalent) + * insert ElementMap(DE11, 165816005, equivalent) + * insert ElementMap(DE13, 261665006, wider) + * insert ElementMap(DE10, 278977008, equivalent) + * insert ElementMap(DE15, 395507008, equivalent) + + +* group[+] + * source = $SCT + * target = Canonical(IMMZ.D1) + * insert ElementMap(165815009, DE12, equivalent) + * insert ElementMap(165816005, DE11, equivalent) + * insert ElementMap(261665006, DE13, narrower) + * element[=].target[=].comment = "The source concept is more specific than the target" + * insert ElementMap(278977008, DE10, equivalent) + * insert ElementMap(395507008, DE15, equivalent) + diff --git a/input/fsh/conceptmaps/IMMZ.D4.ConceptMap.fsh b/input/fsh/conceptmaps/IMMZ.D4.ConceptMap.fsh index f9084d99b1..2067f168c2 100644 --- a/input/fsh/conceptmaps/IMMZ.D4.ConceptMap.fsh +++ b/input/fsh/conceptmaps/IMMZ.D4.ConceptMap.fsh @@ -40,7 +40,7 @@ Usage: #definition * insert ElementMap(82810-3, DE162, equivalent) * insert ElementMap(96381-9, DE165, relatedto) * insert ElementMap(47244-9, DE168, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" + * element[=].target[=].comment = "The source concept is more specific than the target" * group[+] * source = Canonical(IMMZ.D4) @@ -59,5 +59,5 @@ Usage: #definition * insert ElementMap(370388006, DE165, equivalent) * insert ElementMap(10839421000119100, DE166, equivalent) * insert ElementMap(419076005, DE167, narrower) - * element[=].target[=].comment = "The source concept is more specific than the target" + * element[=].target[=].comment = "The source concept is more specific than the target" * insert ElementMap(86406008, DE168, equivalent) diff --git a/input/fsh/examples/IMMZ.C.QuestionnaireResponse.1.fsh b/input/fsh/examples/IMMZ.C.QuestionnaireResponse.1.fsh new file mode 100644 index 0000000000..3e10dc7af0 --- /dev/null +++ b/input/fsh/examples/IMMZ.C.QuestionnaireResponse.1.fsh @@ -0,0 +1,76 @@ +Instance: Example.IMMZ.C.QuestionnaireResponse.1 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 1 - Client Registration" +Usage: #example +* status = #completed +* authored = "2023-08-08T19:20:20.913Z" +* questionnaire = Canonical(QIMMZCRegisterClient) +* item[+] + * linkId = "uniqueId" + * text = "Unique identifier for the client" + * answer.valueString = "123456" +* item[+] + * linkId = "name" + * .text = "Client name" + * item[+] + * linkId = "fullName" + * text = "Full name of the client" + * answer.valueString = "Test Patient" + * item[+] + * linkId = "firstName" + * text = "First or given name" + * answer.valueString = "Test" + * item[+] + * linkId = "familyName" + * text = "Family name" + * answer.valueString = "Patient" +* item[+] + * linkId = "sex" + * text = "Sex" + * answer.valueCoding = IMMZ.C#DE7 "Female" +* item[+] + * linkId = "birthDate" + * text = "Birth Date" + * answer.valueDate = "2023-03-02" +* item[+] + * linkId = "caregiver" + * text = "Care giver name" + * item[+] + * linkId = "fullName" + * text = "Full name of the care giver" + * answer.valueString = "Mother Patient" + * item[+] + * linkId = "firstName" + * text = "First or given name" + * answer.valueString = "Mother" + * item[+] + * linkId = "familyName" + * text = "Family name" + * answer.valueString = "Patient" +* item[+] + * linkId = "caregiver" + * text = "Care giver name" + * item[+] + * linkId = "fullName" + * text = "Full name of the care giver" + * answer.valueString = "Father Patient" + * item[+] + * linkId = "firstName" + * text = "First or given name" + * answer.valueString = "Father" + * item[+] + * linkId = "familyName" + * text = "Family name" + * answer.valueString = "Patient" +* item[+] + * linkId = "phone" + * text = "Client Phone number" + * answer.valueString = "406-555-1212" +* item[+] + * linkId = "administrativeArea" + * text = "Administrative Area" + * answer.valueCoding = urn:iso:std:iso:3166:-2#KE-30 "Nairobi City" +* item[+] + * linkId = "healthWorker" + * text = "Health Worker" + * answer.valueBoolean = false diff --git a/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.1.fsh b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.1.fsh new file mode 100644 index 0000000000..d2408bfc32 --- /dev/null +++ b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.1.fsh @@ -0,0 +1,28 @@ +Instance: Example.IMMZ.D1.QuestionnaireResponse.1 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 1 - Client History - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-18T19:20:20.913Z" +* questionnaire = Canonical(QIMMZD1ClientHistoryMeasles) +* subject = Reference(patient123456) + +* item[+] + * linkId = "dose0" + * answer.valueBoolean = false +* item[+] + * linkId = "completedPrimarySeries" + * answer.valueBoolean = false +* item[+] + * linkId = "hivStatus" + * answer.valueCoding = IMMZ.D1#DE12 +* item[+] + * linkId = "pretermBirth" + * answer.valueBoolean = false +* item[+] + * linkId = "severelyImmunosuppressed" + * answer.valueBoolean = false + + + diff --git a/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.2.fsh b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.2.fsh new file mode 100644 index 0000000000..3a54ea27cf --- /dev/null +++ b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.2.fsh @@ -0,0 +1,35 @@ +Instance: Example.IMMZ.D1.QuestionnaireResponse.2 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 2 - Client History - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-18T19:20:20.913Z" +* questionnaire = Canonical(QIMMZD1ClientHistoryMeasles) +* subject = Reference(patient654321) + +* item[+] + * linkId = "dose0" + * answer.valueBoolean = false +* item[+] + * linkId = "completedPrimarySeries" + * answer.valueBoolean = false +* item[+] + * linkId = "hivStatus" + * answer.valueCoding = IMMZ.D1#DE12 +* item[+] + * linkId = "pretermBirth" + * answer.valueBoolean = false +* item[+] + * linkId = "severelyImmunosuppressed" + * answer.valueBoolean = false +* item[+] + * linkId = "vaccineHistory" + * item[+] + * linkId = "vaccineType" + * answer.valueCoding = $ICD11#XM4AJ8 + * item[+] + * linkId = "vaccineDate" + * answer.valueDate = "2023-04-05" + + diff --git a/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.3.fsh b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.3.fsh new file mode 100644 index 0000000000..c7daecf826 --- /dev/null +++ b/input/fsh/examples/IMMZ.D1.QuestionnaireResponse.3.fsh @@ -0,0 +1,49 @@ +Instance: Example.IMMZ.D1.QuestionnaireResponse.3 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 3 - Client History - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-18T19:20:20.913Z" +* questionnaire = Canonical(QIMMZD1ClientHistoryMeasles) +* subject = Reference(patient654321) + +* item[+] + * linkId = "dose0" + * answer.valueBoolean = false +* item[+] + * linkId = "completedPrimarySeries" + * answer.valueBoolean = true +* item[+] + * linkId = "dateSeriesCompleted" + * answer.valueDate = "2023-01-01" +* item[+] + * linkId = "hivStatus" + * answer.valueCoding = IMMZ.D1#DE11 +* item[+] + * linkId = "pretermBirth" + * answer.valueBoolean = false +* item[+] + * linkId = "severelyImmunosuppressed" + * answer.valueBoolean = true +* item[+] + * linkId = "artStartDate" + * answer.valueDate = "2022-06-01" +* item[+] + * linkId = "vaccineHistory" + * item[+] + * linkId = "vaccineType" + * answer.valueCoding = $ICD11#XM4AJ8 + * item[+] + * linkId = "vaccineDate" + * answer.valueDate = "2023-04-05" +* item[+] + * linkId = "vaccineHistory" + * item[+] + * linkId = "vaccineType" + * answer.valueCoding = $ICD11#XM4AJ8 + * item[+] + * linkId = "vaccineDate" + * answer.valueDate = "2023-10-05" + + diff --git a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.1.fsh b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.1.fsh new file mode 100644 index 0000000000..913642427d --- /dev/null +++ b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.1.fsh @@ -0,0 +1,14 @@ +Instance: Example.IMMZ.D4.QuestionnaireResponse.1 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 1 - Contraindications - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-11" +* questionnaire = Canonical(QIMMZD4CheckContraindicationsMeasles) +* subject = Reference(patient123456) + +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE162 "Currently pregnant" \ No newline at end of file diff --git a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.2.fsh b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.2.fsh new file mode 100644 index 0000000000..178e2dfdd6 --- /dev/null +++ b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.2.fsh @@ -0,0 +1,14 @@ +Instance: Example.IMMZ.D4.QuestionnaireResponse.2 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 2 - Contraindications - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-11" +* questionnaire = Canonical(QIMMZD4CheckContraindicationsMeasles) +* subject = Reference(patient123456) + +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE165 "Severely immunosuppressed" \ No newline at end of file diff --git a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.3.fsh b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.3.fsh new file mode 100644 index 0000000000..fa5164721b --- /dev/null +++ b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.3.fsh @@ -0,0 +1,15 @@ + +Instance: Example.IMMZ.D4.QuestionnaireResponse.3 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 3 - Contraindications - Measles" + +Usage: #example +* status = #completed +* authored = "2023-10-11" +* questionnaire = Canonical(QIMMZD4CheckContraindicationsMeasles) +* subject = Reference(patient123456) + +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE167 "Severe allergic reactions" \ No newline at end of file diff --git a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.4.fsh b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.4.fsh new file mode 100644 index 0000000000..ecaa75a5d4 --- /dev/null +++ b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.4.fsh @@ -0,0 +1,25 @@ +Instance: Example.IMMZ.D4.QuestionnaireResponse.4 +InstanceOf: QuestionnaireResponse +Description: "QuestionnaireResponse Example 4 - Contraindications - Measles" +Usage: #example +* status = #completed +* authored = "2023-10-11" +* questionnaire = Canonical(QIMMZD4CheckContraindicationsMeasles) +* subject = Reference(patient123456) + +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE162 "Currently pregnant" +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE167 "Severe allergic reactions" +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE168 "Symptomatic HIV infection" +* item[+] + * linkId = "contraindications" + * text = "Contraindications" + * answer.valueCoding = IMMZ.D4#DE165 "Severely immunosuppressed" diff --git a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.fsh b/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.fsh deleted file mode 100644 index d928727fa2..0000000000 --- a/input/fsh/examples/IMMZ.D4.QuestionnaireResponse.fsh +++ /dev/null @@ -1,64 +0,0 @@ -Instance: Example.IMMZ.D4.QuestionnaireResponse.1 -InstanceOf: QuestionnaireResponse -Usage: #example -* status = #completed -* authored = "2023-10-11" -* questionnaire = Canonical(Questionnaire-IMMZD4CheckContraindications) -* subject = Reference(patient123456) - -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE162 "Currently pregnant" - - -Instance: Example.IMMZ.D4.QuestionnaireResponse.2 -InstanceOf: QuestionnaireResponse -Usage: #example -* status = #completed -* authored = "2023-10-11" -* questionnaire = Canonical(Questionnaire-IMMZD4CheckContraindications) -* subject = Reference(patient123456) - -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE165 "Severely immunosuppressed" - -Instance: Example.IMMZ.D4.QuestionnaireResponse.3 -InstanceOf: QuestionnaireResponse -Usage: #example -* status = #completed -* authored = "2023-10-11" -* questionnaire = Canonical(Questionnaire-IMMZD4CheckContraindications) -* subject = Reference(patient123456) - -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE167 "Severe allergic reactions" - -Instance: Example.IMMZ.D4.QuestionnaireResponse.4 -InstanceOf: QuestionnaireResponse -Usage: #example -* status = #completed -* authored = "2023-10-11" -* questionnaire = Canonical(Questionnaire-IMMZD4CheckContraindications) -* subject = Reference(patient123456) - -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE162 "Currently pregnant" -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE167 "Severe allergic reactions" -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE168 "Symptomatic HIV infection" -* item[+] - * linkId = "contraindications" - * text = "Contraindications" - * answer.valueCoding = IMMZ.D4#DE165 "Severely immunosuppressed" diff --git a/input/fsh/examples/IMMZCQuestionnaireResponse1.fsh b/input/fsh/examples/IMMZCQuestionnaireResponse1.fsh deleted file mode 100644 index 240c2bbd1a..0000000000 --- a/input/fsh/examples/IMMZCQuestionnaireResponse1.fsh +++ /dev/null @@ -1,65 +0,0 @@ -Alias: $IMMZ-C = http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ-C - -Instance: IMMZCQuestionnaireResponse1 -InstanceOf: QuestionnaireResponse -Title: "Example Questionnaire Response" -Description: "Questionnaire Response - Patient p007 registration" - -Usage: #example -* status = #completed -* authored = "2023-09-26T16:28:56.811Z" -* questionnaire = Canonical(Questionnaire-IMMZCRegisterClient) -* item[0] - * linkId = "uniqueId" - * text = "Unique identifier for the client" - * answer.valueString = "p007" -* item[+] - * linkId = "name" - * text = "Client name" - * item[0] - * linkId = "fullName" - * text = "Full name of the client" - * answer.valueString = "Jose Costa Teixeira" - * item[+] - * linkId = "firstName" - * text = "First or given name" - * answer.valueString = "Jose" - * item[+] - * linkId = "familyName" - * text = "Family name" - * answer.valueString = "Costa Teixeira" -* item[+] - * linkId = "sex" - * text = "Sex" - * answer.valueCoding = $IMMZ-C#DE6 "Male" -* item[+] - * linkId = "birthDate" - * text = "Birth Date" - * answer.valueDate = "2002-02-22" -* item[+] - * linkId = "caregiver" - * text = "Care giver name" - * item[0] - * linkId = "cgfullName" - * text = "Full name of the care giver" - * answer.valueString = "Alice Costa Teixeira" - * item[+] - * linkId = "cgfirstName" - * text = "First or given name" - * answer.valueString = "Alice" - * item[+] - * linkId = "cgfamilyName" - * text = "Family name" - * answer.valueString = "Costa Teixeira" -* item[+] - * linkId = "phone" - * text = "Client Phone number" - * answer.valueString = "+123456789" -* item[+] - * linkId = "administrativeArea" - * text = "Administrative area" - * answer.valueCoding = urn:iso:std:iso:3166:-2#KE-30 "Nairobi City" -* item[+] - * linkId = "healthWorker" - * text = "Health Worker" - * answer.valueBoolean = false diff --git a/input/fsh/examples/Immunization1.fsh b/input/fsh/examples/Immunization1.fsh index d6d5b9d119..28dd8d50aa 100644 --- a/input/fsh/examples/Immunization1.fsh +++ b/input/fsh/examples/Immunization1.fsh @@ -6,6 +6,6 @@ Description: "Immunization record" * expirationDate = "2023-10-01" //* extension[administeredProduct].valueReference = Reference(Measlesprod1) * extension[administeredProduct].valueCodeableConcept = VaccineProducts#20009060/2 -* patient.reference = "Patient/Patient1" +* patient.reference = "Patient/P123456" * status = #completed * occurrenceDateTime = "2023-08-05" diff --git a/input/fsh/examples/ex-patient.fsh b/input/fsh/examples/P123456.fsh similarity index 68% rename from input/fsh/examples/ex-patient.fsh rename to input/fsh/examples/P123456.fsh index f0107554af..c1266eee33 100644 --- a/input/fsh/examples/ex-patient.fsh +++ b/input/fsh/examples/P123456.fsh @@ -1,5 +1,7 @@ Instance: patient123456 InstanceOf: Patient +Description: "Patient Example - 123456" + Usage: #example * id = "P123456" @@ -8,5 +10,5 @@ Usage: #example * text = "Test Patient" * family = "Patient" * given = "Test" -* gender = #male -* birthDate = "1993-08-12" \ No newline at end of file +* gender = #female +* birthDate = "2023-03-02" \ No newline at end of file diff --git a/input/fsh/examples/P654321.fsh b/input/fsh/examples/P654321.fsh new file mode 100644 index 0000000000..a6e486a8db --- /dev/null +++ b/input/fsh/examples/P654321.fsh @@ -0,0 +1,14 @@ +Instance: patient654321 +InstanceOf: Patient +Description: "Patient Example - 654321" + +Usage: #example + +* id = "P654321" +* identifier.value = "654321" +* name[+] + * text = "Test Patient" + * family = "Patient" + * given = "Test" +* gender = #female +* birthDate = "2022-04-01" \ No newline at end of file diff --git a/input/fsh/examples/VaccineProposal1.fsh b/input/fsh/examples/VaccineProposal1.fsh index ea6a88048a..d737490458 100644 --- a/input/fsh/examples/VaccineProposal1.fsh +++ b/input/fsh/examples/VaccineProposal1.fsh @@ -1,5 +1,6 @@ Instance: VaccineProposal1 InstanceOf: SGVaccineProposal +Description: "Example Proposal (Request) fr patient vaccination" * status = #active * medicationCodeableConcept = $ICD11#XM28X5 -* subject = Reference(Patient/patient1) +* subject = Reference(P123456) diff --git a/input/fsh/measures/IMMZIND05.fsh b/input/fsh/measures/IMMZIND05.fsh index 9317d3a5f8..f6ca79ea7c 100644 --- a/input/fsh/measures/IMMZIND05.fsh +++ b/input/fsh/measures/IMMZIND05.fsh @@ -3,14 +3,14 @@ InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cq Title: "IMMZIND05" * description = "IMMZ.IND.05 Measles indicator for first dose." -* url = "http://fhir.org/guides/who/smart-immunization/Measure/IMMZIND05" +* url = "http://smart.who.int/ig/smart-immunizations-measles/Measure/IMMZIND05" * version = "0.1.0" * status = #draft * experimental = false * date = "2023-10-05" * name = "IMMZIND05" * publisher = "World Health Organization (WHO)" -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZINDMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZINDMeasles" * scoring = $measure-scoring#continuous-variable "Continuous Variable" * group[+] * population[initialPopulation] diff --git a/input/fsh/measures/IMMZIND40.fsh b/input/fsh/measures/IMMZIND40.fsh index 8b005f14c7..5ebcd10ca8 100644 --- a/input/fsh/measures/IMMZIND40.fsh +++ b/input/fsh/measures/IMMZIND40.fsh @@ -3,14 +3,14 @@ InstanceOf: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cq Title: "IMMZIND40" * description = "IMMZ.IND.40 Measles indicator for second dose." -* url = "http://fhir.org/guides/who/smart-immunization/Measure/IMMZIND40" +* url = "http://smart.who.int/ig/smart-immunizations-measles/Measure/IMMZIND40" * version = "0.1.0" * status = #draft * experimental = false * date = "2023-10-05" * name = "IMMZIND40" * publisher = "World Health Organization (WHO)" -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZINDMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZINDMeasles" * scoring = $measure-scoring#continuous-variable "Continuous Variable" * group[+] * population[initialPopulation] diff --git a/input/fsh/models/IMMZ-D1-client-history.fsh b/input/fsh/models/IMMZ-D1-client-history.fsh deleted file mode 100644 index f5356a0832..0000000000 --- a/input/fsh/models/IMMZ-D1-client-history.fsh +++ /dev/null @@ -1,33 +0,0 @@ -Logical: IMMZD1clienthistorymeasles -Title: "IMMZ-D1 Capture Client History for Measles" -Description: "Data elements for the IMMZ-D1 Capture Client History Data Dictionary for Measles." - -* ^name = "ClientHistoryMeasles" - -* dose0 0..1 boolean "Dose 0 administered" "Indicates if the client has received a birth dose and/or supplementary dose" - * ^code[+] = IMMZ-D1#DE80 -* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen." - * ^code[+] = IMMZ-D1#DE8 -* dateSeriesCompleted 1..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)" - * ^code[+] = IMMZ-D1#DE81 -* pregnant 0..1 boolean "Currently pregnant" "The client is currently pregnant" - * ^code[+] = IMMZ-D1#DE9 -* breastfeeding 0..1 boolean "Breastfeeding" "The client is currently breastfeeding" - * ^code[+] = IMMZ-D1#DE82 -* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client" - * ^code[+] = IMMZ-D1#DE10 -* hivStatus from IMMZ-D1.DE10 -* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm, the mother gave birth to the infant when gestational age was less than 37 weeks" - * ^code[+] = IMMZ-D1#DE15 -* immunocompromised 0..1 boolean "Immunocompromised" "The client is known to be immunocompromised or immunosuppressed. This means the client has a weakened immune system and having a reduced ability to fight infections and other diseases" - * ^code[+] = IMMZ-D1#DE16 -* onART 0..1 boolean "Currently on ART" "The client is currently receiving antiretroviral therapy (ART)" - * ^code[+] = IMMZ-D1#DE17 -* hivExposedInfant 1..1 boolean "HIV-exposed infant" "The infant is known to be exposed to HIV (i.e. born to an HIV-infected woman)" - * ^code[+] = IMMZ-D1#DE90 -* immuneReconstitutionAchieved 1..1 boolean "Immune reconstitution was achieved" "The client is known to have achieved immune reconstitution" - * ^code[+] = IMMZ-D1#DE46 -* severelyImmunosuppressed 1..1 boolean "Severely immunosuppressed" "The client is known to be severely immunocompromised or immunosuppressed" - * ^code[+] = IMMZ-D1#DE92 -* artStartDate 1..1 date "ART start date" "The date on which the client started or restarted antiretroviral therapy (ART)" - * ^code[+] = IMMZ-D1#DE49 diff --git a/input/fsh/models/IMMZ-C-register-client.fsh b/input/fsh/models/IMMZCRegisterClient.fsh similarity index 74% rename from input/fsh/models/IMMZ-C-register-client.fsh rename to input/fsh/models/IMMZCRegisterClient.fsh index c7f1751e0b..a2b941a123 100644 --- a/input/fsh/models/IMMZ-C-register-client.fsh +++ b/input/fsh/models/IMMZCRegisterClient.fsh @@ -1,75 +1,65 @@ -Invariant: IMMZ-C-DE10-1 -Description: "If Date of Birth is entered, Calculated ages are required." -Expression: "birthDate.exists() implies ageInWeeks.exists().exists() and ageInMonths.exists() and ageInYears.exists()" -Severity: #error -// TO DO: FIX THE EXPRESSION ABOVE - -Invariant: IMMZ-C-name-1 -Description: "Only letters and special characters (period, dash) allowed." -Expression: "$this.matches('[A-Za-z-.]*')" -Severity: #error - - -Logical: IMMZCRegisterClient -Title: "IMMZ.C Register Client" -Description: "Data elements for the IMMZ.C Register Client Data Dictionary." -* ^extension[http://hl7.org/fhir/tools/StructureDefinition/logical-target].valueBoolean = true -* ^name = "IMMZCRegisterClient" -//* obeys IMMZ-C-DE10-1 -* uniqueId 1..1 SU string "Unique identifier" "Unique identifier for the client, according to the policies applicable to each country. There can be more than one unique identifier used to link records (e.g. national ID, health ID, immunization information system ID, medical record ID)." - * ^code[+] = IMMZ-C#DE1 -// * ^code[WHOCommon] = IMMZ-C#DE1 -* name 1..1 string "Name" "The full name of the client" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE2 -* firstName 0..1 string "First name" "Client's first name or given name" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE3 -* familyName 0..1 string "Last name" "Client's family name or last name" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE4 -* sex 1..1 code "Sex" "Documentation of a specific instance of sex information for the client" - * ^code[+] = IMMZ-C#DE5 -* sex from IMMZ-C-DE5 (required) -* birthDate 0..1 date "Date of birth" "Client's date of birth (DOB) if known; if unknown, use assigned DOB for administrative purposes" - * ^code[+] = IMMZ-C#DE10 -* caregiver 0..* BackboneElement "Caregiver" "The client's caregiver (person) which could be next of kin (e.g. partner, husband, mother, sibling, etc.)" - * ^code[+] = IMMZ-C#DE14 - * name 1..1 string "Caregiver's full name" "The full name of the client's caregiver" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE15 - * firstName 0..1 string "Caregiver's first name" "First or given name of the client's caregiver" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE16 - * familyName 0..1 string "Caregiver's family name" "Family name or last name of the client's caregiver" - * obeys IMMZ-C-name-1 - * ^code[+] = IMMZ-C#DE17 -* phone 1..1 string "Contact phone number" "Client's phone number" - * ^code[+] = IMMZ-C#DE18 -* administrativeArea 0..1 CodeableConcept "Administrative area" "The name of the city/municipality/town/village of where the client lives" - * ^code[+] = IMMZ-C#DE19 -* healthWorker 1..1 boolean "Active health worker" "Is the client an active and participating health worker. This data element is used mainly for reporting and indicators purposes." - * ^code[+] = IMMZ-C#DE20 - - -/* -Mapping: IMMZ-C-to-Patient -Source: IMMZ-C-register-client -Target: "Patient" -* -> "Patient" -* uniqueId -> "Patient.identifier.value" -* name -> "Patient.name.text" -* firstName -> "Patient.name.given" -* familyName -> "Patient.name.family" -* sex -> "Patient.gender" -* birthDate -> "Patient.birthDate" -* caregiver -> "Patient.contact" -* caregiver.name -> "Patient.contact.name.text" -* caregiver.firstName -> "Patient.contact.name.given" -* caregiver.familyName -> "Patient.contact.name.family" -* phone -> "Patient.telecom.value" -* administrativeArea -> "Patient.address.text" -*/ - - - +Invariant: IMMZ-C-name-1 +Description: "Only letters and special characters (period, dash) allowed." +Expression: "$this.matches('[A-Za-z-.]*')" +Severity: #error + + +Logical: IMMZCRegisterClient +Title: "IMMZ.C Register Client" +Description: "Data elements for the IMMZ.C Register Client Data Dictionary." +* ^extension[http://hl7.org/fhir/tools/StructureDefinition/logical-target].valueBoolean = true +* ^name = "IMMZCRegisterClient" +* ^status = #active + +* uniqueId 1..1 SU string "Unique identifier" "Unique identifier for the client, according to the policies applicable to each country. There can be more than one unique identifier used to link records (e.g. national ID, health ID, immunization information system ID, medical record ID)." + * ^code[+] = IMMZ.C#DE1 +// * ^code[WHOCommon] = IMMZ.C#DE1 +* name 1..1 string "Name" "The full name of the client" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE2 +* firstName 0..1 string "First name" "Client's first name or given name" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE3 +* familyName 0..1 string "Last name" "Client's family name or last name" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE4 +* sex 1..1 code "Sex" "Documentation of a specific instance of sex information for the client" + * ^code[+] = IMMZ.C#DE5 +* sex from IMMZ.C.DE5 (required) +* birthDate 0..1 date "Date of birth" "Client's date of birth (DOB) if known; if unknown, use assigned DOB for administrative purposes" + * ^code[+] = IMMZ.C#DE10 +* caregiver 0..* BackboneElement "Caregiver" "The client's caregiver (person) which could be next of kin (e.g. partner, husband, mother, sibling, etc.)" + * ^code[+] = IMMZ.C#DE14 + * name 1..1 string "Caregiver's full name" "The full name of the client's caregiver" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE15 + * firstName 0..1 string "Caregiver's first name" "First or given name of the client's caregiver" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE16 + * familyName 0..1 string "Caregiver's family name" "Family name or last name of the client's caregiver" + * obeys IMMZ-C-name-1 + * ^code[+] = IMMZ.C#DE17 +* phone 1..1 string "Contact phone number" "Client's phone number" + * ^code[+] = IMMZ.C#DE18 +* administrativeArea 0..1 CodeableConcept "Administrative area" "The name of the city/municipality/town/village of where the client lives" + * ^code[+] = IMMZ.C#DE19 +* healthWorker 1..1 boolean "Active health worker" "Is the client an active and participating health worker. This data element is used mainly for reporting and indicators purposes." + * ^code[+] = IMMZ.C#DE20 + + +Mapping: IMMZ-C-to-Patient +Source: IMMZCRegisterClient +Target: "Patient" +* -> "Patient" +* uniqueId -> "Patient.identifier.value" +* name -> "Patient.name.text" +* firstName -> "Patient.name.given" +* familyName -> "Patient.name.family" +* sex -> "Patient.gender" +* birthDate -> "Patient.birthDate" +* caregiver -> "Patient.contact" +* caregiver.name -> "Patient.contact.name.text" +* caregiver.firstName -> "Patient.contact.name.given" +* caregiver.familyName -> "Patient.contact.name.family" +* phone -> "Patient.telecom.value" +* administrativeArea -> "Patient.address.text" \ No newline at end of file diff --git a/input/fsh/models/IMMZD1clienthistorymeasles.fsh b/input/fsh/models/IMMZD1clienthistorymeasles.fsh new file mode 100644 index 0000000000..c3367d793e --- /dev/null +++ b/input/fsh/models/IMMZD1clienthistorymeasles.fsh @@ -0,0 +1,28 @@ +Logical: IMMZD1ClientHistoryMeasles +Title: "IMMZ.D1 Capture Client History for Measles" +Description: "Data elements for the IMMZ.D1 Capture Client History Data Dictionary for Measles." + +* ^name = "IMMZ_D1_Client_History_Measles" + +* patient 1..1 Reference "Patient" "The patient who is being checked for contraindications." +* dose0 0..1 boolean "Dose 0 administered" "Indicates if the client has received a birth dose and/or supplementary dose" + * ^code[+] = IMMZ.D1#DE80 +* completedPrimarySeries 0..1 boolean "Completed the primary vaccination series" "Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen." + * ^code[+] = IMMZ.D1#DE8 +* dateSeriesCompleted 1..1 date "Date when primary vaccination series was completed" "The date when the client completed the primary vaccination series (per product/antigen)" + * ^code[+] = IMMZ.D1#DE81 +* hivStatus 0..1 Coding "HIV status" "The current human immunodeficiency virus (HIV) status of the client" + * ^code[+] = IMMZ.D1#DE10 +* hivStatus from IMMZ.D1.DE10 +* pretermBirth 0..1 boolean "Preterm birth" "The infant was preterm, the mother gave birth to the infant when gestational age was less than 37 weeks" + * ^code[+] = IMMZ.D1#DE15 +* severelyImmunosuppressed 1..1 boolean "Severely immunosuppressed" "The client is known to be severely immunocompromised or immunosuppressed" + * ^code[+] = IMMZ.D1#DE92 +* artStartDate 1..1 date "ART start date" "The date on which the client started or restarted antiretroviral therapy (ART)" + * ^code[+] = IMMZ.D1#DE49 +* vaccineHistory 0..* BackboneElement "Vaccine History" "History of previous vaccine doses." + * vaccineType 0..1 Coding "Vaccine type" "Vaccine type/category that was administered or was to be administered. Any vaccine code available in the IMMZ.Z Vaccine Library list of codes applies in this data element" + * ^code[+] = IMMZ.D1#DE19 + * vaccineType from IMMZ.Z.DE9 + * vaccineDate 0..1 date "Date and time of vaccination" "Represents the visit/encounter date, which is the date and time when the vaccine was administered to the client" + * ^code[+] = IMMZ.D1#DE20 diff --git a/input/fsh/models/logical-IMMZ.D4.measles.fsh b/input/fsh/models/IMMZD4CheckContraindicationsMeasles.fsh similarity index 91% rename from input/fsh/models/logical-IMMZ.D4.measles.fsh rename to input/fsh/models/IMMZD4CheckContraindicationsMeasles.fsh index ee96f1b5eb..12d7ee646b 100644 --- a/input/fsh/models/logical-IMMZ.D4.measles.fsh +++ b/input/fsh/models/IMMZD4CheckContraindicationsMeasles.fsh @@ -1,4 +1,4 @@ -Logical: IMMZD4CheckContraindications +Logical: IMMZD4CheckContraindicationsMeasles Title: "IMMZ.D4 Check Contraindications for Measles" Description: "Data elements for the IMMZ.D4 Check Contraindications Data Dictionary for Measles." diff --git a/input/fsh/plandefinitions/IMMZD2DTMeasles.fsh b/input/fsh/plandefinitions/IMMZD2DTMeasles.fsh index 64a70a9926..7f5d8c1504 100644 --- a/input/fsh/plandefinitions/IMMZD2DTMeasles.fsh +++ b/input/fsh/plandefinitions/IMMZD2DTMeasles.fsh @@ -4,7 +4,7 @@ Title: "IMMZ.D2.DT.Measles" Description: "If the child or patient has not been given MCV1 (at 9 months) and MCV2 (between 15-18 months) vaccination" Usage: #definition -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZD2DTMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles" * extension[+] * url = "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability" * valueCode = #computable @@ -22,4 +22,4 @@ Usage: #definition * description = "Provision of the MCV dose" * language = #text/cql-identifier * expression = "Provision of the MCV dose" - * definitionCanonical = Canonical(IMMZD2DTMeaslesMR) + * definitionCanonical = Canonical(IMMZD2DTMeaslesMR) \ No newline at end of file diff --git a/input/fsh/plandefinitions/IMMZD2DTMeaslesCI.fsh b/input/fsh/plandefinitions/IMMZD2DTMeaslesCI.fsh index f7afe5e66c..d369c0305b 100644 --- a/input/fsh/plandefinitions/IMMZD2DTMeaslesCI.fsh +++ b/input/fsh/plandefinitions/IMMZD2DTMeaslesCI.fsh @@ -4,7 +4,7 @@ Title: "IMMZ.D2.DT.Measles.Contraindication" Description: "Check contraindications for Measles vaccine" Usage: #definition -* library = "http://fhir.org/guides/who/smart-immunization/Library/IMMZD2DTMeasles" +* library = "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles" * extension[+] * url = "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability" * valueCode = #computable diff --git a/input/fsh/questionnaires/IMMZ-D1.fsh b/input/fsh/questionnaires/IMMZ-D1.fsh deleted file mode 100644 index 3854267417..0000000000 --- a/input/fsh/questionnaires/IMMZ-D1.fsh +++ /dev/null @@ -1,74 +0,0 @@ -Instance: Questionnaire-IMMZD1ClientHistory -InstanceOf: sdc-questionnaire-extr-smap -Title: "Capture Client History Questionnaire" -Description: "Immunization - Capture Client History Questionnaire" -Usage: #definition -* version = "2023" -* status = #draft -* subjectType = #Patient -* language = #en -* status = #draft -* contained[+] = IMMZ-D1.DE10 - -* extension[+].url = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-targetStructureMap" -* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZCQRToPatient" - - -* insert Question(dose0, Indicates if the client has received a birth dose and/or supplementary dose, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE80 -* insert Question(completedPrimarySeries, Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series\, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen., boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE8 -* insert Question(dateSeriesCompleted, The date when the client completed the primary vaccination series - per product/antigen, date, false, true) -* item[=] - * code[+] = IMMZ-D1#DE81 -* insert Question(pregnant, The client is currently pregnant, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE9 - * code[+] = $ICD11#XT0S - * code[+] = $LNC#82810-3 - * code[+] = $SCT#77386006 -* insert Question(breastfeeding, The client is currently breastfeeding, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE82 - * code[+] = $ICD11#QA48.1 - * code[+] = $LNC#63895-7 - * code[+] = $SCT#69840006 -* insert Question(hivStatus, The current human immunodeficiency virus HIV status of the client, choice, false, false) -* item[=] - * answerValueSet = "#IMMZ-D1.DE10" - * code[+] = IMMZ-D1#DE10 - * code[+] = $LNC#55277-8 - * code[+] = $SCT#278977008 -* insert Question(pretermBirth, The infant was preterm\, the mother gave birth to the infant when gestational age was less than 37 weeks, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE15 - * code[+] = $ICD11#KA21.4 - * code[+] = $LNC#76517-2 - * code[+] = $SCT#395507008 -* insert Question(immunocompromised, The client is known to be immunocompromised or immunosuppressed. This means the client has a weakened immune system and having a reduced ability to fight infections and other diseases, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE16 - * code[+] = $ICD11#4B4Z - * code[+] = $LNC#96381-9 - * code[+] = $SCT#370388006 -* insert Question(onART, The client is currently receiving antiretroviral therapy ART, boolean, false, false) -* item[=] - * code[+] = IMMZ-D1#DE17 -* insert Question(hivExposedInfant, The infant is known to be exposed to HIV\, i.e. born to an HIV-infected woman, boolean, false, true) -* item[=] - * code[+] = IMMZ-D1#DE90 - * code[+] = $ICD11#QC60 - * code[+] = $LNC#10157-6 - * code[+] = $SCT#438998000 -* insert Question(immuneReconstitutionAchieved, The client is known to have achieved immune reconstitution, boolean, false, true) -* item[=] - * code[+] = IMMZ-D1#DE46 -* insert Question(severelyImmunosuppressed, The client is known to be severely immunocompromised or immunosuppressed, boolean, false, true) -* item[=] - * code[+] = IMMZ-D1#DE92 - * code[=] = $LNC#96381-9 -* insert Question(artStartDate, The date on which the client started or restarted antiretroviral therapy ART, date, false, true) -* item[=] - * code[+] = IMMZ-D1#DE49 diff --git a/input/fsh/questionnaires/IMMZ-C.fsh b/input/fsh/questionnaires/QIMMZCRegisterClient.fsh similarity index 60% rename from input/fsh/questionnaires/IMMZ-C.fsh rename to input/fsh/questionnaires/QIMMZCRegisterClient.fsh index be66089760..0bd8fce33c 100644 --- a/input/fsh/questionnaires/IMMZ-C.fsh +++ b/input/fsh/questionnaires/QIMMZCRegisterClient.fsh @@ -1,113 +1,96 @@ - -Instance: Questionnaire-IMMZCRegisterClient -InstanceOf: sdc-questionnaire-extr-smap -Title: "Client Registration Questionnaire" -Description: "Immunization - Client Registration Questionnaire" -Usage: #definition -* version = "2023" -* status = #draft -* subjectType = #Patient -* language = #en -* status = #draft -* contained[+] = IMMZ-C-DE5 -//* contained[+] = YesNoUnknown - -* extension[+].url = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-targetStructureMap" -* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZCQRToPatient" -//* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZCQRToLM" - -//Header -//* insert Question(header,Client Registration form: to fill in by ....,display,true,false) -* name = "ClientRegistrationQuestionnaire" -* insert Question(uniqueId, Unique identifier for the client,string,true,false) -* item[=] - * code[+] = IMMZ-C#DE1 - -* insert Question(name, Client name,group,true,false) -* item[=] - * code[+] = IMMZ-C#DE2 - * code[+] = $LNC#54125-0 "Patient name" - * code[+] = $SCT#371484003 "Patient name (observable entity)" - * insert Question(fullName, Full name of the client,string,true,false) - * item[=] - * code[+] = IMMZ-C#DE2 - * code[+] = $LNC#54125-0 "Patient name" - * code[+] = $SCT#371484003 "Patient name (observable entity)" - - * insert Question(firstName, First or given name,string,false,false) - * item[=] - * code[+] = IMMZ-C#DE3 - * code[+] = $LNC#45392-8 "First name" - * code[+] = $SCT#184095009 "Patient forename (observable entity)" - - * insert Question(familyName, Family name,string,false,false) - * item[=] - * code[+] = IMMZ-C#DE4 - * code[+] = $LNC#45394-4 "Last name" - * code[+] = $SCT#184096005 "Patient surname (observable entity)" - - -* insert Question(sex, Sex,choice,true,false) -* item[=] - * answerValueSet = "#IMMZ-C-DE5" - * code[+] = IMMZ-C#DE5 - * code[+] = $LNC#46098-0 "Sex" - * code[+] = $SCT#184100006 "Patient sex (observable entity)" - -* insert Question(birthDate, Birth Date,date,false,false) -* item[=] - * code[+] = IMMZ-C#DE10 - * code[+] = $LNC#21112-8 "Birth date" - * code[+] = $SCT#184099003 "Date of birth (observable entity)" - -* insert Question(caregiver, Care giver name,group,true,false) -* item[=] - * code[+] = IMMZ-C#DE14 - * code[+] = $SCT#184140000 "Caregiver details (observable entity)" - - * insert Question(cgfullName, Full name of the care giver,string,true,false) - * item[=] - * code[+] = IMMZ-C#DE15 - * code[+] = $SCT#184140000 "Caregiver details (observable entity)" - - * insert Question(cgfirstName, First or given name,string,false,false) - * item[=] - * code[+] = IMMZ-C#DE16 - - * insert Question(cgfamilyName, Family name,string,false,false) - * item[=] - * code[+] = IMMZ-C#DE17 - -* insert Question(phone, Client Phone number,string,true,false) -* item[=] - * code[+] = IMMZ-C#DE18 - * code[+] = $LNC#42077-8 "Patient Phone number" - * code[+] = $SCT#184103008 "Patient telephone number (observable entity)" - -* insert Question(administrativeArea, Administrative area,choice,false,false) -* item[=] - * code[+] = IMMZ-C#DE19 - * code[+] = $LNC#56799-0 "Address" - * code[+] = $SCT#184097001 "Patient address (observable entity)" - - -* insert Question(healthWorker, Health Worker,boolean,true,false) -* item[=] - * code[+] = IMMZ-C#DE20 - - -/* - -* phone 1..1 string "Client's phone number" - * code[+] = IMMZ-C#DE18 - * code[+] = $LNC#42077-8 "Patient Phone number" - * code[+] = $SCT#184103008 "Patient telephone number (observable entity)" -* administrativeArea 0..1 CodeableConcept "The name of the city/municipality/town/village of where the client lives" - * code[+] = IMMZ-C#DE19 - * code[+] = $LNC#56799-0 "Address" - * code[+] = $SCT#184097001 "Patient address (observable entity)" -* healthWorker 1..1 boolean "Is the client an active and participating health worker. This data element is used mainly for reporting and indicators purposes." - * code[+] = IMMZ-C#DE20 - - -*/ +Instance: QIMMZCRegisterClient +InstanceOf: sdc-questionnaire-extr-smap +Title: "Client Registration Questionnaire" +Description: "Immunization - Client Registration Questionnaire" +Usage: #definition +* version = "2023" +* status = #draft +* subjectType = #Patient +* language = #en +* contained[+] = IMMZ.C.DE5 +//* contained[+] = YesNoUnknown + +* extension[+].url = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-targetStructureMap" +* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZCQRToPatient" + + +//Header +//* insert Question(header,Client Registration form: to fill in by ....,display,true,false) + +* insert Question(uniqueId, Unique identifier for the client,string,true,false) +* item[=] + * code[+] = IMMZ.C#DE1 + +* insert Question(name, Client name,group,true,false) +* item[=] + * code[+] = IMMZ.C#DE2 + * code[+] = $LNC#54125-0 "Patient name" + * code[+] = $SCT#371484003 "Patient name (observable entity)" + * insert Question(fullName, Full name of the client,string,true,false) + * item[=] + * code[+] = IMMZ.C#DE2 + * code[+] = $LNC#54125-0 "Patient name" + * code[+] = $SCT#371484003 "Patient name (observable entity)" + + * insert Question(firstName, First or given name,string,false,false) + * item[=] + * code[+] = IMMZ.C#DE3 + * code[+] = $LNC#45392-8 "First name" + * code[+] = $SCT#184095009 "Patient forename (observable entity)" + + * insert Question(familyName, Family name,string,false,false) + * item[=] + * code[+] = IMMZ.C#DE4 + * code[+] = $LNC#45394-4 "Last name" + * code[+] = $SCT#184096005 "Patient surname (observable entity)" + + +* insert Question(sex, Sex,choice,true,false) +* item[=] + * answerValueSet = Canonical(IMMZ.C.DE5) + * code[+] = IMMZ.C#DE5 + * code[+] = $LNC#46098-0 "Sex" + * code[+] = $SCT#184100006 "Patient sex (observable entity)" + +* insert Question(birthDate, Birth Date,date,false,false) +* item[=] + * code[+] = IMMZ.C#DE10 + * code[+] = $LNC#21112-8 "Birth date" + * code[+] = $SCT#184099003 "Date of birth (observable entity)" + +* insert Question(caregiver, Care giver name,group,true,false) +* item[=] + * code[+] = IMMZ.C#DE14 + * code[+] = $SCT#184140000 "Caregiver details (observable entity)" + + * insert Question(fullName, Full name of the care giver,string,true,false) + * item[=] + * code[+] = IMMZ.C#DE15 + * code[+] = $SCT#184140000 "Caregiver details (observable entity)" + + * insert Question(firstName, First or given name,string,false,false) + * item[=] + * code[+] = IMMZ.C#DE16 + + * insert Question(familyName, Family name,string,false,false) + * item[=] + * code[+] = IMMZ.C#DE17 + +* insert Question(phone, Client Phone number,string,true,false) +* item[=] + * code[+] = IMMZ.C#DE18 + * code[+] = $LNC#42077-8 "Patient Phone number" + * code[+] = $SCT#184103008 "Patient telephone number (observable entity)" + +* insert Question(administrativeArea, Administrative area,choice,false,false) +* item[=] + * code[+] = IMMZ.C#DE19 + * code[+] = $LNC#56799-0 "Address" + * code[+] = $SCT#184097001 "Patient address (observable entity)" + + +* insert Question(healthWorker, Health Worker,boolean,true,false) +* item[=] + * code[+] = IMMZ.C#DE20 + + diff --git a/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh b/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh new file mode 100644 index 0000000000..abce03375e --- /dev/null +++ b/input/fsh/questionnaires/QIMMZD1ClientHistoryMeasles.fsh @@ -0,0 +1,57 @@ +Instance: QIMMZD1ClientHistoryMeasles +InstanceOf: sdc-questionnaire-extr-smap +Title: "Capture Client History Questionnaire" +Description: "Immunization - Capture Client History Questionnaire" +Usage: #definition +* id = "IMMZD1ClientHistoryMeasles" +* version = "2023" +* status = #draft +* subjectType = #Patient +* language = #en +* status = #draft +* contained[+] = IMMZ.D1.DE10 + +* extension[+].url = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-targetStructureMap" +* extension[=].valueCanonical = "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1QRToResources" + + +* insert Question(dose0, Indicates if the client has received a birth dose and/or supplementary dose, boolean, false, false) +* item[=] + * code[+] = IMMZ.D1#DE80 +* insert Question(completedPrimarySeries, Indicates if the client has completed the primary vaccination series of a product/antigen. If the client has not yet completed their primary series\, it means they may be expected to receive more doses to complete their vaccination regimen for the respective product/antigen., boolean, false, false) +* item[=] + * code[+] = IMMZ.D1#DE8 +* insert Question(dateSeriesCompleted, The date when the client completed the primary vaccination series - per product/antigen, date, false, true) +* item[=] + * code[+] = IMMZ.D1#DE81 +* insert Question(hivStatus, The current human immunodeficiency virus HIV status of the client, choice, false, false) +* item[=] + * answerValueSet = Canonical(IMMZ.D1.DE10) + * code[+] = IMMZ.D1#DE10 + * code[+] = $LNC#55277-8 + * code[+] = $SCT#278977008 +* insert Question(pretermBirth, The infant was preterm; the mother gave birth to the infant when gestational age was less than 37 weeks, boolean, false, false) +* item[=] + * code[+] = IMMZ.D1#DE15 + * code[+] = $ICD11#KA21.4 + * code[+] = $LNC#76517-2 + * code[+] = $SCT#395507008 +* insert Question(severelyImmunosuppressed, The client is known to be severely immunocompromised or immunosuppressed, boolean, false, true) +* item[=] + * code[+] = IMMZ.D1#DE92 + * code[+] = $LNC#96381-9 +* insert Question(artStartDate, The date on which the client started or restarted antiretroviral therapy ART, date, false, true) +* item[=] + * code[+] = IMMZ.D1#DE49 +* insert Question(vaccineHistory, Vaccine History, group, false, true) +* item[=] + * insert Question(vaccineType, Vaccine type/category that was administered or was to be administered. Any vaccine code available in the IMMZ.Z Vaccine Library list of codes applies in this data element, choice, true, false) + * item[=] + * answerValueSet = Canonical(IMMZ.Z.DE9) + * code[+] = IMMZ.D1#DE19 + * code[+] = $LNC#39236-5 + * code[+] = $SCT#787859002 + * insert Question(vaccineDate, Represents the visit/encounter date\, which is the date and time when the vaccine was administered to the client, date, true, false) + * item[=] + * code[+] = IMMZ.D1#DE20 + * code[+] = $LNC#30952-6 \ No newline at end of file diff --git a/input/fsh/questionnaires/IMMZ.D4.measles.fsh b/input/fsh/questionnaires/QIMMZD4CheckContraindicationsMeasles.fsh similarity index 90% rename from input/fsh/questionnaires/IMMZ.D4.measles.fsh rename to input/fsh/questionnaires/QIMMZD4CheckContraindicationsMeasles.fsh index 2de688c9d7..e43fedb839 100644 --- a/input/fsh/questionnaires/IMMZ.D4.measles.fsh +++ b/input/fsh/questionnaires/QIMMZD4CheckContraindicationsMeasles.fsh @@ -1,4 +1,4 @@ -Instance: Questionnaire-IMMZD4CheckContraindications +Instance: QIMMZD4CheckContraindicationsMeasles InstanceOf: sdc-questionnaire-extr-smap Title: "Check Contraindications Questionnaire" Description: "Immunization - Check Contraindications Questionnaire" @@ -17,5 +17,5 @@ Usage: #definition //* insert Question(contraindications, Specific situations or medical conditions in which it is advised or recommended to avoid or delay administering a particular vaccine, choice, false, true) * insert Question(contraindications, Contraindications, choice, false, true) * item[=] - * answerValueSet = "#IMMZ.D4.DE161" + * answerValueSet = Canonical(IMMZ.D4.DE161) * code[+] = IMMZ.D4#DE161 diff --git a/input/fsh/valuesets/ARVDrugs-values.fsh b/input/fsh/valuesets/ARVDrugs-values.fsh new file mode 100644 index 0000000000..229fa538f9 --- /dev/null +++ b/input/fsh/valuesets/ARVDrugs-values.fsh @@ -0,0 +1,9 @@ +ValueSet: ARVDrugsvalues +Id: ARVDrugs-values +Title: "ARV Drugs values" +Description: "Codes representing ARV Drugs values" +* ^status = #draft +* ^experimental = false +* ^immutable = true +* $SCT#713540004 "Substance with antiretroviral mechanism of action (substance)" +* $SCT#788075003 "Medicinal product acting as antiretroviral agent (product)" diff --git a/input/fsh/valuesets/AllVaccineTypes.fsh b/input/fsh/valuesets/AllVaccineTypes.fsh new file mode 100644 index 0000000000..41b8f490e3 --- /dev/null +++ b/input/fsh/valuesets/AllVaccineTypes.fsh @@ -0,0 +1,15 @@ +ValueSet: AllVaccineTypes +Id: AllVaccineTypes +Title: "Vaccine Type ValueSet" +Description: "Vaccine type Codes, containing the different types of antigens used in vaccine guidelines." + +* ^status = #active + +* codes from system ICD11 where parent = #XM28X5 +* ICD11#XM28X5 +* codes from system ICD11 where parent = #XM1131 +* ICD11#XM1131 + +* $LNC#30940-1 "Measles virus+Mumps virus+Rubella virus dose count in combination vaccine" + +* $SCT#836382004 "Measles morbillivirus antigen-containing vaccine product" \ No newline at end of file diff --git a/input/fsh/valuesets/HIVstatus-values.fsh b/input/fsh/valuesets/HIVstatus-values.fsh new file mode 100644 index 0000000000..0601c302f0 --- /dev/null +++ b/input/fsh/valuesets/HIVstatus-values.fsh @@ -0,0 +1,14 @@ +//Example Valuset you can use as a template to create new ones +//change ValueSet name, Id, Title, Description +ValueSet: HIVstatusvalues +Id: HIVstatus-values +Title: "HIV status values" +Description: "Codes representing HIV status values" +//don't touch status, experimental, immutable +* ^status = #draft +* ^experimental = false +* ^immutable = true +//fill in codes, check AL_CodeSystems.fsh for the short names of the codesystem +* $SCT#278977008 "Human immunodeficiency virus status (observable entity)" +* $ICD11#1C62.Z "Human immunodeficiency virus disease without mention of associated disease or condition, clinical stage unspecified" +* $ICD11#MA14.0 "Laboratory evidence of human immunodeficiency virus" diff --git a/input/fsh/valuesets/IMMZ.C.DE5.fsh b/input/fsh/valuesets/IMMZ.C.DE5.fsh index c79d53c53a..553934150f 100644 --- a/input/fsh/valuesets/IMMZ.C.DE5.fsh +++ b/input/fsh/valuesets/IMMZ.C.DE5.fsh @@ -1,11 +1,11 @@ -ValueSet: IMMZ-C-DE5 -Title: "IMMZ-C-DE5 ValueSet for Sex" -Description: "ValueSet for Sex for IMMZ-C-DE5." +ValueSet: IMMZ.C.DE5 +Title: "IMMZ.C.DE5 ValueSet for Sex" +Description: "ValueSet for Sex for IMMZ.C.DE5." * ^status = #active * ^experimental = false * ^name = "IMMZ_C_DE5" -* IMMZ-C#DE6 "Male" -* IMMZ-C#DE7 "Female" -* IMMZ-C#DE8 "Biological sex not specified" -* IMMZ-C#DE9 "Intersex" +* IMMZ.C#DE6 "Male" +* IMMZ.C#DE7 "Female" +* IMMZ.C#DE8 "Biological sex not specified" +* IMMZ.C#DE9 "Intersex" diff --git a/input/fsh/valuesets/IMMZ.D1.DE10.fsh b/input/fsh/valuesets/IMMZ.D1.DE10.fsh new file mode 100644 index 0000000000..28716b9722 --- /dev/null +++ b/input/fsh/valuesets/IMMZ.D1.DE10.fsh @@ -0,0 +1,10 @@ +ValueSet: IMMZ.D1.DE10 +Title: "IMMZ.D1.DE10 ValueSet for HIV Status" +Description: "ValueSet for HIV Status for IMMZ.D1.DE10." + +* ^status = #active +* ^name = "IMMZ_D1_DE10" + +* IMMZ.D1#DE11 "HIV-positive" +* IMMZ.D1#DE12 "HIV-negative" +* IMMZ.D1#DE13 "Unknown" \ No newline at end of file diff --git a/input/fsh/valuesets/IMMZ.D4.DE161.fsh b/input/fsh/valuesets/IMMZ.D4.DE161.fsh new file mode 100644 index 0000000000..7358770c84 --- /dev/null +++ b/input/fsh/valuesets/IMMZ.D4.DE161.fsh @@ -0,0 +1,15 @@ + +ValueSet: IMMZ.D4.DE161 +Title: "IMMZ.D4.DE161 ValueSet for Potential Contraindications" +Description: "ValueSet for Potential Contraindications for IMMZ.D4.DE161." + +* ^status = #active +* ^name = "IMMZ_D4_DE161" + +* IMMZ.D4#DE162 "Currently pregnant" +* IMMZ.D4#DE165 "Severely immunosuppressed" +* IMMZ.D4#DE166 "History of anaphylactic reactions" +* IMMZ.D4#DE167 "Severe allergic reactions" +* IMMZ.D4#DE168 "Symptomatic HIV infection" + + diff --git a/input/fsh/valuesets/IMMZ.Z.DE9.fsh b/input/fsh/valuesets/IMMZ.Z.DE9.fsh new file mode 100644 index 0000000000..6159f86244 --- /dev/null +++ b/input/fsh/valuesets/IMMZ.Z.DE9.fsh @@ -0,0 +1,17 @@ +ValueSet: IMMZ.Z.DE9 +Title: "IMMZ.Z.DE10 ValueSet for Measles Vaccines" +Description: "ValueSet for Measles Vaccines for IMMZ.Z.DE9." + +* ^status = #active +* ^name = "IMMZ_Z_DE9" + +* $ICD11#XM28X5 "Measles vaccines" +* $ICD11#XM8L15 "Measles, live attenuated" +* $ICD11#XM8TF3 "Measles, combinations with mumps and rubella, live attenuated" +* $ICD11#XM21H2 "Measles, combinations with rubella, live attenuated" +* $ICD11#XM4AJ8 "Measles, combinations with mumps, rubella and varicella, live attenuated" +* $ICD11#XM9439 "Measles, combinations with mumps, live attenuated" + +* $LNC#30940-1 "Measles virus+Mumps virus+Rubella virus dose count in combination vaccine" + +* $SCT#836382004 "Measles morbillivirus antigen-containing vaccine product" \ No newline at end of file diff --git a/input/fsh/valuesets/Immunocompromised-values.fsh b/input/fsh/valuesets/Immunocompromised-values.fsh new file mode 100644 index 0000000000..dc3740310e --- /dev/null +++ b/input/fsh/valuesets/Immunocompromised-values.fsh @@ -0,0 +1,9 @@ +ValueSet: Immunocompromisedvalues +Id: Immunocompromised-values +Title: "Immunocompromised valueset" +Description: "Codes representing Immunocompromised values" +* ^status = #draft +* ^experimental = false +* ^immutable = true +* $SCT#370388006 "Patient immunocompromised" +* $SCT#370391006 "Patient immunosuppressed" diff --git a/input/fsh/valuesets/LiveAttenuatedVaccines.fsh b/input/fsh/valuesets/LiveAttenuatedVaccines.fsh new file mode 100644 index 0000000000..1c2b6e2a3c --- /dev/null +++ b/input/fsh/valuesets/LiveAttenuatedVaccines.fsh @@ -0,0 +1,31 @@ +//Example Valuset you can use as a template to create new ones +//change ValueSet name, Id, Title, Description +ValueSet: LiveAttenuatedVaccines +Id: LiveAttenuatedVaccines +Title: "Set of live attenuated vaccines" +Description: "Codes representing live attenuated vaccines" +//don't touch status, experimental, immutable +* ^status = #draft +* ^experimental = false +* ^immutable = true +//fill in codes, check AL_CodeSystems.fsh for the short names of the codesystem +* $ICD11#XM8142 +* $ICD11#XM72A0 +* $ICD11#XM47S0 +* $ICD11#XM8L15 +* $ICD11#XM8TF3 +* $ICD11#XM21H2 +* $ICD11#XM4AJ8 +* $ICD11#XM9439 +* $ICD11#XM2340 +* $ICD11#XM79H3 +* $ICD11#XM0VX8 +* $ICD11#XM0KZ1 +* $ICD11#XM4GV0 +* $ICD11#XM9PS9 +* $ICD11#XM3B09 +* $ICD11#XM5V64 +* $ICD11#XM33K4 +* $ICD11#XM0NS8 +* $ICD11#XM3418 +* $ICD11#XM5DF6 \ No newline at end of file diff --git a/input/fsh/valuesets/MeaslesVaccineTypes.fsh b/input/fsh/valuesets/MeaslesVaccineTypes.fsh new file mode 100644 index 0000000000..98812fda50 --- /dev/null +++ b/input/fsh/valuesets/MeaslesVaccineTypes.fsh @@ -0,0 +1,13 @@ +ValueSet: VaccineTypes +Id: VaccineTypes +Title: "Measles Vaccine Type ValueSet" +Description: "Measles Vaccine type Codes, containing the different types of antigens used in vaccine guidelines." + +* ^status = #active + +* codes from system ICD11 where parent = #XM28X5 +* ICD11#XM28X5 + +* $LNC#30940-1 "Measles virus+Mumps virus+Rubella virus dose count in combination vaccine" + +* $SCT#836382004 "Measles morbillivirus antigen-containing vaccine product" \ No newline at end of file diff --git a/input/fsh/valuesets/Negativetestresult-values.fsh b/input/fsh/valuesets/Negativetestresult-values.fsh new file mode 100644 index 0000000000..a2ffb1de1b --- /dev/null +++ b/input/fsh/valuesets/Negativetestresult-values.fsh @@ -0,0 +1,12 @@ +//Example Valuset you can use as a template to create new ones +//change ValueSet name, Id, Title, Description +ValueSet: Negativetestresultvalues +Id: Negativetestresult-values +Title: "Negative Test Results" +Description: "Codes representing negative test result values" +//don't touch status, experimental, immutable +* ^status = #draft +* ^experimental = false +* ^immutable = true +//fill in codes, check AL_CodeSystems.fsh for the short names of the codesystem +* $SCT#260385009 "Negative (qualifier value)" diff --git a/input/fsh/valuesets/PositiveTestResult-values.fsh b/input/fsh/valuesets/PositiveTestResult-values.fsh new file mode 100644 index 0000000000..7efbab02e3 --- /dev/null +++ b/input/fsh/valuesets/PositiveTestResult-values.fsh @@ -0,0 +1,8 @@ +ValueSet: PositiveTestResultvalues +Id: PositiveTestResult-values +Title: "Positive Test Result valuest" +Description: "Codes representing Positive Test Result values" +* ^status = #draft +* ^experimental = false +* ^immutable = true +* $SCT#10828004 "Positive (qualifier value)" diff --git a/input/fsh/valuesets/VaccineTypes.fsh b/input/fsh/valuesets/VaccineTypes.fsh deleted file mode 100644 index 58c534d531..0000000000 --- a/input/fsh/valuesets/VaccineTypes.fsh +++ /dev/null @@ -1,5 +0,0 @@ -ValueSet: VaccineTypes -Id: VaccineTypes -Title: "Vaccine Type ValueSet" -Description: "Vaccine type Codes, containing the different types of antigens used in vaccine guidelines." -* codes from system ICD11 \ No newline at end of file diff --git a/input/fsh/valuesets/birthweight-values.fsh b/input/fsh/valuesets/birthweight-values.fsh new file mode 100644 index 0000000000..f20f8162f8 --- /dev/null +++ b/input/fsh/valuesets/birthweight-values.fsh @@ -0,0 +1,10 @@ +ValueSet: Birthweightvalues +Id: Birthweight-values +Title: "Birthweight valueset" +Description: "Codes representing Birthweight values" +* ^status = #draft +* ^experimental = false +* ^immutable = true +* $SCT#276610007 "Birthweight" +* $LNC#8339-4 "Birth weight Measured" +* $LNC#56056-5 "Birth weight - Reported" diff --git a/input/maps/IMMZCQRToLM.fml b/input/maps/IMMZCQRToLM.fml index 7a8fcd7fc2..d6c4432c0b 100644 --- a/input/maps/IMMZCQRToLM.fml +++ b/input/maps/IMMZCQRToLM.fml @@ -10,7 +10,7 @@ group QRespToIMMZC ( source qr : QResp, target immzc : IMMZC) { answer.value as content -> immzc.uniqueId = content "SetIdentifier"; } "FirstAnswerForIdentifier"; - item as name where item.linkId = 'name' then NameToIMMZC( name, immzc ) "SetNames"; + item as pname where item.linkId = 'name' then NameToIMMZC( pname, immzc ) "SetNames"; item.answer first as answer where item.linkId = 'sex' then { answer.value as coding then { diff --git a/input/maps/IMMZCQRToPatient.fml b/input/maps/IMMZCQRToPatient.fml index 8c0a72648f..82d0e87f49 100644 --- a/input/maps/IMMZCQRToPatient.fml +++ b/input/maps/IMMZCQRToPatient.fml @@ -11,13 +11,13 @@ group QRestToIMMZC ( source qr : QResp, target bundle: Bundle ) { - qr -> bundle.id = uuid() "rule_bundle_id"; + qr -> bundle.id = uuid() "ruleBundleId"; qr -> bundle.type = 'collection' "rule_bundle_type"; qr -> bundle.entry as entry, entry.resource = create('Patient') as patient, create("http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZCRegisterClient") as model then{ qr -> model then QRespToIMMZC( qr, model) "QRtoLM"; qr -> patient then IMMZCToPatient( model, patient ) "LMtoPatient"; - qr -> patient.active = true "rule_patient_active"; + qr -> patient.active = true "rulePatientActive"; } "QRtoPatient"; } \ No newline at end of file diff --git a/input/maps/IMMZD1LMToResources.fml b/input/maps/IMMZD1LMToResources.fml new file mode 100644 index 0000000000..bfd33faba4 --- /dev/null +++ b/input/maps/IMMZD1LMToResources.fml @@ -0,0 +1,104 @@ +map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1LMToResources" = "IMMZD1LMToResources" + +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD1ClientHistoryMeasles" alias IMMZD1 as source +uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target + +group IMMZD1ToBundle (source immz : IMMZD1, target bundle: Bundle) { + immz -> bundle.type = 'collection' "SetCollection"; + + immz.patient as patient then { + + + immz.dose0 as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE80' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetDose0Observation"; + + immz.completedPrimarySeries as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE8' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetPrimarySeriesObservation"; + + immz.dateSeriesCompleted as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE81' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetDateSeriesObservation"; + + immz.hivStatus as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE10' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.valueCodeableConcept as code then { + content -> code.coding = content "SetCoding"; + } "SetCodeableConcept"; + } "SetHIVStatusObservation"; + + immz.pretermBirth as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE15' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetPretermBirthObservation"; + + immz.severelyImmunosuppressed as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE92' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetSeverelyImmunosuppressedObservation"; + + immz.artStartDate as content -> bundle.entry as entry, entry.resource = create('Observation') as obs then { + patient -> obs.subject = patient "SetPatient"; + content -> obs.code as code then { + content -> code.coding as coding then { + content -> coding.system = 'http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1' "SetObsSystem"; + content -> coding.code = 'DE49' "SetObsCode"; + } "SetObsCoding"; + } "SetObsCode"; + content -> obs.value = content "SetValue"; + } "SetARTDateObservation"; + + immz.vaccineHistory as history -> bundle.entry as entry, entry.resource = create('Immunization') as imm then { + patient -> imm.patient = patient "SetPatient"; + history -> imm.status = 'completed' "SetStatus"; + + history.vaccineType as vaccine -> imm.vaccineCode as code then { + vaccine -> code.coding = vaccine "SetVaccineCoding"; + } "SetVaccineType"; + history.vaccineDate as date -> imm.occurrence = cast(date, 'dateTime') "SetDate"; + + } "SetVaccineHistoryObservation"; + + } "GetPatient"; + +} diff --git a/input/maps/IMMZD1QRToLM.fml b/input/maps/IMMZD1QRToLM.fml new file mode 100644 index 0000000000..ead4811767 --- /dev/null +++ b/input/maps/IMMZD1QRToLM.fml @@ -0,0 +1,57 @@ +map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1QRToLM" = "IMMZD1QRToLM" + +uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD1ClientHistoryMeasles" alias IMMZD1 as target + +group QRespToIMMZD1 ( source qr : QResp, target immz : IMMZD1) { + + qr.subject as patient -> immz.patient = patient "SetPatient"; + + qr.item as item then { + + item.answer first as answer where item.linkId = 'dose0' then { + answer.value as content -> immz.dose0 = content "SetDose0"; + } "FirstAnswerForDose0"; + + item.answer first as answer where item.linkId = 'completedPrimarySeries' then { + answer.value as content -> immz.completedPrimarySeries = content "SetCompletedPrimarySeries"; + } "FirstAnswerForCompletedPrimarySeries"; + + item.answer first as answer where item.linkId = 'dateSeriesCompleted' then { + answer.value as content -> immz.dateSeriesCompleted = content "SetDateSeriesCompleted"; + } "FirstAnswerDateSeriesCompleted"; + + item.answer first as answer where item.linkId = 'hivStatus' then { + answer.value as coding -> immz.hivStatus = coding "SetHIVStatus"; + } "FirstAnswerForHIVStatus"; + + item.answer first as answer where item.linkId = 'pretermBirth' then { + answer.value as content -> immz.pretermBirth = content "SetPretermBirth"; + } "FirstAnswerForPretermBirth"; + + item.answer first as answer where item.linkId = 'severelyImmunosuppressed' then { + answer.value as content -> immz.severelyImmunosuppressed = content "SetSeverelyImmunosuppressed"; + } "FirstAnswerForSeverelyImmunosuppressed"; + + + item.answer first as answer where item.linkId = 'artStartDate' then { + answer.value as content -> immz.artStartDate = content "SetARTStartDated"; + } "FirstAnswerARTStartDate"; + + item as history where item.linkId = 'vaccineHistory' -> immz.vaccineHistory as vaccine then { + history.item as entry then { + entry.answer as answer where entry.linkId = 'vaccineType' then { + answer.value as coding -> vaccine.vaccineType = coding "SetVaccineType"; + } "AnswerForVaccineType"; + + entry.answer as answer where entry.linkId = 'vaccineDate' then { + answer.value as content -> vaccine.vaccineDate = content "SetVaccineDate"; + } "AnswerForVaccineDate"; + + } "HistoryLoop"; + + } "ForVaccineHistory"; + + } "processItems"; + +} \ No newline at end of file diff --git a/input/maps/IMMZD1QRToResources.fml b/input/maps/IMMZD1QRToResources.fml new file mode 100644 index 0000000000..a3c63790a7 --- /dev/null +++ b/input/maps/IMMZD1QRToResources.fml @@ -0,0 +1,19 @@ +map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1QRToResources" = "IMMZD1QRToResources" + +uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD1ClientHistoryMeasles" alias IMMZD1 as source +uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target + +imports "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1QRToLM" +imports "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD1LMToResources" + +group QRespToBundle ( + source qr : QResp, + target bundle: Bundle +) { + qr -> create("http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD1ClientHistoryMeasles") as model + then{ + qr -> model then QRespToIMMZD1( qr, model) "QRtoLM"; + qr -> bundle then IMMZD1ToBundle( model, bundle ) "LMtoBundle"; + } "QRtoBundle"; +} \ No newline at end of file diff --git a/input/maps/IMMZD4LMToResources.fml b/input/maps/IMMZD4LMToResources.fml index 46f1177afe..07aff33585 100644 --- a/input/maps/IMMZD4LMToResources.fml +++ b/input/maps/IMMZD4LMToResources.fml @@ -1,6 +1,6 @@ map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD4LMToResources" = "IMMZD4LMToResources" -uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindications" alias IMMZD4 as source +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindicationsMeasles" alias IMMZD4 as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target group IMMZD4ToBundle (source immz : IMMZD4, target bundle: Bundle) { diff --git a/input/maps/IMMZD4QRToLM.fml b/input/maps/IMMZD4QRToLM.fml index 3bf4fae619..593a840225 100644 --- a/input/maps/IMMZD4QRToLM.fml +++ b/input/maps/IMMZD4QRToLM.fml @@ -1,7 +1,7 @@ map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD4QRToLM" = "IMMZD4QRToLM" uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source -uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindications" alias IMMZD4 as target +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindicationsMeasles" alias IMMZD4 as target group QRespToIMMZD4 ( source qr : QResp, target immz : IMMZD4) { diff --git a/input/maps/IMMZD4QRToResources.fml b/input/maps/IMMZD4QRToResources.fml index d5a1dd404c..740c529bbf 100644 --- a/input/maps/IMMZD4QRToResources.fml +++ b/input/maps/IMMZD4QRToResources.fml @@ -1,7 +1,7 @@ map "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD4QRToResources" = "IMMZD4QRToResources" uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source -uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindications" alias IMMZD4 as source +uses "http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindicationsMeasles" alias IMMZD4 as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target imports "http://smart.who.int/ig/smart-immunizations-measles/StructureMap/IMMZD4QRToLM" @@ -11,7 +11,7 @@ group QRespToBundle ( source qr : QResp, target bundle: Bundle ) { - qr -> create("http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindications") as model + qr -> create("http://smart.who.int/ig/smart-immunizations-measles/StructureDefinition/IMMZD4CheckContraindicationsMeasles") as model then{ qr -> model then QRespToIMMZD4( qr, model) "QRtoLM"; qr -> bundle then IMMZD4ToBundle( model, bundle ) "LMtoBundle"; diff --git a/input/pagecontent/functional-requirements.md b/input/pagecontent/functional-requirements.md index 4690dcf205..7017d20d1d 100644 --- a/input/pagecontent/functional-requirements.md +++ b/input/pagecontent/functional-requirements.md @@ -1,2 +1,3 @@ -# Functional Requirements - +--- +--- +{% include fragment-functionalrequirements.liquid %} diff --git a/input/resources/library/FHIRCommon.json b/input/resources/library/FHIRCommon.json index ac5fe0c222..9ac7721483 100644 --- a/input/resources/library/FHIRCommon.json +++ b/input/resources/library/FHIRCommon.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon", "version": "4.0.1", "name": "FHIRCommon", "relatedArtifact": [ { @@ -17,7 +17,7 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Code system LOINC", diff --git a/input/resources/library/IMMZCommon.json b/input/resources/library/IMMZCommon.json index de4a6bd164..ecd57f5d9a 100644 --- a/input/resources/library/IMMZCommon.json +++ b/input/resources/library/IMMZCommon.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommon", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommon", "name": "IMMZCommon", "relatedArtifact": [ { "type": "depends-on", @@ -16,23 +16,23 @@ }, { "type": "depends-on", "display": "Library WCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOCommon" }, { "type": "depends-on", "display": "Library Wcon", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOConcepts" }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library FC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon" }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" }, { "type": "depends-on", "display": "Code system LOINC", @@ -40,7 +40,7 @@ }, { "type": "depends-on", "display": "Code system IMMZ.D4", - "resource": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4" }, { "type": "depends-on", "display": "Code system AllergyIntoleranceClinicalStatusCodes", @@ -60,11 +60,11 @@ }, { "type": "depends-on", "display": "Value set PretermBirth", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Preterm-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Preterm-values" }, { "type": "depends-on", "display": "Value set Immunocompromised", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Immunocompromised-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Immunocompromised-values" }, { "type": "depends-on", "display": "Value set Active Condition", @@ -72,19 +72,19 @@ }, { "type": "depends-on", "display": "Value set Patient birth weight observation value", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Birthweight-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Birthweight-values" }, { "type": "depends-on", "display": "Value set ARV Drugs", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/ARVDrugs-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/ARVDrugs-values" }, { "type": "depends-on", "display": "Value set HIV status", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values" }, { "type": "depends-on", "display": "Value set Live Attenuated", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/LiveAttenduatedVaccines" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/LiveAttenduatedVaccines" } ], "parameter": [ { "name": "Patient", @@ -318,7 +318,7 @@ "mustSupport": [ "code", "value" ], "codeFilter": [ { "path": "code", - "valueSet": "http://smart.who.int/ig/smart-immunizations/ValueSet/Birthweight-values" + "valueSet": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Birthweight-values" } ] }, { "type": "Observation", @@ -326,7 +326,7 @@ "mustSupport": [ "code", "status", "value" ], "codeFilter": [ { "path": "code", - "valueSet": "http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values" + "valueSet": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values" } ] }, { "type": "Condition", @@ -339,7 +339,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE165", "display": "Severely immunosuppressed" } ] @@ -351,7 +351,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE166", "display": "History of anaphylactic reactions" } ] @@ -363,7 +363,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE167", "display": "Severe allergic reactions" } ] @@ -375,7 +375,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE168", "display": "Symptomatic HIV infection" } ] diff --git a/input/resources/library/IMMZCommonIzDataElements.json b/input/resources/library/IMMZCommonIzDataElements.json index 0b75acdd4a..c5b80f3f23 100644 --- a/input/resources/library/IMMZCommonIzDataElements.json +++ b/input/resources/library/IMMZCommonIzDataElements.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommonIzDataElements", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommonIzDataElements", "name": "IMMZCommonIzDataElements", "relatedArtifact": [ { "type": "depends-on", @@ -16,23 +16,23 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library WCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOCommon" }, { "type": "depends-on", "display": "Library IMMZCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommon" }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" }, { "type": "depends-on", "display": "Library IMMZvl", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZVaccineLibrary" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZVaccineLibrary" }, { "type": "depends-on", "display": "Code system Vaccines Administered", diff --git a/input/resources/library/IMMZConcepts.json b/input/resources/library/IMMZConcepts.json index d0cedd9bdf..1347debaf6 100644 --- a/input/resources/library/IMMZConcepts.json +++ b/input/resources/library/IMMZConcepts.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts", "name": "IMMZConcepts", "relatedArtifact": [ { "type": "depends-on", @@ -48,15 +48,15 @@ }, { "type": "depends-on", "display": "Code system IMMZ.C", - "resource": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.C" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.C" }, { "type": "depends-on", "display": "Code system IMMZ.D1", - "resource": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D1" }, { "type": "depends-on", "display": "Code system IMMZ.D4", - "resource": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4" }, { "type": "depends-on", "display": "Value set WHO ATC", @@ -64,31 +64,31 @@ }, { "type": "depends-on", "display": "Value set Negative Result", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Negativetestresult-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Negativetestresult-values" }, { "type": "depends-on", "display": "Value set Positive Result", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/PositiveTestResult-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/PositiveTestResult-values" }, { "type": "depends-on", "display": "Value set Immunocompromised", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Immunocompromised-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Immunocompromised-values" }, { "type": "depends-on", "display": "Value set Patient birth weight observation value", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Birthweight-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Birthweight-values" }, { "type": "depends-on", "display": "Value set PretermBirth", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/Preterm-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/Preterm-values" }, { "type": "depends-on", "display": "Value set Live Attenuated", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/LiveAttenduatedVaccines" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/LiveAttenduatedVaccines" }, { "type": "depends-on", "display": "Value set HIV status", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values" }, { "type": "depends-on", "display": "Value set HIV status - HIV positive Choices", @@ -100,19 +100,19 @@ }, { "type": "depends-on", "display": "Value set ARV Drugs", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/ARVDrugs-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/ARVDrugs-values" }, { "type": "depends-on", "display": "Value set MCV Vaccine", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE9" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.Z.DE9" }, { "type": "depends-on", "display": "Value set BCG Vaccine", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.A1.DE1" }, { "type": "depends-on", "display": "Value set Cholera Vaccine", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE2" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.A1.DE2" } ], "content": [ { "contentType": "text/cql", diff --git a/input/resources/library/IMMZConfig.json b/input/resources/library/IMMZConfig.json index 10dad79f87..e62d5a4cb9 100644 --- a/input/resources/library/IMMZConfig.json +++ b/input/resources/library/IMMZConfig.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConfig", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConfig", "name": "IMMZConfig", "relatedArtifact": [ { "type": "depends-on", @@ -16,7 +16,7 @@ }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" } ], "parameter": [ { "name": "Patient", diff --git a/input/resources/library/IMMZD2DTMeasles.json b/input/resources/library/IMMZD2DTMeasles.json index 5daac0d795..af3906d128 100644 --- a/input/resources/library/IMMZD2DTMeasles.json +++ b/input/resources/library/IMMZD2DTMeasles.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZD2DTMeasles", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles", "name": "IMMZD2DTMeasles", "relatedArtifact": [ { "type": "depends-on", @@ -16,47 +16,47 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library IMMZCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommon" }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" }, { "type": "depends-on", "display": "Library IMMZCon", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConfig" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConfig" }, { "type": "depends-on", "display": "Library IMMZvl", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZVaccineLibrary" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZVaccineLibrary" }, { "type": "depends-on", "display": "Library FC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon" }, { "type": "depends-on", "display": "Library WCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOCommon" }, { "type": "depends-on", "display": "Library Wcon", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOConcepts" }, { "type": "depends-on", "display": "Code system IMMZ.D4", - "resource": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4" }, { "type": "depends-on", "display": "Value set MCV Vaccine", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE9" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.Z.DE9" }, { "type": "depends-on", "display": "Value set HIV status", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values" }, { "type": "depends-on", "display": "Value set HIV status - HIV positive Choices", @@ -64,11 +64,11 @@ }, { "type": "depends-on", "display": "Value set ARV Drugs", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/ARVDrugs-values" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/ARVDrugs-values" }, { "type": "depends-on", "display": "Value set Live Attenuated", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/LiveAttenduatedVaccines" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/LiveAttenduatedVaccines" }, { "type": "depends-on", "display": "Value set Pregnancy Status Pregnant", @@ -286,7 +286,7 @@ "mustSupport": [ "code", "status", "value" ], "codeFilter": [ { "path": "code", - "valueSet": "http://smart.who.int/ig/smart-immunizations/ValueSet/HIVstatus-values" + "valueSet": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/HIVstatus-values" } ] }, { "type": "Observation", @@ -311,7 +311,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE165", "display": "Severely immunosuppressed" } ] @@ -323,7 +323,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE166", "display": "History of anaphylactic reactions" } ] @@ -335,7 +335,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE167", "display": "Severe allergic reactions" } ] @@ -347,7 +347,7 @@ "codeFilter": [ { "path": "code", "code": [ { - "system": "http://smart.who.int/ig/smart-immunizations/CodeSystem/IMMZ.D4", + "system": "http://smart.who.int/ig/smart-immunizations-measles/CodeSystem/IMMZ.D4", "code": "DE168", "display": "Symptomatic HIV infection" } ] diff --git a/input/resources/library/IMMZINDMeasles.json b/input/resources/library/IMMZINDMeasles.json index 3f13191548..e6322da30b 100644 --- a/input/resources/library/IMMZINDMeasles.json +++ b/input/resources/library/IMMZINDMeasles.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZINDMeasles", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZINDMeasles", "name": "IMMZINDMeasles", "relatedArtifact": [ { "type": "depends-on", @@ -16,35 +16,35 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library IMMZCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommon" }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" }, { "type": "depends-on", "display": "Library IMMZCon", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConfig" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConfig" }, { "type": "depends-on", "display": "Library IMMZIndCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZIndicatorCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZIndicatorCommon" }, { "type": "depends-on", "display": "Library IMMZvl", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZVaccineLibrary" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZVaccineLibrary" }, { "type": "depends-on", "display": "Library FC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon" }, { "type": "depends-on", "display": "Library Measles", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZD2DTMeasles" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZD2DTMeasles" }, { "type": "depends-on", "display": "Code system Administrative Gender Codes", @@ -56,7 +56,7 @@ }, { "type": "depends-on", "display": "Value set MCV Vaccine", - "resource": "http://smart.who.int/ig/smart-immunizations/ValueSet/IMMZ.A1.DE9" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/ValueSet/IMMZ.Z.DE9" } ], "parameter": [ { "name": "Measurement Period", diff --git a/input/resources/library/IMMZIndicatorCommon.json b/input/resources/library/IMMZIndicatorCommon.json index 733c8e14d4..47c3ded465 100644 --- a/input/resources/library/IMMZIndicatorCommon.json +++ b/input/resources/library/IMMZIndicatorCommon.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/IMMZIndicatorCommon", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZIndicatorCommon", "name": "IMMZIndicatorCommon", "relatedArtifact": [ { "type": "depends-on", @@ -16,27 +16,27 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library FC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon" }, { "type": "depends-on", "display": "Library IMMZCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZCommon" }, { "type": "depends-on", "display": "Library IMMZc", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/IMMZConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/IMMZConcepts" }, { "type": "depends-on", "display": "Library WCom", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOCommon" }, { "type": "depends-on", "display": "Library WC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/WHOConcepts" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOConcepts" }, { "type": "depends-on", "display": "Code system ISO-8601-Derived Periods", diff --git a/input/resources/library/WHOCommon.json b/input/resources/library/WHOCommon.json index 9059ee4046..39e5426be3 100644 --- a/input/resources/library/WHOCommon.json +++ b/input/resources/library/WHOCommon.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/WHOCommon", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOCommon", "name": "WHOCommon", "relatedArtifact": [ { "type": "depends-on", @@ -16,11 +16,11 @@ }, { "type": "depends-on", "display": "Library FHIRHelpers", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRHelpers|4.0.1" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRHelpers|4.0.1" }, { "type": "depends-on", "display": "Library FC", - "resource": "http://smart.who.int/ig/smart-immunizations/Library/FHIRCommon" + "resource": "http://smart.who.int/ig/smart-immunizations-measles/Library/FHIRCommon" } ], "parameter": [ { "name": "Patient", diff --git a/input/resources/library/WHOConcepts.json b/input/resources/library/WHOConcepts.json index e3e8633269..4905e5228d 100644 --- a/input/resources/library/WHOConcepts.json +++ b/input/resources/library/WHOConcepts.json @@ -7,7 +7,7 @@ "reference": "Device/cqf-tooling" } } ], - "url": "http://smart.who.int/ig/smart-immunizations/Library/WHOConcepts", + "url": "http://smart.who.int/ig/smart-immunizations-measles/Library/WHOConcepts", "name": "WHOConcepts", "relatedArtifact": [ { "type": "depends-on", diff --git a/local-template/package/.index.db b/local-template/package/.index.db new file mode 100644 index 0000000000..acb32ab9ff Binary files /dev/null and b/local-template/package/.index.db differ diff --git a/local-template/package/.index.json b/local-template/package/.index.json new file mode 100644 index 0000000000..dbe759e52d --- /dev/null +++ b/local-template/package/.index.json @@ -0,0 +1,4 @@ +{ + "index-version" : 2, + "files" : [] +} diff --git a/local-template/package/includes/.index.db b/local-template/package/includes/.index.db new file mode 100644 index 0000000000..acb32ab9ff Binary files /dev/null and b/local-template/package/includes/.index.db differ diff --git a/local-template/package/includes/.index.json b/local-template/package/includes/.index.json new file mode 100644 index 0000000000..dbe759e52d --- /dev/null +++ b/local-template/package/includes/.index.json @@ -0,0 +1,4 @@ +{ + "index-version" : 2, + "files" : [] +} diff --git a/local-template/package/includes/fragment-functionalrequirements.liquid b/local-template/package/includes/fragment-functionalrequirements.liquid new file mode 100644 index 0000000000..72bed11eb5 --- /dev/null +++ b/local-template/package/includes/fragment-functionalrequirements.liquid @@ -0,0 +1,51 @@ +{% for data_file in site.data %} + {% assign content = data_file[1] %} + {% assign requirements_statement_found = false %} + {% assign requirements_extensions = nil %} + + + + {% if content.code.coding[0].code == "Requirements" %} + {% for ext in content.extension %} + {% if ext.url == "http://hl7.org/fhir/5.0/StructureDefinition/extension-Requirements.title" %} +

{{ext.valueString}}

+ {% endif %} +{% endfor %} + +
+ + + + + + + + + + {% for ext in content.extension %} + {% if ext.url == "http://hl7.org/fhir/5.0/StructureDefinition/extension-Requirements.statement" %} + + {% for statement in ext.extension %} + + + {% if statement.url == "http://hl7.org/fhir/5.0/StructureDefinition/extension-Requirements.statement.key" %} + + {% endif %} + + {% if statement.url == "http://hl7.org/fhir/5.0/StructureDefinition/extension-Requirements.statement.requirement" %} + + {% endif %} + + {% endfor %} + + {% endif %} +{% endfor %} + +
KeyRequirement
{{ statement.valueId }}{{ statement.valueMarkdown | markdownify}}
+
+
+ + + + {% endif %} +{% endfor %} diff --git a/testing/docker/logic/.gitignore b/testing/docker/logic/.gitignore new file mode 100644 index 0000000000..346fea6dc2 --- /dev/null +++ b/testing/docker/logic/.gitignore @@ -0,0 +1,2 @@ +app +nginx-content \ No newline at end of file diff --git a/testing/docker/logic/docker-compose.yml b/testing/docker/logic/docker-compose.yml index 31246320ad..2399092b4e 100644 --- a/testing/docker/logic/docker-compose.yml +++ b/testing/docker/logic/docker-compose.yml @@ -24,8 +24,17 @@ services: container_name: webserver ports: - ${static_server_port:-8087}:80 - command: /bin/sh -c "apk --no-cache add git && \ - cd /tmp && \ - git clone https://github.com/PATH-Global-Health/MERindicators.git && \ - cp -r /tmp/MERindicators/test/server/app/* /usr/share/nginx/html/ && \ - nginx -g 'daemon off;'" \ No newline at end of file + command: >- + /bin/sh -c " + apk --no-cache add git wget && \ + cd /usr/share/nginx/html/ && \ + wget -O resources.json $ig_url/package.db && \ + echo '{\"ig_url\": \"'$ig_url'\", \"server_url\": \"http://localhost:'$server_port'/fhir\"}' > config.json && \ + cd /tmp && \ + rm -rf smart-ig-starter-kit && \ + git clone https://github.com/WorldHealthOrganization/smart-ig-starter-kit.git && \ + cp -r /tmp/smart-ig-starter-kit/testing/cql-app/* /usr/share/nginx/html/ && \ + nginx -g 'daemon off;'" + + volumes: + - ./nginx-content:/usr/share/nginx/html \ No newline at end of file diff --git a/testing/docker/questionnaires/.env b/testing/docker/questionnaires/.env index 5da5aef907..a6cef24939 100644 --- a/testing/docker/questionnaires/.env +++ b/testing/docker/questionnaires/.env @@ -1,4 +1,4 @@ -ig_url=https://worldhealthorganization.github.io/smart-immunizations-measles/ +ig_url=https://worldhealthorganization.github.io/smart-immunizations-measles/branches/update-maps/ ig_code=smart-immunizations-measles ig_package_name=who.fhir.smart-immunizations-measles ig_version=0.1.0 diff --git a/testing/docker/questionnaires/.gitignore b/testing/docker/questionnaires/.gitignore new file mode 100644 index 0000000000..346fea6dc2 --- /dev/null +++ b/testing/docker/questionnaires/.gitignore @@ -0,0 +1,2 @@ +app +nginx-content \ No newline at end of file diff --git a/testing/docker/questionnaires/docker-compose.yml b/testing/docker/questionnaires/docker-compose.yml index d299a7b2ab..65a36bec7e 100644 --- a/testing/docker/questionnaires/docker-compose.yml +++ b/testing/docker/questionnaires/docker-compose.yml @@ -2,8 +2,6 @@ version: "3.9" services: fhir-server: - #image: alphora/cqf-ruler:latest - #image: costateixeira/hapi:test image: europe-west6-docker.pkg.dev/ahdis-ch/ahdis/matchbox:v3.4.4 restart: always @@ -22,7 +20,6 @@ services: - hapi.fhir.cors.allow_Credentials=true - hapi.fhir.cors.allowed_origin_patterns="http:localhost:*" - - hapi.fhir.implementationguides.fhir_r4_core.name=hl7.fhir.r4.core - hapi.fhir.implementationguides.fhir_r4_core.version=4.0.1 - hapi.fhir.implementationguides.fhir_r4_core.url=http://hl7.org/fhir/R4/hl7.fhir.r4.core.tgz @@ -36,20 +33,13 @@ services: - hapi.fhir.implementationguides.hl7_fhir_uv_sdc.version=3.0.0 - hapi.fhir.implementationguides.hl7_fhir_uv_sdc.url=http://hl7.org/fhir/uv/sdc/package.tgz - # - hapi.fhir.implementationguides.base.url=http://build.fhir.org/ig/WorldHealthOrganization/smart-base/package.tgz - # - hapi.fhir.implementationguides.base.name=who.fhir.smart-base - # - hapi.fhir.implementationguides.base.version=0.1.0 - - - # - hapi.fhir.implementationguides.${ig_name:-this}.url=${ig_url}/package.tgz - # - hapi.fhir.implementationguides.${ig_name:-this}.name=${ig_package_name} - # - hapi.fhir.implementationguides.${ig_name:-this}.version=${ig_version} web: image: nginx:alpine container_name: webserver volumes: - - ./app:/usr/share/nginx/html + - ./nginx-content:/usr/share/nginx/html + - ../../../output:/tmp/output ports: - ${static_server_port:-8087}:80 command: >- @@ -60,7 +50,7 @@ services: echo '{\"ig_url\": \"'$ig_url'\", \"server_url\": \"http://localhost:'$server_port'/fhir\"}' > config.json && \ cd /tmp && \ rm -rf fhirservers && \ - git clone https://github.com/DigitalSQR/fhirservers.git && \ - cp -r /tmp/fhirservers/matchbox/app/* /usr/share/nginx/html/ && \ - cp -r /tmp/fhirservers/matchbox/app/index2.html /usr/share/nginx/html/index.html && \ + git clone https://github.com/WorldHealthOrganization/smart-ig-starter-kit.git && \ + cp -r /tmp/smart-ig-starter-kit/testing/app/* /usr/share/nginx/html/ && \ + if [ -d /tmp/output ] ; then mkdir /usr/share/nginx/html/output/; cp -r /tmp/output/* /usr/share/nginx/html/output/; fi && \ nginx -g 'daemon off;'" \ No newline at end of file