davinci_dtr_test_kit 0.14.1 → 0.15.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/full_ehr_postman_dinner_order_example_postman.json +19 -0
  3. data/config/presets/full_ehr_postman_respiratory_device_example.json +15 -0
  4. data/config/presets/light_ehr_ref_server_local.json +105 -0
  5. data/config/presets/light_ehr_ref_server_prod.json +85 -0
  6. data/config/presets/payer_server_adaptive_client_flow.json +37 -0
  7. data/config/presets/payer_server_adaptive_manual_flow.json +44 -0
  8. data/config/presets/payer_server_run_against_smart_app_tests.json +35 -0
  9. data/config/presets/smart_app_postman_dinner_order_example.json +44 -0
  10. data/config/presets/smart_app_postman_respiratory_device_example.json +43 -0
  11. data/lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb +1 -1
  12. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_expressions_test.rb +22 -0
  13. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_extensions_test.rb +19 -0
  14. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_libraries_test.rb +21 -0
  15. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_package_validation_test.rb +39 -0
  16. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_full_ehr_custom_static_workflow_group.rb +121 -0
  17. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_smart_app_custom_static_workflow_group.rb +91 -0
  18. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_completion_group.rb → dtr_adaptive_completion_group.rb} +4 -4
  19. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_followup_questions_group.rb → dtr_adaptive_followup_questions_group.rb} +4 -4
  20. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_request_test.rb → dtr_adaptive_next_question_request_test.rb} +2 -2
  21. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_request_validation_test.rb → dtr_adaptive_next_question_request_validation_test.rb} +2 -2
  22. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_retrieval_group.rb → dtr_adaptive_next_question_retrieval_group.rb} +8 -8
  23. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_response_validation_test.rb → dtr_adaptive_response_validation_test.rb} +3 -3
  24. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb → dtr_full_ehr_adaptive_dinner_workflow_group.rb} +12 -12
  25. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb → dtr_full_ehr_adaptive_initial_retrieval_group.rb} +10 -10
  26. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_questionnaire_request_test.rb → dtr_full_ehr_adaptive_request_test.rb} +2 -2
  27. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_smart_app_questionnaire_workflow_group.rb → dtr_smart_app_adaptive_dinner_workflow_group.rb} +24 -18
  28. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_initial_retrieval_group.rb +24 -0
  29. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_smart_app_adaptive_questionnaire_request_test.rb → dtr_smart_app_adaptive_request_test.rb} +2 -2
  30. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{dtr_full_ehr_questionnaire_workflow_group.rb → dtr_full_ehr_static_dinner_workflow_group.rb} +13 -13
  31. data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{dtr_smart_app_questionnaire_workflow_group.rb → dtr_smart_app_static_dinner_workflow_group.rb} +18 -13
  32. data/lib/davinci_dtr_test_kit/client_groups/{full_ehr/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb → dinner_static/dtr_static_dinner_enabled_questions_attestation_test.rb} +2 -2
  33. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_launch_attestation_test.rb +8 -3
  34. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_attestation_test.rb +1 -1
  35. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_override_attestation_test.rb +1 -1
  36. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb +1 -1
  37. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb +6 -1
  38. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb +10 -22
  39. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb +4 -4
  40. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_store_attestation_test.rb +1 -1
  41. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/dtr_smart_ehr_launch.rb +18 -0
  42. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_coverage_test.rb +42 -0
  43. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_references_test.rb +60 -0
  44. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_launch_context_test.rb +23 -0
  45. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_package_group.rb → respiratory/dtr_respiratory_questionnaire_package_group.rb} +5 -5
  46. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_resp_questionnaire_package_request_test.rb → respiratory/dtr_respiratory_questionnaire_package_request_test.rb} +2 -2
  47. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_response_group.rb → respiratory/dtr_respiratory_questionnaire_response_group.rb} +7 -7
  48. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_response_save_test.rb → respiratory/dtr_respiratory_questionnaire_response_save_test.rb} +2 -2
  49. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb → respiratory/dtr_respiratory_rendering_attestation_test.rb} +2 -2
  50. data/lib/davinci_dtr_test_kit/client_groups/respiratory/dtr_respiratory_rendering_group.rb +14 -0
  51. data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_smart_app_questionnaire_workflow_group.rb → respiratory/dtr_smart_app_respiratory_workflow_group.rb} +8 -8
  52. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_attestation_test.rb +31 -0
  53. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_override_attestation_test.rb +35 -0
  54. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  55. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +8 -4
  56. data/lib/davinci_dtr_test_kit/client_groups/shared/{dtr_questionnaire_response_pre_population_test.rb → dtr_questionnaire_response_prepopulation_test.rb} +2 -2
  57. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_rendering_attestation_test.rb +30 -0
  58. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_attestation_test.rb +1 -1
  59. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_override_attestation_test.rb +1 -1
  60. data/lib/davinci_dtr_test_kit/client_groups/{dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb → smart_app/dtr_smart_app_questionnaire_package_request_test.rb} +6 -6
  61. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_correctness_test.rb +28 -0
  62. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_save_test.rb +2 -2
  63. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb +3 -7
  64. data/lib/davinci_dtr_test_kit/cql_test.rb +58 -0
  65. data/lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md +9 -6
  66. data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +19 -6
  67. data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +42 -36
  68. data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +0 -2
  69. data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +50 -4
  70. data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +9 -9
  71. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb +10 -2
  72. data/lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb +17 -1
  73. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb +7 -1
  74. data/lib/davinci_dtr_test_kit/fixtures.rb +6 -6
  75. data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.0.1.tgz +0 -0
  76. data/lib/davinci_dtr_test_kit/metadata.rb +104 -0
  77. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb +1 -1
  78. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb +1 -1
  79. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb +1 -1
  80. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +1 -1
  81. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +1 -1
  82. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +4 -15
  83. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_static_group.rb +1 -1
  84. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +1 -1
  85. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +1 -1
  86. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +1 -1
  87. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb +1 -1
  88. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +4 -15
  89. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_must_support_test.rb +46 -0
  90. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb +6 -3
  91. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb +9 -8
  92. data/lib/davinci_dtr_test_kit/profiles/communication_request/metadata.yml +135 -0
  93. data/lib/davinci_dtr_test_kit/profiles/communication_request_group.rb +9 -0
  94. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_must_support_test.rb +54 -0
  95. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb +5 -3
  96. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb +9 -8
  97. data/lib/davinci_dtr_test_kit/profiles/coverage/metadata.yml +133 -0
  98. data/lib/davinci_dtr_test_kit/profiles/coverage_group.rb +8 -0
  99. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_must_support_test.rb +45 -0
  100. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb +6 -3
  101. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb +9 -8
  102. data/lib/davinci_dtr_test_kit/profiles/device_request/metadata.yml +130 -0
  103. data/lib/davinci_dtr_test_kit/profiles/device_request_group.rb +9 -0
  104. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_must_support_test.rb +58 -0
  105. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb +6 -3
  106. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb +9 -8
  107. data/lib/davinci_dtr_test_kit/profiles/encounter/metadata.yml +169 -0
  108. data/lib/davinci_dtr_test_kit/profiles/encounter_group.rb +9 -0
  109. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_must_support_test.rb +50 -0
  110. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb +6 -3
  111. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb +9 -8
  112. data/lib/davinci_dtr_test_kit/profiles/medication_request/metadata.yml +159 -0
  113. data/lib/davinci_dtr_test_kit/profiles/medication_request_group.rb +9 -0
  114. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/metadata.yml +94 -0
  115. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_must_support_test.rb +45 -0
  116. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb +6 -3
  117. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb +9 -8
  118. data/lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb +9 -0
  119. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/metadata.yml +166 -0
  120. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb +3 -1
  121. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +1 -0
  122. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_must_support_test.rb +54 -0
  123. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +3 -1
  124. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +2 -1
  125. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +1 -0
  126. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +1 -1
  127. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +11 -1
  128. data/lib/davinci_dtr_test_kit/profiles/service_request/metadata.yml +140 -0
  129. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_must_support_test.rb +47 -0
  130. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +6 -3
  131. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +9 -8
  132. data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +9 -0
  133. data/lib/davinci_dtr_test_kit/profiles/task/metadata.yml +165 -0
  134. data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +1 -0
  135. data/lib/davinci_dtr_test_kit/profiles/task/task_must_support_test.rb +46 -0
  136. data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +6 -3
  137. data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +1 -0
  138. data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +9 -8
  139. data/lib/davinci_dtr_test_kit/profiles/task_group.rb +11 -1
  140. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/metadata.yml +107 -0
  141. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_must_support_test.rb +54 -0
  142. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +6 -3
  143. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +9 -8
  144. data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +9 -0
  145. data/lib/davinci_dtr_test_kit/read_test.rb +5 -0
  146. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_out_of_scope_requirements.csv +13 -0
  147. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_requirements.csv +374 -0
  148. data/lib/davinci_dtr_test_kit/requirements/generated/davinci-dtr-test-kit_requirements_coverage.csv +372 -0
  149. data/lib/davinci_dtr_test_kit/urls.rb +1 -0
  150. data/lib/davinci_dtr_test_kit/version.rb +2 -1
  151. data/lib/davinci_dtr_test_kit.rb +2 -0
  152. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +22 -0
  153. data/lib/inferno_requirements_tools/rake/rakefile_template +31 -0
  154. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +284 -0
  155. data/lib/requirements_config.yaml +25 -0
  156. metadata +89 -37
  157. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +0 -24
  158. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb +0 -14
  159. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_rendering_enabled_questions_attestation_test.rb +0 -30
