canvas 0.73.0__py3-none-any.whl → 0.74.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.73.0
3
+ Version: 0.74.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
@@ -82,8 +82,8 @@ canvas_cli/utils/urls/urls.py,sha256=KwWTh5ERrEsZEvdBrZpZB71xtyWkDuglpXUbycWmBOo
82
82
  canvas_cli/utils/validators/__init__.py,sha256=rBvSR2O1hWkNAnUBdcr-zUkmqT796_A61b9pnvEhwrM,113
83
83
  canvas_cli/utils/validators/manifest_schema.py,sha256=XNw-sbFgxaXzffWnQd6zLg5V74odv7jGiEFENWKnluA,6057
84
84
  canvas_cli/utils/validators/validators.py,sha256=lrUBQ0sF7seTe_pNGsNgASdr2BGp6g-Qui58V4H9qfQ,1598
85
- canvas_generated/messages/effects_pb2.py,sha256=Z8PBTW-i2UBZiut5xy-SzT-fEzLUCi30AtD2NshIVxk,15560
86
- canvas_generated/messages/effects_pb2.pyi,sha256=J-pN9M0t8W86tBxaN8vCA-CN7Ls8GWycn-fPkuV_m5o,28095
85
+ canvas_generated/messages/effects_pb2.py,sha256=rAMRj21rR77bD52Q8RUVgDDkFnH_6x5o8IcLQPfQMek,15743
86
+ canvas_generated/messages/effects_pb2.pyi,sha256=l-WfA6YSWps7r_CIbgmO-zVmjTFFeNs6j8rzORO_IP0,28403
87
87
  canvas_generated/messages/effects_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
88
88
  canvas_generated/messages/events_pb2.py,sha256=BHmOlvKdsUkE3eMUK2Y0JgR6mZPjVlpx0PDelfd8Wh4,57457
89
89
  canvas_generated/messages/events_pb2.pyi,sha256=aTAgP5lKINjX7apy93dYyXZsGUOhQKPZodOJw_RfjG4,103597
@@ -145,6 +145,8 @@ canvas_sdk/commands/commands/questionnaire/question.py,sha256=hBo2-xM3cctpZiV6n-
145
145
  canvas_sdk/commands/commands/questionnaire/toggle_questions.py,sha256=plCfAjdQXFSFd8NgNkFnvviFTMICPi3kgWTACE0DF7M,2543
146
146
  canvas_sdk/effects/__init__.py,sha256=qXMhnGhl8QSDZoTuvVRx5kJw3KRcW8GZE5ybypdBfGk,165
147
147
  canvas_sdk/effects/base.py,sha256=NS6m_I_MD81sYBnEHZg2XHz9lnpg6gA-FpdmDEoa-OE,823
148
+ canvas_sdk/effects/claim_label.py,sha256=bQbYJ9J4PXMjihRDHTfyKDPtgN29Ip9Pg7sD4_u4QnU,2540
149
+ canvas_sdk/effects/claim_line_item.py,sha256=fAcuK6KtTal-sRJUQsL4p6Mnu6SataCtMg6Qev6AmXo,1330
148
150
  canvas_sdk/effects/form.py,sha256=NZsd-LxnhNzRwUoUaDNIPuVg9nysUjuWzK2dyx13Nu0,1808
149
151
  canvas_sdk/effects/generate_full_chart_pdf.py,sha256=yrtbKfLW7KHg-4VunzqEEKVVcFrBxGsrFSEjGIfN-1Q,1743
150
152
  canvas_sdk/effects/group.py,sha256=hjEk5OQteCCq20umH2bel8nUgT82oyfRXZMxs1K-yyo,399
@@ -184,7 +186,7 @@ canvas_sdk/effects/note/__init__.py,sha256=GVk7QjZzmc6z3ztw0zoMI68-tV6oYo6SGQ5S0
184
186
  canvas_sdk/effects/note/appointment.py,sha256=qhKFXaCXqnpfKZZNUd3BTzH69meft4S7V87SSv3z7aM,12808
185
187
  canvas_sdk/effects/note/base.py,sha256=gC2w9V9RhfhZeL0WYOTgZ97sqR6wIa0Tug8neE5q9mE,8691
