canvas 0.63.0__py3-none-any.whl → 0.89.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.
Files changed (185) hide show
  1. {canvas-0.63.0.dist-info → canvas-0.89.0.dist-info}/METADATA +4 -1
  2. {canvas-0.63.0.dist-info → canvas-0.89.0.dist-info}/RECORD +184 -98
  3. {canvas-0.63.0.dist-info → canvas-0.89.0.dist-info}/WHEEL +1 -1
  4. canvas_cli/apps/emit/event_fixtures/UNKNOWN.ndjson +1 -0
  5. canvas_cli/apps/logs/logs.py +386 -22
  6. canvas_cli/main.py +3 -1
  7. canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/tests/test_models.py +46 -4
  8. canvas_cli/utils/context/context.py +13 -13
  9. canvas_cli/utils/validators/manifest_schema.py +26 -1
  10. canvas_generated/messages/effects_pb2.py +5 -5
  11. canvas_generated/messages/effects_pb2.pyi +108 -2
  12. canvas_generated/messages/events_pb2.py +6 -6
  13. canvas_generated/messages/events_pb2.pyi +282 -2
  14. canvas_sdk/clients/__init__.py +1 -0
  15. canvas_sdk/clients/llms/__init__.py +17 -0
  16. canvas_sdk/clients/llms/libraries/__init__.py +11 -0
  17. canvas_sdk/clients/llms/libraries/llm_anthropic.py +87 -0
  18. canvas_sdk/clients/llms/libraries/llm_api.py +143 -0
  19. canvas_sdk/clients/llms/libraries/llm_google.py +92 -0
  20. canvas_sdk/clients/llms/libraries/llm_openai.py +98 -0
  21. canvas_sdk/clients/llms/structures/__init__.py +9 -0
  22. canvas_sdk/clients/llms/structures/llm_response.py +33 -0
  23. canvas_sdk/clients/llms/structures/llm_tokens.py +53 -0
  24. canvas_sdk/clients/llms/structures/llm_turn.py +47 -0
  25. canvas_sdk/clients/llms/structures/settings/__init__.py +13 -0
  26. canvas_sdk/clients/llms/structures/settings/llm_settings.py +27 -0
  27. canvas_sdk/clients/llms/structures/settings/llm_settings_anthropic.py +43 -0
  28. canvas_sdk/clients/llms/structures/settings/llm_settings_gemini.py +40 -0
  29. canvas_sdk/clients/llms/structures/settings/llm_settings_gpt4.py +40 -0
  30. canvas_sdk/clients/llms/structures/settings/llm_settings_gpt5.py +48 -0
  31. canvas_sdk/clients/third_party.py +3 -0
  32. canvas_sdk/commands/__init__.py +12 -0
  33. canvas_sdk/commands/base.py +33 -2
  34. canvas_sdk/commands/commands/adjust_prescription.py +4 -0
  35. canvas_sdk/commands/commands/custom_command.py +86 -0
  36. canvas_sdk/commands/commands/family_history.py +17 -1
  37. canvas_sdk/commands/commands/immunization_statement.py +42 -2
  38. canvas_sdk/commands/commands/medication_statement.py +16 -1
  39. canvas_sdk/commands/commands/past_surgical_history.py +16 -1
  40. canvas_sdk/commands/commands/perform.py +18 -1
  41. canvas_sdk/commands/commands/prescribe.py +8 -9
  42. canvas_sdk/commands/commands/refill.py +5 -5
  43. canvas_sdk/commands/commands/resolve_condition.py +5 -5
  44. canvas_sdk/commands/commands/review/__init__.py +3 -0
  45. canvas_sdk/commands/commands/review/base.py +72 -0
  46. canvas_sdk/commands/commands/review/imaging.py +13 -0
  47. canvas_sdk/commands/commands/review/lab.py +13 -0
  48. canvas_sdk/commands/commands/review/referral.py +13 -0
  49. canvas_sdk/commands/commands/review/uncategorized_document.py +13 -0
  50. canvas_sdk/commands/validation.py +43 -0
  51. canvas_sdk/effects/batch_originate.py +22 -0
  52. canvas_sdk/effects/calendar/__init__.py +13 -3
  53. canvas_sdk/effects/calendar/{create_calendar.py → calendar.py} +19 -5
  54. canvas_sdk/effects/calendar/event.py +172 -0
  55. canvas_sdk/effects/claim_label.py +93 -0
  56. canvas_sdk/effects/claim_line_item.py +47 -0
  57. canvas_sdk/effects/claim_queue.py +49 -0
  58. canvas_sdk/effects/fax/__init__.py +3 -0
  59. canvas_sdk/effects/fax/base.py +77 -0
  60. canvas_sdk/effects/fax/note.py +42 -0
  61. canvas_sdk/effects/metadata.py +15 -1
  62. canvas_sdk/effects/note/__init__.py +8 -1
  63. canvas_sdk/effects/note/appointment.py +135 -7
  64. canvas_sdk/effects/note/base.py +17 -0
  65. canvas_sdk/effects/note/message.py +22 -14
  66. canvas_sdk/effects/note/note.py +150 -1
  67. canvas_sdk/effects/observation/__init__.py +11 -0
  68. canvas_sdk/effects/observation/base.py +206 -0
  69. canvas_sdk/effects/patient/__init__.py +2 -0
  70. canvas_sdk/effects/patient/base.py +8 -0
  71. canvas_sdk/effects/payment/__init__.py +11 -0
  72. canvas_sdk/effects/payment/base.py +355 -0
  73. canvas_sdk/effects/payment/post_claim_payment.py +49 -0
  74. canvas_sdk/effects/send_contact_verification.py +42 -0
  75. canvas_sdk/effects/task/__init__.py +2 -1
  76. canvas_sdk/effects/task/task.py +30 -0
  77. canvas_sdk/effects/validation/__init__.py +3 -0
  78. canvas_sdk/effects/validation/base.py +92 -0
  79. canvas_sdk/events/base.py +15 -0
  80. canvas_sdk/handlers/application.py +7 -7
  81. canvas_sdk/handlers/simple_api/api.py +1 -4
  82. canvas_sdk/handlers/simple_api/websocket.py +1 -4
  83. canvas_sdk/handlers/utils.py +14 -0
  84. canvas_sdk/questionnaires/utils.py +1 -0
  85. canvas_sdk/templates/utils.py +17 -4
  86. canvas_sdk/test_utils/factories/FACTORY_GUIDE.md +362 -0
  87. canvas_sdk/test_utils/factories/__init__.py +115 -0
  88. canvas_sdk/test_utils/factories/calendar.py +24 -0
  89. canvas_sdk/test_utils/factories/claim.py +81 -0
  90. canvas_sdk/test_utils/factories/claim_diagnosis_code.py +16 -0
  91. canvas_sdk/test_utils/factories/coverage.py +17 -0
  92. canvas_sdk/test_utils/factories/imaging.py +74 -0
  93. canvas_sdk/test_utils/factories/lab.py +192 -0
  94. canvas_sdk/test_utils/factories/medication_history.py +75 -0
  95. canvas_sdk/test_utils/factories/note.py +52 -0
  96. canvas_sdk/test_utils/factories/organization.py +50 -0
  97. canvas_sdk/test_utils/factories/practicelocation.py +88 -0
  98. canvas_sdk/test_utils/factories/referral.py +81 -0
  99. canvas_sdk/test_utils/factories/staff.py +111 -0
  100. canvas_sdk/test_utils/factories/task.py +66 -0
  101. canvas_sdk/test_utils/factories/uncategorized_clinical_document.py +48 -0
  102. canvas_sdk/utils/metrics.py +4 -1
  103. canvas_sdk/v1/data/__init__.py +66 -7
  104. canvas_sdk/v1/data/allergy_intolerance.py +5 -11
  105. canvas_sdk/v1/data/appointment.py +18 -4
  106. canvas_sdk/v1/data/assessment.py +2 -12
  107. canvas_sdk/v1/data/banner_alert.py +2 -4
  108. canvas_sdk/v1/data/base.py +53 -14
  109. canvas_sdk/v1/data/billing.py +8 -11
  110. canvas_sdk/v1/data/calendar.py +64 -0
  111. canvas_sdk/v1/data/care_team.py +4 -10
  112. canvas_sdk/v1/data/claim.py +172 -66
  113. canvas_sdk/v1/data/claim_diagnosis_code.py +19 -0
  114. canvas_sdk/v1/data/claim_line_item.py +2 -5
  115. canvas_sdk/v1/data/coding.py +19 -0
  116. canvas_sdk/v1/data/command.py +2 -4
  117. canvas_sdk/v1/data/common.py +10 -0
  118. canvas_sdk/v1/data/compound_medication.py +3 -4
  119. canvas_sdk/v1/data/condition.py +4 -9
  120. canvas_sdk/v1/data/coverage.py +66 -26
  121. canvas_sdk/v1/data/detected_issue.py +20 -20
  122. canvas_sdk/v1/data/device.py +2 -14
  123. canvas_sdk/v1/data/discount.py +2 -5
  124. canvas_sdk/v1/data/encounter.py +44 -0
  125. canvas_sdk/v1/data/facility.py +1 -0
  126. canvas_sdk/v1/data/goal.py +2 -14
  127. canvas_sdk/v1/data/imaging.py +4 -30
  128. canvas_sdk/v1/data/immunization.py +7 -15
  129. canvas_sdk/v1/data/lab.py +12 -65
  130. canvas_sdk/v1/data/line_item_transaction.py +2 -5
  131. canvas_sdk/v1/data/medication.py +3 -8
  132. canvas_sdk/v1/data/medication_history.py +142 -0
  133. canvas_sdk/v1/data/medication_statement.py +41 -0
  134. canvas_sdk/v1/data/message.py +4 -8
  135. canvas_sdk/v1/data/note.py +37 -38
  136. canvas_sdk/v1/data/observation.py +9 -36
  137. canvas_sdk/v1/data/organization.py +70 -9
  138. canvas_sdk/v1/data/patient.py +8 -12
  139. canvas_sdk/v1/data/patient_consent.py +4 -14
  140. canvas_sdk/v1/data/payment_collection.py +2 -5
  141. canvas_sdk/v1/data/posting.py +3 -9
  142. canvas_sdk/v1/data/practicelocation.py +66 -7
  143. canvas_sdk/v1/data/protocol_override.py +3 -4
  144. canvas_sdk/v1/data/protocol_result.py +3 -3
  145. canvas_sdk/v1/data/questionnaire.py +10 -26
  146. canvas_sdk/v1/data/reason_for_visit.py +2 -6
  147. canvas_sdk/v1/data/referral.py +41 -17
  148. canvas_sdk/v1/data/staff.py +34 -26
  149. canvas_sdk/v1/data/stop_medication_event.py +27 -0
  150. canvas_sdk/v1/data/task.py +30 -11
  151. canvas_sdk/v1/data/team.py +2 -4
  152. canvas_sdk/v1/data/uncategorized_clinical_document.py +84 -0
  153. canvas_sdk/v1/data/user.py +14 -0
  154. canvas_sdk/v1/data/utils.py +5 -0
  155. canvas_sdk/value_set/v2026/__init__.py +1 -0
  156. canvas_sdk/value_set/v2026/adverse_event.py +157 -0
  157. canvas_sdk/value_set/v2026/allergy.py +116 -0
  158. canvas_sdk/value_set/v2026/assessment.py +466 -0
  159. canvas_sdk/value_set/v2026/communication.py +496 -0
  160. canvas_sdk/value_set/v2026/condition.py +52934 -0
  161. canvas_sdk/value_set/v2026/device.py +315 -0
  162. canvas_sdk/value_set/v2026/diagnostic_study.py +5243 -0
  163. canvas_sdk/value_set/v2026/encounter.py +2714 -0
  164. canvas_sdk/value_set/v2026/immunization.py +297 -0
  165. canvas_sdk/value_set/v2026/individual_characteristic.py +339 -0
  166. canvas_sdk/value_set/v2026/intervention.py +1703 -0
  167. canvas_sdk/value_set/v2026/laboratory_test.py +1831 -0
  168. canvas_sdk/value_set/v2026/medication.py +8218 -0
  169. canvas_sdk/value_set/v2026/no_qdm_category_assigned.py +26493 -0
  170. canvas_sdk/value_set/v2026/physical_exam.py +342 -0
  171. canvas_sdk/value_set/v2026/procedure.py +27869 -0
  172. canvas_sdk/value_set/v2026/symptom.py +625 -0
  173. logger/logger.py +30 -31
  174. logger/logstash.py +282 -0
  175. logger/pubsub.py +26 -0
  176. plugin_runner/allowed-module-imports.json +940 -9
  177. plugin_runner/generate_allowed_imports.py +1 -0
  178. plugin_runner/installation.py +2 -2
  179. plugin_runner/plugin_runner.py +21 -24
  180. plugin_runner/sandbox.py +34 -0
  181. protobufs/canvas_generated/messages/effects.proto +65 -0
  182. protobufs/canvas_generated/messages/events.proto +150 -51
  183. settings.py +27 -11
  184. canvas_sdk/effects/calendar/create_event.py +0 -43
  185. {canvas-0.63.0.dist-info → canvas-0.89.0.dist-info}/entry_points.txt +0 -0
