davinci_pas_test_kit 0.9.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 (168) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/davinci_pas_test_kit/client_suite.rb +289 -0
  4. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/claim_status/pas_claim_status_test.rb +109 -0
  5. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_response_attest.rb +39 -0
  6. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_test.rb +38 -0
  7. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_response_attest.rb +38 -0
  8. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_test.rb +43 -0
  9. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_inquire_must_support_test.rb +51 -0
  10. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_inquire_response_attest.rb +39 -0
  11. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_inquire_test.rb +35 -0
  12. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_submit_response_attest.rb +39 -0
  13. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_submit_test.rb +43 -0
  14. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_submit_must_support_test.rb +57 -0
  15. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_token_request_test.rb +31 -0
  16. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_token_validation_test.rb +18 -0
  17. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/nonconformant_pas_bundle.json +16 -0
  18. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/pas_inquiry_error_test.rb +38 -0
  19. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/pas_submission_error_test.rb +56 -0
  20. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/device_request_metadata.yml +112 -0
  21. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/medication_request_metadata.yml +183 -0
  22. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/nutrition_order_metadata.yml +109 -0
  23. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/pas_client_must_support_requirement_test.rb +117 -0
  24. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/pas_server_must_support_requirement_test.rb +116 -0
  25. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/service_request_metadata.yml +148 -0
  26. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_approval_group.rb +26 -0
  27. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_authentication_group.rb +49 -0
  28. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_denial_group.rb +41 -0
  29. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_pended_group.rb +56 -0
  30. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_error_group.rb +20 -0
  31. data/lib/davinci_pas_test_kit/ext/inferno_core/record_response_route.rb +98 -0
  32. data/lib/davinci_pas_test_kit/ext/inferno_core/request.rb +19 -0
  33. data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +18 -0
  34. data/lib/davinci_pas_test_kit/fhir_resource_navigation.rb +72 -0
  35. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/client_inquiry_request_beneficiary_must_support_test.rb +75 -0
  36. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/client_submit_request_beneficiary_must_support_test.rb +75 -0
  37. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/metadata.yml +162 -0
  38. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_inquiry_request_beneficiary_must_support_test.rb +75 -0
  39. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_inquiry_response_beneficiary_must_support_test.rb +75 -0
  40. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_submit_request_beneficiary_must_support_test.rb +75 -0
  41. data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_submit_response_beneficiary_must_support_test.rb +75 -0
  42. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/claim_operation_test.rb +67 -0
  43. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/metadata.yml +577 -0
  44. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/claim_inquiry_operation_test.rb +57 -0
  45. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/client_inquiry_request_claim_inquiry_must_support_test.rb +95 -0
  46. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/metadata.yml +516 -0
  47. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/server_inquiry_request_claim_inquiry_must_support_test.rb +95 -0
  48. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/client_submit_request_claim_update_must_support_test.rb +102 -0
  49. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/metadata.yml +591 -0
  50. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/server_submit_request_claim_update_must_support_test.rb +102 -0
  51. data/lib/davinci_pas_test_kit/generated/v2.0.1/claiminquiryresponse/metadata.yml +311 -0
  52. data/lib/davinci_pas_test_kit/generated/v2.0.1/claiminquiryresponse/server_inquiry_response_claiminquiryresponse_must_support_test.rb +73 -0
  53. data/lib/davinci_pas_test_kit/generated/v2.0.1/claimresponse/metadata.yml +318 -0
  54. data/lib/davinci_pas_test_kit/generated/v2.0.1/claimresponse/server_submit_response_claimresponse_must_support_test.rb +75 -0
  55. data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_denial_pas_response_bundle_validation_test.rb +53 -0
  56. data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pas_request_bundle_validation_test.rb +55 -0
  57. data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pended_pas_inquiry_request_bundle_validation_test.rb +55 -0
  58. data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pended_pas_response_bundle_validation_test.rb +53 -0
  59. data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/metadata.yml +130 -0
  60. data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/server_submit_response_communication_request_must_support_test.rb +58 -0
  61. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_inquiry_request_coverage_must_support_test.rb +55 -0
  62. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_submit_request_coverage_must_support_test.rb +55 -0
  63. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/metadata.yml +111 -0
  64. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_inquiry_request_coverage_must_support_test.rb +55 -0
  65. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_submit_request_coverage_must_support_test.rb +55 -0
  66. data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/client_submit_request_device_request_must_support_test.rb +51 -0
  67. data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/metadata.yml +112 -0
  68. data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/server_submit_request_device_request_must_support_test.rb +51 -0
  69. data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/client_submit_request_encounter_must_support_test.rb +67 -0
  70. data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/metadata.yml +213 -0
  71. data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/server_submit_request_encounter_must_support_test.rb +67 -0
  72. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_inquiry_request_insurer_must_support_test.rb +60 -0
  73. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_submit_request_insurer_must_support_test.rb +60 -0
  74. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/metadata.yml +104 -0
  75. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquiry_request_insurer_must_support_test.rb +60 -0
  76. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquiry_response_insurer_must_support_test.rb +60 -0
  77. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_request_insurer_must_support_test.rb +60 -0
  78. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_response_insurer_must_support_test.rb +60 -0
  79. data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/client_submit_request_medication_request_must_support_test.rb +61 -0
  80. data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/metadata.yml +183 -0
  81. data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/server_submit_request_medication_request_must_support_test.rb +61 -0
  82. data/lib/davinci_pas_test_kit/generated/v2.0.1/metadata.yml +5253 -0
  83. data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/client_submit_request_nutrition_order_must_support_test.rb +53 -0
  84. data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/metadata.yml +109 -0
  85. data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/server_submit_request_nutrition_order_must_support_test.rb +53 -0
  86. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_inquiry_must_support_use_case_group.rb +51 -0
  87. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_submit_must_support_use_case_group.rb +61 -0
  88. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/client_inquiry_request_pas_inquiry_request_bundle_must_support_test.rb +53 -0
  89. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/metadata.yml +77 -0
  90. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_inquiry_request_pas_inquiry_request_bundle_must_support_test.rb +53 -0
  91. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_pas_inquiry_request_bundle_validation_test.rb +83 -0
  92. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/metadata.yml +67 -0
  93. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_inquiry_response_pas_inquiry_response_bundle_must_support_test.rb +52 -0
  94. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_pas_inquiry_response_bundle_validation_test.rb +80 -0
  95. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/client_submit_request_pas_request_bundle_must_support_test.rb +53 -0
  96. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/metadata.yml +77 -0
  97. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_pas_request_bundle_validation_test.rb +83 -0
  98. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_submit_request_pas_request_bundle_must_support_test.rb +53 -0
  99. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/metadata.yml +71 -0
  100. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_pas_response_bundle_validation_test.rb +80 -0
  101. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_submit_response_pas_response_bundle_must_support_test.rb +52 -0
  102. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_approval_use_case_group.rb +59 -0
  103. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_denial_use_case_group.rb +59 -0
  104. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_must_support_use_case_group.rb +265 -0
  105. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_pended_use_case_group.rb +84 -0
  106. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_inquiry_request_practitioner_must_support_test.rb +53 -0
  107. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_submit_request_practitioner_must_support_test.rb +53 -0
  108. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/metadata.yml +74 -0
  109. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquiry_request_practitioner_must_support_test.rb +53 -0
  110. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquiry_response_practitioner_must_support_test.rb +53 -0
  111. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_request_practitioner_must_support_test.rb +53 -0
  112. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_response_practitioner_must_support_test.rb +53 -0
  113. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_inquiry_request_practitioner_role_must_support_test.rb +49 -0
  114. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_submit_request_practitioner_role_must_support_test.rb +49 -0
  115. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/metadata.yml +81 -0
  116. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquiry_request_practitioner_role_must_support_test.rb +49 -0
  117. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquiry_response_practitioner_role_must_support_test.rb +49 -0
  118. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_request_practitioner_role_must_support_test.rb +49 -0
  119. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_response_practitioner_role_must_support_test.rb +49 -0
  120. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_inquiry_request_requestor_must_support_test.rb +63 -0
  121. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_submit_request_requestor_must_support_test.rb +63 -0
  122. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/metadata.yml +107 -0
  123. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquiry_request_requestor_must_support_test.rb +63 -0
  124. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquiry_response_requestor_must_support_test.rb +63 -0
  125. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_request_requestor_must_support_test.rb +63 -0
  126. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_response_requestor_must_support_test.rb +63 -0
  127. data/lib/davinci_pas_test_kit/generated/v2.0.1/resource_list.rb +54 -0
  128. data/lib/davinci_pas_test_kit/generated/v2.0.1/server_suite.rb +236 -0
  129. data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/client_submit_request_service_request_must_support_test.rb +53 -0
  130. data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/metadata.yml +148 -0
  131. data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/server_submit_request_service_request_must_support_test.rb +53 -0
  132. data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/client_inquiry_request_subscriber_must_support_test.rb +74 -0
  133. data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/client_submit_request_subscriber_must_support_test.rb +74 -0
  134. data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/metadata.yml +159 -0
  135. data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/server_inquiry_request_subscriber_must_support_test.rb +74 -0
  136. data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/server_submit_request_subscriber_must_support_test.rb +74 -0
  137. data/lib/davinci_pas_test_kit/generated/v2.0.1/task/metadata.yml +192 -0
  138. data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_inquiry_response_task_must_support_test.rb +61 -0
  139. data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_submit_response_task_must_support_test.rb +61 -0
  140. data/lib/davinci_pas_test_kit/generator/group_generator.rb +440 -0
  141. data/lib/davinci_pas_test_kit/generator/group_metadata.rb +73 -0
  142. data/lib/davinci_pas_test_kit/generator/group_metadata_extractor.rb +244 -0
  143. data/lib/davinci_pas_test_kit/generator/ig_loader.rb +78 -0
  144. data/lib/davinci_pas_test_kit/generator/ig_metadata.rb +66 -0
  145. data/lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb +54 -0
  146. data/lib/davinci_pas_test_kit/generator/ig_resources.rb +74 -0
  147. data/lib/davinci_pas_test_kit/generator/must_support_check_profiles.rb +86 -0
  148. data/lib/davinci_pas_test_kit/generator/must_support_metadata_extractor.rb +327 -0
  149. data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +155 -0
  150. data/lib/davinci_pas_test_kit/generator/naming.rb +50 -0
  151. data/lib/davinci_pas_test_kit/generator/operation_test_generator.rb +136 -0
  152. data/lib/davinci_pas_test_kit/generator/resource_list_generator.rb +59 -0
  153. data/lib/davinci_pas_test_kit/generator/suite_generator.rb +94 -0
  154. data/lib/davinci_pas_test_kit/generator/terminology_binding_metadata_extractor.rb +108 -0
  155. data/lib/davinci_pas_test_kit/generator/validation_test_generator.rb +181 -0
  156. data/lib/davinci_pas_test_kit/generator/value_extractor.rb +48 -0
  157. data/lib/davinci_pas_test_kit/generator.rb +80 -0
  158. data/lib/davinci_pas_test_kit/mock_server.rb +189 -0
  159. data/lib/davinci_pas_test_kit/must_support_test.rb +267 -0
  160. data/lib/davinci_pas_test_kit/pas_bundle_validation.rb +568 -0
  161. data/lib/davinci_pas_test_kit/tags.rb +7 -0
  162. data/lib/davinci_pas_test_kit/urls.rb +39 -0
  163. data/lib/davinci_pas_test_kit/user_input_response.rb +32 -0
  164. data/lib/davinci_pas_test_kit/validation_test.rb +58 -0
  165. data/lib/davinci_pas_test_kit/validator_suppressions.rb +143 -0
  166. data/lib/davinci_pas_test_kit/version.rb +5 -0
  167. data/lib/davinci_pas_test_kit.rb +2 -0
  168. metadata +281 -0