186
188
  canvas_sdk/effects/note/message.py,sha256=vlDVJ4FcsgysbgMWBFycGnOLhYhzv_YZsE3XkExXhw4,4103
187
- canvas_sdk/effects/note/note.py,sha256=mQtcC71vviFzwGP_uQKk9_Pksh8oUY8nyMKikUdaWPE,5005
189
+ canvas_sdk/effects/note/note.py,sha256=h4ngbgDPXp_Fw7AuaQMZq1pcJsui5DEXUr1YTRnB9AA,6565
188
190
  canvas_sdk/effects/patient/__init__.py,sha256=E7eELEUiSLXJ_TdfqjpQYpedpddZ9VHY9OKN8qilGJk,680
189
191
  canvas_sdk/effects/patient/base.py,sha256=FGFX1nO9zx_pzlbEZ_ZGyrDwjweJinhGgMozRTorVSA,8665
190
192
  canvas_sdk/effects/patient/create_patient_external_identifier.py,sha256=d03jzJcz2n19_NVo_wAq88iKZRuuM60qsZhGGhL7pGE,1055
@@ -262,7 +264,7 @@ canvas_sdk/v1/data/care_team.py,sha256=D9YsPti2rICAFuIllVwkTfcPV7X85B9YBqrLQlkjV
262
264
  canvas_sdk/v1/data/charge_description_master.py,sha256=dyxa4Fiwts6wTyoDR-blbPZ_D95pojDLWPrNbmemx2Y,856
263
265
  canvas_sdk/v1/data/claim.py,sha256=F4lWjRBONathQ83yA7weesfpRjznESPC3eXtAEoing4,11195
264
266
  canvas_sdk/v1/data/claim_diagnosis_code.py,sha256=QeEALJ2vs-DGA-DCmwt0yKoWSLoOYXYDJ3CW-lXVfL4,643
265
- canvas_sdk/v1/data/claim_line_item.py,sha256=rTsMfdo7oHlT9B6THZ-Vuwwowf7CoyOu8MzLUFUREug,4988
267
+ canvas_sdk/v1/data/claim_line_item.py,sha256=srlZleJT18r3YR19zGTIraqNXiyJvF1MoiaTMGx1hzU,5026
266
268
  canvas_sdk/v1/data/coding.py,sha256=BARWXaWi_xj9RMGHkIFdmUATk9_oCrqJQ8L4w_fXxoM,510
267
269
  canvas_sdk/v1/data/command.py,sha256=LVsLg5wUVkEh3IC7NC4rhb5YHMDNHQuKzU8531yG7H4,1875
268
270
  canvas_sdk/v1/data/common.py,sha256=u5W3_7kXAGPe7guEBwRouKp8FMRCx9iZL6ei8QMmtwU,4880
@@ -332,7 +334,7 @@ canvas_sdk/views/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,
332
334
  logger/__init__.py,sha256=uMIOf1CDdKSmBKxKwO4CmDpvnJITci76IMXENOwSHEo,85
333
335
  logger/logger.py,sha256=HYhIBXDIdZqFC2j49YVODd9Bkn4oY0_F051o-kOIyIg,2117
334
336
  plugin_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
- plugin_runner/allowed-module-imports.json,sha256=PtOdvAQfpnXNWUBI7roxY-MwCMlT0bGO6qWhjVBO4IE,39252
337
+ plugin_runner/allowed-module-imports.json,sha256=C4_lrWMgWRrlX1UEdkJT_lU0vMFvaQz-L1l9sD2dLgs,39425
336
338
  plugin_runner/authentication.py,sha256=UyyhXajokVFH866dpDhoTlXS9Cg7y0sQltn0_LcwXrY,1131
337
339
  plugin_runner/aws_headers.py,sha256=wZ8584E1fTW0CdGxOCnLSF8alH27z-URcUyoc6y6ohg,2782
338
340
  plugin_runner/exceptions.py,sha256=ltqn56SMTg-T5miSh5hux4ojwx0hZGSWaB7BxyAmcAo,545
