Inferno International Patient Access (IPA) Test Kit
The Inferno International Patient Access Test Kit provides an executable set of tests for the International Patient Access (IPA) Implementation Guide. This test kit is designed and maintained by the Inferno team to support the development of the IPA IG and improve the core Inferno Framework.
This test kit includes a preliminary test suite based on the Inferno US Core test suite.
The Office of the National Coordinator for Health IT (ONC) provides a running instance of these tests that can be accessed at https://inferno.healthit.gov/suites/ipa_v100
Local Installation Instructions (Docker required)
- Install Docker
- Clone this repository
- Run
setup.sh
in this repo to pull the needed docker images and set up the database. - Run
run.sh
to build and run the Inferno environment - Navigate to
http://localhost
to access the Inferno IPA Test Suite
Maintaining this Test Kit
The tests within this Test Kit are created using a generator that parses
the implementation guide provided in ./lib/ipa_test_kit/igs
and writes
Inferno DSL tests to ./lib/ipa_test_kit/generated
. Resource instances
are validated using the HL7 FHIR Validator, and will use the tx.fhir.org
terminology service to validate terminology by default.
To update this test kit to a new version of the IG:
- Add the .tgz file in
./lib/ipa_test_kit/igs
with the new version of the IG package. This IG will be used by the HL7 FHIR Validator to validate resource instances when Inferno is started. - Run the generator to generate a new version-specific copy of the IPA suite. After installing Ruby, run the following:
bundle install
bundle exec rake ipa:generate
- Tell Inferno to load the new version of the test suite by
adding a new line to
./lib/ipa_test_kit.rb
, similar to the existing lines. For example:
require_relative 'ipa_test_kit/generated/v2.0.0/ipa_test_suite'
While the tests should be stable, the generator is still under development and will likely need to be updated if there is any major structural changes to how the implementation guide represents constraints. For example, if the implementation guide alters its strategy for conveying Must Support requirements, the generator will need to be updated.
The generator is located in ./lib/ipa_test_kit/generator
, and is a fork of the
US Core generator after being altered based on differing requirements. Updates include:
- Inclusion of a full set of search parameters from the FHIR specification, as IPA does not provide a copy of them like US Core does.
- Altered method for validating Provenance records, as there is no requirement for supporting Provenance READ interaction.
TODOS
- Support
client-confidential-asymmetric
. - Verify that the server supports all required SMART capabilities, rather than just verifying that the server advertises support for them.
- Test
$docref
operation. - Test
Patient.link
requirements. - Verify that the server requires both a code and system for Patient identifier search.
License
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.
Trademark Notice
HL7, FHIR and the FHIR [FLAME DESIGN] are the registered trademarks of Health Level Seven International and their use does not constitute endorsement by HL7.