canvas 0.65.0__py3-none-any.whl → 0.67.0__py3-none-any.whl

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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: canvas
3
- Version: 0.65.0
3
+ Version: 0.67.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
@@ -81,8 +81,8 @@ canvas_cli/utils/urls/urls.py,sha256=KwWTh5ERrEsZEvdBrZpZB71xtyWkDuglpXUbycWmBOo
81
81
  canvas_cli/utils/validators/__init__.py,sha256=rBvSR2O1hWkNAnUBdcr-zUkmqT796_A61b9pnvEhwrM,113
82
82
  canvas_cli/utils/validators/manifest_schema.py,sha256=XNw-sbFgxaXzffWnQd6zLg5V74odv7jGiEFENWKnluA,6057
83
83
  canvas_cli/utils/validators/validators.py,sha256=lrUBQ0sF7seTe_pNGsNgASdr2BGp6g-Qui58V4H9qfQ,1598
84
- canvas_generated/messages/effects_pb2.py,sha256=EUqmz0u9flRdMJmSOjyDGV4kZveW1IN2KT2HwZ-zR8Y,15101
85
- canvas_generated/messages/effects_pb2.pyi,sha256=BLCQQH3NWhrsUm3e_IcHP8vUcpnmvXJeiW3D1FsmjsQ,27236
84
+ canvas_generated/messages/effects_pb2.py,sha256=tObxo6jxO2wVM_YKb9Rm2b7cB0aW5ma_KDlY2YWnnzk,15162
85
+ canvas_generated/messages/effects_pb2.pyi,sha256=PAXpkLVvasqqeNM32qRFrg1LFpG9uIow8xgdH5BkEcA,27359
86
86
  canvas_generated/messages/effects_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
87
87
  canvas_generated/messages/events_pb2.py,sha256=tj_szSSgbqPOWdCUQhg0OZCd7IRRb9G-N_va64GmHx4,56705
88
88
  canvas_generated/messages/events_pb2.pyi,sha256=8mZd6J75CUIUWNNpc_gxKmuuqadvW1xUKAxV0aL-nFE,102207
@@ -105,7 +105,7 @@ canvas_sdk/commands/__init__.py,sha256=qX7xkagyYk4W4JqczoTHv3W3Bk16BXQG4Ut7zQV8w
105
105
  canvas_sdk/commands/base.py,sha256=XHHS2mvTm0Do3y5xxUJJzj1JFMZ3Jp-E0Go7ZtnXkww,6763
106
106
  canvas_sdk/commands/constants.py,sha256=0iuPRW1xC0O7i1KxxQbFhjbOA5VAnBkfyxELRJ3M86o,1652
107
107
  canvas_sdk/commands/commands/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
108
- canvas_sdk/commands/commands/adjust_prescription.py,sha256=LgA0x7YS6wK84kxI5r3ULSBSvxi4XFB6hdIMdfakPNQ,453
108
+ canvas_sdk/commands/commands/adjust_prescription.py,sha256=-q5P_70fZWHsByr_claO8S3IuhNKf1pkbiqYrDWzN30,635
109
109
  canvas_sdk/commands/commands/allergy.py,sha256=OCWd6sF8JxehpxUiBBVKqzGE8Ywcs70QUGwHmvwWBvk,922
110
110
  canvas_sdk/commands/commands/assess.py,sha256=njU34KMEMCbKTQDGNuEz2M_K08qd1bE9QCnMmHNNA-E,1417
111
111
  canvas_sdk/commands/commands/change_medication.py,sha256=MIRVnbk2wXk_E19b66ghR2dQNfnHJhzWDY30gh8DCmE,1779
@@ -126,7 +126,7 @@ canvas_sdk/commands/commands/medication_statement.py,sha256=1nH-N3sI1T_dLHXksGLH
126
126
  canvas_sdk/commands/commands/past_surgical_history.py,sha256=0mwybwfiAFE7elVXw1ichVitC3Jpl1JhPfNP89jhVhU,503
127
127
  canvas_sdk/commands/commands/perform.py,sha256=8o5q3snZ7TdkFFTsExZQWctXlpItSJfSihRQVZ3EEGo,409
128
128
  canvas_sdk/commands/commands/plan.py,sha256=2aJ9sUzP45sGw5ExHQToCkndidod5zwVx0a93LA1oRk,251
129
- canvas_sdk/commands/commands/prescribe.py,sha256=nuCIDABvFmDUXsUUQl7TvLX-owvO7j5GBd6Gg75Rmr8,8556
129
+ canvas_sdk/commands/commands/prescribe.py,sha256=IoESMNaY8l8ybPDRpuXmZfHTAme_Ll9qbwX85uXEkkI,8488
130
130
  canvas_sdk/commands/commands/reason_for_visit.py,sha256=eEUnlmRa6yNjJ-_6oIHx18s_DKZxkgY0sv7CkyxIbVY,1986
131
131
  canvas_sdk/commands/commands/refer.py,sha256=uZFYxBajCiMSABEEztRM-jYxhOa1W2dw--fgi68mIOs,1620
132
132
  canvas_sdk/commands/commands/refill.py,sha256=4uTgwIryz_ab4pUGN_wgrEHlDGv__9ecOXOTuLJM6n8,1228
@@ -148,7 +148,7 @@ canvas_sdk/effects/form.py,sha256=NZsd-LxnhNzRwUoUaDNIPuVg9nysUjuWzK2dyx13Nu0,18
148
148
  canvas_sdk/effects/generate_full_chart_pdf.py,sha256=yrtbKfLW7KHg-4VunzqEEKVVcFrBxGsrFSEjGIfN-1Q,1743
149
149
  canvas_sdk/effects/group.py,sha256=hjEk5OQteCCq20umH2bel8nUgT82oyfRXZMxs1K-yyo,399
150
150
  canvas_sdk/effects/launch_modal.py,sha256=WoMn97utz-91t26PpWbpIR_R-Kuwq-dRKgDEEe-75oE,1285
151
- canvas_sdk/effects/metadata.py,sha256=9CrBoirw56qW_1VyK7H8PUGTt6o1lVVEmVKTiOZn6QA,626
151
+ canvas_sdk/effects/metadata.py,sha256=zCPy6Xg4L6W3WqCzvUo9Ht0KCh7RMZk0G2U3aZEZG_w,943
152
152
  canvas_sdk/effects/panel_configuration.py,sha256=o1Ej-YUIBWfTlG_pIjBqr3o69amQC-oVGEFTEr8ChKY,2882
