canvas 0.20.0__py3-none-any.whl → 0.22.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 (31) hide show
  1. {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/METADATA +1 -1
  2. {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/RECORD +30 -20
  3. canvas_generated/messages/effects_pb2.py +2 -2
  4. canvas_generated/messages/effects_pb2.pyi +46 -0
  5. canvas_generated/messages/events_pb2.py +2 -2
  6. canvas_generated/messages/events_pb2.pyi +108 -0
  7. canvas_sdk/commands/__init__.py +8 -0
  8. canvas_sdk/commands/base.py +1 -0
  9. canvas_sdk/commands/commands/__init__.py +0 -0
  10. canvas_sdk/commands/commands/adjust_prescription.py +24 -0
  11. canvas_sdk/commands/commands/imaging_order.py +39 -0
  12. canvas_sdk/commands/commands/instruct.py +17 -1
  13. canvas_sdk/commands/commands/lab_order.py +22 -7
  14. canvas_sdk/commands/commands/prescribe.py +1 -1
  15. canvas_sdk/commands/commands/questionnaire/__init__.py +102 -0
  16. canvas_sdk/commands/commands/questionnaire/question.py +134 -0
  17. canvas_sdk/commands/commands/refer.py +50 -0
  18. canvas_sdk/commands/commands/refill.py +28 -0
  19. canvas_sdk/commands/commands/resolve_condition.py +43 -0
  20. canvas_sdk/commands/constants.py +34 -0
  21. canvas_sdk/effects/billing_line_item/__init__.py +11 -0
  22. canvas_sdk/effects/billing_line_item/add_billing_line_item.py +38 -0
  23. canvas_sdk/effects/billing_line_item/remove_billing_line_item.py +22 -0
  24. canvas_sdk/effects/billing_line_item/update_billing_line_item.py +44 -0
  25. canvas_sdk/v1/data/condition.py +4 -2
  26. canvas_sdk/v1/data/medication.py +4 -2
  27. protobufs/canvas_generated/messages/effects.proto +29 -1
  28. protobufs/canvas_generated/messages/events.proto +54 -36
  29. canvas_sdk/commands/commands/questionnaire.py +0 -16
  30. {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/WHEEL +0 -0
  31. {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,10 @@
1
+ from typing import Literal
2
+
3
+ from django.db.models.expressions import Subquery
4
+ from pydantic_core import InitErrorDetails
5
+
1
6
  from canvas_sdk.commands.commands.prescribe import PrescribeCommand
7
+ from canvas_sdk.v1.data import Medication, Note
2
8
 
3
9
 
4
10
  class RefillCommand(PrescribeCommand):
@@ -15,3 +21,25 @@ class RefillCommand(PrescribeCommand):
15
21
  "substitutions",
16
22
  "prescriber_id",
17
23
  )
24
+
25
+ def _get_error_details(
26
+ self, method: Literal["originate", "edit", "delete", "commit", "enter_in_error"]
27
+ ) -> list[InitErrorDetails]:
28
+ errors = super()._get_error_details(method)
29
+
30
+ if self.fdb_code:
31
+ subquery = Subquery(Note.objects.filter(id=self.note_uuid).values("patient_id")[:1])
32
+ if (
33
+ not Medication.objects.active()
34
+ .filter(codings__code=self.fdb_code, patient=subquery)
35
+ .exists()
36
+ ):
37
+ errors.append(
38
+ self._create_error_detail(
39
+ "value",
40
+ f"Medication with fdb_code {self.fdb_code} does not exist.",
41
+ self.fdb_code,
42
+ )
43
+ )
44
+
45
+ return errors
@@ -0,0 +1,43 @@
1
+ from typing import Literal
2
+ from uuid import UUID
3
+
4
+ from django.db.models.expressions import Subquery
5
+ from pydantic import Field
6
+ from pydantic_core import InitErrorDetails
7
+
8
+ from canvas_sdk.commands.base import _BaseCommand as BaseCommand
9
+ from canvas_sdk.v1.data import Condition, Note
10
+
11
+
12
+ class ResolveConditionCommand(BaseCommand):
13
+ """A class for managing a ResolveCondition command within a specific note."""
14
+
15
+ class Meta:
16
+ key = "resolveCondition"
17
+ commit_required_fields = ("condition_id",)
18
+
19
+ condition_id: UUID | str | None = None
20
+ show_in_condition_list: bool = False
21
+ rationale: str | None = Field(max_length=1024, default=None)
22
+
23
+ def _get_error_details(
24
+ self, method: Literal["originate", "edit", "delete", "commit", "enter_in_error"]
25
+ ) -> list[InitErrorDetails]:
26
+ errors = super()._get_error_details(method)
27
+
28
+ if self.condition_id:
29
+ subquery = Subquery(Note.objects.filter(id=self.note_uuid).values("patient_id")[:1])
30
+ if (
31
+ not Condition.objects.active()
32
+ .filter(id=self.condition_id, patient=subquery)
33
+ .exists()
34
+ ):
35
+ errors.append(
36
+ self._create_error_detail(
37
+ "value",
38
+ f"Condition with id {self.condition_id} does not exist.",
39
+ self.condition_id,
40
+ )
41
+ )
42
+
43
+ return errors
@@ -1,7 +1,28 @@
1
+ from enum import StrEnum
1
2
  from typing import NotRequired
2
3
 
4
+ from pydantic import Field
3
5
  from typing_extensions import TypedDict
4
6
 
7
+ from canvas_sdk.base import Model
8
+
9
+
10
+ class CodeSystems(StrEnum):
11
+ """A class representing different code systems and their URLs."""
12
+
13
+ SNOMED = "http://snomed.info/sct"
14
+ RXNORM = "http://www.nlm.nih.gov/research/umls/rxnorm"
15
+ LOINC = "http://loinc.org"
16
+ FDB = "http://www.fdbhealth.com/"
17
+ ICD10 = "ICD-10"
18
+ CVX = "http://hl7.org/fhir/sid/cvx"
19
+ CPT = "http://www.ama-assn.org/go/cpt"
20
+ NUCC = "http://www.nucc.org/"
21
+ NDC = "http://hl7.org/fhir/sid/ndc"
22
+ HCPCS = "http://www.cms.gov/medicare/coding/medhcpcsgeninfo"
23
+ UNITS_OF_MEASURE = "http://unitsofmeasure.org"
24
+ UNSTRUCTURED = "UNSTRUCTURED"
25
+
5
26
 
6
27
  class Coding(TypedDict):
7
28
  """Coding object in Canvas."""
@@ -16,3 +37,16 @@ class ClinicalQuantity(TypedDict):
16
37
 
17
38
  representative_ndc: str
18
39
  ncpdp_quantity_qualifier_code: str
40
+
41
+
42
+ class ServiceProvider(Model):
43
+ """ServiceProvider model."""
44
+
45
+ first_name: str = Field(max_length=512)
46
+ last_name: str = Field(max_length=512)
47
+ specialty: str = Field(max_length=512)
48
+ practice_name: str = Field(max_length=512)
49
+ business_fax: str | None = Field(max_length=512, default=None)
50
+ business_phone: str | None = Field(max_length=512, default=None)
51
+ business_address: str | None = Field(max_length=512, default=None)
52
+ notes: str | None = Field(max_length=512, default=None)
@@ -0,0 +1,11 @@
1
+ from canvas_sdk.effects.billing_line_item.add_billing_line_item import (
2
+ AddBillingLineItem,
3
+ )
4
+ from canvas_sdk.effects.billing_line_item.remove_billing_line_item import (
5
+ RemoveBillingLineItem,
6
+ )
7
+ from canvas_sdk.effects.billing_line_item.update_billing_line_item import (
8
+ UpdateBillingLineItem,
9
+ )
10
+
11
+ __all__ = ("AddBillingLineItem", "UpdateBillingLineItem", "RemoveBillingLineItem")
@@ -0,0 +1,38 @@
1
+ from typing import Any
2
+
3
+ from canvas_sdk.commands.constants import Coding
4
+ from canvas_sdk.effects.base import EffectType, _BaseEffect
5
+
6
+
7
+ class AddBillingLineItem(_BaseEffect):
8
+ """
9
+ An Effect that will result in a billing line item in a note footer.
10
+ """
11
+
12
+ class Meta:
13
+ effect_type = EffectType.ADD_BILLING_LINE_ITEM
14
+ apply_required_fields = ("note_id", "cpt")
15
+
16
+ note_id: str | None = None
17
+ cpt: str | None = None
18
+ units: int | None = 1
19
+ assessment_ids: list[str] = []
20
+ modifiers: list[Coding] = []
21
+
22
+ @property
23
+ def values(self) -> dict[str, Any]:
24
+ """The BillingLineItem's values."""
25
+ return {
26
+ "cpt": self.cpt,
27
+ "units": self.units,
28
+ "assessment_ids": self.assessment_ids,
29
+ "modifiers": self.modifiers,
30
+ }
31
+
32
+ @property
33
+ def effect_payload(self) -> dict[str, Any]:
34
+ """The payload of the effect."""
35
+ return {
36
+ "note_id": self.note_id,
37
+ "data": self.values,
38
+ }
@@ -0,0 +1,22 @@
1
+ from typing import Any
2
+
3
+ from canvas_sdk.effects.base import EffectType, _BaseEffect
4
+
5
+
6
+ class RemoveBillingLineItem(_BaseEffect):
7
+ """
8
+ An Effect that will remove a billing line item in a note footer.
9
+ """
10
+
11
+ class Meta:
12
+ effect_type = EffectType.REMOVE_BILLING_LINE_ITEM
13
+ apply_required_fields = ("billing_line_item_id",)
14
+
15
+ billing_line_item_id: str | None = None
16
+
17
+ @property
18
+ def effect_payload(self) -> dict[str, Any]:
19
+ """The payload of the effect."""
20
+ return {
21
+ "billing_line_item_id": self.billing_line_item_id,
22
+ }
@@ -0,0 +1,44 @@
1
+ from typing import Any
2
+
3
+ from canvas_sdk.commands.constants import Coding
4
+ from canvas_sdk.effects.base import EffectType, _BaseEffect
5
+
6
+
7
+ class UpdateBillingLineItem(_BaseEffect):
8
+ """
9
+ An Effect that will update a billing line item in a note footer.
10
+ """
11
+
12
+ class Meta:
13
+ effect_type = EffectType.UPDATE_BILLING_LINE_ITEM
14
+ apply_required_fields = ("billing_line_item_id",)
15
+
16
+ billing_line_item_id: str | None = None
17
+ cpt: str | None = None
18
+ units: int | None = None
19
+ assessment_ids: list[str] | None = None
20
+ modifiers: list[Coding] | None = None
21
+
22
+ @property
23
+ def values(self) -> dict[str, Any]:
24
+ """The BillingLineItem's values."""
25
+ values: dict[str, str | int | list] = {}
26
+ # only include the values where a value has been set so as to not unintentionally override existing values
27
+ if self.cpt is not None:
28
+ values["cpt"] = self.cpt
29
+ if self.units is not None:
30
+ values["units"] = self.units
31
+ if self.assessment_ids is not None:
32
+ values["assessment_ids"] = self.assessment_ids
33
+ if self.modifiers is not None:
34
+ values["modifiers"] = self.modifiers
35
+
36
+ return values
37
+
38
+ @property
39
+ def effect_payload(self) -> dict[str, Any]:
40
+ """The payload of the effect."""
41
+ return {
42
+ "billing_line_item_id": self.billing_line_item_id,
43
+ "data": self.values,
44
+ }
@@ -1,4 +1,4 @@
1
- from typing import cast
1
+ from typing import Self, cast
2
2
 
3
3
  from django.db import models
4
4
  from django.db.models import TextChoices
@@ -30,7 +30,9 @@ class ConditionQuerySet(
30
30
  ):
31
31
  """ConditionQuerySet."""
32
32
 
33
- pass
33
+ def active(self) -> Self:
34
+ """Return a queryset that filters for active conditions."""
35
+ return self.committed().filter(clinical_status=ClinicalStatus.ACTIVE)
34
36
 
35
37
 
36
38
  ConditionManager = BaseModelManager.from_queryset(ConditionQuerySet)
@@ -1,4 +1,4 @@
1
- from typing import cast
1
+ from typing import Self, cast
2
2
 
3
3
  from django.db import models
4
4
  from django.db.models import TextChoices
@@ -21,7 +21,9 @@ class Status(TextChoices):
21
21
  class MedicationQuerySet(ValueSetLookupQuerySet, CommittableQuerySetMixin, ForPatientQuerySetMixin):
22
22
  """MedicationQuerySet."""
23
23
 
24
- pass
24
+ def active(self) -> Self:
25
+ """Filter by active medications."""
26
+ return self.committed().filter(status=Status.ACTIVE)
25
27
 
26
28
 
27
29
  MedicationManager = BaseModelManager.from_queryset(MedicationQuerySet)
@@ -163,6 +163,12 @@ enum EffectType {
163
163
  COMMIT_CLOSE_GOAL_COMMAND = 131;
164
164
  ENTER_IN_ERROR_CLOSE_GOAL_COMMAND = 132;
165
165
 
166
+ ORIGINATE_REFER_COMMAND = 139;
167
+ EDIT_REFER_COMMAND = 140;
168
+ DELETE_REFER_COMMAND = 141;
169
+ COMMIT_REFER_COMMAND = 142;
170
+ ENTER_IN_ERROR_REFER_COMMAND = 143;
171
+
166
172
  CREATE_QUESTIONNAIRE_RESULT = 138;
167
173
 
168
174
  ANNOTATE_PATIENT_CHART_CONDITION_RESULTS = 200;
@@ -203,6 +209,24 @@ enum EffectType {
203
209
  COMMIT_FOLLOW_UP_COMMAND = 908;
204
210
  ENTER_IN_ERROR_FOLLOW_UP_COMMAND = 909;
205
211
 
212
+ ORIGINATE_IMAGING_ORDER_COMMAND = 1100;
213
+ EDIT_IMAGING_ORDER_COMMAND = 1101;
214
+ DELETE_IMAGING_ORDER_COMMAND = 1102;
215
+ COMMIT_IMAGING_ORDER_COMMAND = 1103;
216
+ ENTER_IN_ERROR_IMAGING_ORDER_COMMAND = 1104;
217
+
218
+ ORIGINATE_RESOLVE_CONDITION_COMMAND = 1200;
219
+ EDIT_RESOLVE_CONDITION_COMMAND = 1201;
220
+ DELETE_RESOLVE_CONDITION_COMMAND = 1202;
221
+ COMMIT_RESOLVE_CONDITION_COMMAND = 1203;
222
+ ENTER_IN_ERROR_RESOLVE_CONDITION_COMMAND = 1204;
223
+
224
+ ORIGINATE_ADJUST_PRESCRIPTION_COMMAND = 1300;
225
+ EDIT_ADJUST_PRESCRIPTION_COMMAND = 1301;
226
+ DELETE_ADJUST_PRESCRIPTION_COMMAND = 1302;
227
+ COMMIT_ADJUST_PRESCRIPTION_COMMAND = 1303;
228
+ ENTER_IN_ERROR_ADJUST_PRESCRIPTION_COMMAND = 1304;
229
+
206
230
  SHOW_ACTION_BUTTON = 1000;
207
231
 
208
232
  PATIENT_PORTAL__INTAKE_FORM_RESULTS = 2000;
@@ -217,6 +241,10 @@ enum EffectType {
217
241
  PATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__PRE_SEARCH_RESULTS = 2010;
218
242
  PATIENT_PORTAL__APPOINTMENTS__FORM_PROVIDERS__POST_SEARCH_RESULTS = 2011;
219
243
 
244
+ ADD_BILLING_LINE_ITEM = 2030;
245
+ UPDATE_BILLING_LINE_ITEM = 2031;
246
+ REMOVE_BILLING_LINE_ITEM = 2032;
247
+
220
248
  LAUNCH_MODAL = 3000;
221
249
  }
222
250
 
@@ -228,4 +256,4 @@ message Effect {
228
256
  //Oneof effect_payload {
229
257
  // ...
230
258
  //}
231
- }
259
+ }
@@ -136,18 +136,26 @@ enum EventType {
136
136
  // ADJUST_DIAGNOSIS_COMMAND__PRE_EXECUTE_ACTION = 1010;
137
137
  // ADJUST_DIAGNOSIS_COMMAND__POST_EXECUTE_ACTION = 1011;
138
138
 
139
- // ADJUST_PRESCRIPTION_COMMAND__PRE_ORIGINATE = 2000;
140
- // ADJUST_PRESCRIPTION_COMMAND__POST_ORIGINATE = 2001;
141
- // ADJUST_PRESCRIPTION_COMMAND__PRE_UPDATE = 2002;
142
- // ADJUST_PRESCRIPTION_COMMAND__POST_UPDATE = 2003;
143
- // ADJUST_PRESCRIPTION_COMMAND__PRE_COMMIT = 2004;
144
- // ADJUST_PRESCRIPTION_COMMAND__POST_COMMIT = 2005;
145
- // ADJUST_PRESCRIPTION_COMMAND__PRE_DELETE = 2006;
146
- // ADJUST_PRESCRIPTION_COMMAND__POST_DELETE = 2007;
147
- // ADJUST_PRESCRIPTION_COMMAND__PRE_ENTER_IN_ERROR = 2008;
148
- // ADJUST_PRESCRIPTION_COMMAND__POST_ENTER_IN_ERROR = 2009;
149
- // ADJUST_PRESCRIPTION_COMMAND__PRE_EXECUTE_ACTION = 2010;
150
- // ADJUST_PRESCRIPTION_COMMAND__POST_EXECUTE_ACTION = 2011;
139
+ ADJUST_PRESCRIPTION_COMMAND__PRE_ORIGINATE = 2000;
140
+ ADJUST_PRESCRIPTION_COMMAND__POST_ORIGINATE = 2001;
141
+ ADJUST_PRESCRIPTION_COMMAND__PRE_UPDATE = 2002;
142
+ ADJUST_PRESCRIPTION_COMMAND__POST_UPDATE = 2003;
143
+ ADJUST_PRESCRIPTION_COMMAND__PRE_COMMIT = 2004;
144
+ ADJUST_PRESCRIPTION_COMMAND__POST_COMMIT = 2005;
145
+ ADJUST_PRESCRIPTION_COMMAND__PRE_DELETE = 2006;
146
+ ADJUST_PRESCRIPTION_COMMAND__POST_DELETE = 2007;
147
+ ADJUST_PRESCRIPTION_COMMAND__PRE_ENTER_IN_ERROR = 2008;
148
+ ADJUST_PRESCRIPTION_COMMAND__POST_ENTER_IN_ERROR = 2009;
149
+ ADJUST_PRESCRIPTION_COMMAND__PRE_EXECUTE_ACTION = 2010;
150
+ ADJUST_PRESCRIPTION_COMMAND__POST_EXECUTE_ACTION = 2011;
151
+ ADJUST_PRESCRIPTION__PRESCRIBE__POST_SEARCH = 2012;
152
+ ADJUST_PRESCRIPTION__PRESCRIBE__PRE_SEARCH = 2013;
153
+ ADJUST_PRESCRIPTION__INDICATIONS__PRE_SEARCH = 2014;
154
+ ADJUST_PRESCRIPTION__INDICATIONS__POST_SEARCH = 2015;
155
+ ADJUST_PRESCRIPTION__PHARMACY__PRE_SEARCH = 2016;
156
+ ADJUST_PRESCRIPTION__PHARMACY__POST_SEARCH = 2017;
157
+ ADJUST_PRESCRIPTION__CHANGE_MEDICATION_TO__PRE_SEARCH = 2018;
158
+ ADJUST_PRESCRIPTION__CHANGE_MEDICATION_TO__POST_SEARCH = 2019;
151
159
 
152
160
  // ADJUST_PROTOCOL_COMMAND__PRE_ORIGINATE = 3000;
153
161
  // ADJUST_PROTOCOL_COMMAND__POST_ORIGINATE = 3001;
@@ -683,18 +691,26 @@ enum EventType {
683
691
  REASON_FOR_VISIT__CODING__POST_SEARCH = 35012;
684
692
  REASON_FOR_VISIT__CODING__PRE_SEARCH = 35013;
685
693
 
686
- // REFER_COMMAND__PRE_ORIGINATE = 36000;
687
- // REFER_COMMAND__POST_ORIGINATE = 36001;
688
- // REFER_COMMAND__PRE_UPDATE = 36002;
689
- // REFER_COMMAND__POST_UPDATE = 36003;
690
- // REFER_COMMAND__PRE_COMMIT = 36004;
691
- // REFER_COMMAND__POST_COMMIT = 36005;
692
- // REFER_COMMAND__PRE_DELETE = 36006;
693
- // REFER_COMMAND__POST_DELETE = 36007;
694
- // REFER_COMMAND__PRE_ENTER_IN_ERROR = 36008;
695
- // REFER_COMMAND__POST_ENTER_IN_ERROR = 36009;
696
- // REFER_COMMAND__PRE_EXECUTE_ACTION = 36010;
697
- // REFER_COMMAND__POST_EXECUTE_ACTION = 36011;
694
+ REFER_COMMAND__PRE_ORIGINATE = 36000;
695
+ REFER_COMMAND__POST_ORIGINATE = 36001;
696
+ REFER_COMMAND__PRE_UPDATE = 36002;
697
+ REFER_COMMAND__POST_UPDATE = 36003;
698
+ REFER_COMMAND__PRE_COMMIT = 36004;
699
+ REFER_COMMAND__POST_COMMIT = 36005;
700
+ REFER_COMMAND__PRE_DELETE = 36006;
701
+ REFER_COMMAND__POST_DELETE = 36007;
702
+ REFER_COMMAND__PRE_ENTER_IN_ERROR = 36008;
703
+ REFER_COMMAND__POST_ENTER_IN_ERROR = 36009;
704
+ REFER_COMMAND__PRE_EXECUTE_ACTION = 36010;
705
+ REFER_COMMAND__POST_EXECUTE_ACTION = 36011;
706
+ REFER_COMMAND__REFER_TO__POST_SEARCH = 36012;
707
+ REFER_COMMAND__REFER_TO__PRE_SEARCH = 36013;
708
+ REFER_COMMAND__INDICATIONS__POST_SEARCH = 36014;
709
+ REFER_COMMAND__INDICATIONS__PRE_SEARCH = 36015;
710
+ REFER_COMMAND__DOCUMENTS_TO_INCLUDE__POST_SEARCH = 36016;
711
+ REFER_COMMAND__DOCUMENTS_TO_INCLUDE__PRE_SEARCH = 36017;
712
+ REFER_COMMAND__LINKED_ITEMS__POST_SEARCH = 36018;
713
+ REFER_COMMAND__LINKED_ITEMS_INCLUDE__PRE_SEARCH = 36019;
698
714
 
699
715
  // REFERENCE_COMMAND__PRE_ORIGINATE = 37000;
700
716
  // REFERENCE_COMMAND__POST_ORIGINATE = 37001;
@@ -758,18 +774,20 @@ enum EventType {
758
774
  REMOVE_ALLERGY__ALLERGY__PRE_SEARCH = 40012;
759
775
  REMOVE_ALLERGY__ALLERGY__POST_SEARCH = 40013;
760
776
 
761
- // RESOLVE_CONDITION_COMMAND__PRE_ORIGINATE = 41000;
762
- // RESOLVE_CONDITION_COMMAND__POST_ORIGINATE = 41001;
763
- // RESOLVE_CONDITION_COMMAND__PRE_UPDATE = 41002;
764
- // RESOLVE_CONDITION_COMMAND__POST_UPDATE = 41003;
765
- // RESOLVE_CONDITION_COMMAND__PRE_COMMIT = 41004;
766
- // RESOLVE_CONDITION_COMMAND__POST_COMMIT = 41005;
767
- // RESOLVE_CONDITION_COMMAND__PRE_DELETE = 41006;
768
- // RESOLVE_CONDITION_COMMAND__POST_DELETE = 41007;
769
- // RESOLVE_CONDITION_COMMAND__PRE_ENTER_IN_ERROR = 41008;
770
- // RESOLVE_CONDITION_COMMAND__POST_ENTER_IN_ERROR = 41009;
771
- // RESOLVE_CONDITION_COMMAND__PRE_EXECUTE_ACTION = 41010;
772
- // RESOLVE_CONDITION_COMMAND__POST_EXECUTE_ACTION = 41011;
777
+ RESOLVE_CONDITION_COMMAND__PRE_ORIGINATE = 41000;
778
+ RESOLVE_CONDITION_COMMAND__POST_ORIGINATE = 41001;
779
+ RESOLVE_CONDITION_COMMAND__PRE_UPDATE = 41002;
780
+ RESOLVE_CONDITION_COMMAND__POST_UPDATE = 41003;
781
+ RESOLVE_CONDITION_COMMAND__PRE_COMMIT = 41004;
782
+ RESOLVE_CONDITION_COMMAND__POST_COMMIT = 41005;
783
+ RESOLVE_CONDITION_COMMAND__PRE_DELETE = 41006;
784
+ RESOLVE_CONDITION_COMMAND__POST_DELETE = 41007;
785
+ RESOLVE_CONDITION_COMMAND__PRE_ENTER_IN_ERROR = 41008;
786
+ RESOLVE_CONDITION_COMMAND__POST_ENTER_IN_ERROR = 41009;
787
+ RESOLVE_CONDITION_COMMAND__PRE_EXECUTE_ACTION = 41010;
788
+ RESOLVE_CONDITION_COMMAND__POST_EXECUTE_ACTION = 41011;
789
+ RESOLVE_CONDITION__CONDITION__PRE_SEARCH = 41012;
790
+ RESOLVE_CONDITION__CONDITION__POST_SEARCH = 41013;
773
791
 
774
792
  ROS_COMMAND__PRE_ORIGINATE = 42000;
775
793
  ROS_COMMAND__POST_ORIGINATE = 42001;
@@ -1,16 +0,0 @@
1
- from pydantic import Field
2
-
3
- from canvas_sdk.commands.base import _BaseCommand
4
-
5
-
6
- class QuestionnaireCommand(_BaseCommand):
7
- """A class for managing a Questionnaire command within a specific note."""
8
-
9
- class Meta:
10
- key = "questionnaire"
11
- commit_required_fields = ("questionnaire_id",)
12
-
13
- questionnaire_id: str | None = Field(
14
- default=None, json_schema_extra={"commands_api_name": "questionnaire"}
15
- )
16
- result: str | None = None