plan_executor 1.0.2 → 1.8.0

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