153
153
  canvas_sdk/effects/patient_chart_group.py,sha256=t0s6TQSBz8CVmPjM_mlYqdjTC5nhg6NvWCSwdai0ENs,739
154
154
  canvas_sdk/effects/patient_chart_summary_configuration.py,sha256=ui9xFOeVabr-3QnuqBdj3z7xlLCrVh_BjeSfnVCePp4,1238
@@ -156,6 +156,7 @@ canvas_sdk/effects/patient_portal_menu_configuration.py,sha256=kDK60-H0Cop-GaTky
156
156
  canvas_sdk/effects/patient_profile_configuration.py,sha256=vFFtpSdM19Lofk1RZSB8SoUDodJxymHDgNlHhJcgVaM,1383
157
157
  canvas_sdk/effects/payment_processor.py,sha256=RaalRjwiz7HlokMsZO9ZIZoBvKEUaai1hQUzGe6b6ac,3627
158
158
  canvas_sdk/effects/questionnaire_result.py,sha256=iL8y2_nj1a-C91mxIQ1zkzndgBzuyNt9sgPyblGEq7k,863
159
+ canvas_sdk/effects/send_contact_verification.py,sha256=A_x-hiJmyJkXGYAr8YUgi9MVwjWt1nYLXPUTu8_znn8,1192
159
160
  canvas_sdk/effects/send_invite.py,sha256=XyZCnWWex5nGeJ1-JnoYawp7IumTEp1yaOXQWrWGXyk,1165
160
161
  canvas_sdk/effects/show_button.py,sha256=daPDAxf9sj_-aCuZ8G2-FFhNvfHNjBJsumOMQnbwl7E,817
161
162
  canvas_sdk/effects/simple_api.py,sha256=bR83uy3lPnjSk5TDh6XnDmhHpGQCvBhtsvJK3D46DGw,3990
@@ -180,8 +181,8 @@ canvas_sdk/effects/note/appointment.py,sha256=ca46df8onI-I6szPJWSz_N745PWchKMBcr
180
181
  canvas_sdk/effects/note/base.py,sha256=b8Nc29_maoRuSDanPdlDGW6QIYlyD1j9Dtkv5_qQ7rA,8150
181
182
  canvas_sdk/effects/note/message.py,sha256=T6p6h4J_I0k2jQSirFtIusydak4tem9yBPOTexvOQ0s,3740
182
183
  canvas_sdk/effects/note/note.py,sha256=mQtcC71vviFzwGP_uQKk9_Pksh8oUY8nyMKikUdaWPE,5005
183
- canvas_sdk/effects/patient/__init__.py,sha256=QC5UszNibt-BTC3rfCq9y-j4-APuBMUZfAllB8WnIDY,636
184
- canvas_sdk/effects/patient/base.py,sha256=E60n-RtD8q5Fo1UxCS1-RmZu14qBV5raiYtm2TcxrWU,8342
184
+ canvas_sdk/effects/patient/__init__.py,sha256=E7eELEUiSLXJ_TdfqjpQYpedpddZ9VHY9OKN8qilGJk,680
185
+ canvas_sdk/effects/patient/base.py,sha256=FGFX1nO9zx_pzlbEZ_ZGyrDwjweJinhGgMozRTorVSA,8665
185
186
  canvas_sdk/effects/patient/create_patient_external_identifier.py,sha256=d03jzJcz2n19_NVo_wAq88iKZRuuM60qsZhGGhL7pGE,1055
186
187
  canvas_sdk/effects/patient/create_patient_preferred_pharmacies.py,sha256=Vaby6L5PALtLAiJCNmqKsDec8UZ7DVFyP7kU0fHrpT4,2096
187
188
  canvas_sdk/effects/patient_metadata/__init__.py,sha256=vxTpaP9gY1iNf0iVSoh24buFR7XfY2FKVYKn_P7BJkg,342
@@ -223,9 +224,10 @@ canvas_sdk/questionnaires/utils.py,sha256=6RrGQbcc1uxG6-H5fCzS2mwQTYQdYiQlVVrtSb
223
224
  canvas_sdk/templates/__init__.py,sha256=LtUmLDsGSTq249T6sA7PUzkl2OfCAyvtIOGPNHr6wTo,83
224
225
  canvas_sdk/templates/utils.py,sha256=J-wDQ9ijOr_jz1SJxjpyZgR7JwXqtGMSS5IperLi2qE,1475
225
226
  canvas_sdk/test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- canvas_sdk/test_utils/factories/__init__.py,sha256=Rg8C6um05bil4PuajoWyPGMecXKvMqe0uClgTBiaYSk,491
227
+ canvas_sdk/test_utils/factories/__init__.py,sha256=HJarvs_hgtqalgaabrcZVYGZpxwtXesCotjivzLX8Hg,781
227
228
  canvas_sdk/test_utils/factories/claim_diagnosis_code.py,sha256=3kqcgDRfZup8aly66EW-OX2hs3oJNqHkJY5aeeID0Po,557
228
229
  canvas_sdk/test_utils/factories/facility.py,sha256=9ZNBHCgPelD4oQynwez32I4Gx0kV1O78kgKvuiByyhg,697
230
+ canvas_sdk/test_utils/factories/medication_history.py,sha256=FgDwzRVA6leGzocHMV0S5nOK0F2waJMdnGLeEacOBRM,2312
229
231
  canvas_sdk/test_utils/factories/patient.py,sha256=zXy47K9C6cmQympOABHGUv-1hOqYIXNb7c4TziFO1RE,1594
230
232
  canvas_sdk/test_utils/factories/protocol_current.py,sha256=twq6GdTM29WYZ-AvfE3vkfV3dOMhZDmv_lNZC2eGe8g,1904
231
233
  canvas_sdk/test_utils/factories/user.py,sha256=QLxilvK22fHSsGFxe1j354VdMrdquO8nyWApdXXdS8Q,306
@@ -237,7 +239,7 @@ canvas_sdk/utils/plugins.py,sha256=OPq9OiE1v1AF24HSdEEOlSJxRVc2NVksK0Gpf6OH1NE,1
237
239
  canvas_sdk/v1/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
238
240
  canvas_sdk/v1/apps.py,sha256=4MwQfQu78oX5bUVlyxYzbt4rZODi0ZesXe_3QOsEWO8,170
239
241
  canvas_sdk/v1/models.py,sha256=LqeHZ-Hz3EWyM9vYr9uZ9rBYdMXNuuvJqbmojV8EcEM,224
