canvas 0.42.0__py3-none-any.whl → 0.44.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.

Files changed (47) hide show
  1. {canvas-0.42.0.dist-info → canvas-0.44.0.dist-info}/METADATA +1 -2
  2. {canvas-0.42.0.dist-info → canvas-0.44.0.dist-info}/RECORD +47 -33
  3. canvas_cli/apps/auth/storage.py +65 -0
  4. canvas_cli/apps/auth/utils.py +6 -42
  5. canvas_generated/messages/effects_pb2.py +2 -2
  6. canvas_generated/messages/effects_pb2.pyi +12 -0
  7. canvas_sdk/effects/note/appointment.py +135 -50
  8. canvas_sdk/effects/note/base.py +108 -10
  9. canvas_sdk/effects/note/note.py +81 -22
  10. canvas_sdk/effects/patient/__init__.py +10 -2
  11. canvas_sdk/effects/patient/base.py +20 -1
  12. canvas_sdk/effects/patient/create_patient_external_identifier.py +40 -0
  13. canvas_sdk/effects/protocol_card/__init__.py +4 -1
  14. canvas_sdk/effects/protocol_card/protocol_card.py +2 -0
  15. canvas_sdk/utils/http.py +46 -2
  16. canvas_sdk/v1/data/__init__.py +45 -0
  17. canvas_sdk/v1/data/allergy_intolerance.py +6 -2
  18. canvas_sdk/v1/data/assessment.py +7 -3
  19. canvas_sdk/v1/data/billing.py +1 -1
  20. canvas_sdk/v1/data/business_line.py +35 -0
  21. canvas_sdk/v1/data/claim.py +321 -0
  22. canvas_sdk/v1/data/claim_line_item.py +140 -0
  23. canvas_sdk/v1/data/command.py +12 -3
  24. canvas_sdk/v1/data/condition.py +7 -2
  25. canvas_sdk/v1/data/detected_issue.py +9 -3
  26. canvas_sdk/v1/data/device.py +9 -3
  27. canvas_sdk/v1/data/discount.py +21 -0
  28. canvas_sdk/v1/data/fields.py +37 -0
  29. canvas_sdk/v1/data/imaging.py +18 -6
  30. canvas_sdk/v1/data/invoice.py +62 -0
  31. canvas_sdk/v1/data/lab.py +36 -12
  32. canvas_sdk/v1/data/line_item_transaction.py +83 -0
  33. canvas_sdk/v1/data/medication.py +6 -2
  34. canvas_sdk/v1/data/observation.py +9 -3
  35. canvas_sdk/v1/data/organization.py +3 -1
  36. canvas_sdk/v1/data/patient.py +17 -1
  37. canvas_sdk/v1/data/patient_consent.py +92 -0
  38. canvas_sdk/v1/data/payment_collection.py +35 -0
  39. canvas_sdk/v1/data/payor_specific_charge.py +28 -0
  40. canvas_sdk/v1/data/posting.py +225 -0
  41. canvas_sdk/v1/data/protocol_override.py +6 -2
  42. canvas_sdk/v1/data/questionnaire.py +6 -2
  43. canvas_sdk/v1/data/user.py +2 -0
  44. canvas_sdk/v1/data/utils.py +10 -0
  45. protobufs/canvas_generated/messages/effects.proto +7 -0
  46. {canvas-0.42.0.dist-info → canvas-0.44.0.dist-info}/WHEEL +0 -0
  47. {canvas-0.42.0.dist-info → canvas-0.44.0.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: canvas
3
- Version: 0.42.0
3
+ Version: 0.44.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
@@ -16,7 +16,6 @@ Requires-Dist: frozendict>=2.4.6
16
16
  Requires-Dist: grpcio<2,>=1.60.1
17
17
  Requires-Dist: ipython<9,>=8.21.0
18
18
  Requires-Dist: jsonschema<5,>=4.21.1
19
- Requires-Dist: keyring
20
19
  Requires-Dist: protobuf<5,>=4.25.3
21
20
  Requires-Dist: psycopg[binary,pool]<4,>=3.2.2
22
21
  Requires-Dist: pydantic<3,>=2.6.1
@@ -3,7 +3,8 @@ canvas_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  canvas_cli/main.py,sha256=L6JQkt1yxy30cA3-M9v7JD8WMW4i0M5GPr9kZetAito,2728
4
4
  canvas_cli/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  canvas_cli/apps/auth/__init__.py,sha256=gIwJ2qWvRlLqbiRkudrGqTKV-orlb8OTkG487qoRda4,105
6
- canvas_cli/apps/auth/utils.py,sha256=IH5oZB3pdlb4_FRfCZKkNTncx_kdKagpiBqlhtM8h2U,5434
6
+ canvas_cli/apps/auth/storage.py,sha256=D5zZaZo_kDCxXmyjtHsPJOatD0fP5eO1OoHFdxwCxH4,1656
7
+ canvas_cli/apps/auth/utils.py,sha256=kdWpkGY9Qg2G9Pp3caeKgC0_o0FJ6NOIillUa6I7HsE,4233
7
8
  canvas_cli/apps/emit/__init__.py,sha256=Fvv6SIbeGV2S5NkigQtamcRwJXIT1n7UcM-wrQoYsRQ,64
8
9
  canvas_cli/apps/emit/emit.py,sha256=5a-wfpWI7K5Nq6YQjS4VCMt-10LfZQ5CDFNUeLy9mzQ,2539
9
10
  canvas_cli/apps/emit/event_fixtures/ALLERGY_INTOLERANCE_CREATED.ndjson,sha256=C0mKBU_zP19WAn3EVRArQ7Pl3FBCyHXOmE9x7ZIKTss,110
@@ -91,8 +92,8 @@ canvas_cli/utils/urls/urls.py,sha256=KwWTh5ERrEsZEvdBrZpZB71xtyWkDuglpXUbycWmBOo
91
92
  canvas_cli/utils/validators/__init__.py,sha256=rBvSR2O1hWkNAnUBdcr-zUkmqT796_A61b9pnvEhwrM,113
92
93
  canvas_cli/utils/validators/manifest_schema.py,sha256=HEXid9ZwLSChijVRRzVllSmEhZhr9ekx5Fu9CeKg0yE,6019
93
94
  canvas_cli/utils/validators/validators.py,sha256=lrUBQ0sF7seTe_pNGsNgASdr2BGp6g-Qui58V4H9qfQ,1598
94
- canvas_generated/messages/effects_pb2.py,sha256=yQiDG19XXvHduWgwbXmpQHCh7DavqUBPcBXgejYuWss,12625
95
- canvas_generated/messages/effects_pb2.pyi,sha256=57a4gWWDBK6HnzgJlVtEMXH3cidBHteZXV_MEOFO4Lk,22396
95
+ canvas_generated/messages/effects_pb2.py,sha256=OL0e9pfculEj4eyMAS8PUxv-PdsQrkgw6AoVCwhtAn4,12894
96
+ canvas_generated/messages/effects_pb2.pyi,sha256=fPLdaq3HMoiQ3GHAOJMG3sWlLxgb8UeMqABHBTnRB10,22888
96
97
  canvas_generated/messages/effects_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
97
98
  canvas_generated/messages/events_pb2.py,sha256=jq7YelRp8-f6JSWUVjayLK-lpgEkjxamMwnOAt12_eI,51709
98
99
  canvas_generated/messages/events_pb2.pyi,sha256=GFrmww6N2heKMwXwbuTmj3D2jZQ0nrKonnCLUfSPf04,93036
@@ -169,20 +170,21 @@ canvas_sdk/effects/billing_line_item/add_billing_line_item.py,sha256=_V9P1q-Gxz1
169
170
  canvas_sdk/effects/billing_line_item/remove_billing_line_item.py,sha256=Ou6gbmpz8pJvgleAmffkeQTQsdInYMtk8rYQb8depb8,628
170
171
  canvas_sdk/effects/billing_line_item/update_billing_line_item.py,sha256=rQh3dHgMPibvCrlXZSVUKLNta42ML0qcDVQZOnrefI4,1475
171
172
  canvas_sdk/effects/note/__init__.py,sha256=SwxCzB_2qzYhZAjObnD5cYRxC_kBCf68kNkKcQCANXY,294
172
- canvas_sdk/effects/note/appointment.py,sha256=uUiquciUdppc_R_wP_UkPeh4TQlzZRjtRRmGb0Nr-_A,4749
173
- canvas_sdk/effects/note/base.py,sha256=b_zCtU7_5y5rexDD0sJg3wmzwRMeUUvKUXJe-laSUIU,3856
173
+ canvas_sdk/effects/note/appointment.py,sha256=ca46df8onI-I6szPJWSz_N745PWchKMBcruKiXmxsqk,8034
174
+ canvas_sdk/effects/note/base.py,sha256=3TeUdVsWWl0iJ8fkbCLJ0SjcZ0fEASy50r-ubSXvCpI,7587
174
175
  canvas_sdk/effects/note/message.py,sha256=T6p6h4J_I0k2jQSirFtIusydak4tem9yBPOTexvOQ0s,3740
175
- canvas_sdk/effects/note/note.py,sha256=s8ASykdGtCHobg8AyHHAKdnDGW0k4NUXPC3J17qHt98,2392
176
- canvas_sdk/effects/patient/__init__.py,sha256=GQSED5Ux3_EV1CBvlVpxsVFGgxC7_0f62feoZEfZ0Dg,133
177
- canvas_sdk/effects/patient/base.py,sha256=fxkKgpPJqfubM9NTQZX6ynlsGpsOScib9Gx4vwsUYTw,3988
176
+ canvas_sdk/effects/note/note.py,sha256=_iVVagZUM4fWOMw3Cy4KXl5rd-1_NgF57QSBl5y9d7w,4610
177
+ canvas_sdk/effects/patient/__init__.py,sha256=POWxjgR3zAawvaP0XVxFAVDmatAySR1kJSWg9_jOfpU,358
178
+ canvas_sdk/effects/patient/base.py,sha256=OXqymxGvRTSd8DxtGQuhORFIxDQYimkXFsYLgjkKNls,4596
179
+ canvas_sdk/effects/patient/create_patient_external_identifier.py,sha256=d03jzJcz2n19_NVo_wAq88iKZRuuM60qsZhGGhL7pGE,1055
178
180
  canvas_sdk/effects/patient_metadata/__init__.py,sha256=vxTpaP9gY1iNf0iVSoh24buFR7XfY2FKVYKn_P7BJkg,342
179
181
  canvas_sdk/effects/patient_metadata/base.py,sha256=pq_xtFLyzHfYWTCjWEicOfsLkG3Nu_ECzLB85tYOToM,1286
180
182
  canvas_sdk/effects/patient_metadata/patient_metadata_create_form.py,sha256=ePoPcG2vuFrsnhPWU_XavMK5UVAxBvcMzDhpu9HzTu0,1918
181
183
  canvas_sdk/effects/patient_portal/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
182
184
  canvas_sdk/effects/patient_portal/application_configuration.py,sha256=v9aGKH5jRcvjjzgOhU7vUsUN5lbN0a4wI1cL8uDRzXk,714
183
185
  canvas_sdk/effects/patient_portal/form_result.py,sha256=xe5_hZdBOQ_7UYEvoqI8ek0_e9DqgeTqta5ovnFRcwQ,977
184
- canvas_sdk/effects/protocol_card/__init__.py,sha256=arCJePOjuqO-k_4y0_h7b7a3Hxlj1is_vu9jbXTWxC4,148
185
- canvas_sdk/effects/protocol_card/protocol_card.py,sha256=ACTgLonoMhzBsLLXWTmOCkFVeN1gymDNGWkfzKPWQ2o,2766
186
+ canvas_sdk/effects/protocol_card/__init__.py,sha256=SIJhxskbqQEL5yVNiGABjf2ldDnsocDC-Vzcwejy6Jw,159
187
+ canvas_sdk/effects/protocol_card/protocol_card.py,sha256=kYkyl0gUi147VJUm-mgrrtRfdgm_eMfgdpdxXjBcVy0,2850
186
188
  canvas_sdk/effects/surescripts/__init__.py,sha256=vD-g2zW8HzGMfxcaure5ZhrQNP72iIDROAsCrzLH3y4,349
187
189
  canvas_sdk/effects/surescripts/surescripts_messages.py,sha256=7Cd_93SJVCgrneXadubUSjLQwS0N2lNp2ISH_6a24cs,2746
188
190
  canvas_sdk/effects/task/__init__.py,sha256=KlIinP5QbWMkoHGWPTg6Wi-TolPWW7TnEMVZ-h0Z3YE,168
@@ -212,42 +214,54 @@ canvas_sdk/templates/__init__.py,sha256=LtUmLDsGSTq249T6sA7PUzkl2OfCAyvtIOGPNHr6
212
214
  canvas_sdk/templates/utils.py,sha256=_AIYcGQD3ePWzQpH7ZirkV_ATtIHlzf-T_03mHoeIWI,1460
213
215
  canvas_sdk/utils/__init__.py,sha256=PADveJMf-BtOapK5Cczy-nOuZzVh-HT2H6sfJW_SK9U,198
214
216
  canvas_sdk/utils/db.py,sha256=wOZORBfyBVxQkay5vyEtQ4i0KVCfASFGREmecHMR8DE,409
215
- canvas_sdk/utils/http.py,sha256=n0Q9ndlwYi-fco7Hgu6JpjTmJnQFlkGkM5shT_ZRTvI,9043
217
+ canvas_sdk/utils/http.py,sha256=YluFiz3WOaDKpTjt-b_XdwOiM1winEkSZ2g3aZxxu3E,10542
216
218
  canvas_sdk/utils/metrics.py,sha256=ojCbXgjLSy1pEavHgRs8j4OVNdAUMa1nLqZdkA0uCQQ,5987
217
219
  canvas_sdk/utils/plugins.py,sha256=xxJUeVJBzfQWhlD1kO7HlFWxDAl01kkvbsf07Z08dOM,1551
218
220
  canvas_sdk/v1/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
219
221
  canvas_sdk/v1/apps.py,sha256=4MwQfQu78oX5bUVlyxYzbt4rZODi0ZesXe_3QOsEWO8,170
220
222
  canvas_sdk/v1/models.py,sha256=LqeHZ-Hz3EWyM9vYr9uZ9rBYdMXNuuvJqbmojV8EcEM,224
221
- canvas_sdk/v1/data/__init__.py,sha256=nG80UG9zrYMzBJbGDVCtQ6BdfJxckHKB36U_6jT5XEA,3415
222
- canvas_sdk/v1/data/allergy_intolerance.py,sha256=ZAGV3VybFODXrnVSPOXAbM1MDQMzvLo5xLIaAsRHuA0,2370
223
+ canvas_sdk/v1/data/__init__.py,sha256=0vVBA8OG3a1d8s6-_BGZ6eYdriyngA4EOdWaFavc-Ow,4568
224
+ canvas_sdk/v1/data/allergy_intolerance.py,sha256=oVm9OgNT7eGylp-26Y_zw6G109qfkWVGZC0OsLqtlCM,2434
223
225
  canvas_sdk/v1/data/appointment.py,sha256=vSHa7GlLCsBS8bhxMxj4hZpYno-wxaaXOIZ2GyYCdGY,2715
224
- canvas_sdk/v1/data/assessment.py,sha256=2zX6N6rLbSbGkCwH0m3aSji7SijFLBrHUD0zMFgSPik,1536
226
+ canvas_sdk/v1/data/assessment.py,sha256=7K4ASCda3GGr9pj4lauGdoItyNWD-RpalAXFXa1t7Bk,1618
225
227
  canvas_sdk/v1/data/banner_alert.py,sha256=T9Iq_1FWFo_hqxFZnR2xFQ4xDpeBf_aUCvQilrRVh8Q,815
226
228
  canvas_sdk/v1/data/base.py,sha256=ZuLj9MSUkTR7L0NMwC5YflhY4Px-SgCvhh5G2Ili0SE,6347
227
- canvas_sdk/v1/data/billing.py,sha256=Dqf9niDtdyYDW9KOHSgzyyiql6WwLz_eF5a0JGv55V4,2689
229
+ canvas_sdk/v1/data/billing.py,sha256=E1Bf2SGQCTr4vF3cWQzKgVKvqJmXtzHsyIBcVx8ICMg,2719
230
+ canvas_sdk/v1/data/business_line.py,sha256=8q0BDpKukQVjyHiHkrB3DQTdn4OPJWZhVNNOQ2ULFSY,905
228
231
  canvas_sdk/v1/data/care_team.py,sha256=Ce6uXz_g867oYrq1RLvK-KXLubT4MAkomuJIO-GC7Tw,1916
229
- canvas_sdk/v1/data/command.py,sha256=-hNE5AS1Ug7C5m3Qy6tdjF5_Za_pUkSkWRkwQd_P6E8,1642
232
+ canvas_sdk/v1/data/claim.py,sha256=IaC-k9AtcQy3JiIPG_NmFKzx7syvrgWS4FAIZl4vcNU,10821
233
+ canvas_sdk/v1/data/claim_line_item.py,sha256=rd8y2A29nWU_8ZAK0W4ITeUCHp2zAzc0fnUIXpVBOoA,4904
234
+ canvas_sdk/v1/data/command.py,sha256=fLxQMhLN7HT7cMtnrFGLNoZNyZFIK2zgKasYrivYhr0,1822
230
235
  canvas_sdk/v1/data/common.py,sha256=u5W3_7kXAGPe7guEBwRouKp8FMRCx9iZL6ei8QMmtwU,4880
231
- canvas_sdk/v1/data/condition.py,sha256=sbGk0sfeYWTZFIgNlLe8bMmFQeUF51eqh-zDC6zN-QM,2351
236
+ canvas_sdk/v1/data/condition.py,sha256=sUHiavSPmJbSaWK723-kOmQXLlwBj-1aNAiD6UqDlQc,2452
232
237
  canvas_sdk/v1/data/coverage.py,sha256=iuWf5Kou-w7hwkUVeZnwzDOMGw4YrT7NEbBbW7jchUU,11084
233
- canvas_sdk/v1/data/detected_issue.py,sha256=zL_wed8zH9lgSgatSFpqvrjSTdGkuW7ZhaqyLNrhvdM,1744
234
- canvas_sdk/v1/data/device.py,sha256=B8HgCIAyTJhuXfL2W7ZEK4kOgh7obXlMi7htZqImEYI,1641
235
- canvas_sdk/v1/data/imaging.py,sha256=VwRR-IBw4hyufOP9fYjQFIjlHa75fhp95VmggdDuMgs,4379
236
- canvas_sdk/v1/data/lab.py,sha256=552gRPLiM1YiQ9yvVWcInk27DtWN3XUrYtX-svoCayQ,12685
237
- canvas_sdk/v1/data/medication.py,sha256=vgjQFhBCZEjRHiAupbCLkbxjjdcfLPwv5pKAlVgCe5U,2318
238
+ canvas_sdk/v1/data/detected_issue.py,sha256=jWVzrtFxXUWUb9_nGpF4v8LKsYLWUpqmqaxBXYtNkFA,1840
239
+ canvas_sdk/v1/data/device.py,sha256=2v1JOulQ5jZbKwolhUW78o0usPpP6KS4mC7xh5voYxw,1737
240
+ canvas_sdk/v1/data/discount.py,sha256=fguMBhVOwEGbV8WJZioxfwlr6uXZH7x4oFi9x-0hmNY,590
241
+ canvas_sdk/v1/data/fields.py,sha256=bI7mPI_3B36ntyoVQ6vuDq8eGLoUIkwZZr14lTC-4To,1104
242
+ canvas_sdk/v1/data/imaging.py,sha256=KujY01WQ3O_HWY91y_HWovqrZbMSCC3HAzc_vafn4-Y,4571
243
+ canvas_sdk/v1/data/invoice.py,sha256=LCw2Ax8m5SS3TlfXatOc1fbmpRkXgqbuZRzl-brGjTM,1917
244
+ canvas_sdk/v1/data/lab.py,sha256=ifsMcVJd5Lq4Dz6SExclh-si8-uQEtRRH6zhb1p4HvI,13069
245
+ canvas_sdk/v1/data/line_item_transaction.py,sha256=JVZANCBFuZz777837S9ILVjHR31QrBbvQ3Lwc6GyuA0,2440
246
+ canvas_sdk/v1/data/medication.py,sha256=5mTbqozFo0EdGALXeV1aAywzVFn_J6UxXqNpU_FLFyw,2382
238
247
  canvas_sdk/v1/data/message.py,sha256=P95_oeOnaSDEPFoCx6Gcl54-NgYbW8BgIXizl5pBSiQ,2435
239
248
  canvas_sdk/v1/data/note.py,sha256=E92cgA90hQCAZjIEqFzZOcWJ74RoVEwDpG4Fx35NCkM,6790
240
- canvas_sdk/v1/data/observation.py,sha256=jhnFEoN5GxU3YOcrq2Ws14mM5xTSrSCz7PpVV_MVzWQ,3938
241
- canvas_sdk/v1/data/organization.py,sha256=w26opo08J6R42FxiYDB1FU1ErUNzVfZkVJzEOhufsos,999
242
- canvas_sdk/v1/data/patient.py,sha256=wO_oo3nzb2h8u68v7Te6BCEdww90tNmU2E-bc3D1t3o,8317
249
+ canvas_sdk/v1/data/observation.py,sha256=Hh8UKY1iqIYAqySWhwoj86Gmkbhz90C2m4GIx56ucyo,4034
250
+ canvas_sdk/v1/data/organization.py,sha256=-q1MbjPWihCaoKx6ZkRSY2JD3VNzAHIGGd6foMDwAy8,1031
251
+ canvas_sdk/v1/data/patient.py,sha256=M91WSFFXg03Fu0qP7MRNVvn02EHJ4sMmBZnQMNehnyc,8915
252
+ canvas_sdk/v1/data/patient_consent.py,sha256=l_DJ8la1PFEB8TQMCKeLMjwH98AMSCt2mE24HgVKcqM,2785
253
+ canvas_sdk/v1/data/payment_collection.py,sha256=4ulvp6xWFwiFUrk0utPxy70FPkT1dmOrjwjxQrKYflY,939
254
+ canvas_sdk/v1/data/payor_specific_charge.py,sha256=lhv7qdYR-Z5rR9P_PtIw_LOwhXfidzrT0U7MGKZeZ2s,856
255
+ canvas_sdk/v1/data/posting.py,sha256=1K5GwUIyKEDdN2P5zmOu5PWVjsAZTe6ZLluH0CXTmwE,7841
243
256
  canvas_sdk/v1/data/practicelocation.py,sha256=5Z6dq-XFsdo8fqr8nm4b8IvxDMgPgoViHMip8i8o8VE,4308
244
- canvas_sdk/v1/data/protocol_override.py,sha256=nHB425UiPUi6YbyLR1UhRuQhY-hZ9pj2avjXeccZgTY,2183
245
- canvas_sdk/v1/data/questionnaire.py,sha256=qsa-2hf2VtSw9B1gMwHh9QIvDAkW6gOErzm9d6Fk4Hk,7185
257
+ canvas_sdk/v1/data/protocol_override.py,sha256=B4FOunuS1h4VvO5m20SCwRHqG1_pAaxMgqrZ2Bwbong,2247
258
+ canvas_sdk/v1/data/questionnaire.py,sha256=1zp16o8nbNe-ZVEQdoBfDaF2Qcgq0xySE6w3W8cQ1fM,7249
246
259
  canvas_sdk/v1/data/reason_for_visit.py,sha256=lE0Fu5FCMlHPJzdE5fT5MQsuKd0dX2cEMRmDYYDgZRo,657
247
260
  canvas_sdk/v1/data/staff.py,sha256=tdVQmAJa-fq9CWixkijZ_u0fLXXAZ5WPf0lYSA83B6A,4955
248
261
  canvas_sdk/v1/data/task.py,sha256=wmwgt70ocpboV_ov2GUAFbwcL-qGaotMgOk7DIpe6I0,3634
249
262
  canvas_sdk/v1/data/team.py,sha256=9i5EKhq9Nhmx52nt2RLC3qOVRddKsAQbhfoP5Z9xDbE,2861
250
- canvas_sdk/v1/data/user.py,sha256=Go2Mxso7RlMr0uhamPMenKt75RsyJCPnd9BscHxt6OA,435
263
+ canvas_sdk/v1/data/user.py,sha256=TPTWrlAPn06ZRkBMyNsRrtQyBIbjSG0y5E00H-gZUzY,535
264
+ canvas_sdk/v1/data/utils.py,sha256=r0vMl4l7hxBFYDWRA_kXKycvFCmEch3SmeTgdsOHDec,279
251
265
  canvas_sdk/value_set/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
252
266
  canvas_sdk/value_set/custom.py,sha256=smf5fnPwuW-7H_B49CUfLWnq1QH-PhItvYw0siVsu-o,20173
253
267
  canvas_sdk/value_set/hcc2018.py,sha256=MMudhqOOgvedh8-dDfC_JbHJn-sNRbk8Q357agD_Pww,2198496
@@ -280,13 +294,13 @@ plugin_runner/installation.py,sha256=LLjtnzPk-w4go3UbXnBItJTKz1ajR_5kGQbFXTaWTFU
280
294
  plugin_runner/load_all_plugins.py,sha256=4T2gW2YljhIx4xfwf1c0F_8oIbE1ubsLj0ShkHRtlVY,5847
281
295
  plugin_runner/plugin_runner.py,sha256=Z7ySPJSY4AMGRR0PtdXA_I3z8rxlDpjssuMspHIc79U,21655
282
296
  plugin_runner/sandbox.py,sha256=vxfPKkz3A31g_QAD6eqa-CFt7z6xTp4FHu6RBrxoNz8,28589
283
- protobufs/canvas_generated/messages/effects.proto,sha256=i6H_Fs6F3I1AzeEo68mhesoir6iH_5RngpDk9K42TZg,8617
297
+ protobufs/canvas_generated/messages/effects.proto,sha256=L5QGPfnmiefjD7qsGzKRbHAAyAstQmVvMrndwg1lumQ,8807
284
298
  protobufs/canvas_generated/messages/events.proto,sha256=DSxbxKp7BTZpI4M14Sm7-XpHdUnN3bC3RapRqZbxgiQ,48751
285
299
  protobufs/canvas_generated/messages/plugins.proto,sha256=oNainUPWFYQjgCX7bJEPI9_VnHC5VZduzOqgR4Q7dNM,109
286
300
  protobufs/canvas_generated/services/plugin_runner.proto,sha256=doadBKn5k4xAtOgR-q_pEvW4yzxpUaHNOowMG6CL5GY,304
287
301
  pubsub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
302
  pubsub/pubsub.py,sha256=PHIvJ5SD3M-jQSYeGGSj1FuG6CvP6BQffAoGax9Uudk,1423
289
- canvas-0.42.0.dist-info/METADATA,sha256=iRF1zLbPJr_f2fDDkf38SEZZU3X8DH-GGSkfRIpVZ9A,4447
290
- canvas-0.42.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
291
- canvas-0.42.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
292
- canvas-0.42.0.dist-info/RECORD,,
303
+ canvas-0.44.0.dist-info/METADATA,sha256=OFBUhyUIjSVg9Uukdh7tHEVKu013OLZM5_vO8MkqH0A,4424
304
+ canvas-0.44.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
305
+ canvas-0.44.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
306
+ canvas-0.44.0.dist-info/RECORD,,
@@ -0,0 +1,65 @@
1
+ import json
2
+ from datetime import datetime
3
+ from pathlib import Path
4
+ from typing import Any
5
+
6
+ TOKENS_PATH = Path.home() / ".canvas" / "tokens.json"
7
+ TOKENS_PATH.parent.mkdir(parents=True, exist_ok=True)
8
+
9
+
10
+ def _load_tokens() -> dict:
11
+ if not TOKENS_PATH.exists():
12
+ return {}
13
+ with TOKENS_PATH.open("r") as f:
14
+ return json.load(f)
15
+
16
+
17
+ def _save_tokens(tokens: dict) -> None:
18
+ with TOKENS_PATH.open("w") as f:
19
+ json.dump(tokens, f, indent=2)
20
+
21
+
22
+ def _set_value(key: str, value: Any) -> None:
23
+ """Set a value in the token storage."""
24
+ tokens = _load_tokens()
25
+ tokens[key] = value
26
+ _save_tokens(tokens)
27
+
28
+
29
+ def _get_value(key: str) -> Any | None:
30
+ """Get value from the token storage."""
31
+ tokens = _load_tokens()
32
+ return tokens.get(key)
33
+
34
+
35
+ def _delete_value(key: str) -> None:
36
+ """Delete a value from the token storage."""
37
+ tokens = _load_tokens()
38
+ tokens.pop(key, None)
39
+ _save_tokens(tokens)
40
+
41
+
42
+ def set_token(host_token_key: str, token: str, exp: datetime) -> None:
43
+ """Set a token with an expiry date in the token storage."""
44
+ _set_value(host_token_key, {"token": token, "exp_date": exp.isoformat()})
45
+
46
+
47
+ def get_token(host_token_key: str) -> str | None:
48
+ """Get a token from the token storage."""
49
+ value = _get_value(host_token_key)
50
+
51
+ if not value:
52
+ return None
53
+ try:
54
+ exp = value["exp_date"]
55
+ if datetime.fromisoformat(exp) <= datetime.now():
56
+ return None
57
+ except ValueError:
58
+ return None
59
+
60
+ return value["token"]
61
+
62
+
63
+ def delete_token(host_token_key: str) -> None:
64
+ """Delete a token from the token storage."""
65
+ _delete_value(host_token_key)
@@ -3,34 +3,16 @@ from datetime import datetime, timedelta
3
3
  from pathlib import Path
4
4
  from urllib.parse import urlparse
5
5
 
6
- import keyring
7
6
  import requests
8
7
 
8
+ from canvas_cli.apps.auth.storage import get_token, set_token
9
9
  from canvas_sdk.utils import Http
10
10
 
11
- # Keyring namespace we'll use
12
- KEYRING_SERVICE = __name__
13
-
14
11
  CONFIG_PATH = Path.home() / ".canvas" / "credentials.ini"
15
12
 
16
13
  LOCALHOST = "http://localhost:8000"
17
14
 
18
15
 
19
- def get_password(username: str) -> str | None:
20
- """Return the stored password for username, or None."""
21
- return keyring.get_password(KEYRING_SERVICE, username)
22
-
23
-
24
- def set_password(username: str, password: str) -> None:
25
- """Set the password for the given username."""
26
- keyring.set_password(KEYRING_SERVICE, username=username, password=password)
27
-
28
-
29
- def delete_password(username: str) -> None:
30
- """Delete the password for the given username."""
31
- keyring.delete_password(KEYRING_SERVICE, username=username)
32
-
33
-
34
16
  def get_config() -> configparser.ConfigParser:
35
17
  """Reads the config file and returns a ConfigParser object."""
36
18
  config = configparser.ConfigParser()
@@ -64,7 +46,7 @@ def read_config(host: str, property: str) -> str:
64
46
 
65
47
 
66
48
  def get_api_client_credentials(host: str) -> str:
67
- """Either return the given api_key, or fetch it from the keyring."""
49
+ """Either return the given api_key, or fetch it from the token storage."""
68
50
  hostname = urlparse(host).hostname
69
51
 
70
52
  if not hostname:
@@ -119,23 +101,6 @@ def request_api_token(host: str, api_client_credentials: str) -> dict:
119
101
  return token_response.json()
120
102
 
121
103
 
122
- def is_token_valid(host_token_key: str, expiration_date: datetime | None = None) -> bool:
123
- """True if the token has not expired yet."""
124
- token_exp_date_key = f"{host_token_key}|exp_date"
125
-
126
- if expiration_date:
127
- if expiration_date <= datetime.now():
128
- return False
129
- set_password(token_exp_date_key, expiration_date.isoformat())
130
- return True
131
-
132
- stored_expiration_date = get_password(token_exp_date_key)
133
- return (
134
- stored_expiration_date is not None
135
- and datetime.fromisoformat(stored_expiration_date) > datetime.now()
136
- )
137
-
138
-
139
104
  def get_or_request_api_token(host: str | None = None) -> str:
140
105
  """Returns an existing stored token if it has not expired, or requests a new one."""
141
106
  if not (host := get_default_host(host)):
@@ -143,10 +108,9 @@ def get_or_request_api_token(host: str | None = None) -> str:
143
108
  f"Please specify a host or add one to the configuration file at '{CONFIG_PATH}'"
144
109
  )
