Merge branch 'master' into master
This commit is contained in:
commit
7917a19d26
@ -16,12 +16,12 @@ echo "$txoption"
|
||||
|
||||
publisher=$input_cache_path/$publisher_jar
|
||||
if test -f "$publisher"; then
|
||||
JAVA -jar $publisher -ig ig.ini $txoption $*
|
||||
java -jar $publisher -ig ig.ini $txoption $*
|
||||
|
||||
else
|
||||
publisher=../$publisher_jar
|
||||
if test -f "$publisher"; then
|
||||
JAVA -jar $publisher -ig ig.ini $txoption $*
|
||||
java -jar $publisher -ig ig.ini $txoption $*
|
||||
else
|
||||
echo IG Publisher NOT FOUND in input-cache or parent folder. Please run _updatePublisher. Aborting...
|
||||
fi
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
@ECHO OFF
|
||||
SET dlurl=https://fhir.github.io/latest-ig-publisher/org.hl7.fhir.publisher.jar
|
||||
|
||||
SETLOCAL
|
||||
|
||||
SET dlurl=https://storage.googleapis.com/ig-build/org.hl7.fhir.publisher.jar
|
||||
SET publisher_jar=org.hl7.fhir.publisher.jar
|
||||
SET input_cache_path=%CD%\input-cache\
|
||||
SET skipPrompts=false
|
||||
@ -16,6 +19,15 @@ IF "%~1"=="/f" SET skipPrompts=true
|
||||
ECHO "%skipPrompts%"
|
||||
|
||||
|
||||
: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
|
||||
|
||||
IF NOT EXIST "%input_cache_path%%publisher_jar%" (
|
||||
@ -39,6 +51,10 @@ IF NOT EXIST "%input_cache_path%%publisher_jar%" (
|
||||
)
|
||||
|
||||
:create
|
||||
IF DEFINED FORCE (
|
||||
MKDIR "%input_cache_path%" 2> NUL
|
||||
GOTO:download
|
||||
)
|
||||
ECHO Will place publisher jar here: %input_cache_path%%publisher_jar%
|
||||
IF "%skipPrompts%"=="true" (
|
||||
SET create="Y"
|
||||
@ -110,4 +126,6 @@ ECHO Updating this file...
|
||||
start copy /y "_updatePublisher.new.bat" "_updatePublisher.bat" ^&^& del "_updatePublisher.new.bat" ^&^& exit
|
||||
REM ============================
|
||||
|
||||
IF "%skipPrompts%"=="true" (
|
||||
PAUSE
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
dlurl=https://fhir.github.io/latest-ig-publisher/org.hl7.fhir.publisher.jar
|
||||
dlurl=https://storage.googleapis.com/ig-build/org.hl7.fhir.publisher.jar
|
||||
publisher_jar=org.hl7.fhir.publisher.jar
|
||||
input_cache_path=./input-cache/
|
||||
|
||||
@ -9,6 +9,20 @@ if ! type "curl" > /dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FORCE=false
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-f|--force) FORCE=true ;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*) break
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
publisher="$input_cache_path$publisher_jar"
|
||||
if test -f "$publisher"; then
|
||||
echo "IG Publisher FOUND in input-cache"
|
||||
@ -31,15 +45,17 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$FORCE" != true ]]; then
|
||||
if "$upgrade"; then
|
||||
message="Overwrite $jarlocation? (Y/N) "
|
||||
else
|
||||
echo Will place publisher jar here: "$jarlocation"
|
||||
message="Ok? (Y/N) "
|
||||
message="Ok (enter 'y' or 'Y' to continue, any other key to cancel)?"
|
||||
fi
|
||||
read -r -p "$message" response
|
||||
fi
|
||||
|
||||
read -r -p "$message" response
|
||||
if [[ "$response" =~ ^([yY])$ ]]; then
|
||||
if [[ "$FORCE" == true ]] || [[ "$response" =~ ^([yY])$ ]]; then
|
||||
echo "Downloading most recent publisher to $jarlocationname - it's ~100 MB, so this may take a bit"
|
||||
# wget "https://fhir.github.io/latest-ig-publisher/org.hl7.fhir.publisher.jar" -O "$jarlocation"
|
||||
curl $dlurl -o "$jarlocation" --create-dirs
|
||||
|
||||
48
ig.ini
48
ig.ini
@ -1,4 +1,50 @@
|
||||
[IG]
|
||||
# ini file for the Implementation Guide publisher
|
||||
# see comments below for instructions
|
||||
|
||||
ig = input/myig.xml
|
||||
template = fhir.base.template
|
||||
usage-stats-opt-out = false
|
||||
|
||||
|
||||
|
||||
|
||||
##########################
|
||||
### ig.ini parameters: ###
|
||||
##########################
|
||||
|
||||
# ig: the name of the implementation guide resource file.
|
||||
examples:
|
||||
# ig = input/myig.xml
|
||||
# ig = input/implementationguide-example2.xml
|
||||
|
||||
# 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
|
||||
|
||||
# HL7 (non-FHIR) IG template:
|
||||
#template = hl7.base.template
|
||||
|
||||
# HL7 FHIR template:
|
||||
#template = hl7.fhir.template
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
45
input/cql/example.cql
Normal file
45
input/cql/example.cql
Normal file
@ -0,0 +1,45 @@
|
||||
library example version '1.0.0'
|
||||
|
||||
using FHIR version '4.0.1'
|
||||
|
||||
include FHIRHelpers version '4.0.1'
|
||||
|
||||
codesystem "Observation Category Codes": 'http://terminology.hl7.org/CodeSystem/observation-category'
|
||||
|
||||
valueset "Encounter Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'
|
||||
valueset "Emergency Department Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'
|
||||
valueset "Telephone Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1082'
|
||||
valueset "Telephone Management": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1053'
|
||||
|
||||
valueset "COVID-19 Screening Result": 'TBD'
|
||||
|
||||
code "Laboratory Observation Category": 'laboratory' from "Observation Category Codes"
|
||||
|
||||
parameter "Measurement Period" Interval<DateTime>
|
||||
|
||||
context Patient
|
||||
|
||||
define "Inpatient, Emergency, or Telephone Evaluation or Management Encounter":
|
||||
(
|
||||
[Encounter: "Encounter Inpatient"]
|
||||
union [Encounter: "Emergency Department Visit"]
|
||||
union [Encounter: "Telephone Evaluation"]
|
||||
union [Encounter: "Telephone Management"]
|
||||
) Encounter
|
||||
where Encounter.status = 'finished'
|
||||
and Encounter.period during "Measurement Period"
|
||||
|
||||
define "Initial Population":
|
||||
exists ("Inpatient, Emergency, or Telephone Evaluation or Management Encounter")
|
||||
|
||||
define "Denominator":
|
||||
true
|
||||
|
||||
define "COVID-19 Communicable Disease Screening":
|
||||
[Observation: "COVID-19 Screening Result"] Result
|
||||
where exists (Result.category C where C ~ "Laboratory Observation Category")
|
||||
and Result.status in { 'final', 'amended', 'corrected' }
|
||||
and Result.effective during "Measurement Period"
|
||||
|
||||
define "Numerator":
|
||||
exists ("COVID-19 Communicable Disease Screening")
|
||||
BIN
input/cql/example.pdf
Normal file
BIN
input/cql/example.pdf
Normal file
Binary file not shown.
3
input/cql/notincluded.cql
Normal file
3
input/cql/notincluded.cql
Normal file
@ -0,0 +1,3 @@
|
||||
library notincluded
|
||||
|
||||
// Example library that doesn't get included, so results in a missed warning
|
||||
5
input/examples/Binary-example.json
Normal file
5
input/examples/Binary-example.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"resourceType" : "Binary",
|
||||
"id" : "example",
|
||||
"data" : "ig-loader-example.pdf"
|
||||
}
|
||||
15
input/examples/Library-example.json
Normal file
15
input/examples/Library-example.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"resourceType" : "Library",
|
||||
"url" : "http://somewhere.org/fhir/uv/myig/Library/example",
|
||||
"version" : "1.0.0",
|
||||
"status" : "draft",
|
||||
"type" : {
|
||||
"coding" : [{
|
||||
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
|
||||
"code" : "logic-library"
|
||||
}]
|
||||
},
|
||||
"content" : [{
|
||||
"id" : "ig-loader-example.cql"
|
||||
}]
|
||||
}
|
||||
40
input/history/h1.json
Normal file
40
input/history/h1.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"resourceType" : "Bundle",
|
||||
"id" : "h1",
|
||||
"type" : "collection",
|
||||
"entry" : [{
|
||||
"resource" : {
|
||||
"resourceType" : "AuditEvent",
|
||||
"id" : "h1-1",
|
||||
"type" : {
|
||||
"system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
|
||||
"code" : "amend"
|
||||
},
|
||||
"action" : "U",
|
||||
"period" : { "end" : "2015-11-30" },
|
||||
"purposeOfEvent" : [{
|
||||
"text": "Add \"conductible\" property to ActRelationshipType and ParticipationType codes.for ContextConduction RIM Change. And create Concept domain CodeSystem and ValueSet for ContextConductionStyle"
|
||||
}],
|
||||
"agent" : [{
|
||||
"type" : {
|
||||
"coding": {
|
||||
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
|
||||
"code":"AUT"
|
||||
}
|
||||
},
|
||||
"name" : "Rob Hausam"
|
||||
},{
|
||||
"type" : {
|
||||
"coding": {
|
||||
"system": "http://terminology.hl7.org/CodeSystem/contractsignertypecodes",
|
||||
"code":"REVIEWER"
|
||||
}
|
||||
},
|
||||
"name" : "Vocab"
|
||||
}],
|
||||
"entity" : [{
|
||||
"what" : { "reference" : "StructureDefinition/myObservation" }
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}
|
||||
@ -1,13 +1,15 @@
|
||||
// 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)
|
||||
== Suppressed Messages ==
|
||||
|
||||
// This is inherited from the base resource
|
||||
# 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)
|
||||
|
||||
# This is inherited from the base resource
|
||||
WARNING: StructureDefinition/myObservation: StructureDefinition.snapshot.element[15].mapping[3].map: value should not start or finish with whitespace
|
||||
|
||||
// We're expecting these to not match the slice - we're showing how you can use slicing to define the one repetition you want even when many repetitions might be present
|
||||
INFORMATION: Patient/example: Patient.name[0]: This element does not match any known slice for the profile http://somewhere.org/fhir/uv/myig/StructureDefinition/mypatient
|
||||
INFORMATION: Patient/example: Patient.name[1]: This element does not match any known slice for the profile http://somewhere.org/fhir/uv/myig/StructureDefinition/mypatient
|
||||
# We're expecting these to not match the slice - we're showing how you can use slicing to define the one repetition you want even when many repetitions might be present
|
||||
INFORMATION: Patient/example: Patient.name[0]: This element does not match any known slice defined in the profile http://somewhere.org/fhir/uv/myig/StructureDefinition/mypatient
|
||||
INFORMATION: Patient/example: Patient.name[1]: This element does not match any known slice defined in the profile http://somewhere.org/fhir/uv/myig/StructureDefinition/mypatient
|
||||
|
||||
// If this was a real IG, there should be examples for these profiles too. But it's not, and I'm lazy...
|
||||
# If this was a real IG, there should be examples for these profiles too. But it's not, and I'm lazy...
|
||||
WARNING: http://somewhere.org/fhir/uv/myig/StructureDefinition/myObservation: The Implementation Guide contains no examples for this profile
|
||||
WARNING: http://somewhere.org/fhir/uv/myig/StructureDefinition/mypractitioner: The Implementation Guide contains no examples for this profile
|
||||
|
||||
@ -38,6 +38,11 @@
|
||||
<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"/>
|
||||
<!-- <dependsOn>
|
||||
<uri value="http://somethign"/>
|
||||
<packageId value="de.basisprofil.r4"/>
|
||||
<version value="0.9.2"/>
|
||||
</dependsOn> -->
|
||||
<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... -->
|
||||
@ -47,6 +52,11 @@
|
||||
</reference>
|
||||
<description value="Overriding description because we can"/>
|
||||
</resource>
|
||||
<!--<resource>
|
||||
<reference>
|
||||
<reference value="MyLogicalModel/AS"/>
|
||||
</reference>
|
||||
</resource> -->
|
||||
<resource>
|
||||
<reference>
|
||||
<reference value="Patient/example"/>
|
||||
@ -55,6 +65,19 @@
|
||||
<description value="A simple example showing how examples are defined and referenced"/>
|
||||
<exampleCanonical value="http://somewhere.org/fhir/uv/myig/StructureDefinition/mypatient"/>
|
||||
</resource>
|
||||
<resource>
|
||||
<reference>
|
||||
<reference value="Bundle/h1"/>
|
||||
</reference>
|
||||
<name value="History"/>
|
||||
</resource>
|
||||
<!-- <resource>
|
||||
<reference>
|
||||
<reference value="Library/example"/>
|
||||
</reference>
|
||||
<name value="Simple library example"/>
|
||||
<description value="A simple example showing how library is pre-loaded"/>
|
||||
</resource> -->
|
||||
<page>
|
||||
<!-- The root will always be toc.html - the template will force it if you don't do it -->
|
||||
<nameUrl value="toc.html"/>
|
||||
@ -100,6 +123,14 @@
|
||||
<code value="find-other-resources"/>
|
||||
<value value="true"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="path-resource"/>
|
||||
<value value="input\history"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="path-binary"/>
|
||||
<value value="input\cql"/>
|
||||
</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"/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user