From a0236d9aec764109a840344e61e154cc0f42be9e Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 17 Aug 2023 12:33:03 +0200 Subject: [PATCH] Initial commit --- .github/workflows/main.yml | 23 ++ .gitignore | 23 ++ LICENSE | 121 ++++++++++ README.md | 19 ++ _gencontinuous.bat | 2 + _gencontinuous.sh | 2 + _genonce.bat | 27 +++ _genonce.sh | 28 +++ _updatePublisher.bat | 219 ++++++++++++++++++ _updatePublisher.sh | 133 +++++++++++ ig.ini | 53 +++++ input/cql/.gitignore | 1 + input/examples/.gitignore | 1 + input/extensions/.gitignore | 1 + input/fsh/.gitignore | 1 + input/fsh/examples.fsh | 0 input/fsh/models.fsh | 0 input/fsh/profiles.fsh | 0 input/fsh/terminology.fsh | 0 input/history/.gitignore | 1 + input/ignoreWarnings.txt | 5 + input/images-source/.gitignore | 1 + input/images/.gitignore | 1 + input/includes/menu.xml | 30 +++ input/models/.gitignore | 1 + input/myig.xml | 110 +++++++++ input/pagecontent/changes.xml | 12 + input/pagecontent/index.xml | 38 +++ input/profiles/.gitignore | 1 + input/resources/.gitignore | 1 + input/scenarios/.gitignore | 1 + input/testing/.gitignore | 1 + input/vocabulary/.gitignore | 1 + .../package/content/assets/css/colors.css | 44 ++++ .../includes/_append.fragment-css.html | 2 + local-template/package/package.json | 12 + sushi-config.yaml | 187 +++++++++++++++ 37 files changed, 1103 insertions(+) create mode 100644 .github/workflows/main.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 _gencontinuous.bat create mode 100644 _gencontinuous.sh create mode 100644 _genonce.bat create mode 100755 _genonce.sh create mode 100644 _updatePublisher.bat create mode 100755 _updatePublisher.sh create mode 100644 ig.ini create mode 100644 input/cql/.gitignore create mode 100644 input/examples/.gitignore create mode 100644 input/extensions/.gitignore create mode 100644 input/fsh/.gitignore create mode 100644 input/fsh/examples.fsh create mode 100644 input/fsh/models.fsh create mode 100644 input/fsh/profiles.fsh create mode 100644 input/fsh/terminology.fsh create mode 100644 input/history/.gitignore create mode 100644 input/ignoreWarnings.txt create mode 100644 input/images-source/.gitignore create mode 100644 input/images/.gitignore create mode 100644 input/includes/menu.xml create mode 100644 input/models/.gitignore create mode 100644 input/myig.xml create mode 100644 input/pagecontent/changes.xml create mode 100644 input/pagecontent/index.xml create mode 100644 input/profiles/.gitignore create mode 100644 input/resources/.gitignore create mode 100644 input/scenarios/.gitignore create mode 100644 input/testing/.gitignore create mode 100644 input/vocabulary/.gitignore create mode 100644 local-template/package/content/assets/css/colors.css create mode 100644 local-template/package/includes/_append.fragment-css.html create mode 100644 local-template/package/package.json create mode 100644 sushi-config.yaml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..6d25f2c --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,23 @@ +# This workflow reuses the openHIE GitHub action for building IGs +# Initial idea by Carl Leitner, developed by Elliot Silver, available from: https://www.argentixinfo.com/archives/156 +# Change log: +# v0.1.0 +# 2021-06-18: publish default branches to / , other branches branches/ +# 2021-11-26: reusable workflow + +name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events for any main branch + push: + branches-ignore: + - 'gh-pages' + pull_request: + + workflow_dispatch: + +jobs: + # This workflow contains a single job called "build" + call_build: + uses: openhie/empty-fhir-ig/.github/workflows/main.yml@master diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..35733f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# Temporary folders # +##################### +temp +template +output +fsh-generated + +# Don't commit this because it's so large # +########################################### +/input-cache + +# Windows generated files # +########################### +Thumbs.db + +# OS generated files # +###################### +.DS_Store +.DS_Store? + +# backup files # +################ +*.bak diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/README.md b/README.md new file mode 100644 index 0000000..76c001f --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +Empty IG +--- +This is an empty IG +

+### +### Publication +This ImplementationGuide is published in the following locations: + +Continuous Build: __http://build.fhir.org/ig/openhie/fhir-ig-empty/branches/main/index.html__ +Canonical / permanent URL: +