145
110
 
146
- host_token_key = f"{host}|token"
147
- token = get_password(host_token_key)
111
+ token = get_token(host)
148
112
 
149
- if token and is_token_valid(host_token_key):
113
+ if token:
150
114
  return token
151
115
 
152
116
  api_client_credentials = get_api_client_credentials(host)
@@ -155,9 +119,9 @@ def get_or_request_api_token(host: str | None = None) -> str:
155
119
  raise Exception(f"A token could not be acquired from the given host '{host}'")
156
120
 
157
121
  token_expiration_date = datetime.now() + timedelta(seconds=token_response["expires_in"])
158
- if not is_token_valid(host_token_key, token_expiration_date):
122
+ if token_expiration_date <= datetime.now():
159
123
  raise Exception(f"A valid token could not be acquired from the given host '{host}'")
160
124
 
161
125
  new_token = token_response["access_token"]
162
- set_password(host_token_key, new_token)
126
+ set_token(host, new_token, token_expiration_date)
163
127
  return new_token
@@ -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*\xb3;\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#\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$\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\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&ORIGINATE_CHART_SECTION_REVIEW_COMMAND\x10\xf8\n\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\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x1a\n\x15\x43REATE_SCHEDULE_EVENT\x10\xf2.\x12\x13\n\x0e\x43REATE_PATIENT\x10\xf3.\x12\x13\n\x0e\x43REATE_MESSAGE\x10\xf4.\x12\x11\n\x0cSEND_MESSAGE\x10\xf5.\x12\x1c\n\x17\x43REATE_AND_SEND_MESSAGE\x10\xf6.\x12\x11\n\x0c\x45\x44IT_MESSAGE\x10\xf7.\x12/\n*PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS\x10\xfa.\x12\x1c\n\x17UPSERT_PATIENT_METADATA\x10\xfb.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*\xd8<\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#\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$\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\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&ORIGINATE_CHART_SECTION_REVIEW_COMMAND\x10\xf8\n\x12\x17\n\x12SHOW_ACTION_BUTTON\x10\xe8\x07\x12 \n\x1bPATIENT_PORTAL__FORM_RESULT\x10\xd0\x0f\x12.\n)PATIENT_PORTAL__APPOINTMENT_IS_CANCELABLE\x10\xd1\x0f\x12\x31\n,PATIENT_PORTAL__APPOINTMENT_IS_RESCHEDULABLE\x10\xd2\x0f\x12\x32\n-PATIENT_PORTAL__APPOINTMENT_SHOW_MEETING_LINK\x10\xd3\x0f\x12 \n\x1bPATIENT_PORTAL__SEND_INVITE\x10\xd4\x0f\x12=\n8PATIENT_PORTAL__APPOINTMENTS__SLOTS__POST_SEARCH_RESULTS\x10\xd5\x0f\x12M\nHPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__PRE_SEARCH_RESULTS\x10\xd6\x0f\x12N\nIPATIENT_PORTAL__APPOINTMENTS__FORM_APPOINTMENT_TYPES__POST_SEARCH_RESULTS\x10\xd7\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__PRE_SEARCH_RESULTS\x10\xd8\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_LOCATIONS__POST_SEARCH_RESULTS\x10\xd9\x0f\x12\x45\n@PATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__PRE_SEARCH_RESULTS\x10\xda\x0f\x12\x46\nAPATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__POST_SEARCH_RESULTS\x10\xdb\x0f\x12.\n)PATIENT_PORTAL__APPLICATION_CONFIGURATION\x10\xdc\x0f\x12\x1a\n\x15\x41\x44\x44_BILLING_LINE_ITEM\x10\xee\x0f\x12\x1d\n\x18UPDATE_BILLING_LINE_ITEM\x10\xef\x0f\x12\x1d\n\x18REMOVE_BILLING_LINE_ITEM\x10\xf0\x0f\x12#\n\x1eSHOW_PATIENT_PORTAL_MENU_ITEMS\x10\xb4\x10\x12\x12\n\rPORTAL_WIDGET\x10\xb5\x10\x12\x11\n\x0cLAUNCH_MODAL\x10\xb8\x17\x12\x18\n\x13SIMPLE_API_RESPONSE\x10\xa0\x1f\x12 \n\x1bSIMPLE_API_WEBSOCKET_ACCEPT\x10\xa1\x1f\x12\x1e\n\x19SIMPLE_API_WEBSOCKET_DENY\x10\xa2\x1f\x12#\n\x1eSIMPLE_API_WEBSOCKET_BROADCAST\x10\xa3\x1f\x12\x10\n\x0bUPDATE_USER\x10\x88\'\x12\x10\n\x0b\x43REATE_NOTE\x10\xf0.\x12\x10\n\x0bUPDATE_NOTE\x10\xfd.\x12\x17\n\x12\x43REATE_APPOINTMENT\x10\xf1.\x12\x17\n\x12UPDATE_APPOINTMENT\x10\xfe.\x12\x17\n\x12\x43\x41NCEL_APPOINTMENT\x10\xff.\x12\x1a\n\x15\x43REATE_SCHEDULE_EVENT\x10\xf2.\x12\x1a\n\x15UPDATE_SCHEDULE_EVENT\x10\x80/\x12\x1a\n\x15\x44\x45LETE_SCHEDULE_EVENT\x10\x81/\x12\x13\n\x0e\x43REATE_PATIENT\x10\xf3.\x12\x13\n\x0e\x43REATE_MESSAGE\x10\xf4.\x12\x11\n\x0cSEND_MESSAGE\x10\xf5.\x12\x1c\n\x17\x43REATE_AND_SEND_MESSAGE\x10\xf6.\x12\x11\n\x0c\x45\x44IT_MESSAGE\x10\xf7.\x12/\n*PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS\x10\xfa.\x12\x1c\n\x17UPSERT_PATIENT_METADATA\x10\xfb.\x12\'\n\"CREATE_PATIENT_EXTERNAL_IDENTIFIER\x10\xfc.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=7778
25
+ _globals['_EFFECTTYPE']._serialized_end=7943
26
26
  _globals['_EFFECT']._serialized_start=51