@@ -48,6 +48,8 @@ enum EventType {
48
48
  MEDICATION_LIST_ITEM_CREATED = 40;
49
49
  MEDICATION_LIST_ITEM_UPDATED = 41;
50
50
  MESSAGE_CREATED = 42;
51
+ MESSAGE_TRANSMISSION_CREATED = 53;
52
+ MESSAGE_TRANSMISSION_UPDATED = 56;
51
53
  PATIENT_CREATED = 43;
52
54
  PATIENT_UPDATED = 44;
53
55
  PRESCRIPTION_CREATED = 45;
@@ -96,6 +98,8 @@ enum EventType {
96
98
 
97
99
  TASK_CLOSED = 86;
98
100
  TASK_COMPLETED = 87;
101
+ TASK_METADATA_CREATED = 96;
102
+ TASK_METADATA_UPDATED = 97;
99
103
 
100
104
  DETECTED_ISSUE_EVIDENCE_CREATED = 88;
101
105
  DETECTED_ISSUE_EVIDENCE_UPDATED = 89;
@@ -106,6 +110,12 @@ enum EventType {
106
110
  COMPOUND_MEDICATION_CREATED = 92;
107
111
  COMPOUND_MEDICATION_UPDATED = 93;
108
112
 
113
+ APPOINTMENT_LABEL_ADDED = 94;
114
+ APPOINTMENT_LABEL_REMOVED = 95;
115
+
116
+ CLAIM_CREATED = 98;
117
+ CLAIM_UPDATED = 99;
118
+
109
119
  // General Command Events
110
120
 
111
121
  PRE_COMMAND_ORIGINATE = 100;
@@ -175,6 +185,9 @@ enum EventType {
175
185
  ADJUST_PRESCRIPTION__CHANGE_MEDICATION_TO__POST_SEARCH = 2019;
176
186
  ADJUST_PRESCRIPTION__SUPERVISING_PROVIDER__PRE_SEARCH = 2021;
177
187
  ADJUST_PRESCRIPTION__SUPERVISING_PROVIDER__POST_SEARCH = 2022;
188
+ ADJUST_PRESCRIPTION__PRESCRIBER__PRE_SEARCH = 2025;
189
+ ADJUST_PRESCRIPTION__PRESCRIBER__POST_SEARCH = 2026;
190
+ ADJUST_PRESCRIPTION_COMMAND__POST_VALIDATION = 2027;
178
191
 
179
192
  // ADJUST_PROTOCOL_COMMAND__PRE_ORIGINATE = 3000;
180
193
  // ADJUST_PROTOCOL_COMMAND__POST_ORIGINATE = 3001;
@@ -205,6 +218,7 @@ enum EventType {
205
218
  ALLERGY_COMMAND__AVAILABLE_ACTIONS = 4015;
206
219
  ALLERGY__ALLERGY__PRE_SEARCH = 4012;
207
220
  ALLERGY__ALLERGY__POST_SEARCH = 4013;
221
+ ALLERGY_COMMAND__POST_VALIDATION = 4016;
208
222
 
209
223
  // APPROVE_CHANGE_COMMAND__PRE_ORIGINATE = 5000;
210
224
  // APPROVE_CHANGE_COMMAND__POST_ORIGINATE = 5001;
@@ -248,6 +262,7 @@ enum EventType {
248
262
  ASSESS_COMMAND__AVAILABLE_ACTIONS = 7015;
249
263
  ASSESS__CONDITION__POST_SEARCH = 7012;
250
264
  ASSESS__CONDITION__PRE_SEARCH = 7013;
265
+ ASSESS_COMMAND__POST_VALIDATION = 7016;
251
266
 
252
267
  CANCEL_PRESCRIPTION_COMMAND__PRE_ORIGINATE = 8000;
253
268
  CANCEL_PRESCRIPTION_COMMAND__POST_ORIGINATE = 8001;
@@ -265,6 +280,7 @@ enum EventType {
265
280
  CANCEL_PRESCRIPTION_COMMAND__AVAILABLE_ACTIONS = 8015;
266
281
  CANCEL_PRESCRIPTION__SELECTED_PRESCRIPTION__PRE_SEARCH = 8012;
267
282
  CANCEL_PRESCRIPTION__SELECTED_PRESCRIPTION__POST_SEARCH = 8013;
283
+ CANCEL_PRESCRIPTION_COMMAND__POST_VALIDATION = 8016;
268
284
 
269
285
  CHART_SECTION_REVIEW_COMMAND__PRE_ORIGINATE = 9000;
270
286
  CHART_SECTION_REVIEW_COMMAND__POST_ORIGINATE = 9001;
@@ -273,6 +289,7 @@ enum EventType {
273
289
  CHART_SECTION_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 9004;
274
290
  CHART_SECTION_REVIEW_COMMAND__POST_EXECUTE_ACTION = 9005;
275
291
  CHART_SECTION_REVIEW_COMMAND__AVAILABLE_ACTIONS = 9006;
292
+ CHART_SECTION_REVIEW_COMMAND__POST_VALIDATION = 9007;
276
293
 
277
294
 
278
295
  CLIPBOARD_COMMAND__PRE_ORIGINATE = 53000;
@@ -289,6 +306,7 @@ enum EventType {
289
306
  CLIPBOARD_COMMAND__POST_EXECUTE_ACTION = 56011;
290
307
  CLIPBOARD_COMMAND__POST_INSERTED_INTO_NOTE = 56012;
291
308
  CLIPBOARD_COMMAND__AVAILABLE_ACTIONS = 56013;
309
+ CLIPBOARD_COMMAND__POST_VALIDATION = 56014;
292
310
 
293
311
 
294
312
  CLOSE_GOAL_COMMAND__PRE_ORIGINATE = 10000;
@@ -307,6 +325,7 @@ enum EventType {
307
325
  CLOSE_GOAL_COMMAND__AVAILABLE_ACTIONS = 10015;
308
326
  CLOSE_GOAL__GOAL_ID__PRE_SEARCH = 10012;
309
327
  CLOSE_GOAL__GOAL_ID__POST_SEARCH = 10013;
328
+ CLOSE_GOAL_COMMAND__POST_VALIDATION = 10016;
310
329
 
311
330
  // DENY_CHANGE_COMMAND__PRE_ORIGINATE = 11000;
312
331
  // DENY_CHANGE_COMMAND__POST_ORIGINATE = 11001;
@@ -363,6 +382,7 @@ enum EventType {
363
382
  DIAGNOSE_COMMAND__AVAILABLE_ACTIONS = 14015;
364
383
  DIAGNOSE__DIAGNOSE__POST_SEARCH = 14012;
365
384
  DIAGNOSE__DIAGNOSE__PRE_SEARCH = 14013;
385
+ DIAGNOSE_COMMAND__POST_VALIDATION = 14016;
366
386
 
367
387
  EDUCATIONAL_MATERIAL_COMMAND__PRE_ORIGINATE = 15000;
368
388
  EDUCATIONAL_MATERIAL_COMMAND__POST_ORIGINATE = 15001;
@@ -382,6 +402,7 @@ enum EventType {
382
402
  EDUCATIONAL_MATERIAL__TITLE__POST_SEARCH = 15013;
383
403
  EDUCATIONAL_MATERIAL__LANGUAGE__PRE_SEARCH = 15014;
384
404
  EDUCATIONAL_MATERIAL__LANGUAGE__POST_SEARCH = 15015;
405
+ EDUCATIONAL_MATERIAL_COMMAND__POST_VALIDATION = 15018;
385
406
 
386
407
 
387
408
  FAMILY_HISTORY_COMMAND__PRE_ORIGINATE = 16000;
@@ -402,6 +423,7 @@ enum EventType {
402
423
  FAMILY_HISTORY__FAMILY_HISTORY__POST_SEARCH = 16013;
403
424
  FAMILY_HISTORY__RELATIVE__PRE_SEARCH = 16014;
404
425
  FAMILY_HISTORY__RELATIVE__POST_SEARCH = 16015;
426
+ FAMILY_HISTORY_COMMAND__POST_VALIDATION = 16018;
405
427
 
406
428
 
407
429
  FOLLOW_UP_COMMAND__PRE_ORIGINATE = 17000;
@@ -422,6 +444,7 @@ enum EventType {
422
444
  FOLLOW_UP__CODING__POST_SEARCH = 17013;
423
445
  FOLLOW_UP__NOTE_TYPE__PRE_SEARCH = 17014;
424
446
  FOLLOW_UP__NOTE_TYPE__POST_SEARCH = 17015;
447
+ FOLLOW_UP_COMMAND__POST_VALIDATION = 17018;
425
448
 
426
449
  GOAL_COMMAND__PRE_ORIGINATE = 18000;
427
450
  GOAL_COMMAND__POST_ORIGINATE = 18001;
@@ -437,6 +460,7 @@ enum EventType {
437
460
  GOAL_COMMAND__POST_EXECUTE_ACTION = 18011;
438
461
  GOAL_COMMAND__POST_INSERTED_INTO_NOTE = 18014;
439
462
  GOAL_COMMAND__AVAILABLE_ACTIONS = 18015;
463
+ GOAL_COMMAND__POST_VALIDATION = 18016;
440
464
 
441
465
  HISTORY_OF_PRESENT_ILLNESS_COMMAND__PRE_ORIGINATE = 19000;
442
466
  HISTORY_OF_PRESENT_ILLNESS_COMMAND__POST_ORIGINATE = 19001;
@@ -452,6 +476,7 @@ enum EventType {
452
476
  HISTORY_OF_PRESENT_ILLNESS_COMMAND__POST_EXECUTE_ACTION = 19011;
453
477
  HISTORY_OF_PRESENT_ILLNESS_COMMAND__POST_INSERTED_INTO_NOTE = 19012;
454
478
  HISTORY_OF_PRESENT_ILLNESS_COMMAND__AVAILABLE_ACTIONS = 19013;
479
+ HISTORY_OF_PRESENT_ILLNESS_COMMAND__POST_VALIDATION = 19014;
455
480
 
456
481
  IMAGING_ORDER_COMMAND__PRE_ORIGINATE = 20000;
457
482
  IMAGING_ORDER_COMMAND__POST_ORIGINATE = 20001;
@@ -475,19 +500,24 @@ enum EventType {
475
500
  IMAGING_ORDER__IMAGING_CENTER__POST_SEARCH = 20017;
476
501
  IMAGING_ORDER__ORDERING_PROVIDER__PRE_SEARCH = 20018;
477
502
  IMAGING_ORDER__ORDERING_PROVIDER__POST_SEARCH = 20019;
478
-
479
- // IMAGING_REVIEW_COMMAND__PRE_ORIGINATE = 21000;
480
- // IMAGING_REVIEW_COMMAND__POST_ORIGINATE = 21001;
481
- // IMAGING_REVIEW_COMMAND__PRE_UPDATE = 21002;
482
- // IMAGING_REVIEW_COMMAND__POST_UPDATE = 21003;
483
- // IMAGING_REVIEW_COMMAND__PRE_COMMIT = 21004;
484
- // IMAGING_REVIEW_COMMAND__POST_COMMIT = 21005;
485
- // IMAGING_REVIEW_COMMAND__PRE_DELETE = 21006;
486
- // IMAGING_REVIEW_COMMAND__POST_DELETE = 21007;
487
- // IMAGING_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 21008;
488
- // IMAGING_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 21009;
489
- // IMAGING_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 21010;
490
- // IMAGING_REVIEW_COMMAND__POST_EXECUTE_ACTION = 21011;
503
+ IMAGING_ORDER_COMMAND__POST_VALIDATION = 20022;
504
+
505
+ IMAGING_REVIEW_COMMAND__PRE_ORIGINATE = 21000;
506
+ IMAGING_REVIEW_COMMAND__POST_ORIGINATE = 21001;
507
+ IMAGING_REVIEW_COMMAND__PRE_UPDATE = 21002;
508
+ IMAGING_REVIEW_COMMAND__POST_UPDATE = 21003;
509
+ IMAGING_REVIEW_COMMAND__PRE_COMMIT = 21004;
510
+ IMAGING_REVIEW_COMMAND__POST_COMMIT = 21005;
511
+ IMAGING_REVIEW_COMMAND__PRE_DELETE = 21006;
512
+ IMAGING_REVIEW_COMMAND__POST_DELETE = 21007;
513
+ IMAGING_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 21008;
514
+ IMAGING_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 21009;
515
+ IMAGING_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 21010;
516
+ IMAGING_REVIEW_COMMAND__POST_EXECUTE_ACTION = 21011;
517
+ IMAGING_REVIEW__REPORT__PRE_SEARCH = 21012;
518
+ IMAGING_REVIEW__REPORT__POST_SEARCH = 21013;
519
+ IMAGING_REVIEW__COMMUNICATION_METHOD__PRE_SEARCH = 21014;
520
+ IMAGING_REVIEW__COMMUNICATION_METHOD__POST_SEARCH = 21015;
491
521
 
492
522
  IMMUNIZATION_STATEMENT_COMMAND__PRE_ORIGINATE = 22000;
493
523
  IMMUNIZATION_STATEMENT_COMMAND__POST_ORIGINATE = 22001;
@@ -505,6 +535,7 @@ enum EventType {
505
535
  IMMUNIZATION_STATEMENT_COMMAND__AVAILABLE_ACTIONS = 22015;
506
536
  IMMUNIZATION_STATEMENT__STATEMENT__PRE_SEARCH = 22012;
507
537
  IMMUNIZATION_STATEMENT__STATEMENT__POST_SEARCH = 22013;
538
+ IMMUNIZATION_STATEMENT_COMMAND__POST_VALIDATION = 22016;
508
539
 
509
540
 
510
541
  IMMUNIZE_COMMAND__PRE_ORIGINATE = 23000;
@@ -527,6 +558,7 @@ enum EventType {
527
558
  IMMUNIZE__LOT_NUMBER__POST_SEARCH = 23015;
528
559
  IMMUNIZE__GIVEN_BY__PRE_SEARCH = 23016;
529
560
  IMMUNIZE__GIVEN_BY__POST_SEARCH = 23017;
561
+ IMMUNIZE_COMMAND__POST_VALIDATION = 23020;
530
562
 
531
563
  INSTRUCT_COMMAND__PRE_ORIGINATE = 24000;
532
564
  INSTRUCT_COMMAND__POST_ORIGINATE = 24001;
@@ -544,6 +576,7 @@ enum EventType {
544
576
  INSTRUCT_COMMAND__AVAILABLE_ACTIONS = 24015;
545
577
  INSTRUCT__INSTRUCT__PRE_SEARCH = 24012;
546
578
  INSTRUCT__INSTRUCT__POST_SEARCH = 24013;
579
+ INSTRUCT_COMMAND__POST_VALIDATION = 24016;
547
580
 
548
581
  LAB_ORDER_COMMAND__PRE_ORIGINATE = 25000;
549
582
  LAB_ORDER_COMMAND__POST_ORIGINATE = 25001;
@@ -567,19 +600,24 @@ enum EventType {
567
600
  LAB_ORDER__ORDERING_PROVIDER__POST_SEARCH = 25017;
568
601
  LAB_ORDER__DIAGNOSIS__PRE_SEARCH = 25018;
569
602
  LAB_ORDER__DIAGNOSIS__POST_SEARCH = 25019;
570
-
571
- // LAB_REVIEW_COMMAND__PRE_ORIGINATE = 26000;
572
- // LAB_REVIEW_COMMAND__POST_ORIGINATE = 26001;
573
- // LAB_REVIEW_COMMAND__PRE_UPDATE = 26002;
574
- // LAB_REVIEW_COMMAND__POST_UPDATE = 26003;
575
- // LAB_REVIEW_COMMAND__PRE_COMMIT = 26004;
576
- // LAB_REVIEW_COMMAND__POST_COMMIT = 26005;
577
- // LAB_REVIEW_COMMAND__PRE_DELETE = 26006;
578
- // LAB_REVIEW_COMMAND__POST_DELETE = 26007;
579
- // LAB_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 26008;
580
- // LAB_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 26009;
581
- // LAB_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 26010;
582
- // LAB_REVIEW_COMMAND__POST_EXECUTE_ACTION = 26011;
603
+ LAB_ORDER_COMMAND__POST_VALIDATION = 25022;
604
+
605
+ LAB_REVIEW_COMMAND__PRE_ORIGINATE = 26000;
606
+ LAB_REVIEW_COMMAND__POST_ORIGINATE = 26001;
607
+ LAB_REVIEW_COMMAND__PRE_UPDATE = 26002;
608
+ LAB_REVIEW_COMMAND__POST_UPDATE = 26003;
609
+ LAB_REVIEW_COMMAND__PRE_COMMIT = 26004;
610
+ LAB_REVIEW_COMMAND__POST_COMMIT = 26005;
611
+ LAB_REVIEW_COMMAND__PRE_DELETE = 26006;
612
+ LAB_REVIEW_COMMAND__POST_DELETE = 26007;
613
+ LAB_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 26008;
614
+ LAB_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 26009;
615
+ LAB_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 26010;
616
+ LAB_REVIEW_COMMAND__POST_EXECUTE_ACTION = 26011;
617
+ LAB_REVIEW__REPORT__PRE_SEARCH = 26012;
618
+ LAB_REVIEW__REPORT__POST_SEARCH = 26013;
619
+ LAB_REVIEW__COMMUNICATION_METHOD__PRE_SEARCH = 26014;
620
+ LAB_REVIEW__COMMUNICATION_METHOD__POST_SEARCH = 26015;
583
621
 
584
622
  MEDICAL_HISTORY_COMMAND__PRE_ORIGINATE = 27000;
585
623
  MEDICAL_HISTORY_COMMAND__POST_ORIGINATE = 27001;
@@ -601,6 +639,7 @@ enum EventType {
601
639
  MEDICAL_HISTORY__APPROXIMATE_START_DATE__POST_SEARCH = 27015;
602
640
  MEDICAL_HISTORY__APPROXIMATE_END_DATE__PRE_SEARCH = 27016;
603
641
  MEDICAL_HISTORY__APPROXIMATE_END_DATE__POST_SEARCH = 27017;
642
+ MEDICAL_HISTORY_COMMAND__POST_VALIDATION = 27020;
604
643
 
605
644
  MEDICATION_STATEMENT_COMMAND__PRE_ORIGINATE = 28000;
606
645
  MEDICATION_STATEMENT_COMMAND__POST_ORIGINATE = 28001;
@@ -616,6 +655,7 @@ enum EventType {
616
655
  MEDICATION_STATEMENT_COMMAND__POST_EXECUTE_ACTION = 28011;
617
656
  MEDICATION_STATEMENT_COMMAND__POST_INSERTED_INTO_NOTE = 28012;
618
657
  MEDICATION_STATEMENT_COMMAND__AVAILABLE_ACTIONS = 28013;
658
+ MEDICATION_STATEMENT_COMMAND__POST_VALIDATION = 28014;
619
659
 
620
660
  PERFORM_COMMAND__PRE_ORIGINATE = 29000;
621
661
  PERFORM_COMMAND__POST_ORIGINATE = 29001;
@@ -633,6 +673,7 @@ enum EventType {
633
673
  PERFORM_COMMAND__AVAILABLE_ACTIONS = 29015;
634
674
  PERFORM__PERFORM__PRE_SEARCH = 29012;
635
675
  PERFORM__PERFORM__POST_SEARCH = 29013;
676
+ PERFORM_COMMAND__POST_VALIDATION = 29016;
636
677
 
637
678
  PHYSICAL_EXAM_COMMAND__PRE_ORIGINATE = 30000;
638
679
  PHYSICAL_EXAM_COMMAND__POST_ORIGINATE = 30001;
@@ -650,6 +691,7 @@ enum EventType {
650
691
  PHYSICAL_EXAM_COMMAND__AVAILABLE_ACTIONS = 30015;
651
692
  PHYSICAL_EXAM__QUESTIONNAIRE__PRE_SEARCH = 30012;
652
693
  PHYSICAL_EXAM__QUESTIONNAIRE__POST_SEARCH = 30013;
694
+ PHYSICAL_EXAM_COMMAND__POST_VALIDATION = 30016;
653
695
 
654
696
  PLAN_COMMAND__PRE_ORIGINATE = 31000;
655
697
  PLAN_COMMAND__POST_ORIGINATE = 31001;
@@ -665,6 +707,7 @@ enum EventType {
665
707
  PLAN_COMMAND__POST_EXECUTE_ACTION = 31011;
666
708
  PLAN_COMMAND__POST_INSERTED_INTO_NOTE = 31012;
667
709
  PLAN_COMMAND__AVAILABLE_ACTIONS = 31013;
710
+ PLAN_COMMAND__POST_VALIDATION = 31014;
668
711
 
669
712
  // POC_LAB_TEST_COMMAND__PRE_ORIGINATE = 32000;
670
713
  // POC_LAB_TEST_COMMAND__POST_ORIGINATE = 32001;
@@ -701,6 +744,9 @@ enum EventType {
701
744
  PRESCRIBE__PHARMACY__POST_SEARCH = 33017;
702
745
  PRESCRIBE__SUPERVISING_PROVIDER__POST_SEARCH = 33019;
703
746
  PRESCRIBE__SUPERVISING_PROVIDER__PRE_SEARCH = 33020;
747
+ PRESCRIBE__PRESCRIBER__PRE_SEARCH = 33023;
748
+ PRESCRIBE__PRESCRIBER__POST_SEARCH = 33024;
749
+ PRESCRIBE_COMMAND__POST_VALIDATION = 33025;
704
750
 
705
751
  QUESTIONNAIRE_COMMAND__PRE_ORIGINATE = 34000;
706
752
  QUESTIONNAIRE_COMMAND__POST_ORIGINATE = 34001;
@@ -718,6 +764,7 @@ enum EventType {
718
764
  QUESTIONNAIRE_COMMAND__AVAILABLE_ACTIONS = 34015;
719
765
  QUESTIONNAIRE__QUESTIONNAIRE__POST_SEARCH = 34012;
720
766
  QUESTIONNAIRE__QUESTIONNAIRE__PRE_SEARCH = 34013;
767
+ QUESTIONNAIRE_COMMAND__POST_VALIDATION = 34016;
721
768
 
722
769
  REASON_FOR_VISIT_COMMAND__PRE_ORIGINATE = 35000;
723
770
  REASON_FOR_VISIT_COMMAND__POST_ORIGINATE = 35001;
@@ -735,6 +782,7 @@ enum EventType {
735
782
  REASON_FOR_VISIT_COMMAND__AVAILABLE_ACTIONS = 35015;
736
783
  REASON_FOR_VISIT__CODING__POST_SEARCH = 35012;
737
784
  REASON_FOR_VISIT__CODING__PRE_SEARCH = 35013;
785
+ REASON_FOR_VISIT_COMMAND__POST_VALIDATION = 35016;
738
786
 
739
787
  REFER_COMMAND__PRE_ORIGINATE = 36000;
740
788
  REFER_COMMAND__POST_ORIGINATE = 36001;
@@ -758,6 +806,7 @@ enum EventType {
758
806
  REFER__DOCUMENTS_TO_INCLUDE__PRE_SEARCH = 36017;
759
807
  REFER__LINKED_ITEMS__POST_SEARCH = 36018;
760
808
  REFER__LINKED_ITEMS_INCLUDE__PRE_SEARCH = 36019;
809
+ REFER_COMMAND__POST_VALIDATION = 36022;
761
810
 
762
811
  // REFERENCE_COMMAND__PRE_ORIGINATE = 37000;
763
812
  // REFERENCE_COMMAND__POST_ORIGINATE = 37001;
@@ -772,18 +821,23 @@ enum EventType {
772
821
  // REFERENCE_COMMAND__PRE_EXECUTE_ACTION = 37010;
773
822
  // REFERENCE_COMMAND__POST_EXECUTE_ACTION = 37011;
774
823
 
775
- // REFERRAL_REVIEW_COMMAND__PRE_ORIGINATE = 38000;
776
- // REFERRAL_REVIEW_COMMAND__POST_ORIGINATE = 38001;
777
- // REFERRAL_REVIEW_COMMAND__PRE_UPDATE = 38002;
778
- // REFERRAL_REVIEW_COMMAND__POST_UPDATE = 38003;
779
- // REFERRAL_REVIEW_COMMAND__PRE_COMMIT = 38004;
780
- // REFERRAL_REVIEW_COMMAND__POST_COMMIT = 38005;
781
- // REFERRAL_REVIEW_COMMAND__PRE_DELETE = 38006;
782
- // REFERRAL_REVIEW_COMMAND__POST_DELETE = 38007;
783
- // REFERRAL_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 38008;
784
- // REFERRAL_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 38009;
785
- // REFERRAL_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 38010;
786
- // REFERRAL_REVIEW_COMMAND__POST_EXECUTE_ACTION = 38011;
824
+ REFERRAL_REVIEW_COMMAND__PRE_ORIGINATE = 38000;
825
+ REFERRAL_REVIEW_COMMAND__POST_ORIGINATE = 38001;
826
+ REFERRAL_REVIEW_COMMAND__PRE_UPDATE = 38002;
827
+ REFERRAL_REVIEW_COMMAND__POST_UPDATE = 38003;
828
+ REFERRAL_REVIEW_COMMAND__PRE_COMMIT = 38004;
829
+ REFERRAL_REVIEW_COMMAND__POST_COMMIT = 38005;
830
+ REFERRAL_REVIEW_COMMAND__PRE_DELETE = 38006;
831
+ REFERRAL_REVIEW_COMMAND__POST_DELETE = 38007;
832
+ REFERRAL_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 38008;
833
+ REFERRAL_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 38009;
834
+ REFERRAL_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 38010;
835
+ REFERRAL_REVIEW_COMMAND__POST_EXECUTE_ACTION = 38011;
836
+ REFERRAL_REVIEW__REPORT__PRE_SEARCH = 38012;
837
+ REFERRAL_REVIEW__REPORT__POST_SEARCH = 38013;
838
+ REFERRAL_REVIEW__COMMUNICATION_METHOD__PRE_SEARCH = 38014;
839
+ REFERRAL_REVIEW__COMMUNICATION_METHOD__POST_SEARCH = 38015;
840
+
787
841
 
788
842
  REFILL_COMMAND__PRE_ORIGINATE = 39000;
789
843
  REFILL_COMMAND__POST_ORIGINATE = 39001;
@@ -807,6 +861,9 @@ enum EventType {
807
861
  REFILL__PHARMACY__POST_SEARCH = 39017;
808
862
  REFILL__SUPERVISING_PROVIDER__PRE_SEARCH = 39019;
809
863
  REFILL__SUPERVISING_PROVIDER__POST_SEARCH = 39020;
864
+ REFILL__PRESCRIBER__PRE_SEARCH = 39023;
865
+ REFILL__PRESCRIBER__POST_SEARCH = 39024;
866
+ REFILL_COMMAND__POST_VALIDATION = 39025;
810
867
 
811
868
  REMOVE_ALLERGY_COMMAND__PRE_ORIGINATE = 40000;
812
869
  REMOVE_ALLERGY_COMMAND__POST_ORIGINATE = 40001;
@@ -824,6 +881,7 @@ enum EventType {
824
881
  REMOVE_ALLERGY_COMMAND__AVAILABLE_ACTIONS = 40015;
825
882
  REMOVE_ALLERGY__ALLERGY__PRE_SEARCH = 40012;
826
883
  REMOVE_ALLERGY__ALLERGY__POST_SEARCH = 40013;
884
+ REMOVE_ALLERGY_COMMAND__POST_VALIDATION = 40016;
827
885
 
828
886
  RESOLVE_CONDITION_COMMAND__PRE_ORIGINATE = 41000;
829
887
  RESOLVE_CONDITION_COMMAND__POST_ORIGINATE = 41001;
@@ -841,6 +899,7 @@ enum EventType {
841
899
  RESOLVE_CONDITION_COMMAND__AVAILABLE_ACTIONS = 41015;
842
900
  RESOLVE_CONDITION__CONDITION__PRE_SEARCH = 41012;
843
901
  RESOLVE_CONDITION__CONDITION__POST_SEARCH = 41013;
902
+ RESOLVE_CONDITION_COMMAND__POST_VALIDATION = 41016;
844
903
 
845
904
  ROS_COMMAND__PRE_ORIGINATE = 42000;
846
905
  ROS_COMMAND__POST_ORIGINATE = 42001;
@@ -858,6 +917,7 @@ enum EventType {
858
917
  ROS_COMMAND__AVAILABLE_ACTIONS = 42015;
859
918
  ROS__QUESTIONNAIRE__PRE_SEARCH = 42012;
860
919
  ROS__QUESTIONNAIRE__POST_SEARCH = 42013;
920
+ ROS_COMMAND__POST_VALIDATION = 42016;
861
921
 
862
922
 
863
923
  SNOOZE_PROTOCOL_COMMAND__PRE_ORIGINATE = 43000;
@@ -876,6 +936,7 @@ enum EventType {
876
936
  SNOOZE_PROTOCOL_COMMAND__AVAILABLE_ACTIONS = 43015;
877
937
  SNOOZE_PROTOCOL__PROTOCOL__PRE_SEARCH = 43012;
878
938
  SNOOZE_PROTOCOL__PROTOCOL__POST_SEARCH = 43013;
939
+ SNOOZE_PROTOCOL_COMMAND__POST_VALIDATION = 43016;
879
940
 
880
941
  STOP_MEDICATION_COMMAND__PRE_ORIGINATE = 44000;
881
942
  STOP_MEDICATION_COMMAND__POST_ORIGINATE = 44001;
@@ -893,6 +954,7 @@ enum EventType {
893
954
  STOP_MEDICATION_COMMAND__AVAILABLE_ACTIONS = 44012;
894
955
  STOP_MEDICATION__MEDICATION__PRE_SEARCH = 44013;
895
956
  STOP_MEDICATION__MEDICATION__POST_SEARCH = 44014;
957
+ STOP_MEDICATION_COMMAND__POST_VALIDATION = 44016;
896
958
 
897
959
  STRUCTURED_ASSESSMENT_COMMAND__PRE_ORIGINATE = 45000;
898
960
  STRUCTURED_ASSESSMENT_COMMAND__POST_ORIGINATE = 45001;
@@ -910,6 +972,7 @@ enum EventType {
910
972
  STRUCTURED_ASSESSMENT_COMMAND__AVAILABLE_ACTIONS = 45015;
911
973
  STRUCTURED_ASSESSMENT__QUESTIONNAIRE__PRE_SEARCH = 45012;
912
974
  STRUCTURED_ASSESSMENT__QUESTIONNAIRE__POST_SEARCH = 45013;
975
+ STRUCTURED_ASSESSMENT_COMMAND__POST_VALIDATION = 45016;
913
976
 
914
977
  SURGICAL_HISTORY_COMMAND__PRE_ORIGINATE = 46000;
915
978
  SURGICAL_HISTORY_COMMAND__POST_ORIGINATE = 46001;
@@ -927,6 +990,7 @@ enum EventType {
927
990
  SURGICAL_HISTORY_COMMAND__AVAILABLE_ACTIONS = 46015;
928
991
  SURGICAL_HISTORY__PAST_SURGICAL_HISTORY__PRE_SEARCH = 46012;
929
992
  SURGICAL_HISTORY__PAST_SURGICAL_HISTORY__POST_SEARCH = 46013;
993
+ SURGICAL_HISTORY_COMMAND__POST_VALIDATION = 46016;
930
994
 
931
995
  TASK_COMMAND__PRE_ORIGINATE = 47000;
932
996
  TASK_COMMAND__POST_ORIGINATE = 47001;
@@ -946,19 +1010,24 @@ enum EventType {
946
1010
  TASK__ASSIGN_TO__POST_SEARCH = 47013;
947
1011
  TASK__LABELS__PRE_SEARCH = 47014;
948
1012
  TASK__LABELS__POST_SEARCH = 47015;
949
-
950
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_ORIGINATE = 48000;
951
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_ORIGINATE = 48001;
952
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_UPDATE = 48002;
953
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_UPDATE = 48003;
954
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_COMMIT = 48004;
955
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_COMMIT = 48005;
956
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_DELETE = 48006;
957
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_DELETE = 48007;
958
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 48008;
959
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 48009;
960
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 48010;
961
- // UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_EXECUTE_ACTION = 48011;
1013
+ TASK_COMMAND__POST_VALIDATION = 47018;
1014
+
1015
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_ORIGINATE = 48000;
1016
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_ORIGINATE = 48001;
1017
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_UPDATE = 48002;
1018
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_UPDATE = 48003;
1019
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_COMMIT = 48004;
1020
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_COMMIT = 48005;
1021
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_DELETE = 48006;
1022
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_DELETE = 48007;
1023
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_ENTER_IN_ERROR = 48008;
1024
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_ENTER_IN_ERROR = 48009;
1025
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__PRE_EXECUTE_ACTION = 48010;
1026
+ UNCATEGORIZED_DOCUMENT_REVIEW_COMMAND__POST_EXECUTE_ACTION = 48011;
1027
+ UNCATEGORIZED_DOCUMENT_REVIEW__REPORT__PRE_SEARCH = 48012;
1028
+ UNCATEGORIZED_DOCUMENT_REVIEW__REPORT__POST_SEARCH = 48013;
1029
+ UNCATEGORIZED_DOCUMENT_REVIEW__COMMUNICATION_METHOD__PRE_SEARCH = 48014;
1030
+ UNCATEGORIZED_DOCUMENT_REVIEW__COMMUNICATION_METHOD__POST_SEARCH = 48015;
962
1031
 
963
1032
  UPDATE_DIAGNOSIS_COMMAND__PRE_ORIGINATE = 49000;
964
1033
  UPDATE_DIAGNOSIS_COMMAND__POST_ORIGINATE = 49001;
@@ -978,6 +1047,7 @@ enum EventType {
978
1047
  UPDATE_DIAGNOSIS__CONDITION__POST_SEARCH = 49013;
979
1048
  UPDATE_DIAGNOSIS__NEW_CONDITION__PRE_SEARCH = 49014;
980
1049
  UPDATE_DIAGNOSIS__NEW_CONDITION__POST_SEARCH = 49015;
1050
+ UPDATE_DIAGNOSIS_COMMAND__POST_VALIDATION = 49018;
981
1051
 
982
1052
  UPDATE_GOAL_COMMAND__PRE_ORIGINATE = 50000;
983
1053
  UPDATE_GOAL_COMMAND__POST_ORIGINATE = 50001;
@@ -995,6 +1065,7 @@ enum EventType {
995
1065
  UPDATE_GOAL_COMMAND__AVAILABLE_ACTIONS = 50015;
996
1066
  UPDATE_GOAL__GOAL_STATEMENT__PRE_SEARCH = 50013;
997
1067
  UPDATE_GOAL__GOAL_STATEMENT__POST_SEARCH = 50014;
1068
+ UPDATE_GOAL_COMMAND__POST_VALIDATION = 50016;
998
1069
 
999
1070
  // VISUAL_EXAM_FINDING_COMMAND__PRE_ORIGINATE = 51000;
1000
1071
  // VISUAL_EXAM_FINDING_COMMAND__POST_ORIGINATE = 51001;
@@ -1023,6 +1094,7 @@ enum EventType {
1023
1094
  VITALS_COMMAND__POST_EXECUTE_ACTION = 52011;
1024
1095
  VITALS_COMMAND__POST_INSERTED_INTO_NOTE = 52012;
1025
1096
  VITALS_COMMAND__AVAILABLE_ACTIONS = 52013;
1097
+ VITALS_COMMAND__POST_VALIDATION = 52014;
1026
1098
 
1027
1099
  ASSESS_CODING_GAP_COMMAND__PRE_ORIGINATE = 57000;
1028
1100
  ASSESS_CODING_GAP_COMMAND__POST_ORIGINATE = 57001;
@@ -1040,6 +1112,7 @@ enum EventType {
1040
1112
  ASSESS_CODING_GAP_COMMAND__AVAILABLE_ACTIONS = 57015;
1041
1113
  ASSESS_CODING_GAP__DIAGNOSE__PRE_SEARCH = 57012;
1042
1114
  ASSESS_CODING_GAP__DIAGNOSE__POST_SEARCH = 57013;
1115
+ ASSESS_CODING_GAP_COMMAND__POST_VALIDATION = 57016;
1043
1116
 
1044
1117
  CREATE_CODING_GAP_COMMAND__PRE_ORIGINATE = 58000;
1045
1118
  CREATE_CODING_GAP_COMMAND__POST_ORIGINATE = 58001;
@@ -1057,6 +1130,7 @@ enum EventType {
1057
1130
  CREATE_CODING_GAP_COMMAND__AVAILABLE_ACTIONS = 58015;
1058
1131
  CREATE_CODING_GAP__DIAGNOSE__PRE_SEARCH = 58012;
1059
1132
  CREATE_CODING_GAP__DIAGNOSE__POST_SEARCH = 58013;
1133
+ CREATE_CODING_GAP_COMMAND__POST_VALIDATION = 58016;
1060
1134
 
1061
1135
  VALIDATE_CODING_GAP_COMMAND__PRE_ORIGINATE = 59000;
1062
1136
  VALIDATE_CODING_GAP_COMMAND__POST_ORIGINATE = 59001;
@@ -1072,6 +1146,7 @@ enum EventType {
1072
1146
  VALIDATE_CODING_GAP_COMMAND__POST_EXECUTE_ACTION = 59011;
1073
1147
  VALIDATE_CODING_GAP_COMMAND__POST_INSERTED_INTO_NOTE = 59012;
1074
1148
  VALIDATE_CODING_GAP_COMMAND__AVAILABLE_ACTIONS = 59013;
1149
+ VALIDATE_CODING_GAP_COMMAND__POST_VALIDATION = 59014;
1075
1150
 
1076
1151
  DEFER_CODING_GAP_COMMAND__PRE_ORIGINATE = 60000;
1077
1152
  DEFER_CODING_GAP_COMMAND__POST_ORIGINATE = 60001;
@@ -1087,6 +1162,7 @@ enum EventType {
1087
1162
  DEFER_CODING_GAP_COMMAND__POST_EXECUTE_ACTION = 60011;
1088
1163
  DEFER_CODING_GAP_COMMAND__POST_INSERTED_INTO_NOTE = 60012;
1089
1164
  DEFER_CODING_GAP_COMMAND__AVAILABLE_ACTIONS = 60013;
1165
+ DEFER_CODING_GAP_COMMAND__POST_VALIDATION = 60014;
1090
1166
 
1091
1167
  CHANGE_MEDICATION_COMMAND__PRE_ORIGINATE = 61000;
1092
1168
  CHANGE_MEDICATION_COMMAND__POST_ORIGINATE = 61001;
@@ -1104,12 +1180,30 @@ enum EventType {
1104
1180
  CHANGE_MEDICATION_COMMAND__AVAILABLE_ACTIONS = 61015;
1105
1181
  CHANGE_MEDICATION__MEDICATION__PRE_SEARCH = 61013;
1106
1182
  CHANGE_MEDICATION__MEDICATION__POST_SEARCH = 61014;
1183
+ CHANGE_MEDICATION_COMMAND__POST_VALIDATION = 61016;
1184
+
1185
+ CUSTOM_COMMAND_COMMAND__PRE_ORIGINATE = 62000;
1186
+ CUSTOM_COMMAND_COMMAND__POST_ORIGINATE = 62001;
1187
+ CUSTOM_COMMAND_COMMAND__PRE_UPDATE = 62002;
1188
+ CUSTOM_COMMAND_COMMAND__POST_UPDATE = 62003;
1189
+ CUSTOM_COMMAND_COMMAND__PRE_COMMIT = 62004;
1190
+ CUSTOM_COMMAND_COMMAND__POST_COMMIT = 62005;
1191
+ CUSTOM_COMMAND_COMMAND__PRE_DELETE = 62006;
1192
+ CUSTOM_COMMAND_COMMAND__POST_DELETE = 62007;
1193
+ CUSTOM_COMMAND_COMMAND__PRE_ENTER_IN_ERROR = 62008;
1194
+ CUSTOM_COMMAND_COMMAND__POST_ENTER_IN_ERROR = 62009;
1195
+ CUSTOM_COMMAND_COMMAND__PRE_EXECUTE_ACTION = 62010;
1196
+ CUSTOM_COMMAND_COMMAND__POST_EXECUTE_ACTION = 62011;
1197
+ CUSTOM_COMMAND_COMMAND__POST_INSERTED_INTO_NOTE = 62012;
1198
+ CUSTOM_COMMAND_COMMAND__AVAILABLE_ACTIONS = 62015;
1107
1199
 
1108
1200
  SHOW_NOTE_HEADER_BUTTON = 70000;
1109
1201
  SHOW_NOTE_FOOTER_BUTTON = 70001;
1110
1202
  ACTION_BUTTON_CLICKED = 70002;
1111
1203
 
1112
1204
  PATIENT_CHART__CONDITIONS = 100000;
1205
+ PATIENT_CHART__DETECTED_ISSUES = 100005;
1206
+
1113
1207
  PATIENT_CHART_SUMMARY__SECTION_CONFIGURATION = 100001;
1114
1208
 
1115
1209
  PATIENT_PROFILE__SECTION_CONFIGURATION = 100002;
@@ -1180,6 +1274,8 @@ enum EventType {
1180
1274
 
1181
1275
  APPOINTMENT__FORM__GET_ADDITIONAL_FIELDS = 141011;
1182
1276
 
1277
+ APPOINTMENT__SLOTS__POST_SEARCH = 141012;
1278
+
1183
1279
  APPOINTMENT_METADATA_CREATED = 141100;
1184
1280
  APPOINTMENT_METADATA_UPDATED = 141111;
1185
1281
 
@@ -1195,6 +1291,7 @@ enum EventType {
1195
1291
  REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHODS__LIST = 160004;
1196
1292
  REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHODS__ADD = 160005;
1197
1293
  REVENUE__PAYMENT_PROCESSOR__PAYMENT_METHODS__REMOVE = 160006;
1294
+
1198
1295
  }
1199
1296
 
1200
1297
  message Event {
@@ -1205,6 +1302,8 @@ message Event {
1205
1302
  string target = 2;
1206
1303
  string context = 3;
1207
1304
  string target_type = 4;
1305
+ string actor = 5;
1306
+ string source = 6;
1208
1307
  }
1209
1308
 
1210
1309
  message EventResponse {
settings.py CHANGED
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import sys
4
4
  from pathlib import Path
5
- from typing import Any
5
+ from typing import Any, cast
6
6
  from urllib import parse
7
7
 
8
8
  from django.core.exceptions import ImproperlyConfigured
@@ -22,6 +22,7 @@ IS_TESTING = env_to_bool("IS_TESTING", "pytest" in sys.argv[0] or sys.argv[0] ==
22
22
  IS_SCRIPT = env_to_bool("IS_SCRIPT", "plugin_runner.py" not in sys.argv[0])
23
23
  PLUGIN_POOL_DEBUG = env_to_bool("PLUGIN_POOL_DEBUG")
24
24
  CUSTOMER_IDENTIFIER = os.getenv("CUSTOMER_IDENTIFIER", "local")
25
+ HOSTNAME = os.getenv("HOSTNAME", "")
25
26
  APP_NAME = os.getenv("APP_NAME")
26
27
 
27
28
  if PLUGIN_POOL_DEBUG:
@@ -76,11 +77,27 @@ else:
76
77
  CANVAS_SDK_DB_BACKEND = "sqlite3" if IS_SCRIPT else "postgres"
77
78
 
78
79
  PLUGIN_RUNNER_MAX_WORKERS = int(os.getenv("PLUGIN_RUNNER_MAX_WORKERS", 5))
80
+ CONN_HEALTH_CHECKS_ENABLED = env_to_bool("CONN_HEALTH_CHECKS_ENABLED", True)
81
+
82
+ # By default, allow a pool size that gives each worker 2 active connections
83
+ # and allow overriding via environment variable if necessary
84
+ PLUGIN_RUNNER_DATABASE_POOL_MAX = int(
85
+ os.getenv(
86
+ "PLUGIN_RUNNER_DATABASE_POOL_MAX",
87
+ PLUGIN_RUNNER_MAX_WORKERS * 2,
88
+ )
89
+ )
79
90
 
80
91
  if CANVAS_SDK_DB_BACKEND == "postgres":
81
92
  db_config: dict[str, Any] = {
82
93
  "ENGINE": "django.db.backends.postgresql",
83
- "OPTIONS": {"pool": {"min_size": 2, "max_size": PLUGIN_RUNNER_MAX_WORKERS}},
94
+ "CONN_HEALTH_CHECKS": CONN_HEALTH_CHECKS_ENABLED,
95
+ "OPTIONS": {
96
+ "pool": {
97
+ "min_size": 2,
98
+ "max_size": PLUGIN_RUNNER_DATABASE_POOL_MAX,
99
+ }
100
+ },
84
101
  }
85
102
 
86
103
  if CANVAS_SDK_DB_URL:
@@ -156,15 +173,6 @@ SECRETS_FILE_NAME = "SECRETS.json"
156
173
 
157
174
  SENTRY_DSN = os.getenv("SENTRY_DSN")
158
175
 
159
- TEMPLATES = [
160
- {
161
- "BACKEND": "django.template.backends.django.DjangoTemplates",
162
- "DIRS": [],
163
- "APP_DIRS": False,
164
- "OPTIONS": {},
165
- },
166
- ]
167
-
168
176
 
169
177
  if IS_SCRIPT:
170
178
  CACHES = {
@@ -187,3 +195,11 @@ else:
187
195
  "TIMEOUT": CANVAS_SDK_CACHE_TIMEOUT_SECONDS,
188
196
  }
189
197
  }
198
+
199
+ LOGSTASH_HOST = os.getenv("PLUGINS_LOGSTASH_URL")
200
+ LOGSTASH_PORT = (
201
+ int(cast(str, os.getenv("PLUGINS_LOGSTASH_PORT")))
202
+ if os.getenv("PLUGINS_LOGSTASH_PORT")
203
+ else None
204
+ )
205
+ LOGSTASH_PROTOCOL = os.getenv("PLUGINS_LOGSTASH_PROTOCOL", "logger.logstash.HttpTransport")
@@ -1,43 +0,0 @@
1
- from datetime import datetime
2
- from enum import StrEnum
3
- from typing import Any
4
- from uuid import UUID
5
-
6
- from canvas_sdk.effects import EffectType, _BaseEffect
7
-
8
-
9
- class EventRecurrence(StrEnum):
10
- """Calendar event recurrence."""
11
-
12
- Daily = "FREQ=DAILY"
13
- Weekly = "FREQ=WEEKLY"
14
-
15
-
16
- class CreateEvent(_BaseEffect):
17
- """Effect to create a Calendar event."""
18
-
19
- class Meta:
20
- effect_type = EffectType.CALENDAR__EVENT__CREATE
21
-
22
- calendar_id: str | UUID
23
- title: str
24
- starts_at: datetime
25
- ends_at: datetime
26
- recurrence: EventRecurrence
27
-
28
- @property
29
- def values(self) -> dict[str, Any]:
30
- """The event's values."""
31
- return {
32
- "calendar_id": self.calendar_id,
33
- "title": self.title,
34
- "starts_at": self.starts_at.isoformat(),
35
- "ends_at": self.ends_at.isoformat(),
36
- "recurrence": self.recurrence,
37
- }
38
-
39
-
40
- __exports__ = (
41
- "CreateEvent",
42
- "EventRecurrence",
43
- )