@@ -0,0 +1,107 @@
1
+ ---
2
+ :name: profile_visionprescription
3
+ :class_name: ProfileVisionprescriptionSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: VisionPrescription
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-visionprescription
8
+ :profile_name: CRD Vision Prescription
9
+ :profile_version: 2.0.1
10
+ :title: CRD Vision Prescription
11
+ :short_description: Verify support for the server capabilities required by the CRD
12
+ Vision Prescription.
13
+ :is_delayed: true
14
+ :interactions:
15
+ - :code: read
16
+ :expectation: SHOULD
17
+ :operations: []
18
+ :searches: []
19
+ :search_definitions: {}
20
+ :include_params: []
21
+ :revincludes: []
22
+ :required_concepts: []
23
+ :must_supports:
24
+ :extensions:
25
+ - :id: VisionPrescription.extension:Coverage-Information
26
+ :path: extension
27
+ :url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
28
+ :slices: []
29
+ :elements:
30
+ - :path: identifier
31
+ - :path: status
32
+ :fixed_value: draft
33
+ - :path: created
34
+ - :path: patient
35
+ :types:
36
+ - Reference
37
+ :target_profiles:
38
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
39
+ - :path: encounter
40
+ :types:
41
+ - Reference
42
+ :target_profiles:
43
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
44
+ - :path: dateWritten
45
+ - :path: prescriber
46
+ :types:
47
+ - Reference
48
+ - :path: lensSpecification
49
+ - :path: lensSpecification.product
50
+ - :path: lensSpecification.eye
51
+ - :path: lensSpecification.sphere
52
+ - :path: lensSpecification.cylinder
53
+ - :path: lensSpecification.axis
54
+ - :path: lensSpecification.prism
55
+ - :path: lensSpecification.prism.amount
56
+ - :path: lensSpecification.prism.base
57
+ - :path: lensSpecification.add
58
+ - :path: lensSpecification.power
59
+ - :path: lensSpecification.backCurve
60
+ - :path: lensSpecification.diameter
61
+ - :path: lensSpecification.duration
62
+ :mandatory_elements:
63
+ - VisionPrescription.status
64
+ - VisionPrescription.created
65
+ - VisionPrescription.patient
66
+ - VisionPrescription.dateWritten
67
+ - VisionPrescription.prescriber
68
+ - VisionPrescription.lensSpecification
69
+ - VisionPrescription.lensSpecification.product
70
+ - VisionPrescription.lensSpecification.eye
71
+ - VisionPrescription.lensSpecification.prism.amount
72
+ - VisionPrescription.lensSpecification.prism.base
73
+ :bindings:
74
+ - :type: code
75
+ :strength: required
76
+ :system: http://hl7.org/fhir/ValueSet/vision-eye-codes
77
+ :path: lensSpecification.eye
78
+ - :type: code
79
+ :strength: required
80
+ :system: http://hl7.org/fhir/ValueSet/vision-base-codes
81
+ :path: lensSpecification.prism.base
82
+ :references:
83
+ - :path: VisionPrescription.patient
84
+ :profiles:
85
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
86
+ - :path: VisionPrescription.encounter
87
+ :profiles:
88
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
89
+ - :path: VisionPrescription.prescriber
90
+ :profiles:
91
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
92
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
93
+ :tests:
94
+ - :id: us_core_v311_vision_prescription_read_test
95
+ :file_name: vision_prescription_read_test.rb
96
+ - :id: us_core_v311_vision_prescription_validation_test
97
+ :file_name: vision_prescription_validation_test.rb
98
+ - :id: us_core_v311_vision_prescription_must_support_test
99
+ :file_name: vision_prescription_must_support_test.rb
100
+ - :id: us_core_v311_vision_prescription_reference_resolution_test
101
+ :file_name: vision_prescription_reference_resolution_test.rb
102
+ :id: us_core_v311_vision_prescription
103
+ :file_name: vision_prescription_group.rb
104
+ :delayed_references:
105
+ - :path: prescriber
106
+ :resources:
107
+ - PractitionerRole
@@ -0,0 +1,54 @@
1
+ module DaVinciDTRTestKit
2
+ class VisionPrescriptionMustSupportTest < Inferno::Test
3
+ include USCoreTestKit::MustSupportTest
4
+
5
+ title 'All must support elements are provided in the VisionPrescription resources returned'
6
+ description %(
7
+ This test will look through the VisionPrescription resources
8
+ found previously for the following must support elements:\n
9
+
10
+ * VisionPrescription.created
11
+ * VisionPrescription.dateWritten
12
+ * VisionPrescription.encounter
13
+ * VisionPrescription.extension:Coverage-Information
14
+ * VisionPrescription.identifier
15
+ * VisionPrescription.lensSpecification
16
+ * VisionPrescription.lensSpecification.add
17
+ * VisionPrescription.lensSpecification.axis
18
+ * VisionPrescription.lensSpecification.backCurve
19
+ * VisionPrescription.lensSpecification.cylinder
20
+ * VisionPrescription.lensSpecification.diameter
21
+ * VisionPrescription.lensSpecification.duration
22
+ * VisionPrescription.lensSpecification.eye
23
+ * VisionPrescription.lensSpecification.power
24
+ * VisionPrescription.lensSpecification.prism
25
+ * VisionPrescription.lensSpecification.prism.amount
26
+ * VisionPrescription.lensSpecification.prism.base
27
+ * VisionPrescription.lensSpecification.product
28
+ * VisionPrescription.lensSpecification.sphere
29
+ * VisionPrescription.patient
30
+ * VisionPrescription.prescriber
31
+ * VisionPrescription.status
32
+ )
33
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
34
+ id :vision_prescription_must_support_test
35
+
36
+ def resource_type
37
+ 'VisionPrescription'
38
+ end
39
+
40
+ def self.metadata
41
+ @metadata ||= USCoreTestKit::Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'),
42
+ aliases: true))
43
+ end
44
+
45
+ def scratch_resources
46
+ scratch[:vision_prescriptions] ||= {}
47
+ end
48
+
49
+ run do
50
+ skip_if(vision_prescription_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
51
+ perform_must_support_test(all_scratch_resources)
52
+ end
53
+ end
54
+ end
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
6
6
 
7
7
  title 'Server returns correct VisionPrescription resource from VisionPrescription read interaction'
8
8
  description 'A server SHOULD support the VisionPrescription read interaction.'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@277'
9
10
 
10
11
  id :vision_prescription_read
11
12
  output :vision_prescription_resources
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
14
15
  'VisionPrescription'
15
16
  end
16
17
 
18
+ def scratch_resources
19
+ scratch[:vision_prescriptions] ||= {}
20
+ end
21
+
17
22
  def vision_prescription_id_list
18
23
  return [nil] unless respond_to? :vision_prescription_ids
19
24
 
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
21
26
  end
22
27
 
23
28
  run do
24
- resources = perform_read_test(vision_prescription_id_list, resource_type)
25
-
26
- output vision_prescription_resources: resources.to_json
29
+ perform_read_test(vision_prescription_id_list, resource_type)
27
30
  end
28
31
  end
29
32
  end
@@ -1,8 +1,6 @@
1
- require_relative '../../validation_test'
2
-
3
1
  module DaVinciDTRTestKit
4
2
  class VisionPrescriptionValidationTest < Inferno::Test
5
- include DaVinciDTRTestKit::ValidationTest
3
+ include USCoreTestKit::ValidationTest
6
4
 
7
5
  title 'VisionPrescription resources returned during previous tests conform to the CRD VisionPrescription'
8
6
  description %(
@@ -19,17 +17,20 @@ fail if their code/system are not found in the valueset.
19
17
  )
20
18
 
21
19
  id :vision_prescription_validation
22
- input :vision_prescription_resources,
23
- optional: true
24
20
 
25
21
  def resource_type
26
22
  'VisionPrescription'
27
23
  end
28
24
 
25
+ def scratch_resources
26
+ scratch[:vision_prescriptions] ||= {}
27
+ end
28
+
29
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')
30
+ perform_validation_test(scratch_resources[:all] || [],
31
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-visionprescription',
32
+ '2.0.1',
33
+ skip_if_empty: true)
33
34
  end
34
35
  end
35
36
  end
@@ -1,5 +1,6 @@
1
1
  require_relative 'vision_prescription/vision_prescription_read'
2
2
  require_relative 'vision_prescription/vision_prescription_validation'
3
+ require_relative 'vision_prescription/vision_prescription_must_support_test'
3
4
 
4
5
  module DaVinciDTRTestKit
5
6
  class VisionPrescriptionGroup < Inferno::TestGroup
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
23
24
  the [CRD VisionPrescription Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html).
24
25
  Each element is checked against terminology binding and cardinality requirements.
25
26
 
27
+ ## Must Support
28
+ Each profile contains elements marked as "must support". This test
29
+ sequence expects to see each of these elements at least once. If at
30
+ least one cannot be found, the test will fail. The test will look
31
+ through the VisionPrescription resources found in the first test for these
32
+ elements.
33
+
26
34
  )