27
27
  _globals['_EFFECT']._serialized_end=172
28
28
  # @@protoc_insertion_point(module_scope)
@@ -218,8 +218,13 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
218
218
  SIMPLE_API_WEBSOCKET_BROADCAST: _ClassVar[EffectType]
219
219
  UPDATE_USER: _ClassVar[EffectType]
220
220
  CREATE_NOTE: _ClassVar[EffectType]
221
+ UPDATE_NOTE: _ClassVar[EffectType]
221
222
  CREATE_APPOINTMENT: _ClassVar[EffectType]
223
+ UPDATE_APPOINTMENT: _ClassVar[EffectType]
224
+ CANCEL_APPOINTMENT: _ClassVar[EffectType]
222
225
  CREATE_SCHEDULE_EVENT: _ClassVar[EffectType]
226
+ UPDATE_SCHEDULE_EVENT: _ClassVar[EffectType]
227
+ DELETE_SCHEDULE_EVENT: _ClassVar[EffectType]
223
228
  CREATE_PATIENT: _ClassVar[EffectType]
224
229
  CREATE_MESSAGE: _ClassVar[EffectType]
225
230
  SEND_MESSAGE: _ClassVar[EffectType]
@@ -227,6 +232,7 @@ class EffectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
227
232
  EDIT_MESSAGE: _ClassVar[EffectType]