240
- canvas_sdk/v1/data/__init__.py,sha256=asFixU1731QJTXQSgZn5WACoRGcHui0DFVvQRN4WypY,6106
242
+ canvas_sdk/v1/data/__init__.py,sha256=cSmR6Z9Y87GesEeGVjM9ZYHLL3yOIx6nB3SB6fns8vc,6476
241
243
  canvas_sdk/v1/data/allergy_intolerance.py,sha256=KXfU7UqTdRfHUFrP8yncQGMvlRPEt2K6TrC_y7JYgiE,2453
242
244
  canvas_sdk/v1/data/appointment.py,sha256=wRxRYWvGHP6zXFA-Hq3I08fwC56wHKb3zwpp5kqj4Yw,3227
243
245
  canvas_sdk/v1/data/assessment.py,sha256=vnVoaKWoJGCfaYn6WilxpI5cTgkvM647hFIuTyi_AgY,1663
@@ -252,9 +254,9 @@ canvas_sdk/v1/data/claim_diagnosis_code.py,sha256=JJIOAXeleCn1TthepA3PA5MTnf9pe_
252
254
  canvas_sdk/v1/data/claim_line_item.py,sha256=5WyTqlWSdQSDKyGWwRv5Dyn24_etyp8Zg_Q8aNgGL6o,5072
253
255
  canvas_sdk/v1/data/command.py,sha256=G7qtNypiTK274QQExKLbnij4gM71HZMs8f79VFYvIiY,1944
254
256
  canvas_sdk/v1/data/common.py,sha256=u5W3_7kXAGPe7guEBwRouKp8FMRCx9iZL6ei8QMmtwU,4880
255
- canvas_sdk/v1/data/compound_medication.py,sha256=a_m_hlRyZyF_c6FIIEUuX34hSslikd7RueLmjbRC12s,2239
257
+ canvas_sdk/v1/data/compound_medication.py,sha256=DXzAnpez0Yk_z9BbKmxQXe2dXHP9oQdfCvETyFGpwpo,2215
256
258
  canvas_sdk/v1/data/condition.py,sha256=u9Vgo8h5TYhof-GYPpezpP3YdN_lfCAw4jCN4QSqpfE,2376
257
- canvas_sdk/v1/data/coverage.py,sha256=i03BeVxNCsxXWnBL8klySFRXXN-T1hF01HyCvcCnlYk,11339
259
+ canvas_sdk/v1/data/coverage.py,sha256=6exnZH7UUMPE3bOG1l_-qgZjd82FWz9DRRTv2F16btU,11870
258
260
  canvas_sdk/v1/data/detected_issue.py,sha256=k-tOX6fpzfRf9WmG7neHPEeWrpZUdTiTEqYzKaa2haI,1865
259
261
  canvas_sdk/v1/data/device.py,sha256=5YnCApQR3ZprGO9zCsSP-4spwo4HVRDSTY3QCNwqYlo,1932
260
262
  canvas_sdk/v1/data/discount.py,sha256=Bqa0PcytSdqZ0MJor9EShtRUmNWGcBKtivGCmjk9Pbw,618
@@ -268,6 +270,7 @@ canvas_sdk/v1/data/invoice.py,sha256=F5j_Hvu-YwqhHFkp6FDui8vx6GumCAgj14YgDvfyeYU
268
270
  canvas_sdk/v1/data/lab.py,sha256=8FPnApgcEfZ5f62387EgY6RZd8za2wps5LMzCB0_x6U,12969
269
271
  canvas_sdk/v1/data/line_item_transaction.py,sha256=OJA_3DLA1RF0v8jCgQ8SHaoqij_Z97Iatfi5i6CVEis,2406
270
272
  canvas_sdk/v1/data/medication.py,sha256=QMAUqqldJeQK9IuaoO5mWFp3IEjbqcqrxkzIgFZ4O0U,2333
273
+ canvas_sdk/v1/data/medication_history.py,sha256=VLoEdSUNMfviui3-uwo-ZK4Rf0gidBCc7I_oHjGJuE8,5886
271
274
  canvas_sdk/v1/data/medication_statement.py,sha256=lNzwQryRIAxt0m4sC7AHUpx7WXxyrsFPC-s4Si-to1E,1987
272
275
  canvas_sdk/v1/data/message.py,sha256=EKc2kkWGuzrgBH3sDUa9jiNpRP7J1ZdWE6BnPhY2gvs,2268
273
276
  canvas_sdk/v1/data/note.py,sha256=Eq0JgDRzwK84BAT6Y51f47Gke2rseC3vvcjoqhzAsVE,9335
@@ -317,7 +320,7 @@ canvas_sdk/views/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,
317
320
  logger/__init__.py,sha256=uMIOf1CDdKSmBKxKwO4CmDpvnJITci76IMXENOwSHEo,85
318
321
  logger/logger.py,sha256=l5W5jn3vGQt6TM7OxOpoMy-vC7RNNA2pGnQJJgHeXWA,2068
319
322
  plugin_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
- plugin_runner/allowed-module-imports.json,sha256=txhTDIMO3kCz3HXO1tPboWMCfLD4VX8pY1QDqVOgwKk,38364
323
+ plugin_runner/allowed-module-imports.json,sha256=AJzC9Be2cDdDNROEmvs6WpPA3XSPbPAd_pb22OOeKQE,38955
321
324
  plugin_runner/authentication.py,sha256=UyyhXajokVFH866dpDhoTlXS9Cg7y0sQltn0_LcwXrY,1131
322
325
  plugin_runner/aws_headers.py,sha256=wZ8584E1fTW0CdGxOCnLSF8alH27z-URcUyoc6y6ohg,2782
323
326
  plugin_runner/exceptions.py,sha256=ltqn56SMTg-T5miSh5hux4ojwx0hZGSWaB7BxyAmcAo,545
@@ -325,8 +328,8 @@ plugin_runner/generate_allowed_imports.py,sha256=LQuVxL_j5n0Sj-KgR4Q8D9mj0xfuDqz
325
328
  plugin_runner/installation.py,sha256=2KTDWWsQ97WIN2k9tC4d50zN77WWK_1D5obXlhLfWw8,8536
326
329
  plugin_runner/load_all_plugins.py,sha256=4T2gW2YljhIx4xfwf1c0F_8oIbE1ubsLj0ShkHRtlVY,5847
327
330
  plugin_runner/plugin_runner.py,sha256=RpcZoXXzGEflJGuHJaAOCP24mWb4fG1bLw3ryA6n88k,26623
