davinci_dtr_test_kit 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/lib/davinci_dtr_test_kit/auth_groups/token_request_test.rb +1 -1
  3. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_dinner_questionnaire_package_request_test.rb +52 -0
  4. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_launch_attestation_test.rb +28 -0
  5. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_attestation_test.rb +30 -0
  6. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_override_attestation_test.rb +27 -0
  7. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_representation_attestation_test.rb +33 -0
  8. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_questionnaire_workflow_group.rb +81 -0
  9. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb +30 -0
  10. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_store_attestation_test.rb +29 -0
  11. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb +134 -0
  12. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{prepopulation_attestation_test.rb → dtr_smart_app_prepopulation_attestation_test.rb} +2 -2
  13. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{prepopulation_override_attestation_test.rb → dtr_smart_app_prepopulation_override_attestation_test.rb} +2 -2
  14. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{dtr_questionnaire_response_save_test.rb → dtr_smart_app_questionnaire_response_save_test.rb} +2 -2
  15. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb +13 -13
  16. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{rendering_enabled_questions_attestation_test.rb → dtr_smart_app_rendering_enabled_questions_attestation_test.rb} +2 -2
  17. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_resp_questionnaire_package_request_test.rb +64 -27
  18. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  19. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +1 -1
  20. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb +1 -0
  21. data/lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md +127 -0
  22. data/lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md +2 -2
  23. data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +4 -12
  24. data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +2 -2
  25. data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +1 -1
  26. data/lib/davinci_dtr_test_kit/fixture_loader.rb +1 -1
  27. data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +1 -1
  28. data/lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_dinner_order_static.json +1 -1
  29. data/lib/davinci_dtr_test_kit/mock_auth_server.rb +25 -15
  30. data/lib/davinci_dtr_test_kit/mock_ehr.rb +8 -3
  31. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_next_questionnaire_expressions_test.rb +1 -1
  32. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_request_validation_test.rb +10 -19
  33. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +6 -6
  34. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +6 -6
  35. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +16 -18
  36. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_request_validation_test.rb +6 -7
  37. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_response_validation_test.rb +3 -1
  38. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb +9 -20
  39. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +7 -14
  40. data/lib/davinci_dtr_test_kit/validation_test.rb +8 -9
  41. data/lib/davinci_dtr_test_kit/version.rb +1 -1
  42. data/lib/davinci_dtr_test_kit.rb +1 -1
  43. metadata +18 -9
  44. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_dinner_questionnaire_package_request_test.rb +0 -97
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e95ac1a81ec266133aa196823f9c4af450b6ff0c628b2ca9dccbb0fcd3b32863
4
- data.tar.gz: d4ac1d46eadaa7f1067d07b4811e00803308f8d1c91cf9165f6e17534a280449
3
+ metadata.gz: 5120a6592cc4d31933d917e3214c89c8d505cdf6f8c3d5065d000588988052a8
4
+ data.tar.gz: c850d248ab0ae414fe399d03749d781e9f8c186525d67ba76c0d9cbad509aa17
5
5
  SHA512:
6
- metadata.gz: 22b65864b0795e2355b17d19b78d262524b29a9c0b1352603cd226a8d5c135a5bb0566c6c8449ce4ea0516ebedbee1e7a94965d7448e98a927b07716bd65c049
7
- data.tar.gz: 0daaae716b201d20f99c768e5a7bc9d6ae997f953ab2d238862298ab00a39d82746b5e1a71537f13eeb09ea260c097955a22487405128aa5cbe9339cc1860fce
6
+ metadata.gz: 852190bb650b3f15d3fe25e79a08ba78778aeb85f836f32f6ed5e925859f14196cfb9d5719246a625c85803db6a606526ee2e735669bed0d574adaac3b23b8d9
7
+ data.tar.gz: 30e796f34e0b3e6b9088a2883af8bda32f8ac26d945c66cc6d4070b925c0eb40b362b9f76036d62b07aef6cc89d41e8c133efbb95d1bfb01233aa0289bd5889b
@@ -17,7 +17,7 @@ module DaVinciDTRTestKit
17
17
  message: %(
18
18
  Submit your token request to
19
19
 
20
- `#{token_url}`
20
+ `#{payer_token_url}`
21
21
  )
22
22
  )
23
23
  end
