canvas 0.59.0__tar.gz → 0.60.0__tar.gz

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.

Potentially problematic release.


This version of canvas might be problematic. Click here for more details.

Files changed (340) hide show
  1. {canvas-0.59.0 → canvas-0.60.0}/PKG-INFO +1 -1
  2. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/effects_pb2.py +2 -2
  3. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/effects_pb2.pyi +4 -0
  4. canvas-0.60.0/canvas_sdk/effects/patient/__init__.py +23 -0
  5. canvas-0.60.0/canvas_sdk/effects/patient/base.py +275 -0
  6. canvas-0.60.0/canvas_sdk/effects/patient/create_patient_preferred_pharmacies.py +70 -0
  7. canvas-0.60.0/canvas_sdk/test_utils/factories/__init__.py +13 -0
  8. canvas-0.60.0/canvas_sdk/test_utils/factories/facility.py +21 -0
  9. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/test_utils/factories/patient.py +13 -1
  10. canvas-0.60.0/canvas_sdk/test_utils/factories/protocol_current.py +44 -0
  11. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/__init__.py +8 -1
  12. canvas-0.60.0/canvas_sdk/v1/data/facility.py +27 -0
  13. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/patient.py +39 -7
  14. canvas-0.60.0/canvas_sdk/v1/data/protocol_current.py +23 -0
  15. canvas-0.60.0/canvas_sdk/v1/data/protocol_result.py +46 -0
  16. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/staff.py +36 -1
  17. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/allowed-module-imports.json +27 -2
  18. {canvas-0.59.0 → canvas-0.60.0}/protobufs/canvas_generated/messages/effects.proto +3 -1
  19. {canvas-0.59.0 → canvas-0.60.0}/pyproject.toml +1 -1
  20. canvas-0.59.0/canvas_sdk/effects/patient/__init__.py +0 -11
  21. canvas-0.59.0/canvas_sdk/effects/patient/base.py +0 -142
  22. canvas-0.59.0/canvas_sdk/test_utils/factories/__init__.py +0 -4
  23. {canvas-0.59.0 → canvas-0.60.0}/.gitignore +0 -0
  24. {canvas-0.59.0 → canvas-0.60.0}/README.md +0 -0
  25. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/__init__.py +0 -0
  26. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/__init__.py +0 -0
  27. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/auth/__init__.py +0 -0
  28. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/auth/storage.py +0 -0
  29. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/auth/utils.py +0 -0
  30. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/__init__.py +0 -0
  31. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/emit.py +0 -0
  32. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ALLERGY_INTOLERANCE_CREATED.ndjson +0 -0
  33. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ALLERGY_INTOLERANCE_UPDATED.ndjson +0 -0
  34. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CANCELED.ndjson +0 -0
  35. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CHECKED_IN.ndjson +0 -0
  36. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_CREATED.ndjson +0 -0
  37. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_NO_SHOWED.ndjson +0 -0
  38. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_RESCHEDULED.ndjson +0 -0
  39. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_RESTORED.ndjson +0 -0
  40. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/APPOINTMENT_UPDATED.ndjson +0 -0
  41. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__CONDITION_SELECTED.ndjson +0 -0
  42. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_COMMIT.ndjson +0 -0
  43. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_ORIGINATE.ndjson +0 -0
  44. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__POST_UPDATE.ndjson +0 -0
  45. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_COMMIT.ndjson +0 -0
  46. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  47. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ASSESS_COMMAND__PRE_UPDATE.ndjson +0 -0
  48. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/BILLING_LINE_ITEM_CREATED.ndjson +0 -0
  49. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/BILLING_LINE_ITEM_UPDATED.ndjson +0 -0
  50. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/CONDITION_ASSESSED.ndjson +0 -0
  51. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/CONDITION_CREATED.ndjson +0 -0
  52. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/CONDITION_UPDATED.ndjson +0 -0
  53. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/CRON.ndjson +0 -0
  54. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ENCOUNTER_CREATED.ndjson +0 -0
  55. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/ENCOUNTER_UPDATED.ndjson +0 -0
  56. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_CREATED.ndjson +0 -0
  57. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_STATEMENT_CREATED.ndjson +0 -0
  58. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_STATEMENT_UPDATED.ndjson +0 -0
  59. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/IMMUNIZATION_UPDATED.ndjson +0 -0
  60. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/INTERVIEW_CREATED.ndjson +0 -0
  61. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/INTERVIEW_UPDATED.ndjson +0 -0
  62. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/LAB_ORDER_CREATED.ndjson +0 -0
  63. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/LAB_ORDER_UPDATED.ndjson +0 -0
  64. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_LIST_ITEM_CREATED.ndjson +0 -0
  65. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_LIST_ITEM_UPDATED.ndjson +0 -0
  66. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_COMMIT.ndjson +0 -0
  67. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_ORIGINATE.ndjson +0 -0
  68. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__POST_UPDATE.ndjson +0 -0
  69. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_COMMIT.ndjson +0 -0
  70. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  71. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT_COMMAND__PRE_UPDATE.ndjson +0 -0
  72. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/MEDICATION_STATEMENT__MEDICATION__POST_SEARCH.ndjson +0 -0
  73. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/PATIENT_CREATED.ndjson +0 -0
  74. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/PATIENT_UPDATED.ndjson +0 -0
  75. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/PLAN_COMMAND__POST_ORIGINATE.ndjson +0 -0
  76. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/PLAN_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  77. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_COMMIT.ndjson +0 -0
  78. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_ORIGINATE.ndjson +0 -0
  79. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__POST_UPDATE.ndjson +0 -0
  80. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_COMMIT.ndjson +0 -0
  81. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_ORIGINATE.ndjson +0 -0
  82. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE_COMMAND__PRE_UPDATE.ndjson +0 -0
  83. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/QUESTIONNAIRE__QUESTIONNAIRE__POST_SEARCH.ndjson +0 -0
  84. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/SIMPLE_API_REQUEST.ndjson +0 -0
  85. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/TASK_COMMENT_CREATED.ndjson +0 -0
  86. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/TASK_CREATED.ndjson +0 -0
  87. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/TASK_UPDATED.ndjson +0 -0
  88. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/VITAL_SIGN_CREATED.ndjson +0 -0
  89. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/emit/event_fixtures/VITAL_SIGN_UPDATED.ndjson +0 -0
  90. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/logs/__init__.py +0 -0
  91. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/logs/logs.py +0 -0
  92. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/plugin/__init__.py +0 -0
  93. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/plugin/plugin.py +0 -0
  94. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/run_plugins/__init__.py +0 -0
  95. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/apps/run_plugins/run_plugins.py +0 -0
  96. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/main.py +0 -0
  97. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/cookiecutter.json +0 -0
  98. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/CANVAS_MANIFEST.json +0 -0
  99. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/README.md +0 -0
  100. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/applications/__init__.py +0 -0
  101. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/applications/my_application.py +0 -0
  102. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/application/{{ cookiecutter.__project_slug }}/assets/python-logo.png +0 -0
  103. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/cookiecutter.json +0 -0
  104. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/pyproject.toml +0 -0
  105. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/tests/__init__.py +0 -0
  106. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/tests/test_models.py +0 -0
  107. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/CANVAS_MANIFEST.json +0 -0
  108. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/README.md +0 -0
  109. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/__init__.py +0 -0
  110. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/my_protocol.py +0 -0
  111. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/__init__.py +0 -0
  112. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/context/__init__.py +0 -0
  113. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/context/context.py +0 -0
  114. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/print/__init__.py +0 -0
  115. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/print/print.py +0 -0
  116. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/urls/__init__.py +0 -0
  117. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/urls/urls.py +0 -0
  118. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/validators/__init__.py +0 -0
  119. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/validators/manifest_schema.py +0 -0
  120. {canvas-0.59.0 → canvas-0.60.0}/canvas_cli/utils/validators/validators.py +0 -0
  121. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/effects_pb2_grpc.py +0 -0
  122. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/events_pb2.py +0 -0
  123. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/events_pb2.pyi +0 -0
  124. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/events_pb2_grpc.py +0 -0
  125. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/plugins_pb2.py +0 -0
  126. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/plugins_pb2.pyi +0 -0
  127. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/messages/plugins_pb2_grpc.py +0 -0
  128. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/services/plugin_runner_pb2.py +0 -0
  129. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/services/plugin_runner_pb2.pyi +0 -0
  130. {canvas-0.59.0 → canvas-0.60.0}/canvas_generated/services/plugin_runner_pb2_grpc.py +0 -0
  131. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/__init__.py +0 -0
  132. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/base.py +0 -0
  133. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/__init__.py +0 -0
  134. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/base.py +0 -0
  135. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/client.py +0 -0
  136. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/exceptions.py +0 -0
  137. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/plugins.py +0 -0
  138. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/caching/utils.py +0 -0
  139. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/__init__.py +0 -0
  140. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/base.py +0 -0
  141. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/__init__.py +0 -0
  142. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/adjust_prescription.py +0 -0
  143. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/allergy.py +0 -0
  144. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/assess.py +0 -0
  145. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/change_medication.py +0 -0
  146. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/chart_section_review.py +0 -0
  147. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/close_goal.py +0 -0
  148. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/diagnose.py +0 -0
  149. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/exam.py +0 -0
  150. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/family_history.py +0 -0
  151. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/follow_up.py +0 -0
  152. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/goal.py +0 -0
  153. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/history_present_illness.py +0 -0
  154. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/imaging_order.py +0 -0
  155. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/immunization_statement.py +0 -0
  156. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/instruct.py +0 -0
  157. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/lab_order.py +0 -0
  158. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/medical_history.py +0 -0
  159. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/medication_statement.py +0 -0
  160. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/past_surgical_history.py +0 -0
  161. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/perform.py +0 -0
  162. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/plan.py +0 -0
  163. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/prescribe.py +0 -0
  164. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/questionnaire/__init__.py +0 -0
  165. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/questionnaire/question.py +0 -0
  166. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/questionnaire/toggle_questions.py +0 -0
  167. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/reason_for_visit.py +0 -0
  168. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/refer.py +0 -0
  169. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/refill.py +0 -0
  170. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/remove_allergy.py +0 -0
  171. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/resolve_condition.py +0 -0
  172. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/review_of_systems.py +0 -0
  173. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/stop_medication.py +0 -0
  174. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/structured_assessment.py +0 -0
  175. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/task.py +0 -0
  176. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/update_diagnosis.py +0 -0
  177. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/update_goal.py +0 -0
  178. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/commands/vitals.py +0 -0
  179. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/commands/constants.py +0 -0
  180. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/__init__.py +0 -0
  181. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/banner_alert/__init__.py +0 -0
  182. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/banner_alert/add_banner_alert.py +0 -0
  183. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/banner_alert/remove_banner_alert.py +0 -0
  184. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/base.py +0 -0
  185. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/billing_line_item/__init__.py +0 -0
  186. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/billing_line_item/add_billing_line_item.py +0 -0
  187. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/billing_line_item/remove_billing_line_item.py +0 -0
  188. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/billing_line_item/update_billing_line_item.py +0 -0
  189. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/compound_medications/__init__.py +0 -0
  190. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/compound_medications/compound_medication.py +0 -0
  191. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/group.py +0 -0
  192. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/launch_modal.py +0 -0
  193. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/note/__init__.py +0 -0
  194. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/note/appointment.py +0 -0
  195. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/note/base.py +0 -0
  196. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/note/message.py +0 -0
  197. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/note/note.py +0 -0
  198. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/panel_configuration.py +0 -0
  199. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient/create_patient_external_identifier.py +0 -0
  200. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_chart_group.py +0 -0
  201. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_chart_summary_configuration.py +0 -0
  202. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_metadata/__init__.py +0 -0
  203. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_metadata/base.py +0 -0
  204. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_metadata/patient_metadata_create_form.py +0 -0
  205. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_portal/__init__.py +0 -0
  206. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_portal/application_configuration.py +0 -0
  207. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_portal/form_result.py +0 -0
  208. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_portal_menu_configuration.py +0 -0
  209. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/patient_profile_configuration.py +0 -0
  210. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/payment_processor.py +0 -0
  211. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/protocol_card/__init__.py +0 -0
  212. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/protocol_card/protocol_card.py +0 -0
  213. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/questionnaire_result.py +0 -0
  214. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/send_invite.py +0 -0
  215. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/show_button.py +0 -0
  216. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/simple_api.py +0 -0
  217. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/surescripts/__init__.py +0 -0
  218. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/surescripts/surescripts_messages.py +0 -0
  219. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/task/__init__.py +0 -0
  220. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/task/task.py +0 -0
  221. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/update_user.py +0 -0
  222. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/widgets/__init__.py +0 -0
  223. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/effects/widgets/portal_widget.py +0 -0
  224. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/events/__init__.py +0 -0
  225. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/events/base.py +0 -0
  226. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/__init__.py +0 -0
  227. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/action_button.py +0 -0
  228. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/application.py +0 -0
  229. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/base.py +0 -0
  230. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/cron_task.py +0 -0
  231. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/payment_processors/__init__.py +0 -0
  232. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/payment_processors/base.py +0 -0
  233. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/payment_processors/card.py +0 -0
  234. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/__init__.py +0 -0
  235. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/api.py +0 -0
  236. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/exceptions.py +0 -0
  237. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/security.py +0 -0
  238. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/tools.py +0 -0
  239. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/handlers/simple_api/websocket.py +0 -0
  240. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/protocols/__init__.py +0 -0
  241. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/protocols/base.py +0 -0
  242. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/protocols/clinical_quality_measure.py +0 -0
  243. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/protocols/timeframe.py +0 -0
  244. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/questionnaires/__init__.py +0 -0
  245. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/questionnaires/utils.py +0 -0
  246. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/templates/__init__.py +0 -0
  247. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/templates/utils.py +0 -0
  248. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/test_utils/__init__.py +0 -0
  249. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/test_utils/factories/user.py +0 -0
  250. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/utils/__init__.py +0 -0
  251. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/utils/db.py +0 -0
  252. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/utils/http.py +0 -0
  253. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/utils/metrics.py +0 -0
  254. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/utils/plugins.py +0 -0
  255. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/__init__.py +0 -0
  256. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/apps.py +0 -0
  257. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/allergy_intolerance.py +0 -0
  258. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/appointment.py +0 -0
  259. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/assessment.py +0 -0
  260. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/banner_alert.py +0 -0
  261. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/base.py +0 -0
  262. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/billing.py +0 -0
  263. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/business_line.py +0 -0
  264. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/care_team.py +0 -0
  265. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/charge_description_master.py +0 -0
  266. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/claim.py +0 -0
  267. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/claim_line_item.py +0 -0
  268. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/command.py +0 -0
  269. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/common.py +0 -0
  270. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/compound_medication.py +0 -0
  271. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/condition.py +0 -0
  272. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/coverage.py +0 -0
  273. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/detected_issue.py +0 -0
  274. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/device.py +0 -0
  275. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/discount.py +0 -0
  276. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/fields.py +0 -0
  277. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/goal.py +0 -0
  278. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/imaging.py +0 -0
  279. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/invoice.py +0 -0
  280. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/lab.py +0 -0
  281. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/line_item_transaction.py +0 -0
  282. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/medication.py +0 -0
  283. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/message.py +0 -0
  284. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/note.py +0 -0
  285. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/observation.py +0 -0
  286. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/organization.py +0 -0
  287. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/patient_consent.py +0 -0
  288. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/payment_collection.py +0 -0
  289. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/payor_specific_charge.py +0 -0
  290. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/posting.py +0 -0
  291. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/practicelocation.py +0 -0
  292. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/protocol_override.py +0 -0
  293. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/questionnaire.py +0 -0
  294. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/reason_for_visit.py +0 -0
  295. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/referral.py +0 -0
  296. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/service_provider.py +0 -0
  297. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/task.py +0 -0
  298. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/team.py +0 -0
  299. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/user.py +0 -0
  300. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/data/utils.py +0 -0
  301. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/v1/models.py +0 -0
  302. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/__init__.py +0 -0
  303. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/custom.py +0 -0
  304. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/hcc2018.py +0 -0
  305. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/__init__.py +0 -0
  306. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/adverse_event.py +0 -0
  307. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/allergy.py +0 -0
  308. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/assessment.py +0 -0
  309. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/communication.py +0 -0
  310. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/condition.py +0 -0
  311. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/device.py +0 -0
  312. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/diagnostic_study.py +0 -0
  313. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/encounter.py +0 -0
  314. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/immunization.py +0 -0
  315. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/individual_characteristic.py +0 -0
  316. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/intervention.py +0 -0
  317. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/laboratory_test.py +0 -0
  318. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/medication.py +0 -0
  319. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/physical_exam.py +0 -0
  320. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/procedure.py +0 -0
  321. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/v2022/symptom.py +0 -0
  322. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/value_set/value_set.py +0 -0
  323. {canvas-0.59.0 → canvas-0.60.0}/canvas_sdk/views/__init__.py +0 -0
  324. {canvas-0.59.0 → canvas-0.60.0}/logger/__init__.py +0 -0
  325. {canvas-0.59.0 → canvas-0.60.0}/logger/logger.py +0 -0
  326. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/__init__.py +0 -0
  327. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/authentication.py +0 -0
  328. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/aws_headers.py +0 -0
  329. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/exceptions.py +0 -0
  330. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/generate_allowed_imports.py +0 -0
  331. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/installation.py +0 -0
  332. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/load_all_plugins.py +0 -0
  333. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/plugin_runner.py +0 -0
  334. {canvas-0.59.0 → canvas-0.60.0}/plugin_runner/sandbox.py +0 -0
  335. {canvas-0.59.0 → canvas-0.60.0}/protobufs/canvas_generated/messages/events.proto +0 -0
  336. {canvas-0.59.0 → canvas-0.60.0}/protobufs/canvas_generated/messages/plugins.proto +0 -0
  337. {canvas-0.59.0 → canvas-0.60.0}/protobufs/canvas_generated/services/plugin_runner.proto +0 -0
  338. {canvas-0.59.0 → canvas-0.60.0}/pubsub/__init__.py +0 -0
  339. {canvas-0.59.0 → canvas-0.60.0}/pubsub/pubsub.py +0 -0
  340. {canvas-0.59.0 → canvas-0.60.0}/settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: canvas