@@ -341,7 +343,7 @@ plugin_runner/installation.py,sha256=2KTDWWsQ97WIN2k9tC4d50zN77WWK_1D5obXlhLfWw8
341
343
  plugin_runner/load_all_plugins.py,sha256=4T2gW2YljhIx4xfwf1c0F_8oIbE1ubsLj0ShkHRtlVY,5847
342
344
  plugin_runner/plugin_runner.py,sha256=DrFJFQXudC_SpPPA-WiM8z3NC1_g5gCGscH25GkA1Vc,26881
343
345
  plugin_runner/sandbox.py,sha256=DhYbDl6BOkSBciYuFTwIXhSrcnaWm2WxUXYEkrRaAhQ,30332
344
- protobufs/canvas_generated/messages/effects.proto,sha256=pXr4vRGR2-7ROPdPG-IGBQBLWrk-EN8pZeCbfT_v-_c,10976
346
+ protobufs/canvas_generated/messages/effects.proto,sha256=CtnIGhrHfxmwGMg6NaoDTXp8senzGCo7Z8QC_iCLstk,11094
345
347
  protobufs/canvas_generated/messages/events.proto,sha256=kcHSc_uKb7wffP8HyRlPxgWx1cAkUJ2GfVBuaHGdRU4,53359
346
348
  protobufs/canvas_generated/messages/plugins.proto,sha256=xJyEeTwM6wWja3vGECLsIzfabwf1VahDgacoPL3TuwI,323
347
349
  protobufs/canvas_generated/services/plugin_runner.proto,sha256=PZ0Ts11b9tdA5Gkg2M05JVEKAm0R4LFEwrGRS-TQ16E,466
@@ -361,7 +363,7 @@ canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookie
361
363
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/README.md,sha256=3QKoJQq3YmdplGnDOBMsLCJ3Ya1_aKjoz-QiWc4QfjA,291
362
364
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
365
  canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/my_protocol.py,sha256=fKLLcOIwvSWenW8-7tr8VqnF4Iox_5wU9V-Qw9UySsA,2381
364
- canvas-0.73.0.dist-info/METADATA,sha256=KYyEvKWWkLNpm3K3pVwWOKzIzUhbJa3GBsWNIXfqd7c,4758
365
- canvas-0.73.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
366
- canvas-0.73.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
367
- canvas-0.73.0.dist-info/RECORD,,
366
+ canvas-0.74.0.dist-info/METADATA,sha256=lBFuxnonffSp7lLSzNme2CEcn_YHOXcNx-qfwDjGv8k,4758
367
+ canvas-0.74.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
368
+ canvas-0.74.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
369
+ canvas-0.74.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*\x88L\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\x18\n\x14UPSERT_TASK_METADATA\x10o\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\x32\n-ANNOTATE_PATIENT_CHART_DETECTED_ISSUE_RESULTS\x10\xc9\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_APPOINTMENT_LABEL\x10\xdf\x0f\x12\x1d\n\x18REMOVE_APPOINTMENT_LABEL\x10\xe0\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\r\n\x08\x46\x41X_NOTE\x10\x83/\x12\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x17\n\x12UPDATE_APPOINTMENT\x10\xfe.\x12\x1b\n\x16RESCHEDULE_APPOINTMENT\x10\x86/\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\x1e\n\x19RESCHEDULE_SCHEDULE_EVENT\x10\x87/\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,\n\'APPOINTMENT__SLOTS__POST_SEARCH_RESULTS\x10\xa5/\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*\xecL\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\x18\n\x14UPSERT_TASK_METADATA\x10o\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\x32\n-ANNOTATE_PATIENT_CHART_DETECTED_ISSUE_RESULTS\x10\xc9\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_APPOINTMENT_LABEL\x10\xdf\x0f\x12\x1d\n\x18REMOVE_APPOINTMENT_LABEL\x10\xe0\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\x14\n\x0f\x41\x44\x44_CLAIM_LABEL\x10\x82\x10\x12\x17\n\x12REMOVE_CLAIM_LABEL\x10\x83\x10\x12\x1b\n\x16UPDATE_CLAIM_LINE_ITEM\x10\xa0\x10\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\x16\n\x11PUSH_NOTE_CHARGES\x10\xfc*\x12\r\n\x08\x46\x41X_NOTE\x10\x83/\x12\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x17\n\x12UPDATE_APPOINTMENT\x10\xfe.\x12\x1b\n\x16RESCHEDULE_APPOINTMENT\x10\x86/\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\x1e\n\x19RESCHEDULE_SCHEDULE_EVENT\x10\x87/\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,\n\'APPOINTMENT__SLOTS__POST_SEARCH_RESULTS\x10\xa5/\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=9911
25
+ _globals['_EFFECTTYPE']._serialized_end=10011
26
26
  _globals['_EFFECT']._serialized_start=51
