plan_executor 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +44 -0
  3. data/.simplecov +16 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +26 -0
  6. data/Gemfile.lock +197 -0
  7. data/LICENSE +201 -0
  8. data/README.md +126 -0
  9. data/Rakefile +25 -0
  10. data/fixtures/daf/conformance-daf-query-responder.xml +1471 -0
  11. data/fixtures/diagnostic_order/do-100.xml +64 -0
  12. data/fixtures/diagnostic_order/do-200.xml +121 -0
  13. data/fixtures/diagnostic_order/do-300.xml +91 -0
  14. data/fixtures/diagnostic_order/do-400.xml +88 -0
  15. data/fixtures/diagnostic_report/dr-100.xml +96 -0
  16. data/fixtures/diagnostic_report/dr-200.xml +125 -0
  17. data/fixtures/diagnostic_report/dr-300.xml +132 -0
  18. data/fixtures/diagnostic_report/dr-400.xml +121 -0
  19. data/fixtures/financial/claim-example-average.xml +168 -0
  20. data/fixtures/financial/claim-example-simple.xml +67 -0
  21. data/fixtures/observation/obs-100.xml +58 -0
  22. data/fixtures/observation/obs-101.xml +58 -0
  23. data/fixtures/observation/obs-200.xml +125 -0
  24. data/fixtures/observation/obs-300.xml +106 -0
  25. data/fixtures/observation/obs-301.xml +106 -0
  26. data/fixtures/observation/obs-302.xml +106 -0
  27. data/fixtures/observation/obs-303.xml +106 -0
  28. data/fixtures/observation/obs-304.xml +106 -0
  29. data/fixtures/observation/obs-400.xml +87 -0
  30. data/fixtures/observation/obs-401.xml +95 -0
  31. data/fixtures/observation/obs-402.xml +95 -0
  32. data/fixtures/observation/obs-403.xml +84 -0
  33. data/fixtures/observation/obs-404.xml +84 -0
  34. data/fixtures/observation/obs-405.xml +83 -0
  35. data/fixtures/observation/obs-406.xml +83 -0
  36. data/fixtures/observation/obs-407.xml +70 -0
  37. data/fixtures/observation/obs-408.xml +84 -0
  38. data/fixtures/observation/obs-uslab-example5.xml +102 -0
  39. data/fixtures/order/order-100.xml +61 -0
  40. data/fixtures/order/order-200.xml +61 -0
  41. data/fixtures/order/order-300.xml +61 -0
  42. data/fixtures/order/order-400.xml +61 -0
  43. data/fixtures/order_response/ordresp-100.xml +79 -0
  44. data/fixtures/order_response/ordresp-110.xml +79 -0
  45. data/fixtures/order_response/ordresp-200.xml +79 -0
  46. data/fixtures/order_response/ordresp-210.xml +79 -0
  47. data/fixtures/order_response/ordresp-300.xml +79 -0
  48. data/fixtures/order_response/ordresp-310.xml +79 -0
  49. data/fixtures/order_response/ordresp-400.xml +79 -0
  50. data/fixtures/order_response/ordresp-410.xml +79 -0
  51. data/fixtures/organization/org-uslab-example3.xml +49 -0
  52. data/fixtures/patient/patient-example-updated.xml +140 -0
  53. data/fixtures/patient/patient-example-us-extensions(us01).xml +81 -0
  54. data/fixtures/patient/patient-example.xml +132 -0
  55. data/fixtures/patient/patient-format-example.xml +101 -0
  56. data/fixtures/patient/patient-minimal.xml +9 -0
  57. data/fixtures/patient/patient-uslab-example1.xml +44 -0
  58. data/fixtures/practitioner/pract-uslab-example1.xml +18 -0
  59. data/fixtures/practitioner/pract-uslab-example3.xml +36 -0
  60. data/fixtures/record/condition-example-f201-fever.xml +63 -0
  61. data/fixtures/record/condition-example-f205-infection.xml +20 -0
  62. data/fixtures/record/diagnosticreport-example-f201-brainct.xml +18 -0
  63. data/fixtures/record/encounter-example-f201-20130404.xml +17 -0
  64. data/fixtures/record/encounter-example-f202-20130128.xml +17 -0
  65. data/fixtures/record/observation-example-f202-temperature.xml +60 -0
  66. data/fixtures/record/organization-example-f201-aumc.xml +5 -0
  67. data/fixtures/record/organization-example-f203-bumc.xml +5 -0
  68. data/fixtures/record/patient-example-f201-roel.xml +16 -0
  69. data/fixtures/record/practitioner-example-f201-ab.xml +14 -0
  70. data/fixtures/record/procedure-example-f201-tpf.xml +23 -0
  71. data/fixtures/scheduling/appointment-simple.xml +24 -0
  72. data/fixtures/scheduling/appointmentresponse-patient-simple.xml +12 -0
  73. data/fixtures/scheduling/appointmentresponse-practitioner-simple.xml +12 -0
  74. data/fixtures/scheduling/practitioner-simple.xml +10 -0
  75. data/fixtures/scheduling/schedule-simple.xml +12 -0
  76. data/fixtures/scheduling/slot-simple.xml +10 -0
  77. data/fixtures/specimen/spec-100.xml +65 -0
  78. data/fixtures/specimen/spec-400.xml +70 -0
  79. data/fixtures/specimen/spec-uslab-example1.xml +82 -0
  80. data/fixtures/validation/observation.profile.xml +2045 -0
  81. data/fixtures/validation/observations/observation-example(example).xml +50 -0
  82. data/lib/FHIR_structure.json +529 -0
  83. data/lib/daf_resource_generator.rb +94 -0
  84. data/lib/data/fhir_structure.rb +8 -0
  85. data/lib/data/resources.rb +138 -0
  86. data/lib/executor.rb +56 -0
  87. data/lib/ext/client.rb +27 -0
  88. data/lib/ext/client_reply.rb +19 -0
  89. data/lib/plan_executor.rb +31 -0
  90. data/lib/resource_generator.rb +656 -0
  91. data/lib/tasks/tasks.rake +329 -0
  92. data/lib/tasks/templates/summary.html.erb +163 -0
  93. data/lib/test_result.rb +69 -0
  94. data/lib/tests/assertions.rb +261 -0
  95. data/lib/tests/base_test.rb +117 -0
  96. data/lib/tests/suites/argonaut_resprint_1_test.rb +260 -0
  97. data/lib/tests/suites/argonaut_resprint_2_test.rb +369 -0
  98. data/lib/tests/suites/argonaut_resprint_3_test.rb +309 -0
  99. data/lib/tests/suites/argonaut_sprint_1_test.rb +187 -0
  100. data/lib/tests/suites/argonaut_sprint_2_test.rb +115 -0
  101. data/lib/tests/suites/argonaut_sprint_3_test.rb +208 -0
  102. data/lib/tests/suites/argonaut_sprint_4_test.rb +335 -0
  103. data/lib/tests/suites/argonaut_sprint_5_test.rb +196 -0
  104. data/lib/tests/suites/argonaut_sprint_6_test.rb +243 -0
  105. data/lib/tests/suites/argonaut_sprint_7_test.rb +161 -0
  106. data/lib/tests/suites/base_suite.rb +116 -0
  107. data/lib/tests/suites/connectathon_audit_track.rb +354 -0
  108. data/lib/tests/suites/connectathon_fetch_patient_record.rb +443 -0
  109. data/lib/tests/suites/connectathon_financial_track.rb +380 -0
  110. data/lib/tests/suites/connectathon_lab_order_track.rb +239 -0
  111. data/lib/tests/suites/connectathon_patient_track.rb +364 -0
  112. data/lib/tests/suites/connectathon_profile_validation.rb +101 -0
  113. data/lib/tests/suites/connectathon_scheduling_track.rb +266 -0
  114. data/lib/tests/suites/connectathon_terminology_track.rb +242 -0
  115. data/lib/tests/suites/daf_profiles_test.rb +431 -0
  116. data/lib/tests/suites/format_test.rb +453 -0
  117. data/lib/tests/suites/history_test.rb +311 -0
  118. data/lib/tests/suites/read_test.rb +104 -0
  119. data/lib/tests/suites/resource_test.rb +553 -0
  120. data/lib/tests/suites/search_test.rb +219 -0
  121. data/lib/tests/suites/search_test_robust.rb +172 -0
  122. data/lib/tests/suites/sprinkler_search_test.rb +660 -0
  123. data/lib/tests/suites/suite_engine.rb +114 -0
  124. data/lib/tests/suites/transaction_test.rb +571 -0
  125. data/lib/tests/testscripts/base_testscript.rb +480 -0
  126. data/lib/tests/testscripts/testscript_engine.rb +81 -0
  127. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-json.xml +348 -0
  128. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-base-client-id-xml.xml +348 -0
  129. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-json.xml +420 -0
  130. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Client Assigned Id/track1-patient-bonus-client-id-xml.xml +420 -0
  131. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/README.html +68 -0
  132. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-json.xml +352 -0
  133. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-base-server-id-xml.xml +352 -0
  134. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-json.xml +421 -0
  135. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/Server Assigned Id/track1-patient-bonus-server-id-xml.xml +421 -0
  136. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/conformance/PatientConformance.xml +34 -0
  137. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers-min.json +45 -0
  138. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers-min.xml +26 -0
  139. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers.json +100 -0
  140. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-PeterChalmers.xml +102 -0
  141. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers-min.json +53 -0
  142. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers-min.xml +30 -0
  143. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers.json +108 -0
  144. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-create-bonus-PeterChalmers.xml +108 -0
  145. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers-min.json +45 -0
  146. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers-min.xml +26 -0
  147. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers.json +100 -0
  148. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-PeterChalmers.xml +102 -0
  149. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers-min.json +53 -0
  150. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers-min.xml +30 -0
  151. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers.json +108 -0
  152. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus1-PeterChalmers.xml +107 -0
  153. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers-min.json +53 -0
  154. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers-min.xml +31 -0
  155. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers.json +108 -0
  156. data/lib/tests/testscripts/xml/Connectathon11/Track1-Patient/_reference/resources/patient-update-bonus2-PeterChalmers.xml +106 -0
  157. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/C-CDA_R2-1_CCD-ussg.xml +3414 -0
  158. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A1-empty-on-instance.xml +9 -0
  159. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A2-empty-by-ref.xml +15 -0
  160. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A3-empty-by-identifier.xml +13 -0
  161. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-A4-empty-by-contained.xml +15 -0
  162. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B1-CCDA-on-instance.xml +15 -0
  163. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B2-CCDA-by-ref.xml +21 -0
  164. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B3-CCDA-by-identifier.xml +19 -0
  165. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/parameters-B4-CCDA-by-contained.xml +21 -0
  166. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaire-sdc-profile-example-ussg-fht.xml +3905 -0
  167. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-CCDA.xml +190 -0
  168. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/_reference/resources/questionnaireresponse-expected-ussg-fht-empty.xml +177 -0
  169. data/lib/tests/testscripts/xml/Connectathon11/Track11-SDC/track11-sdc-prepop-xml.xml +142 -0
  170. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite1-expand-client-id.xml +925 -0
  171. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Client Assigned Id/track2-ts-suite2-expand-filter-client-id.xml +930 -0
  172. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite1-expand-server-id.xml +953 -0
  173. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Expand/Server Assigned Id/track2-ts-suite2-expand-filter-server-id.xml +958 -0
  174. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-loinc-lookup-xml.xml +224 -0
  175. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Lookup/track2-ts-suite5-snomed-lookup-xml.xml +224 -0
  176. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/README.html +85 -0
  177. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Translate/track2-ts-suite6-translate-xml.xml +224 -0
  178. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite3-validate-code-client-id.xml +1807 -0
  179. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Client Assigned Id/track2-ts-suite4-validate-code-client-id.xml +714 -0
  180. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite3-validate-code-server-id.xml +1835 -0
  181. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/Validate-code/Server Assigned Id/track2-ts-suite4-validate-code-server-id.xml +742 -0
  182. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ConceptMapSuite6Conformance.xml +11 -0
  183. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite1Conformance.xml +17 -0
  184. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite2Conformance.xml +17 -0
  185. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite3Conformance.xml +14 -0
  186. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite4Conformance.xml +14 -0
  187. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/conformance/ValueSetSuite5Conformance.xml +11 -0
  188. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-a.xml +11 -0
  189. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-2-b.xml +11 -0
  190. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-a.xml +13 -0
  191. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-3-b.xml +13 -0
  192. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-a.xml +15 -0
  193. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/extensional-case-1-input-4-4-b.xml +15 -0
  194. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-2.xml +10 -0
  195. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-loinc-input-5-3.xml +11 -0
  196. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-2.xml +10 -0
  197. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/lookup-snomed-input-5-3.xml +11 -0
  198. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-2.xml +14 -0
  199. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/input/translate-conceptmap-input-6-3.xml +15 -0
  200. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-expand-min.xml +47 -0
  201. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-1-filter-min.xml +23 -0
  202. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-expand-min.xml +132 -0
  203. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-2-filter-min.xml +38 -0
  204. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-expand-min.xml +252 -0
  205. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-3-filter-min.xml +58 -0
  206. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-expand-min.xml +57 -0
  207. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/extensional-case-4-filter-min.xml +28 -0
  208. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-expand-min.xml +347 -0
  209. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-1-filter-min.xml +33 -0
  210. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-expand-min.xml +637 -0
  211. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-2-filter-min.xml +33 -0
  212. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/intensional-case-3-filter-min.xml +58 -0
  213. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-loinc-min.xml +11 -0
  214. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/lookup-snomed-min.xml +11 -0
  215. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-invalid-min.xml +10 -0
  216. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite3-valid-min.xml +7 -0
  217. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-invalid-min.xml +10 -0
  218. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/suite4-valid-min.xml +7 -0
  219. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/output/translate-conceptmap-min.xml +17 -0
  220. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-1.xml +55 -0
  221. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-2.xml +122 -0
  222. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-3.xml +222 -0
  223. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/extensional-case-4.xml +65 -0
  224. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-1.xml +31 -0
  225. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-2.xml +31 -0
  226. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/intensional-case-3.xml +31 -0
  227. data/lib/tests/testscripts/xml/Connectathon11/Track2-Terminology/_reference/resources/translate-conceptmap-case-1.xml +145 -0
  228. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/conformance/DecisionSupportServiceModule-Evaluate.xml +17 -0
  229. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-request-payload.xml +26 -0
  230. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-min-payload.xml +7 -0
  231. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-incomplete-response-payload.xml +332 -0
  232. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-request-payload.xml +28 -0
  233. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-min-payload.xml +7 -0
  234. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-malformed-response-payload.xml +20 -0
  235. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-request-payload.xml +28 -0
  236. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-min-payload.xml +7 -0
  237. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-response-payload.xml +332 -0
  238. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-request-payload.xml +28 -0
  239. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-min-payload.xml +7 -0
  240. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/ecrs-fhir-cdc-immunizations-unauthorized-response-payload.xml +8 -0
  241. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-request-payload.xml +176 -0
  242. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload-min.xml +32 -0
  243. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/_reference/resources/gao-assessment-response-payload.xml +80 -0
  244. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-cdc-immunization.xml +290 -0
  245. data/lib/tests/testscripts/xml/Connectathon11/Track3-CDS-on-FHIR/track3-cds-evaluate-gao-profile.xml +110 -0
  246. data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/Client_Assigned_Id/TestScript_FHIR-Genomics.xml +170 -0
  247. data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-1.xml +31 -0
  248. data/lib/tests/testscripts/xml/Connectathon11/Track6-FHIR-Genomics/_reference/resources/sequence-example-2.xml +31 -0
  249. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Actors.png +0 -0
  250. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder100-xml.xml +590 -0
  251. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder200-xml.xml +587 -0
  252. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder300-xml.xml +612 -0
  253. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Client_Assigned_Id/track7-laborder400-xml.xml +635 -0
  254. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Peer-to-Peer/track7-laborder100-peer2peer-xml.xml +752 -0
  255. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/Thumbs.db +0 -0
  256. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/conformance/LabOrderLabReport-CreateDeleteReadUpdate.xml +187 -0
  257. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/conformance/html.xslt +45 -0
  258. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100-update.xml +64 -0
  259. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-100.xml +64 -0
  260. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200-update.xml +121 -0
  261. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-200.xml +121 -0
  262. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300-update.xml +91 -0
  263. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-300.xml +91 -0
  264. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-400-update.xml +88 -0
  265. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticOrder/do-400.xml +88 -0
  266. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-100.xml +96 -0
  267. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-200.xml +125 -0
  268. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-300.xml +132 -0
  269. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/DiagnosticReport/dr-400.xml +121 -0
  270. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-100.xml +58 -0
  271. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-101.xml +58 -0
  272. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-200.xml +125 -0
  273. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-300.xml +106 -0
  274. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-301.xml +106 -0
  275. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-302.xml +106 -0
  276. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-303.xml +106 -0
  277. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-304.xml +106 -0
  278. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-400.xml +87 -0
  279. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-401.xml +95 -0
  280. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-402.xml +95 -0
  281. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-403.xml +84 -0
  282. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-404.xml +84 -0
  283. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-405.xml +83 -0
  284. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-406.xml +83 -0
  285. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-407.xml +70 -0
  286. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-408.xml +84 -0
  287. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Observation/obs-uslab-example5.xml +102 -0
  288. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-100.xml +61 -0
  289. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-200.xml +61 -0
  290. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-300.xml +61 -0
  291. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Order/order-400.xml +61 -0
  292. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-100.xml +79 -0
  293. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-110.xml +79 -0
  294. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-200.xml +79 -0
  295. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-210.xml +79 -0
  296. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-300.xml +79 -0
  297. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-310.xml +79 -0
  298. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-400.xml +79 -0
  299. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/OrderResponse/ordresp-410.xml +79 -0
  300. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Organization/org-uslab-example3.xml +49 -0
  301. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Patient/patient-uslab-example1.xml +44 -0
  302. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example1.xml +18 -0
  303. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Practitioner/pract-uslab-example3.xml +36 -0
  304. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/Thumbs.db +0 -0
  305. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-100.xml +65 -0
  306. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-400.xml +70 -0
  307. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Specimen/spec-uslab-example1.xml +82 -0
  308. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 1 Document.txt +122 -0
  309. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 2 Document.txt +103 -0
  310. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 3 Document.txt +201 -0
  311. data/lib/tests/testscripts/xml/Connectathon11/Track7-LabOrderLabReport/_reference/resources/Testscript 4 Document.txt +310 -0
  312. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/MedicationStatementCreate.xml +11 -0
  313. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/conformance/PatientSearchType.xml +15 -0
  314. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-create.json +39 -0
  315. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-patch.json +3 -0
  316. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json-if-match.xml +321 -0
  317. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-medicationstatement-json.xml +303 -0
  318. data/lib/tests/testscripts/xml/Connectathon11/Track9-Patch/track9-patch-peer2peer-patient-json.xml +235 -0
  319. data/plan_executor.gemspec +14 -0
  320. data/test/fixtures/diagnostic_bundle.xml +51 -0
  321. data/test/fixtures/lab_results_bundle.xml +49 -0
  322. data/test/fixtures/observation_bundle.json +61 -0
  323. data/test/fixtures/testscript-example.xml +202 -0
  324. data/test/fixtures/testscript-history.xml +143 -0
  325. data/test/fixtures/testscript-readtest.xml +272 -0
  326. data/test/fixtures/testscript-search.xml +282 -0
  327. data/test/fixtures/testscript-update.xml +147 -0
  328. data/test/fixtures/vital_signs_bundle.xml +117 -0
  329. data/test/test_helper.rb +8 -0
  330. data/test/unit/argonaut_sprint6_test.rb +31 -0
  331. data/test/unit/argonaut_sprint7_test.rb +21 -0
  332. data/test/unit/basic_test.rb +27 -0
  333. data/test/unit/fetch_patient_record_test.rb +357 -0
  334. data/test/unit/financial_test.rb +41 -0
  335. data/test/unit/fixtures_test.rb +45 -0
  336. data/test/unit/metadata_test.rb +33 -0
  337. metadata +394 -0