3
- Version: 0.59.0
3
+ Version: 0.60.0
4
4
  Summary: SDK to customize event-driven actions in your Canvas instance
5
5
  Author-email: Canvas Team <engineering@canvasmedical.com>
6
6
  License-Expression: MIT
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
14
14
 
15
15
 
16
16
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'canvas_generated/messages/effects.proto\x12\x06\x63\x61nvas\"y\n\x06\x45\x66\x66\x65\x63t\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.canvas.EffectType\x12\x0f\n\x07payload\x18\x02 \x01(\t\x12\x13\n\x0bplugin_name\x18\x03 \x01(\t\x12\x11\n\tclassname\x18\x04 \x01(\t\x12\x14\n\x0chandler_name\x18\x05 \x01(\t*\xb2\x43\n\nEffectType\x12\x12\n\x0eUNKNOWN_EFFECT\x10\x00\x12\x07\n\x03LOG\x10\x01\x12\x14\n\x10\x41\x44\x44_PLAN_COMMAND\x10\x02\x12\x1f\n\x1b\x41UTOCOMPLETE_SEARCH_RESULTS\x10\x03\x12\x14\n\x10\x41\x44\x44_BANNER_ALERT\x10\x04\x12\x17\n\x13REMOVE_BANNER_ALERT\x10\x05\x12\x1c\n\x18ORIGINATE_ASSESS_COMMAND\x10\x06\x12\x17\n\x13\x45\x44IT_ASSESS_COMMAND\x10\x07\x12\x19\n\x15\x44\x45LETE_ASSESS_COMMAND\x10\x08\x12\x19\n\x15\x43OMMIT_ASSESS_COMMAND\x10\t\x12!\n\x1d\x45NTER_IN_ERROR_ASSESS_COMMAND\x10\n\x12\x1e\n\x1aORIGINATE_DIAGNOSE_COMMAND\x10\x0b\x12\x19\n\x15\x45\x44IT_DIAGNOSE_COMMAND\x10\x0c\x12\x1b\n\x17\x44\x45LETE_DIAGNOSE_COMMAND\x10\r\x12\x1b\n\x17\x43OMMIT_DIAGNOSE_COMMAND\x10\x0e\x12#\n\x1f\x45NTER_IN_ERROR_DIAGNOSE_COMMAND\x10\x0f\x12\x1a\n\x16ORIGINATE_GOAL_COMMAND\x10\x10\x12\x15\n\x11\x45\x44IT_GOAL_COMMAND\x10\x11\x12\x17\n\x13\x44\x45LETE_GOAL_COMMAND\x10\x12\x12\x17\n\x13\x43OMMIT_GOAL_COMMAND\x10\x13\x12\x1f\n\x1b\x45NTER_IN_ERROR_GOAL_COMMAND\x10\x14\x12\x19\n\x15ORIGINATE_HPI_COMMAND\x10\x15\x12\x14\n\x10\x45\x44IT_HPI_COMMAND\x10\x16\x12\x16\n\x12\x44\x45LETE_HPI_COMMAND\x10\x17\x12\x16\n\x12\x43OMMIT_HPI_COMMAND\x10\x18\x12\x1e\n\x1a\x45NTER_IN_ERROR_HPI_COMMAND\x10\x19\x12*\n&ORIGINATE_MEDICATION_STATEMENT_COMMAND\x10\x1a\x12%\n!EDIT_MEDICATION_STATEMENT_COMMAND\x10\x1b\x12\'\n#DELETE_MEDICATION_STATEMENT_COMMAND\x10\x1c\x12\'\n#COMMIT_MEDICATION_STATEMENT_COMMAND\x10\x1d\x12/\n+ENTER_IN_ERROR_MEDICATION_STATEMENT_COMMAND\x10\x1e\x12\x1a\n\x16ORIGINATE_PLAN_COMMAND\x10\x1f\x12\x15\n\x11\x45\x44IT_PLAN_COMMAND\x10 \x12\x17\n\x13\x44\x45LETE_PLAN_COMMAND\x10!\x12\x17\n\x13\x43OMMIT_PLAN_COMMAND\x10\"\x12\x1f\n\x1b\x45NTER_IN_ERROR_PLAN_COMMAND\x10#\x12\x1f\n\x1bORIGINATE_PRESCRIBE_COMMAND\x10$\x12\x1a\n\x16\x45\x44IT_PRESCRIBE_COMMAND\x10%\x12\x1c\n\x18\x44\x45LETE_PRESCRIBE_COMMAND\x10&\x12\x1c\n\x18\x43OMMIT_PRESCRIBE_COMMAND\x10\'\x12$\n ENTER_IN_ERROR_PRESCRIBE_COMMAND\x10(\x12\x1b\n\x16SEND_PRESCRIBE_COMMAND\x10\x99\n\x12#\n\x1fORIGINATE_QUESTIONNAIRE_COMMAND\x10)\x12\x1e\n\x1a\x45\x44IT_QUESTIONNAIRE_COMMAND\x10*\x12 \n\x1c\x44\x45LETE_QUESTIONNAIRE_COMMAND\x10+\x12 \n\x1c\x43OMMIT_QUESTIONNAIRE_COMMAND\x10,\x12(\n$ENTER_IN_ERROR_QUESTIONNAIRE_COMMAND\x10-\x12&\n\"ORIGINATE_REASON_FOR_VISIT_COMMAND\x10.\x12!\n\x1d\x45\x44IT_REASON_FOR_VISIT_COMMAND\x10/\x12#\n\x1f\x44\x45LETE_REASON_FOR_VISIT_COMMAND\x10\x30\x12#\n\x1f\x43OMMIT_REASON_FOR_VISIT_COMMAND\x10\x31\x12+\n\'ENTER_IN_ERROR_REASON_FOR_VISIT_COMMAND\x10\x32\x12%\n!ORIGINATE_STOP_MEDICATION_COMMAND\x10\x33\x12 \n\x1c\x45\x44IT_STOP_MEDICATION_COMMAND\x10\x34\x12\"\n\x1e\x44\x45LETE_STOP_MEDICATION_COMMAND\x10\x35\x12\"\n\x1e\x43OMMIT_STOP_MEDICATION_COMMAND\x10\x36\x12*\n&ENTER_IN_ERROR_STOP_MEDICATION_COMMAND\x10\x37\x12!\n\x1dORIGINATE_UPDATE_GOAL_COMMAND\x10\x38\x12\x1c\n\x18\x45\x44IT_UPDATE_GOAL_COMMAND\x10\x39\x12\x1e\n\x1a\x44\x45LETE_UPDATE_GOAL_COMMAND\x10:\x12\x1e\n\x1a\x43OMMIT_UPDATE_GOAL_COMMAND\x10;\x12&\n\"ENTER_IN_ERROR_UPDATE_GOAL_COMMAND\x10<\x12\x1d\n\x19ORIGINATE_PERFORM_COMMAND\x10=\x12\x18\n\x14\x45\x44IT_PERFORM_COMMAND\x10>\x12\x1a\n\x16\x44\x45LETE_PERFORM_COMMAND\x10?\x12\x1a\n\x16\x43OMMIT_PERFORM_COMMAND\x10@\x12\"\n\x1e\x45NTER_IN_ERROR_PERFORM_COMMAND\x10\x41\x12\x1e\n\x1aORIGINATE_INSTRUCT_COMMAND\x10\x42\x12\x19\n\x15\x45\x44IT_INSTRUCT_COMMAND\x10\x43\x12\x1b\n\x17\x44\x45LETE_INSTRUCT_COMMAND\x10\x44\x12\x1b\n\x17\x43OMMIT_INSTRUCT_COMMAND\x10\x45\x12#\n\x1f\x45NTER_IN_ERROR_INSTRUCT_COMMAND\x10\x46\x12\x1f\n\x1bORIGINATE_LAB_ORDER_COMMAND\x10G\x12\x1a\n\x16\x45\x44IT_LAB_ORDER_COMMAND\x10H\x12\x1c\n\x18\x44\x45LETE_LAB_ORDER_COMMAND\x10I\x12\x1c\n\x18\x43OMMIT_LAB_ORDER_COMMAND\x10J\x12$\n ENTER_IN_ERROR_LAB_ORDER_COMMAND\x10K\x12\x1b\n\x16SEND_LAB_ORDER_COMMAND\x10\x9a\n\x12$\n ORIGINATE_FAMILY_HISTORY_COMMAND\x10L\x12\x1f\n\x1b\x45\x44IT_FAMILY_HISTORY_COMMAND\x10M\x12!\n\x1d\x44\x45LETE_FAMILY_HISTORY_COMMAND\x10N\x12!\n\x1d\x43OMMIT_FAMILY_HISTORY_COMMAND\x10O\x12)\n%ENTER_IN_ERROR_FAMILY_HISTORY_COMMAND\x10P\x12\x1d\n\x19ORIGINATE_ALLERGY_COMMAND\x10Q\x12\x18\n\x14\x45\x44IT_ALLERGY_COMMAND\x10R\x12\x1a\n\x16\x44\x45LETE_ALLERGY_COMMAND\x10S\x12\x1a\n\x16\x43OMMIT_ALLERGY_COMMAND\x10T\x12\"\n\x1e\x45NTER_IN_ERROR_ALLERGY_COMMAND\x10U\x12$\n ORIGINATE_REMOVE_ALLERGY_COMMAND\x10V\x12\x1f\n\x1b\x45\x44IT_REMOVE_ALLERGY_COMMAND\x10W\x12!\n\x1d\x44\x45LETE_REMOVE_ALLERGY_COMMAND\x10X\x12!\n\x1d\x43OMMIT_REMOVE_ALLERGY_COMMAND\x10Y\x12)\n%ENTER_IN_ERROR_REMOVE_ALLERGY_COMMAND\x10Z\x12&\n\"ORIGINATE_SURGICAL_HISTORY_COMMAND\x10[\x12!\n\x1d\x45\x44IT_SURGICAL_HISTORY_COMMAND\x10\\\x12#\n\x1f\x44\x45LETE_SURGICAL_HISTORY_COMMAND\x10]\x12#\n\x1f\x43OMMIT_SURGICAL_HISTORY_COMMAND\x10^\x12+\n\'ENTER_IN_ERROR_SURGICAL_HISTORY_COMMAND\x10_\x12\x0f\n\x0b\x43REATE_TASK\x10\x64\x12\x0f\n\x0bUPDATE_TASK\x10\x65\x12\x17\n\x13\x43REATE_TASK_COMMENT\x10\x66\x12%\n!ORIGINATE_MEDICAL_HISTORY_COMMAND\x10g\x12 \n\x1c\x45\x44IT_MEDICAL_HISTORY_COMMAND\x10h\x12\"\n\x1e\x44\x45LETE_MEDICAL_HISTORY_COMMAND\x10i\x12\"\n\x1e\x43OMMIT_MEDICAL_HISTORY_COMMAND\x10j\x12*\n&ENTER_IN_ERROR_MEDICAL_HISTORY_COMMAND\x10k\x12\x1f\n\x1b\x41\x44\x44_OR_UPDATE_PROTOCOL_CARD\x10n\x12\x1b\n\x16ORIGINATE_TASK_COMMAND\x10\x85\x01\x12\x16\n\x11\x45\x44IT_TASK_COMMAND\x10\x86\x01\x12\x18\n\x13\x44\x45LETE_TASK_COMMAND\x10\x87\x01\x12\x18\n\x13\x43OMMIT_TASK_COMMAND\x10\x88\x01\x12 \n\x1b\x45NTER_IN_ERROR_TASK_COMMAND\x10\x89\x01\x12\x1c\n\x18ORIGINATE_REFILL_COMMAND\x10q\x12\x17\n\x13\x45\x44IT_REFILL_COMMAND\x10r\x12\x19\n\x15\x44\x45LETE_REFILL_COMMAND\x10s\x12\x19\n\x15\x43OMMIT_REFILL_COMMAND\x10t\x12!\n\x1d\x45NTER_IN_ERROR_REFILL_COMMAND\x10u\x12\x18\n\x13SEND_REFILL_COMMAND\x10\x9c\n\x12\x1c\n\x18ORIGINATE_VITALS_COMMAND\x10v\x12\x17\n\x13\x45\x44IT_VITALS_COMMAND\x10w\x12\x19\n\x15\x44\x45LETE_VITALS_COMMAND\x10x\x12\x19\n\x15\x43OMMIT_VITALS_COMMAND\x10y\x12!\n\x1d\x45NTER_IN_ERROR_VITALS_COMMAND\x10z\x12&\n\"ORIGINATE_UPDATE_DIAGNOSIS_COMMAND\x10{\x12!\n\x1d\x45\x44IT_UPDATE_DIAGNOSIS_COMMAND\x10|\x12#\n\x1f\x44\x45LETE_UPDATE_DIAGNOSIS_COMMAND\x10}\x12#\n\x1f\x43OMMIT_UPDATE_DIAGNOSIS_COMMAND\x10~\x12+\n\'ENTER_IN_ERROR_UPDATE_DIAGNOSIS_COMMAND\x10\x7f\x12!\n\x1cORIGINATE_CLOSE_GOAL_COMMAND\x10\x80\x01\x12\x1c\n\x17\x45\x44IT_CLOSE_GOAL_COMMAND\x10\x81\x01\x12\x1e\n\x19\x44\x45LETE_CLOSE_GOAL_COMMAND\x10\x82\x01\x12\x1e\n\x19\x43OMMIT_CLOSE_GOAL_COMMAND\x10\x83\x01\x12&\n!ENTER_IN_ERROR_CLOSE_GOAL_COMMAND\x10\x84\x01\x12\x1c\n\x17ORIGINATE_REFER_COMMAND\x10\x8b\x01\x12\x17\n\x12\x45\x44IT_REFER_COMMAND\x10\x8c\x01\x12\x19\n\x14\x44\x45LETE_REFER_COMMAND\x10\x8d\x01\x12\x19\n\x14\x43OMMIT_REFER_COMMAND\x10\x8e\x01\x12!\n\x1c\x45NTER_IN_ERROR_REFER_COMMAND\x10\x8f\x01\x12(\n#ORIGINATE_CHANGE_MEDICATION_COMMAND\x10\x96\x01\x12#\n\x1e\x45\x44IT_CHANGE_MEDICATION_COMMAND\x10\x97\x01\x12%\n DELETE_CHANGE_MEDICATION_COMMAND\x10\x98\x01\x12%\n COMMIT_CHANGE_MEDICATION_COMMAND\x10\x99\x01\x12-\n(ENTER_IN_ERROR_CHANGE_MEDICATION_COMMAND\x10\x9a\x01\x12 \n\x1b\x43REATE_QUESTIONNAIRE_RESULT\x10\x8a\x01\x12-\n(ANNOTATE_PATIENT_CHART_CONDITION_RESULTS\x10\xc8\x01\x12%\n ANNOTATE_CLAIM_CONDITION_RESULTS\x10\xac\x02\x12(\n#SHOW_PATIENT_CHART_SUMMARY_SECTIONS\x10\x90\x03\x12\"\n\x1dSHOW_PATIENT_PROFILE_SECTIONS\x10\xf4\x03\x12\x37\n2PATIENT_PROFILE__ADD_PHARMACY__POST_SEARCH_RESULTS\x10\xf5\x03\x12)\n$SEND_SURESCRIPTS_ELIGIBILITY_REQUEST\x10\xd8\x04\x12\x30\n+SEND_SURESCRIPTS_MEDICATION_HISTORY_REQUEST\x10\xd9\x04\x12&\n!SEND_SURESCRIPTS_BENEFITS_REQUEST\x10\xda\x04\x12\x1b\n\x16ORIGINATE_EXAM_COMMAND\x10\xbc\x05\x12\x16\n\x11\x45\x44IT_EXAM_COMMAND\x10\xbd\x05\x12\x18\n\x13\x44\x45LETE_EXAM_COMMAND\x10\xbe\x05\x12\x18\n\x13\x43OMMIT_EXAM_COMMAND\x10\xbf\x05\x12 \n\x1b\x45NTER_IN_ERROR_EXAM_COMMAND\x10\xc0\x05\x12\x1a\n\x15ORIGINATE_ROS_COMMAND\x10\xa0\x06\x12\x15\n\x10\x45\x44IT_ROS_COMMAND\x10\xa1\x06\x12\x17\n\x12\x44\x45LETE_ROS_COMMAND\x10\xa2\x06\x12\x17\n\x12\x43OMMIT_ROS_COMMAND\x10\xa3\x06\x12\x1f\n\x1a\x45NTER_IN_ERROR_ROS_COMMAND\x10\xa4\x06\x12,\n\'ORIGINATE_STRUCTURED_ASSESSMENT_COMMAND\x10\x84\x07\x12\'\n\"EDIT_STRUCTURED_ASSESSMENT_COMMAND\x10\x85\x07\x12)\n$DELETE_STRUCTURED_ASSESSMENT_COMMAND\x10\x86\x07\x12)\n$COMMIT_STRUCTURED_ASSESSMENT_COMMAND\x10\x87\x07\x12\x31\n,ENTER_IN_ERROR_STRUCTURED_ASSESSMENT_COMMAND\x10\x88\x07\x12 \n\x1bORIGINATE_FOLLOW_UP_COMMAND\x10\x89\x07\x12\x1b\n\x16\x45\x44IT_FOLLOW_UP_COMMAND\x10\x8a\x07\x12\x1d\n\x18\x44\x45LETE_FOLLOW_UP_COMMAND\x10\x8b\x07\x12\x1d\n\x18\x43OMMIT_FOLLOW_UP_COMMAND\x10\x8c\x07\x12%\n ENTER_IN_ERROR_FOLLOW_UP_COMMAND\x10\x8d\x07\x12$\n\x1fORIGINATE_IMAGING_ORDER_COMMAND\x10\xcc\x08\x12\x1f\n\x1a\x45\x44IT_IMAGING_ORDER_COMMAND\x10\xcd\x08\x12!\n\x1c\x44\x45LETE_IMAGING_ORDER_COMMAND\x10\xce\x08\x12!\n\x1c\x43OMMIT_IMAGING_ORDER_COMMAND\x10\xcf\x08\x12)\n$ENTER_IN_ERROR_IMAGING_ORDER_COMMAND\x10\xd0\x08\x12(\n#ORIGINATE_RESOLVE_CONDITION_COMMAND\x10\xb0\t\x12#\n\x1e\x45\x44IT_RESOLVE_CONDITION_COMMAND\x10\xb1\t\x12%\n DELETE_RESOLVE_CONDITION_COMMAND\x10\xb2\t\x12%\n COMMIT_RESOLVE_CONDITION_COMMAND\x10\xb3\t\x12-\n(ENTER_IN_ERROR_RESOLVE_CONDITION_COMMAND\x10\xb4\t\x12*\n%ORIGINATE_ADJUST_PRESCRIPTION_COMMAND\x10\x94\n\x12%\n EDIT_ADJUST_PRESCRIPTION_COMMAND\x10\x95\n\x12\'\n\"DELETE_ADJUST_PRESCRIPTION_COMMAND\x10\x96\n\x12\'\n\"COMMIT_ADJUST_PRESCRIPTION_COMMAND\x10\x97\n\x12/\n*ENTER_IN_ERROR_ADJUST_PRESCRIPTION_COMMAND\x10\x98\n\x12%\n SEND_ADJUST_PRESCRIPTION_COMMAND\x10\x9b\n\x12+\n&ORIGINATE_CHART_SECTION_REVIEW_COMMAND\x10\xf8\n\x12-\n(ORIGINATE_IMMUNIZATION_STATEMENT_COMMAND\x10\xdc\x0b\x12(\n#EDIT_IMMUNIZATION_STATEMENT_COMMAND\x10\xdd\x0b\x12*\n%DELETE_IMMUNIZATION_STATEMENT_COMMAND\x10\xde\x0b\x12*\n%COMMIT_IMMUNIZATION_STATEMENT_COMMAND\x10\xdf\x0b\x12\x32\n-ENTER_IN_ERROR_IMMUNIZATION_STATEMENT_COMMAND\x10\xe0\x0b\x12&\n!COMMAND_AVAILABLE_ACTIONS_RESULTS\x10\xc0\x0c\x12\x17\n\x12SHOW_ACTION_BUTTON\x10\xe8\x07\x12 \n\x1bPATIENT_PORTAL__FORM_RESULT\x10\xd0\x0f\x12.\n)PATIENT_PORTAL__APPOINTMENT_IS_CANCELABLE\x10\xd1\x0f\x12\x31\n,PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE\x10\xd2\x0f\x12\x32\n-PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK\x10\xd3\x0f\x12 \n\x1bPATIENT_PORTAL__SEND_INVITE\x10\xd4\x0f\x12=\n8PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS\x10\xd5\x0f\x12M\nHPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS\x10\xd6\x0f\x12N\nIPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__POST_SEARCH_RESULTS\x10\xd7\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__PRE_SEARCH_RESULTS\x10\xd8\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__POST_SEARCH_RESULTS\x10\xd9\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__PRE_SEARCH_RESULTS\x10\xda\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__POST_SEARCH_RESULTS\x10\xdb\x0f\x12.\n)PATIENT_PORTAL__APPLICATION_CONFIGURATION\x10\xdc\x0f\x12\x1a\n\x15\x41\x44\x44_BILLING_LINE_ITEM\x10\xee\x0f\x12\x1d\n\x18UPDATE_BILLING_LINE_ITEM\x10\xef\x0f\x12\x1d\n\x18REMOVE_BILLING_LINE_ITEM\x10\xf0\x0f\x12#\n\x1eSHOW_PATIENT_PORTAL_MENU_ITEMS\x10\xb4\x10\x12\x12\n\rPORTAL_WIDGET\x10\xb5\x10\x12\x11\n\x0cLAUNCH_MODAL\x10\xb8\x17\x12\x18\n\x13SIMPLE_API_RESPONSE\x10\xa0\x1f\x12 \n\x1bSIMPLE_API_WEBSOCKET_ACCEPT\x10\xa1\x1f\x12\x1e\n\x19SIMPLE_API_WEBSOCKET_DENY\x10\xa2\x1f\x12#\n\x1eSIMPLE_API_WEBSOCKET_BROADCAST\x10\xa3\x1f\x12\x10\n\x0bUPDATE_USER\x10\x88\'\x12\x10\n\x0b\x43REATE_NOTE\x10\xf0.\x12\x10\n\x0bUPDATE_NOTE\x10\xfd.\x12\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x17\n\x12UPDATE_APPOINTMENT\x10\xfe.\x12\x17\n\x12\x43\x41NCEL_APPOINTMENT\x10\xff.\x12\x1a\n\x15\x43REATE_SCHEDULE_EVENT\x10\xf2.\x12\x1a\n\x15UPDATE_SCHEDULE_EVENT\x10\x80/\x12\x1a\n\x15\x44\x45LETE_SCHEDULE_EVENT\x10\x81/\x12\x13\n\x0e\x43REATE_PATIENT\x10\xf3.\x12\x13\n\x0e\x43REATE_MESSAGE\x10\xf4.\x12\x11\n\x0cSEND_MESSAGE\x10\xf5.\x12\x1c\n\x17\x43REATE_AND_SEND_MESSAGE\x10\xf6.\x12\x11\n\x0c\x45\x44IT_MESSAGE\x10\xf7.\x12/\n*PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS\x10\xfa.\x12\x1c\n\x17UPSERT_PATIENT_METADATA\x10\xfb.\x12\'\n\"CREATE_PATIENT_EXTERNAL_IDENTIFIER\x10\xfc.\x12\x1f\n\x1a\x43REATE_COMPOUND_MEDICATION\x10\x84/\x12\x1f\n\x1aUPDATE_COMPOUND_MEDICATION\x10\x85/\x12\x1f\n\x1aPATIENT_CHART__GROUP_ITEMS\x10\x8e/\x12\x18\n\x13SHOW_PANEL_SECTIONS\x10\xd4/\x12\x15\n\x10REDIRECT_CONTEXT\x10\xb8\x30\x12)\n$REVENUE__PAYMENT_PROCESSOR__METADATA\x10\xd9\x36\x12%\n REVENUE__PAYMENT_PROCESSOR__FORM\x10\xda\x36\x12\x38\n3REVENUE__PAYMENT_PROCESSOR__CREDIT_CARD_TRANSACTION\x10\xdb\x36\x12/\n*REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD\x10\xdc\x36\x12=\n8REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD__ADD_RESPONSE\x10\xdd\x36\x12@\n;REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD__REMOVE_RESPONSE\x10\xde\x36\x62\x06proto3')
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'canvas_generated/messages/effects.proto\x12\x06\x63\x61nvas\"y\n\x06\x45\x66\x66\x65\x63t\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.canvas.EffectType\x12\x0f\n\x07payload\x18\x02 \x01(\t\x12\x13\n\x0bplugin_name\x18\x03 \x01(\t\x12\x11\n\tclassname\x18\x04 \x01(\t\x12\x14\n\x0chandler_name\x18\x05 \x01(\t*\xf1\x43\n\nEffectType\x12\x12\n\x0eUNKNOWN_EFFECT\x10\x00\x12\x07\n\x03LOG\x10\x01\x12\x14\n\x10\x41\x44\x44_PLAN_COMMAND\x10\x02\x12\x1f\n\x1b\x41UTOCOMPLETE_SEARCH_RESULTS\x10\x03\x12\x14\n\x10\x41\x44\x44_BANNER_ALERT\x10\x04\x12\x17\n\x13REMOVE_BANNER_ALERT\x10\x05\x12\x1c\n\x18ORIGINATE_ASSESS_COMMAND\x10\x06\x12\x17\n\x13\x45\x44IT_ASSESS_COMMAND\x10\x07\x12\x19\n\x15\x44\x45LETE_ASSESS_COMMAND\x10\x08\x12\x19\n\x15\x43OMMIT_ASSESS_COMMAND\x10\t\x12!\n\x1d\x45NTER_IN_ERROR_ASSESS_COMMAND\x10\n\x12\x1e\n\x1aORIGINATE_DIAGNOSE_COMMAND\x10\x0b\x12\x19\n\x15\x45\x44IT_DIAGNOSE_COMMAND\x10\x0c\x12\x1b\n\x17\x44\x45LETE_DIAGNOSE_COMMAND\x10\r\x12\x1b\n\x17\x43OMMIT_DIAGNOSE_COMMAND\x10\x0e\x12#\n\x1f\x45NTER_IN_ERROR_DIAGNOSE_COMMAND\x10\x0f\x12\x1a\n\x16ORIGINATE_GOAL_COMMAND\x10\x10\x12\x15\n\x11\x45\x44IT_GOAL_COMMAND\x10\x11\x12\x17\n\x13\x44\x45LETE_GOAL_COMMAND\x10\x12\x12\x17\n\x13\x43OMMIT_GOAL_COMMAND\x10\x13\x12\x1f\n\x1b\x45NTER_IN_ERROR_GOAL_COMMAND\x10\x14\x12\x19\n\x15ORIGINATE_HPI_COMMAND\x10\x15\x12\x14\n\x10\x45\x44IT_HPI_COMMAND\x10\x16\x12\x16\n\x12\x44\x45LETE_HPI_COMMAND\x10\x17\x12\x16\n\x12\x43OMMIT_HPI_COMMAND\x10\x18\x12\x1e\n\x1a\x45NTER_IN_ERROR_HPI_COMMAND\x10\x19\x12*\n&ORIGINATE_MEDICATION_STATEMENT_COMMAND\x10\x1a\x12%\n!EDIT_MEDICATION_STATEMENT_COMMAND\x10\x1b\x12\'\n#DELETE_MEDICATION_STATEMENT_COMMAND\x10\x1c\x12\'\n#COMMIT_MEDICATION_STATEMENT_COMMAND\x10\x1d\x12/\n+ENTER_IN_ERROR_MEDICATION_STATEMENT_COMMAND\x10\x1e\x12\x1a\n\x16ORIGINATE_PLAN_COMMAND\x10\x1f\x12\x15\n\x11\x45\x44IT_PLAN_COMMAND\x10 \x12\x17\n\x13\x44\x45LETE_PLAN_COMMAND\x10!\x12\x17\n\x13\x43OMMIT_PLAN_COMMAND\x10\"\x12\x1f\n\x1b\x45NTER_IN_ERROR_PLAN_COMMAND\x10#\x12\x1f\n\x1bORIGINATE_PRESCRIBE_COMMAND\x10$\x12\x1a\n\x16\x45\x44IT_PRESCRIBE_COMMAND\x10%\x12\x1c\n\x18\x44\x45LETE_PRESCRIBE_COMMAND\x10&\x12\x1c\n\x18\x43OMMIT_PRESCRIBE_COMMAND\x10\'\x12$\n ENTER_IN_ERROR_PRESCRIBE_COMMAND\x10(\x12\x1b\n\x16SEND_PRESCRIBE_COMMAND\x10\x99\n\x12#\n\x1fORIGINATE_QUESTIONNAIRE_COMMAND\x10)\x12\x1e\n\x1a\x45\x44IT_QUESTIONNAIRE_COMMAND\x10*\x12 \n\x1c\x44\x45LETE_QUESTIONNAIRE_COMMAND\x10+\x12 \n\x1c\x43OMMIT_QUESTIONNAIRE_COMMAND\x10,\x12(\n$ENTER_IN_ERROR_QUESTIONNAIRE_COMMAND\x10-\x12&\n\"ORIGINATE_REASON_FOR_VISIT_COMMAND\x10.\x12!\n\x1d\x45\x44IT_REASON_FOR_VISIT_COMMAND\x10/\x12#\n\x1f\x44\x45LETE_REASON_FOR_VISIT_COMMAND\x10\x30\x12#\n\x1f\x43OMMIT_REASON_FOR_VISIT_COMMAND\x10\x31\x12+\n\'ENTER_IN_ERROR_REASON_FOR_VISIT_COMMAND\x10\x32\x12%\n!ORIGINATE_STOP_MEDICATION_COMMAND\x10\x33\x12 \n\x1c\x45\x44IT_STOP_MEDICATION_COMMAND\x10\x34\x12\"\n\x1e\x44\x45LETE_STOP_MEDICATION_COMMAND\x10\x35\x12\"\n\x1e\x43OMMIT_STOP_MEDICATION_COMMAND\x10\x36\x12*\n&ENTER_IN_ERROR_STOP_MEDICATION_COMMAND\x10\x37\x12!\n\x1dORIGINATE_UPDATE_GOAL_COMMAND\x10\x38\x12\x1c\n\x18\x45\x44IT_UPDATE_GOAL_COMMAND\x10\x39\x12\x1e\n\x1a\x44\x45LETE_UPDATE_GOAL_COMMAND\x10:\x12\x1e\n\x1a\x43OMMIT_UPDATE_GOAL_COMMAND\x10;\x12&\n\"ENTER_IN_ERROR_UPDATE_GOAL_COMMAND\x10<\x12\x1d\n\x19ORIGINATE_PERFORM_COMMAND\x10=\x12\x18\n\x14\x45\x44IT_PERFORM_COMMAND\x10>\x12\x1a\n\x16\x44\x45LETE_PERFORM_COMMAND\x10?\x12\x1a\n\x16\x43OMMIT_PERFORM_COMMAND\x10@\x12\"\n\x1e\x45NTER_IN_ERROR_PERFORM_COMMAND\x10\x41\x12\x1e\n\x1aORIGINATE_INSTRUCT_COMMAND\x10\x42\x12\x19\n\x15\x45\x44IT_INSTRUCT_COMMAND\x10\x43\x12\x1b\n\x17\x44\x45LETE_INSTRUCT_COMMAND\x10\x44\x12\x1b\n\x17\x43OMMIT_INSTRUCT_COMMAND\x10\x45\x12#\n\x1f\x45NTER_IN_ERROR_INSTRUCT_COMMAND\x10\x46\x12\x1f\n\x1bORIGINATE_LAB_ORDER_COMMAND\x10G\x12\x1a\n\x16\x45\x44IT_LAB_ORDER_COMMAND\x10H\x12\x1c\n\x18\x44\x45LETE_LAB_ORDER_COMMAND\x10I\x12\x1c\n\x18\x43OMMIT_LAB_ORDER_COMMAND\x10J\x12$\n ENTER_IN_ERROR_LAB_ORDER_COMMAND\x10K\x12\x1b\n\x16SEND_LAB_ORDER_COMMAND\x10\x9a\n\x12$\n ORIGINATE_FAMILY_HISTORY_COMMAND\x10L\x12\x1f\n\x1b\x45\x44IT_FAMILY_HISTORY_COMMAND\x10M\x12!\n\x1d\x44\x45LETE_FAMILY_HISTORY_COMMAND\x10N\x12!\n\x1d\x43OMMIT_FAMILY_HISTORY_COMMAND\x10O\x12)\n%ENTER_IN_ERROR_FAMILY_HISTORY_COMMAND\x10P\x12\x1d\n\x19ORIGINATE_ALLERGY_COMMAND\x10Q\x12\x18\n\x14\x45\x44IT_ALLERGY_COMMAND\x10R\x12\x1a\n\x16\x44\x45LETE_ALLERGY_COMMAND\x10S\x12\x1a\n\x16\x43OMMIT_ALLERGY_COMMAND\x10T\x12\"\n\x1e\x45NTER_IN_ERROR_ALLERGY_COMMAND\x10U\x12$\n ORIGINATE_REMOVE_ALLERGY_COMMAND\x10V\x12\x1f\n\x1b\x45\x44IT_REMOVE_ALLERGY_COMMAND\x10W\x12!\n\x1d\x44\x45LETE_REMOVE_ALLERGY_COMMAND\x10X\x12!\n\x1d\x43OMMIT_REMOVE_ALLERGY_COMMAND\x10Y\x12)\n%ENTER_IN_ERROR_REMOVE_ALLERGY_COMMAND\x10Z\x12&\n\"ORIGINATE_SURGICAL_HISTORY_COMMAND\x10[\x12!\n\x1d\x45\x44IT_SURGICAL_HISTORY_COMMAND\x10\\\x12#\n\x1f\x44\x45LETE_SURGICAL_HISTORY_COMMAND\x10]\x12#\n\x1f\x43OMMIT_SURGICAL_HISTORY_COMMAND\x10^\x12+\n\'ENTER_IN_ERROR_SURGICAL_HISTORY_COMMAND\x10_\x12\x0f\n\x0b\x43REATE_TASK\x10\x64\x12\x0f\n\x0bUPDATE_TASK\x10\x65\x12\x17\n\x13\x43REATE_TASK_COMMENT\x10\x66\x12%\n!ORIGINATE_MEDICAL_HISTORY_COMMAND\x10g\x12 \n\x1c\x45\x44IT_MEDICAL_HISTORY_COMMAND\x10h\x12\"\n\x1e\x44\x45LETE_MEDICAL_HISTORY_COMMAND\x10i\x12\"\n\x1e\x43OMMIT_MEDICAL_HISTORY_COMMAND\x10j\x12*\n&ENTER_IN_ERROR_MEDICAL_HISTORY_COMMAND\x10k\x12\x1f\n\x1b\x41\x44\x44_OR_UPDATE_PROTOCOL_CARD\x10n\x12\x1b\n\x16ORIGINATE_TASK_COMMAND\x10\x85\x01\x12\x16\n\x11\x45\x44IT_TASK_COMMAND\x10\x86\x01\x12\x18\n\x13\x44\x45LETE_TASK_COMMAND\x10\x87\x01\x12\x18\n\x13\x43OMMIT_TASK_COMMAND\x10\x88\x01\x12 \n\x1b\x45NTER_IN_ERROR_TASK_COMMAND\x10\x89\x01\x12\x1c\n\x18ORIGINATE_REFILL_COMMAND\x10q\x12\x17\n\x13\x45\x44IT_REFILL_COMMAND\x10r\x12\x19\n\x15\x44\x45LETE_REFILL_COMMAND\x10s\x12\x19\n\x15\x43OMMIT_REFILL_COMMAND\x10t\x12!\n\x1d\x45NTER_IN_ERROR_REFILL_COMMAND\x10u\x12\x18\n\x13SEND_REFILL_COMMAND\x10\x9c\n\x12\x1c\n\x18ORIGINATE_VITALS_COMMAND\x10v\x12\x17\n\x13\x45\x44IT_VITALS_COMMAND\x10w\x12\x19\n\x15\x44\x45LETE_VITALS_COMMAND\x10x\x12\x19\n\x15\x43OMMIT_VITALS_COMMAND\x10y\x12!\n\x1d\x45NTER_IN_ERROR_VITALS_COMMAND\x10z\x12&\n\"ORIGINATE_UPDATE_DIAGNOSIS_COMMAND\x10{\x12!\n\x1d\x45\x44IT_UPDATE_DIAGNOSIS_COMMAND\x10|\x12#\n\x1f\x44\x45LETE_UPDATE_DIAGNOSIS_COMMAND\x10}\x12#\n\x1f\x43OMMIT_UPDATE_DIAGNOSIS_COMMAND\x10~\x12+\n\'ENTER_IN_ERROR_UPDATE_DIAGNOSIS_COMMAND\x10\x7f\x12!\n\x1cORIGINATE_CLOSE_GOAL_COMMAND\x10\x80\x01\x12\x1c\n\x17\x45\x44IT_CLOSE_GOAL_COMMAND\x10\x81\x01\x12\x1e\n\x19\x44\x45LETE_CLOSE_GOAL_COMMAND\x10\x82\x01\x12\x1e\n\x19\x43OMMIT_CLOSE_GOAL_COMMAND\x10\x83\x01\x12&\n!ENTER_IN_ERROR_CLOSE_GOAL_COMMAND\x10\x84\x01\x12\x1c\n\x17ORIGINATE_REFER_COMMAND\x10\x8b\x01\x12\x17\n\x12\x45\x44IT_REFER_COMMAND\x10\x8c\x01\x12\x19\n\x14\x44\x45LETE_REFER_COMMAND\x10\x8d\x01\x12\x19\n\x14\x43OMMIT_REFER_COMMAND\x10\x8e\x01\x12!\n\x1c\x45NTER_IN_ERROR_REFER_COMMAND\x10\x8f\x01\x12(\n#ORIGINATE_CHANGE_MEDICATION_COMMAND\x10\x96\x01\x12#\n\x1e\x45\x44IT_CHANGE_MEDICATION_COMMAND\x10\x97\x01\x12%\n DELETE_CHANGE_MEDICATION_COMMAND\x10\x98\x01\x12%\n COMMIT_CHANGE_MEDICATION_COMMAND\x10\x99\x01\x12-\n(ENTER_IN_ERROR_CHANGE_MEDICATION_COMMAND\x10\x9a\x01\x12 \n\x1b\x43REATE_QUESTIONNAIRE_RESULT\x10\x8a\x01\x12-\n(ANNOTATE_PATIENT_CHART_CONDITION_RESULTS\x10\xc8\x01\x12%\n ANNOTATE_CLAIM_CONDITION_RESULTS\x10\xac\x02\x12(\n#SHOW_PATIENT_CHART_SUMMARY_SECTIONS\x10\x90\x03\x12\"\n\x1dSHOW_PATIENT_PROFILE_SECTIONS\x10\xf4\x03\x12\x37\n2PATIENT_PROFILE__ADD_PHARMACY__POST_SEARCH_RESULTS\x10\xf5\x03\x12)\n$SEND_SURESCRIPTS_ELIGIBILITY_REQUEST\x10\xd8\x04\x12\x30\n+SEND_SURESCRIPTS_MEDICATION_HISTORY_REQUEST\x10\xd9\x04\x12&\n!SEND_SURESCRIPTS_BENEFITS_REQUEST\x10\xda\x04\x12\x1b\n\x16ORIGINATE_EXAM_COMMAND\x10\xbc\x05\x12\x16\n\x11\x45\x44IT_EXAM_COMMAND\x10\xbd\x05\x12\x18\n\x13\x44\x45LETE_EXAM_COMMAND\x10\xbe\x05\x12\x18\n\x13\x43OMMIT_EXAM_COMMAND\x10\xbf\x05\x12 \n\x1b\x45NTER_IN_ERROR_EXAM_COMMAND\x10\xc0\x05\x12\x1a\n\x15ORIGINATE_ROS_COMMAND\x10\xa0\x06\x12\x15\n\x10\x45\x44IT_ROS_COMMAND\x10\xa1\x06\x12\x17\n\x12\x44\x45LETE_ROS_COMMAND\x10\xa2\x06\x12\x17\n\x12\x43OMMIT_ROS_COMMAND\x10\xa3\x06\x12\x1f\n\x1a\x45NTER_IN_ERROR_ROS_COMMAND\x10\xa4\x06\x12,\n\'ORIGINATE_STRUCTURED_ASSESSMENT_COMMAND\x10\x84\x07\x12\'\n\"EDIT_STRUCTURED_ASSESSMENT_COMMAND\x10\x85\x07\x12)\n$DELETE_STRUCTURED_ASSESSMENT_COMMAND\x10\x86\x07\x12)\n$COMMIT_STRUCTURED_ASSESSMENT_COMMAND\x10\x87\x07\x12\x31\n,ENTER_IN_ERROR_STRUCTURED_ASSESSMENT_COMMAND\x10\x88\x07\x12 \n\x1bORIGINATE_FOLLOW_UP_COMMAND\x10\x89\x07\x12\x1b\n\x16\x45\x44IT_FOLLOW_UP_COMMAND\x10\x8a\x07\x12\x1d\n\x18\x44\x45LETE_FOLLOW_UP_COMMAND\x10\x8b\x07\x12\x1d\n\x18\x43OMMIT_FOLLOW_UP_COMMAND\x10\x8c\x07\x12%\n ENTER_IN_ERROR_FOLLOW_UP_COMMAND\x10\x8d\x07\x12$\n\x1fORIGINATE_IMAGING_ORDER_COMMAND\x10\xcc\x08\x12\x1f\n\x1a\x45\x44IT_IMAGING_ORDER_COMMAND\x10\xcd\x08\x12!\n\x1c\x44\x45LETE_IMAGING_ORDER_COMMAND\x10\xce\x08\x12!\n\x1c\x43OMMIT_IMAGING_ORDER_COMMAND\x10\xcf\x08\x12)\n$ENTER_IN_ERROR_IMAGING_ORDER_COMMAND\x10\xd0\x08\x12(\n#ORIGINATE_RESOLVE_CONDITION_COMMAND\x10\xb0\t\x12#\n\x1e\x45\x44IT_RESOLVE_CONDITION_COMMAND\x10\xb1\t\x12%\n DELETE_RESOLVE_CONDITION_COMMAND\x10\xb2\t\x12%\n COMMIT_RESOLVE_CONDITION_COMMAND\x10\xb3\t\x12-\n(ENTER_IN_ERROR_RESOLVE_CONDITION_COMMAND\x10\xb4\t\x12*\n%ORIGINATE_ADJUST_PRESCRIPTION_COMMAND\x10\x94\n\x12%\n EDIT_ADJUST_PRESCRIPTION_COMMAND\x10\x95\n\x12\'\n\"DELETE_ADJUST_PRESCRIPTION_COMMAND\x10\x96\n\x12\'\n\"COMMIT_ADJUST_PRESCRIPTION_COMMAND\x10\x97\n\x12/\n*ENTER_IN_ERROR_ADJUST_PRESCRIPTION_COMMAND\x10\x98\n\x12%\n SEND_ADJUST_PRESCRIPTION_COMMAND\x10\x9b\n\x12+\n&ORIGINATE_CHART_SECTION_REVIEW_COMMAND\x10\xf8\n\x12-\n(ORIGINATE_IMMUNIZATION_STATEMENT_COMMAND\x10\xdc\x0b\x12(\n#EDIT_IMMUNIZATION_STATEMENT_COMMAND\x10\xdd\x0b\x12*\n%DELETE_IMMUNIZATION_STATEMENT_COMMAND\x10\xde\x0b\x12*\n%COMMIT_IMMUNIZATION_STATEMENT_COMMAND\x10\xdf\x0b\x12\x32\n-ENTER_IN_ERROR_IMMUNIZATION_STATEMENT_COMMAND\x10\xe0\x0b\x12&\n!COMMAND_AVAILABLE_ACTIONS_RESULTS\x10\xc0\x0c\x12\x17\n\x12SHOW_ACTION_BUTTON\x10\xe8\x07\x12 \n\x1bPATIENT_PORTAL__FORM_RESULT\x10\xd0\x0f\x12.\n)PATIENT_PORTAL__APPOINTMENT_IS_CANCELABLE\x10\xd1\x0f\x12\x31\n,PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE\x10\xd2\x0f\x12\x32\n-PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK\x10\xd3\x0f\x12 \n\x1bPATIENT_PORTAL__SEND_INVITE\x10\xd4\x0f\x12=\n8PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS\x10\xd5\x0f\x12M\nHPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS\x10\xd6\x0f\x12N\nIPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__POST_SEARCH_RESULTS\x10\xd7\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__PRE_SEARCH_RESULTS\x10\xd8\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__POST_SEARCH_RESULTS\x10\xd9\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__PRE_SEARCH_RESULTS\x10\xda\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__POST_SEARCH_RESULTS\x10\xdb\x0f\x12.\n)PATIENT_PORTAL__APPLICATION_CONFIGURATION\x10\xdc\x0f\x12\x1a\n\x15\x41\x44\x44_BILLING_LINE_ITEM\x10\xee\x0f\x12\x1d\n\x18UPDATE_BILLING_LINE_ITEM\x10\xef\x0f\x12\x1d\n\x18REMOVE_BILLING_LINE_ITEM\x10\xf0\x0f\x12#\n\x1eSHOW_PATIENT_PORTAL_MENU_ITEMS\x10\xb4\x10\x12\x12\n\rPORTAL_WIDGET\x10\xb5\x10\x12\x11\n\x0cLAUNCH_MODAL\x10\xb8\x17\x12\x18\n\x13SIMPLE_API_RESPONSE\x10\xa0\x1f\x12 \n\x1bSIMPLE_API_WEBSOCKET_ACCEPT\x10\xa1\x1f\x12\x1e\n\x19SIMPLE_API_WEBSOCKET_DENY\x10\xa2\x1f\x12#\n\x1eSIMPLE_API_WEBSOCKET_BROADCAST\x10\xa3\x1f\x12\x10\n\x0bUPDATE_USER\x10\x88\'\x12\x10\n\x0b\x43REATE_NOTE\x10\xf0.\x12\x10\n\x0bUPDATE_NOTE\x10\xfd.\x12\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x17\n\x12UPDATE_APPOINTMENT\x10\xfe.\x12\x17\n\x12\x43\x41NCEL_APPOINTMENT\x10\xff.\x12\x1a\n\x15\x43REATE_SCHEDULE_EVENT\x10\xf2.\x12\x1a\n\x15UPDATE_SCHEDULE_EVENT\x10\x80/\x12\x1a\n\x15\x44\x45LETE_SCHEDULE_EVENT\x10\x81/\x12\x13\n\x0e\x43REATE_PATIENT\x10\xf3.\x12\x13\n\x0eUPDATE_PATIENT\x10\xf8.\x12\x13\n\x0e\x43REATE_MESSAGE\x10\xf4.\x12\x11\n\x0cSEND_MESSAGE\x10\xf5.\x12\x1c\n\x17\x43REATE_AND_SEND_MESSAGE\x10\xf6.\x12\x11\n\x0c\x45\x44IT_MESSAGE\x10\xf7.\x12/\n*PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS\x10\xfa.\x12\x1c\n\x17UPSERT_PATIENT_METADATA\x10\xfb.\x12\'\n\"CREATE_PATIENT_EXTERNAL_IDENTIFIER\x10\xfc.\x12(\n#CREATE_PATIENT_PREFERRED_PHARMACIES\x10\x82/\x12\x1f\n\x1a\x43REATE_COMPOUND_MEDICATION\x10\x84/\x12\x1f\n\x1aUPDATE_COMPOUND_MEDICATION\x10\x85/\x12\x1f\n\x1aPATIENT_CHART__GROUP_ITEMS\x10\x8e/\x12\x18\n\x13SHOW_PANEL_SECTIONS\x10\xd4/\x12\x15\n\x10REDIRECT_CONTEXT\x10\xb8\x30\x12)\n$REVENUE__PAYMENT_PROCESSOR__METADATA\x10\xd9\x36\x12%\n REVENUE__PAYMENT_PROCESSOR__FORM\x10\xda\x36\x12\x38\n3REVENUE__PAYMENT_PROCESSOR__CREDIT_CARD_TRANSACTION\x10\xdb\x36\x12/\n*REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD\x10\xdc\x36\x12=\n8REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD__ADD_RESPONSE\x10\xdd\x36\x12@\n;REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHOD__REMOVE_RESPONSE\x10\xde\x36\x62\x06proto3')
18
18
 
