{"id":24752051,"url":"https://github.com/inferno-framework/davinci-dtr-test-kit","last_synced_at":"2025-10-10T23:30:17.182Z","repository":{"id":244048893,"uuid":"807784372","full_name":"inferno-framework/davinci-dtr-test-kit","owner":"inferno-framework","description":"Conformance Testing for the Da Vinci Documentation Templates and Rules FHIR Implementation Guide","archived":false,"fork":false,"pushed_at":"2025-09-23T15:58:52.000Z","size":1929,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-01T13:35:18.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inferno-framework.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-29T19:06:32.000Z","updated_at":"2025-07-31T19:52:11.000Z","dependencies_parsed_at":"2024-06-12T16:52:12.919Z","dependency_job_id":"3a37bb25-1891-4177-a6c4-9db4e5c8c7de","html_url":"https://github.com/inferno-framework/davinci-dtr-test-kit","commit_stats":null,"previous_names":["inferno-framework/davinci-dtr-test-kit"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/inferno-framework/davinci-dtr-test-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdavinci-dtr-test-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdavinci-dtr-test-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdavinci-dtr-test-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdavinci-dtr-test-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inferno-framework","download_url":"https://codeload.github.com/inferno-framework/davinci-dtr-test-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inferno-framework%2Fdavinci-dtr-test-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001051,"owners_count":26082991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T10:34:37.513Z","updated_at":"2025-10-10T23:30:17.173Z","avatar_url":"https://github.com/inferno-framework.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Da Vinci Documentation Templates and Rules (DTR) v2.0.1 Test Kit\n\nThe Da Vinci Documentation Templates and Rules (DTR) STU 2.0.1 Test Kit validates the\nconformance of systems to the\n[DTR STU 2.0.1 FHIR IG](https://hl7.org/fhir/us/davinci-dtr/STU2).\nThe test kit includes suites targeting the following actors from the specification:\n\n- **Payer Servers**: Inferno will act as a client and make a series of\n  requests to the server under test requesting questionnaires.\n- **DTR SMART App**: Inferno will act as a server implementing the\n  payer server and light EHR capabilities and responding to requests\n  for questionnaires and clinical data made by the app under test.\n- **DTR Full EHR**: Inferno will act as a server implementing the\n  payer server responding to requests for questionnaires made by\n  the EHR under test.\n- **DTR Light EHR**: Inferno will act as a DTR SMART App that will connect\n  to the DTR Light EHR system under test and make requests to the Light EHR under test.\n\nIn each case, content provided by the system under test will be checked individually\nfor conformance and in aggregate to determine that the full set of features is\nsupported.\n\nThis test kit is [open source](#license) and freely available for use or\nadoption by the health IT community including EHR vendors, health app\ndevelopers, and testing labs. It is built using the [Inferno\nFramework](https://inferno-framework.github.io/). The Inferno Framework is\ndesigned for reuse and aims to make it easier to build test kits for any\nFHIR-based data exchange.\n\n## Status\n\nThese tests are a **DRAFT** intended to allow DTR implementers to perform\npreliminary checks of their implementations against DTR IG requirements and provide\nfeedback on the tests. Future versions of these tests may validate other\nrequirements and may change how these are tested.\n\n## Test Scope and Limitations\n\nThe DTR specification is complex and evolving and these tests do not yet\ncover the full scope of the specification.\n\nFor the implemented actors, see suite-specific documentation on current limitations\nfor the [payer server](lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md#limitations),\n[DTR SMART App](lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md#limitations),\n[DTR Full EHR](lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md#limitations)\ntests\n[DTR Light EHR](lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md#limitations)\n\n## How to Run\n\nUse either of the following methods to run the suites within this test kit.\nIf you would like to try out the tests but don’t have a DTR implementation,\nthe test home pages include instructions for trying out the tests, including\n\n- For payer server testing: running the tests against the DTR SMART App tests in this Test Kit\n- For DTR SMART App testing: a [sample postman collection](config/DTR%20SMART%20App%20Tests%20Postman%20Demo.postman_collection.json)\n- For DTR Full EHR testing: [sample postman collection](config/DTR%20Full%20EHR%20Tests%20Postman%20Demo.postman_collection.json)\n- For DTR Light EHR testing: running the tests against the Inferno Reference Server using [this preset](config/presets/light_ehr_ref_server_prod.json), or a local instance of the Inferno Reference Server using [this preset](config/presets/light_ehr_ref_server_local.json)\n\nDetailed instructions can be found in the suite descriptions when the tests\nare run or within this repository for the\n[payer server](lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md#running-the-tests),\n[DTR SMART App](lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md#running-the-tests),\n[DTR Full EHR](lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md#running-the-tests),\nand [DTR Light EHR](lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md#running-the-tests).\n\n### ONC Hosted Instance\n\nYou can run the DTR test kit via the [ONC Inferno](https://inferno.healthit.gov/test-kits/davinci-dtr/) website by choosing the “Da Vinci Documentation Templates and Rules (DTR) Test Kit” test kit.\n\n### Local Inferno Instance\n\n- Download the source code from this repository.\n- [Start or identify](#fhir-server-simulation-for-the-client-suite)\n  an Inferno Reference Server instance for Inferno to use for simulation (only needed if\n  planning to run the DTR SMART App test suite).\n- Open a terminal in the directory containing the downloaded code.\n- In the terminal, run `setup.sh`.\n- In the terminal, run `run.sh`.\n- Use a web browser to navigate to `http://localhost`.\n\n## FHIR Server Simulation for the DTR SMART App Suite and DTR Light EHR Suite Demonstration\n\nThe DTR SMART App test suite needs to be able to return responses to FHIR read and search APIs.\nThese responses can be complex and so the suite relies on a full FHIR server to provide\nresponses for it to provide back to systems under test. The test kit was written to work\nwith the [Inferno Reference Server](https://github.com/inferno-framework/inferno-reference-server)\n\n- loaded with [patient pat015](https://github.com/inferno-framework/inferno-reference-server/blob/main/resources/dtr_bundle_patient_pat015.json)\n- accepting bearer token `SAMPLE_TOKEN` for read access.\n\nThis same DTR-specific patient file in the Inferno Reference Server can be used to demonstrate the DTR Light EHR suite capabilities in the absence of a DTR Light EHR implementation.\n\n### Simulation Server Configuration For Local Test Kit Execution\n\nThe test kit can be configured to point to either a local instance of the reference server or\nto a public instance. The location of the following are valid configuration approaches:\n\n1. Point to a public instance of the Inferno reference server at either\n   `https://inferno.healthit.gov/reference-server/r4/` or\n   `https://inferno-qa.healthit.gov/reference-server/r4/`: update the `FHIR_REFERENCE_SERVER`\n   environment variable in the appropriate environment file (`.evn.production` when running\n   in docker [as above](#local-inferno-instance), or `env.development` when\n   [running the test kit in Ruby](#development)).\n2. Run a local instance of the Inferno Reference Server, either\n   [with docker](https://github.com/inferno-framework/inferno-reference-server?tab=readme-ov-file#running-with-docker)\n   or [without docker](https://github.com/inferno-framework/inferno-reference-server?tab=readme-ov-file#running-without-docker)\n   (NOTE: this decision can be made independently from whether to run the test kit with\n   docker or using Ruby).\n\n## Providing Feedback and Reporting Issues\n\nWe welcome feedback on the tests, including but not limited to the following areas:\n\n- Validation logic, such as potential bugs, lax checks, and unexpected failures.\n- Requirements coverage, such as requirements that have been missed and tests that necessitate features that the IG does not require.\n- User experience, such as confusing or missing information in the test UI.\n\nPlease report any issues with this set of tests in the issues section of this repository.\n\n## Development\n\nTo make updates and additions to this test kit, see the\n[Inferno Framework Documentation](https://inferno-framework.github.io/docs/),\nparticularly the instructions on\n[development with Ruby](https://inferno-framework.github.io/docs/getting-started/#development-with-ruby).\n\n### Client Questionnaire Workflow Test Framework\n\nTo support testing that clients can fetch, populate, and complete various questionnaires with different features, the test kit includes a framework for building different iterations of these tests. At a high-level, the framework includes the ability to associate a set of fixtures with a group of tests including\n\n- a questionnaire that will be sent back when the client makes a $questionnaire-package request\n- a questionnaire response that contains expected pre-populated and overridden items. These are indicated by the origin.source extension on items with link ids corresponding to items in the questionnaire with cql expressions for pre-population. When it is `auto` that is the expected answer based on data Inferno has. When it is `override` that is the answer that would be present if the pre-populated answer were used, but Inferno will check that a different value is present since the tester will be expected to override the answer.\n\nSee logic in `mock_payer`, `dtr_questionnaire_response_validation`, and `fixture_loader`, among others.\n\n### Additional Implementations\n\nTo exercise the test kit for the purposes of demoing or debugging, one option is to use the HL7 Da Vinci Documentation\nRequirements Lookup Service (DRLS) reference implementation. Instructions to set up the reference implementation can be\nfound [here](https://github.com/HL7-DaVinci/CRD/blob/master/SetupGuideForMacOS.md). This setup includes downloading five\ndifferent git repositories. Note that changes are currently necessary to these components to allow\nthem to send requests to Inferno for the purposes of testing.\n\n## License\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at\n\n```\nhttp://www.apache.org/licenses/LICENSE-2.0\n```\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n\n## Trademark Notice\n\nHL7, FHIR and the FHIR [FLAME DESIGN] are the registered trademarks of Health\nLevel Seven International and their use does not constitute endorsement by HL7.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finferno-framework%2Fdavinci-dtr-test-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finferno-framework%2Fdavinci-dtr-test-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finferno-framework%2Fdavinci-dtr-test-kit/lists"}