27
35
  id :vision_prescription_group
28
36
  optional
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
35
43
 
36
44
  test from: :vision_prescription_read
37
45
  test from: :vision_prescription_validation
46
+ test from: :vision_prescription_must_support_test
38
47
  end
39
48
  end
@@ -1,5 +1,9 @@
1
1
  module DaVinciDTRTestKit
2
2
  module ReadTest
3
+ def all_scratch_resources
4
+ scratch_resources[:all] ||= []
5
+ end
6
+
3
7
  def perform_read_test(resource_ids, resource_type)
4
8
  skip_if(resource_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
5
9
  resources = []
@@ -12,6 +16,7 @@ module DaVinciDTRTestKit
12
16
 
13
17
  resources.push(resource)
14
18
  end
19
+ all_scratch_resources.concat(resources)
15
20
  resources
16
21
  end
17
22
 
@@ -0,0 +1,13 @@
1
+ Req Set,ID,Reason,Details
2
+ hl7.fhir.us.davinci-dtr_2.0.1,10,Not Tested,"QuestionnaireResponse.source is not must support or required, so these systems are not required to support it."
3
+ hl7.fhir.us.davinci-dtr_2.0.1,129,Not Tested,Cdex workflows out of initial scope
4
+ hl7.fhir.us.davinci-dtr_2.0.1,231,Not Tested,check as a part of PAS initially
5
+ hl7.fhir.us.davinci-dtr_2.0.1,232,Not Tested,check as a part of PAS initially
6
+ hl7.fhir.us.davinci-dtr_2.0.1,233,Not Tested,check as a part of PAS initially
7
+ hl7.fhir.us.davinci-dtr_2.0.1,234,Not Tested,check as a part of PAS initially
8
+ hl7.fhir.us.davinci-dtr_2.0.1,236,Not Tested,check as a part of PAS initially
9
+ hl7.fhir.us.davinci-dtr_2.0.1,237,Not Tested,"automatic or manual allowed, no clear impact on downstream functionality"
10
+ hl7.fhir.us.davinci-dtr_2.0.1,238,Not Tested,"automatic or manual allowed, no clear impact on downstream functionality"
11
+ hl7.fhir.us.davinci-dtr_2.0.1,328,Not Tested,metrics are optional at this time
12
+ hl7.fhir.us.davinci-dtr_2.0.1,329,Not Tested,metrics are optional at this time
13
+ hl7.fhir.us.davinci-dtr_2.0.1,341,Not Verifiable,Too vague.