19
19
  _globals = globals()
20
20
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -22,7 +22,7 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'canvas_generated.messages.e
22
22
  if _descriptor._USE_C_DESCRIPTORS == False:
23
23
  DESCRIPTOR._options = None
24
24
  _globals['_EFFECTTYPE']._serialized_start=175
25
- _globals['_EFFECTTYPE']._serialized_end=8801
25
+ _globals['_EFFECTTYPE']._serialized_end=8864
26
26
  _globals['_EFFECT']._serialized_start=51
27
27
  _globals['_EFFECT']._serialized_end=172
28
28
  # @@protoc_insertion_point(module_scope)
@@ -236,6 +236,7 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
236
236
  UPDATE_SCHEDULE_EVENT: _ClassVar[EffectType]
237
237
  DELETE_SCHEDULE_EVENT: _ClassVar[EffectType]
238
238
  CREATE_PATIENT: _ClassVar[EffectType]
239
+ UPDATE_PATIENT: _ClassVar[EffectType]
239
240
  CREATE_MESSAGE: _ClassVar[EffectType]
240
241
  SEND_MESSAGE: _ClassVar[EffectType]
241
242
  CREATE_AND_SEND_MESSAGE: _ClassVar[EffectType]
@@ -243,6 +244,7 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
243
244
  PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS: _ClassVar[EffectType]