27
27
  _globals['_EFFECT']._serialized_end=172
28
28
  # @@protoc_insertion_point(module_scope)
@@ -224,6 +224,9 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
224
224
  ADD_BILLING_LINE_ITEM: _ClassVar[EffectType]
225
225
  UPDATE_BILLING_LINE_ITEM: _ClassVar[EffectType]
226
226
  REMOVE_BILLING_LINE_ITEM: _ClassVar[EffectType]
227
+ ADD_CLAIM_LABEL: _ClassVar[EffectType]
228
+ REMOVE_CLAIM_LABEL: _ClassVar[EffectType]
229
+ UPDATE_CLAIM_LINE_ITEM: _ClassVar[EffectType]
227
230
  SHOW_PATIENT_PORTAL_MENU_ITEMS: _ClassVar[EffectType]
228
231
  PORTAL_WIDGET: _ClassVar[EffectType]
229
232
  LAUNCH_MODAL: _ClassVar[EffectType]
@@ -234,6 +237,7 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
234
237
  UPDATE_USER: _ClassVar[EffectType]
235
238
  CREATE_NOTE: _ClassVar[EffectType]
236
239
  UPDATE_NOTE: _ClassVar[EffectType]
240
+ PUSH_NOTE_CHARGES: _ClassVar[EffectType]
237
241
  FAX_NOTE: _ClassVar[EffectType]
238
242
  CREATE_APPOINTMENT: _ClassVar[EffectType]
239
243
  UPDATE_APPOINTMENT: _ClassVar[EffectType]
@@ -497,6 +501,9 @@ REMOVE_APPOINTMENT_LABEL: EffectType
497
501
  ADD_BILLING_LINE_ITEM: EffectType
498
502
  UPDATE_BILLING_LINE_ITEM: EffectType
499
503
  REMOVE_BILLING_LINE_ITEM: EffectType
504
+ ADD_CLAIM_LABEL: EffectType
505
+ REMOVE_CLAIM_LABEL: EffectType
506
+ UPDATE_CLAIM_LINE_ITEM: EffectType
500
507
  SHOW_PATIENT_PORTAL_MENU_ITEMS: EffectType
501
508
  PORTAL_WIDGET: EffectType
502
509
  LAUNCH_MODAL: EffectType
@@ -507,6 +514,7 @@ SIMPLE_API_WEBSOCKET_BROADCAST: EffectType
507
514
  UPDATE_USER: EffectType
508
515
  CREATE_NOTE: EffectType
509
516
  UPDATE_NOTE: EffectType
517
+ PUSH_NOTE_CHARGES: EffectType
510
518
  FAX_NOTE: EffectType
511
519
  CREATE_APPOINTMENT: EffectType
512
520
  UPDATE_APPOINTMENT: EffectType