328
- plugin_runner/sandbox.py,sha256=MYEYRTtkznOC0VQNq2Svj6f_2wBgzIOlzEj3Y85ekBY,30253
329
- protobufs/canvas_generated/messages/effects.proto,sha256=knnBn15oyJhNQ_diywrJ6NgwPsd1Q6TWuff2nQ8U7Og,10632
331
+ plugin_runner/sandbox.py,sha256=DhYbDl6BOkSBciYuFTwIXhSrcnaWm2WxUXYEkrRaAhQ,30332
332
+ protobufs/canvas_generated/messages/effects.proto,sha256=Doez_wso8Hxl8c1gfRvokXQB_SrBeC9FMmyB383Ok9A,10684
330
333
  protobufs/canvas_generated/messages/events.proto,sha256=KwjnaA8ekFwQTg54vWhbQuGF0_mLK9kFdtjuJ-K1cfo,52782
331
334
  protobufs/canvas_generated/messages/plugins.proto,sha256=xJyEeTwM6wWja3vGECLsIzfabwf1VahDgacoPL3TuwI,323
332
335
  protobufs/canvas_generated/services/plugin_runner.proto,sha256=PZ0Ts11b9tdA5Gkg2M05JVEKAm0R4LFEwrGRS-TQ16E,466
@@ -346,7 +349,7 @@ canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookie
346
349
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/README.md,sha256=3QKoJQq3YmdplGnDOBMsLCJ3Ya1_aKjoz-QiWc4QfjA,291
347
350
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
351
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/my_protocol.py,sha256=fKLLcOIwvSWenW8-7tr8VqnF4Iox_5wU9V-Qw9UySsA,2381
349
- canvas-0.65.0.dist-info/METADATA,sha256=WFkI-jXhIwOGyPxe-Td-T7_XhCAFAXffSNHrRszGfyQ,4758
350
- canvas-0.65.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
351
- canvas-0.65.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
352
- canvas-0.65.0.dist-info/RECORD,,
352
+ canvas-0.67.0.dist-info/METADATA,sha256=JwohpWReoFfhnlZJxQ3NvvtlggIVTnltPv46hamCJoM,4758
353
+ canvas-0.67.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
354
+ canvas-0.67.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
355
+ canvas-0.67.0.dist-info/RECORD,,
@@ -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*\xd5I\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\x35\n0APPOINTMENT__FORM__PROVIDERS__PRE_SEARCH_RESULTS\x10\x98/\x12\x35\n0APPOINTMENT__FORM__LOCATIONS__PRE_SEARCH_RESULTS\x10\x99/\x12\x37\n2APPOINTMENT__FORM__VISIT_TYPES__PRE_SEARCH_RESULTS\x10\x9a/\x12\x35\n0APPOINTMENT__FORM__DURATIONS__PRE_SEARCH_RESULTS\x10\x9b/\x12<\n7APPOINTMENT__FORM__REASON_FOR_VISIT__PRE_SEARCH_RESULTS\x10\x9c/\x12\x36\n1APPOINTMENT__FORM__PROVIDERS__POST_SEARCH_RESULTS\x10\x9e/\x12\x36\n1APPOINTMENT__FORM__LOCATIONS__POST_SEARCH_RESULTS\x10\x9f/\x12\x38\n3APPOINTMENT__FORM__VISIT_TYPES__POST_SEARCH_RESULTS\x10\xa0/\x12\x36\n1APPOINTMENT__FORM__DURATIONS__POST_SEARCH_RESULTS\x10\xa1/\x12=\n8APPOINTMENT__FORM__REASON_FOR_VISIT__POST_SEARCH_RESULTS\x10\xa2/\x12\x30\n+APPOINTMENT__FORM__CREATE_ADDITIONAL_FIELDS\x10\xa3/\x12 \n\x1bUPSERT_APPOINTMENT_METADATA\x10\xa4/\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\x12\x1c\n\x17GENERATE_FULL_CHART_PDF\x10\xd5/\x12\x15\n\x10\x43\x41LENDAR__CREATE\x10\xc1>\x12\x1c\n\x17\x43\x41LENDAR__EVENT__CREATE\x10\xc2>b\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*\x85J\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.\n)PATIENT_PORTAL__SEND_CONTACT_VERIFICATION\x10\xdd\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\x35\n0APPOINTMENT__FORM__PROVIDERS__PRE_SEARCH_RESULTS\x10\x98/\x12\x35\n0APPOINTMENT__FORM__LOCATIONS__PRE_SEARCH_RESULTS\x10\x99/\x12\x37\n2APPOINTMENT__FORM__VISIT_TYPES__PRE_SEARCH_RESULTS\x10\x9a/\x12\x35\n0APPOINTMENT__FORM__DURATIONS__PRE_SEARCH_RESULTS\x10\x9b/\x12<\n7APPOINTMENT__FORM__REASON_FOR_VISIT__PRE_SEARCH_RESULTS\x10\x9c/\x12\x36\n1APPOINTMENT__FORM__PROVIDERS__POST_SEARCH_RESULTS\x10\x9e/\x12\x36\n1APPOINTMENT__FORM__LOCATIONS__POST_SEARCH_RESULTS\x10\x9f/\x12\x38\n3APPOINTMENT__FORM__VISIT_TYPES__POST_SEARCH_RESULTS\x10\xa0/\x12\x36\n1APPOINTMENT__FORM__DURATIONS__POST_SEARCH_RESULTS\x10\xa1/\x12=\n8APPOINTMENT__FORM__REASON_FOR_VISIT__POST_SEARCH_RESULTS\x10\xa2/\x12\x30\n+APPOINTMENT__FORM__CREATE_ADDITIONAL_FIELDS\x10\xa3/\x12 \n\x1bUPSERT_APPOINTMENT_METADATA\x10\xa4/\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\x12\x1c\n\x17GENERATE_FULL_CHART_PDF\x10\xd5/\x12\x15\n\x10\x43\x41LENDAR__CREATE\x10\xc1>\x12\x1c\n\x17\x43\x41LENDAR__EVENT__CREATE\x10\xc2>b\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=9604
25
+ _globals['_EFFECTTYPE']._serialized_end=9652
26
26
  _globals['_EFFECT']._serialized_start=51
27
27
  _globals['_EFFECT']._serialized_end=172
28
28
  # @@protoc_insertion_point(module_scope)
@@ -208,6 +208,7 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
208
208
  PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE: _ClassVar[EffectType]
209
209
  PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK: _ClassVar[EffectType]
210
210
  PATIENT_PORTAL__SEND_INVITE: _ClassVar[EffectType]
211
+ PATIENT_PORTAL__SEND_CONTACT_VERIFICATION: _ClassVar[EffectType]
211
212
  PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS: _ClassVar[EffectType]
212
213
  PATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS: _ClassVar[EffectType]
