diff --git a/LICENSE b/LICENSE index d8ffe25..f41a284 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,232 @@ -Copyright (c) 2017, HL7 +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -This document is licensed under the terms of HL7's FHIR license. -http://hl7.org/fhir/license.html + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Creative Commons "No Rights Reserved" (CC0) \ No newline at end of file + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Health-Related Additional Disclaimer of Warranty and Limitation of Liability + ============================================================================ + + In the United States, or any other jurisdictions where they may apply, the following + additional disclaimer of warranty and limitation of liability are hereby incorporated + into the terms and conditions of Apache License 2.0: + + a. No warranties of any kind whatsoever are made as to the results that You will + obtain from relying upon the covered code (or any information or content obtained + by way of the covered code), including but not limited to compliance with privacy + laws or regulations or clinical care industry standards and protocols. Use of the + covered code is not a substitute for a health care provider's standard practice or + professional judgment. Any decision with regard to the appropriateness of treatment, + or the validity or reliability of information or content made available by the + covered code, is the sole responsibility of the health care provider. Consequently, + it is incumbent upon each health care provider to verify all medical history and + treatment plans with each patient. + + b. Under no circumstances and under no legal theory, whether tort (including negligence), + contract, or otherwise, shall any Contributor, or anyone who distributes Covered + Software as permitted by the license, be liable to You for any indirect, special, + incidental, consequential damages of any character including, without limitation, + damages for loss of goodwill, work stoppage, computer failure or malfunction, or + any and all other damages or losses, of any nature whatsoever (direct or otherwise) + on account of or associated with the use or inability to use the covered content + (including, without limitation, the use of information or content made available + by the covered code, all documentation associated therewith, and the failure of + the covered code to comply with privacy laws and regulations or clinical care + industry standards and protocols), even if such party shall have been informed of + the possibility of such damages. diff --git a/_autoPublish.bat b/_autoPublish.bat new file mode 100644 index 0000000..d9de272 --- /dev/null +++ b/_autoPublish.bat @@ -0,0 +1,32 @@ +@ECHO off +SET tooling_jar=tooling-1.3.1-SNAPSHOT-jar-with-dependencies.jar +SET input_cache_path=%~dp0input-cache +SET resources_path=%~dp0input/resources +SET ig_resource_path=input/anc-cds.xml +SET fsoption=http://localhost:8080/cqf-ruler-r4/fhir/ +SET publisher_jar=publisher.jar +SET test_path=%~dp0input/tests +SET fhir_version=4.0.1 +SET ini_file=ig.ini + + cmd /c _updatePublisher.bat /f + ECHO Done with updatePublisher + + cmd /c _updateCQFTooling.bat /f + ECHO Done with updateCQFTooling + + cmd /c _processDataDictionary.bat + ECHO Done with ProcessAcceleratorKit + + JAVA -jar "%input_cache_path%\%tooling_jar%" -RefreshIG -root-dir=%~dp0 -rp=%resources_path% -ip=%ig_resource_path% -t -d -p -fs=%fsoption% + ECHO Done with -RefreshIG + + JAVA -jar "%input_cache_path%\%tooling_jar%" -TestIG -ini=%ini_file% -root-dir=%~dp0 -fv=%fhir_version% -tcp=%test_path% -fs=%fsoption% + ECHO Done with -TestIGOperation + + REM from _genonce.bat + JAVA -jar "%input_cache_path%\%publisher_jar%" -ig . %txoption% + +REM TODO - PUBLISH to "web site" copy output dir to another location + ECHO [94m Done with publish to web site + ECHO [0m \ No newline at end of file diff --git a/_refresh.bat b/_refresh.bat new file mode 100644 index 0000000..4507eee --- /dev/null +++ b/_refresh.bat @@ -0,0 +1,31 @@ +@ECHO OFF +SET tooling_jar=tooling-1.3.1-SNAPSHOT-jar-with-dependencies.jar +SET input_cache_path=%~dp0input-cache +SET resources_path=%~dp0/input/resources +SET ig_ini_path=%~dp0ig.ini + +ECHO Checking internet connection... +PING tx.fhir.org -n 1 -w 1000 | FINDSTR TTL && GOTO isonline +ECHO We're offline... +SET fsoption= +GOTO igpublish + +:isonline +ECHO We're online, setting publish to local sandbox FHIR server +SET fsoption=-fs http://localhost:8080/cqf-ruler-r4/fhir/ + +:igpublish + +SET JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 + +IF EXIST "%input_cache_path%\%tooling_jar%" ( + ECHO running: JAVA -jar "%input_cache_path%\%tooling_jar%" -RefreshIG -ini="%ig_ini_path%" -rp="%resources_path%" -t -d -p -cdsig %fsoption% + JAVA -jar "%input_cache_path%\%tooling_jar%" -RefreshIG -ini="%ig_ini_path%" -rp="%resources_path%" -t -d -p -cdsig %fsoption% +) ELSE If exist "..\%tooling_jar%" ( + ECHO running: JAVA -jar "..\%tooling_jar%" -RefreshIG -ini="%ig_ini_path%" -rp="%resources_path%" -t -d -p -cdsig %fsoption% + JAVA -jar "..\%tooling_jar%" -RefreshIG -ini="%ig_ini_path%" -rp="%resources_path%" -t -d -p -cdsig %fsoption% +) ELSE ( + ECHO IG Refresh NOT FOUND in input-cache or parent folder. Please run _updateCQFTooling. Aborting... +) + +PAUSE diff --git a/_refresh.sh b/_refresh.sh new file mode 100644 index 0000000..74d76b2 --- /dev/null +++ b/_refresh.sh @@ -0,0 +1,36 @@ +#!/bin/bash +#DO NOT EDIT WITH WINDOWS +tooling_jar=tooling-1.3.1-SNAPSHOT-jar-with-dependencies.jar +input_cache_path=./input-cache +resources_path=$PWD/input/resources +ig_resource_path=./input/anc-cds.xml + +set -e +echo Checking internet connection... +wget -q --spider tx.fhir.org + +if [ $? -eq 0 ]; then + echo "Online" + fsoption="" +#"-fs http://cds-sandbox.alphora.com/cqf-ruler-r4/fhir/" +else + echo "Offline" + fsoption="" +fi + +echo "$fsoption" + +tooling=$input_cache_path/$tooling_jar +if test -f "$tooling"; then + JAVA -jar $tooling -RefreshIG -root-dir="$PWD" -ip="$ig_resource_path" -rp="$resources_path" -t -d -p $fsoption +else + tooling=../$tooling_jar + echo $tooling + if test -f "$tooling"; then + JAVA -jar $tooling -RefreshIG -root-dir="$PWD" -ip="$ig_resource_path" -rp="$resources_path" -t -d -p $fsoption + else + echo IG Refresh NOT FOUND in input-cache or parent folder. Please run _updateCQFTooling. Aborting... + fi +fi + +#sh input/pagecontent/quick-start-bundles/_refreshQuickStart.sh diff --git a/_updateCQFTooling.bat b/_updateCQFTooling.bat new file mode 100644 index 0000000..a9ee77c --- /dev/null +++ b/_updateCQFTooling.bat @@ -0,0 +1,89 @@ +@ECHO OFF + +SET "dlurl=https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=org.opencds.cqf&a=tooling&v=1.3.1-SNAPSHOT&c=jar-with-dependencies" +SET tooling_jar=tooling-1.3.1-SNAPSHOT-jar-with-dependencies.jar +SET input_cache_path=%~dp0input-cache\ +SET skipPrompts=false +IF "%~1"=="/f" SET skipPrompts=true + +FOR %%x IN ("%CD%") DO SET upper_path=%%~dpx + +IF NOT EXIST "%input_cache_path%%tooling_jar%" ( + IF NOT EXIST "%upper_path%%tooling_jar%" ( + SET jarlocation=%input_cache_path%%tooling_jar% + SET jarlocationname=Input Cache + ECHO IG Refresh 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 RefreshFOUND in parent folder + SET jarlocation=%upper_path%%tooling_jar% + SET jarlocationname=Parent folder + GOTO:upgrade + ) +) ELSE ( + ECHO IG Refresh FOUND in input-cache + SET jarlocation=%input_cache_path%%tooling_jar% + SET jarlocationname=Input Cache + GOTO:upgrade +) + +:create +ECHO Will place refresh jar here: %input_cache_path%%tooling_jar% +IF "%skipPrompts%"=="false" ( + SET /p create="Ok? (Y/N)" + IF /I "%create%"=="Y" ( + MKDIR "%input_cache_path%" 2> NUL + GOTO:download + ) +) ELSE ( + MKDIR "%input_cache_path%" 2> NUL + GOTO:download +) + +GOTO:done + +:upgrade +IF "%skipPrompts%"=="false" ( + SET /p overwrite="Overwrite %jarlocation%? (Y/N)" + IF /I "%overwrite%"=="Y" ( + GOTO:download + ) +) ELSE ( + GOTO:download +) +GOTO:done + +:download +ECHO Downloading most recent refresh to %jarlocationname% - it's ~70 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 +POWERSHELL -command "if ('System.Net.WebClient' -as [type]) {(new-object System.Net.WebClient).DownloadFile('%dlurl%','%jarlocation%') } else { Invoke-WebRequest -Uri '%dlurl%' -Outfile '%jarlocation%' }" +ECHO Download complete. +GOTO done + +:win7 +bitsadmin /transfer GetRefresh /download /priority normal "%dlurl%" "%jarlocation%" +ECHO Download complete. +GOTO done + +:win8.1 +:win8 +:vista +ECHO This script does not yet support Windows %winver%. Please ask for help on https://chat.fhir.org/#narrow/stream/179207-connectathon-mgmt/topic/Clinical.20Reasoning.20Track +GOTO done + +:done +IF "%skipPrompts%"=="false" ( + PAUSE +) diff --git a/_updateCQFTooling.sh b/_updateCQFTooling.sh new file mode 100644 index 0000000..5a9edef --- /dev/null +++ b/_updateCQFTooling.sh @@ -0,0 +1,62 @@ +#!/bin/bash +#DO NOT EDIT WITH WINDOWS +#exit 1 + +r=snapshots +g=org.opencds.cqf +a=tooling +v=1.3.1-SNAPSHOT +c=jar-with-dependencies + +dlurl='https://oss.sonatype.org/service/local/artifact/maven/redirect?r='${r}'&g='${g}'&a='${a}'&v='${v}'&c='${c}'' + +echo ${dlurl} + +input_cache_path=./input-cache/ +tooling_jar=tooling-1.3.1-SNAPSHOT-jar-with-dependencies.jar + +set -e +if ! type "curl" > /dev/null; then + echo "ERROR: Script needs curl to download latest IG Tooling. Please install curl." + exit 1 +fi + +tooling="$input_cache_path$tooling_jar" +if test -f "$tooling"; then + echo "IG Tooling FOUND in input-cache" + jarlocation="$tooling" + jarlocationname="Input Cache" + upgrade=true +else + tooling="../$tooling_jar" + upgrade=true + if test -f "$tooling"; then + echo "IG Tooling FOUND in parent folder" + jarlocation="$tooling" + jarlocationname="Parent Folder" + upgrade=true + else + echo IG Tooling NOT FOUND in input-cache or parent folder... + jarlocation="$input_cache_path$tooling_jar" + jarlocationname="Input Cache" + upgrade=false + fi +fi + +if $upgrade ; then + message="Overwrite $jarlocation? [Y/N] " +else + #echo Will place tooling jar here: $input_cache_path$tooling_jar + echo Will place tooling jar here: $jarlocation + message="Ok? [Y/N]" +fi + +read -r -p "$message" response +if [[ "$response" =~ ^([yY])$ ]]; then + echo "Downloading most recent tooling to $jarlocationname - it's ~170 MB, so this may take a bit" +# wget "https://oss.sonatype.org/service/local/repositories/snapshots/content/org/opencds/cqf/tooling/1.0-SNAPSHOT/tooling-1.0-20200107.163002-6-jar-with-dependencies.jar" -O "$jarlocation" + curl $dlurl -L -o "$jarlocation" --create-dirs + echo "Download complete." +else + echo cancel... +fi diff --git a/input/includes/menu.xml b/input/includes/menu.xml index ee4161a..81eb359 100644 --- a/input/includes/menu.xml +++ b/input/includes/menu.xml @@ -30,9 +30,18 @@
-