@@ -0,0 +1,93 @@
1
+ from dataclasses import dataclass
2
+ from typing import Any
3
+ from uuid import UUID
4
+
5
+ from pydantic import conlist
6
+ from pydantic_core import InitErrorDetails
7
+
8
+ from canvas_sdk.effects.base import EffectType, _BaseEffect
9
+ from canvas_sdk.v1.data import Claim
10
+ from canvas_sdk.v1.data.common import ColorEnum
11
+
12
+
13
+ @dataclass
14
+ class Label:
15
+ """A class representing a label."""
16
+
17
+ color: ColorEnum
18
+ name: str
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ """Convert the label to a dictionary."""
22
+ return {"color": self.color.value, "name": self.name}
23
+
24
+
25
+ class _ClaimLabelBase(_BaseEffect):
26
+ """Base class for managing ClaimLabels."""
27
+
28
+ claim_id: UUID | str
29
+ labels: conlist(str | Label, min_length=1) # type: ignore
30
+
31
+ def _check_if_claim_exists(self) -> list[InitErrorDetails]:
32
+ if Claim.objects.filter(id=self.claim_id).exists():
33
+ return []
34
+ return [
35
+ (
36
+ self._create_error_detail(
37
+ "value",
38
+ f"Claim with id {self.claim_id} does not exist.",
39
+ self.claim_id,
40
+ )
41
+ )
42
+ ]
43
+
44
+ def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
45
+ errors = super()._get_error_details(method)
46
+ if not Claim.objects.filter(id=self.claim_id).exists():
47
+ errors.append(
48
+ self._create_error_detail(
49
+ "value",
50
+ f"Claim with id {self.claim_id} does not exist.",
51
+ self.claim_id,
52
+ )
53
+ )
54
+ return errors
55
+
56
+
57
+ class AddClaimLabel(_ClaimLabelBase):
58
+ """Effect to add a label to a Claim."""
59
+
60
+ class Meta:
61
+ effect_type = EffectType.ADD_CLAIM_LABEL
62
+
63
+ @property
64
+ def values(self) -> dict[str, Any]:
65
+ """The values for adding a claim label."""
66
+ return {
67
+ "claim_id": str(self.claim_id),
68
+ "labels": [
69
+ label.to_dict() if isinstance(label, Label) else {"name": label}
70
+ for label in self.labels
71
+ ],
72
+ }
73
+
74
+
75
+ class RemoveClaimLabel(_ClaimLabelBase):
76
+ """Effect to remove a label from a Claim."""
77
+
78
+ class Meta:
79
+ effect_type = EffectType.REMOVE_CLAIM_LABEL
80
+
81
+ labels: conlist(str, min_length=1) # type: ignore
82
+
83
+ @property
84
+ def values(self) -> dict[str, Any]:
85
+ """The values for removing a claim label."""
86
+ return {"claim_id": str(self.claim_id), "labels": list(self.labels)}
87
+
88
+
89
+ __exports__ = (
90
+ "Label",
91
+ "AddClaimLabel",
92
+ "RemoveClaimLabel",
93
+ )
@@ -0,0 +1,47 @@
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 ClaimLineItem
8
+
9
+
10
+ class UpdateClaimLineItem(_BaseEffect):
11
+ """
12
+ An Effect that updates a Claim Line Item.
13
+ """
14
+
15
+ class Meta:
16
+ effect_type = EffectType.UPDATE_CLAIM_LINE_ITEM
17
+
18
+ claim_line_item_id: str | UUID
19
+ charge: float | None = None
20
+
21
+ @property
22
+ def values(self) -> dict[str, Any]:
23
+ """The values for the payload."""
24
+ if self.charge is None:
25
+ return {}
26
+ return {"charge": str(self.charge)}
27
+
28
+ @property
29
+ def effect_payload(self) -> dict[str, Any]:
30
+ """The payload of the effect."""
31
+ return {"data": self.values, "claim_line_item_id": str(self.claim_line_item_id)}
32
+
33
+ def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
34
+ errors = super()._get_error_details(method)
35
+
36
+ if not ClaimLineItem.objects.filter(id=self.claim_line_item_id).exists():
37
+ errors.append(
38
+ self._create_error_detail(
39
+ "value",
40
+ "Claim Line Item does not exist",
41
+ self.claim_line_item_id,
42
+ )
43
+ )
44
+ return errors
45
+
46
+
47
+ __exports__ = ("UpdateClaimLineItem",)
@@ -1,9 +1,11 @@
1
1
  import datetime
2
+ import json
2
3
  from typing import Any
3
4
  from uuid import UUID
4
5
 
5
6
  from pydantic_core import InitErrorDetails
6
7
 
8
+ from canvas_sdk.effects import Effect
7
9
  from canvas_sdk.effects.note.base import NoteOrAppointmentABC
8
10
  from canvas_sdk.v1.data import Note as NoteModel
9
11
  from canvas_sdk.v1.data import NoteType, Patient
@@ -28,6 +30,14 @@ class Note(NoteOrAppointmentABC):
28
30
  patient_id: str | None = None
29
31
  title: str | None = None
30
32
 
