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,135 @@
1
+ ---
2
+ :name: profile_communicationrequest
3
+ :class_name: ProfileCommunicationrequestSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: CommunicationRequest
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-communicationrequest
8
+ :profile_name: CRD Communication Request
9
+ :profile_version: 2.0.1
10
+ :title: CRD Communication Request
11
+ :short_description: Verify support for the server capabilities required by the CRD
12
+ Communication 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: CommunicationRequest.extension:Coverage-Information
26
+ :path: extension
27
+ :url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
28
+ - :id: CommunicationRequest.payload.extension:codeableConcept
29
+ :path: payload.extension
30
+ :url: http://hl7.org/fhir/5.0/StructureDefinition/extension-CommunicationRequest.payload.content[x]
31
+ :slices: []
32
+ :elements:
33
+ - :path: identifier
34
+ - :path: basedOn
35
+ :types:
36
+ - Reference
37
+ - :path: status
38
+ :fixed_value: draft
39
+ - :path: subject
40
+ :types:
41
+ - Reference
42
+ :target_profiles:
43
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
44
+ - :path: payload
45
+ - :path: occurrence[x]
46
+ - :path: authoredOn
47
+ - :path: requester
48
+ :types:
49
+ - Reference
50
+ - :path: recipient
51
+ :types:
52
+ - Reference
53
+ - :path: sender
54
+ :types:
55
+ - Reference
56
+ - :path: reasonCode
57
+ - :path: reasonReference
58
+ :types:
59
+ - Reference
60
+ :mandatory_elements:
61
+ - CommunicationRequest.basedOn
62
+ - CommunicationRequest.status
63
+ - CommunicationRequest.subject
64
+ - CommunicationRequest.payload
65
+ - CommunicationRequest.payload.extension
66
+ - CommunicationRequest.payload.extension.url
67
+ - CommunicationRequest.payload.extension.value[x]
68
+ - CommunicationRequest.payload.content[x]
69
+ - CommunicationRequest.authoredOn
70
+ - CommunicationRequest.requester
71
+ :bindings:
72
+ - :type: code
73
+ :strength: required
74
+ :system: http://hl7.org/fhir/ValueSet/request-priority
75
+ :path: priority
76
+ :references:
77
+ - :path: CommunicationRequest.basedOn
78
+ :profiles:
79
+ - http://hl7.org/fhir/StructureDefinition/Resource
80
+ - :path: CommunicationRequest.replaces
81
+ :profiles:
82
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-communicationrequest
83
+ - :path: CommunicationRequest.subject
84
+ :profiles:
85
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
86
+ - :path: CommunicationRequest.about
87
+ :profiles:
88
+ - http://hl7.org/fhir/StructureDefinition/Resource
89
+ - :path: CommunicationRequest.encounter
90
+ :profiles:
91
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
92
+ - :path: CommunicationRequest.requester
93
+ :profiles:
94
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
95
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
96
+ - :path: CommunicationRequest.recipient
97
+ :profiles:
98
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
99
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
100
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
101
+ - :path: CommunicationRequest.sender
102
+ :profiles:
103
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
104
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
105
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
106
+ - :path: CommunicationRequest.reasonReference
107
+ :profiles:
108
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
109
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
110
+ :tests:
111
+ - :id: us_core_v311_communication_request_read_test
112
+ :file_name: communication_request_read_test.rb
113
+ - :id: us_core_v311_communication_request_validation_test
114
+ :file_name: communication_request_validation_test.rb
115
+ - :id: us_core_v311_communication_request_must_support_test
116
+ :file_name: communication_request_must_support_test.rb
117
+ - :id: us_core_v311_communication_request_reference_resolution_test
118
+ :file_name: communication_request_reference_resolution_test.rb
119
+ :id: us_core_v311_communication_request
120
+ :file_name: communication_request_group.rb
121
+ :delayed_references:
122
+ - :path: replaces
123
+ :resources:
124
+ - CommunicationRequest
125
+ - :path: requester
126
+ :resources:
127
+ - PractitionerRole
128
+ - :path: recipient
129
+ :resources:
130
+ - PractitionerRole
131
+ - Organization
132
+ - :path: sender
133
+ :resources:
134
+ - PractitionerRole
135
+ - Organization
@@ -1,5 +1,6 @@
1
1
  require_relative 'communication_request/communication_request_read'