@@ -0,0 +1,52 @@
1
+ require 'base64'
2
+ require_relative '../../urls'
3
+
4
+ module DaVinciDTRTestKit
5
+ class DTRFullEHRDinnerQuestionnairePackageRequestTest < Inferno::Test
6
+ include URLs
7
+
8
+ id :dtr_full_ehr_dinner_questionnaire_package_request
9
+ title 'Invoke the DTR Questionnaire Package operation'
10
+ description %(
11
+ Inferno will wait for a DTR questionnaire package request from the client. Upon receipt, Inferno will generate and
12
+ send a response.
13
+ )
14
+
15
+ input :access_token,
16
+ description: %(
17
+ `Bearer` token that the client under test will send in the
18
+ `Authorization` header of each HTTP request to Inferno. Inferno
19
+ will look for this value to associate requests with this session.
20
+ )
21
+
22
+ run do
23
+ wait(
24
+ identifier: access_token,
25
+ message: %(
26
+ ### Questionnaire Package
27
+
28
+ Inferno will wait for the Full EHR to invoke the DTR Questionnaire Package operation by sending a POST
29
+ request to
30
+
31
+ `#{questionnaire_package_url}`
32
+
33
+ A questionnaire package generated by Inferno will be returned.
34
+
35
+ ### Request Identification
36
+
37
+ In order to identify requests for this session, Inferno will look for
38
+ an `Authorization` header with value:
39
+
40
+ ```
41
+ Bearer #{access_token}
42
+ ```
43
+
44
+ ### Continuing the Tests
45
+
46
+ When the DTR application has finished loading the Questionnaire
47
+ [Click here](#{resume_pass_url}?token=#{access_token}) to continue.
48
+ )
49
+ )
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,28 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerLaunchAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_launch_attestation
8
+ title 'Launch DTR for a patient that has an official name (Attestation)'
9
+ description %(
10
+ Attest that DTR has been launched for a patient with data that will be used for prepopulation.
11
+ )
12
+ input :access_token
13
+
14
+ run do
15
+ wait(
16
+ identifier: access_token,
17
+ message: %(
18
+ I attest that DTR has been launched in the context of a patient with an official name, including
19
+ first and last.
20
+
21
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
22
+
23
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
24
+ )
25
+ )
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerPrepopulationAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_rendering_prepopulation_attestation
8
+ title 'Check that the client pre-populates the questionnaire (Attestation)'
9
+ description %(
10
+ Validate that pre-population of patient name information occurs as expected.
11
+ )
12
+ input :access_token
13
+
14
+ run do
15
+ wait(
16
+ identifier: access_token,
17
+ message: %(
18
+ I attest that the DTR application pre-populates the following questions with the respective
19
+ value for the official name of the patient:
20
+ - Last Name
21
+ - First Name
22
+
23
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
24
+
25
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
26
+ )
27
+ )
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerPrepopulationOverrideAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_prepopulation_override_attestation
8
+ title 'Validate the user can override pre-populated data (Attestation)'
9
+ description %(
10
+ Validate that the user can edit a pre-populated item and replace it with another value.
11
+ )
12
+ input :access_token
13
+
14
+ run do
15
+ wait(
16
+ identifier: access_token,
17
+ message: %(
18
+ I attest that I have changed the prepopulated value in the First Name field to a new value.
19
+
20
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
21
+
22
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
23
+ )
24
+ )
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,33 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerPrepopulationRepresentationAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_prepopulation_representation_attestation
8
+ title 'Verify the QuestionnaireResponse representation of the item data sources (Attestation)'
9
+ description %(
10
+ Attest that the QuestionnaireResponse representation of the stored answers includes the required
11
+ source indicators, including `auto`, `override`, and `manual`.
12
+ )
13
+ input :access_token
14
+
15
+ run do
16
+ wait(
17
+ identifier: access_token,
18
+ message: %(
19
+ I attest that the QuestionnaireResponse representation of the stored answers includes the
20
+ [orgin extension with source details](https://build.fhir.org/ig/HL7/davinci-dtr/StructureDefinition-information-origin.html),
21
+ including on the following fields entered during the tests:
22
+ - PBD.1 (Last Name): `auto`
23
+ - PBD.2 (First Name): `override`
24
+ - 3.1 (dinner choice): `manual`
25
+
26
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
27
+
28
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
29
+ )
30
+ )
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,81 @@
1
+ require_relative 'dtr_full_ehr_launch_attestation_test'
2
+ require_relative 'dtr_full_ehr_dinner_questionnaire_package_request_test'
3
+ require_relative '../shared/dtr_questionnaire_package_request_validation_test'
4
+ require_relative 'dtr_full_ehr_prepopulation_attestation_test'
5
+ require_relative 'dtr_full_ehr_prepopulation_override_attestation_test'
6
+ require_relative 'dtr_full_ehr_rendering_enabled_questions_attestation_test'
7
+ require_relative 'dtr_full_ehr_store_attestation_test'
8
+ require_relative 'dtr_full_ehr_prepopulation_representation_attestation_test'
9
+
10
+ module DaVinciDTRTestKit
11
+ class DTRFullEHRStaticDinnerQuestionnaireWorkflowGroup < Inferno::TestGroup
12
+ id :dtr_full_ehr_static_dinner_questionnaire_workflow
13
+ title 'Static Questionnaire Workflow'
14
+ description %(
15
+ This test validates that a DTR Full EHR client can perform a full DTR Static Questionnaire workflow
16
+ using a mocked questionnaire requesting what a patient wants for dinner. The client system must
17
+ demonstrate its ability to:
18
+
19
+ 1. Fetch the static questionnaire package
20
+ ([DinnerOrderStatic](https://github.com/inferno-framework/davinci-dtr-test-kit/blob/main/lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_dinner_order_static.json))
21
+ 2. Render and pre-populate the questionnaire appropriately, including:
22
+ - pre-populate data as directed by the questionnaire
23
+ - display questions only when they are enabled by other answers
24
+ 3. Complete and store the questionnaire response for future use.
25
+ )
26
+
27
+ group do
28
+ id :dtr_full_ehr_static_questionnaire_retrieval
29
+ title 'Retrieving the Static Questionnaire'
30
+ description %(
31
+ After DTR launch, Inferno will wait for the client system to request a questionnaire using the
32
+ $questionnaire-package operation and will return a static questionnaire for the
33
+ tester to complete. Inferno will then validate the the conformance of the request.
34
+ )
35
+ run_as_group
36
+
37
+ # Test 0: attest to launch
38
+ test from: :dtr_full_ehr_dinner_static_launch_attestation
39
+ # Test 1: wait for the $questionnaire-package request
40
+ test from: :dtr_full_ehr_dinner_questionnaire_package_request
41
+ # Test 2: validate the $questionnaire-package body
42
+ test from: :dtr_questionnaire_package_request_validation
43
+ end
44
+
45
+ group do
46
+ id :dtr_full_ehr_static_questionnaire_rendering
47
+ title 'Filling Out the Static Questionnaire'
48
+ description %(
49
+ The tester will interact with the questionnaire within their client system
50
+ such that pre-population steps are taken, the qustionnaire is rendered, and
51
+ they are able to fill it out. The tester will attest that questionnaire pre-population
52
+ and rendering directives were followed.
53
+ )
54
+ run_as_group
55
+
56
+ # Test 1: attest to the pre-population of the name fields
57
+ test from: :dtr_full_ehr_dinner_static_rendering_prepopulation_attestation
58
+ # Test 2: attest to the pre-population and edit of the first name field
59
+ test from: :dtr_full_ehr_dinner_static_prepopulation_override_attestation
60
+ # Test 3: attest to the display of the toppings questions only when a dinner answer is selected
61
+ test from: :dtr_full_ehr_dinner_static_rendering_enabledQs_attestation
62
+ end
63
+
64
+ group do
65
+ id :dtr_full_ehr_static_questionnaire_response
66
+ title 'Saving the QuestionnaireResponse'
67
+ description %(
68
+ The tester will attest to the completion of the questionnaire such that
69
+ the results are stored for later use.
70
+ )
71
+ run_as_group
72
+
73
+ # Test 1: attest QuestionnaireResponse saved
74
+ test from: :dtr_full_ehr_dinner_static_store_attestation
75
+ # Test 2: validate basic conformance of the QuestionnaireResponse
76
+ # - not using currently
77
+ # Test 3: validate workflow-specific details such as pre-population and overrides
78
+ test from: :dtr_full_ehr_dinner_static_prepopulation_representation_attestation
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,30 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerRenderingAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_rendering_enabledQs_attestation
8
+ title 'Check that the client renders enabled questions appropriately (Attestation)'
9
+ description %(
10
+ Validate that the rendering of the questionnaire includes only the "What would you like on..."
11
+ question appropriate for the dinner selection, if made.
12
+ )
13
+ input :access_token
14
+
15
+ run do
16
+ wait(
17
+ identifier: access_token,
18
+ message: %(
19
+ I attest that the client application does not display any "What would you like on..."
20
+ questions until I have selected a dinner choice and then only displays the
21
+ "What would you like on..." question relevant for the dinner request:
22
+
23
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
24
+
25
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
26
+ )
27
+ )
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,29 @@
1
+ require_relative '../../urls'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRStaticDinnerStoreAttestationTest < Inferno::Test
5
+ include URLs
6
+
7
+ id :dtr_full_ehr_dinner_static_store_attestation
8
+ title 'Complete and Store the QuestionnaireResponse (Attestation)'
9
+ description %(
10
+ Attest that the questionnaire has been completed and the response has been persisted
11
+ and can be exported as a FHIR QuestionnaireResponse instance.
12
+ )
13
+ input :access_token
14
+
15
+ run do
16
+ wait(
17
+ identifier: access_token,
18
+ message: %(
19
+ I attest that the questionnaire has been completed and stored within the EHR for future
20
+ use and export as a FHIR QuestionnaireResponse instance.
21
+
22
+ [Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
23
+
24
+ [Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
25
+ )
26
+ )
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,134 @@
1
+ require 'base64'
2
+ require_relative '../../urls'
3
+
4
+ module DaVinciDTRTestKit
5
+ class DTRSmartAppDinnerQuestionnairePackageRequestTest < Inferno::Test
6
+ include URLs
7
+
8
+ id :dtr_smart_app_dinner_questionnaire_package_request
9
+ title 'Invoke the DTR Questionnaire Package operation'
10
+ description %(
11
+ Inferno will wait for a DTR questionnaire package request from the client. Upon receipt, Inferno will generate and
12
+ send a response.
13
+ )
14
+ input :smart_app_launch,
15
+ type: 'radio',
16
+ title: 'SMART App Launch',
17
+ description: 'How will the DTR SMART App launch?',
18
+ options: { list_options: [{ label: 'EHR Launch from Inferno', value: 'ehr' },
19
+ { label: 'Standalone Launch', value: 'standalone' }] }
20
+ input :client_id
21
+ input :launch_uri,
22
+ optional: true,
23
+ description: 'Required if "Launch from Inferno" is selected'
24
+ input :smart_patient_id,
25
+ optional: true,
26
+ title: 'SMART App Launch Patient ID (Dinner Static)',
27
+ type: 'text',
28
+ description: %(
29
+ Patient instance `id` to be provided by Inferno as the `patient` as a part of the SMART App
30
+ Launch.
31
+ ),
32
+ default: 'pat015'
33
+ input :smart_fhir_context,
34
+ optional: true,
35
+ title: 'SMART App Launch fhirContext (Dinner Static)',
36
+ type: 'textarea',
37
+ description: %(
38
+ References to be provided by Inferno as the `fhirContext` as a part of the SMART App
39
+ Launch. These references help determine the behavior of the app. Referenced instances
40
+ may be provided in the "EHR-available resources" input.
41
+ ),
42
+ default: JSON.pretty_generate([{ reference: 'Coverage/cov015' },
43
+ { reference: 'DeviceRequest/devreqe0470' }])
44
+ input :ehr_bundle,
45
+ optional: true,
46
+ title: 'EHR-available resources (Dinner Static)',
47
+ type: 'textarea',
48
+ description: %(
49
+ Resources available from the EHR needed to drive the dinner static workflow.
50
+ Formatted as a FHIR bundle that contains resources, each with an `id` property populated. Each
51
+ instance present will be available for retrieval from Inferno at the endpoint:
52
+
53
+ ```
54
+ [fhir-base]/[resource type]/[instance id]
55
+ ```
56
+ )
57
+
58
+ def example_client_jwt_payload_part
59
+ Base64.strict_encode64({ inferno_client_id: client_id }.to_json).delete('=')
60
+ end
61
+
62
+ run do
63
+ # validate relevant inputs and provide warnings if they are bad
64
+ warning do
65
+ if smart_fhir_context
66
+ assert_valid_json(smart_fhir_context,
67
+ 'The **SMART App Launch fhirContext** input is not valid JSON, so it will not be included in
68
+ the access token response.')
69
+ end
70
+ end
71
+
72
+ warning do
73
+ if ehr_bundle
74
+ assert_valid_json(ehr_bundle,
75
+ 'The **EHR-available resources** input is not valid JSON, so no tester-specified instances
76
+ will be available to access from Inferno.')
77
+ assert(FHIR.from_contents(ehr_bundle).is_a?(FHIR::Bundle),
78
+ 'The **EHR-available resources** input does not contain a FHIR Bundle, so no tester-specified instances
79
+ will be available to access from Inferno.')
80
+ end
81
+ end
82
+
83
+ launch_prompt = if smart_app_launch == 'ehr'
84
+ %(Launch the DTR SMART App from Inferno by right clicking
85
+ [this link](#{launch_uri}?iss=#{fhir_base_url}&launch=#{launch_uri})
86
+ and selecting or "Open in new window" or "Open in new tab".)
87
+ else
88
+ %(Launch the SMART App from your EHR.)
89
+ end
90
+ inferno_prompt_cont = %(As the DTR app steps through the launch steps, Inferno will wait and respond to the app's
91
+ requests for SMART configuration, authorization and access token.)
92
+
93
+ wait(
94
+ identifier: client_id,
95
+ message: %(
96
+ ### SMART App Launch
97
+
98
+ #{launch_prompt}
99
+
100
+ #{inferno_prompt_cont if smart_app_launch == 'ehr'}
101
+
102
+ Then, Inferno will expect the SMART App to invoke the DTR Questionnaire Package operation by sending a POST
103
+ request to
104
+
105
+ `#{questionnaire_package_url}`
106
+
107
+ A questionnaire package generated by Inferno will be returned.
108
+
109
+ ### Pre-population
110
+
111
+ Inferno will then wait for the client to complete Questionnaire pre-population. The client should make FHIR
112
+ GET requests using service base path:
113
+
114
+ `#{fhir_base_url}`
115
+
116
+ ### Request Identification
117
+
118
+ In order to identify requests for this session, Inferno will look for
119
+ an `Authorization` header with value:
120
+
121
+ ```
122
+ Bearer eyJhbGciOiJub25lIn0.#{example_client_jwt_payload_part}.
123
+ ```
124
+
125
+ ### Continuing the Tests
126
+
127
+ When the DTR application has finished loading the Questionnaire,
128
+ including any clinical data requests to support pre-population,
129
+ [Click here](#{resume_pass_url}?client_id=#{client_id}) to continue.
130
+ )
131
+ )
132
+ end
133
+ end
134
+ end
@@ -1,10 +1,10 @@
1
1
  require_relative '../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRStaticDinnerPrepopulationAttestationTest < Inferno::Test
4
+ class DTRSmartAppStaticDinnerPrepopulationAttestationTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_dinner_static_rendering_prepopulation_attestation
7
+ id :dtr_smart_app_dinner_static_rendering_prepopulation_attestation
8
8
  title 'Check that the client pre-populates the questionnaire (Attestation)'
9
9
  description %(
10
10
  Validate that pre-population of patient name information occurs as expected.
@@ -1,10 +1,10 @@
1
1
  require_relative '../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRStaticDinnerPrepopulationOverrideAttestationTest < Inferno::Test
4
+ class DTRSmartAppStaticDinnerPrepopulationOverrideAttestationTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_dinner_static_prepopulation_override_attestation
7
+ id :dtr_smart_app_dinner_static_prepopulation_override_attestation
8
8
  title 'Validate the user can override pre-populated data (Attestation)'
9
9
  description %(
10
10
  Validate that the user can edit a pre-populated item and replace it with another value.
@@ -1,10 +1,10 @@
1
1
  require_relative '../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRStaticDinnerQuestionnaireResponseSaveTest < Inferno::Test
4
+ class DTRSmartAppStaticDinnerQuestionnaireResponseSaveTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_static_dinner_questionnaire_response_save
7
+ id :dtr_smart_app_static_dinner_questionnaire_response_save
8
8
  title 'Save the QuestionnaireResponse after completing it'
9
9
  description %(
10
10
  Inferno, acting as the EHR, will wait for a request to save the QuestionnaireResponse from the client.
@@ -1,9 +1,9 @@
1
- require_relative 'dtr_dinner_questionnaire_package_request_test'
1
+ require_relative 'dtr_smart_app_dinner_questionnaire_package_request_test'
2
2
  require_relative '../shared/dtr_questionnaire_package_request_validation_test'
3
- require_relative 'prepopulation_attestation_test'
4
- require_relative 'prepopulation_override_attestation_test'
5
- require_relative 'rendering_enabled_questions_attestation_test'
6
- require_relative 'dtr_questionnaire_response_save_test'
3
+ require_relative 'dtr_smart_app_prepopulation_attestation_test'
4
+ require_relative 'dtr_smart_app_prepopulation_override_attestation_test'
5
+ require_relative 'dtr_smart_app_rendering_enabled_questions_attestation_test'
6
+ require_relative 'dtr_smart_app_questionnaire_response_save_test'
7
7
  require_relative '../shared/dtr_questionnaire_response_basic_conformance_test'
8
8
  require_relative '../shared/dtr_questionnaire_response_pre_population_test'
9
9
 
@@ -27,7 +27,7 @@ module DaVinciDTRTestKit
27
27
  )
28
28
 
29
29
  group do
30
- id :dtr_static_questionnaire_retrieval
30
+ id :dtr_smart_app_static_questionnaire_retrieval
31
31
  title 'Retrieving the Static Questionnaire'
32
32
  description %(
33
33
  Inferno will wait for the client system to request a questionnaire using the
@@ -37,13 +37,13 @@ module DaVinciDTRTestKit
37
37
  run_as_group
38
38
 
39
39
  # Test 1: wait for the $questionnaire-package request
40
- test from: :dtr_dinner_questionnaire_package_request
40
+ test from: :dtr_smart_app_dinner_questionnaire_package_request
41
41
  # Test 2: validate the $questionnaire-package body
42
42
  test from: :dtr_questionnaire_package_request_validation
43
43
  end
44
44
 
45
45
  group do
46
- id :dtr_static_questionnaire_rendering
46
+ id :dtr_smart_app_static_questionnaire_rendering
47
47
  title 'Filling Out the Static Questionnaire'
48
48
  description %(
49
49
  The tester will interact with the questionnaire within their client system
@@ -58,15 +58,15 @@ module DaVinciDTRTestKit
58
58
  # since the questionnaire asks them to
59
59
  # TODO: once Tom has gotten the reference server hooked up
60
60
  # Test 2: attest to the pre-population of the name fields
61
- test from: :dtr_dinner_static_rendering_prepopulation_attestation
61
+ test from: :dtr_smart_app_dinner_static_rendering_prepopulation_attestation
62
62
  # Test 3: attest to the pre-population and edit of the location field
63
- test from: :dtr_dinner_static_prepopulation_override_attestation
63
+ test from: :dtr_smart_app_dinner_static_prepopulation_override_attestation
64
64
  # Test 4: attest to the display of the toppings questions only when a dinner answer is selected
65
- test from: :dtr_dinner_static_rendering_enabledQs_attestation
65
+ test from: :dtr_smart_app_dinner_static_rendering_enabledQs_attestation
66
66
  end
67
67
 
68
68
  group do
69
- id :dtr_static_questionnaire_response
69
+ id :dtr_smart_app_static_questionnaire_response
70
70
  title 'Saving the QuestionnaireResponse'
71
71
  description %(
72
72
  The tester will complete the questionnaire such that a QuestionnaireResponse is stored
@@ -77,7 +77,7 @@ module DaVinciDTRTestKit
77
77
  run_as_group
78
78
 
79
79
  # Test 1: wait for a QuestionnaireResponse
80
- test from: :dtr_static_dinner_questionnaire_response_save,
80
+ test from: :dtr_smart_app_static_dinner_questionnaire_response_save,
81
81
  receives_request: :questionnaire_response_save
82
82
  # Test 2: validate basic conformance of the QuestionnaireResponse
83
83
  test from: :dtr_questionnaire_response_basic_conformance,
@@ -1,10 +1,10 @@
1
1
  require_relative '../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRStaticDinnerRenderingAttestationTest < Inferno::Test
4
+ class DTRSmartAppStaticDinnerRenderingAttestationTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_dinner_static_rendering_enabledQs_attestation
7
+ id :dtr_smart_app_dinner_static_rendering_enabledQs_attestation
8
8
  title 'Check that the client renders enabled questions appropriately (Attestation)'
9
9
  description %(
10
10
  Validate that the rendering of the questionnaire includes only the "What would you like on..."