plan_executor 1.0.2 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -1,50 +0,0 @@
|
|
1
|
-
<Observation xmlns="http://hl7.org/fhir">
|
2
|
-
<id value="example"/>
|
3
|
-
|
4
|
-
<!--
|
5
|
-
Observations are often coded in multiple code systems.
|
6
|
-
- Loinc provides a very specific code (though not usefully more specific in this particular case)
|
7
|
-
- snomed provides a clinically relevant code that is usually less granular than LOINC
|
8
|
-
- the source system provides it's own code, which may be less or more granular than LOINC
|
9
|
-
-->
|
10
|
-
<code><!-- LOINC - always recommended to have a LOINC code -->
|
11
|
-
<coding>
|
12
|
-
<system value="http://loinc.org"/>
|
13
|
-
<code value="3141-9"/>
|
14
|
-
<display value="Weight Measured"/>
|
15
|
-
</coding><!-- SNOMED CT Codes - becoming more common -->
|
16
|
-
<coding>
|
17
|
-
<system value="http://snomed.info/sct"/>
|
18
|
-
<code value="27113001"/>
|
19
|
-
<display value="Body weight"/>
|
20
|
-
</coding><!-- Also, a local code specific to the source system -->
|
21
|
-
<coding>
|
22
|
-
<system value="http://acme.org/devices/clinical-codes"/>
|
23
|
-
<code value="body-weight"/>
|
24
|
-
<display value="Body Weight"/>
|
25
|
-
</coding>
|
26
|
-
</code>
|
27
|
-
|
28
|
-
<!-- In FHIR, units may be represented twice. Once in the
|
29
|
-
agreed human representation, and once in a coded form.
|
30
|
-
Both is best, since it's not always possible to infer
|
31
|
-
one from the other in code.
|
32
|
-
|
33
|
-
When a computable unit is provided, UCUM (http://unitsofmeasure.org)
|
34
|
-
is always preferred, but it doesn't provide notional units (such as
|
35
|
-
"tablet"), etc. For these, something else is required (e.g. Snomed-CT)
|
36
|
-
-->
|
37
|
-
<valueQuantity>
|
38
|
-
<value value="185"/>
|
39
|
-
<units value="lbs"/>
|
40
|
-
<system value="http://unitsofmeasure.org"/>
|
41
|
-
<code value="[lb_av]"/>
|
42
|
-
</valueQuantity>
|
43
|
-
<!-- the mandatory quality flags: -->
|
44
|
-
<status value="final"/>
|
45
|
-
<reliability value="ok"/>
|
46
|
-
<subject>
|
47
|
-
<reference value="Patient/example"/>
|
48
|
-
</subject>
|
49
|
-
|
50
|
-
</Observation>
|
@@ -1,260 +0,0 @@
|
|
1
|
-
module Crucible
|
2
|
-
module Tests
|
3
|
-
class ArgonautResprint1Test < BaseSuite
|
4
|
-
attr_accessor :rc
|
5
|
-
attr_accessor :conformance
|
6
|
-
attr_accessor :searchParams
|
7
|
-
attr_reader :canSearchById
|
8
|
-
attr_accessor :patient_id
|
9
|
-
|
10
|
-
def id
|
11
|
-
'ArgonautResprint1Test'
|
12
|
-
end
|
13
|
-
|
14
|
-
def description
|
15
|
-
'In Re-Sprint 1, we\'ll get up to speed on Argonaut\'s updated implementation guidance for: Patient, Allergies, and Problems & Health Concerns.'
|
16
|
-
end
|
17
|
-
|
18
|
-
def details
|
19
|
-
{
|
20
|
-
'Overview' => 'Since the Argonaut Implementation Program began in 2015, we\'ve come a long way. We\'ve gained early implementation experience working with FHIR DSTU2 and the Data Access Framework profiles — and we\'ve produced updated guidance based on this experience. We\'re running a series of "Re-Sprints" with three goals: ensure we have a chance to battle-test our latest "best practices" in time for MU3; help existing Argonaut implementers come up to speed; and provide an easy on-ramp for new Argonaut implementers.',
|
21
|
-
'Instructions' => 'If you\'re working on a server, please complete the "servers" tab of the Sprints Spreadsheet. You\'ll need to update the status flag to indicate whether you\'ve begun work (or completed work), so clients will know when to start testing. You\'ll also share details about how a developer can obtain OAuth client credentials (client_id for public apps, or a client_id and client_secret for confidential apps) as well as user login credentials. You might consider simply sharing a set of fixed credentials in this spreadsheet, or else directing users to a web page where they can complete self-service registration. If absolutely necessary, you can ask developers to e-mail you directly. If you\'re working on a client, please complete the "clients" tab of the Sprints Spreadsheet. You\'ll also need to update the status flag to indicate whether you\'ve begun work (or completed work).',
|
22
|
-
'FHIR API Calls' => 'For this sprint, EHRs should focus on the following FHIR Resources: Patient, AllergyIntolerance, and Condition. Patients should be retrieveable by ID, and should be searchable by demographics such as name, gender and birthdate. AllergyIntolerances should be searchable by the associated Patient ID. Conditions should be retrievable by code, where code is in the Problem valueset, and should be searchable by Patient ID as well.'
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
def initialize(client1, client2=nil)
|
27
|
-
super(client1, client2)
|
28
|
-
@rc = FHIR::Patient
|
29
|
-
@tags.append('argonaut')
|
30
|
-
@category = {id: 'argonaut', title: 'Argonaut'}
|
31
|
-
@status_codes = ['active', 'unconfirmed', 'confirmed', 'inactive', 'resolved', 'refuted', 'entered-in-error']
|
32
|
-
end
|
33
|
-
|
34
|
-
def setup
|
35
|
-
if !@client.client.try(:params).nil? && @client.client.params['patient']
|
36
|
-
@patient_id = @client.client.params['patient']
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
test 'ARS101', 'Get patient by ID' do
|
41
|
-
metadata {
|
42
|
-
links "#{REST_SPEC_LINK}#read"
|
43
|
-
requires resource: "Patient", methods: ["read", "search"]
|
44
|
-
validates resource: "Patient", methods: ["read", "search"]
|
45
|
-
}
|
46
|
-
|
47
|
-
begin
|
48
|
-
options = {
|
49
|
-
:search => {
|
50
|
-
:flag => true,
|
51
|
-
:compartment => nil,
|
52
|
-
:parameters => {
|
53
|
-
_count: 1
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
@patient_id ||= @client.search(@rc, options).resource.entry.first.resource.xmlId
|
58
|
-
rescue NoMethodError
|
59
|
-
@patient = nil
|
60
|
-
end
|
61
|
-
|
62
|
-
skip if !@patient_id
|
63
|
-
|
64
|
-
reply = @client.read(FHIR::Patient, @patient_id)
|
65
|
-
assert_response_ok(reply)
|
66
|
-
assert_equal @patient_id, reply.id, 'Server returned wrong patient.'
|
67
|
-
@patient = reply.resource
|
68
|
-
assert @patient, "could not get patient by id: #{@patient_id}"
|
69
|
-
warning { assert_valid_resource_content_type_present(reply) }
|
70
|
-
warning { assert_last_modified_present(reply) }
|
71
|
-
end
|
72
|
-
|
73
|
-
test 'ARS102', 'Search by identifier' do
|
74
|
-
metadata {
|
75
|
-
define_metadata('search')
|
76
|
-
}
|
77
|
-
skip if !@patient
|
78
|
-
get_patient_by_param(:identifier => @patient[:identifier].first.try(:value))
|
79
|
-
end
|
80
|
-
|
81
|
-
test 'ARS103', 'Identifier without search keyword' do
|
82
|
-
metadata {
|
83
|
-
define_metadata('search')
|
84
|
-
}
|
85
|
-
skip if !@patient
|
86
|
-
get_patient_by_param({ :identifier => @patient[:identifier].first.try(:value) }, false)
|
87
|
-
end
|
88
|
-
|
89
|
-
test 'ARS104', 'Search by Family & Given' do
|
90
|
-
metadata {
|
91
|
-
define_metadata('search')
|
92
|
-
}
|
93
|
-
skip if !@patient
|
94
|
-
family = @patient[:name].first.try(:family).try(:first)
|
95
|
-
given = @patient[:name].first.try(:given).try(:first)
|
96
|
-
assert family, "Patient family name not returned"
|
97
|
-
assert given, "Patient given name not returned"
|
98
|
-
get_patient_by_param(family: family, given: given)
|
99
|
-
end
|
100
|
-
|
101
|
-
test 'ARS105', 'Family & Given without search keyword' do
|
102
|
-
metadata {
|
103
|
-
define_metadata('search')
|
104
|
-
}
|
105
|
-
skip if !@patient
|
106
|
-
family = @patient[:name].first.try(:family).try(:first)
|
107
|
-
given = @patient[:name].first.try(:given).try(:first)
|
108
|
-
assert family, "Patient family name not provided"
|
109
|
-
assert given, "Patient given name not provided"
|
110
|
-
get_patient_by_param({ family: family, given: given }, false)
|
111
|
-
end
|
112
|
-
|
113
|
-
test 'ARS106', 'Search by name and gender' do
|
114
|
-
metadata {
|
115
|
-
define_metadata('search')
|
116
|
-
}
|
117
|
-
skip if !@patient
|
118
|
-
name = @patient[:name].first.try(:family).try(:first)
|
119
|
-
gender = @patient[:gender]
|
120
|
-
assert name, "Patient name not provided"
|
121
|
-
assert gender, "Patient gender not provided"
|
122
|
-
get_patient_by_param(name: name, gender: gender)
|
123
|
-
end
|
124
|
-
|
125
|
-
test 'ARS107', 'Name and gender without search keyword' do
|
126
|
-
metadata {
|
127
|
-
define_metadata('search')
|
128
|
-
}
|
129
|
-
skip if !@patient
|
130
|
-
name = @patient[:name].first.try(:family).try(:first)
|
131
|
-
gender = @patient[:gender]
|
132
|
-
assert name, "Patient name not provided"
|
133
|
-
assert gender, "Patient gender not provided"
|
134
|
-
get_patient_by_param(name: name, gender: gender)
|
135
|
-
end
|
136
|
-
|
137
|
-
test 'ARS108', 'Search by Birthdate' do
|
138
|
-
metadata {
|
139
|
-
define_metadata('search')
|
140
|
-
}
|
141
|
-
skip if !@patient
|
142
|
-
birthdate = @patient[:birthDate]
|
143
|
-
gender = @patient[:gender]
|
144
|
-
assert birthdate, "Patient birthdate not provided"
|
145
|
-
assert gender, "Patient gender not provided"
|
146
|
-
get_patient_by_param(birthdate: birthdate, gender: gender)
|
147
|
-
end
|
148
|
-
|
149
|
-
test 'ARS109', 'Birthdate without search keyword' do
|
150
|
-
metadata {
|
151
|
-
define_metadata('search')
|
152
|
-
}
|
153
|
-
skip if !@patient
|
154
|
-
birthdate = @patient[:birthDate]
|
155
|
-
gender = @patient[:gender]
|
156
|
-
assert birthdate, "Patient birthdate not provided"
|
157
|
-
assert gender, "Patient gender not provided"
|
158
|
-
get_patient_by_param({ birthdate: birthdate, gender: gender }, false)
|
159
|
-
end
|
160
|
-
|
161
|
-
test 'ARS110', 'GET AllergyIntolerance with Patient IDs' do
|
162
|
-
metadata {
|
163
|
-
links "#{REST_SPEC_LINK}#search"
|
164
|
-
requires resource: 'Patient', methods: ['read', 'search']
|
165
|
-
requires resource: 'AllergyIntolerance', methods: ['read', 'search']
|
166
|
-
validates resource: 'Patient', methods: ['read', 'search']
|
167
|
-
validates resource: 'AllergyIntolerance', methods: ['read', 'search']
|
168
|
-
}
|
169
|
-
|
170
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
171
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
172
|
-
|
173
|
-
patient_id = @patient.xmlId
|
174
|
-
|
175
|
-
options = {
|
176
|
-
search: {
|
177
|
-
flag: false,
|
178
|
-
compartment: nil,
|
179
|
-
parameters: {
|
180
|
-
patient: patient_id
|
181
|
-
}
|
182
|
-
}
|
183
|
-
}
|
184
|
-
|
185
|
-
reply = @client.search(FHIR::AllergyIntolerance, options)
|
186
|
-
|
187
|
-
assert_response_ok(reply)
|
188
|
-
|
189
|
-
reply.resource.entry.each do |entry|
|
190
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on AllergyIntolerance does not match patient requested"
|
191
|
-
assert entry.resource.substance, "No substance defined for AllergyIntolerance"
|
192
|
-
entry.resource.substance.coding.each do |coding|
|
193
|
-
warn { assert ['http://rxnav.nlm.nih.gov/REST/Ndfrt', 'http://snomed.info/sct', 'http://www.nlm.nih.gov/research/umls/rxnorm'].include?(coding.system), "Code system #{coding.system} does not match expected code system for Allergy substance coding" }
|
194
|
-
end
|
195
|
-
assert @status_codes.include?(entry.resource.status), 'Allergy Status is not part of status Value Set'
|
196
|
-
end
|
197
|
-
end
|
198
|
-
|
199
|
-
test 'ARS111', 'GET Condition with Patient IDs' do
|
200
|
-
metadata {
|
201
|
-
links "#{REST_SPEC_LINK}#search"
|
202
|
-
requires resource: "Patient", methods: ["read", "search"]
|
203
|
-
validates resource: "Patient", methods: ["read", "search"]
|
204
|
-
}
|
205
|
-
|
206
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
207
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
208
|
-
|
209
|
-
patient_id = @patient.xmlId
|
210
|
-
|
211
|
-
options = {
|
212
|
-
search: {
|
213
|
-
flag: false,
|
214
|
-
compartment: nil,
|
215
|
-
parameters: {
|
216
|
-
patient: patient_id
|
217
|
-
}
|
218
|
-
}
|
219
|
-
}
|
220
|
-
|
221
|
-
reply = @client.search(FHIR::Condition, options)
|
222
|
-
|
223
|
-
assert_response_ok(reply)
|
224
|
-
|
225
|
-
reply.resource.entry.each do |entry|
|
226
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on condition does not match patient requested"
|
227
|
-
entry.resource.code.coding.each do |coding|
|
228
|
-
warn { assert coding.system == "http://snomed.info/sct", "Condition Code System is not SNOMED-CT" }
|
229
|
-
assert !coding.code.empty?, "No code defined for Coding"
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
private
|
235
|
-
|
236
|
-
def get_patient_by_param(params = {}, flag = true)
|
237
|
-
assert !params.empty?, "No params for patient"
|
238
|
-
options = {
|
239
|
-
:search => {
|
240
|
-
:flag => flag,
|
241
|
-
:compartment => nil,
|
242
|
-
:parameters => params
|
243
|
-
}
|
244
|
-
}
|
245
|
-
reply = @client.search(@rc, options)
|
246
|
-
assert_response_ok(reply)
|
247
|
-
assert_bundle_response(reply)
|
248
|
-
assert reply.resource.get_by_id(@patient_id).equals?(@patient, ['_id', "text", "meta", "lastUpdated"]), 'Server returned wrong patient.'
|
249
|
-
end
|
250
|
-
|
251
|
-
def define_metadata(method)
|
252
|
-
links "#{REST_SPEC_LINK}##{method}"
|
253
|
-
links "#{BASE_SPEC_LINK}/#{@rc.name.demodulize.downcase}.html"
|
254
|
-
requires resource: @rc.name.demodulize, methods: [method]
|
255
|
-
validates resource: @rc.name.demodulize, methods: [method]
|
256
|
-
end
|
257
|
-
|
258
|
-
end
|
259
|
-
end
|
260
|
-
end
|
@@ -1,369 +0,0 @@
|
|
1
|
-
module Crucible
|
2
|
-
module Tests
|
3
|
-
class ArgonautResprint2Test < BaseSuite
|
4
|
-
attr_accessor :rc
|
5
|
-
attr_accessor :conformance
|
6
|
-
attr_accessor :patient_id
|
7
|
-
|
8
|
-
def id
|
9
|
-
'ArgonautResprint2Test'
|
10
|
-
end
|
11
|
-
|
12
|
-
def description
|
13
|
-
'In Re-Sprint 2, we\'ll get up to speed on Argonaut\'s updated implementation guidance for Vital Signs and Laboratory Results, while also introducing the Smoking Status Observation and CareTeam resources.'
|
14
|
-
end
|
15
|
-
|
16
|
-
def details
|
17
|
-
{
|
18
|
-
'Overview' => 'Since the Argonaut Implementation Program began in 2015, we\'ve come a long way. We\'ve gained early implementation experience working with FHIR DSTU2 and the Data Access Framework profiles — and we\'ve produced updated guidance based on this experience. We\'re running a series of "Re-Sprints" with three goals: ensure we have a chance to battle-test our latest "best practices" in time for MU3; help existing Argonaut implementers come up to speed; and provide an easy on-ramp for new Argonaut implementers.',
|
19
|
-
'Instructions' => 'If you\'re working on a server, please complete the "servers" tab of the Sprints Spreadsheet. You\'ll need to update the status flag to indicate whether you\'ve begun work (or completed work), so clients will know when to start testing. You\'ll also share details about how a developer can obtain OAuth client credentials (client_id for public apps, or a client_id and client_secret for confidential apps) as well as user login credentials. You might consider simply sharing a set of fixed credentials in this spreadsheet, or else directing users to a web page where they can complete self-service registration. If absolutely necessary, you can ask developers to e-mail you directly. If you\'re working on a client, please complete the "clients" tab of the Sprints Spreadsheet. You\'ll also need to update the status flag to indicate whether you\'ve begun work (or completed work).',
|
20
|
-
'FHIR API Calls' => 'For this sprint, EHRs should focus on the following FHIR Resources: Observation, DiagnosticReport, and CareTeam.'
|
21
|
-
}
|
22
|
-
end
|
23
|
-
|
24
|
-
def initialize(client1, client2=nil)
|
25
|
-
super(client1, client2)
|
26
|
-
@rc = FHIR::Patient
|
27
|
-
@tags.append('argonaut')
|
28
|
-
@category = {id: 'argonaut', title: 'Argonaut'}
|
29
|
-
@loinc_codes = ['8716-3', '9279-1', '8867-4', '59408-5', '8310-5', '8302-2', '8306-3', '8287-5', '29463-7', '39156-5', '55284-4', '8480-6', '8462-4']
|
30
|
-
@loinc_code_units = {'8716-3' => nil, '9279-1' => '/min', '8867-4' => '/min', '59408-5' => '%', '8310-5' => 'Cel', '8302-2' => 'cm', '8306-3' => 'cm', '8287-5' => 'cm', '29463-7' => 'g, kg', '39156-5' => 'kg/m2', '55284-4' => nil, '8480-6' => 'mm[Hg]', '8462-4' => 'mm[Hg]'}
|
31
|
-
@smoking_codes = ['449868002', '428041000124106', '8517006', '266919005', '77176002', '266927001', '428071000124103', '428061000124105']
|
32
|
-
end
|
33
|
-
|
34
|
-
def setup
|
35
|
-
if !@client.client.try(:params).nil? && @client.client.params['patient']
|
36
|
-
@patient_id = @client.client.params['patient']
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
test 'ARS201', 'Get patient by ID' do
|
41
|
-
metadata {
|
42
|
-
links "#{REST_SPEC_LINK}#read"
|
43
|
-
requires resource: "Patient", methods: ["read", "search"]
|
44
|
-
validates resource: "Patient", methods: ["read", "search"]
|
45
|
-
}
|
46
|
-
|
47
|
-
begin
|
48
|
-
options = {
|
49
|
-
:search => {
|
50
|
-
:flag => true,
|
51
|
-
:compartment => nil,
|
52
|
-
:parameters => {
|
53
|
-
_count: 1
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
@patient_id ||= @client.search(@rc, options).resource.entry.first.resource.xmlId
|
58
|
-
rescue NoMethodError
|
59
|
-
@patient_id = nil
|
60
|
-
end
|
61
|
-
|
62
|
-
skip if !@patient_id
|
63
|
-
|
64
|
-
reply = @client.read(FHIR::Patient, @patient_id)
|
65
|
-
assert_response_ok(reply)
|
66
|
-
assert_equal @patient_id, reply.id, 'Server returned wrong patient.'
|
67
|
-
@patient = reply.resource
|
68
|
-
assert @patient, "could not get patient by id: #{@patient_id}"
|
69
|
-
warning { assert_valid_resource_content_type_present(reply) }
|
70
|
-
warning { assert_last_modified_present(reply) }
|
71
|
-
end
|
72
|
-
|
73
|
-
test 'ARS202', 'GET vital-sign Observations with Patient ID' do
|
74
|
-
metadata {
|
75
|
-
links "#{REST_SPEC_LINK}#search"
|
76
|
-
requires resource: "Observation", methods: ["read", "search"]
|
77
|
-
validates resource: "Observation", methods: ["read", "search"]
|
78
|
-
}
|
79
|
-
|
80
|
-
skip if !@patient_id
|
81
|
-
|
82
|
-
options = {
|
83
|
-
search: {
|
84
|
-
flag: false,
|
85
|
-
compartment: nil,
|
86
|
-
parameters: {
|
87
|
-
patient: @patient_id,
|
88
|
-
category: 'vital-signs'
|
89
|
-
}
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
reply = @client.search(FHIR::Observation, options)
|
94
|
-
|
95
|
-
validate_vitalsign_reply(reply)
|
96
|
-
end
|
97
|
-
|
98
|
-
test 'ARS203', 'GET coded Observation with Patient ID' do
|
99
|
-
metadata {
|
100
|
-
links "#{REST_SPEC_LINK}#search"
|
101
|
-
requires resource: "Observation", methods: ["read", "search"]
|
102
|
-
validates resource: "Observation", methods: ["read", "search"]
|
103
|
-
}
|
104
|
-
|
105
|
-
skip if !@patient_id
|
106
|
-
|
107
|
-
options = {
|
108
|
-
search: {
|
109
|
-
flag: false,
|
110
|
-
compartment: nil,
|
111
|
-
parameters: {
|
112
|
-
patient: @patient_id,
|
113
|
-
code: @loinc_codes.join(',')
|
114
|
-
}
|
115
|
-
}
|
116
|
-
}
|
117
|
-
|
118
|
-
reply = @client.search(FHIR::Observation, options)
|
119
|
-
|
120
|
-
validate_vitalsign_reply(reply)
|
121
|
-
end
|
122
|
-
|
123
|
-
test 'ARS204', 'GET coded Observation with Patient ID' do
|
124
|
-
metadata {
|
125
|
-
links "#{REST_SPEC_LINK}#search"
|
126
|
-
requires resource: "Observation", methods: ["read", "search"]
|
127
|
-
validates resource: "Observation", methods: ["read", "search"]
|
128
|
-
}
|
129
|
-
|
130
|
-
skip if !@patient_id
|
131
|
-
|
132
|
-
options = {
|
133
|
-
search: {
|
134
|
-
flag: false,
|
135
|
-
compartment: nil,
|
136
|
-
parameters: {
|
137
|
-
patient: patient_id,
|
138
|
-
category: 'laboratory'
|
139
|
-
}
|
140
|
-
}
|
141
|
-
}
|
142
|
-
|
143
|
-
reply = @client.search(FHIR::Observation, options)
|
144
|
-
|
145
|
-
validate_lab_reply(reply)
|
146
|
-
end
|
147
|
-
|
148
|
-
test 'ARS205', 'GET DiagnosticReport with Patient ID' do
|
149
|
-
metadata {
|
150
|
-
links "#{REST_SPEC_LINK}#search"
|
151
|
-
requires resource: "DiagnosticReport", methods: ["read", "search"]
|
152
|
-
validates resource: "DiagnosticReport", methods: ["read", "search"]
|
153
|
-
}
|
154
|
-
|
155
|
-
skip if !@patient_id
|
156
|
-
|
157
|
-
options = {
|
158
|
-
search: {
|
159
|
-
flag: false,
|
160
|
-
compartment: nil,
|
161
|
-
parameters: {
|
162
|
-
patient: patient_id,
|
163
|
-
category: 'LAB'
|
164
|
-
}
|
165
|
-
}
|
166
|
-
}
|
167
|
-
|
168
|
-
reply = @client.search(FHIR::DiagnosticReport, options)
|
169
|
-
|
170
|
-
validate_diagnostic_report_reply(reply)
|
171
|
-
end
|
172
|
-
|
173
|
-
test 'ARS206', 'GET Smoking Status Observation with patient ID' do
|
174
|
-
metadata {
|
175
|
-
links "#{REST_SPEC_LINK}#search"
|
176
|
-
requires resource: 'Observation', methods: ['read', 'search']
|
177
|
-
validates resource: 'Observation', methods: ['read', 'search']
|
178
|
-
}
|
179
|
-
|
180
|
-
skip if !@patient_id
|
181
|
-
|
182
|
-
options = {
|
183
|
-
search: {
|
184
|
-
flag: false,
|
185
|
-
compartment: nil,
|
186
|
-
parameters: {
|
187
|
-
patient: @patient_id,
|
188
|
-
code: '72166-2'
|
189
|
-
}
|
190
|
-
}
|
191
|
-
}
|
192
|
-
|
193
|
-
reply = @client.search(FHIR::Observation, options)
|
194
|
-
|
195
|
-
validate_smoking_status_reply(reply)
|
196
|
-
end
|
197
|
-
|
198
|
-
test 'ARS207', 'GET CarePlan with patient ID' do
|
199
|
-
metadata {
|
200
|
-
links "#{REST_SPEC_LINK}#search"
|
201
|
-
requires resource: 'CarePlan', methods: ['read', 'search']
|
202
|
-
validates resource: 'CarePlan', methods: ['read', 'search']
|
203
|
-
}
|
204
|
-
|
205
|
-
skip if !@patient_id
|
206
|
-
|
207
|
-
options = {
|
208
|
-
search: {
|
209
|
-
flag: false,
|
210
|
-
compartment: nil,
|
211
|
-
parameters: {
|
212
|
-
patient: @patient_id,
|
213
|
-
category: 'careteam',
|
214
|
-
status: 'active'
|
215
|
-
}
|
216
|
-
}
|
217
|
-
}
|
218
|
-
|
219
|
-
reply = @client.search(FHIR::CarePlan, options)
|
220
|
-
|
221
|
-
validate_care_plan_reply(reply)
|
222
|
-
end
|
223
|
-
|
224
|
-
private
|
225
|
-
|
226
|
-
def validate_care_plan_reply(reply)
|
227
|
-
assert_response_ok(reply)
|
228
|
-
|
229
|
-
valid_care_plans_count = 0
|
230
|
-
|
231
|
-
reply.resource.entry.each do |entry|
|
232
|
-
careplan = entry.resource
|
233
|
-
if careplan.category.to_a.find { |cat| cat.coding.to_a.find { |c| c.system == "http://argonaut.hl7.org/ValueSet/extension-codes" && c.code == 'careteam' } }
|
234
|
-
valid_care_plans_count += 1
|
235
|
-
assert careplan.subject
|
236
|
-
assert_equal careplan.subject.reference, "Patient/#{@patient_id}", "Expected patient #{@patient_id} did not match CarePlan Subject #{careplan.subject.reference}"
|
237
|
-
careplan.participant.each do |participant|
|
238
|
-
assert participant.role, "Participant '#{participant.id}' does not have a role"
|
239
|
-
assert participant.member.display, "Participant '#{participant.id}' does not have a complete name in Participant.member.display"
|
240
|
-
end
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
warning { assert valid_care_plans_count > 0, "No care team CarePlans were found for this patient" }
|
245
|
-
skip unless valid_care_plans_count > 0
|
246
|
-
|
247
|
-
end
|
248
|
-
|
249
|
-
def validate_smoking_status_reply(reply)
|
250
|
-
assert_response_ok(reply)
|
251
|
-
|
252
|
-
valid_smoking_status_count = 0
|
253
|
-
|
254
|
-
reply.resource.entry.each do |entry|
|
255
|
-
observation = entry.resource
|
256
|
-
if observation.code.coding.to_a.find { |c| c.system == 'http://loinc.org' && c.code == '72166-2' }
|
257
|
-
valid_smoking_status_count += 1
|
258
|
-
assert !observation.status.empty?
|
259
|
-
assert observation.subject
|
260
|
-
assert_equal observation.subject.reference, "Patient/#{@patient_id}"
|
261
|
-
assert observation.issued, "No instant available in observation '#{observation.xmlId}'s' 'issued' field"
|
262
|
-
assert observation.valueCodeableConcept "No codeableConcept specified for Observation '#{observation.xmlId}''"
|
263
|
-
assert observation.valueCodeableConcept.coding.to_a.find{|c|@smoking_codes.include?(c.code)}, "Observation valueCodeableConcept #{observation.valueCodeableConcept.to_fhir_json} isn't part of DAF Smoking Status Value Set"
|
264
|
-
end
|
265
|
-
end
|
266
|
-
|
267
|
-
warning { assert valid_smoking_status_count > 0, "No smoking status Observations were found for this patient" }
|
268
|
-
skip unless valid_smoking_status_count > 0
|
269
|
-
end
|
270
|
-
|
271
|
-
def validate_vitalsign_reply(reply)
|
272
|
-
assert_response_ok(reply)
|
273
|
-
|
274
|
-
valid_observation_count = 0
|
275
|
-
|
276
|
-
reply.resource.entry.each do |entry|
|
277
|
-
observation = entry.resource
|
278
|
-
if observation.category.nil?
|
279
|
-
warning { assert observation.category, "An observation did not have a category"}
|
280
|
-
next
|
281
|
-
end
|
282
|
-
if observation.category.coding.to_a.find { |c| c.code == "vital-signs" }
|
283
|
-
valid_observation_count += 1
|
284
|
-
assert !observation.status.empty?
|
285
|
-
assert observation.category
|
286
|
-
assert observation.category.coding.to_a.find { |c| c.system == "http://hl7.org/fhir/observation-category" }, "Wrong category codeSystem used, expected FHIR ObservationCategory"
|
287
|
-
assert observation.subject
|
288
|
-
assert get_value(observation) || observation.dataAbsentReason || !observation.component.blank?
|
289
|
-
coding = observation.code.coding.first
|
290
|
-
assert coding.system == "http://loinc.org", "The observation is coded using the wrong code system, is #{coding.system}, should be LOINC"
|
291
|
-
warning { assert @loinc_codes.index(coding.code), "The code included in an Observation doesn't match any in the code lists provided by the Argonaut project" }
|
292
|
-
if @loinc_code_units[coding.code] && get_value(observation)
|
293
|
-
value = get_value(observation)
|
294
|
-
if value.respond_to? :unit
|
295
|
-
assert_equal @loinc_code_units[coding.code], value.unit, "The unit of the observation is not correct."
|
296
|
-
end
|
297
|
-
end
|
298
|
-
# systolic and diastolic in components
|
299
|
-
if coding.code == '55284-4'
|
300
|
-
assert observation.component.length >= 2, "expected at least 2 components for combined blood pressure grouping structure"
|
301
|
-
systolic = observation.component.to_a.find {|component| component.code.coding.first.code == '8480-6'}
|
302
|
-
diastolic = observation.component.to_a.find {|component| component.code.coding.first.code == '8462-4'}
|
303
|
-
assert !systolic.blank?, "could not find a systolic blood pressure on a bp grouping vital sign observation"
|
304
|
-
assert !diastolic.blank?, "could not find a diastolic blood pressure on a bp grouping vital sign observation"
|
305
|
-
assert get_value(systolic), "systolic blood pressure did not have a value"
|
306
|
-
assert_equal 'mmHg', get_value(systolic).unit, "The unit of the systolic blood pressure is not correct."
|
307
|
-
assert get_value(diastolic), "systolic blood pressure did not have a value"
|
308
|
-
assert_equal 'mmHg', get_value(diastolic).unit, "The unit of the systolic blood pressure is not correct."
|
309
|
-
end
|
310
|
-
|
311
|
-
end
|
312
|
-
end
|
313
|
-
warning { assert valid_observation_count > 0, "No vital signs Observations were found for this patient" }
|
314
|
-
skip unless valid_observation_count > 0
|
315
|
-
end
|
316
|
-
|
317
|
-
def validate_diagnostic_report_reply(reply)
|
318
|
-
assert_response_ok(reply)
|
319
|
-
|
320
|
-
reply.resource.entry.each do |entry|
|
321
|
-
report = entry.resource
|
322
|
-
|
323
|
-
assert report.category, "DiagnosticReport has no category"
|
324
|
-
assert report.category.coding.each do |c|
|
325
|
-
assert c.code=='LAB',"Category code should be 'LAB'"
|
326
|
-
end
|
327
|
-
assert report.status, "No status for DiagnosticReport"
|
328
|
-
assert report.code, "DiagnosticReport has no code"
|
329
|
-
assert report.subject, "DiagnosticReport has no subject"
|
330
|
-
assert report.effectivePeriod? || report.effectiveDateTime?, "DiagnosticReport has no effective date/time"
|
331
|
-
assert report.issued, "DiagnosticReport has no issued"
|
332
|
-
assert report.performer, "DiagnosticReport has no performer"
|
333
|
-
assert report.result, "DiagnosticReport has no results"
|
334
|
-
end
|
335
|
-
end
|
336
|
-
|
337
|
-
def validate_lab_reply(reply)
|
338
|
-
assert_response_ok(reply)
|
339
|
-
|
340
|
-
valid_observation_count = 0
|
341
|
-
|
342
|
-
reply.resource.entry.each do |entry|
|
343
|
-
observation = entry.resource
|
344
|
-
if observation.category.nil?
|
345
|
-
warning { assert observation.category, "An observation did not have a category"}
|
346
|
-
next
|
347
|
-
end
|
348
|
-
if observation.category.coding.to_a.find { |c| c.code == "laboratory" }
|
349
|
-
valid_observation_count += 1
|
350
|
-
assert !observation.status.empty?
|
351
|
-
assert observation.category
|
352
|
-
assert observation.category.coding.to_a.find{ |c| c.system == "http://hl7.org/fhir/observation-category" }, "Wrong category codeSystem used, expected FHIR ObservationCategory"
|
353
|
-
assert observation.subject
|
354
|
-
assert get_value(observation) || observation.dataAbsentReason
|
355
|
-
coding = observation.code.coding.first
|
356
|
-
assert coding.system == "http://loinc.org", "The observation is coded using the wrong code system, is #{coding.system}, should be LOINC"
|
357
|
-
end
|
358
|
-
end
|
359
|
-
warning { assert valid_observation_count > 0, "No laboratory Observations were found for this patient" }
|
360
|
-
skip unless valid_observation_count > 0
|
361
|
-
end
|
362
|
-
|
363
|
-
def get_value(observation)
|
364
|
-
observation.valueQuantity || observation.valueCodeableConcept || observation.valueString || observation.valueRange || observation.valueRatio || observation.valueSampledData || observation.valueAttachment || observation.valueTime || observation.valueDateTime || observation.valuePeriod
|
365
|
-
end
|
366
|
-
|
367
|
-
end
|
368
|
-
end
|
369
|
-
end
|