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,357 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
require 'webmock/test_unit'
|
|
3
|
+
|
|
4
|
+
class FetchPatientRecordTest < Test::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
TESTING_ENDPOINT = 'http://example-dstu2-server.com'
|
|
7
|
+
ROOT_PATH = File.expand_path('../..', File.dirname(File.absolute_path(__FILE__)))
|
|
8
|
+
CONDITION_1_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'condition-example-f201-fever.xml'))
|
|
9
|
+
CONDITION_2_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'condition-example-f205-infection.xml'))
|
|
10
|
+
DIAGNOSTICREPORT_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'diagnosticreport-example-f201-brainct.xml'))
|
|
11
|
+
ENCOUNTER_1_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'encounter-example-f201-20130404.xml'))
|
|
12
|
+
ENCOUNTER_2_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'encounter-example-f202-20130128.xml'))
|
|
13
|
+
OBSERVATION_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'observation-example-f202-temperature.xml'))
|
|
14
|
+
ORGANIZATION_1_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'organization-example-f201-aumc.xml'))
|
|
15
|
+
ORGANIZATION_2_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'organization-example-f203-bumc.xml'))
|
|
16
|
+
PATIENT_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'patient-example-f201-roel.xml'))
|
|
17
|
+
PRACTITIONER_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'practitioner-example-f201-ab.xml'))
|
|
18
|
+
PROCEDURE_XML = File.read(File.join(ROOT_PATH, 'fixtures', 'record', 'procedure-example-f201-tpf.xml'))
|
|
19
|
+
|
|
20
|
+
def test_connectathon_8_track_two_requests
|
|
21
|
+
|
|
22
|
+
stub_request(:get, "#{TESTING_ENDPOINT}/Patient/$everything").
|
|
23
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
24
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
25
|
+
'Operation'=>'fetch_patient_record', 'Resource'=>'FHIR::Patient',
|
|
26
|
+
'User-Agent'=>'Ruby FHIR Client'}).
|
|
27
|
+
to_return(:status => 200, :body =>
|
|
28
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
29
|
+
<id value="example"/>
|
|
30
|
+
<meta>
|
|
31
|
+
<versionId value="1"/>
|
|
32
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
33
|
+
</meta>
|
|
34
|
+
<type value="searchset"/>
|
|
35
|
+
<base value="http://example.com/base"/>
|
|
36
|
+
<total value="0"/>
|
|
37
|
+
<link>
|
|
38
|
+
<relation value="self"/>
|
|
39
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
40
|
+
</link>
|
|
41
|
+
<entry>
|
|
42
|
+
</entry>
|
|
43
|
+
</Bundle>', :headers => {})
|
|
44
|
+
|
|
45
|
+
stub_request(:post, "http://example-dstu2-server.com/Patient/$everything").
|
|
46
|
+
with(:body => "<Parameters xmlns=\"http://hl7.org/fhir\"></Parameters>",
|
|
47
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
48
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'53',
|
|
49
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
50
|
+
'Operation'=>'fetch_patient_record', 'Resource'=>'FHIR::Patient',
|
|
51
|
+
'User-Agent'=>'Ruby FHIR Client'}).
|
|
52
|
+
to_return(:status => 200, :body =>
|
|
53
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
54
|
+
<id value="example"/>
|
|
55
|
+
<meta>
|
|
56
|
+
<versionId value="1"/>
|
|
57
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
58
|
+
</meta>
|
|
59
|
+
<type value="searchset"/>
|
|
60
|
+
<base value="http://example.com/base"/>
|
|
61
|
+
<total value="0"/>
|
|
62
|
+
<link>
|
|
63
|
+
<relation value="self"/>
|
|
64
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
65
|
+
</link>
|
|
66
|
+
<entry>
|
|
67
|
+
</entry>
|
|
68
|
+
</Bundle>', :headers => {})
|
|
69
|
+
|
|
70
|
+
start = (DateTime.now - (6*30)).strftime("%Y-%m-%d")
|
|
71
|
+
stop = DateTime.now.strftime("%Y-%m-%d")
|
|
72
|
+
stub_request(:get, "#{TESTING_ENDPOINT}/Patient/$everything?end=#{stop}&start=#{start}").
|
|
73
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
74
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
75
|
+
'Operation'=>'fetch_patient_record',
|
|
76
|
+
'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
77
|
+
to_return(:status => 200, :body =>
|
|
78
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
79
|
+
<id value="example"/>
|
|
80
|
+
<meta>
|
|
81
|
+
<versionId value="1"/>
|
|
82
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
83
|
+
</meta>
|
|
84
|
+
<type value="searchset"/>
|
|
85
|
+
<base value="http://example.com/base"/>
|
|
86
|
+
<total value="0"/>
|
|
87
|
+
<link>
|
|
88
|
+
<relation value="self"/>
|
|
89
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
90
|
+
</link>
|
|
91
|
+
<entry>
|
|
92
|
+
</entry>
|
|
93
|
+
</Bundle>', :headers => {})
|
|
94
|
+
|
|
95
|
+
stub_request(:post, "http://example-dstu2-server.com/Patient/$everything").
|
|
96
|
+
with(:body => "<Parameters xmlns=\"http://hl7.org/fhir\"><parameter><name value=\"start\"/><valueDate value=\"#{start}\"></valueDate></parameter><parameter><name value=\"end\"/><valueDate value=\"#{stop}\"></valueDate></parameter></Parameters>",
|
|
97
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
98
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'223',
|
|
99
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
100
|
+
'Operation'=>'fetch_patient_record', 'Resource'=>'FHIR::Patient',
|
|
101
|
+
'User-Agent'=>'Ruby FHIR Client'}).
|
|
102
|
+
to_return(:status => 200, :body =>
|
|
103
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
104
|
+
<id value="example"/>
|
|
105
|
+
<meta>
|
|
106
|
+
<versionId value="1"/>
|
|
107
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
108
|
+
</meta>
|
|
109
|
+
<type value="searchset"/>
|
|
110
|
+
<base value="http://example.com/base"/>
|
|
111
|
+
<total value="0"/>
|
|
112
|
+
<link>
|
|
113
|
+
<relation value="self"/>
|
|
114
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
115
|
+
</link>
|
|
116
|
+
<entry>
|
|
117
|
+
</entry>
|
|
118
|
+
</Bundle>', :headers => {})
|
|
119
|
+
|
|
120
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Patient").
|
|
121
|
+
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Patient\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Roel\"/>\n <family value=\"Bor\"/>\n <given value=\"Roelof Olaf\"/>\n <prefix value=\"Drs.\"/>\n <suffix value=\"PDEng.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31612345678\"/>\n <use value=\"mobile\"/>\n</telecom>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n <gender value=\"male\"/>\n <birthDate value=\"1960-03-13\"/>\n <deceasedBoolean value=\"false\"/>\n<address\n>\n <use value=\"home\"/>\n <line value=\"Bos en Lommerplein 280\"/>\n <city value=\"Amsterdam\"/>\n <postalCode value=\"1055RW\"/>\n <country value=\"NLD\"/>\n</address>\n<maritalStatus\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"36629006\"/>\n <display value=\"Legally married\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v3/MaritalStatus\"/>\n <code value=\"M\"/>\n</coding>\n</maritalStatus>\n <multipleBirthBoolean value=\"false\"/>\n<photo\n>\n <contentType value=\"image/jpeg\"/>\n <url value=\"binary/@f006\"/>\n</photo>\n <contact\n>\n<relationship\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"127850001\"/>\n <display value=\"Wife\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/patient-contact-relationship\"/>\n <code value=\"partner\"/>\n</coding>\n</relationship>\n<name\n>\n <use value=\"usual\"/>\n <text value=\"Ariadne Bor-Jansma\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n</contact>\n <communication\n>\n<language\n>\n<coding\n>\n <system value=\"urn:std:iso:639-1\"/>\n <code value=\"nl-NL\"/>\n <display value=\"Dutch\"/>\n</coding>\n</language>\n <preferred value=\"true\"/>\n</communication>\n<managingOrganization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</managingOrganization>\n <active value=\"true\"/>\n</Patient>\n",
|
|
122
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
123
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'2399',
|
|
124
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
125
|
+
'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
126
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Patient/f201"})
|
|
127
|
+
|
|
128
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Patient").
|
|
129
|
+
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Patient\n xmlns=\"http://hl7.org/fhir\">\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Roel\"/>\n <family value=\"Bor\"/>\n <given value=\"Roelof Olaf\"/>\n <prefix value=\"Drs.\"/>\n <suffix value=\"PDEng.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31612345678\"/>\n <use value=\"mobile\"/>\n</telecom>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n <gender value=\"male\"/>\n <birthDate value=\"1960-03-13\"/>\n <deceasedBoolean value=\"false\"/>\n<address\n>\n <use value=\"home\"/>\n <line value=\"Bos en Lommerplein 280\"/>\n <city value=\"Amsterdam\"/>\n <postalCode value=\"1055RW\"/>\n <country value=\"NLD\"/>\n</address>\n<maritalStatus\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"36629006\"/>\n <display value=\"Legally married\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v3/MaritalStatus\"/>\n <code value=\"M\"/>\n</coding>\n</maritalStatus>\n <multipleBirthBoolean value=\"false\"/>\n<photo\n>\n <contentType value=\"image/jpeg\"/>\n <url value=\"binary/@f006\"/>\n</photo>\n <contact\n>\n<relationship\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"127850001\"/>\n <display value=\"Wife\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/patient-contact-relationship\"/>\n <code value=\"partner\"/>\n</coding>\n</relationship>\n<name\n>\n <use value=\"usual\"/>\n <text value=\"Ariadne Bor-Jansma\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n</contact>\n <communication\n>\n<language\n>\n<coding\n>\n <system value=\"urn:std:iso:639-1\"/>\n <code value=\"nl-NL\"/>\n <display value=\"Dutch\"/>\n</coding>\n</language>\n <preferred value=\"true\"/>\n</communication>\n<managingOrganization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</managingOrganization>\n <active value=\"true\"/>\n</Patient>\n",
|
|
130
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
131
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'2375',
|
|
132
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
133
|
+
'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
134
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Patient/f201"})
|
|
135
|
+
|
|
136
|
+
stub_request(:put, "#{TESTING_ENDPOINT}/Patient").
|
|
137
|
+
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Patient\n xmlns=\"http://hl7.org/fhir\">\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Roel\"/>\n <family value=\"Bor\"/>\n <given value=\"Not\"/><given value=\"Given\"/>\n <prefix value=\"Drs.\"/>\n <suffix value=\"PDEng.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"1-234-567-8901\"/>\n <use value=\"mobile\"/>\n</telecom>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n <gender value=\"male\"/>\n <birthDate value=\"1960-03-13\"/>\n <deceasedBoolean value=\"false\"/>\n<address\n>\n <use value=\"home\"/>\n <line value=\"Bos en Lommerplein 280\"/>\n <city value=\"Amsterdam\"/>\n <postalCode value=\"1055RW\"/>\n <country value=\"NLD\"/>\n</address>\n<maritalStatus\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"36629006\"/>\n <display value=\"Legally married\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v3/MaritalStatus\"/>\n <code value=\"M\"/>\n</coding>\n</maritalStatus>\n <multipleBirthBoolean value=\"false\"/>\n<photo\n>\n <contentType value=\"image/jpeg\"/>\n <url value=\"binary/@f006\"/>\n</photo>\n <contact\n>\n<relationship\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"127850001\"/>\n <display value=\"Wife\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/patient-contact-relationship\"/>\n <code value=\"partner\"/>\n</coding>\n</relationship>\n<name\n>\n <use value=\"usual\"/>\n <text value=\"Ariadne Bor-Jansma\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n</contact>\n <communication\n>\n<language\n>\n<coding\n>\n <system value=\"urn:std:iso:639-1\"/>\n <code value=\"nl-NL\"/>\n <display value=\"Dutch\"/>\n</coding>\n</language>\n <preferred value=\"true\"/>\n</communication>\n<managingOrganization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</managingOrganization>\n <active value=\"true\"/>\n</Patient>\n",
|
|
138
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
139
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'2391',
|
|
140
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
141
|
+
'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
142
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Patient/f201"})
|
|
143
|
+
|
|
144
|
+
stub_request(:get, "#{TESTING_ENDPOINT}/Patient/f201/$everything").
|
|
145
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
146
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
147
|
+
'Id'=>'f201', 'Operation'=>'fetch_patient_record',
|
|
148
|
+
'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
149
|
+
to_return(:status => 200, :body =>
|
|
150
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
151
|
+
<id value="example"/>
|
|
152
|
+
<meta>
|
|
153
|
+
<versionId value="1"/>
|
|
154
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
155
|
+
</meta>
|
|
156
|
+
<type value="searchset"/>
|
|
157
|
+
<base value="http://example.com/base"/>
|
|
158
|
+
<total value="0"/>
|
|
159
|
+
<link>
|
|
160
|
+
<relation value="self"/>
|
|
161
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
162
|
+
</link>
|
|
163
|
+
<entry>
|
|
164
|
+
<resource>' + PATIENT_XML +
|
|
165
|
+
'</resource>
|
|
166
|
+
</entry>
|
|
167
|
+
</Bundle>', :headers => {})
|
|
168
|
+
|
|
169
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Patient/f201").
|
|
170
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
171
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
172
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
173
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
174
|
+
|
|
175
|
+
stub_request(:get, "#{TESTING_ENDPOINT}/Patient/f201/$everything?end=2012-12-31&start=2012-01-01").
|
|
176
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
177
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
178
|
+
'End'=>'2012-12-31', 'Id'=>'f201',
|
|
179
|
+
'Operation'=>'fetch_patient_record', 'Resource'=>'FHIR::Patient',
|
|
180
|
+
'Start'=>'2012-01-01', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
181
|
+
to_return(:status => 200, :body =>
|
|
182
|
+
'<Bundle xmlns="http://hl7.org/fhir">
|
|
183
|
+
<id value="example"/>
|
|
184
|
+
<meta>
|
|
185
|
+
<versionId value="1"/>
|
|
186
|
+
<lastUpdated value="2014-08-18T01:43:30Z"/>
|
|
187
|
+
</meta>
|
|
188
|
+
<type value="searchset"/>
|
|
189
|
+
<base value="http://example.com/base"/>
|
|
190
|
+
<total value="0"/>
|
|
191
|
+
<link>
|
|
192
|
+
<relation value="self"/>
|
|
193
|
+
<url value="https://example.com/base/MedicationPrescription?patient=347"/>
|
|
194
|
+
</link>
|
|
195
|
+
<entry>
|
|
196
|
+
<resource>' + PATIENT_XML +
|
|
197
|
+
'</resource>
|
|
198
|
+
</entry>
|
|
199
|
+
</Bundle>', :headers => {})
|
|
200
|
+
|
|
201
|
+
stub_request(:put, "#{TESTING_ENDPOINT}/Patient/f201").
|
|
202
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Patient\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<identifier\n>\n <use value=\"official\"/>\n<type\n>\n <text value=\"BSN\"/>\n</type>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Roel\"/>\n <family value=\"Bor\"/>\n <given value=\"Not\"/><given value=\"Given\"/>\n <prefix value=\"Drs.\"/>\n <suffix value=\"PDEng.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"1-234-567-8901\"/>\n <use value=\"mobile\"/>\n</telecom>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n <gender value=\"male\"/>\n <birthDate value=\"1960-03-13\"/>\n <deceasedBoolean value=\"false\"/>\n<address\n>\n <use value=\"home\"/>\n <line value=\"Bos en Lommerplein 280\"/>\n <city value=\"Amsterdam\"/>\n <postalCode value=\"1055RW\"/>\n <country value=\"NLD\"/>\n</address>\n<maritalStatus\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"36629006\"/>\n <display value=\"Legally married\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v3/MaritalStatus\"/>\n <code value=\"M\"/>\n</coding>\n</maritalStatus>\n <multipleBirthBoolean value=\"false\"/>\n<photo\n>\n <contentType value=\"image/jpeg\"/>\n <url value=\"binary/@f006\"/>\n</photo>\n <contact\n>\n<relationship\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"127850001\"/>\n <display value=\"Wife\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/patient-contact-relationship\"/>\n <code value=\"partner\"/>\n</coding>\n</relationship>\n<name\n>\n <use value=\"usual\"/>\n <text value=\"Ariadne Bor-Jansma\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n</contact>\n <communication\n>\n<language\n>\n<coding\n>\n <system value=\"urn:std:iso:639-1\"/>\n <code value=\"nl-NL\"/>\n <display value=\"Dutch\"/>\n</coding>\n</language>\n <preferred value=\"true\"/>\n</communication>\n<managingOrganization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</managingOrganization>\n <active value=\"true\"/>\n</Patient>\n"}",
|
|
203
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
204
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'2415',
|
|
205
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
206
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Patient', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
207
|
+
to_return(:status => 200, :body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Patient\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"official\"/>\n <label value=\"BSN\"/>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<identifier\n>\n <use value=\"official\"/>\n <label value=\"BSN\"/>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.6.3\"/>\n <value value=\"123456789\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Roel\"/>\n <family value=\"Bor\"/>\n <given value=\"Not\"/><given value=\"Given\"/>\n <prefix value=\"Drs.\"/>\n <suffix value=\"PDEng.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"1-234-567-8901\"/>\n <use value=\"mobile\"/>\n</telecom>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n <gender value=\"male\"/>\n <birthDate value=\"1960-03-13\"/>\n <deceasedBoolean value=\"false\"/>\n<address\n>\n <use value=\"home\"/>\n <line value=\"Bos en Lommerplein 280\"/>\n <city value=\"Amsterdam\"/>\n <postalCode value=\"1055RW\"/>\n <country value=\"NLD\"/>\n</address>\n<maritalStatus\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"36629006\"/>\n <display value=\"Legally married\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v3/MaritalStatus\"/>\n <code value=\"M\"/>\n</coding>\n</maritalStatus>\n <multipleBirthBoolean value=\"false\"/>\n<photo\n>\n <contentType value=\"image/jpeg\"/>\n <url value=\"binary/@f006\"/>\n</photo>\n <contact\n>\n<relationship\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"127850001\"/>\n <display value=\"Wife\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/patient-contact-relationship\"/>\n <code value=\"partner\"/>\n</coding>\n</relationship>\n<name\n>\n <use value=\"usual\"/>\n <text value=\"Ariadne Bor-Jansma\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31201234567\"/>\n <use value=\"home\"/>\n</telecom>\n</contact>\n<communication\n>\n<coding\n>\n <system value=\"urn:std:iso:639-1\"/>\n <code value=\"nl-NL\"/>\n <display value=\"Dutch\"/>\n</coding>\n</communication>\n<managingOrganization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</managingOrganization>\n <active value=\"true\"/>\n</Patient>\n"}", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Patient/f201"})
|
|
208
|
+
|
|
209
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Organization").
|
|
210
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Organization\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"official\"/>\n <label value=\"Zorginstelling naam\"/>\n <system value=\"http://www.zorgkaartnederland.nl/\"/>\n <value value=\"Artis University Medical Center\"/>\n</identifier>\n <name value=\"Artis University Medical Center (AUMC)\"/>\n<type\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"405608006\"/>\n <display value=\"Academic Medical Center\"/>\n</coding>\n<coding\n>\n <system value=\"urn:oid:2.16.840.1.113883.2.4.15.1060\"/>\n <code value=\"V6\"/>\n <display value=\"University Medical Hospital\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/organization-type\"/>\n <code value=\"prov\"/>\n <display value=\"Healthcare Provider\"/>\n</coding>\n</type>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31715269111\"/>\n <use value=\"work\"/>\n</telecom>\n<address\n>\n <use value=\"work\"/>\n <line value=\"Walvisbaai 3\"/>\n <city value=\"Den Helder\"/>\n <postalCode value=\"2333ZA\"/>\n <country value=\"NLD\"/>\n</address>\n <contact\n>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Professor Brand\"/>\n <family value=\"Brand\"/>\n <given value=\"Ronald\"/>\n <prefix value=\"Prof.Dr.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31715269702\"/>\n <use value=\"work\"/>\n</telecom>\n<address\n>\n <line value=\"Walvisbaai 3\"/><line value=\"Gebouw 2\"/>\n <city value=\"Den helder\"/>\n <postalCode value=\"2333ZA\"/>\n <country value=\"NLD\"/>\n</address>\n</contact>\n <active value=\"true\"/>\n</Organization>\n"}",
|
|
211
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
212
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1624',
|
|
213
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
214
|
+
'Id'=>'', 'Resource'=>'FHIR::Organization', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
215
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Organization/f201"})
|
|
216
|
+
|
|
217
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Organization/f201").
|
|
218
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
219
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
220
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Organization', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
221
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
222
|
+
|
|
223
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Organization").
|
|
224
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Organization\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f203\"/>\n<identifier\n>\n <use value=\"official\"/>\n <label value=\"Zorginstelling naam\"/>\n <system value=\"http://www.zorgkaartnederland.nl/\"/>\n <value value=\"Blijdorp MC\"/>\n</identifier>\n <name value=\"Blijdorp Medisch Centrum (BUMC)\"/>\n<type\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"405608006\"/>\n <display value=\"Academic Medical Center\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/organization-type\"/>\n <code value=\"prov\"/>\n</coding>\n</type>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31107040704\"/>\n <use value=\"work\"/>\n</telecom>\n<address\n>\n <use value=\"work\"/>\n <line value=\"apenrots 230\"/>\n <city value=\"Blijdorp\"/>\n <postalCode value=\"3056BE\"/>\n <country value=\"NLD\"/>\n</address>\n <active value=\"true\"/>\n</Organization>\n"}",
|
|
225
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
226
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'927',
|
|
227
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
228
|
+
'Id'=>'', 'Resource'=>'FHIR::Organization', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
229
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Organization/f203"})
|
|
230
|
+
|
|
231
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Organization/f203").
|
|
232
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
233
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
234
|
+
'Id'=>'f203', 'Resource'=>'FHIR::Organization', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
235
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
236
|
+
|
|
237
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Practitioner").
|
|
238
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Practitioner\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"official\"/>\n <label value=\"UZI-nummer\"/>\n <system value=\"urn:oid:2.16.528.1.1007.3.1\"/>\n <value value=\"12345678901\"/>\n</identifier>\n<name\n>\n <use value=\"official\"/>\n <text value=\"Dokter Bronsig\"/>\n <family value=\"Bronsig\"/>\n <given value=\"Arend\"/>\n <prefix value=\"Dr.\"/>\n</name>\n<telecom\n>\n <system value=\"phone\"/>\n <value value=\"+31715269111\"/>\n <use value=\"work\"/>\n</telecom>\n<address\n>\n <use value=\"work\"/>\n <line value=\"Walvisbaai 3\"/><line value=\"C4 - Automatisering\"/>\n <city value=\"Den helder\"/>\n <postalCode value=\"2333ZA\"/>\n <country value=\"NLD\"/>\n</address>\n <gender value=\"male\"/>\n <birthDate value=\"1956-12-24\"/>\n<organization\n>\n <reference value=\"Organization/f201\"/>\n <display value=\"AUMC\"/>\n</organization>\n<role\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"225304007\"/>\n <display value=\"Implementation of planned interventions\"/>\n</coding>\n</role>\n<specialty\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"310512001\"/>\n <display value=\"Medical oncologist\"/>\n</coding>\n</specialty>\n <qualification\n>\n<code\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"41672002\"/>\n <display value=\"Pulmonologist\"/>\n</coding>\n</code>\n</qualification>\n</Practitioner>\n"}",
|
|
239
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
240
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1457',
|
|
241
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
242
|
+
'Id'=>'', 'Resource'=>'FHIR::Practitioner', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
243
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Practitioner/f201"})
|
|
244
|
+
|
|
245
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Practitioner/f201").
|
|
246
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
247
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
248
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Practitioner', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
249
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
250
|
+
|
|
251
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Condition").
|
|
252
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Condition\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f205\"/>\n<subject\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</subject>\n<asserter\n>\n <reference value=\"Practitioner/f201\"/>\n</asserter>\n <dateAsserted value=\"2013-04-04\"/>\n<code\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"87628006\"/>\n <display value=\"Bacterial infectious disease\"/>\n</coding>\n</code>\n <status value=\"working\"/>\n</Condition>\n"}",
|
|
253
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
254
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'503',
|
|
255
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
256
|
+
'Id'=>'', 'Resource'=>'FHIR::Condition', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
257
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Condition/f205"})
|
|
258
|
+
|
|
259
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Condition/f205").
|
|
260
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
261
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
262
|
+
'Id'=>'f205', 'Resource'=>'FHIR::Condition', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
263
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
264
|
+
|
|
265
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Observation").
|
|
266
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Observation\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f202\"/>\n<name\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"415945006\"/>\n <display value=\"Oral temperature\"/>\n</coding>\n<coding\n>\n <system value=\"http://loinc.org\"/>\n <code value=\"8310-5\"/>\n <display value=\"Body temperature\"/>\n</coding>\n <text value=\"Body temperature\"/>\n</name>\n<valueQuantity\n>\n <value value=\"39.0\"/>\n <units value=\"degrees C\"/>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"258710007\"/>\n</valueQuantity>\n<interpretation\n>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v2/0078\"/>\n <code value=\"H\"/>\n</coding>\n</interpretation>\n <issued value=\"2013-04-04T12:27:00Z\"/>\n <status value=\"entered in error\"/>\n <reliability value=\"questionable\"/>\n<bodySite\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"38266002\"/>\n <display value=\"Entire body as a whole\"/>\n</coding>\n</bodySite>\n<method\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"89003005\"/>\n <display value=\"Oral temperature taking\"/>\n</coding>\n</method>\n<subject\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</subject>\n<performer\n>\n <reference value=\"Practitioner/f201\"/>\n</performer>\n <referenceRange\n>\n<low\n>\n <value value=\"37.5\"/>\n <units value=\"degrees C\"/>\n</low>\n</referenceRange>\n</Observation>\n"}",
|
|
267
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
268
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1444',
|
|
269
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
270
|
+
'Id'=>'', 'Resource'=>'FHIR::Observation', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
271
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Observation/f202"})
|
|
272
|
+
|
|
273
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Observation/f202").
|
|
274
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
275
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
276
|
+
'Id'=>'f202', 'Resource'=>'FHIR::Observation', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
277
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
278
|
+
|
|
279
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/DiagnosticReport").
|
|
280
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<DiagnosticReport\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<name\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"429858000\"/>\n <display value=\"Computed tomography (CT) of head and neck\"/>\n</coding>\n <text value=\"CT of head-neck\"/>\n</name>\n <status value=\"final\"/>\n <issued value=\"2012-12-01T12:00:00+01:00\"/>\n<subject\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</subject>\n<performer\n>\n <reference value=\"Organization/f203\"/>\n <display value=\"Blijdorp MC\"/>\n</performer>\n<serviceCategory\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"394914008\"/>\n <display value=\"Radiology\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/v2/0074\"/>\n <code value=\"RAD\"/>\n</coding>\n</serviceCategory>\n <diagnosticDateTime value=\"2012-12-01T12:00:00+01:00\"/>\n <conclusion value=\"CT brains: large tumor sphenoid/clivus.\"/>\n<codedDiagnosis\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"188340000\"/>\n <display value=\"Malignant tumor of craniopharyngeal duct\"/>\n</coding>\n</codedDiagnosis>\n</DiagnosticReport>\n"}",
|
|
281
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
282
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1192',
|
|
283
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
284
|
+
'Id'=>'', 'Resource'=>'FHIR::DiagnosticReport', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
285
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/DiagnosticReport/f201"})
|
|
286
|
+
|
|
287
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/DiagnosticReport/f201").
|
|
288
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
289
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
290
|
+
'Id'=>'f201', 'Resource'=>'FHIR::DiagnosticReport', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
291
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
292
|
+
|
|
293
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Encounter").
|
|
294
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Encounter\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<identifier\n>\n <use value=\"temp\"/>\n <label value=\"Roel's encounter on April fourth 2013\"/>\n <value value=\"Encounter_Roel_20130404\"/>\n</identifier>\n <status value=\"finished\"/>\n <class value=\"outpatient\"/>\n<type\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"11429006\"/>\n <display value=\"Consultation\"/>\n</coding>\n</type>\n<patient\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</patient>\n <participant\n>\n<individual\n>\n <reference value=\"Practitioner/f201\"/>\n</individual>\n</participant>\n<reason\n>\n <text value=\"The patient had fever peaks over the last couple of days. He is worried about these peaks.\"/>\n</reason>\n<priority\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"17621005\"/>\n <display value=\"Normal\"/>\n</coding>\n</priority>\n<serviceProvider\n>\n <reference value=\"Organization/f201\"/>\n</serviceProvider>\n</Encounter>\n"}",
|
|
295
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
296
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1035',
|
|
297
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
298
|
+
'Id'=>'', 'Resource'=>'FHIR::Encounter', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
299
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Encounter/f201"})
|
|
300
|
+
|
|
301
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Encounter/f201").
|
|
302
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
303
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
304
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Encounter', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
305
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
306
|
+
|
|
307
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Encounter").
|
|
308
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Encounter\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f202\"/>\n<identifier\n>\n <use value=\"temp\"/>\n <label value=\"Roel's encounter on January 28th, 2013\"/>\n <value value=\"Encounter_Roel_20130128\"/>\n</identifier>\n <status value=\"finished\"/>\n <class value=\"outpatient\"/>\n<type\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"367336001\"/>\n <display value=\"Chemotherapy\"/>\n</coding>\n</type>\n<patient\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</patient>\n <participant\n>\n<individual\n>\n <reference value=\"Practitioner/f201\"/>\n</individual>\n</participant>\n<length\n>\n <value value=\"56.0\"/>\n <units value=\"minutes\"/>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"258701004\"/>\n</length>\n<reason\n>\n <text value=\"The patient is treated for a tumor.\"/>\n</reason>\n<indication\n>\n <reference value=\"Procedure/f201\"/>\n <display value=\"Roel's TPF chemotherapy on January 28th, 2013\"/>\n</indication>\n<priority\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"103391001\"/>\n <display value=\"Urgent\"/>\n</coding>\n</priority>\n<serviceProvider\n>\n <reference value=\"Organization/f201\"/>\n</serviceProvider>\n</Encounter>\n"}",
|
|
309
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
310
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1270',
|
|
311
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
312
|
+
'Id'=>'', 'Resource'=>'FHIR::Encounter', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
313
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Encounter/f202"})
|
|
314
|
+
|
|
315
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Encounter/f202").
|
|
316
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
317
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
318
|
+
'Id'=>'f202', 'Resource'=>'FHIR::Encounter', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
319
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
320
|
+
|
|
321
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Procedure").
|
|
322
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Procedure\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<patient\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</patient>\n<type\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"367336001\"/>\n <display value=\"Chemotherapy\"/>\n</coding>\n</type>\n<bodySite\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"272676008\"/>\n <display value=\"Sphenoid bone\"/>\n</coding>\n</bodySite>\n<indication\n>\n <text value=\"DiagnosticReport/f201\"/>\n</indication>\n <performer\n>\n<person\n>\n <reference value=\"Practitioner/f201\"/>\n <display value=\"Dokter Bronsig\"/>\n</person>\n<role\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"310512001\"/>\n <display value=\"Medical oncologist\"/>\n</coding>\n</role>\n</performer>\n<date\n>\n <start value=\"2013-01-28T13:31:00+01:00\"/>\n <end value=\"2013-01-28T14:27:00+01:00\"/>\n</date>\n<encounter\n>\n <reference value=\"Encounter/f202\"/>\n <display value=\"Roel's encounter on January 28th, 2013\"/>\n</encounter>\n <notes value=\"Eerste neo-adjuvante TPF-kuur bij groot proces in sphenoid met intracraniale uitbreiding.\"/>\n</Procedure>\n"}",
|
|
323
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
324
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1209',
|
|
325
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
326
|
+
'Id'=>'', 'Resource'=>'FHIR::Procedure', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
327
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Procedure/f201"})
|
|
328
|
+
|
|
329
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Procedure/f201").
|
|
330
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
331
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
332
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Procedure', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
333
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
334
|
+
|
|
335
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Condition").
|
|
336
|
+
with(:body => "#{"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Condition\n xmlns=\"http://hl7.org/fhir\">\n \t<id value=\"f201\"/>\n<subject\n>\n <reference value=\"Patient/f201\"/>\n <display value=\"Roel\"/>\n</subject>\n<encounter\n>\n <reference value=\"Encounter/f201\"/>\n</encounter>\n<asserter\n>\n <reference value=\"Practitioner/f201\"/>\n</asserter>\n <dateAsserted value=\"2013-04-04\"/>\n<code\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"386661006\"/>\n <display value=\"Fever\"/>\n</coding>\n</code>\n<category\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"55607006\"/>\n <display value=\"Problem\"/>\n</coding>\n<coding\n>\n <system value=\"http://hl7.org/fhir/condition-category\"/>\n <code value=\"condition\"/>\n</coding>\n</category>\n <status value=\"confirmed\"/>\n<severity\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"255604002\"/>\n <display value=\"Mild\"/>\n</coding>\n</severity>\n <onsetDateTime value=\"2013-04-02\"/>\n <evidence\n>\n<code\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"258710007\"/>\n <display value=\"degrees C\"/>\n</coding>\n</code>\n<detail\n>\n <reference value=\"Observation/f202\"/>\n <display value=\"Temperature\"/>\n</detail>\n</evidence>\n <location\n>\n<code\n>\n<coding\n>\n <system value=\"http://snomed.info/sct\"/>\n <code value=\"38266002\"/>\n <display value=\"Entire body as a whole\"/>\n</coding>\n</code>\n</location>\n <dueTo\n>\n<target\n>\n <reference value=\"Procedure/f201\"/>\n <display value=\"TPF chemokuur\"/>\n</target>\n</dueTo>\n<dueTo\n>\n<target\n>\n <reference value=\"Condition/f205\"/>\n <display value=\"bacterial infection\"/>\n</target>\n</dueTo>\n</Condition>\n"}",
|
|
337
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
338
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1689',
|
|
339
|
+
'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
340
|
+
'Id'=>'', 'Resource'=>'FHIR::Condition', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
341
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Location' => "#{TESTING_ENDPOINT}/Condition/f201"})
|
|
342
|
+
|
|
343
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Condition/f201").
|
|
344
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8',
|
|
345
|
+
'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8',
|
|
346
|
+
'Id'=>'f201', 'Resource'=>'FHIR::Condition', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
347
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
348
|
+
|
|
349
|
+
client = FHIR::Client.new(TESTING_ENDPOINT)
|
|
350
|
+
|
|
351
|
+
# only execute the methods that have stubs; remaining methods require complicated stubs
|
|
352
|
+
trackTwoTest = Crucible::Tests::ConnectathonFetchPatientRecordTest.new(client)
|
|
353
|
+
results = trackTwoTest.execute_test_methods
|
|
354
|
+
assert !results.blank?, 'Failed to execute ConnectathonFetchPatientRecordTest.'
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
require 'webmock/test_unit'
|
|
3
|
+
|
|
4
|
+
class FinancialTest < Test::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
TESTING_ENDPOINT = 'http://example-dstu2-server.com'
|
|
7
|
+
|
|
8
|
+
def test_connectathon_9_financial_requests
|
|
9
|
+
# stub_request(:post, "http://example-dstu2-server.com/Claim").
|
|
10
|
+
# with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Claim\n xmlns=\"http://hl7.org/fhir\">\n <type value=\"oral\"/>\n <created value=\"2015-04-16\"/>\n<target\n>\n <reference value=\"Organization/654123\"/>\n</target>\n<organization\n>\n <reference value=\"Organization/1535\"/>\n</organization>\n <use value=\"complete\"/>\n<priority\n>\n <code value=\"normal\"/>\n</priority>\n <payee\n>\n<type\n>\n <code value=\"provider\"/>\n</type>\n</payee>\n <diagnosis\n>\n <sequence value=\"1\"/>\n<diagnosis\n>\n <code value=\"123456\"/>\n</diagnosis>\n</diagnosis>\n<patient\n>\n <reference value=\"Patient/1\"/>\n</patient>\n <coverage\n>\n <sequence value=\"1\"/>\n <focal value=\"true\"/>\n<coverage\n>\n <reference value=\"Coverage/9876B1\"/>\n</coverage>\n<relationship\n>\n <code value=\"self\"/>\n</relationship>\n</coverage>\n <item\n>\n <sequence value=\"1\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<provider\n>\n <reference value=\"Practitioner/1\"/>\n</provider>\n<service\n>\n <code value=\"1201\"/>\n</service>\n <serviceDate value=\"2015-04-16\"/>\n<unitPrice\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n</item>\n</Claim>\n",
|
|
11
|
+
# :headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8', 'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1259', 'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Resource'=>'FHIR::Claim', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
12
|
+
# to_return(:status => 200, :body => "", :headers => {})
|
|
13
|
+
|
|
14
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Claim").
|
|
15
|
+
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Claim\n xmlns=\"http://hl7.org/fhir\">\n <type value=\"oral\"/>\n <created value=\"2015-04-16\"/>\n<target\n>\n <reference value=\"Organization/654123\"/>\n</target>\n<organization\n>\n <reference value=\"Organization/1535\"/>\n</organization>\n <use value=\"complete\"/>\n<priority\n>\n <code value=\"normal\"/>\n</priority>\n <payee\n>\n<type\n>\n <code value=\"provider\"/>\n</type>\n</payee>\n <diagnosis\n>\n <sequence value=\"1\"/>\n<diagnosis\n>\n <code value=\"123456\"/>\n</diagnosis>\n</diagnosis>\n<patient\n>\n <reference value=\"Patient/1\"/>\n</patient>\n <coverage\n>\n <sequence value=\"1\"/>\n <focal value=\"true\"/>\n<coverage\n>\n <reference value=\"Coverage/9876B1\"/>\n</coverage>\n<relationship\n>\n <code value=\"self\"/>\n</relationship>\n</coverage>\n <item\n>\n <sequence value=\"1\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<provider\n>\n <reference value=\"Practitioner/1\"/>\n</provider>\n<service\n>\n <code value=\"1201\"/>\n</service>\n <serviceDate value=\"2015-04-16\"/>\n<unitPrice\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n</item>\n</Claim>\n",
|
|
16
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8', 'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'1259', 'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Resource'=>'FHIR::Claim', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
17
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Last-Modified' => Time.now.httpdate, 'Content-Location' => "#{TESTING_ENDPOINT}/Claim/100150"})
|
|
18
|
+
|
|
19
|
+
stub_request(:post, "#{TESTING_ENDPOINT}/Claim").
|
|
20
|
+
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Claim\n xmlns=\"http://hl7.org/fhir\">\n <type value=\"oral\"/>\n <created value=\"2014-08-16\"/>\n<target\n>\n <reference value=\"Organization/2\"/>\n</target>\n<organization\n>\n <reference value=\"Organization/1\"/>\n</organization>\n <use value=\"complete\"/>\n<priority\n>\n <code value=\"normal\"/>\n</priority>\n <payee\n>\n<type\n>\n <code value=\"provider\"/>\n</type>\n</payee>\n <diagnosis\n>\n <sequence value=\"1\"/>\n<diagnosis\n>\n <code value=\"123456\"/>\n</diagnosis>\n</diagnosis>\n<patient\n>\n <reference value=\"Patient/1\"/>\n</patient>\n <coverage\n>\n <sequence value=\"1\"/>\n <focal value=\"true\"/>\n<coverage\n>\n <reference value=\"Coverage/9876B1\"/>\n</coverage>\n<relationship\n>\n <code value=\"self\"/>\n</relationship>\n</coverage>\n <item\n>\n <sequence value=\"1\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<provider\n>\n <reference value=\"Practitioner/1\"/>\n</provider>\n<service\n>\n <system value=\"http://hl7.org/fhir/oralservicecodes\"/>\n <code value=\"1200\"/>\n</service>\n <serviceDate value=\"2014-08-16\"/>\n<unitPrice\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"135.57\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n</item>\n<item\n>\n <sequence value=\"2\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<provider\n>\n <reference value=\"Practitioner/1\"/>\n</provider>\n<service\n>\n <system value=\"http://hl7.org/fhir/oralservicecodes\"/>\n <code value=\"21211\"/>\n</service>\n <serviceDate value=\"2014-08-16\"/>\n<unitPrice\n>\n <value value=\"105.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"105.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n<bodySite\n>\n <system value=\"http://fdi.org/fhir/oraltoothcodes\"/>\n <code value=\"21\"/>\n</bodySite>\n<subSite\n>\n <system value=\"http://fdi.org/fhir/oralsurfacecodes\"/>\n <code value=\"L\"/>\n</subSite>\n</item>\n<item\n>\n <sequence value=\"3\"/>\n<type\n>\n <code value=\"group\"/>\n</type>\n<provider\n>\n <reference value=\"Practitioner/1\"/>\n</provider>\n<service\n>\n <system value=\"http://hl7.org/fhir/oralservicecodes\"/>\n <code value=\"27211\"/>\n</service>\n <serviceDate value=\"2014-08-16\"/>\n<unitPrice\n>\n <value value=\"1100.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"1100.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n<bodySite\n>\n <system value=\"http://fdi.org/fhir/oraltoothcodes\"/>\n <code value=\"36\"/>\n</bodySite>\n <detail\n>\n <sequence value=\"1\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<service\n>\n <system value=\"http://hl7.org/fhir/oralservicecodes\"/>\n <code value=\"27211\"/>\n</service>\n<unitPrice\n>\n <value value=\"750.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"750.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n</detail>\n<detail\n>\n <sequence value=\"2\"/>\n<type\n>\n <code value=\"service\"/>\n</type>\n<service\n>\n <system value=\"http://hl7.org/fhir/oralservicecodes\"/>\n <code value=\"lab\"/>\n</service>\n<unitPrice\n>\n <value value=\"350.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</unitPrice>\n<net\n>\n <value value=\"350.0\"/>\n <system value=\"urn:std:iso:4217\"/>\n <code value=\"USD\"/>\n</net>\n</detail>\n</item>\n</Claim>\n",
|
|
21
|
+
:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8', 'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'3487', 'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Resource'=>'FHIR::Claim', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
22
|
+
to_return(:status => 200, :body => "", :headers => {'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Last-Modified' => Time.now.httpdate, 'Content-Location' => "#{TESTING_ENDPOINT}/Claim/100151"})
|
|
23
|
+
|
|
24
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Claim/100150").
|
|
25
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8', 'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Id'=>'100150', 'Resource'=>'FHIR::Claim', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
26
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
27
|
+
|
|
28
|
+
stub_request(:delete, "#{TESTING_ENDPOINT}/Claim/100151").
|
|
29
|
+
with(:headers => {'Accept'=>'application/xml+fhir', 'Accept-Charset'=>'UTF-8', 'Accept-Encoding'=>'gzip, deflate', 'Content-Type'=>'application/xml+fhir;charset=UTF-8', 'Id'=>'100151', 'Resource'=>'FHIR::Claim', 'User-Agent'=>'Ruby FHIR Client'}).
|
|
30
|
+
to_return(:status => 200, :body => "", :headers => {})
|
|
31
|
+
|
|
32
|
+
client = FHIR::Client.new(TESTING_ENDPOINT)
|
|
33
|
+
financial = Crucible::Tests::ConnectathonFinancialTrackTest.new(client)
|
|
34
|
+
financial.tests_subset = financial.tests(['C9F_1A', 'C9F_1B'])
|
|
35
|
+
results = financial.execute_test_methods
|
|
36
|
+
|
|
37
|
+
assert !results.blank?, 'Failed to execute ConnectathonFinancialTrackTest.'
|
|
38
|
+
assert results.map {|r| r["status"] }.all? {|s| s=="pass"}, "FinacialTest methods did execute succesfully: #{results.map {|r| {r["id"] => r["status"]}}}}."
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
|
|
3
|
+
class FixturesTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
fixtures = File.join('fixtures','**','*.xml')
|
|
6
|
+
|
|
7
|
+
loading = true
|
|
8
|
+
t = Thread.new { FHIR::StructureDefinition.load_definitions; loading = false }
|
|
9
|
+
|
|
10
|
+
print 'Loading StructuredDefinitions'
|
|
11
|
+
while loading do
|
|
12
|
+
print '.'
|
|
13
|
+
sleep(10)
|
|
14
|
+
end
|
|
15
|
+
print " done.\n"
|
|
16
|
+
|
|
17
|
+
# Define test methods to validate example JSON
|
|
18
|
+
Dir.glob(fixtures).each do | file |
|
|
19
|
+
basename = File.basename(file,'.xml')
|
|
20
|
+
xml = File.open(file, 'r:bom|UTF-8', &:read)
|
|
21
|
+
|
|
22
|
+
define_method("test_fixture_validation_#{basename}") do
|
|
23
|
+
run_validate(file,xml)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def run_validate(file,xml)
|
|
28
|
+
assert(file && xml)
|
|
29
|
+
|
|
30
|
+
r = FHIR::Resource.from_contents(xml)
|
|
31
|
+
# assert(r.valid?,"#{r.errors.messages}")
|
|
32
|
+
|
|
33
|
+
root_element = Nokogiri::XML(xml).root.try(:name)
|
|
34
|
+
definition = FHIR::StructureDefinition.get_base_definition(root_element)
|
|
35
|
+
assert(definition)
|
|
36
|
+
|
|
37
|
+
valid = definition.is_valid?(xml,'XML')
|
|
38
|
+
assert(valid,"XML fixture does not conform to definition: #{definition.name}")
|
|
39
|
+
|
|
40
|
+
resource = FHIR::Resource.from_contents(xml)
|
|
41
|
+
valid = definition.is_valid?(resource)
|
|
42
|
+
assert(valid,"Resource does not conform to definition: #{definition.name}")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
|
|
3
|
+
class MetadataTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
# Test gathering metadata for all the Suites
|
|
6
|
+
# def test_suite_list
|
|
7
|
+
# metadata = Crucible::Tests::SuiteEngine.list_all(true)
|
|
8
|
+
# assert !metadata.blank?, 'Failed to gather SuiteEngine metadata.'
|
|
9
|
+
# end
|
|
10
|
+
|
|
11
|
+
# Test gathering metadata for all the TestScripts
|
|
12
|
+
# def test_testscript_list
|
|
13
|
+
# metadata = Crucible::Tests::TestScriptEngine.list_all(true)
|
|
14
|
+
# assert !metadata.blank?, 'Failed to gather TestScriptEngine metadata.'
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# Test gathering metadata for all the tests via the Executor
|
|
18
|
+
def test_executor_list
|
|
19
|
+
metadata = Crucible::Tests::Executor.list_all(false, true)
|
|
20
|
+
assert !metadata.blank?, 'Failed to gather Suite & TestScript metadata.'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Test gathering metadata for a specific test by its key
|
|
24
|
+
def test_suite_collect_metadata
|
|
25
|
+
executor = Crucible::Tests::Executor.new(nil, nil)
|
|
26
|
+
read_test = executor.find_test('ReadTest')
|
|
27
|
+
assert !read_test.nil?, 'Could not find ReadTest Suite'
|
|
28
|
+
metadata = executor.extract_metadata_from_test('ReadTest')
|
|
29
|
+
puts JSON.pretty_generate(metadata)
|
|
30
|
+
assert !metadata.blank?, 'Failed to retrieve ReadTest Suite metadata'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|