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,196 +0,0 @@
|
|
1
|
-
module Crucible
|
2
|
-
module Tests
|
3
|
-
class ArgonautSprint5Test < BaseSuite
|
4
|
-
def id
|
5
|
-
'ArgonautSprint5Test'
|
6
|
-
end
|
7
|
-
|
8
|
-
def description
|
9
|
-
'Argonaut Project Sprint 5 Test, to test success of servers at implementing goals of Argonaut Sprint 5'
|
10
|
-
end
|
11
|
-
|
12
|
-
def details
|
13
|
-
{
|
14
|
-
'Overview' => 'Argonaut Implementation Sprint 5 focuses on the scenario where a clinician launches a care management app from within the EHR. Building on Sprint 4\'s objectives, we add support for exposing a patient\'s problem list, and allergy list as well as more advanced app/EHR integration using additional parameters in SMART\'s "EHR Launch Flow".',
|
15
|
-
'Instructions' => 'If you\'re working on a server, please complete the "servers" tab of the Sprint 5 Spreadsheet. This time around 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.',
|
16
|
-
'FHIR API Calls' => 'For this sprint, EHRs should add support for: GET /Patient/{id}/Condition or GET /Condition?patient={id}: Retrieve any conditions (problems) on a patient\'s list, including current as well as resolved conditions, all coded in SNOMED CT per the DAF profile. GET /Patient/{id}/AllergyIntolerance or GET /AllergyIntolerance?patient={id}: Retrieve any allegies on a patient\'s list. Values are coded in NDF-RT (for drug class allergies), RxNorm (for drug ingredient allergies), UNII (for other substance allergies), or SNOMED CT (if all else fails).',
|
17
|
-
'Authorization' => 'This sprint builds on Sprint 4\'s authorization scenario, adding two more context parameters to the launch response, both designed to improve the visual integration of third-party apps within a surrounding EHR system: need_patient_banner; indicates whether the app is responsible for displaying a demographic banner identifying the patient (should be set to true when an EHR does not already display such data in a frame around the app), and smart_style_url; indicates a set of style parameters (preferred colors, etc.) that the app may want to use.'
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(client1, client2 = nil)
|
22
|
-
super
|
23
|
-
@tags.append('argonautp1')
|
24
|
-
@category = {id: 'argonautp1', title: 'Argonaut Phase 1'}
|
25
|
-
end
|
26
|
-
|
27
|
-
# [SprinklerTest("AS5001", "GET patient by ID")]
|
28
|
-
test 'AS5001', 'GET patient by ID' do
|
29
|
-
metadata {
|
30
|
-
links "#{REST_SPEC_LINK}#read"
|
31
|
-
requires resource: "Patient", methods: ["read"]
|
32
|
-
validates resource: "Patient", methods: ["read"]
|
33
|
-
}
|
34
|
-
|
35
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
36
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
37
|
-
|
38
|
-
patient_id = @client.client.params["patient"]
|
39
|
-
|
40
|
-
reply = @client.read(FHIR::Patient, patient_id, FHIR::Formats::ResourceFormat::RESOURCE_JSON)
|
41
|
-
|
42
|
-
assert_response_ok(reply)
|
43
|
-
assert_equal patient_id, reply.id, 'Server returned wrong patient.'
|
44
|
-
warning { assert_valid_resource_content_type_present(reply) }
|
45
|
-
warning { assert_etag_present(reply) }
|
46
|
-
warning { assert_last_modified_present(reply) }
|
47
|
-
end
|
48
|
-
|
49
|
-
test 'AS5002', 'GET Condition Patient Compartment for a specific patient' do
|
50
|
-
metadata {
|
51
|
-
links "#{REST_SPEC_LINK}#search"
|
52
|
-
requires resource: "Patient", methods: ["search"]
|
53
|
-
validates resource: "Patient", methods: ["search"]
|
54
|
-
requires resource: 'Condition', methods: ['read']
|
55
|
-
validates resource: 'Condition', methods: ['read']
|
56
|
-
}
|
57
|
-
|
58
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
59
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
60
|
-
|
61
|
-
patient_id = @client.client.params["patient"]
|
62
|
-
|
63
|
-
options = {
|
64
|
-
:id => patient_id,
|
65
|
-
:search => {
|
66
|
-
:flag => false,
|
67
|
-
:compartment => "Condition",
|
68
|
-
:parameters => nil
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
reply = @client.search(FHIR::Patient, options)
|
73
|
-
|
74
|
-
assert_response_ok(reply)
|
75
|
-
|
76
|
-
reply.resource.entry.each do |entry|
|
77
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on condition does not match patient requested"
|
78
|
-
entry.resource.code.coding.each do |coding|
|
79
|
-
assert coding.system == "http://snomed.info/sct", "Code System is not SNOMEDCT"
|
80
|
-
assert !coding.code.empty?, "No code defined for coding"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
test 'AS5003', 'GET Condition with Patient IDs' do
|
86
|
-
metadata {
|
87
|
-
links "#{REST_SPEC_LINK}#search"
|
88
|
-
requires resource: "Patient", methods: ["read"]
|
89
|
-
validates resource: "Patient", methods: ["read"]
|
90
|
-
requires resource: 'Condition', methods: ['read', 'search']
|
91
|
-
validates resource: 'Condition', methods: ['read', 'search']
|
92
|
-
}
|
93
|
-
|
94
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
95
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
96
|
-
|
97
|
-
patient_id = @client.client.params["patient"]
|
98
|
-
|
99
|
-
options = {
|
100
|
-
search: {
|
101
|
-
flag: false,
|
102
|
-
compartment: nil,
|
103
|
-
parameters: {
|
104
|
-
patient: patient_id
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
reply = @client.search(FHIR::Condition, options)
|
110
|
-
|
111
|
-
assert_response_ok(reply)
|
112
|
-
|
113
|
-
reply.resource.entry.each do |entry|
|
114
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on condition does not match patient requested"
|
115
|
-
entry.resource.code.coding.each do |coding|
|
116
|
-
assert coding.system == "http://snomed.info/sct", "Code System is not SNOMEDCT"
|
117
|
-
assert !coding.code.empty?, "No code defined for coding"
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
test 'AS5004', 'GET AllergyIntolerance Patient Compartment for a specific patient' do
|
123
|
-
metadata {
|
124
|
-
links "#{REST_SPEC_LINK}#search"
|
125
|
-
requires resource: "Patient", methods: ["search"]
|
126
|
-
validates resource: "Patient", methods: ["search"]
|
127
|
-
requires resource: 'AllergyIntolerance', methods: ['read']
|
128
|
-
validates resource: 'AllergyIntolerance', methods: ['read']
|
129
|
-
}
|
130
|
-
|
131
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
132
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
133
|
-
|
134
|
-
patient_id = @client.client.params["patient"]
|
135
|
-
|
136
|
-
options = {
|
137
|
-
:id => patient_id,
|
138
|
-
:search => {
|
139
|
-
:flag => false,
|
140
|
-
:compartment => "AllergyIntolerance",
|
141
|
-
:parameters => nil
|
142
|
-
}
|
143
|
-
}
|
144
|
-
|
145
|
-
reply = @client.search(FHIR::Patient, options)
|
146
|
-
|
147
|
-
assert_response_ok(reply)
|
148
|
-
|
149
|
-
reply.resource.entry.each do |entry|
|
150
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on AllergyIntolerance does not match patient requested"
|
151
|
-
assert entry.resource.substance, "No substance defined for AllergyIntolerance"
|
152
|
-
entry.resource.substance.coding.each do |coding|
|
153
|
-
assert ['http://fda.gov/UNII/', '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 systems."
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
test 'AS5005', 'GET AllergyIntolerance with Patient IDs' do
|
159
|
-
metadata {
|
160
|
-
links "#{REST_SPEC_LINK}#search"
|
161
|
-
requires resource: "Patient", methods: ["read", "search"]
|
162
|
-
validates resource: "Patient", methods: ["read", "search"]
|
163
|
-
requires resource: 'AllergyIntolerance', methods: ['read', 'search']
|
164
|
-
validates resource: 'AllergyIntolerance', methods: ['read', 'search']
|
165
|
-
}
|
166
|
-
|
167
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
168
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
169
|
-
|
170
|
-
patient_id = @client.client.params["patient"]
|
171
|
-
|
172
|
-
options = {
|
173
|
-
search: {
|
174
|
-
flag: false,
|
175
|
-
compartment: nil,
|
176
|
-
parameters: {
|
177
|
-
patient: patient_id
|
178
|
-
}
|
179
|
-
}
|
180
|
-
}
|
181
|
-
|
182
|
-
reply = @client.search(FHIR::AllergyIntolerance, options)
|
183
|
-
|
184
|
-
assert_response_ok(reply)
|
185
|
-
|
186
|
-
reply.resource.entry.each do |entry|
|
187
|
-
assert (entry.resource.patient && entry.resource.patient.reference.include?(patient_id)), "Patient on AllergyIntolerance does not match patient requested"
|
188
|
-
assert entry.resource.substance, "No substance defined for AllergyIntolerance"
|
189
|
-
entry.resource.substance.coding.each do |coding|
|
190
|
-
assert ['http://fda.gov/UNII/', '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 systems."
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
end
|
@@ -1,243 +0,0 @@
|
|
1
|
-
module Crucible
|
2
|
-
module Tests
|
3
|
-
class ArgonautSprint6Test < BaseSuite
|
4
|
-
def id
|
5
|
-
'ArgonautSprint6Test'
|
6
|
-
end
|
7
|
-
|
8
|
-
def description
|
9
|
-
'Argonaut Project Sprint 6 Test, to test success of servers at implementing goals of Argonaut Sprint 6'
|
10
|
-
end
|
11
|
-
|
12
|
-
def details
|
13
|
-
{
|
14
|
-
'Overview' => 'Argonaut Implementation Sprint 6 begins support for laboratory results. To provide very specific guidance in this first lab-related sprint, we address two common quantitative lab panels: the Comprehensive Metabolic Panel and the Complete Blood Count (without differential). On the security side, we add support for OAuth 2.0 refresh_tokens, which allow apps to receive long-lasting access.',
|
15
|
-
'Instructions' => 'If you\'re working on a server, please complete the "servers" tab of the Sprint 5 Spreadsheet. This time around 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.',
|
16
|
-
'FHIR API Calls' => 'For this sprint, EHRs should add support for: GET /Patient/{id}/DiagnosticReport or GET /DiagnosticReport?patient={id}--Retrieve any Laboratory Diagnostic Reports about a given patient. GET /Patient/{id}/Observation or GET /Observation?patient={id}--Retrieve any Observations about a given Patient. Our focus for Sprint 6 is on quantitative lab observations. Other kinds of Diagnostic Reports and Observations may be ignored. As an initial step, we will be focusing on final reports for Comprehensive metabolic panel and Complete Blood Count.',
|
17
|
-
'Authorization' => 'This sprint builds out support for OAuth 2.0 refresh tokens. For full details, see SMART\'s table of scopes and the authorization guide, but briefly: At authorization time, an app asks for the offline_access. This scope indicates to the server that a long-lasting refresh token is desired. After launch, if the request has been approved, the app will receive a refresh_token as part of its access token response. Once the access_token expires, the app can ask for a new one by using its refresh_token.'
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(client1, client2 = nil)
|
22
|
-
super
|
23
|
-
@tags.append('argonautp1')
|
24
|
-
@loinc_codes = ['2951-2', '2823-3', '2075-0', '2028-9', '3094-0', '2160-0', '2345-7', '17861-6', '2885-2', '1751-7', '1975-2', '6768-6', '1742-6', '1920-8', '6690-2', ' 789-8', ' 718-7', ' 4544-3', '787-2', '785-6', '786-4', '21000-5', '788-0', '777-3', '32207-3', '32623-1']
|
25
|
-
@category = {id: 'argonautp1', title: 'Argonaut Phase 1'}
|
26
|
-
end
|
27
|
-
|
28
|
-
# [SprinklerTest("AS6001", "GET patient by ID")]
|
29
|
-
test 'AS6001', 'GET patient by ID' do
|
30
|
-
metadata {
|
31
|
-
links "#{REST_SPEC_LINK}#read"
|
32
|
-
requires resource: "Patient", methods: ["read"]
|
33
|
-
validates resource: "Patient", methods: ["read"]
|
34
|
-
}
|
35
|
-
|
36
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
37
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
38
|
-
|
39
|
-
patient_id = @client.client.params["patient"]
|
40
|
-
|
41
|
-
reply = @client.read(FHIR::Patient, patient_id)
|
42
|
-
|
43
|
-
assert_response_ok(reply)
|
44
|
-
assert_equal patient_id.to_s, reply.id.to_s, 'Server returned wrong patient.'
|
45
|
-
warning { assert_valid_resource_content_type_present(reply) }
|
46
|
-
warning { assert_etag_present(reply) }
|
47
|
-
warning { assert_last_modified_present(reply) }
|
48
|
-
end
|
49
|
-
|
50
|
-
test 'AS6002', 'GET Observation Patient Compartment for a specific patient' do
|
51
|
-
metadata {
|
52
|
-
links "#{REST_SPEC_LINK}#search"
|
53
|
-
requires resource: "Patient", methods: ["search"]
|
54
|
-
validates resource: "Patient", methods: ["search"]
|
55
|
-
requires resource: 'Observation', methods: ['read']
|
56
|
-
validates resource: 'Observation', methods: ['read']
|
57
|
-
}
|
58
|
-
|
59
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
60
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
61
|
-
|
62
|
-
patient_id = @client.client.params["patient"]
|
63
|
-
|
64
|
-
options = {
|
65
|
-
:id => patient_id,
|
66
|
-
:search => {
|
67
|
-
:flag => false,
|
68
|
-
:compartment => "Observation",
|
69
|
-
:parameters => nil
|
70
|
-
}
|
71
|
-
}
|
72
|
-
|
73
|
-
reply = @client.search(FHIR::Patient, options)
|
74
|
-
|
75
|
-
validate_observation_reply(reply)
|
76
|
-
end
|
77
|
-
|
78
|
-
test 'AS6003', 'GET Observation with Patient ID' do
|
79
|
-
metadata {
|
80
|
-
links "#{REST_SPEC_LINK}#search"
|
81
|
-
requires resource: "Patient", methods: ["read", "search"]
|
82
|
-
validates resource: "Patient", methods: ["read", "search"]
|
83
|
-
requires resource: 'Observation', methods: ['read', 'search']
|
84
|
-
validates resource: 'Observation', methods: ['read', 'search']
|
85
|
-
}
|
86
|
-
|
87
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
88
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
89
|
-
|
90
|
-
patient_id = @client.client.params["patient"]
|
91
|
-
|
92
|
-
options = {
|
93
|
-
search: {
|
94
|
-
flag: false,
|
95
|
-
compartment: nil,
|
96
|
-
parameters: {
|
97
|
-
patient: patient_id
|
98
|
-
}
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
reply = @client.search(FHIR::Observation, options)
|
103
|
-
|
104
|
-
validate_observation_reply(reply)
|
105
|
-
end
|
106
|
-
|
107
|
-
test 'AS6004', 'GET DiagnosticReport Patient Compartment for a specific patient' do
|
108
|
-
metadata {
|
109
|
-
links "#{REST_SPEC_LINK}#search"
|
110
|
-
requires resource: "Patient", methods: ["search"]
|
111
|
-
validates resource: "Patient", methods: ["search"]
|
112
|
-
requires resource: 'DiagnosticReport', methods: ['read']
|
113
|
-
validates resource: 'DiagnosticReport', methods: ['read']
|
114
|
-
}
|
115
|
-
|
116
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
117
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
118
|
-
|
119
|
-
patient_id = @client.client.params["patient"]
|
120
|
-
|
121
|
-
options = {
|
122
|
-
:id => patient_id,
|
123
|
-
:search => {
|
124
|
-
:flag => false,
|
125
|
-
:compartment => "DiagnosticReport",
|
126
|
-
:parameters => nil
|
127
|
-
}
|
128
|
-
}
|
129
|
-
|
130
|
-
reply = @client.search(FHIR::Patient, options)
|
131
|
-
|
132
|
-
validate_diagnostic_report_reply(reply)
|
133
|
-
end
|
134
|
-
|
135
|
-
test 'AS6005', 'GET DiagnosticReport with Patient ID' do
|
136
|
-
metadata {
|
137
|
-
links "#{REST_SPEC_LINK}#search"
|
138
|
-
requires resource: "Patient", methods: ["read", "search"]
|
139
|
-
validates resource: "Patient", methods: ["read", "search"]
|
140
|
-
requires resource: 'DiagnosticReport', methods: ['read', 'search']
|
141
|
-
validates resource: 'DiagnosticReport', methods: ['read', 'search']
|
142
|
-
}
|
143
|
-
|
144
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
145
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
146
|
-
|
147
|
-
patient_id = @client.client.params["patient"]
|
148
|
-
|
149
|
-
options = {
|
150
|
-
search: {
|
151
|
-
flag: false,
|
152
|
-
compartment: nil,
|
153
|
-
parameters: {
|
154
|
-
patient: patient_id
|
155
|
-
}
|
156
|
-
}
|
157
|
-
}
|
158
|
-
|
159
|
-
reply = @client.search(FHIR::DiagnosticReport, options)
|
160
|
-
|
161
|
-
validate_diagnostic_report_reply(reply)
|
162
|
-
end
|
163
|
-
|
164
|
-
private
|
165
|
-
|
166
|
-
def validate_diagnostic_report_reply(reply)
|
167
|
-
assert_response_ok(reply)
|
168
|
-
|
169
|
-
metabolic_index = -1
|
170
|
-
reply.resource.entry.each_with_index do |e,i|
|
171
|
-
r = e.resource
|
172
|
-
categories = r.category.coding.map{|c|c.code.downcase}
|
173
|
-
codes = r.code.coding.map{|c|c.code}
|
174
|
-
metabolic_index = i if categories.include?('ch') && codes.include?('24323-8')
|
175
|
-
end
|
176
|
-
warning { assert (metabolic_index >= 0), "Metabolic panel with category 'CH' code '24323-8' not found." }
|
177
|
-
metabolic_panel_entry = reply.resource.entry[metabolic_index] if metabolic_index >= 0
|
178
|
-
|
179
|
-
blood_index = -1
|
180
|
-
reply.resource.entry.each_with_index do |e,i|
|
181
|
-
r = e.resource
|
182
|
-
categories = r.category.coding.map{|c|c.code.downcase}
|
183
|
-
codes = r.code.coding.map{|c|c.code}
|
184
|
-
blood_index = i if categories.include?('hm') && codes.include?('58410-2')
|
185
|
-
end
|
186
|
-
warning { assert (metabolic_index >= 0), "Blood panel with category 'HM' code '58410-2' not found." }
|
187
|
-
blood_count_panel_entry = reply.resource.entry[blood_index] if blood_index >= 0
|
188
|
-
|
189
|
-
skip if metabolic_panel_entry.nil? && blood_count_panel_entry.nil?
|
190
|
-
|
191
|
-
[ metabolic_panel_entry, blood_count_panel_entry ].keep_if{|x|!x.nil?}.each do |entry|
|
192
|
-
report = entry.resource
|
193
|
-
assert report.category, "DiagnosticReport has no category"
|
194
|
-
if report.category.coding.to_a.find { |c| c.code.downcase == "ch" || c.code.downcase == "hm" }
|
195
|
-
assert report.category.coding.to_a.find { |c| c.system == "http://hl7.org/fhir/v2/0074" }, "Wrong category codeSystem used; expected HL7v2"
|
196
|
-
assert report.status, "No status for DiagnosticReport"
|
197
|
-
assert report.code, "DiagnosticReport has no code"
|
198
|
-
coding = report.code.coding.first
|
199
|
-
assert coding.system == "http://loinc.org", "The DiagnosticReport is coded using the wrong code system, is #{coding}, should be LOINC"
|
200
|
-
assert coding.code == "24323-8" || coding.code == "58410-2", "Wrong code used in DiagnosticReport"
|
201
|
-
assert report.subject, "DiagnosticReport has no subject"
|
202
|
-
assert report.effectivePeriod? || report.effectiveDateTime?, "DiagnosticReport has no effective date/time"
|
203
|
-
assert report.issued, "DiagnosticReport has no issued"
|
204
|
-
assert report.performer, "DiagnosticReport has no performer"
|
205
|
-
assert report.result, "DiagnosticReport has no results"
|
206
|
-
end
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
def validate_observation_reply(reply)
|
211
|
-
assert_response_ok(reply)
|
212
|
-
|
213
|
-
valid_observation_count = 0
|
214
|
-
|
215
|
-
reply.resource.entry.each do |entry|
|
216
|
-
observation = entry.resource
|
217
|
-
if observation.category.nil?
|
218
|
-
warning { assert observation.category, "An observation did not have a category"}
|
219
|
-
next
|
220
|
-
end
|
221
|
-
if observation.category.coding.to_a.find { |c| c.code == "laboratory" }
|
222
|
-
valid_observation_count += 1
|
223
|
-
assert !observation.status.empty?
|
224
|
-
assert observation.category
|
225
|
-
assert observation.category.coding.to_a.find{ |c| c.system == "http://hl7.org/fhir/observation-category" }, "Wrong category codeSystem used, expected FHIR ObservationCategory"
|
226
|
-
assert observation.subject
|
227
|
-
assert get_value(observation) || observation.dataAbsentReason
|
228
|
-
coding = observation.code.coding.first
|
229
|
-
assert coding.system == "http://loinc.org", "The observation is coded using the wrong code system, is #{coding.system}, should be LOINC"
|
230
|
-
warning { assert @loinc_codes.index(coding.code), "The Observation code does not match any of the expected codes within Sprint 6." }
|
231
|
-
end
|
232
|
-
end
|
233
|
-
warning { assert valid_observation_count > 0, "No laboratory Observations were found for this patient" }
|
234
|
-
skip unless valid_observation_count > 0
|
235
|
-
end
|
236
|
-
|
237
|
-
def get_value(observation)
|
238
|
-
observation.valueQuantity || observation.valueCodeableConcept || observation.valueString || observation.valueRange || observation.valueRatio || observation.valueSampledData || observation.valueAttachment || observation.valueTime || observation.valueDateTime || observation.valuePeriod
|
239
|
-
end
|
240
|
-
|
241
|
-
end
|
242
|
-
end
|
243
|
-
end
|
@@ -1,161 +0,0 @@
|
|
1
|
-
module Crucible
|
2
|
-
module Tests
|
3
|
-
class ArgonautSprint7Test < BaseSuite
|
4
|
-
def id
|
5
|
-
'ArgonautSprint7Test'
|
6
|
-
end
|
7
|
-
|
8
|
-
def description
|
9
|
-
'Argonaut Project Sprint 7 Test, to test success of servers at implementing goals of Argonaut Sprint 7'
|
10
|
-
end
|
11
|
-
|
12
|
-
def details
|
13
|
-
{
|
14
|
-
'Overview' => 'Argonaut Implementation Sprint 7 adds support for vital signs. We want to ensure that vital signs are represented as individual resources, but also grouped explicitly into sets (e.g. heart rate, blood pressure, respiratory rate should be associated so they can be interpreted as a set).',
|
15
|
-
'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).',
|
16
|
-
'FHIR API Calls' => 'For this sprint, EHRs should build on Sprint 6\'s support for: GET /Patient/{id}/Observation or GET /Observation?patient={id} Retrieve any Observations about a given Patient. Our focus for Sprint 7 is on vital signs, which can be identified with codes in the table below. Note that it\'s possible to search for vital signs at the grouping level (that is, search for "all sets of vital signs" via ?code=http://loinc.org|8716-3) or at the individual level (for example, search for "all heart rates" via ?code=http://loinc.org|8867-4). It\'s also possible to find vital signs at all levels via ?category=http://hl7.org/fhir/observation-category|vital-signs',
|
17
|
-
'Authorization' => 'This sprint does not have any additional authorization requirements.'
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(client1, client2 = nil)
|
22
|
-
super
|
23
|
-
@tags.append('argonautp1')
|
24
|
-
@loinc_codes = ['8716-3', '9279-1', '8867-4', '59408-5', '8310-5', '8302-2', '8306-3', '8287-5', '3141-9', '39156-5', '3140-1', '55284-4', '8480-6', '8462-4', '8478-0']
|
25
|
-
@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', '3141-9' => 'g, kg', '39156-5' => 'kg/m2', '3140-1' => 'm2', '8478-0' => 'mm[Hg]'}
|
26
|
-
@category = {id: 'argonautp1', title: 'Argonaut Phase 1'}
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
# Systolic blood pressure 8480-6 mm[Hg] This lives in component on a "systolic and diastolic" Observation
|
31
|
-
# Diastolic blood pressure 8462-4 mm[Hg] This lives in component on a "systolic and diastolic" Observation
|
32
|
-
|
33
|
-
test 'AS7001', 'GET patient by ID' do
|
34
|
-
metadata {
|
35
|
-
links "#{REST_SPEC_LINK}#read"
|
36
|
-
requires resource: "Patient", methods: ["read"]
|
37
|
-
validates resource: "Patient", methods: ["read"]
|
38
|
-
}
|
39
|
-
|
40
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
41
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
42
|
-
|
43
|
-
patient_id = @client.client.params["patient"]
|
44
|
-
|
45
|
-
reply = @client.read(FHIR::Patient, patient_id)
|
46
|
-
|
47
|
-
assert_response_ok(reply)
|
48
|
-
assert_equal patient_id, reply.id, 'Server returned wrong patient.'
|
49
|
-
warning { assert_valid_resource_content_type_present(reply) }
|
50
|
-
warning { assert_etag_present(reply) }
|
51
|
-
warning { assert_last_modified_present(reply) }
|
52
|
-
end
|
53
|
-
|
54
|
-
test 'AS7002', 'GET Observation Patient Compartment for a specific patient' do
|
55
|
-
metadata {
|
56
|
-
links "#{REST_SPEC_LINK}#search"
|
57
|
-
requires resource: "Patient", methods: ["search"]
|
58
|
-
validates resource: "Patient", methods: ["search"]
|
59
|
-
}
|
60
|
-
|
61
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
62
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
63
|
-
|
64
|
-
patient_id = @client.client.params["patient"]
|
65
|
-
|
66
|
-
options = {
|
67
|
-
:id => patient_id,
|
68
|
-
:search => {
|
69
|
-
:flag => false,
|
70
|
-
:compartment => "Observation",
|
71
|
-
:parameters => nil
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
reply = @client.search(FHIR::Patient, options)
|
76
|
-
|
77
|
-
validate_observation_reply(reply)
|
78
|
-
end
|
79
|
-
|
80
|
-
test 'AS7003', 'GET Observation with Patient ID' do
|
81
|
-
metadata {
|
82
|
-
links "#{REST_SPEC_LINK}#search"
|
83
|
-
requires resource: "Patient", methods: ["read", "search"]
|
84
|
-
validates resource: "Patient", methods: ["read", "search"]
|
85
|
-
}
|
86
|
-
|
87
|
-
assert !@client.client.try(:params).nil?, "The client was not authorized for the test"
|
88
|
-
assert @client.client.params["patient"], "No patient parameter was passed to the client"
|
89
|
-
|
90
|
-
patient_id = @client.client.params["patient"]
|
91
|
-
|
92
|
-
options = {
|
93
|
-
search: {
|
94
|
-
flag: false,
|
95
|
-
compartment: nil,
|
96
|
-
parameters: {
|
97
|
-
patient: patient_id
|
98
|
-
}
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
reply = @client.search(FHIR::Observation, options)
|
103
|
-
|
104
|
-
validate_observation_reply(reply)
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
private
|
109
|
-
|
110
|
-
def validate_observation_reply(reply)
|
111
|
-
assert_response_ok(reply)
|
112
|
-
|
113
|
-
valid_observation_count = 0
|
114
|
-
|
115
|
-
reply.resource.entry.each do |entry|
|
116
|
-
observation = entry.resource
|
117
|
-
if observation.category.nil?
|
118
|
-
warning { assert observation.category, "An observation did not have a category"}
|
119
|
-
next
|
120
|
-
end
|
121
|
-
if observation.category.coding.to_a.find { |c| c.code == "vital-signs" }
|
122
|
-
valid_observation_count += 1
|
123
|
-
assert !observation.status.empty?
|
124
|
-
assert observation.category
|
125
|
-
assert observation.category.coding.to_a.find { |c| c.system == "http://hl7.org/fhir/observation-category" }, "Wrong category codeSystem used, expected FHIR ObservationCategory"
|
126
|
-
assert observation.subject
|
127
|
-
assert get_value(observation) || observation.dataAbsentReason || !observation.component.blank?
|
128
|
-
coding = observation.code.coding.first
|
129
|
-
assert coding.system == "http://loinc.org", "The observation is coded using the wrong code system, is #{coding.system}, should be LOINC"
|
130
|
-
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" }
|
131
|
-
if @loinc_code_units[coding.code] && get_value(observation)
|
132
|
-
value = get_value(observation)
|
133
|
-
if value.respond_to? :unit
|
134
|
-
assert_equal @loinc_code_units[coding.code], value.unit, "The unit of the observation is not correct"
|
135
|
-
end
|
136
|
-
end
|
137
|
-
# systolic and diastolic in components
|
138
|
-
if coding.code == '55284-4'
|
139
|
-
assert observation.component.length >= 2, "expected at least 2 components for combined blood pressure grouping structure"
|
140
|
-
systolic = observation.component.to_a.find {|component| component.code.coding.first.code == '8480-6'}
|
141
|
-
diastolic = observation.component.to_a.find {|component| component.code.coding.first.code == '8462-4'}
|
142
|
-
assert !systolic.blank?, "could not find a systolic blood pressure on a bp grouping vital sign observation"
|
143
|
-
assert !diastolic.blank?, "could not find a diastolic blood pressure on a bp grouping vital sign observation"
|
144
|
-
assert get_value(systolic), "systolic blood pressure did not have a value"
|
145
|
-
assert_equal 'mmHg', get_value(systolic).unit, "The unit of the systolic blood pressure is not correct"
|
146
|
-
assert get_value(diastolic), "systolic blood pressure did not have a value"
|
147
|
-
assert_equal 'mmHg', get_value(diastolic).unit, "The unit of the systolic blood pressure is not correct"
|
148
|
-
end
|
149
|
-
|
150
|
-
end
|
151
|
-
end
|
152
|
-
warning { assert valid_observation_count > 0, "No vital signs Observations were found for this patient" }
|
153
|
-
skip unless valid_observation_count > 0
|
154
|
-
end
|
155
|
-
|
156
|
-
def get_value(observation)
|
157
|
-
observation.valueQuantity || observation.valueCodeableConcept || observation.valueString || observation.valueRange || observation.valueRatio || observation.valueSampledData || observation.valueAttachment || observation.valueTime || observation.valueDateTime || observation.valuePeriod
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|