Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] develop from DBCG:develop #62

Open
wants to merge 249 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
249 commits
Select commit Hold shift + click to select a range
57c1b58
Fixed bug in topic argument
May 14, 2020
79fccff
Create a container for the gic sandbox
May 14, 2020
f2c1198
Fixed indentation on .yml
May 14, 2020
da3163a
Update the patient parameter to subject to match the spec
May 14, 2020
d7ec0a7
Made topic optional
May 14, 2020
17a0837
Fixed bug with Measure reference instead of MeasureReport reference
May 15, 2020
b4bc76f
Fixed various spec conformance issues.
May 15, 2020
0356222
Added organization
May 15, 2020
c18328b
Added note
May 15, 2020
c891149
Updated evaluation to use existing evaluation
May 15, 2020
6f71084
Branch to add $extract operation for extracting observations from a Q…
May 15, 2020
386e2ad
Fixed divide by zero error
May 15, 2020
c154241
No idea how the prior commit got that way. That was not the intent.
May 15, 2020
c7bbefd
Added DetectedIssue
May 15, 2020
8b7d68c
Added patient to DetectedIssue
May 15, 2020
7a24dbf
added functionality to observation
May 15, 2020
bb8474a
Adding info to observation. Some temporary
May 20, 2020
5564195
LibraryHelper.loadLibraries now uses the primary library of a measure…
Jun 2, 2020
23a92aa
Merge pull request #214 from DBCG/issue_213_hotfix
JPercival Jun 2, 2020
72f67a9
Use correct resolve function to ensure primary library is loaded.
Jun 4, 2020
ed186b8
Merge pull request #217 from DBCG/issue_213_hotfix_2
JPercival Jun 5, 2020
8a18303
branch to utilize noAuth cql-engine
Feb 26, 2020
0691de0
fixes so tests will run properly
Mar 2, 2020
02f0f2a
changes to match Pull Request requests
Mar 3, 2020
0a994a9
Remove derby files
JPercival Mar 26, 2020
41664e2
Rev to 0.1.15
JPercival Mar 26, 2020
94f1fe4
Fixed incorrect parameter name in submit-data operation
Mar 27, 2020
8e342d6
Update to engine 1.4, HAPI 4.2
JPercival Apr 29, 2020
ecc296f
Update schematron dependency
JPercival Apr 29, 2020
6088ab7
Update operation params
JPercival Apr 30, 2020
d8af165
Fixes for some reflection hacks
JPercival Apr 30, 2020
0e85e29
Support for FHIR 4.0.1 and 3.0.2
JPercival May 12, 2020
a764ebc
Revert 3.0.2 changes, translator doesn't yet support it.
JPercival May 12, 2020
4d3ebd9
Fixes for databases and codesystems
JPercival May 15, 2020
94836f9
Fix for measure evaluation null result when evaluating criteria.
ZackAustin May 14, 2020
ecaa5e9
Log CDS request body before instantiating cds request.
sliver007 May 20, 2020
1fab99d
Clean up logs
JPercival May 20, 2020
f1faa14
Update maven war plugin, filter startup log
JPercival May 20, 2020
fd68058
Update Jetty plugin, remove unused dependencies
JPercival May 20, 2020
82361d3
Fix null pointer no content header exception
JPercival May 20, 2020
7e32d87
Better handling of cds-hooks exceptions
JPercival May 21, 2020
88aec26
Logging for cds-hooks client
JPercival May 22, 2020
9f1b63a
Added logback config file to WEB-INF/classes
sliver007 Jun 3, 2020
3a4107d
Registered DebugMap with Context of CdsHooksServlet's doPost
sliver007 Jun 3, 2020
bc25cef
Removed addDebugEntry
sliver007 Jun 3, 2020
9a367a5
Fixes for build warnings and spelling errors
JPercival Jun 6, 2020
4ddf606
merge with develop branch to keep this up to date
Jun 10, 2020
45eafea
Adding OAuth pass thru functionality
Jun 11, 2020
7f378c6
remove questionnaire code to keep this oauth only
Jun 11, 2020
356c119
typo fixed
Jun 11, 2020
0ba3436
progress in adding capability statements
Jun 11, 2020
e0fb5f8
adding to capability statement for oauth; OAuthServlet is a placehold…
Jun 12, 2020
3bbf7d4
added oauth conformance statement to dstu3
Jun 12, 2020
e24287a
adding code copied from cdshooks servlet; Needs to be gone through c…
Jun 12, 2020
fe1880a
Revert to Java 8
JPercival Jun 16, 2020
a56937d
merge with develop
Jun 19, 2020
84328e4
stopping place to update oauth branch
Jun 19, 2020
1ed20d0
suggested changes made
Jun 19, 2020
b2bec52
Merge pull request #221 from DBCG/oauth
JPercival Jun 19, 2020
4454d91
WIP outstanding changes. need to double check.
Jun 22, 2020
a3ac9fb
Delombokify, add support for library lookup by Url
JPercival Jun 23, 2020
75a9c79
convert questionnaireResponse to Observation
Jun 23, 2020
2d6baee
Merge branch 'develop' into observationOperation
Jun 23, 2020
41f6bca
added subject to Observation
Jun 23, 2020
a439a2a
Clean up warnings, fix url lookup
JPercival Jun 23, 2020
c298011
Merge branch 'develop' into observationOperation
Jun 24, 2020
01ce6a4
fixed extra white space and added error bundle
Jun 24, 2020
d056678
added ObservationProvider/$extract functionality to dstu3
Jun 24, 2020
622ace2
fixed fhir version error in QuestionnaireProvider
Jun 24, 2020
3669ad5
changed error handling to exceptions
Jun 24, 2020
a226746
Merge pull request #223 from DBCG/observationOperation
JPercival Jun 24, 2020
c2106aa
initial concept map code system transformation
Jun 24, 2020
1c3a797
initial concept map code system transformation
Jun 24, 2020
7cecb7b
added and turned off enabled flags for OAuth and QuestionnaireRespons…
Jun 24, 2020
d7de073
Merge branch 'develop' into conceptMap
Jun 24, 2020
39e5f56
added flags for enabled
Jun 24, 2020
9f01369
added replaceCode seting to use with replace code or add code. Defa…
Jun 29, 2020
5d5aaf9
refactored transform functionality.
Jul 2, 2020
ddd9ed2
minor edits fixing loop
Jul 6, 2020
2a29afb
added dstu3 $transform operation
Jul 6, 2020
43485bc
Update to release versions of major dependencies
JPercival Jul 7, 2020
ea5ebca
Update pom.xml
brynrhodes Jul 8, 2020
a3166f0
Merge pull request #227 from DBCG/develop
brynrhodes Jul 8, 2020
d78af49
Update pom.xml
brynrhodes Jul 8, 2020
ee443d3
Fix 404 exception bug, Add handling of CqlException
JPercival Jul 8, 2020
c744557
Configurable cds-hooks options
JPercival Jul 17, 2020
84e0aeb
Merge pull request #228 from DBCG/feature-configurable-cds-callback
Jul 20, 2020
4646d71
Rev to engine and translator 1.5.0-SNAPSHOT
JPercival Jul 21, 2020
5bbeffe
Revert to translator 1.4.9 due to breakage
JPercival Jul 21, 2020
7c9de3e
changes to Observation to facilitate use in PainManager
Jul 23, 2020
e99d735
Add notifications to travis build
JPercival Jul 30, 2020
4bd6c47
Update travis token
JPercival Jul 30, 2020
b702e6f
Merge branch 'develop' into conceptMap
JPercival Aug 1, 2020
8c838b6
Merge pull request #226 from DBCG/conceptMap
JPercival Aug 1, 2020
5355770
Add param to library
JPercival May 8, 2020
76bd765
Fix bug with context parameters
JPercival May 10, 2020
54d4da4
Fixes for remote terminology
JPercival May 18, 2020
fd152dc
Add optimization for local vs remote terminology
JPercival May 18, 2020
0c0afce
Fix error with merge
JPercival Aug 1, 2020
21936c1
Fixed missing CORS options
JPercival Aug 1, 2020
ad18181
Merge pull request #234 from DBCG/feature-library-evaluate
JPercival Aug 1, 2020
d592e1e
Fix not using local terminology provider
JPercival Aug 3, 2020
967d952
enabled EnableDateRangeOptimization Translator option by default
sliver007 Aug 6, 2020
ee1afcc
Merge pull request #236 from DBCG/enabledaterangeoptimization_on
JPercival Aug 6, 2020
381bd09
pre-new gic branch
Aug 10, 2020
bcddefa
Add addtional data parameter to evaluate
JPercival Aug 10, 2020
e37b80b
Merge pull request #237 from DBCG/feature-pass-in-resource-bundle
Aug 11, 2020
ba7477b
Fix terminology provider and endpoint null pointer exceptions in ruler
JPercival Aug 12, 2020
66b914e
Merge pull request #238 from DBCG/feature-pass-in-resource-bundle
Aug 12, 2020
1f74177
Turned off enableDateRangeOptimization
sliver007 Aug 12, 2020
0375f39
Merge pull request #239 from DBCG/enableDateRangeOptimization_off
brynrhodes Aug 12, 2020
71ec59f
Merge remote-tracking branch 'origin/develop' into davinci_gic
Aug 13, 2020
6d52ac3
Merge remote-tracking branch 'origin/master' into davinci_gic
Aug 13, 2020
97019b8
#240: Fixed library loader attempting to load non-logic-libraries
brynrhodes Aug 13, 2020
90ae165
Update to latest GIC implementation
Aug 13, 2020
e5d5f29
Merge pull request #241 from DBCG/fix-240-only-load-logic-libraries
Aug 13, 2020
e30d729
Merge remote-tracking branch 'origin/develop' into davinci_gic
Aug 13, 2020
3f7cb1e
Update to remove var keyword
Aug 13, 2020
820cefa
Protect against empty Org and historical measures
Aug 14, 2020
aa86bce
Just a comment
Aug 14, 2020
20ac4c9
additional parameter validation to meet spec
Aug 14, 2020
32f2fec
status functionality in place. Refactor for cleanup needed
Aug 14, 2020
f297613
status more complete. Added Parameters ID similar to the example.
Aug 14, 2020
7e37dae
status added to produce all, closed-gap, and open-gap reports
Aug 14, 2020
7e6e4b2
Added error logging in exception handing of cds servlet doPost
sliver007 Aug 18, 2020
3e82a60
Merge pull request #242 from DBCG/doPost_log_errors
JPercival Aug 18, 2020
e76a72a
Added missing elements to composition and gap report;
Aug 19, 2020
af4502a
Created new EvaluatedResource inside MeasureReport.
Aug 20, 2020
566e58c
Initial implementation
Aug 23, 2020
8304c1c
Add getting the library from the bundle
Aug 25, 2020
6f8278d
Probably not worth those heavy resources.
Aug 25, 2020
82bade1
Merge pull request #243 from DBCG/library-eval-additional-data
barhodes Aug 25, 2020
56a2740
added system so cql can pull observations
Aug 25, 2020
7fcf97f
added an additional extension to the observation to match the US core…
Aug 26, 2020
782fc5b
Merge branch 'develop' into conceptMap
Aug 26, 2020
1bfedf7
added dstu3 functionality to $extract operation
Aug 26, 2020
afc31f0
making the properties files between versions match
Aug 26, 2020
0e119ea
fixing wrong server version
Aug 26, 2020
94151ec
Merge pull request #244 from DBCG/conceptMap
JPercival Aug 26, 2020
a188f50
changing questionnaireresponse/$extract endpoint to work for sites
Aug 26, 2020
1f0afc5
accumulator working; Report does NOT have contained object
Aug 27, 2020
ff72bb4
report with supplemental data being generated for individual patient
Aug 28, 2020
33f5de3
supplemental data for a group is functional
Aug 28, 2020
be173fd
clean up of a couple of variables
Aug 28, 2020
43f8e0f
refactored populateSDEAccumulators to remove duplicate code and fix
Aug 28, 2020
3a3f591
more refactor cleanup
Aug 28, 2020
2bc8fd3
removed '#' from evaluatedResources references
Aug 28, 2020
17763d2
added observationd data; Need to still loop through object to find t…
Aug 28, 2020
85c2a14
fixing of observation extensions with correct codes
Aug 31, 2020
3915d2c
changed valueString to valueInteger for counts in group report
Aug 31, 2020
d9342c7
added extension to individual report
Aug 31, 2020
4842608
Merge branch 'develop' into ESAC_Sup_Data
Aug 31, 2020
b15cfd5
Recreate work in Dstu3
JPercival Sep 3, 2020
926dbd1
Fixed logic library returning false if no type is specified (now uses…
brynrhodes Sep 3, 2020
138ec68
Merge pull request #245 from DBCG/ESAC_Sup_Data
brynrhodes Sep 4, 2020
7bbffad
Add error room notifcation
JPercival Sep 12, 2020
46b5de8
Updates to support HAPI 5.0.2
JPercival Sep 4, 2020
67c0955
force versions for translator dependency versions
JPercival Sep 5, 2020
4b68090
Adding continuous measure evaluation capability.
brynrhodes Sep 10, 2020
71d7158
fix detecting server address
JPercival Sep 10, 2020
ce14a96
cds hooks logging and smarter config handling
JPercival Sep 11, 2020
192964d
Add config for prefetch template max uri length
JPercival Sep 12, 2020
edf4f9b
Add logging for max uri length
JPercival Sep 12, 2020
fdf6d4a
Merge pull request #252 from DBCG/feature-hapi-502
brynrhodes Sep 14, 2020
72c9b7f
Fix various build warnings
JPercival Sep 9, 2020
626ac69
Merge pull request #247 from DBCG/bug-fix-build-warnings
JPercival Sep 14, 2020
5b68c2c
Add reference checks to HAPI properties
JPercival Sep 10, 2020
f6e7021
Merge pull request #249 from DBCG/feature-allow-disable-reference-checks
Sep 14, 2020
807d600
Merge pull request #2 from DBCG/develop
mdube7 Sep 15, 2020
8a5581d
Initial commit
dubem7 Sep 9, 2020
4c7680a
Fix issue with nested activities
dubem7 Sep 9, 2020
889640e
Remove unnecessary lists
dubem7 Sep 9, 2020
ef14fa1
Remove extra example
dubem7 Sep 9, 2020
d2a85bd
Address review comments
dubem7 Sep 15, 2020
f962a00
Update eval for Quantity in library eval
Sep 15, 2020
5e9377d
Fix the FHIR Quantity, not CQL Quantity
Sep 16, 2020
751eba7
Update eval for Quantity in library $evaluate
Sep 15, 2020
7d0feca
Merge branch 'library-quantity-eval' of https://github.com/DBCG/cqf-r…
Sep 16, 2020
dd3c377
Make FHIR type valueQuantity
Sep 16, 2020
9e43291
Merge pull request #253 from DBCG/library-quantity-eval
Sep 16, 2020
9678ed8
Remove Test Files
dubem7 Sep 17, 2020
39c19c2
Merge pull request #1 from mcode/nested-plan-defs
mdube7 Sep 17, 2020
238306c
bundle and script
radamson Aug 26, 2020
2f20a6c
add patient to bundle
radamson Aug 26, 2020
12117e9
use request groups
radamson Sep 16, 2020
8a5a37a
build requestgroup at the endg
radamson Sep 16, 2020
cdc1978
closer...
radamson Sep 16, 2020
0679772
all references are now contained
radamson Sep 16, 2020
9d56086
cleanup
radamson Sep 16, 2020
531bf31
remove extra plandefs to use the existing ones
radamson Sep 16, 2020
9f36170
allow absolute canonical urls for PlanDefinition References
radamson Sep 17, 2020
18e147d
remove unused import
radamson Sep 18, 2020
66ef53c
remove uncessary stream()
radamson Sep 18, 2020
0da45a3
remove unnecessary JAXBException
radamson Sep 18, 2020
8982e6c
remove redundant initializer
radamson Sep 18, 2020
0e5b75c
remove redundant initializer
radamson Sep 18, 2020
5f5f89d
mark fields as final
radamson Sep 18, 2020
57e1c58
remove unused JAXBException import
radamson Sep 18, 2020
6d026cc
remove redundant variable assignment
radamson Sep 18, 2020
0bcee81
Merge pull request #3 from mcode/request-group
dehall Sep 18, 2020
90fb296
move contained helpers to their own class
radamson Sep 18, 2020
1733e43
javadoc
radamson Sep 18, 2020
498eb7c
address PR comments
radamson Sep 18, 2020
3851c28
Merge pull request #5 from mcode/fix-nested-contained
dehall Sep 18, 2020
e2271ae
Fixe to dockerfile
JPercival Sep 18, 2020
8d1fdff
More tweaks to docker config management
JPercival Sep 21, 2020
06a12bc
Change comment
dubem7 Sep 22, 2020
04e1a89
loop for items and answers in QuestionnaireResponse extract operation
Sep 22, 2020
0f7561a
Merge pull request #254 from DBCG/questionnareResponseItemLoop
brynrhodes Sep 22, 2020
9fc14fc
Merge pull request #6 from mcode/fix-comment
dehall Sep 22, 2020
6c47b10
#251: Fixed primary library resolution incorrectly using id in some c…
brynrhodes Sep 29, 2020
a6a2a92
Prep for 0.4.0 Release
JPercival Sep 30, 2020
20f09e7
Merge pull request #258 from DBCG/develop
brynrhodes Sep 30, 2020
93b6972
Add names to poms
JPercival Oct 1, 2020
164e651
Merge pull request #259 from DBCG/develop
JPercival Oct 1, 2020
38092eb
Rev to 0.4.1
JPercival Oct 1, 2020
53c0e51
Merge pull request #257 from DBCG/fix-251-primary-library-resolution
JPercival Oct 3, 2020
a72f949
Fix Measure Report Evaluated Resources.
ZackAustin Oct 5, 2020
e83d4f9
Issue #200 - Expose ruler version via CapabilityStatement
sliver007 Oct 6, 2020
1dd7a17
Merge pull request #263 from DBCG/feature_200_version_in_metadata
JPercival Oct 6, 2020
db1e3d4
Springify all the providers and cds-hooks servlet
JPercival Oct 3, 2020
7ece7e4
Add version information to jar and war
JPercival Oct 6, 2020
df2359d
Merge pull request #260 from DBCG/feature-springify
JPercival Oct 6, 2020
5d3bc9a
Resolve conflicts and add changes to Dstu3
JPercival Oct 6, 2020
85ef292
Merge pull request #262 from DBCG/fix-measure-evaluated-resources
JPercival Oct 6, 2020
64e86c6
Merge pull request #264 from DBCG/mcode-requestgroup-nestedplandefs
brynrhodes Oct 11, 2020
4e0aa7c
Bump CDS Hooks component to develop snapshot
brynrhodes Oct 12, 2020
4ab9f1d
change so that the Observation code is the code for the Questionnare …
Oct 19, 2020
3d304af
adjusted to use the full url in QR.questionnaire
Oct 20, 2020
ddcbb09
renamed variable to be more accurate
Oct 20, 2020
cd8b76c
removal of debug code
Oct 20, 2020
9af1240
Merge pull request #265 from DBCG/questionnaireCode
brynrhodes Oct 20, 2020
c02f9c8
Fix server base default address
JPercival Nov 12, 2020
56c35af
Update build script
JPercival Nov 17, 2020
0fb1fee
Fix duplicate deploy
JPercival Nov 17, 2020
71785d4
Fixing issue where sdeListItem.get(0) is returning an ArrayList inste…
seanmcilvenna Dec 10, 2020
3cfd585
Not all sdeKey values have a - in it
seanmcilvenna Dec 10, 2020
900b123
Update Dockerfile
michael-misiaszek Dec 10, 2020
a09ab3e
Update Dockerfile
michael-misiaszek Dec 10, 2020
38961e7
Revert "Update Dockerfile"
seanmcilvenna Jan 4, 2021
4587090
Revert "Update Dockerfile"
seanmcilvenna Jan 4, 2021
163f4b0
Merge pull request #267 from lantanagroup/eval-bug-fixes
JPercival Jan 5, 2021
15e5d04
Updated to 1.5.1-SNAPSHOT engine
sliver007 Jan 14, 2021
89a94bc
update to 1.5.1 release
sliver007 Jan 14, 2021
1b21046
Merge pull request #271 from DBCG/update_cqframework_version_151
JPercival Jan 14, 2021
89f2372
Allowing numeric-only resource IDs
seanmcilvenna Jan 14, 2021
991f1c5
Merge pull request #272 from lantanagroup/allow-numeric-ids
Jan 15, 2021
38d2ad6
DSTU3 ID strategy changed to ANY
sliver007 Jan 15, 2021
6ebcda9
Simplify branching strategy, automate releases, make build warnings e…
JPercival Feb 19, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 33 additions & 42 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,44 @@ language: java
jdk: openjdk11
os: linux
dist: xenial

services:
- docker

- docker
cache:
timeout: 180
directories:
- "$HOME/.m2/repository"

install:
- mvn install -U -DskipTests=true -Dmaven.javadoc.skip=true -B -V

- ./scripts/install.sh
script:
# master or PRs into master, use the release profile
- 'if [[ "$TRAVIS_BRANCH" =~ master* ]]; then mvn test -B -P release; fi'
- 'if ! [[ "$TRAVIS_BRANCH" =~ master* ]]; then mvn test -B; fi'


## export GPG details
before_deploy:
- 'if [[ "$TRAVIS_BRANCH" =~ master* ]]; then echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --import; fi'
- 'if [[ "$TRAVIS_BRANCH" =~ master* ]]; then echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --import-ownertrust; fi'
- 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin'

# NOTE: tests were already run as part of the script phase
deploy:
# deploy develop as a snapshot
- provider: script
script: "cp .travis.settings.xml $HOME/.m2/settings.xml && mvn deploy -DskipTests=true && docker build . -t contentgroup/cqf-ruler:develop && docker push contentgroup/cqf-ruler:develop"
cleanup: false
skip_cleanup: true # This is the current correct option, but is soon to be deprecated by the above.
on:
branch: develop
# deploy master to production
- provider: script
script: "cp .travis.settings.xml $HOME/.m2/settings.xml && mvn deploy -P release -DskipTests=true && docker build . -t contentgroup/cqf-ruler && docker push contentgroup/cqf-ruler"
cleanup: false
skip_cleanup: true # This is the current correct option, but is soon to be deprecated by the above.
on:
branch: master

# Remove the binaries generated by this build so that the cache isn't invalidated.
# Probably a better way to do this.
- ./scripts/test.sh
before_cache:
- rm -rf $HOME/.m2/repository/org/opencds/cqf/parent
- rm -rf $HOME/.m2/repository/org/opencds/cqf/common
- rm -rf $HOME/.m2/repository/org/opencds/cqf/dstu3
- rm -rf $HOME/.m2/repository/org/opencds/cqf/r4
- rm -rf $HOME/.m2/repository/org/opencds/cqf/cqf-ruler-dstu3
- rm -rf $HOME/.m2/repository/org/opencds/cqf/cqf-ruler-r4
- rm -rf $HOME/.m2/repository/org/opencds/cqf/parent
- rm -rf $HOME/.m2/repository/org/opencds/cqf/common
- rm -rf $HOME/.m2/repository/org/opencds/cqf/dstu3
- rm -rf $HOME/.m2/repository/org/opencds/cqf/r4
- rm -rf $HOME/.m2/repository/org/opencds/cqf/cqf-ruler-dstu3
- rm -rf $HOME/.m2/repository/org/opencds/cqf/cqf-ruler-r4
after_success:
- ./scripts/deploy.sh
deploy:
provider: releases
api_key:
secure: M4rVJAVsMEnKPKas8jt+Ih/VVw1kpeyYyDP7wQxklW4qNiCRPBCx+UBSEx3J4JF4BWSNUCwER/6XGo530bDwA2IFzlEzfuAqB2FJLCT2Po9KvaWChEGs9GSRxDybkT2mqOIriEm1ePO+1eNs2yjY/qpmEGgYik8cs9TMnt1io0s6IGVHS1bl0bw0urwVti7TjgMNmHrjtVoO9pwj7REs5htXNhl7QuNOfhCawMkkLvi7Q8vUQnYBffT6llDZVWkAKfHfvHGA2HDBTB48sa9EciVgy7ORKEmhba0vinn3Vbfm4RaOoMTSjJjlBC+ojeHyYgBxoQFnMrXFO21x7vlPAbbSKviOuQUxxFr8OJ9Ijb4JXWTWNBYyTA9a2E8BQw48zbqw7vZRkw+x2x1JUZ3Vb+UW13iLASwQvGC+b/ivSZHxTZj8YNoHBnzU3fbJYZzpp28NKApVBsNI1+X07fZ0eq18bzIXy6XU5hb7aVhn4XqmUEAE1+kanxSFwq7DCC4OJpdKSaV9Dq9+9ZpJvJcsOZ9uP10E6dMWKoDPF1vME/FK43riRyZ2Nax3pqq3q21TEthOWg3LfETvk4hGYfAkzsN/+nKlnwHHlxKCJW3p7KKjN6FE9IZZ3xhL7CdK+dKA9jwfgo2Cq9QlnmpJDM9vfZhawzna9JDh0wInZh4H+oc=
file_glob: true
file: "target/**/*.jar"
skip_cleanup: true
name: CQF Ruler $TRAVIS_TAG
overwrite: true
target_commitish: $TRAVIS_COMMIT
on:
tags: true
notifications:
slack:
- rooms:
- secure: UcwCk/9xDrkLXtaHPXJAsJuyZN7MIzRunndBpxMk/fwiAF56ZscPMu5IlPN72x2TqdkDPDAykGnczQ/w76txFcIzyH9/06fmXh//8XL/YWpERsfCW9q1XOn+xTTXwrxF5f6eaAMqYlNDe5tXLCOHCEnuHpdFNnFoNasZ2dTqaDNP+jjPLlSO0zhVv5zW4d75lpklg2+SQra5smgKW4eXJO6z4mXFJtkhN/lKwlgKCKbC+G8o3QO+zSJouyeCmr6xdPkTob1va8jNuR1SRIlk943btmZAUlfLh9pUMO2Hhay1BJhXpFrO5ZE3eCwU9jaoCyoTTPcVBytOKKNbGr1miRM/fDdxDYUMGQbqmkKDMqTZzkeLSbQPH92bs2lUILZf0xr2wbi8mZICdz0HZwRkaLzF6okIeQ69/b7/QNbDXAxKlT0DaShtidVbUfwNb/mUOXc3fkjn8vShPn7n9xtdLQvrGR9bJVHHBIDYS+dge2EtdPzsrmHsEhGS153uytPgF+zcYwRN83Xpyjk78+AMQFmzorErz6I+74ZQyXFzN4Z2Z1SfeGGpBp7uUK7dDD1WYVk370hf5oU19euWdSWmzBDajrLlalH25VKt140lQBMU6QyDmdraWM0f0iut034QbTUisOo+O2Km0AhZdTVTVmZSyLOJ6Ec+lusU2AHtayM=
on_success: always
on_failure: never
- rooms:
- secure: CNBq9ztma598N0CBeQNcvwvx6d+jHnI0B8iWAedqJ+oX+kYwCb4tBRTEwtflB0aQndAzn/5fba0S4tQ1gP9liRWb+RQIeBHVQgopEg7iNXYj6d4NIYBmVxpVq44szQI8T7mQJN/v1DFjXoCRbeMKiA5jN8OCrM4kowF4O15b+9RJ1bxbJULzop5K3WlZQQbsDSdxIuR3CGCmLakvf5G1cqHmHE1xWtXWFrNOSe32bp/Pdv7Vo5jaIeLG1b70G4SUUKk60+cwK9/NH4okewYgU5KlI+q51UW0Io8KEmsoFWV49dJ+1NfINM7uArVS3nNeJViMumR2ba1L1gUjGXj9FkuuIM8OS9FaxSss0IaQ8z+gNekuQLyvrE4020UNGY4/b1B8IueQcs+sucs4juCnvyTGdAEGiT23mVWdurqjT6qFTzYHSbXXd23KlmFoeLs46Iwo4mXwx6pxoUmBbNKpSXs7/irCz0GJHXjJAOb3JXxyBohyimKlfBZu1ZJhLytcsQD9SIVpX5B97SD1xD99BAN3sFgDUtZ91usLc3eSg1jaHmaSimw9PVGcoXHEkxiJYzQVPuZNQtwmRSu0zezAv9DhbkNzZAEBkC+vt1dBWzj9T9An3AwIlyANSb0P2qtC7wreHzvLq5duHA0zKGaMjtAZecnEXpIeuhuJhfximP4=
on_success: never
on_failure: always
18 changes: 9 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
FROM jetty:9-jre11

USER jetty:jetty

# Default database directory
RUN mkdir -p /var/lib/jetty/target
COPY ./cqf-ruler-dstu3/target/cqf-ruler-dstu3.war /var/lib/jetty/webapps/cqf-ruler-dstu3.war
COPY ./cqf-ruler-r4/target/cqf-ruler-r4.war /var/lib/jetty/webapps/cqf-ruler-r4.war

#Default config directory
RUN mkdir -p /var/lib/jetty/webapps/config

COPY --chown=jetty:jetty ./cqf-ruler-dstu3/target/cqf-ruler-dstu3.war /var/lib/jetty/webapps/cqf-ruler-dstu3.war
COPY --chown=jetty:jetty ./cqf-ruler-r4/target/cqf-ruler-r4.war /var/lib/jetty/webapps/cqf-ruler-r4.war
EXPOSE 8080

ENV SERVER_ADDRESS_DSTU3="http://localhost:8080/cqf-ruler-dstu3/fhir"
ENV SERVER_ADDRESS_R4="http://localhost:8080/cqf-ruler-r4/fhir"
# TODO: Handle these. We probably want some convention to map between the ENV variables and the hapi.properties
# ENV SERVER_BASE="/cqf-ruler/baseDstu3"
# ENV HIBERNATE_DIALECT="hibernate.dialect=ca.uhn.fhir.jpa.util.DerbyTenSevenHapiFhirDialect"
# ENV DATASOURCE_DRIVER="org.apache.derby.jdbc.EmbeddedDriver"
# ENV DATASOURCE_URL="jdbc:derby:directory:target/jpaserver_derby_files;create=true"
# ENV DATASOURCE_URL= DATASOURCE_USERNAME=
ENV JAVA_OPTIONS="-Dhapi.properties.DSTU3=/var/lib/jetty/webapps/dstu3.properties -Dhapi.properties.R4=/var/lib/jetty/webapps/r4.properties"
ENV JAVA_OPTIONS=""

COPY --chown=jetty:jetty ./scripts/docker-entrypoint-override.sh /docker-entrypoint-override.sh
ENTRYPOINT [ "/docker-entrypoint-override.sh" ]
Expand Down
103 changes: 87 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,107 @@
# cqf-ruler

The CQF Ruler is an implementation of FHIR's [Clinical Reasoning Module](
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.opencds.cqf/cqf-ruler-r4/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.opencds.cqf/cqf-ruler-r4) [![Build Status](https://www.travis-ci.com/DBCG/cqf-ruler.svg?branch=master)](https://www.travis-ci.com/DBCG/cqf-ruler) [![docker image](https://img.shields.io/docker/v/contentgroup/cqf-ruler/latest?style=flat&color=brightgreen&label=docker%20image)](https://hub.docker.com/r/contentgroup/cqf-ruler/tags) [![project chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://chat.fhir.org/#narrow/stream/179220-cql)

The CQF Ruler is a set of plugins for the [HAPI FHIR Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) that provides an implementation of FHIR's [Clinical Reasoning Module](
http://hl7.org/fhir/clinicalreasoning-module.html) and serves as a
knowledge artifact repository and clinical decision support service.
knowledge artifact repository and a [cds-hooks](https://cds-hooks.org/) compatible clinical decision support service. It does this via integrating a number of other CQL-related projects, which are listed below.

## Usage
## Usage

- `mvn jetty:run -am --projects cqf-ruler-dstu3`
- Starts embedded Jetty server accessible at base URL `http://localhost:8080/cqf-ruler-dstu3/`
### Docker

For R4 use `mvn jetty:run -am --projects cqf-ruler-r4`
The easiest way to get started with the cqf-ruler is to pull and run the docker image

- `mvn package -DskipTests=false`
- Builds the project war file (cqf-ruler-dstu3.war and cqf-ruler-r4.war in the projects' target directory)
- Runs the test suite (tests are skipped by default)

Visit the [wiki](https://github.com/DBCG/cqf-ruler/wiki) for more documentation.
```bash
docker pull contentgroup/cqf-ruler
docker run -p 8080:8080 contentgroup/cqf-ruler
```

This will make the cqf-ruler available on `http://localhost:8080/cqf-ruler-r4`

## Dependencies
Other options for deployment are listed on the [wiki](https://github.com/DBCG/cqf-ruler/wiki) for more documentation.

Before the instructions in the above "Usage" section will work, you need to
install several primary dependencies.
## Development

### Java
### Dependencies

#### Java

Go to [http://www.oracle.com/technetwork/java/javase/downloads/](
http://www.oracle.com/technetwork/java/javase/downloads/) and download the
latest (version 11 or higher) JDK for your platform, and install it.

### Apache Maven 3.5.3
#### Apache Maven 3.5.3

Go to [https://maven.apache.org](https://maven.apache.org), visit the main
"Download" page, and under "Files" download the 3.5.3 binary. Then unpack that archive file and follow the installation
instructions in its README.txt. The end result of this should be that the
binary "mvn" is now in your path.

### Build

`mvn package`

Builds the project war file (cqf-ruler-dstu3.war and cqf-ruler-r4.war in the projects' target directory)

Visit the [wiki](https://github.com/DBCG/cqf-ruler/wiki) for more documentation.

### Run

To run the cqf-ruler directory from this project use:

#### DSTU3

`mvn jetty:run -am --projects cqf-ruler-dstu3`

The cqf-ruler will be available at `http://localhost:8080/cqf-ruler-dstu3/`

#### R4

`mvn jetty:run -am --projects cqf-ruler-r4`

The cqf-ruler will be available at `http://localhost:8080/cqf-ruler-r4/`

## Commit Policy

All new development takes place on `<feature>` branches off `master`. Once feature development on the branch is complete, the feature branch is submitted to `master` as a PR. The PR is reviewed by maintainers and regression testing by the CI build occurs.

Changes to the `master` branch must be done through an approved PR. Delete branches after merging to keep the repository clean.

Merges to `master` trigger a deployment to the Maven Snapshots repositories. Once ready for a release, the `master` branch is updated with the correct version number and is tagged. Tags trigger a full release to Maven Central and a corresponding release to Github. Releases SHALL NOT have a SNAPSHOT version, nor any SNAPSHOT dependencies.

## Getting Help

Additional documentation is on the [wiki](https://github.com/DBCG/cqf-ruler/wiki).

Bugs and feature requests can be filed with [Github Issues](https://github.com/cqframework/cqf-ruler/issues).

The implementers are active on the official FHIR [Zulip chat for CQL](https://chat.fhir.org/#narrow/stream/179220-cql).

Inquires for commercial support can be directed to [[email protected]]([email protected]).

## Related Projects

[Clinical Quality Language](https://github.com/cqframework/clinical_quality_language) - Tooling in support of the CQL specification, including the CQL verifier/translator used in this project.

[CQL Evaluator](https://github.com/DBCG/cql-evaluator) - Provides the CQL execution environment used by the cqf-ruler.

[CQF Tooling](https://github.com/cqframework/cqf-tooling) - Provides several operations that the cqf-ruler exposes are services, such as $refresh-generated content.

[CQL Support for Atom](https://atom.io/packages/language-cql) - Open source CQL IDE with syntax highlighting, linting, and local CQL evaluation.

## License

Copyright 2019+ Dynamic Content Group, LLC (dba Alphora)

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](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.
1 change: 1 addition & 0 deletions common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@

<groupId>org.opencds.cqf</groupId>
<artifactId>common</artifactId>
<name>cqf-ruler-common</name>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,24 @@
import java.sql.Driver;

import org.apache.commons.dbcp2.BasicDataSource;
import org.opencds.cqf.cds.providers.ProviderConfiguration;
import org.opencds.cqf.cql.engine.fhir.searchparam.SearchParameterResolver;
import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import ca.uhn.fhir.jpa.dao.DaoConfig;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.jpa.api.config.DaoConfig;
import ca.uhn.fhir.jpa.model.config.PartitionSettings;
import ca.uhn.fhir.jpa.model.entity.ModelConfig;
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;

@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = "org.opencds.cqf.common")
public class FhirServerConfig {

private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirServerConfig.class);
Expand All @@ -28,6 +34,9 @@ public class FhirServerConfig {
private Boolean allowOverrideDefaultSearchParams = HapiProperties.getAllowOverrideDefaultSearchParams();
private String emailFrom = HapiProperties.getEmailFrom();

private Boolean enforceReferentialIntegrityOnWrite = HapiProperties.getEnforceReferentialIntegrityOnWrite();
private Boolean enforceReferentialIntegrityOnDelete = HapiProperties.getEnforceReferentialIntegrityOnDelete();

public FhirServerConfig() {
ourLog.info("Server configured to " + (this.allowContainsSearches ? "allow" : "deny") + " contains searches");
ourLog.info("Server configured to " + (this.allowMultipleDelete ? "allow" : "deny") + " multiple deletes");
Expand All @@ -36,6 +45,10 @@ public FhirServerConfig() {
ourLog.info("Server configured to " + (this.allowPlaceholderReferences ? "allow" : "deny") + " placeholder references");
ourLog.info("Server configured to " + (this.allowOverrideDefaultSearchParams ? "allow" : "deny")
+ " overriding default search params");
ourLog.info("Server configured to " + (this.enforceReferentialIntegrityOnDelete ? "enforce" : "ignore")
+ " referential integrity on delete");
ourLog.info("Server configured to " + (this.enforceReferentialIntegrityOnDelete ? "enforce" : "ignore")
+ " referential integrity on write");
}

/**
Expand All @@ -51,6 +64,8 @@ public DaoConfig daoConfig() {
retVal.setExpungeEnabled(this.expungeEnabled);
retVal.setAutoCreatePlaceholderReferenceTargets(this.allowPlaceholderReferences);
retVal.setEmailFromAddress(this.emailFrom);
retVal.setEnforceReferentialIntegrityOnDelete(this.enforceReferentialIntegrityOnDelete);
retVal.setEnforceReferentialIntegrityOnWrite(this.enforceReferentialIntegrityOnWrite);

Integer maxFetchSize = HapiProperties.getMaximumFetchSize();
retVal.setFetchSizeDefaultMaximum(maxFetchSize);
Expand All @@ -75,15 +90,6 @@ public ModelConfig modelConfig() {
return modelConfig;
}

/**
* The following bean configures the database connection. The 'url' property
* value of "jdbc:derby:directory:jpaserver_derby_files;create=true" indicates
* that the server should save resources in a directory called
* "jpaserver_derby_files".
*
* A URL to a remote database could also be placed here, along with login
* credentials and other properties supported by BasicDataSource.
*/
@Bean(destroyMethod = "close")
public BasicDataSource dataSource() throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException,
InvocationTargetException, InstantiationException {
Expand Down Expand Up @@ -118,4 +124,23 @@ public LoggingInterceptor loggingInterceptor() {
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
return new ResponseHighlighterInterceptor();
}

@Bean
public PartitionSettings partitionSettings() {
return new PartitionSettings();
}

@Bean()
public ProviderConfiguration providerConfiguration() {
return new ProviderConfiguration(
HapiProperties.getCdsHooksFhirServerExpandValueSets(),
HapiProperties.getCdsHooksFhirServerMaxCodesPerQuery(),
HapiProperties.getCdsHooksFhirServerSearchStyleEnum(),
HapiProperties.getCdsHooksPreFetchMaxUriLength());
}

@Bean()
public SearchParameterResolver searchParameterResolver(FhirContext fhirContext) {
return new SearchParameterResolver(fhirContext);
}
}
Loading