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.
- {canvas-0.65.0.dist-info → canvas-0.67.0.dist-info}/METADATA +1 -1
- {canvas-0.65.0.dist-info → canvas-0.67.0.dist-info}/RECORD +21 -18
- canvas_generated/messages/effects_pb2.py +2 -2
- canvas_generated/messages/effects_pb2.pyi +2 -0
- canvas_sdk/commands/commands/adjust_prescription.py +4 -0
- canvas_sdk/commands/commands/prescribe.py +6 -7
- canvas_sdk/effects/metadata.py +15 -1
- canvas_sdk/effects/patient/__init__.py +2 -0
- canvas_sdk/effects/patient/base.py +8 -0
- canvas_sdk/effects/send_contact_verification.py +42 -0
- canvas_sdk/test_utils/factories/__init__.py +8 -0
- canvas_sdk/test_utils/factories/medication_history.py +75 -0
- canvas_sdk/v1/data/__init__.py +12 -1
- canvas_sdk/v1/data/compound_medication.py +0 -1
- canvas_sdk/v1/data/coverage.py +16 -0
- canvas_sdk/v1/data/medication_history.py +152 -0
- plugin_runner/allowed-module-imports.json +20 -0
- plugin_runner/sandbox.py +4 -0
- protobufs/canvas_generated/messages/effects.proto +1 -0
- {canvas-0.65.0.dist-info → canvas-0.67.0.dist-info}/WHEEL +0 -0
- {canvas-0.65.0.dist-info → canvas-0.67.0.dist-info}/entry_points.txt +0 -0
|
@@ -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=
|
|
85
|
-
canvas_generated/messages/effects_pb2.pyi,sha256=
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
184
|
-
canvas_sdk/effects/patient/base.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
329
|
-
protobufs/canvas_generated/messages/effects.proto,sha256=
|
|
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.
|
|
350
|
-
canvas-0.
|
|
351
|
-
canvas-0.
|
|
352
|
-
canvas-0.
|
|
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=
|
|
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.
|
|
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"]
|
|
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:
|
canvas_sdk/effects/metadata.py
CHANGED
|
@@ -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")
|
canvas_sdk/v1/data/__init__.py
CHANGED
|
@@ -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",
|
canvas_sdk/v1/data/coverage.py
CHANGED
|
@@ -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
|
@@ -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;
|
|
File without changes
|
|
File without changes
|