244
245
  UPSERT_PATIENT_METADATA: _ClassVar[EffectType]
245
246
  CREATE_PATIENT_EXTERNAL_IDENTIFIER: _ClassVar[EffectType]
247
+ CREATE_PATIENT_PREFERRED_PHARMACIES: _ClassVar[EffectType]
246
248
  CREATE_COMPOUND_MEDICATION: _ClassVar[EffectType]
247
249
  UPDATE_COMPOUND_MEDICATION: _ClassVar[EffectType]
248
250
  PATIENT_CHART__GROUP_ITEMS: _ClassVar[EffectType]
@@ -483,6 +485,7 @@ CREATE_SCHEDULE_EVENT: EffectType
483
485
  UPDATE_SCHEDULE_EVENT: EffectType
484
486
  DELETE_SCHEDULE_EVENT: EffectType
485
487
  CREATE_PATIENT: EffectType
488
+ UPDATE_PATIENT: EffectType
486
489
  CREATE_MESSAGE: EffectType
487
490
  SEND_MESSAGE: EffectType
488
491
  CREATE_AND_SEND_MESSAGE: EffectType
@@ -490,6 +493,7 @@ EDIT_MESSAGE: EffectType
490
493
  PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS: EffectType
491
494
  UPSERT_PATIENT_METADATA: EffectType
