plan_executor 1.0.2
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/.gitignore +44 -0
- data/.simplecov +16 -0
- data/.travis.yml +13 -0
- data/Gemfile +26 -0
- data/Gemfile.lock +197 -0
- data/LICENSE +201 -0
- data/README.md +126 -0
- data/Rakefile +25 -0
- data/fixtures/daf/conformance-daf-query-responder.xml +1471 -0
- data/fixtures/diagnostic_order/do-100.xml +64 -0
- data/fixtures/diagnostic_order/do-200.xml +121 -0
- data/fixtures/diagnostic_order/do-300.xml +91 -0
- data/fixtures/diagnostic_order/do-400.xml +88 -0
- data/fixtures/diagnostic_report/dr-100.xml +96 -0
- data/fixtures/diagnostic_report/dr-200.xml +125 -0
- data/fixtures/diagnostic_report/dr-300.xml +132 -0
- data/fixtures/diagnostic_report/dr-400.xml +121 -0
- data/fixtures/financial/claim-example-average.xml +168 -0
- data/fixtures/financial/claim-example-simple.xml +67 -0
- data/fixtures/observation/obs-100.xml +58 -0
- data/fixtures/observation/obs-101.xml +58 -0
- data/fixtures/observation/obs-200.xml +125 -0
- data/fixtures/observation/obs-300.xml +106 -0
- data/fixtures/observation/obs-301.xml +106 -0
- data/fixtures/observation/obs-302.xml +106 -0
- data/fixtures/observation/obs-303.xml +106 -0
- data/fixtures/observation/obs-304.xml +106 -0
- data/fixtures/observation/obs-400.xml +87 -0
- data/fixtures/observation/obs-401.xml +95 -0
- data/fixtures/observation/obs-402.xml +95 -0
- data/fixtures/observation/obs-403.xml +84 -0
- data/fixtures/observation/obs-404.xml +84 -0
- data/fixtures/observation/obs-405.xml +83 -0
- data/fixtures/observation/obs-406.xml +83 -0
- data/fixtures/observation/obs-407.xml +70 -0
- data/fixtures/observation/obs-408.xml +84 -0
- data/fixtures/observation/obs-uslab-example5.xml +102 -0
- data/fixtures/order/order-100.xml +61 -0
- data/fixtures/order/order-200.xml +61 -0
- data/fixtures/order/order-300.xml +61 -0
- data/fixtures/order/order-400.xml +61 -0
- data/fixtures/order_response/ordresp-100.xml +79 -0
- data/fixtures/order_response/ordresp-110.xml +79 -0
- data/fixtures/order_response/ordresp-200.xml +79 -0
- data/fixtures/order_response/ordresp-210.xml +79 -0
- data/fixtures/order_response/ordresp-300.xml +79 -0
- data/fixtures/order_response/ordresp-310.xml +79 -0
- data/fixtures/order_response/ordresp-400.xml +79 -0
- data/fixtures/order_response/ordresp-410.xml +79 -0
- data/fixtures/organization/org-uslab-example3.xml +49 -0
- data/fixtures/patient/patient-example-updated.xml +140 -0
- data/fixtures/patient/patient-example-us-extensions(us01).xml +81 -0
- data/fixtures/patient/patient-example.xml +132 -0
- data/fixtures/patient/patient-format-example.xml +101 -0
- data/fixtures/patient/patient-minimal.xml +9 -0
- data/fixtures/patient/patient-uslab-example1.xml +44 -0
- data/fixtures/practitioner/pract-uslab-example1.xml +18 -0
- data/fixtures/practitioner/pract-uslab-example3.xml +36 -0
- data/fixtures/record/condition-example-f201-fever.xml +63 -0
- data/fixtures/record/condition-example-f205-infection.xml +20 -0
- data/fixtures/record/diagnosticreport-example-f201-brainct.xml +18 -0
- data/fixtures/record/encounter-example-f201-20130404.xml +17 -0
- data/fixtures/record/encounter-example-f202-20130128.xml +17 -0
- data/fixtures/record/observation-example-f202-temperature.xml +60 -0
- data/fixtures/record/organization-example-f201-aumc.xml +5 -0
- data/fixtures/record/organization-example-f203-bumc.xml +5 -0
- data/fixtures/record/patient-example-f201-roel.xml +16 -0
- data/fixtures/record/practitioner-example-f201-ab.xml +14 -0
- data/fixtures/record/procedure-example-f201-tpf.xml +23 -0
- data/fixtures/scheduling/appointment-simple.xml +24 -0
- data/fixtures/scheduling/appointmentresponse-patient-simple.xml +12 -0
- data/fixtures/scheduling/appointmentresponse-practitioner-simple.xml +12 -0
- data/fixtures/scheduling/practitioner-simple.xml +10 -0
- data/fixtures/scheduling/schedule-simple.xml +12 -0
- data/fixtures/scheduling/slot-simple.xml +10 -0
- data/fixtures/specimen/spec-100.xml +65 -0
- data/fixtures/specimen/spec-400.xml +70 -0
- data/fixtures/specimen/spec-uslab-example1.xml +82 -0
- data/fixtures/validation/observation.profile.xml +2045 -0
- data/fixtures/validation/observations/observation-example(example).xml +50 -0
- data/lib/FHIR_structure.json +529 -0
- data/lib/daf_resource_generator.rb +94 -0
- data/lib/data/fhir_structure.rb +8 -0
- data/lib/data/resources.rb +138 -0
- data/lib/executor.rb +56 -0
- data/lib/ext/client.rb +27 -0
- data/lib/ext/client_reply.rb +19 -0
- data/lib/plan_executor.rb +31 -0
- data/lib/resource_generator.rb +656 -0
- data/lib/tasks/tasks.rake +329 -0
- data/lib/tasks/templates/summary.html.erb +163 -0
- data/lib/test_result.rb +69 -0
- data/lib/tests/assertions.rb +261 -0
- data/lib/tests/base_test.rb +117 -0
- data/lib/tests/suites/argonaut_resprint_1_test.rb +260 -0
- data/lib/tests/suites/argonaut_resprint_2_test.rb +369 -0
- data/lib/tests/suites/argonaut_resprint_3_test.rb +309 -0
- data/lib/tests/suites/argonaut_sprint_1_test.rb +187 -0
- data/lib/tests/suites/argonaut_sprint_2_test.rb +115 -0
- data/lib/tests/suites/argonaut_sprint_3_test.rb +208 -0
- data/lib/tests/suites/argonaut_sprint_4_test.rb +335 -0
- data/lib/tests/suites/argonaut_sprint_5_test.rb +196 -0
- data/lib/tests/suites/argonaut_sprint_6_test.rb +243 -0
- data/lib/tests/suites/argonaut_sprint_7_test.rb +161 -0
- data/lib/tests/suites/base_suite.rb +116 -0
- data/lib/tests/suites/connectathon_audit_track.rb +354 -0
- data/lib/tests/suites/connectathon_fetch_patient_record.rb +443 -0
- data/lib/tests/suites/connectathon_financial_track.rb +380 -0
- data/lib/tests/suites/connectathon_lab_order_track.rb +239 -0
- data/lib/tests/suites/connectathon_patient_track.rb +364 -0
- data/lib/tests/suites/connectathon_profile_validation.rb +101 -0
- data/lib/tests/suites/connectathon_scheduling_track.rb +266 -0
- data/lib/tests/suites/connectathon_terminology_track.rb +242 -0
- data/lib/tests/suites/daf_profiles_test.rb +431 -0
- data/lib/tests/suites/format_test.rb +453 -0
- data/lib/tests/suites/history_test.rb +311 -0
- data/lib/tests/suites/read_test.rb +104 -0
- data/lib/tests/suites/resource_test.rb +553 -0
- data/lib/tests/suites/search_test.rb +219 -0
- data/lib/tests/suites/search_test_robust.rb +172 -0
- data/lib/tests/suites/sprinkler_search_test.rb +660 -0
- data/lib/tests/suites/suite_engine.rb +114 -0
- data/lib/tests/suites/transaction_test.rb +571 -0
- data/lib/tests/testscripts/base_testscript.rb +480 -0
- data/lib/tests/testscripts/testscript_engine.rb +81 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-json.xml +348 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-xml.xml +348 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-json.xml +420 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-xml.xml +420 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/README.html +68 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-json.xml +352 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-xml.xml +352 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-json.xml +421 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-xml.xml +421 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/conformance/PatientConformance.xml +34 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers-min.json +45 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers-min.xml +26 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers.json +100 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers.xml +102 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers-min.json +53 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers-min.xml +30 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers.json +108 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers.xml +108 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers-min.json +45 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers-min.xml +26 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers.json +100 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers.xml +102 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers-min.json +53 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers-min.xml +30 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers.json +108 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers.xml +107 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers-min.json +53 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers-min.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers.json +108 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/C-CDA_R2-1_CCD-ussg.xml +3414 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A1-empty-on-instance.xml +9 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A2-empty-by-ref.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A3-empty-by-identifier.xml +13 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A4-empty-by-contained.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B1-CCDA-on-instance.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B2-CCDA-by-ref.xml +21 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B3-CCDA-by-identifier.xml +19 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B4-CCDA-by-contained.xml +21 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaire-sdc-profile-example-ussg-fht.xml +3905 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-CCDA.xml +190 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-empty.xml +177 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/track11-sdc-prepop-xml.xml +142 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite1-expand-client-id.xml +925 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite2-expand-filter-client-id.xml +930 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite1-expand-server-id.xml +953 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite2-expand-filter-server-id.xml +958 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-loinc-lookup-xml.xml +224 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-snomed-lookup-xml.xml +224 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/README.html +85 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Translate/track2-ts-suite6-translate-xml.xml +224 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite3-validate-code-client-id.xml +1807 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite4-validate-code-client-id.xml +714 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite3-validate-code-server-id.xml +1835 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite4-validate-code-server-id.xml +742 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ConceptMapSuite6Conformance.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite1Conformance.xml +17 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite2Conformance.xml +17 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite3Conformance.xml +14 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite4Conformance.xml +14 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite5Conformance.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-a.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-b.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-a.xml +13 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-b.xml +13 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-a.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-b.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-2.xml +10 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-3.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-2.xml +10 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-3.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-2.xml +14 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-3.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-expand-min.xml +47 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-filter-min.xml +23 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-expand-min.xml +132 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-filter-min.xml +38 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-expand-min.xml +252 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-filter-min.xml +58 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-expand-min.xml +57 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-filter-min.xml +28 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-expand-min.xml +347 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-filter-min.xml +33 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-expand-min.xml +637 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-filter-min.xml +33 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-3-filter-min.xml +58 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-loinc-min.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-snomed-min.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-invalid-min.xml +10 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-valid-min.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-invalid-min.xml +10 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-valid-min.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/translate-conceptmap-min.xml +17 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-1.xml +55 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-2.xml +122 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-3.xml +222 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-4.xml +65 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-1.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-2.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-3.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/translate-conceptmap-case-1.xml +145 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/conformance/DecisionSupportServiceModule-Evaluate.xml +17 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-request-payload.xml +26 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-min-payload.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-payload.xml +332 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-request-payload.xml +28 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-min-payload.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-payload.xml +20 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-request-payload.xml +28 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-min-payload.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-payload.xml +332 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-request-payload.xml +28 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-min-payload.xml +7 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-payload.xml +8 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-request-payload.xml +176 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload-min.xml +32 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload.xml +80 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-cdc-immunization.xml +290 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-gao-profile.xml +110 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/Client_Assigned_Id/TestScript_FHIR-Genomics.xml +170 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-1.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-2.xml +31 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Actors.png +0 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder100-xml.xml +590 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder200-xml.xml +587 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder300-xml.xml +612 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder400-xml.xml +635 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Peer-to-Peer/track7-laborder100-peer2peer-xml.xml +752 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Thumbs.db +0 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/conformance/LabOrderLabReport-CreateDeleteReadUpdate.xml +187 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/conformance/html.xslt +45 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100-update.xml +64 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100.xml +64 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200-update.xml +121 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200.xml +121 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300-update.xml +91 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300.xml +91 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-400-update.xml +88 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-400.xml +88 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-100.xml +96 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-200.xml +125 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-300.xml +132 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-400.xml +121 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-100.xml +58 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-101.xml +58 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-200.xml +125 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-300.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-301.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-302.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-303.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-304.xml +106 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-400.xml +87 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-401.xml +95 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-402.xml +95 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-403.xml +84 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-404.xml +84 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-405.xml +83 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-406.xml +83 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-407.xml +70 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-408.xml +84 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-uslab-example5.xml +102 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-100.xml +61 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-200.xml +61 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-300.xml +61 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-400.xml +61 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-100.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-110.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-200.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-210.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-300.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-310.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-400.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-410.xml +79 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Organization/org-uslab-example3.xml +49 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Patient/patient-uslab-example1.xml +44 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example1.xml +18 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example3.xml +36 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/Thumbs.db +0 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-100.xml +65 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-400.xml +70 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-uslab-example1.xml +82 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 1 Document.txt +122 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 2 Document.txt +103 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 3 Document.txt +201 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 4 Document.txt +310 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/MedicationStatementCreate.xml +11 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/PatientSearchType.xml +15 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-create.json +39 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-patch.json +3 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json-if-match.xml +321 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json.xml +303 -0
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-peer2peer-patient-json.xml +235 -0
- data/plan_executor.gemspec +14 -0
- data/test/fixtures/diagnostic_bundle.xml +51 -0
- data/test/fixtures/lab_results_bundle.xml +49 -0
- data/test/fixtures/observation_bundle.json +61 -0
- data/test/fixtures/testscript-example.xml +202 -0
- data/test/fixtures/testscript-history.xml +143 -0
- data/test/fixtures/testscript-readtest.xml +272 -0
- data/test/fixtures/testscript-search.xml +282 -0
- data/test/fixtures/testscript-update.xml +147 -0
- data/test/fixtures/vital_signs_bundle.xml +117 -0
- data/test/test_helper.rb +8 -0
- data/test/unit/argonaut_sprint6_test.rb +31 -0
- data/test/unit/argonaut_sprint7_test.rb +21 -0
- data/test/unit/basic_test.rb +27 -0
- data/test/unit/fetch_patient_record_test.rb +357 -0
- data/test/unit/financial_test.rb +41 -0
- data/test/unit/fixtures_test.rb +45 -0
- data/test/unit/metadata_test.rb +33 -0
- metadata +394 -0
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
module Crucible
|
|
2
|
+
module Tests
|
|
3
|
+
class FormatTest < BaseSuite
|
|
4
|
+
|
|
5
|
+
def id
|
|
6
|
+
'Format001'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def description
|
|
10
|
+
'Initial Sprinkler tests (CT01, CT02, CT03, CT04) for testing resource format requests.'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def initialize(client1, client2=nil)
|
|
14
|
+
super(client1, client2)
|
|
15
|
+
@category = {id: 'core_functionality', title: 'Core Functionality'}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Create a patient and store its details for format requests
|
|
19
|
+
def setup
|
|
20
|
+
@xml_format = FHIR::Formats::ResourceFormat::RESOURCE_XML
|
|
21
|
+
@json_format = FHIR::Formats::ResourceFormat::RESOURCE_JSON
|
|
22
|
+
@xml_format_params = ['xml', 'text/xml', 'application/xml', @xml_format]
|
|
23
|
+
@json_format_params = ['json', 'application/json', @json_format]
|
|
24
|
+
@resources = Crucible::Generator::Resources.new
|
|
25
|
+
@resource = @resources.minimal_patient
|
|
26
|
+
@create_failed = false
|
|
27
|
+
|
|
28
|
+
create_reply = @client.create(@resource)
|
|
29
|
+
|
|
30
|
+
begin
|
|
31
|
+
assert_response_created create_reply
|
|
32
|
+
result = create_reply.resource
|
|
33
|
+
rescue AssertionException
|
|
34
|
+
@create_failed = true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
if @create_failed
|
|
38
|
+
# If create fails, pick one from the Patient Bundle
|
|
39
|
+
begin
|
|
40
|
+
bundle_reply = request_bundle(FHIR::Patient, @xml_format)
|
|
41
|
+
assert_response_ok bundle_reply
|
|
42
|
+
bundle_patient = bundle_reply.resource.entry.first.resource
|
|
43
|
+
@id = bundle_patient.xmlId
|
|
44
|
+
@create_failed = false
|
|
45
|
+
rescue Exception
|
|
46
|
+
@create_failed = true
|
|
47
|
+
end
|
|
48
|
+
else
|
|
49
|
+
@id = create_reply.id
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
assert(!@create_failed, 'Unable to create or read a patient.')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Delete the reference patient if we created it
|
|
56
|
+
def teardown
|
|
57
|
+
@client.destroy(FHIR::Patient, @id) unless @create_failed
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
test 'CT01', 'Request xml using headers' do
|
|
61
|
+
metadata {
|
|
62
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
63
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
64
|
+
links "#{REST_SPEC_LINK}#read"
|
|
65
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
66
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
67
|
+
}
|
|
68
|
+
begin
|
|
69
|
+
patient = request_entry(FHIR::Patient, @id, @xml_format)
|
|
70
|
+
assert compare_response_format(patient, @xml_format), "XML format header mismatch: requested #{@xml_format}, received #{patient.response_format}"
|
|
71
|
+
warning { assert compare_response(patient), 'requested XML (headers) resource does not match created resource' }
|
|
72
|
+
rescue => e
|
|
73
|
+
raise AssertionException.new("CTO1 - Failed to handle XML format header response. Error: #{e.message}")
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
test 'CT02A', 'Request [xml] using [_format]' do
|
|
78
|
+
metadata {
|
|
79
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
80
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
81
|
+
links "#{REST_SPEC_LINK}#read"
|
|
82
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
83
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
84
|
+
}
|
|
85
|
+
begin
|
|
86
|
+
patient = request_entry(FHIR::Patient, @id, @xml_format_params[0], true)
|
|
87
|
+
assert compare_response_format(patient, @xml_format), "XML format param mismatch: requested #{@xml_format}, received #{patient.response_format}"
|
|
88
|
+
warning { assert compare_response(patient), 'requested XML (_format) resource does not match created resource' }
|
|
89
|
+
rescue => e
|
|
90
|
+
@client.use_format_param = false
|
|
91
|
+
raise AssertionException.new("CTO2 - Failed to handle XML format param response. Error: #{e.message}")
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
test 'CT02B', 'Request [text/xml] using [_format]' do
|
|
96
|
+
metadata {
|
|
97
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
98
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
99
|
+
links "#{REST_SPEC_LINK}#read"
|
|
100
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
101
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
102
|
+
}
|
|
103
|
+
begin
|
|
104
|
+
patient = request_entry(FHIR::Patient, @id, @xml_format_params[1], true)
|
|
105
|
+
assert compare_response_format(patient, @xml_format), "XML format param mismatch: requested #{@xml_format}, received #{patient.response_format}"
|
|
106
|
+
warning { assert compare_response(patient), 'requested XML (_format) resource does not match created resource' }
|
|
107
|
+
rescue => e
|
|
108
|
+
@client.use_format_param = false
|
|
109
|
+
raise AssertionException.new("CTO2 - Failed to handle XML format param response. Error: #{e.message}")
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
test 'CT02C', 'Request [application/xml] using [_format]' do
|
|
114
|
+
metadata {
|
|
115
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
116
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
117
|
+
links "#{REST_SPEC_LINK}#read"
|
|
118
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
119
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
120
|
+
}
|
|
121
|
+
begin
|
|
122
|
+
patient = request_entry(FHIR::Patient, @id, @xml_format_params[2], true)
|
|
123
|
+
assert compare_response_format(patient, @xml_format), "XML format param mismatch: requested #{@xml_format}, received #{patient.response_format}"
|
|
124
|
+
warning { assert compare_response(patient), 'requested XML (_format) resource does not match created resource' }
|
|
125
|
+
rescue => e
|
|
126
|
+
@client.use_format_param = false
|
|
127
|
+
raise AssertionException.new("CTO2 - Failed to handle XML format param response. Error: #{e.message}")
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
test 'CT02D', 'Request [application/xml+fhir] using [_format]' do
|
|
132
|
+
metadata {
|
|
133
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
134
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
135
|
+
links "#{REST_SPEC_LINK}#read"
|
|
136
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
137
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
138
|
+
}
|
|
139
|
+
begin
|
|
140
|
+
patient = request_entry(FHIR::Patient, @id, @xml_format_params[3], true)
|
|
141
|
+
assert compare_response_format(patient, @xml_format), "XML format param mismatch: requested #{@xml_format}, received #{patient.response_format}"
|
|
142
|
+
warning { assert compare_response(patient), 'requested XML (_format) resource does not match created resource' }
|
|
143
|
+
rescue => e
|
|
144
|
+
@client.use_format_param = false
|
|
145
|
+
raise AssertionException.new("CTO2 - Failed to handle XML format param response. Error: #{e.message}")
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
test 'CT03', 'Request json using headers' do
|
|
150
|
+
metadata {
|
|
151
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
152
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
153
|
+
links "#{REST_SPEC_LINK}#read"
|
|
154
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
155
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
156
|
+
}
|
|
157
|
+
begin
|
|
158
|
+
patient = request_entry(FHIR::Patient, @id, @json_format)
|
|
159
|
+
assert compare_response_format(patient, @json_format), "JSON format header mismatch: requested #{@json_format}, received #{patient.response_format}"
|
|
160
|
+
warning { assert compare_response(patient), 'requested JSON (headers) resource does not match created resource' }
|
|
161
|
+
rescue => e
|
|
162
|
+
raise AssertionException.new("CTO3 - Failed to handle JSON format header response. Error: #{e.message}")
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
test 'CT04A', 'Request [json] using [_format]' do
|
|
167
|
+
metadata {
|
|
168
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
169
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
170
|
+
links "#{REST_SPEC_LINK}#read"
|
|
171
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
172
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
173
|
+
}
|
|
174
|
+
begin
|
|
175
|
+
patient = request_entry(FHIR::Patient, @id, @json_format_params[0], true)
|
|
176
|
+
assert compare_response_format(patient, @json_format), "JSON format param mismatch: requested #{@json_format}, received #{patient.response_format}"
|
|
177
|
+
warning { assert compare_response(patient), 'requested JSON (_format) resource does not match created resource' }
|
|
178
|
+
rescue => e
|
|
179
|
+
@client.use_format_param = false
|
|
180
|
+
raise AssertionException.new("CTO4 - Failed to handle JSON format param response. Error: #{e.message}")
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
test 'CT04C', 'Request [application/json] using [_format]' do
|
|
185
|
+
metadata {
|
|
186
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
187
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
188
|
+
links "#{REST_SPEC_LINK}#read"
|
|
189
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
190
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
191
|
+
}
|
|
192
|
+
begin
|
|
193
|
+
patient = request_entry(FHIR::Patient, @id, @json_format_params[1], true)
|
|
194
|
+
assert compare_response_format(patient, @json_format), "JSON format param mismatch: requested #{@json_format}, received #{patient.response_format}"
|
|
195
|
+
warning { assert compare_response(patient), 'requested JSON (_format) resource does not match created resource' }
|
|
196
|
+
rescue => e
|
|
197
|
+
@client.use_format_param = false
|
|
198
|
+
raise AssertionException.new("CTO4 - Failed to handle JSON format param response. Error: #{e.message}")
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
test 'CT04D', 'Request [application/json+fhir] using [_format]' do
|
|
203
|
+
metadata {
|
|
204
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
205
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
206
|
+
links "#{REST_SPEC_LINK}#read"
|
|
207
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
208
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
209
|
+
}
|
|
210
|
+
begin
|
|
211
|
+
patient = request_entry(FHIR::Patient, @id, @json_format_params[2], true)
|
|
212
|
+
assert compare_response_format(patient, @json_format), "JSON format param mismatch: requested #{@json_format}, received #{patient.response_format}"
|
|
213
|
+
warning { assert compare_response(patient), 'requested JSON (_format) resource does not match created resource' }
|
|
214
|
+
rescue => e
|
|
215
|
+
@client.use_format_param = false
|
|
216
|
+
raise AssertionException.new("CTO4 - Failed to handle JSON format param response. Error: #{e.message}")
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
test 'FT01', 'Request xml and json using headers' do
|
|
221
|
+
metadata {
|
|
222
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
223
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
224
|
+
links "#{REST_SPEC_LINK}#read"
|
|
225
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
226
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML','JSON']
|
|
227
|
+
}
|
|
228
|
+
begin
|
|
229
|
+
patient_xml = request_entry(FHIR::Patient, @id, @xml_format)
|
|
230
|
+
patient_json = request_entry(FHIR::Patient, @id, @json_format)
|
|
231
|
+
|
|
232
|
+
assert compare_response_format(patient_xml, @xml_format), "XML format header mismatch: requested #{@xml_format}, received #{patient_xml.response_format}"
|
|
233
|
+
assert compare_response_format(patient_json, @json_format), "JSON format header mismatch: requested #{@json_format}, received #{patient_json.response_format}"
|
|
234
|
+
warning { assert compare_entries(patient_xml, patient_json), 'requested XML & JSON (headers) resources do not match created resource or each other' }
|
|
235
|
+
rescue => e
|
|
236
|
+
@client.use_format_param = false
|
|
237
|
+
raise AssertionException.new("FTO1 - Failed to handle XML & JSON header param response. Error: #{e.message}")
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
test 'FT02', 'Request xml and json using [_format]' do
|
|
242
|
+
metadata {
|
|
243
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
244
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
245
|
+
links "#{REST_SPEC_LINK}#read"
|
|
246
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
247
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML','JSON']
|
|
248
|
+
}
|
|
249
|
+
begin
|
|
250
|
+
patient_xml = request_entry(FHIR::Patient, @id, @xml_format, true)
|
|
251
|
+
patient_json = request_entry(FHIR::Patient, @id, @json_format, true)
|
|
252
|
+
|
|
253
|
+
assert compare_response_format(patient_xml, @xml_format), "XML format header mismatch: requested #{@xml_format}, received #{patient_xml.response_format}"
|
|
254
|
+
assert compare_response_format(patient_json, @json_format), "JSON format header mismatch: requested #{@json_format}, received #{patient_json.response_format}"
|
|
255
|
+
warning { assert compare_entries(patient_xml, patient_json), 'requested XML & JSON (_format) resources do not match created resource or each other' }
|
|
256
|
+
rescue => e
|
|
257
|
+
@client.use_format_param = false
|
|
258
|
+
raise AssertionException.new("FTO2 - Failed to handle XML & JSON format param response. Error: #{e.message}")
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
test 'FT03', 'Request xml Bundle using headers' do
|
|
263
|
+
metadata {
|
|
264
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
265
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
266
|
+
links "#{REST_SPEC_LINK}#read"
|
|
267
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
268
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
269
|
+
}
|
|
270
|
+
begin
|
|
271
|
+
patients_bundle = request_bundle(FHIR::Patient, @xml_format)
|
|
272
|
+
|
|
273
|
+
assert compare_response_format(patients_bundle, @xml_format), "Bundle XML format header mismatch: requested #{@xml_format}, received #{patients_bundle.response_format}"
|
|
274
|
+
rescue => e
|
|
275
|
+
raise AssertionException.new("FTO3 - Failed to handle Bundle XML format header response. Error: #{e.message}")
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
test 'FT04A', 'Request [xml] Bundle using [_format]' do
|
|
280
|
+
metadata {
|
|
281
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
282
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
283
|
+
links "#{REST_SPEC_LINK}#read"
|
|
284
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
285
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
286
|
+
}
|
|
287
|
+
begin
|
|
288
|
+
patients_bundle = request_bundle(FHIR::Patient, @xml_format_params[0], true)
|
|
289
|
+
|
|
290
|
+
assert compare_response_format(patients_bundle, @xml_format), "Bundle XML format param mismatch: requested #{@xml_format}, received #{patients_bundle.response_format}"
|
|
291
|
+
rescue => e
|
|
292
|
+
raise AssertionException.new("FTO4- Failed to handle Bundle XML format param response. Error: #{e.message}")
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
test 'FT04B', 'Request [text/xml] Bundle using [_format]' do
|
|
297
|
+
metadata {
|
|
298
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
299
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
300
|
+
links "#{REST_SPEC_LINK}#read"
|
|
301
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
302
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
303
|
+
}
|
|
304
|
+
begin
|
|
305
|
+
patients_bundle = request_bundle(FHIR::Patient, @xml_format_params[1], true)
|
|
306
|
+
|
|
307
|
+
assert compare_response_format(patients_bundle, @xml_format), "Bundle XML format param mismatch: requested #{@xml_format}, received #{patients_bundle.response_format}"
|
|
308
|
+
rescue => e
|
|
309
|
+
raise AssertionException.new("FTO4- Failed to handle Bundle XML format param response. Error: #{e.message}")
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
test 'FT04C', 'Request [application/xml] Bundle using [_format]' do
|
|
314
|
+
metadata {
|
|
315
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
316
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
317
|
+
links "#{REST_SPEC_LINK}#read"
|
|
318
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
319
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
320
|
+
}
|
|
321
|
+
begin
|
|
322
|
+
patients_bundle = request_bundle(FHIR::Patient, @xml_format_params[2], true)
|
|
323
|
+
|
|
324
|
+
assert compare_response_format(patients_bundle, @xml_format), "Bundle XML format param mismatch: requested #{@xml_format}, received #{patients_bundle.response_format}"
|
|
325
|
+
rescue => e
|
|
326
|
+
raise AssertionException.new("FTO4- Failed to handle Bundle XML format param response. Error: #{e.message}")
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
test 'FT04D', 'Request [application/xml+fhir] Bundle using [_format]' do
|
|
331
|
+
metadata {
|
|
332
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
333
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
334
|
+
links "#{REST_SPEC_LINK}#read"
|
|
335
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
336
|
+
validates resource: 'Patient', methods: ['read'], formats: ['XML']
|
|
337
|
+
}
|
|
338
|
+
begin
|
|
339
|
+
patients_bundle = request_bundle(FHIR::Patient, @xml_format_params[3], true)
|
|
340
|
+
|
|
341
|
+
assert compare_response_format(patients_bundle, @xml_format), "Bundle XML format param mismatch: requested #{@xml_format}, received #{patients_bundle.response_format}"
|
|
342
|
+
rescue => e
|
|
343
|
+
raise AssertionException.new("FTO4- Failed to handle Bundle XML format param response. Error: #{e.message}")
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
test 'FT05', 'Request json Bundle using headers' do
|
|
348
|
+
metadata {
|
|
349
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
350
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
351
|
+
links "#{REST_SPEC_LINK}#read"
|
|
352
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
353
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
354
|
+
}
|
|
355
|
+
begin
|
|
356
|
+
patients_bundle = request_bundle(FHIR::Patient, @json_format)
|
|
357
|
+
|
|
358
|
+
assert compare_response_format(patients_bundle, @json_format), "Bundle JSON format header mismatch: requested #{@json_format}, received #{patients_bundle.response_format}"
|
|
359
|
+
rescue => e
|
|
360
|
+
raise AssertionException.new("FT05 - Failed to handle Bundle JSON format header response. Error: #{e.message}")
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
test 'FT06A', 'Request [json] Bundle using [_format]' do
|
|
365
|
+
metadata {
|
|
366
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
367
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
368
|
+
links "#{REST_SPEC_LINK}#read"
|
|
369
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
370
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
371
|
+
}
|
|
372
|
+
begin
|
|
373
|
+
patients_bundle = request_bundle(FHIR::Patient, @json_format_params[0], true)
|
|
374
|
+
|
|
375
|
+
assert compare_response_format(patients_bundle, @json_format), "Bundle JSON format param mismatch: requested #{@json_format}, received #{patients_bundle.response_format}"
|
|
376
|
+
rescue => e
|
|
377
|
+
raise AssertionException.new("FTO6 - Failed to handle Bundle JSON format param response. Error: #{e.message}")
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
test 'FT06C', 'Request [application/json] Bundle using [_format]' do
|
|
382
|
+
metadata {
|
|
383
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
384
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
385
|
+
links "#{REST_SPEC_LINK}#read"
|
|
386
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
387
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
388
|
+
}
|
|
389
|
+
begin
|
|
390
|
+
patients_bundle = request_bundle(FHIR::Patient, @json_format_params[1], true)
|
|
391
|
+
|
|
392
|
+
assert compare_response_format(patients_bundle, @json_format), "Bundle JSON format param mismatch: requested #{@json_format}, received #{patients_bundle.response_format}"
|
|
393
|
+
rescue => e
|
|
394
|
+
raise AssertionException.new("FTO6 - Failed to handle Bundle JSON format param response. Error: #{e.message}")
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
test 'FT06D', 'Request [application/json+fhir] Bundle using [_format]' do
|
|
399
|
+
metadata {
|
|
400
|
+
links "#{BASE_SPEC_LINK}/formats.html"
|
|
401
|
+
links "#{REST_SPEC_LINK}#mime-type"
|
|
402
|
+
links "#{REST_SPEC_LINK}#read"
|
|
403
|
+
requires resource: 'Patient', methods: ['create','read']
|
|
404
|
+
validates resource: 'Patient', methods: ['read'], formats: ['JSON']
|
|
405
|
+
}
|
|
406
|
+
begin
|
|
407
|
+
patients_bundle = request_bundle(FHIR::Patient, @json_format_params[2], true)
|
|
408
|
+
|
|
409
|
+
assert compare_response_format(patients_bundle, @json_format), "Bundle JSON format param mismatch: requested #{@json_format}, received #{patients_bundle.response_format}"
|
|
410
|
+
rescue => e
|
|
411
|
+
raise AssertionException.new("FTO6 - Failed to handle Bundle JSON format param response. Error: #{e.message}")
|
|
412
|
+
end
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
private
|
|
416
|
+
|
|
417
|
+
# Compare requested resource with created resource
|
|
418
|
+
def compare_response(entry)
|
|
419
|
+
@create_failed || entry != nil && entry.resource != nil && entry.resource == @resource
|
|
420
|
+
end
|
|
421
|
+
|
|
422
|
+
# Compare response format with requested format
|
|
423
|
+
def compare_response_format(entry, requested_format)
|
|
424
|
+
entry != nil && entry.response != nil && entry.response_format == requested_format
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
# Compare two requested entries
|
|
428
|
+
def compare_entries(entry1, entry2)
|
|
429
|
+
@create_failed || compare_response(entry1) && compare_response(entry2) && entry1.resource == entry2.resource
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
# Unify resource requests and format specification
|
|
433
|
+
def request_entry(resource_class, id, format, use_format_param=false)
|
|
434
|
+
@client.use_format_param = use_format_param
|
|
435
|
+
entry = @client.read(resource_class, id, format)
|
|
436
|
+
@client.use_format_param = false
|
|
437
|
+
assert_response_ok entry, "Failed to retrieve resource: #{entry.request[:url]}"
|
|
438
|
+
entry.resource.id = id
|
|
439
|
+
entry
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
# Unify Bundle requests and format specification
|
|
443
|
+
def request_bundle(resource_class, format, use_format_param=false)
|
|
444
|
+
@client.use_format_param = use_format_param
|
|
445
|
+
entry = @client.read_feed(resource_class, format)
|
|
446
|
+
@client.use_format_param = false
|
|
447
|
+
assert_response_ok entry, "Failed to retrieve Bundle: #{entry.request[:url]}"
|
|
448
|
+
entry
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
end
|
|
452
|
+
end
|
|
453
|
+
end
|