davinci_dtr_test_kit 0.14.2 → 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 (158) 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/questionnaire_response_context_search.rb +3 -1
  120. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +1 -0
  121. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_must_support_test.rb +54 -0
  122. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +3 -1
  123. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +2 -1
  124. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +1 -0
  125. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +1 -1
  126. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +11 -1
  127. data/lib/davinci_dtr_test_kit/profiles/service_request/metadata.yml +140 -0
  128. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_must_support_test.rb +47 -0
  129. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +6 -3
  130. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +9 -8
  131. data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +9 -0
  132. data/lib/davinci_dtr_test_kit/profiles/task/metadata.yml +165 -0
  133. data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +1 -0
  134. data/lib/davinci_dtr_test_kit/profiles/task/task_must_support_test.rb +46 -0
  135. data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +6 -3
  136. data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +1 -0
  137. data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +9 -8
  138. data/lib/davinci_dtr_test_kit/profiles/task_group.rb +11 -1
  139. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/metadata.yml +107 -0
  140. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_must_support_test.rb +54 -0
  141. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +6 -3
  142. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +9 -8
  143. data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +9 -0
  144. data/lib/davinci_dtr_test_kit/read_test.rb +5 -0
  145. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_out_of_scope_requirements.csv +13 -0
  146. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_requirements.csv +374 -0
  147. data/lib/davinci_dtr_test_kit/requirements/generated/davinci-dtr-test-kit_requirements_coverage.csv +372 -0
  148. data/lib/davinci_dtr_test_kit/urls.rb +1 -0
  149. data/lib/davinci_dtr_test_kit/version.rb +2 -1
  150. data/lib/davinci_dtr_test_kit.rb +2 -0
  151. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +22 -0
  152. data/lib/inferno_requirements_tools/rake/rakefile_template +31 -0
  153. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +284 -0
  154. data/lib/requirements_config.yaml +25 -0
  155. metadata +88 -37
  156. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +0 -24
  157. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb +0 -14
  158. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_rendering_enabled_questions_attestation_test.rb +0 -30