213
214
  PATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__POST_SEARCH_RESULTS: _ClassVar[EffectType]
@@ -472,6 +473,7 @@ PATIENT_PORTAL__APPOINTMENT_IS_CANCELABLE: EffectType
472
473
  PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE: EffectType
473
474
  PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK: EffectType
474
475
  PATIENT_PORTAL__SEND_INVITE: EffectType
476
+ PATIENT_PORTAL__SEND_CONTACT_VERIFICATION: EffectType
475
477
  PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS: EffectType
476
478
  PATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS: EffectType
477
479
  PATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__POST_SEARCH_RESULTS: EffectType
@@ -13,5 +13,9 @@ class AdjustPrescriptionCommand(RefillCommand):
13
13
  default=None, json_schema_extra={"commands_api_name": "change_medication_to"}
14
14
  )
15
15
 
16
+ def _has_fdb_code(self) -> bool:
17
+ """Check if new_fdb_code is provided and non-empty."""
18
+ return self.new_fdb_code is not None and self.new_fdb_code.strip() != ""
19
+
16
20
 
17
21
  __exports__ = ("AdjustPrescriptionCommand",)
@@ -74,12 +74,16 @@ class PrescribeCommand(_SendableCommandMixin, _BaseCommand):
74
74
  default=None, json_schema_extra={"commands_api_name": "compound_medication_data"}
75
75
  )
76
76
 
77
+ def _has_fdb_code(self) -> bool:
78
+ """Check if fdb_code is provided and non-empty."""
79
+ return self.fdb_code is not None and self.fdb_code.strip() != ""
80
+
77
81
  def _get_error_details(self, method: str) -> list[InitErrorDetails]:
78
82
  """Add compound medication validation to the base validation."""
79
83
  errors = super()._get_error_details(method)
80
84
 
81
85
  # Validate that exactly one medication type is provided
82
- has_fdb_code = self.fdb_code is not None and self.fdb_code.strip() != ""
86
+ has_fdb_code = self._has_fdb_code()
83
87
  has_compound_medication_id = (
84
88
  self.compound_medication_id is not None and self.compound_medication_id.strip() != ""
85
89
  )
@@ -156,10 +160,8 @@ class PrescribeCommand(_SendableCommandMixin, _BaseCommand):
156
160
  str(Decimal(self.quantity_to_dispense)) if self.quantity_to_dispense else None
157
161
  )
158
162
 
159
- values["compound_medication_values"] = {}
160
-
161
163
  if self.is_dirty("compound_medication_id") and self.compound_medication_id:
162
- values["compound_medication_values"]["id"] = values.pop("compound_medication_id")
164
+ values["compound_medication_values"] = {"id": values.pop("compound_medication_id")}
163
165
 
164
166
  # Handle compound medication data
165
167
  elif (
@@ -170,9 +172,6 @@ class PrescribeCommand(_SendableCommandMixin, _BaseCommand):
170
172
  if isinstance(compound_data, CompoundMedicationData):
171
173
  values["compound_medication_values"] = compound_data.to_dict()
172
174
 
173
- if values.get("fdb_code") is not None and values.get("compound_medication_values") == {}:
174
- del values["compound_medication_values"]
175
-
176
175
  return values
177
176
 
178
177
  def originate(self, line_number: int = -1) -> Effect:
@@ -1,9 +1,23 @@
1
1
  import json
2
+ from dataclasses import dataclass
3
+ from typing import Any
2
4
 
3
5
  from canvas_generated.messages.effects_pb2 import Effect
4
6
  from canvas_sdk.base import TrackableFieldsModel
5
7
 
6
8
 
9
+ @dataclass
10
+ class Metadata:
11
+ """A class representing a metadata."""
12
+
13
+ key: str
14
+ value: str
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ """Convert the metadata to a dictionary."""
18
+ return {"key": self.key, "value": self.value}
19
+
20
+
7
21
  class BaseMetadata(TrackableFieldsModel):
8
22
  """Base class for metadata effects."""
9
23
 
@@ -23,4 +37,4 @@ class BaseMetadata(TrackableFieldsModel):
23
37
  )
24
38
 
25
39
 
26
- __exports__ = ()
40
+ __exports__ = ("Metadata",)
@@ -3,6 +3,7 @@ from canvas_sdk.effects.patient.base import (
3
3
  PatientAddress,
4
4
  PatientContactPoint,
5
5
  PatientExternalIdentifier,
6
+ PatientMetadata,
6
7
  PatientPreferredPharmacy,
7
8
  )