492
495
  CREATE_PATIENT_EXTERNAL_IDENTIFIER: EffectType
496
+ CREATE_PATIENT_PREFERRED_PHARMACIES: EffectType
493
497
  CREATE_COMPOUND_MEDICATION: EffectType
494
498
  UPDATE_COMPOUND_MEDICATION: EffectType
495
499
  PATIENT_CHART__GROUP_ITEMS: EffectType
@@ -0,0 +1,23 @@
1
+ from canvas_sdk.effects.patient.base import (
2
+ Patient,
3
+ PatientAddress,
4
+ PatientContactPoint,
5
+ PatientExternalIdentifier,
6
+ PatientPreferredPharmacy,
7
+ )
8
+ from canvas_sdk.effects.patient.create_patient_external_identifier import (
9
+ CreatePatientExternalIdentifier,
10
+ )
11
+ from canvas_sdk.effects.patient.create_patient_preferred_pharmacies import (
12
+ CreatePatientPreferredPharmacies,
13
+ )
14
+
15
+ __all__ = __exports__ = (
16
+ "Patient",
17
+ "PatientAddress",
18
+ "PatientContactPoint",
19
+ "PatientExternalIdentifier",
20
+ "PatientPreferredPharmacy",
21
+ "CreatePatientExternalIdentifier",
22
+ "CreatePatientPreferredPharmacies",
23
+ )
@@ -0,0 +1,275 @@
1
+ import datetime
2
+ import json
3
+ from dataclasses import dataclass
4
+ from typing import Any
5
+
6
+ from pydantic_core import InitErrorDetails
7
+
8
+ from canvas_generated.messages.effects_pb2 import Effect
9
+ from canvas_sdk.base import TrackableFieldsModel
10
+ from canvas_sdk.v1.data import Patient as PatientModel
11
+ from canvas_sdk.v1.data import PracticeLocation, Staff
12
+ from canvas_sdk.v1.data.common import (
13
+ AddressType,
14
+ AddressUse,
15
+ ContactPointSystem,
16
+ ContactPointUse,
17
+ PersonSex,
18
+ )
19
+
20
+
21
+ @dataclass
22
+ class PatientContactPoint:
23
+ """A class representing a patient contact point."""
24
+
25
+ system: ContactPointSystem
26
+ value: str
27
+ use: ContactPointUse
28
+ rank: int
29
+ has_consent: bool | None = None
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ """Convert the contact point to a dictionary."""
33
+ return {
34
+ "system": self.system.value,
35
+ "value": self.value,
36
+ "use": self.use.value,
37
+ "rank": self.rank,
38
+ "has_consent": self.has_consent,
39
+ }
40
+
41
+
42
+ @dataclass
43
+ class PatientExternalIdentifier:
44
+ """A class representing a patient external identifier."""
45
+
46
+ value: str
47
+ system: str | None = None
48
+
49
+ def to_dict(self) -> dict[str, Any]:
50
+ """Convert the external identifier to a dictionary."""
51
+ return {
52
+ "system": self.system,
53
+ "value": self.value,
54
+ }
55
+
56
+
57
+ @dataclass
58
+ class PatientPreferredPharmacy:
59
+ """A class representing a preferred pharmacy."""
60
+
61
+ ncpdp_id: str
62
+ default: bool = False
63
+
64
+ def to_dict(self) -> dict[str, Any]:
65
+ """Convert the preferred pharmacy to a dictionary."""
66
+ return {
67
+ "ncpdp_id": self.ncpdp_id,
68
+ "default": self.default,
69
+ }
70
+
71
+
72
+ @dataclass
73
+ class PatientAddress:
74
+ """A class representing a patient address."""
75
+
76
+ line1: str
77
+ country: str
78
+ line2: str | None = None
79
+ use: AddressUse = AddressUse.HOME
80
+ type: AddressType = AddressType.BOTH
81
+ city: str | None = None
82
+ district: str | None = None
83
+ state_code: str | None = None
84
+ postal_code: str | None = None
85
+ longitude: float | None = None
86
+ latitude: float | None = None
87
+
88
+ def to_dict(self) -> dict[str, Any]:
89
+ """Convert the address to a dictionary."""
90
+ return {
91
+ "line1": self.line1,
92
+ "line2": self.line2,
93
+ "country": self.country,
94
+ "use": self.use.value,
95
+ "type": self.type.value,
96
+ "city": self.city,
97
+ "district": self.district,
98
+ "state_code": self.state_code,
99
+ "postal_code": self.postal_code,
100
+ "longitude": self.longitude,
101
+ "latitude": self.latitude,
102
+ }
103
+
104
+
105
+ class Patient(TrackableFieldsModel):
106
+ """Effect to create a Patient record."""
107
+
108
+ class Meta:
109
+ effect_type = "PATIENT"
110
+
111
+ patient_id: str | None = None
112
+ first_name: str | None = None
113
+ last_name: str | None = None
114
+ middle_name: str | None = None
115
+ birthdate: datetime.date | None = None
116
+ prefix: str | None = None
117
+ suffix: str | None = None
118
+ sex_at_birth: PersonSex | None = None
119
+ nickname: str | None = None
120
+ social_security_number: str | None = None
121
+ administrative_note: str | None = None
122
+ clinical_note: str | None = None
123
+ default_location_id: str | None = None
124
+ default_provider_id: str | None = None
125
+ previous_names: list[str] | None = None
126
+ contact_points: list[PatientContactPoint] | None = None
127
+ external_identifiers: list[PatientExternalIdentifier] | None = None
128
+ preferred_pharmacies: list[PatientPreferredPharmacy] | None = None
129
+ addresses: list[PatientAddress] | None = None
130
+
131
+ @property
132
+ def values(self) -> dict[str, Any]:
133
+ """Return the values of the patient as a dictionary."""
134
+ values = super().values
135
+
136
+ if self.is_dirty("contact_points"):
137
+ values["contact_points"] = (
138
+ [cp.to_dict() for cp in self.contact_points]
139
+ if self.contact_points is not None
140
+ else None
141
+ )
142
+
143
+ if self.is_dirty("external_identifiers"):
144
+ values["external_identifiers"] = (
145
+ [ids.to_dict() for ids in self.external_identifiers]
146
+ if self.external_identifiers is not None
147
+ else None
148
+ )
149
+
150
+ if self.is_dirty("addresses"):
151
+ values["addresses"] = (
152
+ [addr.to_dict() for addr in self.addresses] if self.addresses is not None else None
153
+ )
154
+
155
+ if self.is_dirty("preferred_pharmacies"):
156
+ values["preferred_pharmacies"] = (
157
+ [pharmacy.to_dict() for pharmacy in self.preferred_pharmacies]
158
+ if self.preferred_pharmacies
159
+ else None
160
+ )
161
+
162
+ return values
163
+
164
+ def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
165
+ errors = super()._get_error_details(method)
166
+
167
+ # Validate create-specific requirements
168
+ if method == "create":
169
+ if self.patient_id:
170
+ errors.append(
171
+ self._create_error_detail(
172
+ "value",
173
+ "Patient ID should not be set when creating a new patient.",
174
+ self.patient_id,
175
+ )
176
+ )
177
+
178
+ # first_name and last_name are required for create
179
+ if not self.first_name:
180
+ errors.append(
181
+ self._create_error_detail(
182
+ "value",
183
+ "First name is required when creating a new patient.",
184
+ self.first_name,
185
+ )
186
+ )
187
+
188
+ if not self.last_name:
189
+ errors.append(
190
+ self._create_error_detail(
191
+ "value",
192
+ "Last name is required when creating a new patient.",
193
+ self.last_name,
194
+ )
195
+ )
196
+
197
+ # Validate update-specific requirements
198
+ if method == "update":
199
+ if not self.patient_id:
200
+ errors.append(
201
+ self._create_error_detail(
202
+ "value",
203
+ "Patient ID must be set when updating an existing patient.",
204
+ self.patient_id,
205
+ )
206
+ )
207
+ elif not PatientModel.objects.filter(id=self.patient_id).exists():
208
+ errors.append(
209
+ self._create_error_detail(
210
+ "value",
211
+ f"Patient with ID {self.patient_id} does not exist.",
212
+ self.patient_id,
213
+ )
214
+ )
215
+
216
+ if (
217
+ self.default_location_id
218
+ and not PracticeLocation.objects.filter(id=self.default_location_id).exists()
219
+ ):
220
+ errors.append(
221
+ self._create_error_detail(
222
+ "value",
223
+ f"Practice location with ID {self.default_location_id} does not exist.",
224
+ self.default_location_id,
225
+ )
226
+ )
227
+
228
+ if (
229
+ self.default_provider_id
230
+ and not Staff.objects.filter(id=self.default_provider_id).exists()
231
+ ):
232
+ errors.append(
233
+ self._create_error_detail(
234
+ "value",
235
+ f"Provider with ID {self.default_provider_id} does not exist.",
236
+ self.default_provider_id,
237
+ )
238
+ )
239
+
240
+ return errors
241
+
242
+ def create(self) -> Effect:
243
+ """Create a new Patient."""
244
+ self._validate_before_effect("create")
245
+
246
+ return Effect(
247
+ type=f"CREATE_{self.Meta.effect_type}",
248
+ payload=json.dumps(
249
+ {
250
+ "data": self.values,
251
+ }
252
+ ),
253
+ )
254
+
255
+ def update(self) -> Effect:
256
+ """Update an existing Patient."""
257
+ self._validate_before_effect("update")
258
+
259
+ return Effect(
260
+ type=f"UPDATE_{self.Meta.effect_type}",
261
+ payload=json.dumps(
262
+ {
263
+ "data": self.values,
264
+ }
265
+ ),
266
+ )
267
+
268
+
269
+ __exports__ = (
270
+ "Patient",
271
+ "PatientAddress",
272
+ "PatientContactPoint",
273
+ "PatientExternalIdentifier",
274
+ "PatientPreferredPharmacy",
275
+ )
@@ -0,0 +1,70 @@
1
+ import json
2
+ from typing import Any
3
+ from uuid import UUID
4
+
5
+ from pydantic_core import InitErrorDetails
6
+
7
+ from canvas_generated.messages.effects_pb2 import Effect
8
+ from canvas_sdk.effects import _BaseEffect
9
+ from canvas_sdk.effects.patient import PatientPreferredPharmacy
10
+ from canvas_sdk.v1.data import Patient
11
+
12
+
13
+ class CreatePatientPreferredPharmacies(_BaseEffect):
14
+ """Effect to create a Patient External Identifier record."""
15
+
16
+ class Meta:
17
+ effect_type = "CREATE_PATIENT_PREFERRED_PHARMACIES"
18
+
19
+ pharmacies: list[PatientPreferredPharmacy]
20
+ patient_id: str | UUID
21
+
22
+ def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
23
+ errors = super()._get_error_details(method)
24
+
25
+ if not Patient.objects.filter(id=self.patient_id).exists():
26
+ errors.append(
27
+ self._create_error_detail(
28
+ "value",
29
+ f"Patient with ID {self.patient_id} does not exist.",
30
+ self.patient_id,
31
+ )
32
+ )
33
+
34
+ default_count = sum(1 for pharmacy in self.pharmacies if pharmacy.default)
35
+ if default_count > 1:
36
+ errors.append(
37
+ self._create_error_detail(
38
+ "value",
39
+ "Only one preferred pharmacy can be set as default.",
40
+ None,
41
+ )
42
+ )
43
+
44
+ return errors
45
+
46
+ @property
47
+ def values(self) -> dict[str, Any]:
48
+ """Return the values of the preferred pharmacies."""
49
+ return {
50
+ "preferred_pharmacies": [
51
+ preferred_pharmacy.to_dict() for preferred_pharmacy in self.pharmacies
52
+ ],
53
+ "patient_id": str(self.patient_id),
54
+ }
55
+
56
+ def create(self) -> Effect:
57
+ """Create Patient Preferred Pharmacies."""
58
+ self._validate_before_effect("create")
59
+
60
+ return Effect(
61
+ type=self.Meta.effect_type,
62
+ payload=json.dumps(
63
+ {
64
+ "data": self.values,
65
+ }
66
+ ),
67
+ )
68
+
69
+
70
+ __exports__ = ("CreatePatientPreferredPharmacies",)
@@ -0,0 +1,13 @@
1
+ from .facility import FacilityFactory
2
+ from .patient import PatientAddressFactory, PatientFacilityAddressFactory, PatientFactory
3
+ from .protocol_current import ProtocolCurrentFactory
4
+ from .user import CanvasUserFactory
5
+
6
+ __all__ = (
7
+ "CanvasUserFactory",
8
+ "FacilityFactory",
9
+ "PatientAddressFactory",
10
+ "PatientFacilityAddressFactory",
11
+ "PatientFactory",
12
+ "ProtocolCurrentFactory",
13
+ )
@@ -0,0 +1,21 @@
1
+ import factory
2
+
3
+ from canvas_sdk.v1.data import Facility
4
+
5
+
6
+ class FacilityFactory(factory.django.DjangoModelFactory[Facility]):
7
+ """Factory for creating a Facility."""
8
+
9
+ class Meta:
10
+ model = Facility
11
+
12
+ name = factory.Faker("company")
13
+ npi_number = factory.Faker("numerify", text="##########") # 10 digit NPI number
14
+ phone_number = factory.Faker("numerify", text="##########") # 10 digit phone number
15
+ active = True
16
+ line1 = factory.Faker("street_address")
17
+ line2 = factory.Faker("secondary_address")
18
+ city = factory.Faker("city")
19
+ district = factory.Faker("city_suffix")
20
+ state_code = factory.Faker("state_abbr")
21
+ postal_code = factory.Faker("postcode")
@@ -3,8 +3,9 @@ import datetime
3
3
  import factory
