davinci_dtr_test_kit 0.12.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_completion_group.rb +23 -0
  3. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_followup_questions_group.rb +26 -0
  4. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_test.rb +93 -0
  5. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_validation_test.rb +62 -0
  6. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_retrieval_group.rb +23 -0
  7. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_response_validation_test.rb +66 -0
  8. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb +76 -0
  9. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb +27 -0
  10. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_request_test.rb +63 -0
  11. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +24 -0
  12. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_request_test.rb +148 -0
  13. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_questionnaire_workflow_group.rb +75 -0
  14. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_questionnaire_workflow_group.rb +22 -28
  15. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb +14 -17
  16. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb +9 -31
  17. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_launch_attestation_test.rb +7 -6
  18. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_prepopulation_attestation_test.rb +7 -7
  19. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_prepopulation_override_attestation_test.rb +7 -7
  20. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static/dtr_full_ehr_dinner_questionnaire_package_request_test.rb → full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb} +2 -3
  21. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb +19 -0
  22. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb +37 -0
  23. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb +7 -7
  24. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb +29 -0
  25. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_store_attestation_test.rb +7 -7
  26. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb +7 -6
  27. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_resp_questionnaire_package_request_test.rb +15 -18
  28. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +7 -7
  29. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb +16 -5
  30. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_prepopulation_attestation_test.rb +7 -7
  31. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_prepopulation_override_attestation_test.rb +7 -6
  32. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_questionnaire_response_save_test.rb +17 -7
  33. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_rendering_enabled_questions_attestation_test.rb +7 -7
  34. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb +27 -0
  35. data/lib/davinci_dtr_test_kit/cql_test.rb +114 -172
  36. data/lib/davinci_dtr_test_kit/create_test.rb +25 -0
  37. data/lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md +95 -37
  38. data/lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md +34 -0
  39. data/lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md +32 -29
  40. data/lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md +48 -32
  41. data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +13 -17
  42. data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +101 -23
  43. data/lib/davinci_dtr_test_kit/dtr_options.rb +7 -0
  44. data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +9 -20
  45. data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +126 -75
  46. data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +32 -56
  47. data/lib/davinci_dtr_test_kit/endpoints/cors.rb +20 -0
  48. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/authorize_endpoint.rb +32 -0
  49. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/simple_token_endpoint.rb +19 -0
  50. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/token_endpoint.rb +116 -0
  51. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb +83 -0
  52. data/lib/davinci_dtr_test_kit/endpoints/mock_ehr/fhir_get_endpoint.rb +95 -0
  53. data/lib/davinci_dtr_test_kit/endpoints/mock_ehr/questionnaire_response_endpoint.rb +22 -0
  54. data/lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb +25 -0
  55. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb +11 -0
  56. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb +11 -0
  57. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_endpoint.rb +162 -0
  58. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb +36 -0
  59. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb +62 -0
  60. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_proxy_endpoint.rb +38 -0
  61. data/lib/davinci_dtr_test_kit/endpoints/mock_payer.rb +36 -0
  62. data/lib/davinci_dtr_test_kit/fixture_loader.rb +6 -84
  63. data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json +10 -2
  64. data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +10 -2
  65. data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_initial.json +10 -2
  66. data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/questionnaire_dinner_order_adaptive.json +4 -3
  67. data/lib/davinci_dtr_test_kit/fixtures.rb +64 -46
  68. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb +2 -2
  69. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb +4 -3
  70. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb +3 -2
  71. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_next_questionnaire_expressions_test.rb +8 -8
  72. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_next_questionnaire_extensions_test.rb +6 -5
  73. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_group.rb +2 -2
  74. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_request_validation_test.rb +2 -1
  75. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +6 -9
  76. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +15 -12
  77. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +33 -22
  78. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_request_validation_test.rb +1 -1
  79. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_response_complete_test.rb +4 -4
  80. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_response_validation_test.rb +16 -12
  81. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +2 -2
  82. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +5 -4
  83. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +4 -3
  84. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb +2 -1
  85. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +32 -23
  86. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb +29 -0
  87. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb +35 -0
  88. data/lib/davinci_dtr_test_kit/profiles/communication_request_group.rb +39 -0
  89. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb +29 -0
  90. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb +35 -0
  91. data/lib/davinci_dtr_test_kit/profiles/coverage_group.rb +38 -0
  92. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb +29 -0
  93. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb +35 -0
  94. data/lib/davinci_dtr_test_kit/profiles/device_request_group.rb +39 -0
  95. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb +29 -0
  96. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb +35 -0
  97. data/lib/davinci_dtr_test_kit/profiles/encounter_group.rb +39 -0
  98. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb +29 -0
  99. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb +35 -0
  100. data/lib/davinci_dtr_test_kit/profiles/medication_request_group.rb +39 -0
  101. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb +29 -0
  102. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb +35 -0
  103. data/lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb +39 -0
  104. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb +35 -0
  105. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +26 -0
  106. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +55 -0
  107. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +22 -0
  108. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +26 -0
  109. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +37 -0
  110. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +66 -0
  111. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +29 -0
  112. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +35 -0
  113. data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +39 -0
  114. data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +26 -0
  115. data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +29 -0
  116. data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +26 -0
  117. data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +35 -0
  118. data/lib/davinci_dtr_test_kit/profiles/task_group.rb +52 -0
  119. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +29 -0
  120. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +35 -0
  121. data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +39 -0
  122. data/lib/davinci_dtr_test_kit/read_test.rb +22 -0
  123. data/lib/davinci_dtr_test_kit/tags.rb +5 -6
  124. data/lib/davinci_dtr_test_kit/update_test.rb +25 -0
  125. data/lib/davinci_dtr_test_kit/urls.rb +13 -10
  126. data/lib/davinci_dtr_test_kit/validation_test.rb +21 -5
  127. data/lib/davinci_dtr_test_kit/version.rb +1 -1
  128. data/lib/davinci_dtr_test_kit.rb +1 -1
  129. metadata +129 -24
  130. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_representation_attestation_test.rb +0 -33
  131. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_full_ehr_questionnaire_workflow_group.rb +0 -19
  132. data/lib/davinci_dtr_test_kit/ext/inferno_core/record_response_route.rb +0 -98
  133. data/lib/davinci_dtr_test_kit/ext/inferno_core/request.rb +0 -19
  134. data/lib/davinci_dtr_test_kit/ext/inferno_core/runnable.rb +0 -35
  135. data/lib/davinci_dtr_test_kit/mock_auth_server.rb +0 -145
  136. data/lib/davinci_dtr_test_kit/mock_ehr.rb +0 -97
  137. data/lib/davinci_dtr_test_kit/mock_payer.rb +0 -123
  138. /data/lib/davinci_dtr_test_kit/fixtures/{pre_populated_questionnaire_response.json → respiratory_assist_device/pre_populated_questionnaire_response.json} +0 -0
  139. /data/lib/davinci_dtr_test_kit/fixtures/{questionnaire_package.json → respiratory_assist_device/questionnaire_package.json} +0 -0
