Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
3a17ec8
First draft for v1.0.0
Jul 10, 2026
155d08c
Add v1.0.0 test suite to test kit
Jul 10, 2026
debc1eb
update package to 1.0.0-ballot
Aug 18, 2026
68cf926
fix version numbers
Aug 18, 2026
100f53e
Add MS choices for DocumentReference, Encounter, Goal, MedicationRequ…
Aug 26, 2026
9a25c2a
Handle us-quality-core-uscdi-quality-extension. Change metadata name …
Aug 26, 2026
7741bd0
Add must support choice for Observation, Procedure, and Patient
Aug 26, 2026
a521537
Update must_support choice
Aug 26, 2026
fff9a5d
Remove redundant uscdi_only tag
Aug 26, 2026
763a6db
Update USCDI must support tests
Aug 27, 2026
212c256
rubocop
Aug 27, 2026
30a5f70
rubocop
Aug 27, 2026
b9ae3f2
Update documentreference tests
Aug 27, 2026
4a166ec
fix adi-dociment-reference id
Aug 31, 2026
8cb9c79
fix patient, adverseevent, careplan
Sep 1, 2026
ac3327e
Fix to Device
Sep 1, 2026
79c4e4c
Must Support fixed
Sep 1, 2026
94101ad
fix order of DeviceRequest, MedicationRequest, and ServiceRequest
Sep 1, 2026
a1838bd
remove generated empty lines
Sep 1, 2026
c51a64e
rubocop
Sep 1, 2026
8073bbf
Add SmokingStatusType valueset
Sep 1, 2026
8220407
Set patient+status as first search for Communication groups
Sep 2, 2026
6298654
fix some validation errors
Sep 2, 2026
35645c2
split DeviceRequest resources
Sep 2, 2026
1ab6753
fix more sample data
Sep 2, 2026
9857891
update data to usqalitycore-v1
Sep 3, 2026
afd5e4d
generate client codes
Sep 4, 2026
5f1d5dd
Fix rubocop
Sep 4, 2026
21ebcc9
remove Patient's genderIdentity extension
Sep 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/data/*.db
/data/*.db-journal
/data/inferno_*.db*
/data/igs/*.tgz
/data/redis/*.rdb
/data/redis/*.aof
Expand Down
3,358 changes: 2,464 additions & 894 deletions client-example-resources/us_quality_core_bundle_patient.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: SearchParameter us-quality-core-adverseevent-recorded-date</b></p><a name=\"us-quality-core-adverseevent-recorded-date\"> </a><a name=\"hcus-quality-core-adverseevent-recorded-date\"> </a><h2>UsQualityCoreAdverseeventRecordedDate</h2><p>Parameter <code>recorded-date</code>:<code>date</code></p><div><p>US Quality Core AdverseEvent recorded-date Search Parameter</p>\n</div><table class=\"grid\"><tr><td>Resource</td><td><a href=\"http://hl7.org/fhir/R4/adverseevent.html\">AdverseEvent</a></td></tr><tr><td>Expression</td><td><code>AdverseEvent.recordedDate</code></td></tr><tr><td>Processing Mode</td><td>Normal</td></tr><tr><td>Multiples</td><td><ul><li>multipleAnd: The parameter may repeat in order to specify multiple values that must all be true</li><li>multipleOr: The parameter may have multiple values (separated by comma) where at least one must be true</li></ul></td></tr><tr><td>Comparators</td><td>Allowed: eq, ne, gt, ge, lt, le, sa, eb, ap</td></tr></table></div>"
},
"url": "http://fhir.org/guides/onc/us-quality-core/SearchParameter/us-quality-core-adverseevent-recorded-date",
"url": "http://hl7.org/fhir/us/quality-core/SearchParameter/us-quality-core-adverseevent-recorded-date",
"version": "0.5.0",
"name": "UsQualityCoreAdverseeventRecordedDate",
"status": "active",
Expand Down Expand Up @@ -151,7 +151,7 @@
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: SearchParameter us-quality-core-devicerequest-do-not-perform</b></p><a name=\"us-quality-core-devicerequest-do-not-perform\"> </a><a name=\"hcus-quality-core-devicerequest-do-not-perform\"> </a><h2>UsQualityCoreDevicerequestDoNotPerform</h2><p>Parameter <code>do-not-perform</code>:<code>token</code></p><div><p>US Quality Core DeviceRequest do-not-perform Search Parameter</p>\n</div><table class=\"grid\"><tr><td>Resource</td><td><a href=\"http://hl7.org/fhir/R4/devicerequest.html\">DeviceRequest</a></td></tr><tr><td>Expression</td><td><code>DeviceRequest.modifierExtension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceRequest.doNotPerform').value</code></td></tr><tr><td>Processing Mode</td><td>Normal</td></tr><tr><td>Multiples</td><td><ul><li>multipleAnd: The parameter may repeat in order to specify multiple values that must all be true</li><li>multipleOr: The parameter may have multiple values (separated by comma) where at least one must be true</li></ul></td></tr></table></div>"
},
"url": "http://fhir.org/guides/onc/us-quality-core/SearchParameter/us-quality-core-devicerequest-do-not-perform",
"url": "http://hl7.org/fhir/us/quality-core/SearchParameter/us-quality-core-devicerequest-do-not-perform",
"version": "0.5.0",
"name": "UsQualityCoreDevicerequestDoNotPerform",
"status": "active",
Expand Down Expand Up @@ -203,7 +203,7 @@
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: SearchParameter us-quality-core-medicationrequest-do-not-perform</b></p><a name=\"us-quality-core-medicationrequest-do-not-perform\"> </a><a name=\"hcus-quality-core-medicationrequest-do-not-perform\"> </a><h2>UsQualityCoreMedicationrequestDoNotPerform</h2><p>Parameter <code>do-not-perform</code>:<code>token</code></p><div><p>US Quality Core MedicationRequest do-not-perform Search Parameter</p>\n</div><table class=\"grid\"><tr><td>Resource</td><td><a href=\"http://hl7.org/fhir/R4/medicationrequest.html\">MedicationRequest</a></td></tr><tr><td>Expression</td><td><code>MedicationRequest.doNotPerform</code></td></tr><tr><td>Processing Mode</td><td>Normal</td></tr><tr><td>Multiples</td><td><ul><li>multipleAnd: The parameter may repeat in order to specify multiple values that must all be true</li><li>multipleOr: The parameter may have multiple values (separated by comma) where at least one must be true</li></ul></td></tr></table></div>"
},
"url": "http://fhir.org/guides/onc/us-quality-core/SearchParameter/us-quality-core-medicationrequest-do-not-perform",
"url": "http://hl7.org/fhir/us/quality-core/SearchParameter/us-quality-core-medicationrequest-do-not-perform",
"version": "0.5.0",
"name": "UsQualityCoreMedicationrequestDoNotPerform",
"status": "active",
Expand Down Expand Up @@ -255,7 +255,7 @@
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: SearchParameter us-quality-core-servicerequest-do-not-perform</b></p><a name=\"us-quality-core-servicerequest-do-not-perform\"> </a><a name=\"hcus-quality-core-servicerequest-do-not-perform\"> </a><h2>UsQualityCoreServicerequestDoNotPerform</h2><p>Parameter <code>do-not-perform</code>:<code>token</code></p><div><p>US Quality Core ServiceRequest do-not-perform Search Parameter</p>\n</div><table class=\"grid\"><tr><td>Resource</td><td><a href=\"http://hl7.org/fhir/R4/servicerequest.html\">ServiceRequest</a></td></tr><tr><td>Expression</td><td><code>ServiceRequest.doNotPerform</code></td></tr><tr><td>Processing Mode</td><td>Normal</td></tr><tr><td>Multiples</td><td><ul><li>multipleAnd: The parameter may repeat in order to specify multiple values that must all be true</li><li>multipleOr: The parameter may have multiple values (separated by comma) where at least one must be true</li></ul></td></tr></table></div>"
},
"url": "http://fhir.org/guides/onc/us-quality-core/SearchParameter/us-quality-core-servicerequest-do-not-perform",
"url": "http://hl7.org/fhir/us/quality-core/SearchParameter/us-quality-core-servicerequest-do-not-perform",
"version": "0.5.0",
"name": "UsQualityCoreServicerequestDoNotPerform",
"status": "active",
Expand Down Expand Up @@ -294,6 +294,55 @@
"multipleOr": true,
"multipleAnd": true
}
},
{
"request": {
"method": "PUT",
"url": "SearchParameter/us-quality-core-communication-topic"
},
"resource": {
"resourceType" : "SearchParameter",
"id" : "us-quality-core-communication-topic",
"language" : "en",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: SearchParameter us-quality-core-communication-topic</b></p><a name=\"us-quality-core-communication-topic\"> </a><a name=\"hcus-quality-core-communication-topic\"> </a><h2>USQualityCoreCommunicationTopic</h2><p>Parameter <code>topic</code>:<code>token</code></p><div><p>US Quality Core Communication topic Search Parameter</p>\n</div><table class=\"grid\"><tr><td>Resource</td><td><a href=\"http://hl7.org/fhir/R4/communication.html\">Communication</a></td></tr><tr><td>Expression</td><td><code>Communication.topic</code></td></tr><tr><td>Processing Mode</td><td>Normal</td></tr><tr><td>Multiples</td><td><ul><li>multipleAnd: The parameter may repeat in order to specify multiple values that must all be true</li><li>multipleOr: The parameter may have multiple values (separated by comma) where at least one must be true</li></ul></td></tr></table></div>"
},
"url" : "http://hl7.org/fhir/us/quality-core/SearchParameter/us-quality-core-communication-topic",
"version" : "1.0.0-ballot",
"name" : "USQualityCoreCommunicationTopic",
"status" : "active",
"date" : "2026-06-30",
"publisher" : "HL7 International / Clinical Quality Information",
"contact" : [{
"name" : "HL7 International / Clinical Quality Information",
"telecom" : [{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/cqi"
}]
},
{
"name" : "Clinical Quality Information WG",
"telecom" : [{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/cqi"
}]
}],
"description" : "US Quality Core Communication topic Search Parameter",
"jurisdiction" : [{
"coding" : [{
"system" : "urn:iso:std:iso:3166",
"code" : "US"
}]
}],
"code" : "topic",
"base" : ["Communication"],
"type" : "token",
"expression" : "Communication.topic",
"xpathUsage" : "normal",
"multipleOr" : true,
"multipleAnd" : true
}
}
]
}
39 changes: 39 additions & 0 deletions config/presets/inferno_reference_server_100_ballot_preset.json.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"title": "Inferno Reference Server",
"id": null,
"test_suite_id": "us_quality_core_v100_ballot",
"inputs": [
{
"name": "url",
"type": "text",
"title": "FHIR Endpoint",
"description": "URL of the FHIR endpoint",
"value": "<%= ENV.fetch('FHIR_REFERENCE_SERVER', 'https://inferno.healthit.gov/reference-server/r4') %>"
},
{
"name": "smart_auth_info",
"optional": "true",
"type": "auth_info",
"value": {
"auth_type": "public",
"use_discovery": "true",
"client_id": "SAMPLE_PUBLIC_CLIENT_ID",
"access_token": "SAMPLE_TOKEN"
}
},
{
"name": "patient_ids",
"type": "text",
"title": "Patient IDs",
"description": "Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements",
"value": "usqualitycore-patient"
},
{
"name": "care_plan_category_code",
"type": "text",
"title": "CarePlan Category Code",
"description": "Code used for the CarePlan category search parameter",
"value": "assess-plan"
}
]
}
2 changes: 2 additions & 0 deletions lib/us_quality_core_test_kit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

# Server Suites
require_relative 'us_quality_core_test_kit/generated/v0.5.0/us_quality_core_test_suite'
require_relative 'us_quality_core_test_kit/generated/v1.0.0-ballot/us_quality_core_test_suite'

# Client Suites
require_relative 'us_quality_core_test_kit/client/generated/v0.5.0/us_quality_core_client_test_suite'
require_relative 'us_quality_core_test_kit/client/generated/v1.0.0-ballot/us_quality_core_client_test_suite'
Original file line number Diff line number Diff line change
Expand Up @@ -276,15 +276,15 @@
"type": "reference"
},
{
"name": "_id",
"name": "category",
"type": "token"
},
{
"name": "type",
"name": "_id",
"type": "token"
},
{
"name": "category",
"name": "type",
"type": "token"
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ def skip_message
end

def failure_message
"Inferno did not receive the expected read request for the target instance of the US Quality Core Device Not Requested Profile: `DeviceRequest/usqualitycore-devicenotrequested`."
"Inferno did not receive the expected read request for the target instance of the US Quality Core Device Not Requested Profile: `DeviceRequest/usqualitycore-deviceprohibited`."
end

run do
requests = load_tagged_requests(READ_DEVICE_REQUEST_TAG)
skip_if requests.blank?, skip_message

requests_for_id = filter_requests_by_resource_id(requests, 'usqualitycore-devicenotrequested')
requests_for_id = filter_requests_by_resource_id(requests, 'usqualitycore-deviceprohibited')
assert requests_for_id.any?, failure_message
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class DevicenotrequestedClientGroup < Inferno::TestGroup
## Reading
This test will check that the client performed a read of the following id:

* `usqualitycore-devicenotrequested`
* `usqualitycore-deviceprohibited`

## Searching
These tests will check that the client performed searches against the
Expand Down

This file was deleted.

Loading
Loading