4
4
  from factory.fuzzy import FuzzyDate
5
5
 
6
+ from canvas_sdk.test_utils.factories.facility import FacilityFactory
6
7
  from canvas_sdk.test_utils.factories.user import CanvasUserFactory
7
- from canvas_sdk.v1.data import Patient, PatientAddress
8
+ from canvas_sdk.v1.data import Patient, PatientAddress, PatientFacilityAddress
8
9
 
9
10
 
10
11
  class PatientAddressFactory(factory.django.DjangoModelFactory[PatientAddress]):
@@ -37,3 +38,14 @@ class PatientFactory(factory.django.DjangoModelFactory[Patient]):
37
38
  last_name = factory.Faker("last_name")
38
39
  addresses = factory.RelatedFactory(PatientAddressFactory, "patient")
39
40
  user = factory.SubFactory(CanvasUserFactory)
41
+
42
+
43
+ class PatientFacilityAddressFactory(factory.django.DjangoModelFactory[PatientFacilityAddress]):
44
+ """Factory for creating a PatientFacilityAddress."""
45
+
46
+ class Meta:
47
+ model = PatientFacilityAddress
48
+
49
+ facility = factory.SubFactory(FacilityFactory)
50
+ patient = factory.SubFactory(PatientFactory)
51
+ room_number = factory.Faker("building_number")
@@ -0,0 +1,44 @@
1
+ import datetime
2
+
3
+ import factory
4
+ from factory.fuzzy import FuzzyChoice, FuzzyDate, FuzzyInteger
5
+
6
+ from canvas_sdk.test_utils.factories.patient import PatientFactory
7
+ from canvas_sdk.v1.data import ProtocolCurrent
8
+ from canvas_sdk.v1.data.protocol_result import ProtocolResultStatus
9
+
10
+
11
+ class ProtocolCurrentFactory(factory.django.DjangoModelFactory[ProtocolCurrent]):
12
+ """Factory for creating a ProtocolCurrent."""
13
+
14
+ class Meta:
15
+ model = ProtocolCurrent
16
+
17
+ # Fields from ProtocolResult (abstract base class)
18
+ title = factory.Faker("sentence", nb_words=4)
19
+ narrative = factory.Faker("text", max_nb_chars=200)
20
+ types = factory.LazyFunction(lambda: ["screening", "preventive"])
21
+ protocol_key = factory.Faker("slug")
22
+ plugin_name = factory.Faker("slug")
23
+ status = FuzzyChoice(ProtocolResultStatus.choices, getter=lambda c: c[0])
24
+ due_in = FuzzyInteger(-30, 365) # Days until due (can be negative for overdue)
25
+ days_of_notice = FuzzyInteger(7, 60)
26
+ snoozed = factory.Faker("boolean", chance_of_getting_true=20)
27
+ sources = factory.LazyFunction(lambda: {"conditions": [], "medications": [], "labs": []})
28
+ recommendations = factory.LazyFunction(lambda: {"primary": "Schedule annual checkup"})
29
+ top_recommendation_key = factory.Faker("slug")
30
+ next_review = factory.Faker("date_time_between", start_date="+1d", end_date="+1y")
31
+ feedback_enabled = factory.Faker("boolean", chance_of_getting_true=30)
32
+ plugin_can_be_snoozed = factory.Faker("boolean", chance_of_getting_true=70)
33
+
34
+ # Fields specific to ProtocolCurrent
35
+ patient = factory.SubFactory(PatientFactory)
36
+ result_hash = factory.Faker("md5")
37
+ snooze_date = factory.Maybe(
38
+ "snoozed",
39
+ yes_declaration=FuzzyDate(
40
+ start_date=datetime.date.today(),
41
+ end_date=datetime.date.today() + datetime.timedelta(days=90),
42
+ ),
43
+ no_declaration=None,
44
+ )
@@ -15,6 +15,7 @@ from .coverage import Coverage, Transactor, TransactorAddress, TransactorPhone
15
15
  from .detected_issue import DetectedIssue, DetectedIssueEvidence