@@ -0,0 +1,35 @@
1
+ require_relative '../../validation_test'
2
+
3
+ module DaVinciDTRTestKit
4
+ class TaskValidationTest < Inferno::Test
5
+ include DaVinciDTRTestKit::ValidationTest
6
+
7
+ title 'Task resources returned during previous tests conform to the PAS Task'
8
+ description %(
9
+ This test verifies resources returned from the read step conform to
10
+ the [PAS Task](http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-task).
11
+ Systems must demonstrate at least one valid example in order to pass this test.
12
+
13
+ It verifies the presence of mandatory elements and that elements with
14
+ required bindings contain appropriate values. CodeableConcept element
15
+ bindings will fail if none of their codings have a code/system belonging
16
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
17
+ fail if their code/system are not found in the valueset.
18
+
19
+ )
20
+
21
+ id :task_validation
22
+ input :task_resources,
23
+ optional: true
24
+
25
+ def resource_type
26
+ 'Task'
27
+ end
28
+
29
+ run do
30
+ skip_if(task_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
+ perform_profile_validation_test(task_resources, resource_type,
32
+ 'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-task|2.0.1')
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,52 @@
1
+ require_relative 'task/task_read'
2
+ require_relative 'task/task_validation'
3
+ require_relative 'task/task_create'
4
+ require_relative 'task/task_update'
5
+
6
+ module DaVinciDTRTestKit
7
+ class TaskGroup < Inferno::TestGroup
8
+ title 'PAS Task Tests'
9
+ short_description 'Verify support for the server capabilities required by the PAS Task Profile'
10
+ description %(
11
+ # Background
12
+
13
+ The PAS Task sequence verifies that the system under test is
14
+ able to provide correct responses for Task queries. These queries
15
+ must contain resources conforming to the [PAS Task Profile](http://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-task.html).
16
+
17
+ # Testing Methodology
18
+ ## Read
19
+ First, Inferno will attempt to read each Task resource id provided in
20
+ the Task IDs input. The server SHOULD be capable of returning a
21
+ Task resource using the read interaction.
22
+
23
+ ## Profile Validation
24
+ Each resource returned from the read step SHALL conform to
25
+ the [PAS Task Profile](http://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-task.html). Each
26
+ element is checked against terminology binding and cardinality requirements.
27
+
28
+ ## Create
29
+ This test sequence will perform create interactions with the provided json
30
+ Task resources. The server SHOULD be capable of creating a Task resource
31
+ using the create interaction.
32
+
33
+ ## Update
34
+ This test sequence will perform update interactions with the provided json
35
+ Task resources. The server SHOULD be capable of creating a Task resource
36
+ using the update interaction.
37
+ )
38
+ id :task_group
39
+ optional
40
+ run_as_group
41
+
42
+ input :task_ids,
43
+ title: 'Task IDs',
44
+ description: 'Comma separated list of Task IDs',
45
+ optional: true
46
+
47
+ test from: :task_read
48
+ test from: :task_validation
49
+ test from: :task_create
50
+ test from: :task_update
51
+ end
52
+ end
@@ -0,0 +1,29 @@
1
+ require_relative '../../read_test'
2
+
3
+ module DaVinciDTRTestKit
4
+ class VisionPrescriptionReadTest < Inferno::Test
5
+ include DaVinciDTRTestKit::ReadTest
6
+
7
+ title 'Server returns correct VisionPrescription resource from VisionPrescription read interaction'
8
+ description 'A server SHOULD support the VisionPrescription read interaction.'
9
+
10
+ id :vision_prescription_read
11
+ output :vision_prescription_resources
12
+
13
+ def resource_type
14
+ 'VisionPrescription'
15
+ end
16
+
17
+ def vision_prescription_id_list
18
+ return [nil] unless respond_to? :vision_prescription_ids
19
+
20
+ vision_prescription_ids&.split(',')&.map(&:strip)
21
+ end
22
+
23
+ run do
24
+ resources = perform_read_test(vision_prescription_id_list, resource_type)
25
+
26
+ output vision_prescription_resources: resources.to_json
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,35 @@
1
+ require_relative '../../validation_test'
2
+
3
+ module DaVinciDTRTestKit
4
+ class VisionPrescriptionValidationTest < Inferno::Test
5
+ include DaVinciDTRTestKit::ValidationTest
6
+
7
+ title 'VisionPrescription resources returned during previous tests conform to the CRD VisionPrescription'
8
+ description %(
9
+ This test verifies resources returned from the read step conform to
10
+ the [CRD VisionPrescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription).
11
+ Systems must demonstrate at least one valid example in order to pass this test.
12
+
13
+ It verifies the presence of mandatory elements and that elements with
14
+ required bindings contain appropriate values. CodeableConcept element
15
+ bindings will fail if none of their codings have a code/system belonging
16
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
17
+ fail if their code/system are not found in the valueset.
18
+
19
+ )
20
+
21
+ id :vision_prescription_validation
22
+ input :vision_prescription_resources,
23
+ optional: true
24
+
25
+ def resource_type
26
+ 'VisionPrescription'
27
+ end
28
+
29
+ run do
30
+ skip_if(vision_prescription_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
+ perform_profile_validation_test(vision_prescription_resources, resource_type,
32
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-visionprescription|2.0.1')
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,39 @@
1
+ require_relative 'vision_prescription/vision_prescription_read'
2
+ require_relative 'vision_prescription/vision_prescription_validation'
3
+
4
+ module DaVinciDTRTestKit
5
+ class VisionPrescriptionGroup < Inferno::TestGroup
6
+ title 'CRD VisionPrescription Tests'
7
+ short_description 'Verify support for the server capabilities required by the CRD VisionPrescription Profile'
8
+ description %(
9
+ # Background
10
+
11
+ The CRD VisionPrescription sequence verifies that the system under test is
12
+ able to provide correct responses for VisionPrescription queries. These queries
13
+ must return resources conforming to the [CRD VisionPrescription Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html).
14
+
15
+ # Testing Methodology
16
+ ## Read
17
+ First, Inferno will attempt to read each VisionPrescription resource id provided in
18
+ the VisionPrescription IDs input. The server SHOULD be capable of returning a
19
+ VisionPrescription resource using the read interaction.
20
+
21
+ ## Profile Validation
22
+ Each resource returned from the read step SHALL conform to
23
+ the [CRD VisionPrescription Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html).
24
+ Each element is checked against terminology binding and cardinality requirements.
25
+
26
+ )
27
+ id :vision_prescription_group
28
+ optional
29
+ run_as_group
30
+
31
+ input :vision_prescription_ids,
32
+ title: 'Vision Prescription IDs',
33
+ description: 'Comma separated list of VisionPrescription IDs',
34
+ optional: true
35
+
36
+ test from: :vision_prescription_read
37
+ test from: :vision_prescription_validation
38
+ end
39
+ end
@@ -0,0 +1,22 @@
1
+ module DaVinciDTRTestKit
2
+ module ReadTest
3
+ def perform_read_test(resource_ids, resource_type)
4
+ skip_if(resource_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
5
+ resources = []
6
+ resource_ids.each do |id|
7
+ fhir_read resource_type, id
8
+
9
+ assert_response_status(200)
10
+ assert_resource_type(resource_type)
11
+ assert resource.id.present? && resource.id == id, bad_resource_id_message(id)
12
+
13
+ resources.push(resource)
14
+ end
15
+ resources
16
+ end
17
+
18
+ def bad_resource_id_message(expected_id)
19
+ "Expected resource to have id: `#{expected_id.inspect}`, but found `#{resource.id.inspect}`"
20
+ end
21
+ end
22
+ end
@@ -1,8 +1,7 @@
1
- # frozen_string_literal: true
2
-
3
1
  module DaVinciDTRTestKit
4
- QUESTIONNAIRE_TAG = 'payer_server_questionnaire_package'
5
- NEXT_TAG = 'payer_server_adaptive_questionnaire_package'
6
- QUESTIONNAIRE_PACKAGE_TAG = 'dtr_questionnaire_package'
7
- SMART_APP_EHR_REQUEST_TAG = 'dtr_smart_app_ehr_request'
2
+ QUESTIONNAIRE_TAG = 'payer_server_questionnaire_package'.freeze
3
+ NEXT_TAG = 'payer_server_adaptive_questionnaire_package'.freeze
4
+ QUESTIONNAIRE_PACKAGE_TAG = 'dtr_questionnaire_package'.freeze
5
+ CLIENT_NEXT_TAG = 'dtr_questionnaire_next_question'.freeze
6
+ EHR_AUTHORIZE_TAG = 'dtr_smart_app_ehr_authorize'.freeze
8
7
  end
@@ -0,0 +1,25 @@
1
+ module DaVinciDTRTestKit
2
+ module UpdateTest
3
+ def perform_update_test(update_resources, resource_type)
4
+ skip_if(update_resources.blank?, "No `#{resource_type}` resources to update provided, skipping test.")
5
+ assert_valid_json(update_resources)
6
+ update_resources_list = JSON.parse(update_resources)
7
+ skip_if(!update_resources_list.is_a?(Array), 'Resources to update not inputted in list format, skipping test.')
8
+
9
+ valid_update_resources =
10
+ update_resources_list
11
+ .compact_blank
12
+ .map { |resource| FHIR.from_contents(resource.to_json) }
13
+ .select { |resource| resource.resourceType == resource_type }
14
+ .select { |resource| resource_is_valid?(resource:) }
15
+
16
+ skip_if(valid_update_resources.blank?,
17
+ %(No valid #{resource_type} resources were provided to send in Update requests, skipping test.))
18
+
19
+ valid_update_resources.each do |update_resource|
20
+ fhir_update(update_resource, update_resource.id)
21
+ assert_response_status([200, 201])
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,17 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaVinciDTRTestKit
4
- SMART_CONFIG_PATH = '/fhir/.well-known/smart-configuration'
5
- EHR_AUTHORIZE_PATH = '/mock_ehr_auth/authorize'
6
- EHR_TOKEN_PATH = '/mock_ehr_auth/token'
7
- PAYER_TOKEN_PATH = '/mock_payer_auth/token'
8
- QUESTIONNAIRE_PACKAGE_PATH = '/fhir/Questionnaire/$questionnaire-package'
9
- NEXT_PATH = '/fhir/Questionnaire/$next-question'
10
- QUESTIONNAIRE_RESPONSE_PATH = '/fhir/QuestionnaireResponse'
4
+ FHIR_BASE_PATH = '/fhir'
5
+ SMART_CONFIG_PATH = "#{FHIR_BASE_PATH}/.well-known/smart-configuration".freeze
6
+ OPENID_CONFIG_PATH = "#{FHIR_BASE_PATH}/.well-known/openid-configuration".freeze
7
+ JKWS_PATH = "#{FHIR_BASE_PATH}/.well-known/jwks.json".freeze
8
+ EHR_AUTHORIZE_PATH = "#{FHIR_BASE_PATH}/mock_ehr_auth/authorize".freeze
9
+ EHR_TOKEN_PATH = "#{FHIR_BASE_PATH}/mock_ehr_auth/token".freeze
10
+ PAYER_TOKEN_PATH = "#{FHIR_BASE_PATH}/mock_payer_auth/token".freeze
11
+ QUESTIONNAIRE_PACKAGE_PATH = "#{FHIR_BASE_PATH}/Questionnaire/$questionnaire-package".freeze
12
+ NEXT_PATH = "#{FHIR_BASE_PATH}/Questionnaire/$next-question".freeze
13
+ QUESTIONNAIRE_RESPONSE_PATH = "#{FHIR_BASE_PATH}/QuestionnaireResponse".freeze
14
+ FHIR_RESOURCE_PATH = "#{FHIR_BASE_PATH}/:resource/:id".freeze
15
+ FHIR_SEARCH_PATH = "#{FHIR_BASE_PATH}/:resource".freeze
11
16
  RESUME_PASS_PATH = '/resume_pass'
12
17
  RESUME_FAIL_PATH = '/resume_fail'
13
- FHIR_RESOURCE_PATH = '/fhir/:resource/:id'
14
- FHIR_SEARCH_PATH = '/fhir/:resource'
15
18
 
16
19
  module URLs
17
20
  def base_url
@@ -43,7 +46,7 @@ module DaVinciDTRTestKit
43
46
  end
44
47
 
45
48
  def fhir_base_url
46
- @fhir_base_url ||= "#{base_url}/fhir"
49
+ @fhir_base_url ||= base_url + FHIR_BASE_PATH
47
50
  end
48
51
 
49
52
  def resume_pass_url
@@ -25,6 +25,24 @@ module DaVinciDTRTestKit
25
25
  true
26
26
  end
27
27
 
28
+ def perform_profile_validation_test(
29
+ resources,
30
+ resource_type,
31
+ profile_url
32
+ )
33
+ skip_if(resources.nil?, "No `#{resource_type}` resources to validate, skipping test.")
34
+ resources = JSON.parse(resources)
35
+ resources = [resources] unless resources.is_a?(Array)
36
+ resources.each do |resource|
37
+ fhir_resource = FHIR.from_contents(resource.to_json)
38
+
39
+ assert fhir_resource.present?, 'Resource does not contain a recognized FHIR object'
40
+ assert_resource_type(resource_type, resource: fhir_resource)
41
+ assert_valid_resource(resource: fhir_resource,
42
+ profile_url:)
43
+ end
44
+ end
45
+
28
46
  def perform_request_validation_test(
29
47
  resources,
30
48
  resource_type,
@@ -42,7 +60,8 @@ module DaVinciDTRTestKit
42
60
  else
43
61
  if resource.url != resource_url
44
62
  messages << { type: 'warning',
45
- message: format_markdown("Request made to wrong URL: #{resource.request[:url]}. Should instead be to #{resource_url}") }
63
+ message: format_markdown(%(Request made to wrong URL: #{resource.request[:url]}.
64
+ Should instead be to #{resource_url})) }
46
65
  end
47
66
  fhir_resource = FHIR.from_contents(resource.request[:body])
48
67
  end
@@ -58,10 +77,7 @@ module DaVinciDTRTestKit
58
77
  omit_if resources.blank?,
59
78
  "No #{resource_type} resources provided so the #{profile_url} profile does not apply"
60
79
  resources.each_with_index do |resource, index|
61
- assert_valid_json(resource.response[:body])
62
- fhir_resource = FHIR.from_contents(resource.response[:body])
63
- assert_response_status([200, 202], request: resource, response: resource.response)
64
- validate_resource(fhir_resource, resource_type, profile_url, index)
80
+ validate_resource(resource, resource_type, profile_url, index)
65
81
  end
66
82
  return if tests_failed[profile_url].blank?
67
83
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaVinciDTRTestKit
4
- VERSION = '0.12.0'
4
+ VERSION = '0.14.0'
5
5
  end
@@ -1,4 +1,4 @@
1
1
  require_relative 'davinci_dtr_test_kit/dtr_payer_server_suite'
2
2
  require_relative 'davinci_dtr_test_kit/dtr_smart_app_suite'
3
3
  require_relative 'davinci_dtr_test_kit/dtr_full_ehr_suite'
4
- # require_relative 'davinci_dtr_test_kit/dtr_light_ehr_suite'
4
+ require_relative 'davinci_dtr_test_kit/dtr_light_ehr_suite'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: davinci_dtr_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Naden
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-09-19 00:00:00.000000000 Z
13
+ date: 2024-12-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: inferno_core
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 0.4.42
21
+ version: 0.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 0.4.42
28
+ version: 0.5.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: jwt
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -40,6 +40,48 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '2.6'
43
+ - !ruby/object:Gem::Dependency
44
+ name: smart_app_launch_test_kit
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.4.4
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 0.4.4
57
+ - !ruby/object:Gem::Dependency
58
+ name: tls_test_kit
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - '='
62
+ - !ruby/object:Gem::Version
63
+ version: 0.2.2
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - '='
69
+ - !ruby/object:Gem::Version
70
+ version: 0.2.2
71
+ - !ruby/object:Gem::Dependency
72
+ name: us_core_test_kit
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.0
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - '='
83
+ - !ruby/object:Gem::Version
84
+ version: 0.9.0
43
85
  description: Test Kit for the Da Vinci Documentation Templates and Rules (DTR) FHIR
44
86
  Implementation Guide
45
87
  email:
@@ -53,22 +95,30 @@ files:
53
95
  - lib/davinci_dtr_test_kit/auth_groups/oauth2_authentication_group.rb
54
96
  - lib/davinci_dtr_test_kit/auth_groups/token_request_test.rb
55
97
  - lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb
98
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_completion_group.rb
99
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_followup_questions_group.rb
100
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_test.rb
101
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_validation_test.rb
102
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_retrieval_group.rb
103
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_response_validation_test.rb
104
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb
105
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb
106
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_request_test.rb
107
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb
108
+ - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_request_test.rb
56
109
  - lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_questionnaire_workflow_group.rb
57
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_dinner_questionnaire_package_request_test.rb
58
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_launch_attestation_test.rb
59
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_attestation_test.rb
60
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_override_attestation_test.rb
61
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_representation_attestation_test.rb
62
110
  - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_questionnaire_workflow_group.rb
63
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb
64
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_store_attestation_test.rb
65
111
  - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb
66
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_prepopulation_attestation_test.rb
67
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_prepopulation_override_attestation_test.rb
68
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_response_save_test.rb
69
112
  - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb
70
- - lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_rendering_enabled_questions_attestation_test.rb
71
- - lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_full_ehr_questionnaire_workflow_group.rb
113
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_launch_attestation_test.rb
114
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_attestation_test.rb
115
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_override_attestation_test.rb
116
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb
117
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb
118
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb
119
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb
120
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb
121
+ - lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_store_attestation_test.rb
72
122
  - lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_package_group.rb
73
123
  - lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb
74
124
  - lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb
@@ -79,18 +129,38 @@ files:
79
129
  - lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb
80
130
  - lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb
81
131
  - lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb
132
+ - lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_attestation_test.rb
133
+ - lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_override_attestation_test.rb
134
+ - lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_save_test.rb
135
+ - lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_rendering_enabled_questions_attestation_test.rb
136
+ - lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb
82
137
  - lib/davinci_dtr_test_kit/cql_test.rb
138
+ - lib/davinci_dtr_test_kit/create_test.rb
83
139
  - lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md
140
+ - lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md
84
141
  - lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md
85
142
  - lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md
86
143
  - lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb
87
144
  - lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb
145
+ - lib/davinci_dtr_test_kit/dtr_options.rb
88
146
  - lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb
89
147
  - lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb
90
148
  - lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb
91
- - lib/davinci_dtr_test_kit/ext/inferno_core/record_response_route.rb
92
- - lib/davinci_dtr_test_kit/ext/inferno_core/request.rb
93
- - lib/davinci_dtr_test_kit/ext/inferno_core/runnable.rb
149
+ - lib/davinci_dtr_test_kit/endpoints/cors.rb
150
+ - lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb
151
+ - lib/davinci_dtr_test_kit/endpoints/mock_authorization/authorize_endpoint.rb
152
+ - lib/davinci_dtr_test_kit/endpoints/mock_authorization/simple_token_endpoint.rb
153
+ - lib/davinci_dtr_test_kit/endpoints/mock_authorization/token_endpoint.rb
154
+ - lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb
155
+ - lib/davinci_dtr_test_kit/endpoints/mock_ehr/fhir_get_endpoint.rb
156
+ - lib/davinci_dtr_test_kit/endpoints/mock_ehr/questionnaire_response_endpoint.rb
157
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer.rb
158
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb
159
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb
160
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_endpoint.rb
161
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb
162
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb
163
+ - lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_proxy_endpoint.rb
94
164
  - lib/davinci_dtr_test_kit/fixture_loader.rb
95
165
  - lib/davinci_dtr_test_kit/fixtures.rb
96
166
  - lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json
@@ -99,11 +169,8 @@ files:
99
169
  - lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/questionnaire_dinner_order_adaptive.json
100
170
  - lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_dinner_order_static.json
101
171
  - lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_response_dinner_order_static.json
102
- - lib/davinci_dtr_test_kit/fixtures/pre_populated_questionnaire_response.json
103
- - lib/davinci_dtr_test_kit/fixtures/questionnaire_package.json
104
- - lib/davinci_dtr_test_kit/mock_auth_server.rb
105
- - lib/davinci_dtr_test_kit/mock_ehr.rb
106
- - lib/davinci_dtr_test_kit/mock_payer.rb
172
+ - lib/davinci_dtr_test_kit/fixtures/respiratory_assist_device/pre_populated_questionnaire_response.json
173
+ - lib/davinci_dtr_test_kit/fixtures/respiratory_assist_device/questionnaire_package.json
107
174
  - lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb
108
175
  - lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb
109
176
  - lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb
@@ -125,7 +192,45 @@ files:
125
192
  - lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb
126
193
  - lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb
127
194
  - lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb
195
+ - lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb
196
+ - lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb
197
+ - lib/davinci_dtr_test_kit/profiles/communication_request_group.rb
198
+ - lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb
199
+ - lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb
200
+ - lib/davinci_dtr_test_kit/profiles/coverage_group.rb
201
+ - lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb
202
+ - lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb
203
+ - lib/davinci_dtr_test_kit/profiles/device_request_group.rb
204
+ - lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb
205
+ - lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb
206
+ - lib/davinci_dtr_test_kit/profiles/encounter_group.rb
207
+ - lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb
208
+ - lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb
209
+ - lib/davinci_dtr_test_kit/profiles/medication_request_group.rb
210
+ - lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb
211
+ - lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb
212
+ - lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb
213
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb
214
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb
215
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb
216
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb
217
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb
218
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb
219
+ - lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb
220
+ - lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb
221
+ - lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb
222
+ - lib/davinci_dtr_test_kit/profiles/service_request_group.rb
223
+ - lib/davinci_dtr_test_kit/profiles/task/task_create.rb
224
+ - lib/davinci_dtr_test_kit/profiles/task/task_read.rb
225
+ - lib/davinci_dtr_test_kit/profiles/task/task_update.rb
226
+ - lib/davinci_dtr_test_kit/profiles/task/task_validation.rb
227
+ - lib/davinci_dtr_test_kit/profiles/task_group.rb
228
+ - lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb
229
+ - lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb
230
+ - lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb
231
+ - lib/davinci_dtr_test_kit/read_test.rb
128
232
  - lib/davinci_dtr_test_kit/tags.rb
233
+ - lib/davinci_dtr_test_kit/update_test.rb
129
234
  - lib/davinci_dtr_test_kit/urls.rb
130
235
  - lib/davinci_dtr_test_kit/validation_test.rb
131
236
  - lib/davinci_dtr_test_kit/version.rb
@@ -1,33 +0,0 @@
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
@@ -1,19 +0,0 @@
1
- require_relative 'dtr_questionnaire_package_group'
2
- require_relative 'dtr_questionnaire_rendering_group'
3
-
4
- module DaVinciDTRTestKit
5
- class DTRFullEHRQuestionnaireWorkflowGroup < Inferno::TestGroup
6
- id :dtr_full_ehr_questionnaire_workflow
7
- title 'Respiratory Assist Device Questionnaire Workflow'
8
- description %(
9
- This workflow validates that a DTR Full EHR Client can perform a full DTR Questionnaire workflow using a canned
10
- Questionnaire for a respiratory assist device order:
11
-
12
- 1. Fetch the questionnaire package
13
- 2. Render the questionnaire
14
- )
15
-
16
- group from: :dtr_questionnaire_package
17
- group from: :dtr_questionnaire_rendering
18
- end
19
- end