2
2
  require_relative 'communication_request/communication_request_validation'
3
+ require_relative 'communication_request/communication_request_must_support_test'
3
4
 
4
5
  module DaVinciDTRTestKit
5
6
  class CommunicationRequestGroup < Inferno::TestGroup
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
23
24
  the [CRD CommunicationRequest 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 CommunicationRequest resources found in the first test for these
32
+ elements.
33
+
26
34
  )
27
35
  id :communication_request_group
28
36
  optional
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
35
43
 
36
44
  test from: :communication_request_read
37
45
  test from: :communication_request_validation
46
+ test from: :communication_request_must_support_test
38
47
  end
39
48
  end
@@ -0,0 +1,54 @@
1
+ module DaVinciDTRTestKit
2
+ class CoverageMustSupportTest < Inferno::Test
3
+ include USCoreTestKit::MustSupportTest
4
+
5
+ title 'All must support elements are provided in the Coverage resources returned'
6
+ description %(
7
+ This test will look through the Coverage resources
8
+ found previously for the following must support elements:\n
9
+
10
+ * Coverage.beneficiary
11
+ * Coverage.class
12
+ * Coverage.class:group
13
+ * Coverage.class:group.name
14
+ * Coverage.class:group.value
15
+ * Coverage.class:plan
16
+ * Coverage.class:plan.name
17
+ * Coverage.class:plan.value
18
+ * Coverage.dependent
19
+ * Coverage.identifier
20
+ * Coverage.identifier:MBIdentifier
21
+ * Coverage.identifier:MBIdentifier.type
22
+ * Coverage.network
23
+ * Coverage.order
24
+ * Coverage.payor
25
+ * Coverage.period
26
+ * Coverage.policyHolder
27
+ * Coverage.relationship
28
+ * Coverage.status
29
+ * Coverage.subscriber
30
+ * Coverage.subscriberId
31
+ * Coverage.type
32
+ )
33
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
34
+ id :coverage_must_support_test
35
+
36
+ def resource_type
37
+ 'Coverage'
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[:coverages] ||= {}
47
+ end
48
+
49
+ run do
50
+ skip_if(coverage_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
51
+ perform_must_support_test(all_scratch_resources)
52
+ end
53
+ end
54
+ end
@@ -14,6 +14,10 @@ module DaVinciDTRTestKit
14
14
  'Coverage'
15
15
  end
16
16
 
17
+ def scratch_resources
18
+ scratch[:coverages] ||= {}
19
+ end
20
+
17
21
  def coverage_id_list
18
22
  return [nil] unless respond_to? :coverage_ids
19
23
 
@@ -21,9 +25,7 @@ module DaVinciDTRTestKit
21
25
  end
22
26
 
23
27
  run do
24
- resources = perform_read_test(coverage_id_list, resource_type)
25
-
26
- output coverage_resources: resources.to_json
28
+ perform_read_test(coverage_id_list, resource_type)
27
29
  end
28
30
  end
29
31
  end
@@ -1,8 +1,6 @@
1
- require_relative '../../validation_test'
2
-
3
1
  module DaVinciDTRTestKit
4
2
  class CoverageValidationTest < Inferno::Test
5
- include DaVinciDTRTestKit::ValidationTest
3
+ include USCoreTestKit::ValidationTest
6
4
 
7
5
  title 'Coverage resources returned during previous tests conform to the CRD Coverage'
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 :coverage_validation
22
- input :coverage_resources,
23
- optional: true
24
20
 
25
21
  def resource_type
26
22
  'Coverage'
27
23
  end
28
24
 
25
+ def scratch_resources
26
+ scratch[:coverages] ||= {}
27
+ end
28
+
29
29
  run do
30
- skip_if(coverage_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
- perform_profile_validation_test(coverage_resources, resource_type,
32
- 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-coverage|2.0.1')
30
+ perform_validation_test(scratch_resources[:all] || [],
31
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-coverage',
32
+ '2.0.1',
33
+ skip_if_empty: true)
33
34
  end
34
35
  end
35
36
  end
@@ -0,0 +1,133 @@
1
+ ---
2
+ :name: profile_coverage
3
+ :class_name: ProfileCoverageSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: Coverage
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-coverage
8
+ :profile_name: CRD Coverage
9
+ :profile_version: 2.0.1
10
+ :title: CRD Coverage
11
+ :short_description:
12
+ Verify support for the server capabilities required by the CRD
13
+ Coverage.
14
+ :is_delayed: true
15
+ :interactions:
16
+ - :code: read
17
+ :expectation: SHALL
18
+ :operations: []
19
+ :searches: []
20
+ :search_definitions: {}
21
+ :include_params: []
22
+ :revincludes: []
23
+ :required_concepts: []
24
+ :must_supports:
25
+ :extensions: []
26
+ :slices:
27
+ - :slice_id: Coverage.identifier:MBIdentifier
28
+ :slice_name: MBIdentifier
29
+ :path: identifier
30
+ :discriminator:
31
+ :type: patternCodeableConcept
32
+ :path: type
33
+ :code: MB
34
+ :system: http://terminology.hl7.org/CodeSystem/v2-0203
35
+ - :slice_id: Coverage.class:group
36
+ :slice_name: group
37
+ :path: class
38
+ :discriminator:
39
+ :type: patternCodeableConcept
40
+ :path: type
41
+ :code: group
42
+ :system: http://terminology.hl7.org/CodeSystem/coverage-class
43
+ - :slice_id: Coverage.class:plan
44
+ :slice_name: plan
45
+ :path: class
46
+ :discriminator:
47
+ :type: patternCodeableConcept
48
+ :path: type
49
+ :code: plan
50
+ :system: http://terminology.hl7.org/CodeSystem/coverage-class
51
+ :elements:
52
+ - :path: identifier
53
+ - :path: identifier:MBIdentifier.type
54
+ - :path: status
55
+ - :path: type
56
+ - :path: policyHolder
57
+ :types:
58
+ - Reference
59
+ - :path: subscriber
60
+ :types:
61
+ - Reference
62
+ :target_profiles:
63
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
64
+ - :path: subscriberId
65
+ - :path: beneficiary
66
+ :types:
67
+ - Reference
68
+ :target_profiles:
69
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
70
+ - :path: dependent
71
+ - :path: relationship
72
+ - :path: period
73
+ - :path: payor
74
+ :types:
75
+ - Reference
76
+ - :path: class
77
+ - :path: class:group.value
78
+ - :path: class:group.name
79
+ - :path: class:plan.value
80
+ - :path: class:plan.name
81
+ - :path: order
82
+ - :path: network
83
+ :mandatory_elements:
84
+ - Coverage.identifier.type
85
+ - Coverage.status
86
+ - Coverage.beneficiary
87
+ - Coverage.payor
88
+ - Coverage.class.type
89
+ - Coverage.class.value
90
+ - Coverage.costToBeneficiary.value[x]
91
+ - Coverage.costToBeneficiary.exception.type
92
+ :bindings:
93
+ - :type: code
94
+ :strength: required
95
+ :system: http://hl7.org/fhir/ValueSet/identifier-use
96
+ :path: identifier.use
97
+ - :type: code
98
+ :strength: required
99
+ :system: http://hl7.org/fhir/ValueSet/fm-status
100
+ :path: status
101
+ :references:
102
+ - :path: Coverage.identifier.assigner
103
+ :profiles:
104
+ - http://hl7.org/fhir/StructureDefinition/Organization
105
+ - :path: Coverage.policyHolder
106
+ :profiles:
107
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
108
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-organization
109
+ - :path: Coverage.subscriber
110
+ :profiles:
111
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
112
+ - :path: Coverage.beneficiary
113
+ :profiles:
114
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
115
+ - :path: Coverage.payor
116
+ :profiles:
117
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
118
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-organization
119
+ - :path: Coverage.contract
120
+ :profiles:
121
+ - http://hl7.org/fhir/StructureDefinition/Contract
122
+ :tests:
123
+ - :id: us_core_v311_coverage_read_test
124
+ :file_name: coverage_read_test.rb
125
+ - :id: us_core_v311_coverage_validation_test
126
+ :file_name: coverage_validation_test.rb
127
+ - :id: us_core_v311_coverage_must_support_test
128
+ :file_name: coverage_must_support_test.rb
129
+ - :id: us_core_v311_coverage_reference_resolution_test
130
+ :file_name: coverage_reference_resolution_test.rb
131
+ :id: us_core_v311_coverage
132
+ :file_name: coverage_group.rb
133
+ :delayed_references: []
@@ -1,5 +1,6 @@
1
1
  require_relative 'coverage/coverage_read'
2
2
  require_relative 'coverage/coverage_validation'
3
+ require_relative 'coverage/coverage_must_support_test'
3
4
 
4
5
  module DaVinciDTRTestKit
5
6
  class CoverageGroup < Inferno::TestGroup
@@ -23,6 +24,12 @@ module DaVinciDTRTestKit
23
24
  the [CRD Coverage Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-coverage.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 Coverage resources found in the first test for these
32
+ elements.
26
33
  )
27
34
  id :coverage_group
28
35
  run_as_group
@@ -34,5 +41,6 @@ module DaVinciDTRTestKit
34
41
 
35
42
  test from: :coverage_read
36
43
  test from: :coverage_validation
44
+ test from: :coverage_must_support_test
37
45
  end
38
46
  end
@@ -0,0 +1,45 @@
1
+ module DaVinciDTRTestKit
2
+ class DeviceRequestMustSupportTest < Inferno::Test
3
+ include USCoreTestKit::MustSupportTest
4
+
5
+ title 'All must support elements are provided in the DeviceRequest resources returned'
6
+ description %(
7
+ This test will look through the DeviceRequest resources
8
+ found previously for the following must support elements:\n
9
+
10
+ * DeviceRequest.authoredOn
11
+ * DeviceRequest.basedOn
12
+ * DeviceRequest.code[x]
13
+ * DeviceRequest.extension:Coverage-Information
14
+ * DeviceRequest.identifier
15
+ * DeviceRequest.occurrence[x]
16
+ * DeviceRequest.parameter
17
+ * DeviceRequest.performer
18
+ * DeviceRequest.reasonCode
19
+ * DeviceRequest.reasonReference
20
+ * DeviceRequest.requester
21
+ * DeviceRequest.status
22
+ * DeviceRequest.subject
23
+ )
24
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
25
+ id :device_request_must_support_test
26
+
27
+ def resource_type
28
+ 'DeviceRequest'
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[:device_requests] ||= {}
38
+ end
39
+
40
+ run do
41
+ skip_if(device_request_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 DeviceRequest resource from DeviceRequest read interaction'
8
8
  description 'A server SHOULD support the DeviceRequest read interaction.'
9
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@272'
9
10
 
10
11
  id :device_request_read
11
12
  output :device_request_resources
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
14
15
  'DeviceRequest'
15
16
  end
16
17
 
18
+ def scratch_resources
19
+ scratch[:device_requests] ||= {}
20
+ end
21
+
17
22
  def device_request_id_list
18
23
  return [nil] unless respond_to? :device_request_ids
19
24
 
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
21
26
  end
22
27
 
23
28
  run do
24
- resources = perform_read_test(device_request_id_list, resource_type)
25
-
26
- output device_request_resources: resources.to_json
29
+ perform_read_test(device_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 DeviceRequestValidationTest < Inferno::Test
5
- include DaVinciDTRTestKit::ValidationTest
3
+ include USCoreTestKit::ValidationTest
6
4
 
7
5
  title 'DeviceRequest resources returned during previous tests conform to the CRD DeviceRequest'
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 :device_request_validation
22
- input :device_request_resources,
23
- optional: true
24
20
 
25
21
  def resource_type
26
22
  'DeviceRequest'
27
23
  end
28
24
 
25
+ def scratch_resources
26
+ scratch[:device_requests] ||= {}
27
+ end
28
+
29
29
  run do
30
- skip_if(device_request_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
31
- perform_profile_validation_test(device_request_resources, resource_type,
32
- 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-devicerequest|2.0.1')
30
+ perform_validation_test(scratch_resources[:all] || [],
31
+ 'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-devicerequest',
32
+ '2.0.1',
33
+ skip_if_empty: true)
33
34
  end
34
35
  end
35
36
  end
@@ -0,0 +1,130 @@
1
+ ---
2
+ :name: profile_devicerequest
3
+ :class_name: ProfileDevicerequestSequence
4
+ :version: v3.1.1
5
+ :reformatted_version: v311
6
+ :resource: DeviceRequest
7
+ :profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-devicerequest
8
+ :profile_name: CRD Device Request
9
+ :profile_version: 2.0.1
10
+ :title: CRD Device Request
11
+ :short_description: Verify support for the server capabilities required by the CRD
12
+ Device 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: DeviceRequest.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: code[x]
37
+ :types:
38
+ - Reference
39
+ :target_profiles:
40
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-device
41
+ - :path: parameter
42
+ - :path: subject
43
+ :types:
44
+ - Reference
45
+ :target_profiles:
46
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
47
+ - :path: occurrence[x]
48
+ - :path: authoredOn
49
+ - :path: requester
50
+ :types:
51
+ - Reference
52
+ - :path: performer
53
+ :types:
54
+ - Reference
55
+ - :path: reasonCode
56
+ - :path: reasonReference
57
+ :types:
58
+ - Reference
59
+ :mandatory_elements:
60
+ - DeviceRequest.status
61
+ - DeviceRequest.intent
62
+ - DeviceRequest.code[x]
63
+ - DeviceRequest.subject
64
+ - DeviceRequest.authoredOn
65
+ - DeviceRequest.requester
66
+ :bindings:
67
+ - :type: code
68
+ :strength: required
69
+ :system: http://hl7.org/fhir/ValueSet/request-intent
70
+ :path: intent
71
+ - :type: code
72
+ :strength: required
73
+ :system: http://hl7.org/fhir/ValueSet/request-priority
74
+ :path: priority
75
+ :references:
76
+ - :path: DeviceRequest.basedOn
77
+ :profiles:
78
+ - http://hl7.org/fhir/StructureDefinition/Resource
79
+ - :path: DeviceRequest.priorRequest
80
+ :profiles:
81
+ - http://hl7.org/fhir/StructureDefinition/Resource
82
+ - :path: DeviceRequest.code[x]
83
+ :profiles:
84
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-device
85
+ - :path: DeviceRequest.subject
86
+ :profiles:
87
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
88
+ - :path: DeviceRequest.encounter
89
+ :profiles:
90
+ - http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
91
+ - :path: DeviceRequest.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: DeviceRequest.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: DeviceRequest.reasonReference
100
+ :profiles:
101
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
102
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
103
+ - :path: DeviceRequest.insurance
104
+ :profiles:
105
+ - http://hl7.org/fhir/StructureDefinition/Coverage
106
+ - http://hl7.org/fhir/StructureDefinition/ClaimResponse
107
+ - :path: DeviceRequest.supportingInfo
108
+ :profiles:
109
+ - http://hl7.org/fhir/StructureDefinition/Resource
110
+ - :path: DeviceRequest.relevantHistory
111
+ :profiles:
112
+ - http://hl7.org/fhir/StructureDefinition/Provenance
113
+ :tests:
114
+ - :id: us_core_v311_device_request_read_test
115
+ :file_name: device_request_read_test.rb
116
+ - :id: us_core_v311_device_request_validation_test
117
+ :file_name: device_request_validation_test.rb
118
+ - :id: us_core_v311_device_request_must_support_test
119
+ :file_name: device_request_must_support_test.rb
120
+ - :id: us_core_v311_device_request_reference_resolution_test
121
+ :file_name: device_request_reference_resolution_test.rb
122
+ :id: us_core_v311_device_request
123
+ :file_name: device_request_group.rb
124
+ :delayed_references:
125
+ - :path: requester
126
+ :resources:
127
+ - PractitionerRole
128
+ - :path: performer
129
+ :resources:
130
+ - PractitionerRole