16
16
  from .device import Device
17
17
  from .discount import Discount
18
+ from .facility import Facility
18
19
  from .goal import Goal
19
20
  from .imaging import ImagingOrder, ImagingReport, ImagingReview
20
21
  from .invoice import Invoice
@@ -51,6 +52,7 @@ from .patient import (
51
52
  PatientAddress,
52
53
  PatientContactPoint,
53
54
  PatientExternalIdentifier,
55
+ PatientFacilityAddress,
54
56
  PatientMetadata,
55
57
  PatientSetting,
56
58
  )
@@ -69,6 +71,7 @@ from .posting import (
69
71
  PatientPosting,
70
72
  )
71
73
  from .practicelocation import PracticeLocation, PracticeLocationSetting
74
+ from .protocol_current import ProtocolCurrent
72
75
  from .protocol_override import ProtocolOverride
73
76
  from .questionnaire import (
74
77
  Interview,
@@ -83,7 +86,7 @@ from .questionnaire import (
83
86
  from .reason_for_visit import ReasonForVisitSettingCoding
84
87
  from .referral import Referral, ReferralReport
85
88
  from .service_provider import ServiceProvider
86
- from .staff import Staff, StaffAddress, StaffContactPoint, StaffPhoto, StaffRole
89
+ from .staff import Staff, StaffAddress, StaffContactPoint, StaffLicense, StaffPhoto, StaffRole
87
90
  from .task import Task, TaskComment, TaskLabel, TaskTaskLabel
88
91
  from .team import Team, TeamContactPoint
89
92
  from .user import CanvasUser
@@ -121,6 +124,7 @@ __all__ = __exports__ = (
121
124
  "DetectedIssueEvidence",
122
125
  "Device",
123
126
  "Discount",
127
+ "Facility",
124
128
  "Goal",
125
129
  "ImagingOrder",
126
130
  "ImagingReport",
@@ -161,6 +165,7 @@ __all__ = __exports__ = (
161
165
  "PatientAddress",
162
166
  "PatientContactPoint",
163
167
  "PatientExternalIdentifier",
168
+ "PatientFacilityAddress",
164
169
  "PatientPosting",
165
170
  "PatientSetting",
166
171
  "PatientMetadata",
@@ -171,6 +176,7 @@ __all__ = __exports__ = (
171
176
  "PaymentCollection",
172
177
  "PracticeLocation",
173
178
  "PracticeLocationSetting",
179
+ "ProtocolCurrent",
174
180
  "ProtocolOverride",
175
181
  "Question",
176
182
  "Questionnaire",
@@ -183,6 +189,7 @@ __all__ = __exports__ = (
183
189
  "ServiceProvider",
184
190
  "Staff",
185
191
  "StaffAddress",
192
+ "StaffLicense",
186
193
  "StaffPhoto",
187
194
  "StaffRole",
188
195
  "StaffContactPoint",