228
233
  PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS: _ClassVar[EffectType]
229
234
  UPSERT_PATIENT_METADATA: _ClassVar[EffectType]
235
+ CREATE_PATIENT_EXTERNAL_IDENTIFIER: _ClassVar[EffectType]
230
236
  UNKNOWN_EFFECT: EffectType
231
237
  LOG: EffectType
232
238
  ADD_PLAN_COMMAND: EffectType
@@ -438,8 +444,13 @@ SIMPLE_API_WEBSOCKET_DENY: EffectType
438
444
  SIMPLE_API_WEBSOCKET_BROADCAST: EffectType
439
445
  UPDATE_USER: EffectType
440
446
  CREATE_NOTE: EffectType
447
+ UPDATE_NOTE: EffectType
441
448
  CREATE_APPOINTMENT: EffectType
449
+ UPDATE_APPOINTMENT: EffectType
450
+ CANCEL_APPOINTMENT: EffectType
442
451
  CREATE_SCHEDULE_EVENT: EffectType
452
+ UPDATE_SCHEDULE_EVENT: EffectType
453
+ DELETE_SCHEDULE_EVENT: EffectType
443
454
  CREATE_PATIENT: EffectType
444
455
  CREATE_MESSAGE: EffectType
445
456
  SEND_MESSAGE: EffectType
@@ -447,6 +458,7 @@ CREATE_AND_SEND_MESSAGE: EffectType
447
458
  EDIT_MESSAGE: EffectType
448
459
  PATIENT_METADATA__CREATE_ADDITIONAL_FIELDS: EffectType
449
460
  UPSERT_PATIENT_METADATA: EffectType
461
+ CREATE_PATIENT_EXTERNAL_IDENTIFIER: EffectType
450
462
 
451
463
  class Effect(_message.Message):
452
464
  __slots__ = ("type", "payload", "plugin_name", "classname", "handler_name")