@@ -0,0 +1,94 @@
1
+ ---
2
+ :name: profile_nutritionorder
3
+ :class_name: ProfileNutritionorderSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: NutritionOrder
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-nutritionorder
8
+ :profile_name: CRD Nutrition Order
9
+ :profile_version: 2.0.1
10
+ :title: CRD Nutrition Order
11
+ :short_description: Verify support for the server capabilities required by the CRD
12
+ Nutrition Order.
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: NutritionOrder.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: patient
34
+ :types:
35
+ - Reference
36
+ :target_profiles:
37
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
38
+ - :path: encounter
39
+ :types:
40
+ - Reference
41
+ :target_profiles:
42
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
43
+ - :path: dateTime
44
+ - :path: orderer
45
+ :types:
46
+ - Reference
47
+ - :path: allergyIntolerance
48
+ :types:
49
+ - Reference
50
+ - :path: foodPreferenceModifier
51
+ - :path: excludeFoodModifier
52
+ - :path: oralDiet
53
+ - :path: supplement
54
+ - :path: enteralFormula
55
+ :mandatory_elements:
56
+ - NutritionOrder.status
57
+ - NutritionOrder.intent
58
+ - NutritionOrder.patient
59
+ - NutritionOrder.dateTime
60
+ - NutritionOrder.orderer
61
+ :bindings:
62
+ - :type: code
63
+ :strength: required
64
+ :system: http://hl7.org/fhir/ValueSet/request-intent
65
+ :path: intent
66
+ :references:
67
+ - :path: NutritionOrder.patient
68
+ :profiles:
69
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
70
+ - :path: NutritionOrder.encounter
71
+ :profiles:
72
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
73
+ - :path: NutritionOrder.orderer
74
+ :profiles:
75
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
76
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
77
+ - :path: NutritionOrder.allergyIntolerance
78
+ :profiles:
79
+ - http://hl7.org/fhir/StructureDefinition/AllergyIntolerance
80
+ :tests:
81
+ - :id: us_core_v311_nutrition_order_read_test
82
+ :file_name: nutrition_order_read_test.rb
83
+ - :id: us_core_v311_nutrition_order_validation_test
84
+ :file_name: nutrition_order_validation_test.rb
85
+ - :id: us_core_v311_nutrition_order_must_support_test
86
+ :file_name: nutrition_order_must_support_test.rb
87
+ - :id: us_core_v311_nutrition_order_reference_resolution_test
88
+ :file_name: nutrition_order_reference_resolution_test.rb
89
+ :id: us_core_v311_nutrition_order
90
+ :file_name: nutrition_order_group.rb
91
+ :delayed_references:
92
+ - :path: orderer
93
+ :resources:
94
+ - PractitionerRole
@@ -0,0 +1,45 @@
1
+ module DaVinciDTRTestKit
2
+ class NutritionOrderMustSupportTest < Inferno::Test
3
+ include USCoreTestKit::MustSupportTest
4
+
5
+ title 'All must support elements are provided in the NutritionOrder resources returned'
6
+ description %(
7
+ This test will look through the NutritionOrder resources
8
+ found previously for the following must support elements:\n
9
+
10
+ * NutritionOrder.allergyIntolerance
11
+ * NutritionOrder.dateTime
12
+ * NutritionOrder.encounter
13
+ * NutritionOrder.enteralFormula
14
+ * NutritionOrder.excludeFoodModifier
15
+ * NutritionOrder.extension:Coverage-Information
16
+ * NutritionOrder.foodPreferenceModifier
17
+ * NutritionOrder.identifier
18
+ * NutritionOrder.oralDiet
19
+ * NutritionOrder.orderer
20
+ * NutritionOrder.patient
21
+ * NutritionOrder.status
22
+ * NutritionOrder.supplement
23
+ )
24
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
25
+ id :nutrition_order_must_support_test
26
+
27
+ def resource_type
28
+ 'NutritionOrder'
29
+ end
30
+
31
+ def self.metadata
32
+ @metadata ||= USCoreTestKit::Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'),
33
+ aliases: true))
34
+ end
35
+
36
+ def scratch_resources
37
+ scratch[:nutrition_orders] ||= {}
38
+ end
39
+
40
+ run do
41
+ skip_if(nutrition_order_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
42
+ perform_must_support_test(all_scratch_resources)
43
+ end
44
+ end
45
+ end
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
6
6
 
7
7
  title 'Server returns correct NutritionOrder resource from NutritionOrder read interaction'
8
8
  description 'A server SHOULD support the NutritionOrder read interaction.'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@274'
9
10
 
10
11
  id :nutrition_order_read
11
12
  output :nutrition_order_resources
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
14
15
  'NutritionOrder'
15
16
  end
16
17
 
18
+ def scratch_resources
19
+ scratch[:nutrition_orders] ||= {}
20
+ end
21
+
17
22
  def nutrition_order_id_list
18
23
  return [nil] unless respond_to? :nutrition_order_ids
19
24
 
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
21
26
  end
22
27
 
23
28
  run do
24
- resources = perform_read_test(nutrition_order_id_list, resource_type)
25
-
26
- output nutrition_order_resources: resources.to_json
29
+ perform_read_test(nutrition_order_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 NutritionOrderValidationTest < Inferno::Test
5
- include DaVinciDTRTestKit::ValidationTest
3
+ include USCoreTestKit::ValidationTest
6
4
 
7
5
  title 'NutritionOrder resources returned during previous tests conform to the CRD NutritionOrder'
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 :nutrition_order_validation
22
- input :nutrition_order_resources,
23
- optional: true
24
20
 
25
21
  def resource_type
26
22
  'NutritionOrder'
27
23
  end
28
24
 
25
+ def scratch_resources
26
+ scratch[:nutrition_orders] ||= {}
27
+ end
28
+
29
29
  run do
30
- skip_if(nutrition_order_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
- perform_profile_validation_test(nutrition_order_resources, resource_type,
32
- 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-nutritionorder|2.0.1')
30
+ perform_validation_test(scratch_resources[:all] || [],
31
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-nutritionorder',
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 'nutrition_order/nutrition_order_read'
2
2
  require_relative 'nutrition_order/nutrition_order_validation'
3
+ require_relative 'nutrition_order/nutrition_order_must_support_test'
3
4
 
4
5
  module DaVinciDTRTestKit
5
6
  class NutritionOrderGroup < Inferno::TestGroup
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
23
24
  the [CRD NutritionOrder Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-communicationrequest.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 NutritionOrder resources found in the first test for these
32
+ elements.
33
+
26
34
  )
27
35
  id :nutrition_order_group
28
36
  optional
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
35
43
 
36
44
  test from: :nutrition_order_read
37
45
  test from: :nutrition_order_validation
46
+ test from: :nutrition_order_must_support_test
38
47
  end
39
48
  end
@@ -9,6 +9,8 @@ context on the QuestionnaireResponse resource. This test
9
9
  will pass if resources are returned and match the search criteria. If
10
10
  none are returned, the test is skipped.
11
11
  )
12
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@268',
13
+ 'hl7.fhir.us.davinci-dtr_2.0.1@269'
12
14
 
13
15
  id :questionnaire_response_context_search
14
16
 
@@ -25,7 +27,7 @@ none are returned, the test is skipped.
25
27
  end
26
28
 
27
29
  def scratch_resources
28
- scratch[:questionnaire_response_resources] ||= {}
30
+ scratch[:questionnaire_responses] ||= {}
29
31
  end
30
32
 
31
33
  run do
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
6
6
 
7
7
  title 'Server is capable of creating a QuestionnaireResponse resource from QuestionnaireResponse create interaction'
8
8
  description 'A sever SHALL support the QuestionnaireResponse create interaction'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@266'
9
10
 
10
11
  id :questionnaire_response_create
11
12
  input :create_questionnaire_resources,
@@ -0,0 +1,54 @@
1
+ module DaVinciDTRTestKit
2
+ module USCoreV311
3
+ class QuestionnaireResponseMustSupportTest < Inferno::Test
4
+ include USCoreTestKit::MustSupportTest
5
+
6
+ title 'All must support elements are provided in the QuestionnaireResponse resources returned'
7
+ description %(
8
+ US Core Responders SHALL be capable of populating all data elements as
9
+ part of the query results as specified by the US Core Server Capability
10
+ Statement. This test will look through the QuestionnaireResponse resources
11
+ found previously for the following must support elements:
12
+
13
+ * QuestionnaireResponse.author
14
+ * QuestionnaireResponse.authored
15
+ * QuestionnaireResponse.extension:signature
16
+ * QuestionnaireResponse.identifier
17
+ * QuestionnaireResponse.item
18
+ * QuestionnaireResponse.item.answer
19
+ * QuestionnaireResponse.item.answer.extension:itemAnswerMedia
20
+ * QuestionnaireResponse.item.answer.extension:ordinalValue
21
+ * QuestionnaireResponse.item.answer.extension:origin
22
+ * QuestionnaireResponse.item.answer.item
23
+ * QuestionnaireResponse.item.answer.value[x]
24
+ * QuestionnaireResponse.item.extension:ItemSignature
25
+ * QuestionnaireResponse.item.item
26
+ * QuestionnaireResponse.item.linkId
27
+ * QuestionnaireResponse.item.text
28
+ * QuestionnaireResponse.questionnaire
29
+ * QuestionnaireResponse.questionnaire.extension:questionnaireDisplay
30
+ * QuestionnaireResponse.status
31
+ * QuestionnaireResponse.subject
32
+ )
33
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
34
+ id :questionnaire_response_must_support_test
35
+
36
+ def resource_type
37
+ 'QuestionnaireResponse'
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[:questionnaire_responses] ||= {}
47
+ end
48
+
49
+ run do
50
+ perform_must_support_test(all_scratch_resources)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -22,6 +22,8 @@ return the same number of results. Search by POST is required by the
22
22
  FHIR R4 specification, and these tests interpret search by GET as a
23
23
  requirement of US Core v3.1.1.
24
24
  )
25
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@268',
26
+ 'hl7.fhir.us.davinci-dtr_2.0.1@270'
25
27
 
26
28
  id :questionnaire_response_patient_search
27
29
  input :patient_ids,
@@ -45,7 +47,7 @@ requirement of US Core v3.1.1.
45
47
  end
46
48
 
47
49
  def scratch_resources
48
- scratch[:questionnaire_response_resources] ||= {}
50
+ scratch[:questionnaire_responses] ||= {}
49
51
  end
50
52
 
51
53
  run do
@@ -4,6 +4,7 @@ module DaVinciDTRTestKit
4
4
 
5
5
  title 'Server returns correct QuestionnaireResponse resource from QuestionnaireResponse read interaction'
6
6
  description 'A server SHALL support the QuestionnaireResponse read interaction'
7
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@265'
7
8
 
8
9
  id :questionnaire_response_read
9
10
 
@@ -12,7 +13,7 @@ module DaVinciDTRTestKit
12
13
  end
13
14
 
14
15
  def scratch_resources
15
- scratch[:questionnaire_response_resources] ||= {}
16
+ scratch[:questionnaire_responses] ||= {}
16
17
  end
17
18
 
18
19
  run do
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
6
6
 
7
7
  title 'Server is capable of updating a QuestionnaireResponse resource from QuestionnaireResponse update interaction'
8
8
  description 'A server SHALL support the QuestionnaireResponse update interaction'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@267'
9
10
 
10
11
  id :questionnaire_response_update
11
12
  input :update_questionnaire_resources,
@@ -24,7 +24,7 @@ fail if their code/system are not found in the valueset.
24
24
  end
25
25
 
26
26
  def scratch_resources
27
- scratch[:questionnaire_response_resources] ||= {}
27
+ scratch[:questionnaire_responses] ||= {}
28
28
  end
29
29
 
30
30
  run do
@@ -4,6 +4,7 @@ require_relative 'questionnaire_response/questionnaire_response_read'
4
4
  require_relative 'questionnaire_response/questionnaire_response_validation'
5
5
  require_relative 'questionnaire_response/questionnaire_response_create'
6
6
  require_relative 'questionnaire_response/questionnaire_response_update'
7
+ require_relative 'questionnaire_response/questionnaire_response_must_support_test'
7
8
 
8
9
  module DaVinciDTRTestKit
9
10
  class QuestionnaireResponseGroup < Inferno::TestGroup
@@ -52,7 +53,15 @@ module DaVinciDTRTestKit
52
53
  ## Update
53
54
  This test sequence will perform update interactions with the provided json QuestionnaireResponse resources. The
54
55
  server SHALL be capable of creating a QuestionnaireResponse resource using the update interaction.
55
- )
56
+
57
+ ## Must Support
58
+ Each profile contains elements marked as "must support". This test
59
+ sequence expects to see each of these elements at least once. If at
60
+ least one cannot be found, the test will fail. The test will look
61
+ through the QuestionnaireResponse resources found in the first test for these
62
+ elements.
63
+
64
+ )
56
65
  id :questionnaire_response_group
57
66
  run_as_group
58
67
 
@@ -62,5 +71,6 @@ module DaVinciDTRTestKit
62
71
  test from: :questionnaire_response_validation
63
72
  test from: :questionnaire_response_create
64
73
  test from: :questionnaire_response_update
74
+ test from: :questionnaire_response_must_support_test
65
75
  end
66
76
  end
@@ -0,0 +1,140 @@
1
+ ---
2
+ :name: profile_servicerequest
3
+ :class_name: ProfileServicerequestSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: ServiceRequest
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest
8
+ :profile_name: CRD Service Request
9
+ :profile_version: 2.0.1
10
+ :title: CRD Service Request
11
+ :short_description: Verify support for the server capabilities required by the CRD
12
+ Service Request.
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: ServiceRequest.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: basedOn
32
+ :types:
33
+ - Reference
34
+ - :path: status
35
+ :fixed_value: draft
36
+ - :path: doNotPerform
37
+ - :path: code
38
+ - :path: quantity[x]
39
+ - :path: subject
40
+ :types:
41
+ - Reference
42
+ :target_profiles:
43
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
44
+ - :path: occurrence[x]
45
+ - :path: authoredOn
46
+ - :path: requester
47
+ :types:
48
+ - Reference
49
+ - :path: performer
50
+ :types:
51
+ - Reference
52
+ - :path: locationReference
53
+ :types:
54
+ - Reference
55
+ :target_profiles:
56
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-location
57
+ - :path: reasonCode
58
+ - :path: reasonReference
59
+ :types:
60
+ - Reference
61
+ :mandatory_elements:
62
+ - ServiceRequest.status
63
+ - ServiceRequest.intent
64
+ - ServiceRequest.code
65
+ - ServiceRequest.subject
66
+ - ServiceRequest.authoredOn
67
+ - ServiceRequest.requester
68
+ :bindings:
69
+ - :type: code
70
+ :strength: required
71
+ :system: http://hl7.org/fhir/ValueSet/request-intent
72
+ :path: intent
73
+ - :type: code
74
+ :strength: required
75
+ :system: http://hl7.org/fhir/ValueSet/request-priority
76
+ :path: priority
77
+ :references:
78
+ - :path: ServiceRequest.basedOn
79
+ :profiles:
80
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest
81
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest
82
+ - :path: ServiceRequest.replaces
83
+ :profiles:
84
+ - http://hl7.org/fhir/StructureDefinition/ServiceRequest
85
+ - :path: ServiceRequest.subject
86
+ :profiles:
87
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
88
+ - :path: ServiceRequest.encounter
89
+ :profiles:
90
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
91
+ - :path: ServiceRequest.requester
92
+ :profiles:
93
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
94
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
95
+ - :path: ServiceRequest.performer
96
+ :profiles:
97
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
98
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
99
+ - :path: ServiceRequest.locationReference
100
+ :profiles:
101
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-location
102
+ - :path: ServiceRequest.reasonReference
103
+ :profiles:
104
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
105
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
106
+ - :path: ServiceRequest.insurance
107
+ :profiles:
108
+ - http://hl7.org/fhir/StructureDefinition/Coverage
109
+ - http://hl7.org/fhir/StructureDefinition/ClaimResponse
110
+ - :path: ServiceRequest.supportingInfo
111
+ :profiles:
112
+ - http://hl7.org/fhir/StructureDefinition/Resource
113
+ - :path: ServiceRequest.specimen
114
+ :profiles:
115
+ - http://hl7.org/fhir/StructureDefinition/Specimen
116
+ - :path: ServiceRequest.relevantHistory
117
+ :profiles:
118
+ - http://hl7.org/fhir/StructureDefinition/Provenance
119
+ :tests:
120
+ - :id: us_core_v311_service_request_read_test
121
+ :file_name: service_request_read_test.rb
122
+ - :id: us_core_v311_service_request_validation_test
123
+ :file_name: service_request_validation_test.rb
124
+ - :id: us_core_v311_service_request_must_support_test
125
+ :file_name: service_request_must_support_test.rb
126
+ - :id: us_core_v311_service_request_reference_resolution_test
127
+ :file_name: service_request_reference_resolution_test.rb
128
+ :id: us_core_v311_service_request
129
+ :file_name: service_request_group.rb
130
+ :delayed_references:
131
+ - :path: basedOn
132
+ :resources:
133
+ - ServiceRequest
134
+ - MedicationRequest
135
+ - :path: requester
136
+ :resources:
137
+ - PractitionerRole
138
+ - :path: performer
139
+ :resources:
140
+ - PractitionerRole
@@ -0,0 +1,47 @@
1
+ module DaVinciDTRTestKit
2
+ class ServiceRequestMustSupportTest < Inferno::Test
3
+ include USCoreTestKit::MustSupportTest
4
+
5
+ title 'All must support elements are provided in the ServiceRequest resources returned'
6
+ description %(
7
+ This test will look through the ServiceRequest resources
8
+ found previously for the following must support elements:\n
9
+
10
+ * ServiceRequest.authoredOn
11
+ * ServiceRequest.basedOn
12
+ * ServiceRequest.code
13
+ * ServiceRequest.doNotPerform
14
+ * ServiceRequest.extension:Coverage-Information
15
+ * ServiceRequest.identifier
16
+ * ServiceRequest.locationReference
17
+ * ServiceRequest.occurrence[x]
18
+ * ServiceRequest.performer
19
+ * ServiceRequest.quantity[x]
20
+ * ServiceRequest.reasonCode
21
+ * ServiceRequest.reasonReference
22
+ * ServiceRequest.requester
23
+ * ServiceRequest.status
24
+ * ServiceRequest.subject
25
+ )
26
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
27
+ id :service_request_must_support_test
28
+
29
+ def resource_type
30
+ 'ServiceRequest'
31
+ end
32
+
33
+ def self.metadata
34
+ @metadata ||= USCoreTestKit::Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'),
35
+ aliases: true))
36
+ end
37
+
38
+ def scratch_resources
39
+ scratch[:service_requests] ||= {}
40
+ end
41
+
42
+ run do
43
+ skip_if(service_request_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
44
+ perform_must_support_test(all_scratch_resources)
45
+ end
46
+ end
47
+ end
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
6
6
 
7
7
  title 'Server returns correct ServiceRequest resource from ServiceRequest read interaction'
8
8
  description 'A server SHOULD support the ServiceRequest read interaction.'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@276'
9
10
 
10
11
  id :service_request_read
11
12
  output :service_request_resources
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
14
15
  'ServiceRequest'
15
16
  end
16
17
 
18
+ def scratch_resources
19
+ scratch[:service_requests] ||= {}
20
+ end
21
+
17
22
  def service_request_id_list
18
23
  return [nil] unless respond_to? :service_request_ids
19
24
 
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
21
26
  end
22
27
 
23
28
  run do
24
- resources = perform_read_test(service_request_id_list, resource_type)
25
-
26
- output service_request_resources: resources.to_json
29
+ perform_read_test(service_request_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 ServiceRequestValidationTest < Inferno::Test
5
- include DaVinciDTRTestKit::ValidationTest
3
+ include USCoreTestKit::ValidationTest
6
4
 
7
5
  title 'ServiceRequest resources returned during previous tests conform to the CRD ServiceRequest'
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 :service_request_validation
22
- input :service_request_resources,
23
- optional: true
24
20
 
25
21
  def resource_type
26
22
  'ServiceRequest'
27
23
  end
28
24
 
25
+ def scratch_resources
26
+ scratch[:service_requests] ||= {}
27
+ end
28
+
29
29
  run do
30
- skip_if(service_request_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
- perform_profile_validation_test(service_request_resources, resource_type,
32
- 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest|2.0.1')
30
+ perform_validation_test(scratch_resources[:all] || [],
31
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest',
32
+ '2.0.1',
33
+ skip_if_empty: true)
33
34
  end
34
35
  end
35
36
  end