8
9
  from canvas_sdk.effects.patient.create_patient_external_identifier import (
@@ -18,6 +19,7 @@ __all__ = __exports__ = (
18
19
  "PatientContactPoint",
19
20
  "PatientExternalIdentifier",
20
21
  "PatientPreferredPharmacy",
22
+ "PatientMetadata",
21
23
  "CreatePatientExternalIdentifier",
22
24
  "CreatePatientPreferredPharmacies",
23
25
  )
@@ -7,6 +7,7 @@ from pydantic_core import InitErrorDetails
7
7
 
8
8
  from canvas_generated.messages.effects_pb2 import Effect
9
9
  from canvas_sdk.base import TrackableFieldsModel
10
+ from canvas_sdk.effects.metadata import Metadata as PatientMetadata
10
11
  from canvas_sdk.v1.data import Patient as PatientModel
11
12
  from canvas_sdk.v1.data import PracticeLocation, Staff
12
13
  from canvas_sdk.v1.data.common import (
@@ -127,6 +128,7 @@ class Patient(TrackableFieldsModel):
127
128
  external_identifiers: list[PatientExternalIdentifier] | None = None
128
129
  preferred_pharmacies: list[PatientPreferredPharmacy] | None = None
129
130
  addresses: list[PatientAddress] | None = None
131
+ metadata: list[PatientMetadata] | None = None
130
132
 
131
133
  @property
132
134
  def values(self) -> dict[str, Any]:
@@ -159,6 +161,11 @@ class Patient(TrackableFieldsModel):
159
161
  else None
160
162
  )
161
163
 
164
+ if self.is_dirty("metadata"):
165
+ values["metadata"] = (
166
+ [md.to_dict() for md in self.metadata] if self.metadata is not None else None
167
+ )
168
+
162
169
  return values
163
170
 
164
171
  def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
@@ -271,5 +278,6 @@ __exports__ = (
271
278
  "PatientAddress",
272
279
  "PatientContactPoint",
273
280
  "PatientExternalIdentifier",
281
+ "PatientMetadata",
274
282
  "PatientPreferredPharmacy",
275
283
  )
@@ -0,0 +1,42 @@
1
+ from typing import Any
2
+ from uuid import UUID
3
+
4
+ from pydantic_core import InitErrorDetails
5
+
6
+ from canvas_sdk.effects.base import EffectType, _BaseEffect
7
+ from canvas_sdk.v1.data import PatientContactPoint
8
+
9
+
10
+ class SendContactVerificationEffect(_BaseEffect):
11
+ """
12
+ An Effect that will send a verification for a Patient Contact Point.
13
+ """
14
+
15
+ class Meta:
16
+ effect_type = EffectType.PATIENT_PORTAL__SEND_CONTACT_VERIFICATION
17
+
18
+ contact_point_id: str | UUID
19
+
20
+ @property
21
+ def values(self) -> dict[str, Any]:
22
+ """The contact point id."""
23
+ return {"contact_point_id": self.contact_point_id}
24
+
25
+ def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
26
+ errors = super()._get_error_details(method)
27
+
28
+ contact_point_exists = PatientContactPoint.objects.filter(id=self.contact_point_id).exists()
29
+
30
+ if not contact_point_exists:
31
+ errors.append(
32
+ self._create_error_detail(
33
+ "value",
34
+ "Patient Contact Point does not exist",
35
+ self.contact_point_id,
36
+ )
37
+ )
38
+
39
+ return errors
40
+
41
+
42
+ __exports__ = ("SendContactVerificationEffect",)
@@ -1,5 +1,10 @@
1
1
  from .claim_diagnosis_code import ClaimDiagnosisCodeFactory
2
2
  from .facility import FacilityFactory
3
+ from .medication_history import (
4
+ MedicationHistoryMedicationCodingFactory,
5
+ MedicationHistoryMedicationFactory,
6
+ MedicationHistoryResponseFactory,
7
+ )
3
8
  from .patient import PatientAddressFactory, PatientFacilityAddressFactory, PatientFactory
4
9
  from .protocol_current import ProtocolCurrentFactory
5
10
  from .user import CanvasUserFactory
@@ -8,6 +13,9 @@ __all__ = (
8
13
  "CanvasUserFactory",
9
14
  "ClaimDiagnosisCodeFactory",
10
15
  "FacilityFactory",
16
+ "MedicationHistoryMedicationFactory",
17
+ "MedicationHistoryMedicationCodingFactory",
18
+ "MedicationHistoryResponseFactory",
11
19
  "PatientAddressFactory",
12
20
  "PatientFacilityAddressFactory",
13
21
  "PatientFactory",
@@ -0,0 +1,75 @@
1
+ import datetime
2
+
3
+ import factory
4
+ from django.utils import timezone
5
+ from factory.fuzzy import FuzzyDate, FuzzyDateTime
6
+
7
+ from canvas_sdk.test_utils.factories.patient import PatientFactory
8
+ from canvas_sdk.v1.data.medication_history import (
9
+ MedicationHistoryMedication,
10
+ MedicationHistoryMedicationCoding,
11
+ MedicationHistoryResponse,
12
+ MedicationHistoryResponseStatus,
13
+ )
14
+
15
+
16
+ class MedicationHistoryMedicationFactory(
17
+ factory.django.DjangoModelFactory[MedicationHistoryMedication]
18
+ ):
19
+ """Factory for creating a MedicationHistoryMedication."""
20
+
21
+ class Meta:
22
+ model = MedicationHistoryMedication
23
+
24
+ patient = factory.SubFactory(PatientFactory)
25
+ last_fill_date = FuzzyDateTime(
26
+ start_dt=timezone.now() - datetime.timedelta(days=365), end_dt=timezone.now()
27
+ )
28
+
29
+ drug_description = factory.Faker("word")
30
+ strength_value = "10"
31
+ strength_form = "tablet"
32
+ strength_unit_of_measure = "mg"
33
+ quantity = 30.0
34
+ quantity_unit_of_measure = "tablets"
35
+ days_supply = 30
36
+ sig = factory.Faker("sentence", nb_words=4)
37
+
38
+
39
+ class MedicationHistoryMedicationCodingFactory(
40
+ factory.django.DjangoModelFactory[MedicationHistoryMedicationCoding]
41
+ ):
42
+ """Factory for creating a MedicationHistoryMedicationCoding."""
43
+
44
+ class Meta:
45
+ model = MedicationHistoryMedicationCoding
46
+
47
+ medication = factory.SubFactory(MedicationHistoryMedicationFactory)
48
+
49
+ system = "http://www.nlm.nih.gov/research/umls/rxnorm"
50
+ version = "1.0"
51
+ code = factory.Faker("numerify", text="######")
52
+ display = factory.Faker("word")
53
+ user_selected = False
54
+
55
+
56
+ class MedicationHistoryResponseFactory(
57
+ factory.django.DjangoModelFactory[MedicationHistoryResponse]
58
+ ):
59
+ """Factory for creating a MedicationHistoryResponse."""
60
+
61
+ class Meta:
62
+ model = MedicationHistoryResponse
63
+
64
+ patient = factory.SubFactory(PatientFactory)
65
+ status = MedicationHistoryResponseStatus.STATUS_APPROVED
66
+ start_date = FuzzyDate(
67
+ start_date=datetime.date.today() - datetime.timedelta(days=365),
68
+ end_date=datetime.date.today(),
69
+ )
70
+ end_date = FuzzyDate(
71
+ start_date=datetime.date.today(),
72
+ end_date=datetime.date.today() + datetime.timedelta(days=365),
73
+ )
74
+ message_id = factory.Faker("uuid4")
75
+ related_to_message_id = factory.Faker("uuid4")
@@ -12,7 +12,7 @@ from .claim_line_item import ClaimLineItem
12
12
  from .command import Command
13
13
  from .compound_medication import CompoundMedication
14
14
  from .condition import Condition, ConditionCoding
15
- from .coverage import Coverage, Transactor, TransactorAddress, TransactorPhone
15
+ from .coverage import Coverage, EligibilitySummary, Transactor, TransactorAddress, TransactorPhone
16
16
  from .detected_issue import DetectedIssue, DetectedIssueEvidence
17
17
  from .device import Device
18
18
  from .discount import Discount
@@ -45,6 +45,12 @@ from .line_item_transaction import (
45
45
  NewLineItemPayment,
46
46
  )
47
47
  from .medication import Medication, MedicationCoding
48
+ from .medication_history import (
49
+ MedicationHistoryMedication,
50
+ MedicationHistoryMedicationCoding,
51
+ MedicationHistoryResponse,
52
+ MedicationHistoryResponseStatus,
53
+ )
48
54
  from .medication_statement import MedicationStatement
49
55
  from .message import Message, MessageAttachment, MessageTransmission
50
56
  from .note import CurrentNoteStateEvent, Note, NoteStateChangeEvent, NoteType
@@ -136,6 +142,7 @@ __all__ = __exports__ = (
136
142
  "DetectedIssueEvidence",
137
143
  "Device",
138
144
  "Discount",
145
+ "EligibilitySummary",
139
146
  "Encounter",
140
147
  "Facility",
141
148
  "Goal",
@@ -164,6 +171,10 @@ __all__ = __exports__ = (
164
171
  "LineItemTransfer",
165
172
  "Medication",
166
173
  "MedicationCoding",
174
+ "MedicationHistoryMedication",
175
+ "MedicationHistoryMedicationCoding",
176
+ "MedicationHistoryResponseStatus",
177
+ "MedicationHistoryResponse",
167
178
  "MedicationStatement",
168
179
  "Message",
169
180
  "MessageAttachment",
@@ -6,7 +6,6 @@ class CompoundMedication(models.Model):
6
6
  """CompoundMedication."""
7
7
 
8
8
  class Meta:
9
- managed = False
10
9
  db_table = "canvas_sdk_data_api_compoundmedication_001"
11
10
 
12
11
  class PotencyUnits(TextChoices):
@@ -288,11 +288,27 @@ class TransactorPhone(IdentifiableModel):
288
288
  return f"id={self.id}"
289
289
 
290
290
 
291
+ class EligibilitySummary(IdentifiableModel):
292
+ """EligibilitySummary."""
293
+
294
+ class Meta:
295
+ db_table = "canvas_sdk_data_quality_and_revenue_eligibilitysummary_001"
296
+
297
+ created = models.DateTimeField(auto_now_add=True)
298
+ modified = models.DateTimeField(auto_now=True)
299
+ coverage = models.OneToOneField(
300
+ "v1.Coverage", on_delete=models.CASCADE, related_name="eligibility_summary"
301
+ )
302
+ copay_cents = models.IntegerField(null=True)
303
+ coinsurance = models.IntegerField(null=True)
304
+
305
+
291
306
  __exports__ = (
292
307
  "CoverageStack",
293
308
  "CoverageState",
294
309
  "CoverageType",
295
310
  "CoverageRelationshipCode",
311
+ "EligibilitySummary",
296
312
  "TransactorCoverageType",
297
313
  "TransactorType",
298
314
  "Coverage",
@@ -0,0 +1,152 @@
1
+ from django.contrib.postgres.fields import ArrayField
2
+ from django.db import models
3
+ from django.db.models import TextChoices
4
+
5
+ from canvas_sdk.v1.data.base import (
6
+ IdentifiableModel,
7
+ Model,
8
+ )
9
+
10
+
11
+ class MedicationHistoryMedication(IdentifiableModel):
12
+ """MedicationHistoryMedication."""
13
+
14
+ class Meta:
15
+ db_table = "canvas_sdk_data_api_medicationhistorymedication_001"
16
+
17
+ created = models.DateTimeField(auto_now_add=True)
18
+ modified = models.DateTimeField(auto_now=True)
19
+
20
+ patient = models.ForeignKey(
21
+ "v1.Patient",
22
+ on_delete=models.DO_NOTHING,
23
+ related_name="medication_history_medications",
24
+ null=True,
25
+ )
26
+
27
+ drug_description = models.TextField(blank=True, default="")
28
+
29
+ strength_value = models.CharField(max_length=255, blank=True, default="")
30
+ strength_form = models.CharField(max_length=255, blank=True, default="")
31
+ strength_unit_of_measure = models.CharField(max_length=255, blank=True, default="")
32
+
33
+ quantity = models.FloatField(null=True)
34
+ quantity_unit_of_measure = models.CharField(max_length=255, blank=True, default="")
35
+ quantity_code_list_qualifier = models.CharField(max_length=255, blank=True, default="")
36
+
37
+ days_supply = models.IntegerField(null=True)
38
+
39
+ last_fill_date = models.DateTimeField(db_index=True)
40
+ written_date = models.DateTimeField(blank=True, null=True)
41
+
42
+ other_date = models.DateTimeField(blank=True, null=True)
43
+ other_date_qualifier = models.CharField(max_length=255, blank=True, default="")
44
+
45
+ substitutions = models.BooleanField(null=True)
46
+
47
+ refills_remaining = models.IntegerField(null=True)
48
+
49
+ diagnosis_code = models.CharField(max_length=255, blank=True, default="")
50
+ diagnosis_qualifier = models.CharField(max_length=255, blank=True, default="")
51
+ diagnosis_description = models.CharField(max_length=255, blank=True, default="")
52
+
53
+ secondary_diagnosis_code = models.CharField(max_length=255, blank=True, default="")
54
+ secondary_diagnosis_qualifier = models.CharField(max_length=255, blank=True, default="")
55
+ secondary_diagnosis_description = models.CharField(max_length=255, blank=True, default="")
56
+
57
+ dea_schedule = models.CharField(max_length=255, blank=True, default="")
58
+
59
+ potency_unit_code = models.CharField(max_length=20, blank=True, default="")
60
+ etc_path_id = ArrayField(base_field=models.IntegerField(), null=True)
61
+ etc_path_name = ArrayField(base_field=models.CharField(max_length=255), null=True)
62
+
63
+ fill_number = models.IntegerField(blank=True, null=True)
64
+
65
+ prescriber_order_number = models.CharField(max_length=255, blank=True, default="")
66
+
67
+ source_description = models.CharField(max_length=255, blank=True, default="")
68
+ source_qualifier = models.CharField(max_length=255, blank=True, default="")
69
+ source_payer_id = models.CharField(max_length=255, blank=True, default="")
70
+ source_type = models.CharField(max_length=255, blank=True, default="")
71
+
72
+ note = models.TextField(blank=True, default="")
73
+ sig = models.TextField(blank=True, default="")
74
+
75
+ prior_authorization_status = models.CharField(max_length=255, blank=True, default="")
76
+ prior_authorization = models.CharField(max_length=255, blank=True, default="")
77
+
78
+ pharmacy_name = models.CharField(max_length=255, blank=True, default="")
79
+ pharmacy_ncpdp_id = models.CharField(max_length=255, blank=True, default="")
80
+ pharmacy_npi = models.CharField(max_length=255, blank=True, default="")
81
+
82
+ prescriber_business_name = models.CharField(max_length=255, blank=True, default="")
83
+ prescriber_first_name = models.CharField(max_length=255, blank=True, default="")
84
+ prescriber_last_name = models.CharField(max_length=255, blank=True, default="")
85
+ prescriber_npi = models.CharField(max_length=255, blank=True, default="")
86
+ prescriber_dea_number = models.CharField(max_length=255, blank=True, default="")
87
+
88
+
89
+ class MedicationHistoryMedicationCoding(Model):
90
+ """MedicationHistoryMedicationCoding."""
91
+
92
+ class Meta:
93
+ db_table = "canvas_sdk_data_api_medicationhistorymedicationcoding_001"
94
+
95
+ system = models.CharField(max_length=255)
96
+ version = models.CharField(max_length=255)
97
+ code = models.CharField(max_length=255)
98
+ display = models.CharField(max_length=1000)
99
+ user_selected = models.BooleanField(default=False)
100
+ medication = models.ForeignKey(
101
+ MedicationHistoryMedication, on_delete=models.CASCADE, related_name="codings"
102
+ )
103
+
104
+
105
+ class MedicationHistoryResponseStatus(TextChoices):
106
+ """MedicationHistoryResponseStatus."""
107
+
108
+ STATUS_APPROVED = "approved"
109
+ STATUS_DENIED = "denied"
110
+
111
+
112
+ class MedicationHistoryResponse(IdentifiableModel):
113
+ """MedicationHistoryResponse."""
114
+
115
+ class Meta:
116
+ db_table = "canvas_sdk_data_api_medicationhistoryresponse_001"
117
+
118
+ created = models.DateTimeField(auto_now_add=True)
119
+ modified = models.DateTimeField(auto_now=True)
120
+
121
+ patient = models.ForeignKey(
122
+ "v1.Patient",
123
+ on_delete=models.CASCADE,
124
+ related_name="medication_history_responses",
125
+ )
126
+ staff = models.ForeignKey(
127
+ "v1.Staff",
128
+ on_delete=models.CASCADE,
129
+ related_name="medication_history_responses",
130
+ null=True,
131
+ )
132
+
133
+ message_id = models.CharField(max_length=35, blank=True, default="", db_index=True)
134
+ related_to_message_id = models.CharField(max_length=35, blank=True, default="", db_index=True)
135
+
136
+ status = models.CharField(choices=MedicationHistoryResponseStatus.choices, max_length=20)
137
+
138
+ reason = models.TextField(blank=True, default="")
139
+ reason_code = models.CharField(max_length=2, blank=True, default="")
140
+
141
+ note = models.TextField(blank=True, default="")
142
+
143
+ start_date = models.DateField()
144
+ end_date = models.DateField()
145
+
146
+
147
+ __exports__ = (
148
+ "MedicationHistoryMedication",
149
+ "MedicationHistoryMedicationCoding",
150
+ "MedicationHistoryResponseStatus",
151
+ "MedicationHistoryResponse",
152
+ )
@@ -249,6 +249,9 @@
249
249
  "canvas_sdk.effects.launch_modal": [
250
250
  "LaunchModalEffect"
251
251
  ],
252
+ "canvas_sdk.effects.metadata": [
253
+ "Metadata"
254
+ ],
252
255
  "canvas_sdk.effects.note": [
253
256
  "Appointment",
254
257
  "AppointmentIdentifier",
@@ -280,6 +283,7 @@
280
283
  "PatientAddress",
281
284
  "PatientContactPoint",
282
285
  "PatientExternalIdentifier",
286
+ "PatientMetadata",
283
287
  "PatientPreferredPharmacy"
284
288
  ],
285
289
  "canvas_sdk.effects.patient.base": [
@@ -287,6 +291,7 @@
287
291
  "PatientAddress",
288
292
  "PatientContactPoint",
289
293
  "PatientExternalIdentifier",
294
+ "PatientMetadata",
290
295
  "PatientPreferredPharmacy"
291
296
  ],
292
297
  "canvas_sdk.effects.patient.create_patient_external_identifier": [
@@ -346,6 +351,9 @@
346
351
  "canvas_sdk.effects.questionnaire_result": [
347
352
  "CreateQuestionnaireResult"
348
353
  ],
354
+ "canvas_sdk.effects.send_contact_verification": [
355
+ "SendContactVerificationEffect"
356
+ ],
349
357
  "canvas_sdk.effects.send_invite": [
350
358
  "SendInviteEffect"
351
359
  ],
@@ -574,6 +582,7 @@
574
582
  "DetectedIssueEvidence",
575
583
  "Device",
576
584
  "Discount",
585
+ "EligibilitySummary",
577
586
  "Encounter",
578
587
  "Facility",
579
588
  "Goal",
@@ -602,6 +611,10 @@
602
611
  "LineItemTransfer",
603
612
  "Medication",
604
613
  "MedicationCoding",
614
+ "MedicationHistoryMedication",
615
+ "MedicationHistoryMedicationCoding",
616
+ "MedicationHistoryResponse",
617
+ "MedicationHistoryResponseStatus",
605
618
  "MedicationStatement",
606
619
  "Message",
607
620
  "MessageAttachment",
@@ -748,6 +761,7 @@
748
761
  "CoverageStack",
749
762
  "CoverageState",
750
763
  "CoverageType",
764
+ "EligibilitySummary",
751
765
  "Transactor",
752
766
  "TransactorAddress",
753
767
  "TransactorCoverageType",
@@ -822,6 +836,12 @@
822
836
  "MedicationCoding",
823
837
  "Status"
824
838
  ],
839
+ "canvas_sdk.v1.data.medication_history": [
840
+ "MedicationHistoryMedication",
841
+ "MedicationHistoryMedicationCoding",
842
+ "MedicationHistoryResponse",
843
+ "MedicationHistoryResponseStatus"
844
+ ],
825
845
  "canvas_sdk.v1.data.medication_statement": [
826
846
  "MedicationStatement"
827
847
  ],
plugin_runner/sandbox.py CHANGED
@@ -211,6 +211,10 @@ THIRD_PARTY_MODULES = {
211
211
  "Value",
212
212
  "When",
213
213
  },
214
+ "django.db.models.functions": {
215
+ "Coalesce",
216
+ "Trim",
217
+ },
214
218
  "django.db.models.query": {
215
219
  "QuerySet",
216
220
  },
@@ -254,6 +254,7 @@ enum EffectType {
254
254
  PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE = 2002;
255
255
  PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK = 2003;
256
256
  PATIENT_PORTAL__SEND_INVITE = 2004;
257
+ PATIENT_PORTAL__SEND_CONTACT_VERIFICATION = 2013;
257
258
 
258
259
  PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS = 2005;
259
260
  PATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS = 2006;