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.
- {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/METADATA +1 -1
- {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/RECORD +30 -20
- canvas_generated/messages/effects_pb2.py +2 -2
- canvas_generated/messages/effects_pb2.pyi +46 -0
- canvas_generated/messages/events_pb2.py +2 -2
- canvas_generated/messages/events_pb2.pyi +108 -0
- canvas_sdk/commands/__init__.py +8 -0
- canvas_sdk/commands/base.py +1 -0
- canvas_sdk/commands/commands/__init__.py +0 -0
- canvas_sdk/commands/commands/adjust_prescription.py +24 -0
- canvas_sdk/commands/commands/imaging_order.py +39 -0
- canvas_sdk/commands/commands/instruct.py +17 -1
- canvas_sdk/commands/commands/lab_order.py +22 -7
- canvas_sdk/commands/commands/prescribe.py +1 -1
- canvas_sdk/commands/commands/questionnaire/__init__.py +102 -0
- canvas_sdk/commands/commands/questionnaire/question.py +134 -0
- canvas_sdk/commands/commands/refer.py +50 -0
- canvas_sdk/commands/commands/refill.py +28 -0
- canvas_sdk/commands/commands/resolve_condition.py +43 -0
- canvas_sdk/commands/constants.py +34 -0
- canvas_sdk/effects/billing_line_item/__init__.py +11 -0
- canvas_sdk/effects/billing_line_item/add_billing_line_item.py +38 -0
- canvas_sdk/effects/billing_line_item/remove_billing_line_item.py +22 -0
- canvas_sdk/effects/billing_line_item/update_billing_line_item.py +44 -0
- canvas_sdk/v1/data/condition.py +4 -2
- canvas_sdk/v1/data/medication.py +4 -2
- protobufs/canvas_generated/messages/effects.proto +29 -1
- protobufs/canvas_generated/messages/events.proto +54 -36
- canvas_sdk/commands/commands/questionnaire.py +0 -16
- {canvas-0.20.0.dist-info → canvas-0.22.0.dist-info}/WHEEL +0 -0
- {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
|
canvas_sdk/commands/constants.py
CHANGED
|
@@ -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
|
+
}
|
canvas_sdk/v1/data/condition.py
CHANGED
|
@@ -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
|
-
|
|
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)
|
canvas_sdk/v1/data/medication.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
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
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|