@@ -0,0 +1,321 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <TestScript xmlns="http://hl7.org/fhir">
3
+ <id value="track9-patch-medicationstatement-json-if-match"/>
4
+
5
+ <url value="http://wildfhir.aegis.net/fhir/TestScript/track9-patch-medicationstatement-json-if-match"/>
6
+ <name value="FHIR Connectathon 11 - Track 9 - Patch - PATCH for MedicationStatement with If-Match option"/>
7
+ <status value="draft"/>
8
+ <publisher value="Cerner, AEGIS.net, Inc."/>
9
+ <contact>
10
+ <name value="Dennis Patterson"/>
11
+ <telecom>
12
+ <system value="email"/>
13
+ <value value="dennis.patterson@cerner.com"/>
14
+ <use value="work"/>
15
+ </telecom>
16
+ </contact>
17
+ <contact>
18
+ <name value="Touchstone Support"/>
19
+ <telecom>
20
+ <system value="email"/>
21
+ <value value="Touchstone_Support@aegis.net"/>
22
+ <use value="work"/>
23
+ </telecom>
24
+ </contact>
25
+ <date value="2016-01-05"/>
26
+ <description value="FHIR Connectathon 11 - Track 9 - Patch - Send PATCH with If-Match option to EHR /MedicationStatement resource using JSON Patch format to update the MedicationStatement.status."/>
27
+ <useContext>
28
+ <coding>
29
+ <system value="urn:iso:std:iso:3166"/>
30
+ <code value="US"/>
31
+ <display value="United States of America (the)"/>
32
+ </coding>
33
+ </useContext>
34
+ <requirements value="MedicationStatement Create and Patch Operations; Patient Search Operation"/>
35
+ <copyright value="© Cerner 2015+, © AEGIS.net, Inc. 2015+"/>
36
+
37
+ <metadata>
38
+ <capability>
39
+ <required value="true"/>
40
+ <description value="Patient search operation"/>
41
+ <link value="http://hl7.org/fhir/http.html#search"/>
42
+ <conformance>
43
+ <reference value="/Connectathon11/Track9-Patch/_reference/conformance/PatientSearchType.xml" />
44
+ </conformance>
45
+ </capability>
46
+ <capability>
47
+ <required value="true"/>
48
+ <description value="MedicationStatement create and patch operations - patch is currently experimental so there is no formal definition within the conformance statement at this time."/>
49
+ <link value="http://hl7.org/fhir/http.html#create"/>
50
+ <link value="http://hl7.org/fhir/http.html#update"/>
51
+ <conformance>
52
+ <reference value="/Connectathon11/Track9-Patch/_reference/conformance/MedicationStatementCreate.xml" />
53
+ </conformance>
54
+ </capability>
55
+ </metadata>
56
+
57
+ <fixture id="medicationstatement-create">
58
+ <resource>
59
+ <reference value="/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-create.json"/>
60
+ </resource>
61
+ </fixture>
62
+ <fixture id="medicationstatement-patch">
63
+ <resource>
64
+ <reference value="/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-patch.json"/>
65
+ </resource>
66
+ </fixture>
67
+
68
+ <variable>
69
+ <name value="patientId"/>
70
+ <path value="Patient/id" />
71
+ <sourceId value="patient-search-response"/>
72
+ </variable>
73
+ <variable>
74
+ <name value="medicationStatementETag"/>
75
+ <headerField value="ETag"/>
76
+ <sourceId value="medicationstatement-create-response"/>
77
+ </variable>
78
+ <variable>
79
+ <name value="medicationStatementId"/>
80
+ <path value="MedicationStatement/id"/>
81
+ <sourceId value="medicationstatement-search-response"/>
82
+ </variable>
83
+ <variable>
84
+ <name value="searchParamPatient"/>
85
+ <path value="MedicationStatement/patient/reference" />
86
+ <sourceId value="medicationstatement-create" />
87
+ </variable>
88
+ <variable>
89
+ <name value="searchParamStatus"/>
90
+ <path value="MedicationStatement/status" />
91
+ <sourceId value="medicationstatement-create" />
92
+ </variable>
93
+
94
+ <test id="Step1-SearchForPatient">
95
+ <name value="Step1-SearchForPatient"/>
96
+ <description value="Search for a Patient on which to create a MedicationStatement."/>
97
+
98
+ <action>
99
+ <operation>
100
+ <type>
101
+ <code value="search"/>
102
+ </type>
103
+ <resource value="Patient"/>
104
+ <description value="Search for the patient by name."/>
105
+ <accept value="json"/>
106
+ <contentType value="json"/>
107
+ <params value="?name=Connectathon11"/>
108
+ <responseId value="patient-search-response" />
109
+ </operation>
110
+ </action>
111
+ <action>
112
+ <assert>
113
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
114
+ <response value="okay"/>
115
+ </assert>
116
+ </action>
117
+ <action>
118
+ <assert>
119
+ <description value="Confirm that the returned format is JSON."/>
120
+ <contentType value="json"/>
121
+ </assert>
122
+ </action>
123
+ <action>
124
+ <assert>
125
+ <description value="Confirm that the returned resource type is Bundle."/>
126
+ <resource value="Bundle"/>
127
+ </assert>
128
+ </action>
129
+ <action>
130
+ <assert>
131
+ <description value="Confirm that there is at least one record returned. There could be other Patient records returned."/>
132
+ <operator value="greaterThan"/>
133
+ <path value="/Bundle/total"/>
134
+ <value value="0"/>
135
+ </assert>
136
+ </action>
137
+ </test>
138
+
139
+ <test id="Step2-Create-MedicationStatement">
140
+ <name value="Step2-Create-MedicationStatement"/>
141
+ <description value="Create a MedicationStatement for the Patient found in step 1."/>
142
+
143
+ <action>
144
+ <operation>
145
+ <type>
146
+ <code value="create"/>
147
+ </type>
148
+ <resource value="MedicationStatement"/>
149
+ <accept value="json"/>
150
+ <contentType value="json"/>
151
+ <responseId value="medicationstatement-create-response" />
152
+ <sourceId value="medicationstatement-create"/>
153
+ </operation>
154
+ </action>
155
+ <action>
156
+ <assert>
157
+ <description value="Confirm that the returned HTTP status is 200(OK) or 201(CREATED)."/>
158
+ <operator value="in"/>
159
+ <responseCode value="200,201"/>
160
+ </assert>
161
+ </action>
162
+ <action>
163
+ <assert>
164
+ <description value="Confirm that the HTTP Header ETag is present. Warning only until this TestScript has been verified accurate."/>
165
+ <headerField value="ETag"/>
166
+ <operator value="notEmpty"/>
167
+ <warningOnly value="true"/>
168
+ </assert>
169
+ </action>
170
+ <action>
171
+ <assert>
172
+ <description value="Confirm that the HTTP Header Location is present. Warning only as the Location is not required on the response."/>
173
+ <headerField value="Location"/>
174
+ <operator value="notEmpty"/>
175
+ <warningOnly value="true"/>
176
+ </assert>
177
+ </action>
178
+
179
+ <action>
180
+ <operation>
181
+ <type>
182
+ <code value="search"/>
183
+ </type>
184
+ <resource value="MedicationStatement"/>
185
+ <description value="Search for the created MedicationStatement by the known unique identifier."/>
186
+ <accept value="json"/>
187
+ <contentType value="json"/>
188
+ <params value="?patient=${searchParamPatient}&amp;status=${searchParamStatus}"/>
189
+ <responseId value="medicationstatement-search-response" />
190
+ </operation>
191
+ </action>
192
+ <action>
193
+ <assert>
194
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
195
+ <response value="okay"/>
196
+ </assert>
197
+ </action>
198
+ <action>
199
+ <assert>
200
+ <description value="Confirm that the returned format is JSON."/>
201
+ <contentType value="json"/>
202
+ </assert>
203
+ </action>
204
+ <action>
205
+ <assert>
206
+ <description value="Confirm that the returned resource type is Bundle."/>
207
+ <resource value="Bundle"/>
208
+ </assert>
209
+ </action>
210
+ <action>
211
+ <assert>
212
+ <description value="Confirm that there is at least one record returned. There could be other MedicationStatement records returned."/>
213
+ <operator value="greaterThan"/>
214
+ <path value="/Bundle/total"/>
215
+ <value value="0"/>
216
+ </assert>
217
+ </action>
218
+ <action>
219
+ <assert>
220
+ <description value="Confirm that bundle contains the created MedicationStatement. Warning only until this TestScript has been verified accurate."/>
221
+ <operator value="equals"/>
222
+ <path value="MedicationStatement/patient/reference"/>
223
+ <value value="Patient/${patientId}"/>
224
+ <warningOnly value="true"/>
225
+ </assert>
226
+ </action>
227
+ </test>
228
+
229
+ <test id="Step3-PatchMedicationStatement">
230
+ <name value="Step3-PatchMedicationStatement"/>
231
+ <description value="Update the MedicationStatement to a 'completed' status using PATCH"/>
232
+
233
+ <action>
234
+ <operation>
235
+ <type>
236
+ <code value="patch"/>
237
+ </type>
238
+ <resource value="MedicationStatement"/>
239
+ <accept value="json"/>
240
+ <contentType value="json_patch"/>
241
+ <params value="/${medicationStatementId}"/>
242
+ <requestHeader>
243
+ <field value="If-Match"/>
244
+ <value value="${medicationStatementETag}"/>
245
+ </requestHeader>
246
+ <sourceId value="medicationstatement-patch"/>
247
+ </operation>
248
+ </action>
249
+ <action>
250
+ <assert>
251
+ <description value="Confirm that the patch operation is a replace."/>
252
+ <direction value="request" />
253
+ <path value="$[0].op"/>
254
+ <value value="replace"/>
255
+ </assert>
256
+ </action>
257
+ <action>
258
+ <assert>
259
+ <description value="Confirm that the patch is replacing the status element value."/>
260
+ <direction value="request" />
261
+ <path value="$[0].path"/>
262
+ <value value="/status"/>
263
+ </assert>
264
+ </action>
265
+ <action>
266
+ <assert>
267
+ <description value="Confirm that the patch is setting the status value to completed."/>
268
+ <direction value="request" />
269
+ <path value="$[0]/value"/>
270
+ <value value="completed"/>
271
+ </assert>
272
+ </action>
273
+ <action>
274
+ <assert>
275
+ <description value="Confirm that the returned HTTP status is 200(OK) or 204(NO CONTENT)."/>
276
+ <operator value="in"/>
277
+ <responseCode value="200,204"/>
278
+ </assert>
279
+ </action>
280
+
281
+ <action>
282
+ <operation>
283
+ <type>
284
+ <code value="read"/>
285
+ </type>
286
+ <resource value="MedicationStatement"/>
287
+ <description value="Read the patched MedicationStatement back to verify contents."/>
288
+ <accept value="json"/>
289
+ <contentType value="json"/>
290
+ <params value="/${medicationStatementId}" />
291
+ </operation>
292
+ </action>
293
+ <action>
294
+ <assert>
295
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
296
+ <response value="okay"/>
297
+ </assert>
298
+ </action>
299
+ <action>
300
+ <assert>
301
+ <description value="Confirm that the returned format is JSON."/>
302
+ <contentType value="json"/>
303
+ </assert>
304
+ </action>
305
+ <action>
306
+ <assert>
307
+ <description value="Confirm that the returned resource type is MedicationStatement."/>
308
+ <resource value="MedicationStatement"/>
309
+ </assert>
310
+ </action>
311
+ <action>
312
+ <assert>
313
+ <description value="Confirm that bundle contains the updated MedicationStatement. Warning only until this TestScript has been verified accurate."/>
314
+ <operator value="equals"/>
315
+ <path value="MedicationStatement/status"/>
316
+ <value value="completed"/>
317
+ <warningOnly value="true"/>
318
+ </assert>
319
+ </action>
320
+ </test>
321
+ </TestScript>
@@ -0,0 +1,303 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <TestScript xmlns="http://hl7.org/fhir">
3
+ <id value="track9-patch-medicationstatement-json"/>
4
+
5
+ <url value="http://wildfhir.aegis.net/fhir/TestScript/track9-patch-medicationstatement-json"/>
6
+ <name value="FHIR Connectathon 11 - Track 9 - Patch - PATCH for MedicationStatement"/>
7
+ <status value="draft"/>
8
+ <publisher value="Cerner, AEGIS.net, Inc."/>
9
+ <contact>
10
+ <name value="Dennis Patterson"/>
11
+ <telecom>
12
+ <system value="email"/>
13
+ <value value="dennis.patterson@cerner.com"/>
14
+ <use value="work"/>
15
+ </telecom>
16
+ </contact>
17
+ <contact>
18
+ <name value="Touchstone Support"/>
19
+ <telecom>
20
+ <system value="email"/>
21
+ <value value="Touchstone_Support@aegis.net"/>
22
+ <use value="work"/>
23
+ </telecom>
24
+ </contact>
25
+ <date value="2016-01-05"/>
26
+ <description value="FHIR Connectathon 11 - Track 9 - Patch - Send PATCH to EHR /MedicationStatement resource using JSON Patch format to update the MedicationStatement.status."/>
27
+ <useContext>
28
+ <coding>
29
+ <system value="urn:iso:std:iso:3166"/>
30
+ <code value="US"/>
31
+ <display value="United States of America (the)"/>
32
+ </coding>
33
+ </useContext>
34
+ <requirements value="MedicationStatement Create and Patch Operations; Patient Search Operation"/>
35
+ <copyright value="© Cerner 2015+, © AEGIS.net, Inc. 2015+"/>
36
+
37
+ <metadata>
38
+ <capability>
39
+ <required value="true"/>
40
+ <description value="Patient search operation"/>
41
+ <link value="http://hl7.org/fhir/http.html#search"/>
42
+ <conformance>
43
+ <reference value="/Connectathon11/Track9-Patch/_reference/conformance/PatientSearchType.xml" />
44
+ </conformance>
45
+ </capability>
46
+ <capability>
47
+ <required value="true"/>
48
+ <description value="MedicationStatement create and patch operations - patch is currently experimental so there is no formal definition within the conformance statement at this time."/>
49
+ <link value="http://hl7.org/fhir/http.html#create"/>
50
+ <link value="http://hl7.org/fhir/http.html#update"/>
51
+ <conformance>
52
+ <reference value="/Connectathon11/Track9-Patch/_reference/conformance/MedicationStatementCreate.xml" />
53
+ </conformance>
54
+ </capability>
55
+ </metadata>
56
+
57
+ <fixture id="medicationstatement-create">
58
+ <resource>
59
+ <reference value="/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-create.json"/>
60
+ </resource>
61
+ </fixture>
62
+ <fixture id="medicationstatement-patch">
63
+ <resource>
64
+ <reference value="/Connectathon11/Track9-Patch/_reference/resources/medicationstatement-patch.json"/>
65
+ </resource>
66
+ </fixture>
67
+
68
+ <variable>
69
+ <name value="patientId"/>
70
+ <path value="Patient/id" />
71
+ <sourceId value="patient-search-response"/>
72
+ </variable>
73
+ <variable>
74
+ <name value="medicationStatementId"/>
75
+ <path value="MedicationStatement/id"/>
76
+ <sourceId value="medicationstatement-search-response"/>
77
+ </variable>
78
+ <variable>
79
+ <name value="searchParamPatient"/>
80
+ <path value="MedicationStatement/patient/reference" />
81
+ <sourceId value="medicationstatement-create" />
82
+ </variable>
83
+ <variable>
84
+ <name value="searchParamStatus"/>
85
+ <path value="MedicationStatement/status" />
86
+ <sourceId value="medicationstatement-create" />
87
+ </variable>
88
+
89
+ <test id="Step1-SearchForPatient">
90
+ <name value="Step1-SearchForPatient"/>
91
+ <description value="Search for a Patient on which to create a MedicationStatement."/>
92
+
93
+ <action>
94
+ <operation>
95
+ <type>
96
+ <code value="search"/>
97
+ </type>
98
+ <resource value="Patient"/>
99
+ <description value="Search for the patient by name."/>
100
+ <accept value="json"/>
101
+ <contentType value="json"/>
102
+ <params value="?name=Connectathon11"/>
103
+ <responseId value="patient-search-response" />
104
+ </operation>
105
+ </action>
106
+ <action>
107
+ <assert>
108
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
109
+ <response value="okay"/>
110
+ </assert>
111
+ </action>
112
+ <action>
113
+ <assert>
114
+ <description value="Confirm that the returned format is JSON."/>
115
+ <contentType value="json"/>
116
+ </assert>
117
+ </action>
118
+ <action>
119
+ <assert>
120
+ <description value="Confirm that the returned resource type is Bundle."/>
121
+ <resource value="Bundle"/>
122
+ </assert>
123
+ </action>
124
+ <action>
125
+ <assert>
126
+ <description value="Confirm that there is at least one record returned. There could be other Patient records returned."/>
127
+ <operator value="greaterThan"/>
128
+ <path value="/Bundle/total"/>
129
+ <value value="0"/>
130
+ </assert>
131
+ </action>
132
+ </test>
133
+
134
+ <test id="Step2-Create-MedicationStatement">
135
+ <name value="Step2-Create-MedicationStatement"/>
136
+ <description value="Create a MedicationStatement for the Patient found in step 1."/>
137
+
138
+ <action>
139
+ <operation>
140
+ <type>
141
+ <code value="create"/>
142
+ </type>
143
+ <resource value="MedicationStatement"/>
144
+ <accept value="json"/>
145
+ <contentType value="json"/>
146
+ <sourceId value="medicationstatement-create"/>
147
+ </operation>
148
+ </action>
149
+ <action>
150
+ <assert>
151
+ <description value="Confirm that the returned HTTP status is 200(OK) or 201(CREATED)."/>
152
+ <operator value="in"/>
153
+ <responseCode value="200,201"/>
154
+ </assert>
155
+ </action>
156
+ <action>
157
+ <assert>
158
+ <description value="Confirm that the HTTP Header Location is present. Warning only as the Location is not required on the response."/>
159
+ <headerField value="Location"/>
160
+ <operator value="notEmpty"/>
161
+ <warningOnly value="true"/>
162
+ </assert>
163
+ </action>
164
+
165
+ <action>
166
+ <operation>
167
+ <type>
168
+ <code value="search"/>
169
+ </type>
170
+ <resource value="MedicationStatement"/>
171
+ <description value="Search for the created MedicationStatement by the known unique identifier."/>
172
+ <accept value="json"/>
173
+ <contentType value="json"/>
174
+ <params value="?patient=${searchParamPatient}&amp;status=${searchParamStatus}"/>
175
+ <responseId value="medicationstatement-search-response" />
176
+ </operation>
177
+ </action>
178
+ <action>
179
+ <assert>
180
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
181
+ <response value="okay"/>
182
+ </assert>
183
+ </action>
184
+ <action>
185
+ <assert>
186
+ <description value="Confirm that the returned format is JSON."/>
187
+ <contentType value="json"/>
188
+ </assert>
189
+ </action>
190
+ <action>
191
+ <assert>
192
+ <description value="Confirm that the returned resource type is Bundle."/>
193
+ <resource value="Bundle"/>
194
+ </assert>
195
+ </action>
196
+ <action>
197
+ <assert>
198
+ <description value="Confirm that there is at least one record returned. There could be other MedicationStatement records returned."/>
199
+ <operator value="greaterThan"/>
200
+ <path value="/Bundle/total"/>
201
+ <value value="0"/>
202
+ </assert>
203
+ </action>
204
+ <action>
205
+ <assert>
206
+ <description value="Confirm that bundle contains the created MedicationStatement. Warning only until this TestScript has been verified accurate."/>
207
+ <operator value="equals"/>
208
+ <path value="MedicationStatement/patient/reference"/>
209
+ <value value="Patient/${patientId}"/>
210
+ <warningOnly value="true"/>
211
+ </assert>
212
+ </action>
213
+ </test>
214
+
215
+ <test id="Step3-PatchMedicationStatement">
216
+ <name value="Step3-PatchMedicationStatement"/>
217
+ <description value="Update the MedicationStatement to a 'completed' status using PATCH"/>
218
+
219
+ <action>
220
+ <operation>
221
+ <type>
222
+ <code value="patch"/>
223
+ </type>
224
+ <resource value="MedicationStatement"/>
225
+ <accept value="json"/>
226
+ <contentType value="json_patch"/>
227
+ <params value="/${medicationStatementId}"/>
228
+ <sourceId value="medicationstatement-patch"/>
229
+ </operation>
230
+ </action>
231
+ <action>
232
+ <assert>
233
+ <description value="Confirm that the patch operation is a replace."/>
234
+ <direction value="request" />
235
+ <path value="$[0].op"/>
236
+ <value value="replace"/>
237
+ </assert>
238
+ </action>
239
+ <action>
240
+ <assert>
241
+ <description value="Confirm that the patch is replacing the status element value."/>
242
+ <direction value="request" />
243
+ <path value="$[0].path"/>
244
+ <value value="/status"/>
245
+ </assert>
246
+ </action>
247
+ <action>
248
+ <assert>
249
+ <description value="Confirm that the patch is setting the status value to completed."/>
250
+ <direction value="request" />
251
+ <path value="$[0]/value"/>
252
+ <value value="completed"/>
253
+ </assert>
254
+ </action>
255
+ <action>
256
+ <assert>
257
+ <description value="Confirm that the returned HTTP status is 200(OK) or 204(NO CONTENT)."/>
258
+ <operator value="in"/>
259
+ <responseCode value="200,204"/>
260
+ </assert>
261
+ </action>
262
+
263
+ <action>
264
+ <operation>
265
+ <type>
266
+ <code value="read"/>
267
+ </type>
268
+ <resource value="MedicationStatement"/>
269
+ <description value="Read the patched MedicationStatement back to verify contents."/>
270
+ <accept value="json"/>
271
+ <contentType value="json"/>
272
+ <params value="/${medicationStatementId}" />
273
+ </operation>
274
+ </action>
275
+ <action>
276
+ <assert>
277
+ <description value="Confirm that the returned HTTP status is 200(OK)."/>
278
+ <response value="okay"/>
279
+ </assert>
280
+ </action>
281
+ <action>
282
+ <assert>
283
+ <description value="Confirm that the returned format is JSON."/>
284
+ <contentType value="json"/>
285
+ </assert>
286
+ </action>
287
+ <action>
288
+ <assert>
289
+ <description value="Confirm that the returned resource type is MedicationStatement."/>
290
+ <resource value="MedicationStatement"/>
291
+ </assert>
292
+ </action>
293
+ <action>
294
+ <assert>
295
+ <description value="Confirm that bundle contains the updated MedicationStatement. Warning only until this TestScript has been verified accurate."/>
296
+ <operator value="equals"/>
297
+ <path value="MedicationStatement/status"/>
298
+ <value value="completed"/>
299
+ <warningOnly value="true"/>
300
+ </assert>
301
+ </action>
302
+ </test>
303
+ </TestScript>