@@ -0,0 +1,74 @@
1
+ require_relative '../../../must_support_test'
2
+ require_relative '../../../generator/group_metadata'
3
+ require_relative '../../../tags'
4
+
5
+ module DaVinciPASTestKit
6
+ module DaVinciPASV201
7
+ class ServerSubmitRequestSubscriberMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Subscriber Patient are observed across all instances submitted'
11
+ description %(
12
+
13
+ PAS server systems are required to be able to receive all
14
+ must support elements on instances of all profiles included in
15
+ requests, including instances of the PAS Subscriber Patient Profile.
16
+ This test checks all identified instances of the PAS Subscriber Patient
17
+ Profile on requests sent to the server to ensure that the following
18
+ must support elements are observed:
19
+
20
+ * Patient.address
21
+ * Patient.address.city
22
+ * Patient.address.country
23
+ * Patient.address.district
24
+ * Patient.address.line
25
+ * Patient.address.period
26
+ * Patient.address.postalCode
27
+ * Patient.address.state
28
+ * Patient.birthDate
29
+ * Patient.communication
30
+ * Patient.communication.language
31
+ * Patient.extension:birthsex
32
+ * Patient.extension:ethnicity
33
+ * Patient.extension:race
34
+ * Patient.gender
35
+ * Patient.identifier
36
+ * Patient.identifier.system
37
+ * Patient.identifier.value
38
+ * Patient.name
39
+ * Patient.name.family
40
+ * Patient.name.given
41
+ * Patient.name.prefix
42
+ * Patient.name.suffix
43
+ * Patient.telecom
44
+ * Patient.telecom.system
45
+ * Patient.telecom.use
46
+ * Patient.telecom.value
47
+ )
48
+
49
+ id :pas_server_submit_request_v201_subscriber_must_support_test
50
+
51
+ def resource_type
52
+ 'Patient'
53
+ end
54
+
55
+ def self.metadata
56
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
57
+ end
58
+
59
+ def scratch_resources
60
+ scratch[:submit_request_resources] ||= {}
61
+ end
62
+
63
+ def resources_of_interest
64
+ collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
65
+ collection.select { |res| res.resourceType == resource_type }
66
+ end
67
+
68
+ run do
69
+ perform_must_support_test(resources_of_interest)
70
+ validate_must_support
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,192 @@
1
+ ---
2
+ :name: profile_task
3
+ :class_name: ProfileTaskSequence
4
+ :version: v2.0.1
5
+ :reformatted_version: v201
6
+ :resource: Task
7
+ :profile_url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-task
8
+ :profile_name: PAS Task
9
+ :profile_version: 2.0.1
10
+ :title: Task
11
+ :short_description: Verify support for the server capabilities required by the PAS
12
+ Task.
13
+ :interactions: []
14
+ :operations: []
15
+ :required_concepts:
16
+ - code
17
+ - input.valueCodeableConcept
18
+ :must_supports:
19
+ :extensions: []
20
+ :slices: []
21
+ :elements:
22
+ - :path: identifier
23
+ - :path: status
24
+ - :path: statusReason
25
+ - :path: intent
26
+ - :path: code
27
+ - :path: for
28
+ :types:
29
+ - Reference
30
+ - :path: requester
31
+ :types:
32
+ - Reference
33
+ - :path: requester.identifier
34
+ - :path: owner
35
+ :types:
36
+ - Reference
37
+ - :path: owner.identifier
38
+ - :path: reasonCode.coding.code
39
+ :fixed_value: priorAuthorization
40
+ - :path: reasonReference
41
+ :types:
42
+ - Reference
43
+ - :path: restriction.period
44
+ - :path: input
45
+ :mandatory_elements:
46
+ - Task.identifier
47
+ - Task.status
48
+ - Task.intent
49
+ - Task.code
50
+ - Task.for
51
+ - Task.requester
52
+ - Task.requester.identifier
53
+ - Task.owner
54
+ - Task.owner.identifier
55
+ - Task.reasonCode
56
+ - Task.reasonReference
57
+ - Task.input
58
+ - Task.input.type
59
+ - Task.input.value[x]
60
+ - Task.input.extension
61
+ - Task.output.type
62
+ - Task.output.value[x]
63
+ :bindings:
64
+ - :type: code
65
+ :strength: preferred
66
+ :system: http://hl7.org/fhir/ValueSet/languages
67
+ :path: language
68
+ - :type: code
69
+ :strength: required
70
+ :system: http://hl7.org/fhir/us/davinci-hrex/ValueSet/hrex-task-status
71
+ :path: status
72
+ - :type: CodeableConcept
73
+ :strength: example
74
+ :system:
75
+ :path: statusReason
76
+ - :type: CodeableConcept
77
+ :strength: example
78
+ :system:
79
+ :path: businessStatus
80
+ - :type: code
81
+ :strength: required
82
+ :system: http://hl7.org/fhir/ValueSet/task-intent
83
+ :path: intent
84
+ - :type: code
85
+ :strength: required
86
+ :system: http://hl7.org/fhir/ValueSet/request-priority
87
+ :path: priority
88
+ - :type: CodeableConcept
89
+ :strength: required
90
+ :system: http://hl7.org/fhir/us/davinci-pas/ValueSet/PASTaskCodes
91
+ :path: code
92
+ - :type: uri
93
+ :strength: extensible
94
+ :system: http://hl7.org/fhir/ValueSet/resource-types
95
+ :path: requester.type
96
+ - :type: CodeableConcept
97
+ :strength: preferred
98
+ :system: http://hl7.org/fhir/ValueSet/performer-role
99
+ :path: performerType
100
+ - :type: uri
101
+ :strength: extensible
102
+ :system: http://hl7.org/fhir/ValueSet/resource-types
103
+ :path: owner.type
104
+ - :type: CodeableConcept
105
+ :strength: example
106
+ :system:
107
+ :path: reasonCode
108
+ - :type: CodeableConcept
109
+ :strength: example
110
+ :system:
111
+ :path: input.type
112
+ - :type: CodeableConcept
113
+ :strength: example
114
+ :system:
115
+ :path: input.type
116
+ - :type: CodeableConcept
117
+ :strength: example
118
+ :system:
119
+ :path: input.type
120
+ - :type: CodeableConcept
121
+ :strength: required
122
+ :system: http://hl7.org/fhir/us/davinci-pas/ValueSet/AttachmentRequestCodes
123
+ :path: input.value
124
+ - :type: CodeableConcept
125
+ :strength: example
126
+ :system:
127
+ :path: input.type
128
+ - :type: CodeableConcept
129
+ :strength: example
130
+ :system:
131
+ :path: output.type
132
+ :references:
133
+ - :path: Task.basedOn
134
+ :profiles:
135
+ - http://hl7.org/fhir/StructureDefinition/Resource
136
+ - :path: Task.partOf
137
+ :profiles:
138
+ - http://hl7.org/fhir/StructureDefinition/Task
139
+ - :path: Task.focus
140
+ :profiles:
141
+ - http://hl7.org/fhir/StructureDefinition/Resource
142
+ - :path: Task.for
143
+ :profiles:
144
+ - http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary
145
+ - :path: Task.encounter
146
+ :profiles:
147
+ - http://hl7.org/fhir/StructureDefinition/Encounter
148
+ - :path: Task.requester
149
+ :profiles:
150
+ - http://hl7.org/fhir/StructureDefinition/Device
151
+ - http://hl7.org/fhir/StructureDefinition/Organization
152
+ - http://hl7.org/fhir/StructureDefinition/Patient
153
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
154
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
155
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
156
+ - :path: Task.owner
157
+ :profiles:
158
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
159
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
160
+ - http://hl7.org/fhir/StructureDefinition/Organization
161
+ - http://hl7.org/fhir/StructureDefinition/CareTeam
162
+ - http://hl7.org/fhir/StructureDefinition/HealthcareService
163
+ - http://hl7.org/fhir/StructureDefinition/Patient
164
+ - http://hl7.org/fhir/StructureDefinition/Device
165
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
166
+ - :path: Task.location
167
+ :profiles:
168
+ - http://hl7.org/fhir/StructureDefinition/Location
169
+ - :path: Task.reasonReference
170
+ :profiles:
171
+ - http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim
172
+ - :path: Task.insurance
173
+ :profiles:
174
+ - http://hl7.org/fhir/StructureDefinition/Coverage
175
+ - http://hl7.org/fhir/StructureDefinition/ClaimResponse
176
+ - :path: Task.relevantHistory
177
+ :profiles:
178
+ - http://hl7.org/fhir/StructureDefinition/Provenance
179
+ - :path: Task.restriction.recipient
180
+ :profiles:
181
+ - http://hl7.org/fhir/StructureDefinition/Patient
182
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
183
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
184
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
185
+ - http://hl7.org/fhir/StructureDefinition/Group
186
+ - http://hl7.org/fhir/StructureDefinition/Organization
187
+ :tests:
188
+ - :id: pas_server_submit_response_v201_task_must_support_test
189
+ :file_name: server_submit_response_task_must_support_test.rb
190
+ - :id: pas_server_inquiry_response_v201_task_must_support_test
191
+ :file_name: server_inquiry_response_task_must_support_test.rb
192
+ :delayed_references: []
@@ -0,0 +1,61 @@
1
+ require_relative '../../../must_support_test'
2
+ require_relative '../../../generator/group_metadata'
3
+ require_relative '../../../tags'
4
+
5
+ module DaVinciPASTestKit
6
+ module DaVinciPASV201
7
+ class ServerInquiryResponseTaskMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Task are observed across all instances returned'
11
+ description %(
12
+
13
+ PAS server systems are required to be able to populate all
14
+ must support elements on instances of all profiles included in
15
+ responses, including instances of the PAS Task Profile.
16
+ This test checks all identified instances of the PAS Task
17
+ Profile on responses returned by the server to ensure that the following
18
+ must support elements are observed:
19
+
20
+ * Task.code
21
+ * Task.for
22
+ * Task.identifier
23
+ * Task.input
24
+ * Task.intent
25
+ * Task.owner
26
+ * Task.owner.identifier
27
+ * Task.reasonCode.coding.code
28
+ * Task.reasonReference
29
+ * Task.requester
30
+ * Task.requester.identifier
31
+ * Task.restriction.period
32
+ * Task.status
33
+ * Task.statusReason
34
+ )
35
+
36
+ id :pas_server_inquiry_response_v201_task_must_support_test
37
+
38
+ def resource_type
39
+ 'Task'
40
+ end
41
+
42
+ def self.metadata
43
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
44
+ end
45
+
46
+ def scratch_resources
47
+ scratch[:inquiry_response_resources] ||= {}
48
+ end
49
+
50
+ def resources_of_interest
51
+ collection = tagged_resources(INQUIRE_TAG).presence || all_scratch_resources
52
+ collection.select { |res| res.resourceType == resource_type }
53
+ end
54
+
55
+ run do
56
+ perform_must_support_test(resources_of_interest)
57
+ validate_must_support
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,61 @@
1
+ require_relative '../../../must_support_test'
2
+ require_relative '../../../generator/group_metadata'
3
+ require_relative '../../../tags'
4
+
5
+ module DaVinciPASTestKit
6
+ module DaVinciPASV201
7
+ class ServerSubmitResponseTaskMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Task are observed across all instances returned'
11
+ description %(
12
+
13
+ PAS server systems are required to be able to populate all
14
+ must support elements on instances of all profiles included in
15
+ responses, including instances of the PAS Task Profile.
16
+ This test checks all identified instances of the PAS Task
17
+ Profile on responses returned by the server to ensure that the following
18
+ must support elements are observed:
19
+
20
+ * Task.code
21
+ * Task.for
22
+ * Task.identifier
23
+ * Task.input
24
+ * Task.intent
25
+ * Task.owner
26
+ * Task.owner.identifier
27
+ * Task.reasonCode.coding.code
28
+ * Task.reasonReference
29
+ * Task.requester
30
+ * Task.requester.identifier
31
+ * Task.restriction.period
32
+ * Task.status
33
+ * Task.statusReason
34
+ )
35
+
36
+ id :pas_server_submit_response_v201_task_must_support_test
37
+
38
+ def resource_type
39
+ 'Task'
40
+ end
41
+
42
+ def self.metadata
43
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
44
+ end
45
+
46
+ def scratch_resources
47
+ scratch[:submit_response_resources] ||= {}
48
+ end
49
+
50
+ def resources_of_interest
51
+ collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
52
+ collection.select { |res| res.resourceType == resource_type }
53
+ end
54
+
55
+ run do
56
+ perform_must_support_test(resources_of_interest)
57
+ validate_must_support
58
+ end
59
+ end
60
+ end
61
+ end