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,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
@@ -0,0 +1,166 @@
1
+ ---
2
+ :name: dtr_questionnaireresponse
3
+ :class_name: DtrQuestionnaireresponseSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: QuestionnaireResponse
7
+ :profile_url: http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaireresponse
8
+ :profile_name: DTR Questionnaire Response
9
+ :profile_version: 2.0.1
10
+ :title: DTR Questionnaire Response
11
+ :short_description: Verify support for the server capabilities required by the DTR
12
+ Questionnaire Response.
13
+ :is_delayed: false
14
+ :interactions:
15
+ - :code: read
16
+ :expectation: SHALL
17
+ - :code: create
18
+ :expectation: SHALL
19
+ - :code: update
20
+ :expectation: SHALL
21
+ - :code: search-type
22
+ :expectation: SHALL
23
+ :operations: []
24
+ :searches:
25
+ - :names:
26
+ - patient
27
+ :expectation: SHALL
28
+ :names_not_must_support_or_mandatory: []
29
+ :must_support_or_mandatory: true
30
+ - :names:
31
+ - context
32
+ :expectation: SHALL
33
+ :names_not_must_support_or_mandatory:
34
+ - context
35
+ :must_support_or_mandatory: false
36
+ :search_definitions:
37
+ :context:
38
+ :paths:
39
+ - extension.where(url='http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/qr-context').value
40
+ :full_paths:
41
+ - QuestionnaireResponse.extension.where(url='http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/qr-context').value
42
+ :comparators: {}
43
+ :values: []
44
+ :type: reference
45
+ :contains_multiple: false
46
+ :multiple_or: MAY
47
+ :patient:
48
+ :paths:
49
+ - subject
50
+ :full_paths:
51
+ - QuestionnaireResponse.subject
52
+ :comparators: {}
53
+ :values: []
54
+ :type: Reference
55
+ :contains_multiple: false
56
+ :multiple_or: MAY
57
+ :include_params: []
58
+ :revincludes: []
59
+ :required_concepts: []
60
+ :must_supports:
61
+ :extensions:
62
+ - :id: QuestionnaireResponse.extension:signature
63
+ :path: extension
64
+ :url: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
65
+ - :id: QuestionnaireResponse.questionnaire.extension:questionnaireDisplay
66
+ :path: questionnaire.extension
67
+ :url: http://hl7.org/fhir/StructureDefinition/display
68
+ - :id: QuestionnaireResponse.item.extension:ItemSignature
69
+ :path: item.extension
70
+ :url: http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature
71
+ - :id: QuestionnaireResponse.item.answer.extension:itemAnswerMedia
72
+ :path: item.answer.extension
73
+ :url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemAnswerMedia
74
+ - :id: QuestionnaireResponse.item.answer.extension:ordinalValue
75
+ :path: item.answer.extension
76
+ :url: http://hl7.org/fhir/StructureDefinition/ordinalValue
77
+ - :id: QuestionnaireResponse.item.answer.extension:origin
78
+ :path: item.answer.extension
79
+ :url: http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/information-origin
80
+ :slices: []
81
+ :elements:
82
+ - :path: identifier
83
+ - :path: questionnaire
84
+ - :path: status
85
+ - :path: subject
86
+ :types:
87
+ - Reference
88
+ :target_profiles:
89
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
90
+ - :path: authored
91
+ - :path: author
92
+ :types:
93
+ - Reference
94
+ - :path: item
95
+ - :path: item.linkId
96
+ - :path: item.text
97
+ - :path: item.answer
98
+ - :path: item.answer.value[x]
99
+ :types:
100
+ - Reference
101
+ - :path: item.answer.item
102
+ - :path: item.item
103
+ :mandatory_elements:
104
+ - QuestionnaireResponse.extension
105
+ - QuestionnaireResponse.questionnaire
106
+ - QuestionnaireResponse.status
107
+ - QuestionnaireResponse.subject
108
+ - QuestionnaireResponse.authored
109
+ - QuestionnaireResponse.item
110
+ - QuestionnaireResponse.item.linkId
111
+ - QuestionnaireResponse.item.answer.extension
112
+ :bindings:
113
+ - :type: code
114
+ :strength: required
115
+ :system: http://hl7.org/fhir/ValueSet/questionnaire-answers-status
116
+ :path: status
117
+ :references:
118
+ - :path: QuestionnaireResponse.basedOn
119
+ :profiles:
120
+ - http://hl7.org/fhir/StructureDefinition/CarePlan
121
+ - http://hl7.org/fhir/StructureDefinition/ServiceRequest
122
+ - :path: QuestionnaireResponse.partOf
123
+ :profiles:
124
+ - http://hl7.org/fhir/StructureDefinition/Observation
125
+ - http://hl7.org/fhir/StructureDefinition/Procedure
126
+ - :path: QuestionnaireResponse.subject
127
+ :profiles:
128
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
129
+ - :path: QuestionnaireResponse.encounter
130
+ :profiles:
131
+ - http://hl7.org/fhir/StructureDefinition/Encounter
132
+ - :path: QuestionnaireResponse.author
133
+ :profiles:
134
+ - http://hl7.org/fhir/StructureDefinition/Device
135
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
136
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
137
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
138
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
139
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
140
+ - :path: QuestionnaireResponse.source
141
+ :profiles:
142
+ - http://hl7.org/fhir/StructureDefinition/Patient
143
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
144
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
145
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
146
+ :tests:
147
+ - :id: us_core_v311_questionnaire_response_patient_search_test
148
+ :file_name: questionnaire_response_patient_search_test.rb
149
+ - :id: us_core_v311_questionnaire_response_context_search_test
150
+ :file_name: questionnaire_response_context_search_test.rb
151
+ - :id: us_core_v311_questionnaire_response_read_test
152
+ :file_name: questionnaire_response_read_test.rb
153
+ - :id: us_core_v311_questionnaire_response_validation_test
154
+ :file_name: questionnaire_response_validation_test.rb
155
+ - :id: us_core_v311_questionnaire_response_must_support_test
156
+ :file_name: questionnaire_response_must_support_test.rb
157
+ - :id: us_core_v311_questionnaire_response_reference_resolution_test
158
+ :file_name: questionnaire_response_reference_resolution_test.rb
159
+ :id: us_core_v311_questionnaire_response
160
+ :file_name: questionnaire_response_group.rb
161
+ :delayed_references:
162
+ - :path: author
163
+ :resources:
164
+ - Practitioner
165
+ - PractitionerRole
166
+ - Organization
@@ -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