+ +### Issues +Issues and change requests are managed here: + +Issues: __https://github.com/openhie/fhir-ig-empty/issues__ +Kanban board: __https://github.com/openhie/fhir-ig-empty/projects/1__ + +--- diff --git a/_gencontinuous.bat b/_gencontinuous.bat new file mode 100644 index 0000000..ca2867a --- /dev/null +++ b/_gencontinuous.bat @@ -0,0 +1,2 @@ +@ECHO OFF +CALL ./_genonce.bat -watch \ No newline at end of file diff --git a/_gencontinuous.sh b/_gencontinuous.sh new file mode 100644 index 0000000..b9ac593 --- /dev/null +++ b/_gencontinuous.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./_genonce.sh -watch diff --git a/_genonce.bat b/_genonce.bat new file mode 100644 index 0000000..a9864ef --- /dev/null +++ b/_genonce.bat @@ -0,0 +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 diff --git a/_genonce.sh b/_genonce.sh new file mode 100755 index 0000000..38efcb4 --- /dev/null +++ b/_genonce.sh @@ -0,0 +1,28 @@ +#!/bin/bash +publisher_jar=publisher.jar +input_cache_path=./input-cache/ +echo Checking internet connection... +curl -sSf tx.fhir.org > /dev/null + +if [ $? -eq 0 ]; then + echo "Online" + txoption="" +else + echo "Offline" + txoption="-tx n/a" +fi + +echo "$txoption" + +publisher=$input_cache_path/$publisher_jar +if test -f "$publisher"; then + java -jar $publisher -ig . $txoption $* + +else + publisher=../$publisher_jar + if test -f "$publisher"; then + java -jar $publisher -ig . $txoption $* + else + echo IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting... + fi +fi diff --git a/_updatePublisher.bat b/_updatePublisher.bat new file mode 100644 index 0000000..c892476 --- /dev/null +++ b/_updatePublisher.bat @@ -0,0 +1,219 @@ +@ECHO OFF + +SETLOCAL + +SET dlurl=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar +SET publisher_jar=publisher.jar +SET input_cache_path=%CD%\input-cache\ +SET skipPrompts=false + +SET scriptdlroot=https://raw.githubusercontent.com/HL7/ig-publisher-scripts/main +SET update_bat_url=%scriptdlroot%/_updatePublisher.bat +SET gen_bat_url=%scriptdlroot%/_genonce.bat +SET gencont_bat_url=%scriptdlroot%/_gencontinuous.bat +SET gencont_sh_url=%scriptdlroot%/_gencontinuous.sh +SET gen_sh_url=%scriptdlroot%/_genonce.sh +SET update_sh_url=%scriptdlroot%/_updatePublisher.sh + +IF "%~1"=="/f" SET skipPrompts=y + + +ECHO. +ECHO Checking internet connection... +PING tx.fhir.org -4 -n 1 -w 1000 | FINDSTR TTL && GOTO isonline +ECHO We're offline, nothing to do... +GOTO end + +:isonline +ECHO We're online + + +:processflags +SET ARG=%1 +IF DEFINED ARG ( + IF "%ARG%"=="-f" SET FORCE=true + IF "%ARG%"=="--force" SET FORCE=true + SHIFT + GOTO processflags +) + +FOR %%x IN ("%CD%") DO SET upper_path=%%~dpx + +ECHO. +IF NOT EXIST "%input_cache_path%%publisher_jar%" ( + IF NOT EXIST "%upper_path%%publisher_jar%" ( + SET jarlocation="%input_cache_path%%publisher_jar%" + SET jarlocationname=Input Cache + ECHO IG Publisher is not yet in input-cache or parent folder. + REM we don't use jarlocation below because it will be empty because we're in a bracketed if statement + GOTO create + ) ELSE ( + ECHO IG Publisher FOUND in parent folder + SET jarlocation="%upper_path%%publisher_jar%" + SET jarlocationname=Parent folder + GOTO upgrade + ) +) ELSE ( + ECHO IG Publisher FOUND in input-cache + SET jarlocation="%input_cache_path%%publisher_jar%" + SET jarlocationname=Input Cache + GOTO upgrade +) + +:create +IF DEFINED FORCE ( + MKDIR "%input_cache_path%" 2> NUL + GOTO download +) + +IF "%skipPrompts%"=="y" ( + SET create=Y +) ELSE ( + SET /p create="Ok? (Y/N) " +) +IF /I "%create%"=="Y" ( + ECHO Will place publisher jar here: %input_cache_path%%publisher_jar% + MKDIR "%input_cache_path%" 2> NUL + GOTO download +) +GOTO done + +:upgrade +IF "%skipPrompts%"=="y" ( + SET overwrite=Y +) ELSE ( + SET /p overwrite="Overwrite %jarlocation%? (Y/N) " +) + +IF /I "%overwrite%"=="Y" ( + GOTO download +) +GOTO done + +:download +ECHO Downloading most recent publisher to %jarlocationname% - it's ~100 MB, so this may take a bit + +FOR /f "tokens=4-5 delims=. " %%i IN ('ver') DO SET VERSION=%%i.%%j +IF "%version%" == "10.0" GOTO win10 +IF "%version%" == "6.3" GOTO win8.1 +IF "%version%" == "6.2" GOTO win8 +IF "%version%" == "6.1" GOTO win7 +IF "%version%" == "6.0" GOTO vista + +ECHO Unrecognized version: %version% +GOTO done + +:win10 +CALL POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%dlurl%\",\"%jarlocation%\") } else { Invoke-WebRequest -Uri "%dlurl%" -Outfile "%jarlocation%" } + +GOTO done + +:win7 +rem this may be triggering the antivirus - bitsadmin.exe is a known threat +rem CALL bitsadmin /transfer GetPublisher /download /priority normal "%dlurl%" "%jarlocation%" + +rem this didn't work in win 10 +rem CALL Start-BitsTransfer /priority normal "%dlurl%" "%jarlocation%" + +rem this should work - untested +call (New-Object Net.WebClient).DownloadFile('%dlurl%', '%jarlocation%') +GOTO done + +:win8.1 +:win8 +:vista +GOTO done + + + +:done + + + + +ECHO. +ECHO Updating scripts +IF "%skipPrompts%"=="y" ( + SET updateScripts=Y +) ELSE ( + SET /p updateScripts="Update scripts? (Y/N) " +) +IF /I "%updateScripts%"=="Y" ( + GOTO scripts +) +GOTO end + + +:scripts + +REM Download all batch files (and this one with a new name) + +SETLOCAL DisableDelayedExpansion + + + +:dl_script_1 +ECHO Updating _updatePublisher.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%update_sh_url%\",\"_updatePublisher.new.sh\") } else { Invoke-WebRequest -Uri "%update_sh_url%" -Outfile "_updatePublisher.new.sh" } +if %ERRORLEVEL% == 0 goto upd_script_1 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_2 +:upd_script_1 +start copy /y "_updatePublisher.new.sh" "_updatePublisher.sh" ^&^& del "_updatePublisher.new.sh" ^&^& exit + + +:dl_script_2 +ECHO Updating _genonce.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gen_bat_url%\",\"_genonce.new.bat\") } else { Invoke-WebRequest -Uri "%gen_bat_url%" -Outfile "_genonce.bat" } +if %ERRORLEVEL% == 0 goto upd_script_2 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_3 +:upd_script_2 +start copy /y "_genonce.new.bat" "_genonce.bat" ^&^& del "_genonce.new.bat" ^&^& exit + +:dl_script_3 +ECHO Updating _gencontinuous.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gencont_bat_url%\",\"_gencontinuous.new.bat\") } else { Invoke-WebRequest -Uri "%gencont_bat_url%" -Outfile "_gencontinuous.bat" } +if %ERRORLEVEL% == 0 goto upd_script_3 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_4 +:upd_script_3 +start copy /y "_gencontinuous.new.bat" "_gencontinuous.bat" ^&^& del "_gencontinuous.new.bat" ^&^& exit + + +:dl_script_4 +ECHO Updating _genonce.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gen_sh_url%\",\"_genonce.new.sh\") } else { Invoke-WebRequest -Uri "%gen_sh_url%" -Outfile "_genonce.sh" } +if %ERRORLEVEL% == 0 goto upd_script_4 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_5 +:upd_script_4 +start copy /y "_genonce.new.sh" "_genonce.sh" ^&^& del "_genonce.new.sh" ^&^& exit + +:dl_script_5 +ECHO Updating _gencontinuous.sh +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%gencont_sh_url%\",\"_gencontinuous.new.sh\") } else { Invoke-WebRequest -Uri "%gencont_sh_url%" -Outfile "_gencontinuous.sh" } +if %ERRORLEVEL% == 0 goto upd_script_5 +echo "Errors encountered during download: %errorlevel%" +goto dl_script_6 +:upd_script_5 +start copy /y "_gencontinuous.new.sh" "_gencontinuous.sh" ^&^& del "_gencontinuous.new.sh" ^&^& exit + + + +:dl_script_6 +ECHO Updating _updatePublisher.bat +call POWERSHELL -command if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile(\"%update_bat_url%\",\"_updatePublisher.new.bat\") } else { Invoke-WebRequest -Uri "%update_bat_url%" -Outfile "_updatePublisher.new.bat" } +if %ERRORLEVEL% == 0 goto upd_script_6 +echo "Errors encountered during download: %errorlevel%" +goto end +:upd_script_6 +start copy /y "_updatePublisher.new.bat" "_updatePublisher.bat" ^&^& del "_updatePublisher.new.bat" ^&^& exit + + +:end + + +IF "%skipPrompts%"=="true" ( + PAUSE +} \ No newline at end of file diff --git a/_updatePublisher.sh b/_updatePublisher.sh new file mode 100755 index 0000000..e28128b --- /dev/null +++ b/_updatePublisher.sh @@ -0,0 +1,133 @@ +#!/bin/bash +pubsource=https://github.com/HL7/fhir-ig-publisher/releases/latest/download/ +publisher_jar=publisher.jar +dlurl=$pubsource$publisher_jar + +input_cache_path=$PWD/input-cache/ + +scriptdlroot=https://raw.githubusercontent.com/HL7/ig-publisher-scripts/main +update_bat_url=$scriptdlroot/_updatePublisher.bat +gen_bat_url=$scriptdlroot/_genonce.bat +gencont_bat_url=$scriptdlroot/_gencontinuous.bat +gencont_sh_url=$scriptdlroot/_gencontinuous.sh +gen_sh_url=$scriptdlroot/_genonce.sh +update_sh_url=$scriptdlroot/_updatePublisher.sh + +skipPrompts=false +FORCE=false + +if ! type "curl" > /dev/null; then + echo "ERROR: Script needs curl to download latest IG Publisher. Please install curl." + exit 1 +fi + +while [ "$#" -gt 0 ]; do + case $1 in + -f|--force) FORCE=true ;; + -y|--yes) skipPrompts=true ; FORCE=true ;; + *) echo "Unknown parameter passed: $1. Exiting"; exit 1 ;; + esac + shift +done + +echo "Checking internet connection" +case "$OSTYPE" in + linux-gnu* ) ping tx.fhir.org -4 -c 1 -w 1000 >/dev/null ;; + darwin* ) ping tx.fhir.org -c 1 >/dev/null ;; + *) echo "unknown: $OSTYPE"; exit 1 ;; +esac + +if [ $? -ne 0 ] ; then + echo "Offline (or the terminology server is down), unable to update. Exiting" + exit 1 +fi + +if [ ! -d "$input_cache_path" ] ; then + if [ $FORCE != true ]; then + echo "$input_cache_path does not exist" + message="create it?" + read -r -p "$message" response + else + response=y + fi +fi + +if [[ $response =~ ^[yY].*$ ]] ; then + mkdir ./input-cache +fi + +publisher="$input_cache_path$publisher_jar" + +if test -f "$publisher" ; then + echo "IG Publisher FOUND in input-cache" + jarlocation="$publisher" + jarlocationname="Input Cache" + upgrade=true +else + publisher="../$publisher_jar" + upgrade=true + if test -f "$publisher"; then + echo "IG Publisher FOUND in parent folder" + jarlocation="$publisher" + jarlocationname="Parent Folder" + upgrade=true + else + echo "IG Publisher NOT FOUND in input-cache or parent folder" + jarlocation=$input_cache_path$publisher_jar + jarlocationname="Input Cache" + upgrade=false + fi +fi + +if [[ $skipPrompts == false ]]; then + + if [[ $upgrade == true ]]; then + message="Overwrite $jarlocation? (Y/N) " + else + echo Will place publisher jar here: "$jarlocation" + message="Ok (enter 'y' or 'Y' to continue, any other key to cancel)?" + fi + read -r -p "$message" response +else + response=y +fi +if [[ $skipPrompts == true ]] || [[ $response =~ ^[yY].*$ ]]; then + + echo "Downloading most recent publisher to $jarlocationname - it's ~100 MB, so this may take a bit" + curl -L $dlurl -o "$jarlocation" --create-dirs +else + echo cancelled publisher update +fi + +if [[ $skipPrompts != true ]]; then + message="Update scripts? (enter 'y' or 'Y' to continue, any other key to cancel)?" + read -r -p "$message" response + fi + +if [[ $skipPrompts == true ]] || [[ $response =~ ^[yY].*$ ]]; then + echo "Downloading most recent scripts " + + curl -L $update_bat_url -o /tmp/_updatePublisher.new + cp /tmp/_updatePublisher.new _updatePublisher.bat + rm /tmp/_updatePublisher.new + + curl -L $gen_bat_url -o /tmp/_genonce.new + cp /tmp/_genonce.new _genonce.bat + rm /tmp/_genonce.new + + curl -L $gencont_bat_url -o /tmp/_gencontinuous.new + cp /tmp/_gencontinuous.new _gencontinuous.bat + rm /tmp/_gencontinuous.new + + curl -L $gencont_sh_url -o /tmp/_gencontinuous.new + cp /tmp/_gencontinuous.new _gencontinuous.sh + rm /tmp/_gencontinuous.new + + curl -L $gen_sh_url -o /tmp/_genonce.new + cp /tmp/_genonce.new _genonce.sh + rm /tmp/_genonce.new + + curl -L $update_sh_url -o /tmp/_updatePublisher.new + cp /tmp/_updatePublisher.new _updatePublisher.sh + rm /tmp/_updatePublisher.new +fi diff --git a/ig.ini b/ig.ini new file mode 100644 index 0000000..9d95930 --- /dev/null +++ b/ig.ini @@ -0,0 +1,53 @@ +[IG] +# ini file for the Implementation Guide publisher +# see comments below for instructions + +ig = fsh-generated/resources/ImplementationGuide-my-ig.json +#template = openhie.fhir.template#current +template = #local-template + + + + +########################## +### ig.ini parameters: ### +########################## + +# ig: the name of the implementation guide resource file. +examples: +# ig = input/myig.xml +# ig = input/implementationguide-example2.xml + +# For sushi-generated IG (via sushi.config.yaml): +# ig = fsh-generated/resources/myig.json + +# template: the IG template that will be used to create the implementation guide (normally be a package name, but can be a local folder). +# base fhir template: +#template = fhir.base.template#current + +# HL7 (non-FHIR) IG template: +#template = hl7.base.template#current + +# HL7 FHIR template: +#template = hl7.fhir.template#current + +# it's possible to specify a specific version of the template +#template = fhir.base.template#0.1.0 +# or the current version: +#template = fhir.base.template#current +# if no version is specified, the publisher will take the #current version + +# local templates can be used by prefixing a relative path with # : +#template = #mylocaltemplate +#template = #..\templates\mytesttemplate1 + +# local templates can also use absolute paths: +#template = #C:\MyWork\ImplementationGuides\mytemplates\mytesttemplate1 + + +# other parameters are defined in the ImplementationGuide resource: +# https://confluence.hl7.org/display/FHIR/Implementation+Guide+Parameters + +# for more documentation on implementation guides and templates, see the FHIR Guidance ImplementationGuide +# http://build.fhir.org/ig/FHIR/ig-guidance + diff --git a/input/cql/.gitignore b/input/cql/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/cql/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/examples/.gitignore b/input/examples/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/examples/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/extensions/.gitignore b/input/extensions/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/extensions/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/fsh/.gitignore b/input/fsh/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/fsh/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh new file mode 100644 index 0000000..e69de29 diff --git a/input/fsh/models.fsh b/input/fsh/models.fsh new file mode 100644 index 0000000..e69de29 diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh new file mode 100644 index 0000000..e69de29 diff --git a/input/fsh/terminology.fsh b/input/fsh/terminology.fsh new file mode 100644 index 0000000..e69de29 diff --git a/input/history/.gitignore b/input/history/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/history/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/ignoreWarnings.txt b/input/ignoreWarnings.txt new file mode 100644 index 0000000..d03142b --- /dev/null +++ b/input/ignoreWarnings.txt @@ -0,0 +1,5 @@ +== Suppressed Messages == + +# Add warning and/or information messages here after you've confirmed that they aren't really a problem +# (And include comments like this justifying why) +# See https://github.com/FHIR/sample-ig/blob/master/input/ignoreWarnings.txt for examples \ No newline at end of file diff --git a/input/images-source/.gitignore b/input/images-source/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/images-source/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/images/.gitignore b/input/images/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/images/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/includes/menu.xml b/input/includes/menu.xml new file mode 100644 index 0000000..fde3ca2 --- /dev/null +++ b/input/includes/menu.xml @@ -0,0 +1,30 @@ + \ No newline at end of file diff --git a/input/models/.gitignore b/input/models/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/models/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/myig.xml b/input/myig.xml new file mode 100644 index 0000000..6070ab7 --- /dev/null +++ b/input/myig.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + <status value="draft"/> + <experimental value="false"/> + <publisher value="xxxYour Work Group"/> + <contact> + <telecom> + <!-- Or whatever URL and/or email address(es) are appropriate --> + <system value="url"/> + <value value="http://xxhl7.org/Special/committees/[something]"/> + </telecom> + </contact> + <description value="xxxA brief description of what this IG is about "/> + <jurisdiction> + <!-- This will drive SNOMED release used --> + <coding> + <!-- This is the code for universal --> + <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> + <code value="001"/> + <!-- Change to this if the IG is country-specific + <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> + <code value="001"/> + --> + </coding> + </jurisdiction> + <packageId value="xxexample.fhir.uv.myig"/> + <!-- This should be changed to 'not-open-source' or another license if appropriate for non-HL7-published content --> + <license value="CC0-1.0"/> + <!-- This is whatever FHIR version(s) the IG artifacts are targeting (not the version of this file, which should always be 'current release') --> + <fhirVersion value="4.0.1"/> + <definition> + <!-- You don't need to define any groupings. The IGPublisher will define them for you. You only need to do so if your IG is 'special' and it's + inappropriate to use the defaults. Feel free to provide feedback about the defaults... --> + <page> + <!-- The root will always be toc.html - the template will force it if you don't do it --> + <nameUrl value="toc.html"/> + <title value="Table of Contents"/> + <generation value="html"/> + <page> + <nameUrl value="index.html"/> + <title value="MyIG Home Page"/> + <generation value="html"/> + </page> + <!-- change history page --> + <page> + <nameUrl value="changes.html"/> + <title value="IG Change History"/> + <generation value="html"/> + </page> + </page> + <!-- copyright year is a mandatory parameter --> + <parameter> + <code value="copyrightyear"/> + <value value="2019+"/> + </parameter> + <!-- releaselabel should be the ballot status for HL7-published IGs. --> + <parameter> + <code value="releaselabel"/> + <value value="CI Build"/> + </parameter> + <parameter> + <code value="find-other-resources"/> + <value value="true"/> + </parameter> + <parameter> + <code value="path-resource"/> + <value value="input\history"/> + </parameter> + <parameter> + <code value="path-resource"/> + <value value="input\scenarios"/> + </parameter> + <parameter> + <code value="path-binary"/> + <value value="input\cql"/> + </parameter> + <parameter> + <code value="path-liquid"/> + <value value="templates\liquid"/> + </parameter> +<!-- Uncomment one or more of these if you want to limit which syntaxes are supported or want to disable the display of mappings + <parameter> + <code value="excludexml"/> + <value value="true"/> + </parameter> + <parameter> + <code value="excludejson"/> + <value value="true"/> + </parameter> + <parameter> + <code value="excludettl"/> + <value value="true"/> + </parameter> + <parameter> + <code value="excludemap"/> + <value value="true"/> + </parameter>--> + </definition> +</ImplementationGuide> diff --git a/input/pagecontent/changes.xml b/input/pagecontent/changes.xml new file mode 100644 index 0000000..99f6462 --- /dev/null +++ b/input/pagecontent/changes.xml @@ -0,0 +1,12 @@ +<div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas/R5/fhir-single.xsd"> + <p> + This provides a list of changes to the MyIG specification since its initial release + </p> + <a name="0.1.0"> </a> + <p> + <b>2099-01-01 v0.1.0 - My IG R1 (STU ballot 1) Ballot Candidate</b> based on FHIR R4 + </p> + <ul> + <li>Initial version</li> + </ul> +</div> diff --git a/input/pagecontent/index.xml b/input/pagecontent/index.xml new file mode 100644 index 0000000..cb410a2 --- /dev/null +++ b/input/pagecontent/index.xml @@ -0,0 +1,38 @@ +<div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../src-generated/schemas/fhir-single.xsd" lang="en"> + <a name="scope"> </a> + <p> + This is our FHIR Implementation Guide. It contains the specifications developed by our community. + </p> + <blockquote class="stu-note"> + <strong>This documentation and set of artefacts are still undergoing development.</strong> + This content is only for demonstrative purposes. + </blockquote> + <p> </p> + <h3>Content</h3> <a name="content"> </a> + <p/> + +<p>This publication contains the full set of specifications...</p> +<p></p> +<p>There is also an overview of the projects and motivation for the specifications.</p> +<p></p> + +<a name="navigation"> </a> +<p>The top menu allows quick navigation to the different sections, and a <a href="toc.html">Table of Contents</a> is provided with the entire content of this Implementation Guide. (Be aware that some pages have multiple tabs).</p> +<p></p> + <a name="ip"> </a> + <h3>Intellectual Property Considerations</h3> + <p> + While this implementation guide and the underlying FHIR are licensed as public domain, this guide includes examples making use of terminologies such + as LOINC, SNOMED CT and others which have more restrictive licensing requirements. Implementers should make themselves familiar with licensing and + any other constraints of terminologies, questionnaires, and other components used as part of their implementation process. In some cases, + licensing requirements may limit the systems that data captured using certain questionnaires may be shared with. + </p> + + <a name="disclaimer"> </a> + <h3>Disclaimer</h3> + <p> + The specification herewith documented is a demo working specification, and may not be used for any implementation purposes. + This draft is provided without warranty of completeness or consistency, and the official publication supersedes this draft. + No liability can be inferred from the use or misuse of this specification, or its consequences. + </p> +</div> \ No newline at end of file diff --git a/input/profiles/.gitignore b/input/profiles/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/profiles/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/resources/.gitignore b/input/resources/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/resources/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/scenarios/.gitignore b/input/scenarios/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/scenarios/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/testing/.gitignore b/input/testing/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/testing/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/input/vocabulary/.gitignore b/input/vocabulary/.gitignore new file mode 100644 index 0000000..2c0d4a3 --- /dev/null +++ b/input/vocabulary/.gitignore @@ -0,0 +1 @@ +Empty file to keep the folder structure \ No newline at end of file diff --git a/local-template/package/content/assets/css/colors.css b/local-template/package/content/assets/css/colors.css new file mode 100644 index 0000000..1b11e73 --- /dev/null +++ b/local-template/package/content/assets/css/colors.css @@ -0,0 +1,44 @@ +:root { + + /* see http://build.fhir.org/ig/FHIR/ig-guidance/colors.html */ + + --ig-status-text-color: #333333; /* 1. IG Title and status text color */ + --navbar-bg-color: #1f4d2e; /* 2. Header container color */ + --footer-container-bg-color: #1f4d2e; /* 4. Footer container color */ + --stripe-bg-color: #668877; /* 5. Header strip color */ + + --btn-hover-color: #33804a; /* 6. Menu button hover color */ + --btn-active-color: #43a862; /* 7. Menu button active color */ + --btn-text-color: #e6e6e6; /* 8. Menu button text color */ + --btn-gradient-start-color: #33aa77; /* 9. Menu item gradient start color */ + --btn-gradient-end-color: #209966; /* 10. Menu item gradient end color */ + --btn-gradient-start-color-alpha: #ff33aa77; /* 11. Menu item gradient start color (with alpha) */ + --btn-gradient-end-color-alpha: #ff209966; /* 12. Menu item gradient end color (with alpha) */ + --link-color: #24d160; /* 13. Hyperlink text color */ + --link-hover-color: #109030; /* 14. Hyperlink text hover color */ + + --publish-box-bg-color: yellow; /* 15. Publish box background color */ + --publish-box-border: 1px solid green; /* 16. Publish box border definition */ + + --toc-box-bg-color: #ffeb7e; /* 17. TOC box background color */ + --toc-box-border: 1px solid green; /* 18. TOC box border definition */ + + --stu-note-background-color: #fff2ff; /* 19. (STU) Note box background color */ + --stu-note-border-left-color: #ff6020; /* 20. (STU) Note box border color */ + + --ig-header-color: #f5f5f5; /* 21. Header color (sides) */ + --ig-header-container-color: #ffffff; /* 22. Header container color (center) */ + --footer-nav-bg-color: #f5f5f5; /* 23. Footer navigation background color*/ + + --footer-bg-color: #666e68; /* 3. Footer background color*/ + --footer-text-color: #ffffff; /* 24. Footer highlight font color */ + --footer-hyperlink-text-color: #81BEF7; /* 25. Footer hyperlinks font color */ + --footer-highlight-text-color: #ffff77; /* 26. Footer highlight font color */ + + --breadcrumb-bg-color: #f5f5f5; /* 27. Breadcrumb font color */ + --breadcrumb-text-color: ##555555; /* 28. Breadcrumb font color */ + + --dragon-background-color: #fffbf7; /* 29. Dragon background color */ + --dragon-text-color: #101020; /* 30. Dragon font color */ + +} \ No newline at end of file diff --git a/local-template/package/includes/_append.fragment-css.html b/local-template/package/includes/_append.fragment-css.html new file mode 100644 index 0000000..9ae66e4 --- /dev/null +++ b/local-template/package/includes/_append.fragment-css.html @@ -0,0 +1,2 @@ +<!-- Placeholder for child template CSS declarations --> +<link href="{{site.data.info.assets}}assets/css/colors.css" rel="stylesheet"/> \ No newline at end of file diff --git a/local-template/package/package.json b/local-template/package/package.json new file mode 100644 index 0000000..f3a3b74 --- /dev/null +++ b/local-template/package/package.json @@ -0,0 +1,12 @@ +{ + "name": "myorg.fhir.mytemplate", + "version": "0.0.1", + "type": "fhir.template", + "license": "CC0-1.0", + "description": "Local template extension for FHIR IG", + "author": "http://hl7belgium.org", + "base": "openhie.fhir.template", + "dependencies": { + "openhie.fhir.template": "current" + } + } \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml new file mode 100644 index 0000000..a0f3edf --- /dev/null +++ b/sushi-config.yaml @@ -0,0 +1,187 @@ +# ╭─────────────────────────────────ImplementationGuide-fish.json──────────────────────────────────╮ +# │ The properties below are used to create the ImplementationGuide resource. │ +# │ For a list of supported properties, see: │ +# │ https://fshschool.org/docs/sushi/configuration/#full-configuration │ +# │ SUSHI will use id as both id and packageId in the IG unless a │ +# │ specific packageId is also provided in this file. │ +# ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ + + +id: my-ig +canonical: http://example.com/fhir/example +url: http://example.com/fhir/example +name: ExampleIG +title: "HL7 FHIR Implementation Guide: Example IG Release 1 - US Realm | STU1" +description: Example IG exercises many of the fields in a SUSHI configuration. +status: active +license: CC0-1.0 +date: 2020-02-26 +version: 1.0.0 + +# Although fhirVersions is 0..* in the ImplementationGuide resource +# it can be a single item OR and array here, but the current tooling +# only supports one FHIR version per Implementation Guide +fhirVersion: 4.0.1 + +# The following two lines correspond to items that used to be in +# ig.ini but were moved to IG.definition.parameter. For +# consistency within this file, the names are represented using +# camelcase, but if authors use the formal parameter names, SUSHI +# will recognize them as well. In either case, they'll be copied +# to the IG JSON using the formal names. +copyrightYear: 2021+ +releaseLabel: STU1 + +# The publisher can be a single item or a list, each with a name and +# optional url and/or email. The first publisher's name will be used +# as IG.publisher. The contact details and/or additional publishers +# will be translated into IG.contact values. +publisher: + name: My Organization + url: http://example.com/committees + email: my-group@example.com + +# ContactDetail is required by the template. +contact: + - name: Bob Smith + telecom: + - system: email + value: bobsmith@example.com + use: work + +# The jurisdiction can be a single item or a list. The FHIR Shorthand +# code syntax can be used here. + +#jurisdiction: urn:iso:std:iso:3166#US "United States of America" +jurisdiction: http://unstats.un.org/unsd/methods/m49/m49.htm#001 "World" + + +# The dependencies property corresponds to IG.dependsOn. The key is the +# package id and the value is the version (or dev/current). For advanced +# use cases, the value can be an object with keys for `uri` and `version`. +#dependencies: +# hl7.fhir.us.core: 3.1.0 +# hl7.fhir.us.mcode: +# id: mcode +# uri: http://hl7.org/fhir/us/mcode/ImplementationGuide/hl7.fhir.us.mcode +# version: 1.0.0 + +# The global property corresponds to the IG.global property, but it +# uses the type as the YAML key and the profile as its value. Since +# FHIR does not explicitly disallow more than one profile per type, +# neither do we; the value can be a single profile URL or an array +# of profile URLs. +#global: +# Patient: http://example.org/fhir/StructureDefinition/my-patient-profile +# Encounter: http://example.org/fhir/StructureDefinition/my-encounter-profile + +# The resources property corresponds to IG.definition.resource. +# SUSHI can auto-generate all of the resource entries based on +# the FSH definitions and/or information in any user-provided +# JSON or XML resource files. If the generated entries are not +# sufficient or complete, however, the author can add entries +# here. If the reference matches a generated entry, it will +# replace the generated entry. If it doesn't match any generated +# entries, it will be added to the generated entries. The format +# follows IG.definition.resource with the following differences: +# * use IG.definition.resource.reference.reference as the YAML key +# * specify "omit" to omit a FSH-generated resource from the +# resource list. +# * groupingId can be used, but top-level groups syntax may be a +# better option (see below). +# The following are simple examples to demonstrate what this might +# look like: +#resources: +# Patient/my-example-patient: +# name: My Example Patient +# description: An example Patient +# exampleBoolean: true +# Patient/bad-example: omit + +# Groups can control certain aspects of the IG generation. The IG +# documentation recommends that authors use the default groups that +# are provided by the templating framework, but if authors want to +# use their own instead, they can use the mechanism below. This will +# create IG.definition.grouping entries and associate the individual +# resource entries with the corresponding groupIds. +#groups: +# GroupA: +# name: Group A +# description: The Alpha Group +# resources: +# - StructureDefinition/animal-patient +# - StructureDefinition/arm-procedure +# GroupB: +# name: Group B +# description: The Beta Group +# resources: +# - StructureDefinition/bark-control +# - StructureDefinition/bee-sting + +# The pages property corresponds to IG.definition.page. SUSHI can +# auto-generate the page list, but if the author includes pages in +# this file, it is assumed that the author will fully manage the +# pages section and SUSHI will not generate any page entries. +# The page file name is used as the key. If title is not provided, +# then the title will be generated from the file name. If a +# generation value is not provided, it will be inferred from the +# file name extension. Any subproperties that are valid filenames +# with supported extensions (e.g., .md/.xml) will be treated as +# sub-pages. +#pages: +# index.md: +# title: Example Home +# implementation.xml: +# examples.xml: +# title: Examples Overview +# simpleExamples.xml: +# complexExamples.xml: + +# The ImplementationGuide resource defines several other properties +# not represented above. These properties can be used as-is and +# should follow the format defined in ImplementationGuide: +# * meta +# * implicitRules +# * language +# * text +# * contained +# * extension +# * modifierExtension +# * experimental +# * useContext +# * copyright +# * packageId + +# The menu property will be used to generate the input/menu.xml file. +# The menu is represented as a simple structure where the YAML key +# is the menu item name and the value is the URL. The IG publisher +# currently only supports one level deep on sub-menus. +# To provide a custom menu.xml file, do not include this property and +# include a `menu.xml` file in input/includes. +#menu: +# Home: index.html +# Artifacts: +# Profiles: artifacts.html#2 +# Extensions: artifacts.html#3 +# Value Sets: artifacts.html#4 +# Downloads: downloads.html +# History: http://hl7.org/fhir/us/example/history.html + +# The parameters property represents IG.definition.parameter. Rather +# than a list of code/value pairs (as in the ImplementationGuide +# resource), the code is the YAML key. If a parameter allows repeating +# values, the value in the YAML should be a sequence/array. For a +# partial list of allowed parameters see: +# https://confluence.hl7.org/display/FHIR/Implementation+Guide+Parameters +#parameters: +# excludettl: true +# validation: [allow-any-extensions, no-broken-links] + +# The FSHOnly flag indicates if only FSH resources should be exported. +# If set to true, no IG related content will be generated. +# The default value for this property is false. +FSHOnly: false + +# When set to true, the "short" and "definition" field on the root element of an Extension will +# be set to the "Title" and "Description" of that Extension. Default is true. +#applyExtensionMetadataToRoot: false