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.
- checksums.yaml +7 -0
- data/LICENSE +201 -0
- data/lib/davinci_pas_test_kit/client_suite.rb +289 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/claim_status/pas_claim_status_test.rb +109 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_response_attest.rb +39 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_test.rb +38 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_response_attest.rb +38 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_test.rb +43 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_inquire_must_support_test.rb +51 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_inquire_response_attest.rb +39 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_inquire_test.rb +35 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_submit_response_attest.rb +39 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_pended_submit_test.rb +43 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_submit_must_support_test.rb +57 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_token_request_test.rb +31 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_token_validation_test.rb +18 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/nonconformant_pas_bundle.json +16 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/pas_inquiry_error_test.rb +38 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/error_tests/pas_submission_error_test.rb +56 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/device_request_metadata.yml +112 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/medication_request_metadata.yml +183 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/nutrition_order_metadata.yml +109 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/pas_client_must_support_requirement_test.rb +117 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/pas_server_must_support_requirement_test.rb +116 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/must_support/service_request_metadata.yml +148 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_approval_group.rb +26 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_authentication_group.rb +49 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_denial_group.rb +41 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_pended_group.rb +56 -0
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_error_group.rb +20 -0
- data/lib/davinci_pas_test_kit/ext/inferno_core/record_response_route.rb +98 -0
- data/lib/davinci_pas_test_kit/ext/inferno_core/request.rb +19 -0
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +18 -0
- data/lib/davinci_pas_test_kit/fhir_resource_navigation.rb +72 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/client_inquiry_request_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/client_submit_request_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/metadata.yml +162 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_inquiry_request_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_inquiry_response_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_submit_request_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/beneficiary/server_submit_response_beneficiary_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/claim_operation_test.rb +67 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/metadata.yml +577 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/claim_inquiry_operation_test.rb +57 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/client_inquiry_request_claim_inquiry_must_support_test.rb +95 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/metadata.yml +516 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/server_inquiry_request_claim_inquiry_must_support_test.rb +95 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/client_submit_request_claim_update_must_support_test.rb +102 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/metadata.yml +591 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_update/server_submit_request_claim_update_must_support_test.rb +102 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claiminquiryresponse/metadata.yml +311 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claiminquiryresponse/server_inquiry_response_claiminquiryresponse_must_support_test.rb +73 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claimresponse/metadata.yml +318 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claimresponse/server_submit_response_claimresponse_must_support_test.rb +75 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_denial_pas_response_bundle_validation_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pas_request_bundle_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pended_pas_inquiry_request_bundle_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/client_tests/client_pended_pas_response_bundle_validation_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/metadata.yml +130 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/server_submit_response_communication_request_must_support_test.rb +58 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_inquiry_request_coverage_must_support_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_submit_request_coverage_must_support_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/metadata.yml +111 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_inquiry_request_coverage_must_support_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_submit_request_coverage_must_support_test.rb +55 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/client_submit_request_device_request_must_support_test.rb +51 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/metadata.yml +112 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/server_submit_request_device_request_must_support_test.rb +51 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/client_submit_request_encounter_must_support_test.rb +67 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/metadata.yml +213 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/encounter/server_submit_request_encounter_must_support_test.rb +67 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_inquiry_request_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_submit_request_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/metadata.yml +104 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquiry_request_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquiry_response_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_request_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_response_insurer_must_support_test.rb +60 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/client_submit_request_medication_request_must_support_test.rb +61 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/metadata.yml +183 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/server_submit_request_medication_request_must_support_test.rb +61 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/metadata.yml +5253 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/client_submit_request_nutrition_order_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/metadata.yml +109 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/server_submit_request_nutrition_order_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_inquiry_must_support_use_case_group.rb +51 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_submit_must_support_use_case_group.rb +61 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/metadata.yml +77 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_pas_inquiry_request_bundle_validation_test.rb +83 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/metadata.yml +67 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_pas_inquiry_response_bundle_validation_test.rb +80 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/metadata.yml +77 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_pas_request_bundle_validation_test.rb +83 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/metadata.yml +71 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_pas_response_bundle_validation_test.rb +80 -0
- 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
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_approval_use_case_group.rb +59 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_denial_use_case_group.rb +59 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_must_support_use_case_group.rb +265 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_pended_use_case_group.rb +84 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_inquiry_request_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_submit_request_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/metadata.yml +74 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquiry_request_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquiry_response_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_request_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_response_practitioner_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_inquiry_request_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_submit_request_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/metadata.yml +81 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquiry_request_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquiry_response_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_request_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_response_practitioner_role_must_support_test.rb +49 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_inquiry_request_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_submit_request_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/metadata.yml +107 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquiry_request_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquiry_response_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_request_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_response_requestor_must_support_test.rb +63 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/resource_list.rb +54 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/server_suite.rb +236 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/client_submit_request_service_request_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/metadata.yml +148 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/server_submit_request_service_request_must_support_test.rb +53 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/client_inquiry_request_subscriber_must_support_test.rb +74 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/client_submit_request_subscriber_must_support_test.rb +74 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/metadata.yml +159 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/server_inquiry_request_subscriber_must_support_test.rb +74 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/subscriber/server_submit_request_subscriber_must_support_test.rb +74 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/metadata.yml +192 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_inquiry_response_task_must_support_test.rb +61 -0
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_submit_response_task_must_support_test.rb +61 -0
- data/lib/davinci_pas_test_kit/generator/group_generator.rb +440 -0
- data/lib/davinci_pas_test_kit/generator/group_metadata.rb +73 -0
- data/lib/davinci_pas_test_kit/generator/group_metadata_extractor.rb +244 -0
- data/lib/davinci_pas_test_kit/generator/ig_loader.rb +78 -0
- data/lib/davinci_pas_test_kit/generator/ig_metadata.rb +66 -0
- data/lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb +54 -0
- data/lib/davinci_pas_test_kit/generator/ig_resources.rb +74 -0
- data/lib/davinci_pas_test_kit/generator/must_support_check_profiles.rb +86 -0
- data/lib/davinci_pas_test_kit/generator/must_support_metadata_extractor.rb +327 -0
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +155 -0
- data/lib/davinci_pas_test_kit/generator/naming.rb +50 -0
- data/lib/davinci_pas_test_kit/generator/operation_test_generator.rb +136 -0
- data/lib/davinci_pas_test_kit/generator/resource_list_generator.rb +59 -0
- data/lib/davinci_pas_test_kit/generator/suite_generator.rb +94 -0
- data/lib/davinci_pas_test_kit/generator/terminology_binding_metadata_extractor.rb +108 -0
- data/lib/davinci_pas_test_kit/generator/validation_test_generator.rb +181 -0
- data/lib/davinci_pas_test_kit/generator/value_extractor.rb +48 -0
- data/lib/davinci_pas_test_kit/generator.rb +80 -0
- data/lib/davinci_pas_test_kit/mock_server.rb +189 -0
- data/lib/davinci_pas_test_kit/must_support_test.rb +267 -0
- data/lib/davinci_pas_test_kit/pas_bundle_validation.rb +568 -0
- data/lib/davinci_pas_test_kit/tags.rb +7 -0
- data/lib/davinci_pas_test_kit/urls.rb +39 -0
- data/lib/davinci_pas_test_kit/user_input_response.rb +32 -0
- data/lib/davinci_pas_test_kit/validation_test.rb +58 -0
- data/lib/davinci_pas_test_kit/validator_suppressions.rb +143 -0
- data/lib/davinci_pas_test_kit/version.rb +5 -0
- data/lib/davinci_pas_test_kit.rb +2 -0
- 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
|