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,162 @@
1
+ ---
2
+ :name: profile_beneficiary
3
+ :class_name: ProfileBeneficiarySequence
4
+ :version: v2.0.1
5
+ :reformatted_version: v201
6
+ :resource: Patient
7
+ :profile_url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary
8
+ :profile_name: PAS Beneficiary Patient
9
+ :profile_version: 2.0.1
10
+ :title: Beneficiary Patient
11
+ :short_description: Verify support for the server capabilities required by the PAS
12
+ Beneficiary Patient.
13
+ :interactions: []
14
+ :operations: []
15
+ :required_concepts: []
16
+ :must_supports:
17
+ :extensions:
18
+ - :id: Patient.extension:race
19
+ :path: extension
20
+ :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
21
+ - :id: Patient.extension:ethnicity
22
+ :path: extension
23
+ :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
24
+ - :id: Patient.extension:birthsex
25
+ :path: extension
26
+ :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
27
+ :slices:
28
+ - :name: Patient.multipleBirth[x]:multipleBirthInteger
29
+ :path: multipleBirth[x]
30
+ :discriminator:
31
+ :type: type
32
+ :code: Integer
33
+ :elements:
34
+ - :path: identifier
35
+ - :path: identifier.system
36
+ - :path: identifier.value
37
+ - :path: name
38
+ - :path: name.family
39
+ - :path: name.given
40
+ - :path: name.prefix
41
+ - :path: name.suffix
42
+ - :path: telecom
43
+ - :path: telecom.system
44
+ - :path: telecom.value
45
+ - :path: telecom.use
46
+ - :path: gender
47
+ - :path: birthDate
48
+ - :path: address
49
+ - :path: address.line
50
+ - :path: address.city
51
+ - :path: address.district
52
+ - :path: address.state
53
+ - :path: address.postalCode
54
+ - :path: address.country
55
+ - :path: address.period
56
+ - :path: communication
57
+ - :path: communication.language
58
+ :mandatory_elements:
59
+ - Patient.identifier
60
+ - Patient.identifier.system
61
+ - Patient.identifier.value
62
+ - Patient.name
63
+ - Patient.telecom.system
64
+ - Patient.telecom.value
65
+ - Patient.gender
66
+ - Patient.communication.language
67
+ - Patient.link.other
68
+ - Patient.link.type
69
+ :bindings:
70
+ - :type: code
71
+ :strength: preferred
72
+ :system: http://hl7.org/fhir/ValueSet/languages
73
+ :path: language
74
+ - :type: code
75
+ :strength: required
76
+ :system: http://hl7.org/fhir/ValueSet/identifier-use
77
+ :path: identifier.use
78
+ - :type: CodeableConcept
79
+ :strength: extensible
80
+ :system: http://hl7.org/fhir/ValueSet/identifier-type
81
+ :path: identifier.type
82
+ - :type: code
83
+ :strength: required
84
+ :system: http://hl7.org/fhir/ValueSet/name-use
85
+ :path: name.use
86
+ - :type: code
87
+ :strength: required
88
+ :system: http://hl7.org/fhir/ValueSet/contact-point-system
89
+ :path: telecom.system
90
+ - :type: code
91
+ :strength: required
92
+ :system: http://hl7.org/fhir/ValueSet/contact-point-use
93
+ :path: telecom.use
94
+ - :type: code
95
+ :strength: required
96
+ :system: http://hl7.org/fhir/ValueSet/administrative-gender
97
+ :path: gender
98
+ - :type: code
99
+ :strength: required
100
+ :system: http://hl7.org/fhir/ValueSet/address-use
101
+ :path: address.use
102
+ - :type: code
103
+ :strength: required
104
+ :system: http://hl7.org/fhir/ValueSet/address-type
105
+ :path: address.type
106
+ - :type: string
107
+ :strength: extensible
108
+ :system: http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state
109
+ :path: address.state
110
+ - :type: CodeableConcept
111
+ :strength: extensible
112
+ :system: http://hl7.org/fhir/ValueSet/marital-status
113
+ :path: maritalStatus
114
+ - :type: CodeableConcept
115
+ :strength: extensible
116
+ :system: http://hl7.org/fhir/ValueSet/patient-contactrelationship
117
+ :path: contact.relationship
118
+ - :type: code
119
+ :strength: required
120
+ :system: http://hl7.org/fhir/ValueSet/administrative-gender
121
+ :path: contact.gender
122
+ - :type: CodeableConcept
123
+ :strength: extensible
124
+ :system: http://hl7.org/fhir/us/core/ValueSet/simple-language
125
+ :path: communication.language
126
+ - :type: code
127
+ :strength: required
128
+ :system: http://hl7.org/fhir/ValueSet/link-type
129
+ :path: link.type
130
+ :references:
131
+ - :path: Patient.identifier.assigner
132
+ :profiles:
133
+ - http://hl7.org/fhir/StructureDefinition/Organization
134
+ - :path: Patient.contact.organization
135
+ :profiles:
136
+ - http://hl7.org/fhir/StructureDefinition/Organization
137
+ - :path: Patient.generalPractitioner
138
+ :profiles:
139
+ - http://hl7.org/fhir/StructureDefinition/Organization
140
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
141
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
142
+ - :path: Patient.managingOrganization
143
+ :profiles:
144
+ - http://hl7.org/fhir/StructureDefinition/Organization
145
+ - :path: Patient.link.other
146
+ :profiles:
147
+ - http://hl7.org/fhir/StructureDefinition/Patient
148
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
149
+ :tests:
150
+ - :id: pas_server_submit_request_v201_beneficiary_must_support_test
151
+ :file_name: server_submit_request_beneficiary_must_support_test.rb
152
+ - :id: pas_client_submit_request_v201_beneficiary_must_support_test
153
+ :file_name: client_submit_request_beneficiary_must_support_test.rb
154
+ - :id: pas_server_submit_response_v201_beneficiary_must_support_test
155
+ :file_name: server_submit_response_beneficiary_must_support_test.rb
156
+ - :id: pas_server_inquiry_request_v201_beneficiary_must_support_test
157
+ :file_name: server_inquiry_request_beneficiary_must_support_test.rb
158
+ - :id: pas_client_inquiry_request_v201_beneficiary_must_support_test
159
+ :file_name: client_inquiry_request_beneficiary_must_support_test.rb
160
+ - :id: pas_server_inquiry_response_v201_beneficiary_must_support_test
161
+ :file_name: server_inquiry_response_beneficiary_must_support_test.rb
162
+ :delayed_references: []
@@ -0,0 +1,75 @@
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 ServerInquiryRequestBeneficiaryMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Beneficiary 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 Beneficiary Patient Profile.
16
+ This test checks all identified instances of the PAS Beneficiary 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.multipleBirth[x]:multipleBirthInteger
39
+ * Patient.name
40
+ * Patient.name.family
41
+ * Patient.name.given
42
+ * Patient.name.prefix
43
+ * Patient.name.suffix
44
+ * Patient.telecom
45
+ * Patient.telecom.system
46
+ * Patient.telecom.use
47
+ * Patient.telecom.value
48
+ )
49
+
50
+ id :pas_server_inquiry_request_v201_beneficiary_must_support_test
51
+
52
+ def resource_type
53
+ 'Patient'
54
+ end
55
+
56
+ def self.metadata
57
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
58
+ end
59
+
60
+ def scratch_resources
61
+ scratch[:inquire_request_resources] ||= {}
62
+ end
63
+
64
+ def resources_of_interest
65
+ collection = tagged_resources(INQUIRE_TAG).presence || all_scratch_resources
66
+ collection.select { |res| res.resourceType == resource_type }
67
+ end
68
+
69
+ run do
70
+ perform_must_support_test(resources_of_interest)
71
+ validate_must_support
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,75 @@
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 ServerInquiryResponseBeneficiaryMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Beneficiary Patient 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 Beneficiary Patient Profile.
16
+ This test checks all identified instances of the PAS Beneficiary Patient
17
+ Profile on responses returned by 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.multipleBirth[x]:multipleBirthInteger
39
+ * Patient.name
40
+ * Patient.name.family
41
+ * Patient.name.given
42
+ * Patient.name.prefix
43
+ * Patient.name.suffix
44
+ * Patient.telecom
45
+ * Patient.telecom.system
46
+ * Patient.telecom.use
47
+ * Patient.telecom.value
48
+ )
49
+
50
+ id :pas_server_inquiry_response_v201_beneficiary_must_support_test
51
+
52
+ def resource_type
53
+ 'Patient'
54
+ end
55
+
56
+ def self.metadata
57
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
58
+ end
59
+
60
+ def scratch_resources
61
+ scratch[:inquiry_response_resources] ||= {}
62
+ end
63
+
64
+ def resources_of_interest
65
+ collection = tagged_resources(INQUIRE_TAG).presence || all_scratch_resources
66
+ collection.select { |res| res.resourceType == resource_type }
67
+ end
68
+
69
+ run do
70
+ perform_must_support_test(resources_of_interest)
71
+ validate_must_support
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,75 @@
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 ServerSubmitRequestBeneficiaryMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Beneficiary 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 Beneficiary Patient Profile.
16
+ This test checks all identified instances of the PAS Beneficiary 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.multipleBirth[x]:multipleBirthInteger
39
+ * Patient.name
40
+ * Patient.name.family
41
+ * Patient.name.given
42
+ * Patient.name.prefix
43
+ * Patient.name.suffix
44
+ * Patient.telecom
45
+ * Patient.telecom.system
46
+ * Patient.telecom.use
47
+ * Patient.telecom.value
48
+ )
49
+
50
+ id :pas_server_submit_request_v201_beneficiary_must_support_test
51
+
52
+ def resource_type
53
+ 'Patient'
54
+ end
55
+
56
+ def self.metadata
57
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
58
+ end
59
+
60
+ def scratch_resources
61
+ scratch[:submit_request_resources] ||= {}
62
+ end
63
+
64
+ def resources_of_interest
65
+ collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
66
+ collection.select { |res| res.resourceType == resource_type }
67
+ end
68
+
69
+ run do
70
+ perform_must_support_test(resources_of_interest)
71
+ validate_must_support
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,75 @@
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 ServerSubmitResponseBeneficiaryMustSupportTest < Inferno::Test
8
+ include DaVinciPASTestKit::MustSupportTest
9
+
10
+ title 'All must support elements for Profile PAS Beneficiary Patient 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 Beneficiary Patient Profile.
16
+ This test checks all identified instances of the PAS Beneficiary Patient
17
+ Profile on responses returned by 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.multipleBirth[x]:multipleBirthInteger
39
+ * Patient.name
40
+ * Patient.name.family
41
+ * Patient.name.given
42
+ * Patient.name.prefix
43
+ * Patient.name.suffix
44
+ * Patient.telecom
45
+ * Patient.telecom.system
46
+ * Patient.telecom.use
47
+ * Patient.telecom.value
48
+ )
49
+
50
+ id :pas_server_submit_response_v201_beneficiary_must_support_test
51
+
52
+ def resource_type
53
+ 'Patient'
54
+ end
55
+
56
+ def self.metadata
57
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
58
+ end
59
+
60
+ def scratch_resources
61
+ scratch[:submit_response_resources] ||= {}
62
+ end
63
+
64
+ def resources_of_interest
65
+ collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
66
+ collection.select { |res| res.resourceType == resource_type }
67
+ end
68
+
69
+ run do
70
+ perform_must_support_test(resources_of_interest)
71
+ validate_must_support
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,67 @@
1
+ module DaVinciPASTestKit
2
+ module DaVinciPASV201
3
+ class ClaimOperationTest < Inferno::Test
4
+
5
+ id :pas_v201_claim_operation_test
6
+ title 'Claim/$submit Operation Test'
7
+ description %(
8
+ Server SHALL support PAS Submit requests: a POST interaction to
9
+ the /Claim/$submit endpoint.
10
+ This test submits a Prior Authorization Submit request to the server and verifies that a
11
+ response is returned with HTTP status 2XX.
12
+ The server SHOULD respond within 15 seconds.
13
+
14
+ )
15
+
16
+ input :pa_submit_request_payload,
17
+ title: 'PAS Submit Request Payload',
18
+ description: 'Insert Bundle to be sent for PAS Submit Request',
19
+ type: 'textarea',
20
+ optional: true
21
+ input_order :server_endpoint, :smart_credentials
22
+ output :response_time
23
+ makes_request :pa_submit
24
+
25
+ def scratch_resources
26
+ scratch[:submit_request_response_pair] ||= {}
27
+ end
28
+
29
+ def request_bundles
30
+ parsed_payload = JSON.parse(pa_submit_request_payload)
31
+ [parsed_payload].flatten.compact.uniq
32
+ end
33
+
34
+ def perform_operation(request_payload)
35
+ start_time = Time.now
36
+ fhir_operation('/Claim/$submit', body: request_payload, name: :pa_submit)
37
+ response_time = Time.now - start_time
38
+
39
+ if response_time > 15
40
+ warning %(
41
+ The server took more that 15 seconds to respond to the Prior Authorization
42
+ request.
43
+
44
+ Response Time: #{response_time}
45
+ )
46
+ end
47
+
48
+ assert_response_status([200, 201])
49
+ assert_valid_json(request.response_body)
50
+
51
+ # Save request/response pair
52
+ scratch_resources[:all] ||= []
53
+ scratch_resources[:all] << {request_bundle: request.request_body, response_bundle: resource}
54
+ output response_time:
55
+ end
56
+
57
+ run do
58
+ skip_if pa_submit_request_payload.blank?, 'No bundle request provided to perform the submit operation'
59
+ assert_valid_json(pa_submit_request_payload)
60
+
61
+ request_bundles.each do |bundle|
62
+ perform_operation(bundle)
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end