33
+ def push_charges(self) -> Effect:
34
+ """Pushes BillingLineItems from the Note to the associated Claim. Identicial to clicking the Push Charges button in the note footer."""
35
+ self._validate_before_effect("push_charges")
36
+ return Effect(
37
+ type="PUSH_NOTE_CHARGES",
38
+ payload=json.dumps({"note": self.instance_id}),
39
+ )
40
+
31
41
  def _get_error_details(self, method: Any) -> list[InitErrorDetails]:
32
42
  """
33
43
  Validates the note type category and returns a list of error details if validation fails.
@@ -40,6 +50,34 @@ class Note(NoteOrAppointmentABC):
40
50
  """
41
51
  errors = super()._get_error_details(method)
42
52
 
53
+ if method == "push_charges":
54
+ if not self.instance_id:
55
+ errors.append(
56
+ self._create_error_detail(
57
+ "missing",
58
+ "Field 'instance_id' is required to push charges from a note to a claim.",
59
+ None,
60
+ )
61
+ )
62
+ elif not (note := NoteModel.objects.filter(id=self.instance_id).first()):
63
+ errors.append(
64
+ self._create_error_detail(
65
+ "value",
66
+ f"Note with ID {self.instance_id} does not exist.",
67
+ self.instance_id,
68
+ )
69
+ )
70
+ elif not note.note_type_version or not note.note_type_version.is_billable:
71
+ errors.append(
72
+ self._create_error_detail(
73
+ "value",
74
+ f"Note with note type {note.note_type_version} is not billable and has no associated claim.",
75
+ note.note_type_version,
76
+ )
77
+ )
78
+
79
+ return errors
80
+
43
81
  if method == "create":
44
82
  if not self.note_type_id:
45
83
  errors.append(
@@ -5,7 +5,7 @@ from django.db import models
5
5
  from django.db.models import Q, Sum
6
6
  from django.db.models.functions import Coalesce
7
7
 
8
- from canvas_sdk.v1.data.base import TimestampedModel
8
+ from canvas_sdk.v1.data.base import IdentifiableModel, TimestampedModel
9
9
  from canvas_sdk.v1.data.note import PracticeLocationPOS
10
10
 
11
11
 
@@ -106,7 +106,7 @@ class ClaimLineItemQuerySet(models.QuerySet):
106
106
  return self.exclude(proc_code=LineItemCodes.UNLINKED.value).apply_ordering()
107
107
 
108
108
 
109
- class ClaimLineItem(TimestampedModel):
109
+ class ClaimLineItem(TimestampedModel, IdentifiableModel):
110
110
  """ClaimLineItem."""
111
111
 
112
112
  class Meta:
@@ -234,6 +234,14 @@
234
234
  "CreateEvent",
235
235
  "EventRecurrence"
236
236
  ],
237
+ "canvas_sdk.effects.claim_label": [
238
+ "AddClaimLabel",
239
+ "Label",
240
+ "RemoveClaimLabel"
241
+ ],
242
+ "canvas_sdk.effects.claim_line_item": [
243
+ "UpdateClaimLineItem"
244
+ ],
237
245
  "canvas_sdk.effects.compound_medications": [
238
246
  "CompoundMedication"
239
247
  ],
@@ -274,6 +274,11 @@ enum EffectType {
274
274
  UPDATE_BILLING_LINE_ITEM = 2031;
275
275
  REMOVE_BILLING_LINE_ITEM = 2032;
276
276
 
277
+ ADD_CLAIM_LABEL = 2050;
278
+ REMOVE_CLAIM_LABEL = 2051;
279
+
280
+ UPDATE_CLAIM_LINE_ITEM = 2080;
281
+
277
282
  SHOW_PATIENT_PORTAL_MENU_ITEMS = 2100;
278
283
  PORTAL_WIDGET = 2101;
279
284
 
@@ -288,6 +293,7 @@ enum EffectType {
288
293
 
289
294
  CREATE_NOTE = 6000;
290
295
  UPDATE_NOTE = 6013;
296
+ PUSH_NOTE_CHARGES = 5500;
291
297
  FAX_NOTE = 6019;
292
298
 
293
299
  CREATE_APPOINTMENT = 6001;