plan_executor 1.0.2 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -2
- data/Gemfile +3 -6
- data/Gemfile.lock +52 -48
- data/README.md +2 -2
- data/fixtures/attachment/ccda_pdf.pdf +0 -0
- data/fixtures/attachment/ccda_pdf_base64.txt +2489 -0
- data/fixtures/attachment/ccda_structured.xml +1976 -0
- data/fixtures/attachment/ccda_unstructured.xml +2563 -0
- data/fixtures/daf/conformance-daf-query-responder.xml +2024 -193
- data/fixtures/diagnostic_report/diagnosticreport-familyhistory-create.xml +67 -0
- data/fixtures/diagnostic_report/diagnosticreport-hlatyping-create.xml +64 -0
- data/fixtures/diagnostic_report/diagnosticreport-pathologyreport-create.xml +312 -0
- data/fixtures/diagnostic_report/dr-100.xml +3 -3
- data/fixtures/diagnostic_report/dr-200.xml +5 -5
- data/fixtures/diagnostic_report/dr-300.xml +3 -3
- data/fixtures/diagnostic_report/dr-400.xml +3 -3
- data/fixtures/{diagnostic_order → diagnostic_request}/do-100.xml +57 -64
- data/fixtures/diagnostic_request/do-200.xml +73 -0
- data/fixtures/{diagnostic_order → diagnostic_request}/do-300.xml +73 -91
- data/{lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder → fixtures/diagnostic_request}/do-400.xml +74 -88
- data/fixtures/family_member_history/familymemberhistory-familyhistory-create.xml +27 -0
- data/fixtures/financial/claim-example-oral-average.xml +199 -0
- data/fixtures/financial/claim-example-oral-orthoplan.xml +298 -0
- data/fixtures/financial/claim-example.xml +98 -0
- data/fixtures/financial/eligibilityrequest-example.xml +40 -0
- data/fixtures/observation/obs-401.xml +7 -17
- data/fixtures/observation/obs-402.xml +7 -17
- data/fixtures/observation/obs-403.xml +4 -29
- data/fixtures/observation/obs-407.xml +4 -11
- data/fixtures/observation/observation-datawarehouse-create.xml +72 -0
- data/fixtures/observation/observation-familyhistory-create.xml +61 -0
- data/fixtures/observation/observation-germline-create.xml +72 -0
- data/fixtures/observation/observation-register-create.xml +72 -0
- data/fixtures/patch/medicationrequest-simple.xml +16 -0
- data/fixtures/patient/patient-example-updated.xml +1 -7
- data/fixtures/patient/patient-example-us-extensions.xml +119 -0
- data/fixtures/patient/patient-example.xml +46 -27
- data/fixtures/patient/patient-familyhistory-create.xml +45 -0
- data/fixtures/patient/patient-register-create.xml +47 -0
- data/fixtures/practitioner/practitioner-register-create.xml +32 -0
- data/fixtures/record/condition-example-f201-fever.xml +54 -49
- data/fixtures/record/condition-example-f205-infection.xml +16 -15
- data/fixtures/record/diagnosticreport-example-f201-brainct.xml +45 -18
- data/fixtures/record/encounter-example-f201-20130404.xml +42 -15
- data/fixtures/record/encounter-example-f202-20130128.xml +57 -15
- data/fixtures/record/observation-example-f202-temperature.xml +85 -60
- data/fixtures/record/organization-example-f201-aumc.xml +87 -4
- data/fixtures/record/organization-example-f203-bumc.xml +53 -4
- data/fixtures/record/patient-example-f201-roel.xml +108 -8
- data/fixtures/record/practitioner-example-f201-ab.xml +73 -14
- data/fixtures/record/procedure-example-f201-tpf.xml +39 -9
- data/fixtures/scheduling/slot-simple.xml +1 -1
- data/fixtures/sequence/sequence-register-create.xml +31 -0
- data/fixtures/specimen/spec-100.xml +8 -8
- data/fixtures/specimen/spec-400.xml +11 -11
- data/fixtures/specimen/spec-uslab-example1.xml +11 -11
- data/fixtures/specimen/specimen-familyhistory-create.xml +54 -0
- data/fixtures/specimen/specimen-register-create.xml +49 -0
- data/fixtures/terminology/codesystem-data-types.json +230 -0
- data/fixtures/terminology/codesystem-resource-types.json +482 -0
- data/fixtures/terminology/codesystem-simple.xml +129 -0
- data/fixtures/terminology/conceptmap-example.xml +141 -0
- data/fixtures/terminology/v2-codesystem.json +1297 -0
- data/fixtures/terminology/v2-valueset.json +16 -0
- data/fixtures/terminology/valueset-defined-types.json +25 -0
- data/fixtures/terminology/valueset-example.xml +111 -0
- data/fixtures/validation/observation.profile.xml +1534 -253
- data/fixtures/validation/observations/observation-example.xml +66 -0
- data/lib/FHIR_structure.json +129 -82
- data/lib/daf_resource_generator.rb +7 -7
- data/lib/data/resources.rb +50 -30
- data/lib/ext/client.rb +2 -2
- data/lib/plan_executor.rb +6 -1
- data/lib/resource_generator.rb +413 -212
- data/lib/tasks/tasks.rake +151 -20
- data/lib/tests/assertions.rb +24 -18
- data/lib/tests/base_test.rb +17 -3
- data/lib/tests/suites/argonaut_provider_connectathon_test.rb +234 -0
- data/lib/tests/suites/base_suite.rb +7 -3
- data/lib/tests/suites/connectathon_attachment_track_test.rb +124 -0
- data/lib/tests/suites/connectathon_audit_track.rb +113 -69
- data/lib/tests/suites/connectathon_care_plan_track.rb +237 -0
- data/lib/tests/suites/connectathon_fetch_patient_record.rb +40 -39
- data/lib/tests/suites/connectathon_financial_track.rb +231 -23
- data/lib/tests/suites/connectathon_genomics_track_test.rb +255 -0
- data/lib/tests/suites/connectathon_lab_order_track.rb +131 -104
- data/lib/tests/suites/connectathon_patch_track.rb +125 -0
- data/lib/tests/suites/connectathon_patient_track.rb +75 -68
- data/lib/tests/suites/connectathon_profile_validation.rb +9 -8
- data/lib/tests/suites/connectathon_scheduling_track.rb +127 -70
- data/lib/tests/suites/connectathon_terminology_track.rb +211 -34
- data/lib/tests/suites/daf_profiles_test.rb +112 -72
- data/lib/tests/suites/format_test.rb +113 -255
- data/lib/tests/suites/history_test.rb +72 -68
- data/lib/tests/suites/read_test.rb +31 -27
- data/lib/tests/suites/resource_test.rb +283 -85
- data/lib/tests/suites/search_test.rb +5 -3
- data/lib/tests/suites/search_test_robust.rb +8 -76
- data/lib/tests/suites/sprinkler_search_test.rb +104 -84
- data/lib/tests/suites/suite_engine.rb +17 -23
- data/lib/tests/suites/transaction_test.rb +117 -174
- data/lib/tests/testscripts/base_testscript.rb +425 -189
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Client Assigned Id/connectathon-14-patient-base-client-id-json.xml +517 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Client Assigned Id/connectathon-14-patient-base-client-id-xml.xml +517 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Client Assigned Id/connectathon-14-patient-bonus-client-id-json.xml +648 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Client Assigned Id/connectathon-14-patient-bonus-client-id-xml.xml +648 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/README.html +68 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Server Assigned Id/connectathon-14-patient-base-server-id-json.xml +515 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Server Assigned Id/connectathon-14-patient-base-server-id-xml.xml +515 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Server Assigned Id/connectathon-14-patient-bonus-server-id-json.xml +645 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/Server Assigned Id/connectathon-14-patient-bonus-server-id-xml.xml +642 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/_reference/capabilities/PatientCapabilityStatement.xml +43 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-PeterChalmers-min.json +1 -3
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-PeterChalmers-min.xml +0 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-PeterChalmers.json +5 -10
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-PeterChalmers.xml +5 -5
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-bonus-PeterChalmers-min.json +1 -3
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-bonus-PeterChalmers-min.xml +0 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-bonus-PeterChalmers.json +5 -10
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-create-bonus-PeterChalmers.xml +4 -5
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/_reference/resources/patient-create-client-id-PeterChalmers.json +96 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/_reference/resources/patient-create-client-id-PeterChalmers.xml +103 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/_reference/resources/patient-create-client-id-bonus-PeterChalmers.json +104 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-01-Intro/_reference/resources/patient-create-client-id-bonus-PeterChalmers.xml +108 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-PeterChalmers-min.json +1 -3
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-PeterChalmers-min.xml +0 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-PeterChalmers.json +6 -10
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-PeterChalmers.xml +6 -5
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus1-PeterChalmers-min.json +1 -3
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus1-PeterChalmers-min.xml +0 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus1-PeterChalmers.json +7 -11
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus1-PeterChalmers.xml +5 -5
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus2-PeterChalmers-min.json +2 -4
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus2-PeterChalmers-min.xml +1 -1
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus2-PeterChalmers.json +7 -11
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient → scripts/connectathon/Patient-01-Intro}/_reference/resources/patient-update-bonus2-PeterChalmers.xml +8 -7
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/01-RegisterPatient/connectathon-14-patient-fhirclient-01-register-client-id-xml.xml +306 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/01-RegisterPatient/connectathon-14-patient-fhirclient-01-register-server-id-xml.xml +317 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/02-PatientUpdate/connectathon-14-patient-fhirclient-02-update-client-id-xml.xml +346 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/02-PatientUpdate/connectathon-14-patient-fhirclient-02-update-server-id-xml.xml +385 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/capabilities/PatientCapabilityStatement.json +50 -0
- data/lib/tests/testscripts/{xml/Connectathon11/Track1-Patient/_reference/conformance/PatientConformance.xml → scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/capabilities/PatientCapabilityStatement.xml} +10 -2
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-create-client-id.json +21 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-create-client-id.xml +15 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-create-server-id.json +20 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-create-server-id.xml +14 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-update-client-id.json +21 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-update-client-id.xml +15 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-update-server-id.json +20 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRClient/_reference/resources/patient-update-server-id.xml +14 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/01-RegisterPatient/connectathon-14-patient-fhirserver-01-register-client-id-json.xml +262 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/01-RegisterPatient/connectathon-14-patient-fhirserver-01-register-client-id-xml.xml +262 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/01-RegisterPatient/connectathon-14-patient-fhirserver-01-register-server-id-json.xml +273 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/01-RegisterPatient/connectathon-14-patient-fhirserver-01-register-server-id-xml.xml +273 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/02-PatientUpdate/connectathon-14-patient-fhirserver-02-update-client-id-json.xml +290 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/02-PatientUpdate/connectathon-14-patient-fhirserver-02-update-client-id-xml.xml +290 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/02-PatientUpdate/connectathon-14-patient-fhirserver-02-update-server-id-json.xml +326 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/02-PatientUpdate/connectathon-14-patient-fhirserver-02-update-server-id-xml.xml +326 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/03-PatientRead/connectathon-14-patient-fhirserver-03-read-client-id-json.xml +247 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/03-PatientRead/connectathon-14-patient-fhirserver-03-read-client-id-xml.xml +247 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/03-PatientRead/connectathon-14-patient-fhirserver-03-read-server-id-json.xml +282 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/03-PatientRead/connectathon-14-patient-fhirserver-03-read-server-id-xml.xml +281 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/04-PatientHistory/connectathon-14-patient-fhirserver-04-history-client-id-json.xml +330 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/04-PatientHistory/connectathon-14-patient-fhirserver-04-history-client-id-xml.xml +330 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/04-PatientHistory/connectathon-14-patient-fhirserver-04-history-server-id-json.xml +366 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/04-PatientHistory/connectathon-14-patient-fhirserver-04-history-server-id-xml.xml +366 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/05-PatientVRead/connectathon-14-patient-fhirserver-05-vread-client-id-json.xml +527 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/05-PatientVRead/connectathon-14-patient-fhirserver-05-vread-client-id-xml.xml +527 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/05-PatientVRead/connectathon-14-patient-fhirserver-05-vread-server-id-json.xml +519 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/05-PatientVRead/connectathon-14-patient-fhirserver-05-vread-server-id-xml.xml +519 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/06-PatientSearching/connectathon-14-patient-fhirserver-06-search-client-id-json.xml +290 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/06-PatientSearching/connectathon-14-patient-fhirserver-06-search-client-id-xml.xml +290 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/06-PatientSearching/connectathon-14-patient-fhirserver-06-search-server-id-json.xml +288 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/06-PatientSearching/connectathon-14-patient-fhirserver-06-search-server-id-xml.xml +288 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/07-PatientDeletion/connectathon-14-patient-fhirserver-07-delete-client-id-json.xml +252 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/07-PatientDeletion/connectathon-14-patient-fhirserver-07-delete-client-id-xml.xml +252 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/07-PatientDeletion/connectathon-14-patient-fhirserver-07-delete-server-id-json.xml +284 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/07-PatientDeletion/connectathon-14-patient-fhirserver-07-delete-server-id-xml.xml +284 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/99-PatientAll/connectathon-14-patient-fhirserver-99-all-client-id-json.xml +897 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/99-PatientAll/connectathon-14-patient-fhirserver-99-all-client-id-xml.xml +897 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/99-PatientAll/connectathon-14-patient-fhirserver-99-all-server-id-json.xml +963 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/99-PatientAll/connectathon-14-patient-fhirserver-99-all-server-id-xml.xml +963 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/capabilities/PatientCapabilityStatement.json +50 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/capabilities/PatientCapabilityStatement.xml +42 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-create-client-id.json +86 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-create-client-id.xml +62 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-create-server-id.json +85 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-create-server-id.xml +61 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-update-client-id.json +86 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-update-client-id.xml +62 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-update-server-id.json +86 -0
- data/lib/tests/testscripts/scripts/connectathon/Patient-02-Formal/FHIRServer/_reference/resources/patient-update-server-id.xml +62 -0
- data/lib/tests/testscripts/scripts/spec/_reference/resources/patient-example-update.json +145 -0
- data/lib/tests/testscripts/scripts/spec/_reference/resources/patient-example.json +146 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-history.xml +191 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-multisystem.xml +190 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-readtest.xml +178 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-rule.xml +266 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-search.xml +177 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example-update.xml +163 -0
- data/lib/tests/testscripts/scripts/spec/testscript-example.xml +228 -0
- data/lib/tests/testscripts/testscript_engine.rb +36 -22
- data/logs/.keep +0 -0
- data/plan_executor.gemspec +11 -3
- data/test/test_helper.rb +3 -3
- data/test/unit/fixtures_test.rb +24 -24
- data/test/unit/metadata_test.rb +19 -9
- data/test/unit/resource_generator_test.rb +20 -0
- metadata +244 -249
- data/fixtures/diagnostic_order/do-200.xml +0 -121
- data/fixtures/diagnostic_order/do-400.xml +0 -88
- data/fixtures/financial/claim-example-average.xml +0 -168
- data/fixtures/financial/claim-example-simple.xml +0 -67
- data/fixtures/order/order-100.xml +0 -61
- data/fixtures/order/order-200.xml +0 -61
- data/fixtures/order/order-300.xml +0 -61
- data/fixtures/order/order-400.xml +0 -61
- data/fixtures/order_response/ordresp-100.xml +0 -79
- data/fixtures/order_response/ordresp-110.xml +0 -79
- data/fixtures/order_response/ordresp-200.xml +0 -79
- data/fixtures/order_response/ordresp-210.xml +0 -79
- data/fixtures/order_response/ordresp-300.xml +0 -79
- data/fixtures/order_response/ordresp-310.xml +0 -79
- data/fixtures/order_response/ordresp-400.xml +0 -79
- data/fixtures/order_response/ordresp-410.xml +0 -79
- data/fixtures/patient/patient-example-us-extensions(us01).xml +0 -81
- data/fixtures/patient/patient-format-example.xml +0 -101
- data/fixtures/validation/observations/observation-example(example).xml +0 -50
- data/lib/tests/suites/argonaut_resprint_1_test.rb +0 -260
- data/lib/tests/suites/argonaut_resprint_2_test.rb +0 -369
- data/lib/tests/suites/argonaut_resprint_3_test.rb +0 -309
- data/lib/tests/suites/argonaut_sprint_1_test.rb +0 -187
- data/lib/tests/suites/argonaut_sprint_2_test.rb +0 -115
- data/lib/tests/suites/argonaut_sprint_3_test.rb +0 -208
- data/lib/tests/suites/argonaut_sprint_4_test.rb +0 -335
- data/lib/tests/suites/argonaut_sprint_5_test.rb +0 -196
- data/lib/tests/suites/argonaut_sprint_6_test.rb +0 -243
- data/lib/tests/suites/argonaut_sprint_7_test.rb +0 -161
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-json.xml +0 -348
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-xml.xml +0 -348
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-json.xml +0 -420
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-xml.xml +0 -420
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/README.html +0 -68
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-json.xml +0 -352
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-xml.xml +0 -352
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-json.xml +0 -421
- data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-xml.xml +0 -421
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/C-CDA_R2-1_CCD-ussg.xml +0 -3414
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A1-empty-on-instance.xml +0 -9
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A2-empty-by-ref.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A3-empty-by-identifier.xml +0 -13
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A4-empty-by-contained.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B1-CCDA-on-instance.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B2-CCDA-by-ref.xml +0 -21
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B3-CCDA-by-identifier.xml +0 -19
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B4-CCDA-by-contained.xml +0 -21
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaire-sdc-profile-example-ussg-fht.xml +0 -3905
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-CCDA.xml +0 -190
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-empty.xml +0 -177
- data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/track11-sdc-prepop-xml.xml +0 -142
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite1-expand-client-id.xml +0 -925
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite2-expand-filter-client-id.xml +0 -930
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite1-expand-server-id.xml +0 -953
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite2-expand-filter-server-id.xml +0 -958
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-loinc-lookup-xml.xml +0 -224
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-snomed-lookup-xml.xml +0 -224
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/README.html +0 -85
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Translate/track2-ts-suite6-translate-xml.xml +0 -224
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite3-validate-code-client-id.xml +0 -1807
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite4-validate-code-client-id.xml +0 -714
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite3-validate-code-server-id.xml +0 -1835
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite4-validate-code-server-id.xml +0 -742
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ConceptMapSuite6Conformance.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite1Conformance.xml +0 -17
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite2Conformance.xml +0 -17
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite3Conformance.xml +0 -14
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite4Conformance.xml +0 -14
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite5Conformance.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-a.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-b.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-a.xml +0 -13
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-b.xml +0 -13
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-a.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-b.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-2.xml +0 -10
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-3.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-2.xml +0 -10
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-3.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-2.xml +0 -14
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-3.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-expand-min.xml +0 -47
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-filter-min.xml +0 -23
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-expand-min.xml +0 -132
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-filter-min.xml +0 -38
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-expand-min.xml +0 -252
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-filter-min.xml +0 -58
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-expand-min.xml +0 -57
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-filter-min.xml +0 -28
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-expand-min.xml +0 -347
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-filter-min.xml +0 -33
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-expand-min.xml +0 -637
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-filter-min.xml +0 -33
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-3-filter-min.xml +0 -58
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-loinc-min.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-snomed-min.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-invalid-min.xml +0 -10
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-valid-min.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-invalid-min.xml +0 -10
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-valid-min.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/translate-conceptmap-min.xml +0 -17
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-1.xml +0 -55
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-2.xml +0 -122
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-3.xml +0 -222
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-4.xml +0 -65
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-1.xml +0 -31
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-2.xml +0 -31
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-3.xml +0 -31
- data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/translate-conceptmap-case-1.xml +0 -145
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/conformance/DecisionSupportServiceModule-Evaluate.xml +0 -17
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-request-payload.xml +0 -26
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-min-payload.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-payload.xml +0 -332
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-request-payload.xml +0 -28
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-min-payload.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-payload.xml +0 -20
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-request-payload.xml +0 -28
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-min-payload.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-payload.xml +0 -332
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-request-payload.xml +0 -28
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-min-payload.xml +0 -7
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-payload.xml +0 -8
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-request-payload.xml +0 -176
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload-min.xml +0 -32
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload.xml +0 -80
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-cdc-immunization.xml +0 -290
- data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-gao-profile.xml +0 -110
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/Client_Assigned_Id/TestScript_FHIR-Genomics.xml +0 -170
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-1.xml +0 -31
- data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-2.xml +0 -31
- 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 +0 -590
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder200-xml.xml +0 -587
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder300-xml.xml +0 -612
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder400-xml.xml +0 -635
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Peer-to-Peer/track7-laborder100-peer2peer-xml.xml +0 -752
- 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 +0 -187
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/conformance/html.xslt +0 -45
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100-update.xml +0 -64
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100.xml +0 -64
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200-update.xml +0 -121
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200.xml +0 -121
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300-update.xml +0 -91
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300.xml +0 -91
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-400-update.xml +0 -88
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-100.xml +0 -96
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-200.xml +0 -125
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-300.xml +0 -132
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-400.xml +0 -121
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-100.xml +0 -58
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-101.xml +0 -58
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-200.xml +0 -125
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-300.xml +0 -106
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-301.xml +0 -106
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-302.xml +0 -106
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-303.xml +0 -106
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-304.xml +0 -106
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-400.xml +0 -87
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-401.xml +0 -95
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-402.xml +0 -95
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-403.xml +0 -84
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-404.xml +0 -84
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-405.xml +0 -83
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-406.xml +0 -83
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-407.xml +0 -70
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-408.xml +0 -84
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-uslab-example5.xml +0 -102
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-100.xml +0 -61
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-200.xml +0 -61
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-300.xml +0 -61
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-400.xml +0 -61
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-100.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-110.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-200.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-210.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-300.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-310.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-400.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-410.xml +0 -79
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Organization/org-uslab-example3.xml +0 -49
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Patient/patient-uslab-example1.xml +0 -44
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example1.xml +0 -18
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example3.xml +0 -36
- 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 +0 -65
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-400.xml +0 -70
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-uslab-example1.xml +0 -82
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 1 Document.txt +0 -122
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 2 Document.txt +0 -103
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 3 Document.txt +0 -201
- data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 4 Document.txt +0 -310
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/MedicationStatementCreate.xml +0 -11
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/PatientSearchType.xml +0 -15
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-create.json +0 -39
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-patch.json +0 -3
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json-if-match.xml +0 -321
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json.xml +0 -303
- data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-peer2peer-patient-json.xml +0 -235
- data/test/fixtures/testscript-example.xml +0 -202
- data/test/fixtures/testscript-history.xml +0 -143
- data/test/fixtures/testscript-readtest.xml +0 -272
- data/test/fixtures/testscript-search.xml +0 -282
- data/test/fixtures/testscript-update.xml +0 -147
- data/test/unit/argonaut_sprint6_test.rb +0 -31
- data/test/unit/argonaut_sprint7_test.rb +0 -21
- data/test/unit/basic_test.rb +0 -27
- data/test/unit/fetch_patient_record_test.rb +0 -357
- data/test/unit/financial_test.rb +0 -41
|
@@ -13,7 +13,7 @@ module Crucible
|
|
|
13
13
|
{"SearchTest_#{@resource_class.name.demodulize}" => execute_test_methods}
|
|
14
14
|
else
|
|
15
15
|
results = {}
|
|
16
|
-
fhir_resources.each do | klass |
|
|
16
|
+
Crucible::Tests::BaseSuite.fhir_resources.each do | klass |
|
|
17
17
|
@resource_class = klass
|
|
18
18
|
results.merge!({"SearchTest_#{@resource_class.name.demodulize}" => execute_test_methods})
|
|
19
19
|
end
|
|
@@ -56,14 +56,14 @@ module Crucible
|
|
|
56
56
|
# 3. Perform suite of tests against each resource.
|
|
57
57
|
#
|
|
58
58
|
def setup
|
|
59
|
-
@conformance = @client.
|
|
59
|
+
@conformance = @client.conformance_statement if @conformance.nil?
|
|
60
60
|
|
|
61
61
|
@canSearchById = false
|
|
62
62
|
|
|
63
63
|
unless @conformance.nil?
|
|
64
64
|
@conformance.rest.each do |rest|
|
|
65
65
|
rest.resource.each do |resource|
|
|
66
|
-
@searchParams = resource.searchParam if(resource.
|
|
66
|
+
@searchParams = resource.searchParam if(resource.type.downcase == "#{@resource_class.name.demodulize.downcase}" )
|
|
67
67
|
end
|
|
68
68
|
end
|
|
69
69
|
end
|
|
@@ -203,6 +203,8 @@ module Crucible
|
|
|
203
203
|
count = (reply.resource.total-replyB.resource.total).abs
|
|
204
204
|
assert (count <= 1), 'Searching without criteria did not return all the results.'
|
|
205
205
|
else
|
|
206
|
+
assert !replyB.resource.nil?, 'Searching without criteria did not return all the results.'
|
|
207
|
+
assert !reply.resource.nil?, 'Searching without criteria did not return all the results.'
|
|
206
208
|
assert_equal replyB.resource.total, reply.resource.total, 'Searching without criteria did not return all the results.'
|
|
207
209
|
end
|
|
208
210
|
end
|
|
@@ -16,84 +16,16 @@ module Crucible
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def setup
|
|
19
|
-
# Create a patient
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
@patient
|
|
24
|
-
|
|
25
|
-
@patient_id = result.id
|
|
26
|
-
|
|
27
|
-
# read all the patients
|
|
28
|
-
@read_entire_feed=true
|
|
29
|
-
@client.use_format_param = true
|
|
30
|
-
reply = @client.read_feed(FHIR::Patient)
|
|
31
|
-
@read_entire_feed=false if (!reply.nil? && reply.code!=200)
|
|
32
|
-
@total_count = 0
|
|
33
|
-
@entries = []
|
|
34
|
-
|
|
35
|
-
while reply != nil && !reply.resource.nil?
|
|
36
|
-
@total_count += reply.resource.entry.size
|
|
37
|
-
@entries += reply.resource.entry
|
|
38
|
-
reply = @client.next_page(reply)
|
|
39
|
-
@read_entire_feed=false if (!reply.nil? && reply.code!=200)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# create a condition matching the first patient
|
|
43
|
-
@condition = ResourceGenerator.generate(FHIR::Condition,1)
|
|
44
|
-
@condition['patient'] = ResourceGenerator.generate(FHIR::Reference)
|
|
45
|
-
@condition.patient.xmlId = @entries.try(:[],0).try(:resource).try(:xmlId)
|
|
46
|
-
options = {
|
|
47
|
-
:id => @entries.try(:[],0).try(:resource).try(:xmlId),
|
|
48
|
-
:resource => @entries.try(:[],0).try(:resource).try(:class)
|
|
49
|
-
}
|
|
50
|
-
temp = @client.use_format_param
|
|
51
|
-
@client.use_format_param = false
|
|
52
|
-
patient_url = @client.resource_url(options)
|
|
53
|
-
patient_url = patient_url[1..-1] if patient_url[0]=='/'
|
|
54
|
-
@client.use_format_param = temp
|
|
55
|
-
@condition.patient.reference = patient_url
|
|
56
|
-
reply = @client.create(@condition)
|
|
57
|
-
@condition_id = reply.id
|
|
58
|
-
|
|
59
|
-
# create some observations
|
|
60
|
-
@obs_a = create_observation(4.12345)
|
|
61
|
-
@obs_b = create_observation(4.12346)
|
|
62
|
-
@obs_c = create_observation(4.12349)
|
|
63
|
-
@obs_d = create_observation(5.12)
|
|
64
|
-
@obs_e = create_observation(6.12)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def create_observation(value)
|
|
68
|
-
observation = FHIR::Observation.new
|
|
69
|
-
observation.status = 'preliminary'
|
|
70
|
-
code = FHIR::Coding.new
|
|
71
|
-
code.system = 'http://loinc.org'
|
|
72
|
-
code.code = '2164-2'
|
|
73
|
-
observation.code = FHIR::CodeableConcept.new
|
|
74
|
-
observation.code.coding = [ code ]
|
|
75
|
-
observation.valueQuantity = FHIR::Quantity.new
|
|
76
|
-
observation.valueQuantity.system = 'http://unitofmeasure.org'
|
|
77
|
-
observation.valueQuantity.value = value
|
|
78
|
-
observation.valueQuantity.unit = 'mmol'
|
|
79
|
-
body = FHIR::Coding.new
|
|
80
|
-
body.system = 'http://snomed.info/sct'
|
|
81
|
-
body.code = '182756003'
|
|
82
|
-
observation.bodySite = FHIR::CodeableConcept.new
|
|
83
|
-
observation.bodySite.coding = [ body ]
|
|
84
|
-
reply = @client.create(observation)
|
|
85
|
-
reply.id
|
|
19
|
+
# Create a patient
|
|
20
|
+
patient = Crucible::Generator::Resources.new.minimal_patient
|
|
21
|
+
patient.identifier = [FHIR::Identifier.new]
|
|
22
|
+
patient.identifier[0].value = SecureRandom.urlsafe_base64
|
|
23
|
+
ignore_client_exception { @patient = FHIR::Patient.create(patient) }
|
|
24
|
+
assert @patient, "Response code #{@client.reply.code} on patient creation."
|
|
86
25
|
end
|
|
87
26
|
|
|
88
27
|
def teardown
|
|
89
|
-
@
|
|
90
|
-
@client.destroy(FHIR::Patient, @patient_id) if @patient_id
|
|
91
|
-
@client.destroy(FHIR::Condition, @condition_id) if @condition_id
|
|
92
|
-
@client.destroy(FHIR::Observation, @obs_a) if @obs_a
|
|
93
|
-
@client.destroy(FHIR::Observation, @obs_b) if @obs_b
|
|
94
|
-
@client.destroy(FHIR::Observation, @obs_c) if @obs_c
|
|
95
|
-
@client.destroy(FHIR::Observation, @obs_d) if @obs_d
|
|
96
|
-
@client.destroy(FHIR::Observation, @obs_e) if @obs_e
|
|
28
|
+
ignore_client_exception { @patient.destroy }
|
|
97
29
|
end
|
|
98
30
|
|
|
99
31
|
[true,false].each do |flag|
|
|
@@ -127,7 +59,7 @@ module Crucible
|
|
|
127
59
|
entry_has_mpi_data = false
|
|
128
60
|
if entry.search
|
|
129
61
|
entry.search.extension.each do |e|
|
|
130
|
-
if (e.url=='http://hl7.org/fhir/StructureDefinition/patient-mpi-match' && e.value &&
|
|
62
|
+
if (e.url=='http://hl7.org/fhir/StructureDefinition/patient-mpi-match' && e.value && ['certain','probable','possible','certainly-not'].include?(e.valueCode))
|
|
131
63
|
entry_has_mpi_data = true
|
|
132
64
|
end
|
|
133
65
|
end
|
|
@@ -23,6 +23,7 @@ module Crucible
|
|
|
23
23
|
@patient = @resources.minimal_patient
|
|
24
24
|
@patient.identifier = [FHIR::Identifier.new]
|
|
25
25
|
@patient.identifier[0].value = SecureRandom.urlsafe_base64
|
|
26
|
+
@patient.gender = nil
|
|
26
27
|
result = @client.create(@patient)
|
|
27
28
|
@patient_id = result.id
|
|
28
29
|
|
|
@@ -42,30 +43,18 @@ module Crucible
|
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
# create a condition matching the first patient
|
|
45
|
-
@condition = ResourceGenerator.generate(FHIR::Condition,
|
|
46
|
-
@condition
|
|
47
|
-
@condition.patient.xmlId = @entries.try(:[],0).try(:resource).try(:xmlId)
|
|
48
|
-
options = {
|
|
49
|
-
:id => @entries.try(:[],0).try(:resource).try(:xmlId),
|
|
50
|
-
:resource => @entries.try(:[],0).try(:resource).try(:class)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
temp = @client.use_format_param
|
|
54
|
-
@client.use_format_param = false
|
|
55
|
-
patient_url = @client.resource_url(options)
|
|
56
|
-
patient_url = patient_url[1..-1] if patient_url[0]=='/'
|
|
57
|
-
@condition.patient.reference = patient_url
|
|
58
|
-
@client.use_format_param = temp
|
|
59
|
-
|
|
46
|
+
@condition = ResourceGenerator.generate(FHIR::Condition,3)
|
|
47
|
+
@condition.subject = @entries.first.try(:resource).try(:to_reference)
|
|
60
48
|
reply = @client.create(@condition)
|
|
61
49
|
@condition_id = reply.id
|
|
62
50
|
|
|
63
51
|
# create some observations
|
|
64
|
-
@obs_a = create_observation(
|
|
65
|
-
@obs_b = create_observation(
|
|
66
|
-
@obs_c = create_observation(
|
|
67
|
-
@obs_d = create_observation(
|
|
68
|
-
@obs_e = create_observation(
|
|
52
|
+
@obs_a = create_observation(2.0)
|
|
53
|
+
@obs_b = create_observation(1.96)
|
|
54
|
+
@obs_c = create_observation(2.04)
|
|
55
|
+
@obs_d = create_observation(1.80)
|
|
56
|
+
@obs_e = create_observation(5.12)
|
|
57
|
+
@obs_f = create_observation(6.12)
|
|
69
58
|
end
|
|
70
59
|
|
|
71
60
|
def create_observation(value)
|
|
@@ -98,6 +87,7 @@ module Crucible
|
|
|
98
87
|
@client.destroy(FHIR::Observation, @obs_c) if @obs_c
|
|
99
88
|
@client.destroy(FHIR::Observation, @obs_d) if @obs_d
|
|
100
89
|
@client.destroy(FHIR::Observation, @obs_e) if @obs_e
|
|
90
|
+
@client.destroy(FHIR::Observation, @obs_f) if @obs_f
|
|
101
91
|
end
|
|
102
92
|
|
|
103
93
|
[true,false].each do |flag|
|
|
@@ -139,7 +129,7 @@ module Crucible
|
|
|
139
129
|
}
|
|
140
130
|
}
|
|
141
131
|
reply = @client.search_all(options)
|
|
142
|
-
assert( (reply.code >= 400 && reply.code < 600), 'If the search fails, the return value should be status code 4xx or 5xx.', reply
|
|
132
|
+
assert( (reply.code >= 400 && reply.code < 600), 'If the search fails, the return value should be status code 4xx or 5xx.', reply)
|
|
143
133
|
end
|
|
144
134
|
|
|
145
135
|
test "SE03#{action[0]}",'Search patient resource on partial family surname' do
|
|
@@ -150,8 +140,8 @@ module Crucible
|
|
|
150
140
|
validates resource: "Patient", methods: ["search"]
|
|
151
141
|
}
|
|
152
142
|
skip unless @read_entire_feed
|
|
153
|
-
search_string = @patient.name[0].family[0
|
|
154
|
-
search_regex = Regexp.new(search_string)
|
|
143
|
+
search_string = @patient.name[0].family[0..2]
|
|
144
|
+
search_regex = Regexp.new(search_string, Regexp::IGNORECASE)
|
|
155
145
|
# how many patients in the bundle have matching names?
|
|
156
146
|
expected = 0
|
|
157
147
|
@entries.each do |entry|
|
|
@@ -160,10 +150,8 @@ module Crucible
|
|
|
160
150
|
if !patient.nil? && !patient.name.nil?
|
|
161
151
|
patient.name.each do |name|
|
|
162
152
|
if !name.family.nil?
|
|
163
|
-
name.family
|
|
164
|
-
|
|
165
|
-
isMatch = true
|
|
166
|
-
end
|
|
153
|
+
if !(name.family =~ search_regex).nil?
|
|
154
|
+
isMatch = true
|
|
167
155
|
end
|
|
168
156
|
end
|
|
169
157
|
end
|
|
@@ -183,7 +171,7 @@ module Crucible
|
|
|
183
171
|
reply = @client.search(FHIR::Patient, options)
|
|
184
172
|
assert_response_ok(reply)
|
|
185
173
|
assert_bundle_response(reply)
|
|
186
|
-
assert_equal expected, reply.resource.total, 'The server did not report the
|
|
174
|
+
assert_equal expected, reply.resource.total, 'The server did not report the expected number of results.'
|
|
187
175
|
end
|
|
188
176
|
|
|
189
177
|
test "SE04#{action[0]}", 'Search patient resource on given name' do
|
|
@@ -195,7 +183,7 @@ module Crucible
|
|
|
195
183
|
}
|
|
196
184
|
skip unless @read_entire_feed
|
|
197
185
|
search_string = @patient.name[0].given[0]
|
|
198
|
-
search_regex = Regexp.new(search_string)
|
|
186
|
+
search_regex = Regexp.new(search_string, Regexp::IGNORECASE)
|
|
199
187
|
# how many patients in the bundle have matching names?
|
|
200
188
|
expected = 0
|
|
201
189
|
@entries.each do |entry|
|
|
@@ -227,7 +215,7 @@ module Crucible
|
|
|
227
215
|
reply = @client.search(FHIR::Patient, options)
|
|
228
216
|
assert_response_ok(reply)
|
|
229
217
|
assert_bundle_response(reply)
|
|
230
|
-
assert_equal expected, reply.resource.total, 'The server did not report the
|
|
218
|
+
assert_equal expected, reply.resource.total, 'The server did not report the expected number of results.'
|
|
231
219
|
end
|
|
232
220
|
|
|
233
221
|
test "SE05.0#{action[0]}", 'Search condition by patient reference url (partial)' do
|
|
@@ -239,31 +227,22 @@ module Crucible
|
|
|
239
227
|
}
|
|
240
228
|
skip unless @read_entire_feed
|
|
241
229
|
# pick some search parameters... we previously created
|
|
242
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
243
|
-
options = {
|
|
244
|
-
:id => @entries[0].resource.xmlId,
|
|
245
|
-
:resource => @entries[0].resource.class
|
|
246
|
-
}
|
|
247
|
-
temp = @client.use_format_param
|
|
248
|
-
@client.use_format_param = false
|
|
249
|
-
patient_url = @client.resource_url(options)
|
|
250
|
-
patient_url = patient_url[1..-1] if patient_url[0]=='/'
|
|
251
|
-
@client.use_format_param = temp
|
|
252
|
-
|
|
253
230
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
254
231
|
options = {
|
|
255
232
|
:search => {
|
|
256
233
|
:flag => flag,
|
|
257
234
|
:compartment => nil,
|
|
258
235
|
:parameters => {
|
|
259
|
-
'patient' =>
|
|
236
|
+
'patient' => @entries.first.resource.to_reference.reference
|
|
260
237
|
}
|
|
261
238
|
}
|
|
262
239
|
}
|
|
263
240
|
reply = @client.search(FHIR::Condition, options)
|
|
264
241
|
assert_response_ok(reply)
|
|
265
242
|
assert_bundle_response(reply)
|
|
266
|
-
|
|
243
|
+
reply.resource.entry.each do |e|
|
|
244
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
245
|
+
end
|
|
267
246
|
end
|
|
268
247
|
|
|
269
248
|
test "SE05.0F#{action[0]}", 'Search condition by patient reference url (full)' do
|
|
@@ -275,9 +254,8 @@ module Crucible
|
|
|
275
254
|
}
|
|
276
255
|
skip unless @read_entire_feed
|
|
277
256
|
# pick some search parameters... we previously created
|
|
278
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
279
257
|
options = {
|
|
280
|
-
:id => @entries[0].resource.
|
|
258
|
+
:id => @entries[0].resource.id,
|
|
281
259
|
:resource => @entries[0].resource.class
|
|
282
260
|
}
|
|
283
261
|
temp = @client.use_format_param
|
|
@@ -298,7 +276,9 @@ module Crucible
|
|
|
298
276
|
reply = @client.search(FHIR::Condition, options)
|
|
299
277
|
assert_response_ok(reply)
|
|
300
278
|
assert_bundle_response(reply)
|
|
301
|
-
|
|
279
|
+
reply.resource.entry.each do |e|
|
|
280
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
281
|
+
end
|
|
302
282
|
end
|
|
303
283
|
|
|
304
284
|
test "SE05.1#{action[0]}", 'Search condition by patient reference id' do
|
|
@@ -310,8 +290,7 @@ module Crucible
|
|
|
310
290
|
}
|
|
311
291
|
skip unless @read_entire_feed
|
|
312
292
|
# pick some search parameters... we previously created
|
|
313
|
-
|
|
314
|
-
patient_id = @entries[0].resource.xmlId
|
|
293
|
+
patient_id = @entries[0].resource.id
|
|
315
294
|
|
|
316
295
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
317
296
|
options = {
|
|
@@ -326,7 +305,9 @@ module Crucible
|
|
|
326
305
|
reply = @client.search(FHIR::Condition, options)
|
|
327
306
|
assert_response_ok(reply)
|
|
328
307
|
assert_bundle_response(reply)
|
|
329
|
-
|
|
308
|
+
reply.resource.entry.each do |e|
|
|
309
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
310
|
+
end
|
|
330
311
|
end
|
|
331
312
|
|
|
332
313
|
test "SE05.2#{action[0]}", 'Search condition by patient:Patient reference url' do
|
|
@@ -338,9 +319,8 @@ module Crucible
|
|
|
338
319
|
}
|
|
339
320
|
skip unless @read_entire_feed
|
|
340
321
|
# pick some search parameters... we previously created
|
|
341
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
342
322
|
options = {
|
|
343
|
-
:id => @entries[0].resource.
|
|
323
|
+
:id => @entries[0].resource.id,
|
|
344
324
|
:resource => @entries[0].resource.class
|
|
345
325
|
}
|
|
346
326
|
temp = @client.use_format_param
|
|
@@ -362,7 +342,9 @@ module Crucible
|
|
|
362
342
|
reply = @client.search(FHIR::Condition, options)
|
|
363
343
|
assert_response_ok(reply)
|
|
364
344
|
assert_bundle_response(reply)
|
|
365
|
-
|
|
345
|
+
reply.resource.entry.each do |e|
|
|
346
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
347
|
+
end
|
|
366
348
|
end
|
|
367
349
|
|
|
368
350
|
test "SE05.3#{action[0]}", 'Search condition by patient:Patient reference id' do
|
|
@@ -374,9 +356,8 @@ module Crucible
|
|
|
374
356
|
}
|
|
375
357
|
skip unless @read_entire_feed
|
|
376
358
|
# pick some search parameters... we previously created
|
|
377
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
378
359
|
patient = @entries[0].resource
|
|
379
|
-
patient_id = @entries[0].resource.
|
|
360
|
+
patient_id = @entries[0].resource.id
|
|
380
361
|
|
|
381
362
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
382
363
|
options = {
|
|
@@ -391,7 +372,9 @@ module Crucible
|
|
|
391
372
|
reply = @client.search(FHIR::Condition, options)
|
|
392
373
|
assert_response_ok(reply)
|
|
393
374
|
assert_bundle_response(reply)
|
|
394
|
-
|
|
375
|
+
reply.resource.entry.each do |e|
|
|
376
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
377
|
+
end
|
|
395
378
|
end
|
|
396
379
|
|
|
397
380
|
test "SE05.4#{action[0]}", 'Search condition by patient:_id reference' do
|
|
@@ -403,8 +386,7 @@ module Crucible
|
|
|
403
386
|
}
|
|
404
387
|
skip unless @read_entire_feed
|
|
405
388
|
# pick some search parameters... we previously created
|
|
406
|
-
|
|
407
|
-
patient_id = @entries[0].resource.xmlId
|
|
389
|
+
patient_id = @entries[0].resource.id
|
|
408
390
|
|
|
409
391
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
410
392
|
options = {
|
|
@@ -419,10 +401,12 @@ module Crucible
|
|
|
419
401
|
reply = @client.search(FHIR::Condition, options)
|
|
420
402
|
assert_response_ok(reply)
|
|
421
403
|
assert_bundle_response(reply)
|
|
422
|
-
|
|
404
|
+
reply.resource.entry.each do |e|
|
|
405
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
406
|
+
end
|
|
423
407
|
end
|
|
424
408
|
|
|
425
|
-
test "SE05.5#{action[0]}", 'Search condition by patient
|
|
409
|
+
test "SE05.5#{action[0]}", 'Search condition by patient.name reference' do
|
|
426
410
|
metadata {
|
|
427
411
|
links "#{REST_SPEC_LINK}#search"
|
|
428
412
|
links "#{BASE_SPEC_LINK}/search.html"
|
|
@@ -431,8 +415,7 @@ module Crucible
|
|
|
431
415
|
}
|
|
432
416
|
skip unless @read_entire_feed
|
|
433
417
|
# pick some search parameters... we previously created
|
|
434
|
-
|
|
435
|
-
patient_name = @patient.name[0].family[0]
|
|
418
|
+
patient_name = @patient.name[0].family
|
|
436
419
|
|
|
437
420
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
438
421
|
options = {
|
|
@@ -447,10 +430,12 @@ module Crucible
|
|
|
447
430
|
reply = @client.search(FHIR::Condition, options)
|
|
448
431
|
assert_response_ok(reply)
|
|
449
432
|
assert_bundle_response(reply)
|
|
450
|
-
|
|
433
|
+
reply.resource.entry.each do |e|
|
|
434
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
435
|
+
end
|
|
451
436
|
end
|
|
452
437
|
|
|
453
|
-
test "SE05.6#{action[0]}", 'Search condition by patient
|
|
438
|
+
test "SE05.6#{action[0]}", 'Search condition by patient.identifier reference' do
|
|
454
439
|
metadata {
|
|
455
440
|
links "#{REST_SPEC_LINK}#search"
|
|
456
441
|
links "#{BASE_SPEC_LINK}/search.html"
|
|
@@ -459,7 +444,6 @@ module Crucible
|
|
|
459
444
|
}
|
|
460
445
|
skip unless @patient_id
|
|
461
446
|
# pick some search parameters... we previously created
|
|
462
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
463
447
|
patient_identifier = @patient.identifier[0].value
|
|
464
448
|
|
|
465
449
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
@@ -475,7 +459,9 @@ module Crucible
|
|
|
475
459
|
reply = @client.search(FHIR::Condition, options)
|
|
476
460
|
assert_response_ok(reply)
|
|
477
461
|
assert_bundle_response(reply)
|
|
478
|
-
|
|
462
|
+
reply.resource.entry.each do |e|
|
|
463
|
+
assert((e.resource.subject.reference == @entries.first.resource.to_reference.reference),"The search returned a Condition that doesn't match the Patient.")
|
|
464
|
+
end
|
|
479
465
|
end
|
|
480
466
|
|
|
481
467
|
test "SE06#{action[0]}", 'Search condition and _include' do
|
|
@@ -485,10 +471,7 @@ module Crucible
|
|
|
485
471
|
links "#{BASE_SPEC_LINK}/condition.html#search"
|
|
486
472
|
validates resource: "Condition", methods: ["search"]
|
|
487
473
|
}
|
|
488
|
-
skip unless @
|
|
489
|
-
# pick some search parameters... we previously created
|
|
490
|
-
# a condition for the first (0-index) patient in the setup method.
|
|
491
|
-
patient_identifier = @patient.identifier[0].value
|
|
474
|
+
skip unless @condition_id
|
|
492
475
|
|
|
493
476
|
# next, we're going execute a series of searches for conditions referencing the patient
|
|
494
477
|
options = {
|
|
@@ -496,7 +479,8 @@ module Crucible
|
|
|
496
479
|
:flag => flag,
|
|
497
480
|
:compartment => nil,
|
|
498
481
|
:parameters => {
|
|
499
|
-
'_include' => 'Condition:patient'
|
|
482
|
+
'_include' => 'Condition:patient',
|
|
483
|
+
'_id' => @condition_id
|
|
500
484
|
}
|
|
501
485
|
}
|
|
502
486
|
}
|
|
@@ -506,11 +490,42 @@ module Crucible
|
|
|
506
490
|
assert reply.resource.total > 0, 'The server should have Conditions that _include=Condition:patient.'
|
|
507
491
|
has_patient = false
|
|
508
492
|
reply.resource.entry.each do |entry|
|
|
509
|
-
has_patient = true if (entry.
|
|
493
|
+
has_patient = true if (entry.resource && entry.resource.class == FHIR::Patient)
|
|
510
494
|
end
|
|
511
495
|
assert(has_patient,'The server did not include the Patient referenced in the Condition.', reply.body)
|
|
512
496
|
end
|
|
513
497
|
|
|
498
|
+
test "SE07#{action[0]}", 'Search patient and _revinclude' do
|
|
499
|
+
metadata {
|
|
500
|
+
links "#{REST_SPEC_LINK}#search"
|
|
501
|
+
links "#{BASE_SPEC_LINK}/search.html"
|
|
502
|
+
links "#{BASE_SPEC_LINK}/patient.html#search"
|
|
503
|
+
validates resource: "Patient", methods: ["search"]
|
|
504
|
+
}
|
|
505
|
+
skip unless @patient_id
|
|
506
|
+
|
|
507
|
+
# next, we're going execute a series of searches for conditions referencing the patient
|
|
508
|
+
options = {
|
|
509
|
+
:search => {
|
|
510
|
+
:flag => flag,
|
|
511
|
+
:compartment => nil,
|
|
512
|
+
:parameters => {
|
|
513
|
+
'_revinclude' => 'Condition:patient',
|
|
514
|
+
'_id' => @patient_id
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
reply = @client.search(FHIR::Patient, options)
|
|
519
|
+
assert_response_ok(reply)
|
|
520
|
+
assert_bundle_response(reply)
|
|
521
|
+
assert reply.resource.total > 0, 'The server should have Patients that are _revinclude=Condition:patient.'
|
|
522
|
+
has_condition = false
|
|
523
|
+
reply.resource.entry.each do |entry|
|
|
524
|
+
has_condition = true if (entry.resource && entry.resource.class == FHIR::Condition)
|
|
525
|
+
end
|
|
526
|
+
assert(has_condition,'The server did not include the Condition referencing the Patient.', reply.body)
|
|
527
|
+
end
|
|
528
|
+
|
|
514
529
|
test "SE21#{action[0]}", 'Search for quantity (in observation) - precision tests' do
|
|
515
530
|
metadata {
|
|
516
531
|
links "#{REST_SPEC_LINK}#search"
|
|
@@ -518,31 +533,33 @@ module Crucible
|
|
|
518
533
|
links "#{BASE_SPEC_LINK}/observation.html#search"
|
|
519
534
|
validates resource: "Observation", methods: ["search"]
|
|
520
535
|
}
|
|
521
|
-
skip unless (@obs_a && @obs_b && @obs_c)
|
|
536
|
+
skip unless (@obs_a && @obs_b && @obs_c && @obs_d)
|
|
522
537
|
|
|
523
538
|
options = {
|
|
524
539
|
:search => {
|
|
525
540
|
:flag => flag,
|
|
526
541
|
:compartment => nil,
|
|
527
542
|
:parameters => {
|
|
528
|
-
'value-quantity' => '
|
|
543
|
+
'value-quantity' => '2.0||mmol'
|
|
529
544
|
}
|
|
530
545
|
}
|
|
531
546
|
}
|
|
532
547
|
reply = @client.search(FHIR::Observation, options)
|
|
533
|
-
has_obs_a = has_obs_b = has_obs_c = false
|
|
548
|
+
has_obs_a = has_obs_b = has_obs_c = has_obs_d = false
|
|
534
549
|
while reply != nil
|
|
535
550
|
assert_response_ok(reply)
|
|
536
551
|
assert_bundle_response(reply)
|
|
537
552
|
has_obs_a = true if reply.resource.get_by_id(@obs_a)
|
|
538
553
|
has_obs_b = true if reply.resource.get_by_id(@obs_b)
|
|
539
554
|
has_obs_c = true if reply.resource.get_by_id(@obs_c)
|
|
555
|
+
has_obs_d = true if reply.resource.get_by_id(@obs_d)
|
|
540
556
|
reply = @client.next_page(reply)
|
|
541
557
|
end
|
|
542
558
|
|
|
543
|
-
assert has_obs_a, 'Search on quantity value
|
|
544
|
-
assert
|
|
545
|
-
assert
|
|
559
|
+
assert has_obs_a, 'Search on quantity value 2.0 should return 2.0'
|
|
560
|
+
assert has_obs_b, 'Search on quantity value 2.0 should return 1.96'
|
|
561
|
+
assert has_obs_c, 'Search on quantity value 2.0 should return 2.04'
|
|
562
|
+
assert !has_obs_d, 'Search on quantity value 2.0 should not return 1.80'
|
|
546
563
|
end
|
|
547
564
|
|
|
548
565
|
test "SE22#{action[0]}", 'Search for quantity (in observation) - operators' do
|
|
@@ -552,7 +569,7 @@ module Crucible
|
|
|
552
569
|
links "#{BASE_SPEC_LINK}/observation.html#search"
|
|
553
570
|
validates resource: "Observation", methods: ["search"]
|
|
554
571
|
}
|
|
555
|
-
skip unless (@obs_a && @
|
|
572
|
+
skip unless (@obs_a && @obs_e && @obs_f)
|
|
556
573
|
|
|
557
574
|
options = {
|
|
558
575
|
:search => {
|
|
@@ -564,19 +581,22 @@ module Crucible
|
|
|
564
581
|
}
|
|
565
582
|
}
|
|
566
583
|
reply = @client.search(FHIR::Observation, options)
|
|
567
|
-
|
|
584
|
+
has_obs_e = has_obs_f = false
|
|
568
585
|
while reply != nil
|
|
569
586
|
assert_response_ok(reply)
|
|
570
587
|
assert_bundle_response(reply)
|
|
571
|
-
|
|
572
|
-
|
|
588
|
+
reply.resource.entry.each do |e|
|
|
589
|
+
value = e.resource.value.try(:value)
|
|
590
|
+
assert(value, "Search did not return a value.")
|
|
591
|
+
assert((value > 5), "Search should not return values less than or equal to 5.")
|
|
592
|
+
end
|
|
573
593
|
has_obs_e = true if reply.resource.get_by_id(@obs_e)
|
|
594
|
+
has_obs_f = true if reply.resource.get_by_id(@obs_f)
|
|
574
595
|
reply = @client.next_page(reply)
|
|
575
596
|
end
|
|
576
597
|
|
|
577
|
-
assert !has_obs_a, 'Search greater than quantity should not return lesser value.'
|
|
578
|
-
assert has_obs_d, 'Search greater than quantity should return greater value.'
|
|
579
598
|
assert has_obs_e, 'Search greater than quantity should return greater value.'
|
|
599
|
+
assert has_obs_f, 'Search greater than quantity should return greater value.'
|
|
580
600
|
end
|
|
581
601
|
|
|
582
602
|
test "SE23#{action[0]}", 'Search with quantifier :missing, on Patient.gender' do
|
|
@@ -606,7 +626,7 @@ module Crucible
|
|
|
606
626
|
reply = @client.search(FHIR::Patient, options)
|
|
607
627
|
assert_response_ok(reply)
|
|
608
628
|
assert_bundle_response(reply)
|
|
609
|
-
assert_equal expected, reply.resource.total, 'The server did not report the
|
|
629
|
+
assert_equal expected, reply.resource.total, 'The server did not report the expected number of results.'
|
|
610
630
|
end
|
|
611
631
|
|
|
612
632
|
test "SE24#{action[0]}", 'Search with non-existing parameter' do
|