canvas 0.44.3__py3-none-any.whl → 0.46.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.44.3.dist-info → canvas-0.46.0.dist-info}/METADATA +4 -2
- {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/RECORD +64 -59
- canvas_cli/apps/plugin/plugin.py +21 -2
- canvas_generated/messages/effects_pb2.py +2 -2
- canvas_generated/messages/effects_pb2.pyi +10 -0
- canvas_generated/messages/events_pb2.py +2 -2
- canvas_generated/messages/events_pb2.pyi +18 -0
- canvas_sdk/commands/commands/exam.py +2 -1
- canvas_sdk/commands/commands/immunization_statement.py +32 -0
- canvas_sdk/commands/commands/questionnaire/__init__.py +18 -3
- canvas_sdk/commands/commands/questionnaire/question.py +3 -2
- canvas_sdk/commands/commands/questionnaire/toggle_questions.py +68 -0
- canvas_sdk/commands/commands/review_of_systems.py +2 -1
- canvas_sdk/utils/http.py +4 -1
- canvas_sdk/v1/data/__init__.py +17 -3
- canvas_sdk/v1/data/allergy_intolerance.py +16 -19
- canvas_sdk/v1/data/appointment.py +10 -14
- canvas_sdk/v1/data/assessment.py +9 -10
- canvas_sdk/v1/data/banner_alert.py +12 -12
- canvas_sdk/v1/data/base.py +45 -1
- canvas_sdk/v1/data/billing.py +13 -18
- canvas_sdk/v1/data/business_line.py +7 -8
- canvas_sdk/v1/data/care_team.py +14 -17
- canvas_sdk/v1/data/charge_description_master.py +29 -0
- canvas_sdk/v1/data/claim.py +87 -95
- canvas_sdk/v1/data/claim_line_item.py +17 -18
- canvas_sdk/v1/data/command.py +8 -9
- canvas_sdk/v1/data/condition.py +9 -12
- canvas_sdk/v1/data/coverage.py +47 -53
- canvas_sdk/v1/data/detected_issue.py +16 -20
- canvas_sdk/v1/data/device.py +20 -21
- canvas_sdk/v1/data/discount.py +8 -8
- canvas_sdk/v1/data/imaging.py +24 -30
- canvas_sdk/v1/data/invoice.py +3 -3
- canvas_sdk/v1/data/lab.py +65 -84
- canvas_sdk/v1/data/line_item_transaction.py +7 -9
- canvas_sdk/v1/data/medication.py +14 -17
- canvas_sdk/v1/data/message.py +10 -17
- canvas_sdk/v1/data/note.py +87 -24
- canvas_sdk/v1/data/observation.py +24 -33
- canvas_sdk/v1/data/organization.py +14 -15
- canvas_sdk/v1/data/patient.py +57 -68
- canvas_sdk/v1/data/patient_consent.py +14 -19
- canvas_sdk/v1/data/payment_collection.py +7 -8
- canvas_sdk/v1/data/payor_specific_charge.py +10 -12
- canvas_sdk/v1/data/posting.py +10 -18
- canvas_sdk/v1/data/practicelocation.py +17 -21
- canvas_sdk/v1/data/protocol_override.py +8 -10
- canvas_sdk/v1/data/questionnaire.py +56 -73
- canvas_sdk/v1/data/reason_for_visit.py +7 -9
- canvas_sdk/v1/data/staff.py +61 -57
- canvas_sdk/v1/data/task.py +21 -31
- canvas_sdk/v1/data/team.py +15 -18
- canvas_sdk/v1/data/user.py +3 -3
- canvas_sdk/v1/data/utils.py +6 -0
- plugin_runner/allowed-module-imports.json +1340 -0
- plugin_runner/generate_allowed_imports.py +97 -0
- plugin_runner/plugin_runner.py +9 -0
- plugin_runner/sandbox.py +55 -60
- protobufs/canvas_generated/messages/effects.proto +6 -0
- protobufs/canvas_generated/messages/events.proto +12 -1
- settings.py +56 -22
- {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/WHEEL +0 -0
- {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/entry_points.txt +0 -0
|
@@ -6,6 +6,8 @@ from canvas_sdk.v1.data.base import (
|
|
|
6
6
|
BaseModelManager,
|
|
7
7
|
CommittableQuerySetMixin,
|
|
8
8
|
ForPatientQuerySetMixin,
|
|
9
|
+
IdentifiableModel,
|
|
10
|
+
Model,
|
|
9
11
|
ValueSetLookupQuerySet,
|
|
10
12
|
)
|
|
11
13
|
|
|
@@ -23,19 +25,16 @@ class AllergyIntoleranceQuerySet(
|
|
|
23
25
|
AllergyIntoleranceManager = BaseModelManager.from_queryset(AllergyIntoleranceQuerySet)
|
|
24
26
|
|
|
25
27
|
|
|
26
|
-
class AllergyIntolerance(
|
|
28
|
+
class AllergyIntolerance(IdentifiableModel):
|
|
27
29
|
"""AllergyIntolerance."""
|
|
28
30
|
|
|
29
31
|
class Meta:
|
|
30
|
-
managed = False
|
|
31
32
|
db_table = "canvas_sdk_data_api_allergyintolerance_001"
|
|
32
33
|
|
|
33
34
|
objects = cast(AllergyIntoleranceQuerySet, AllergyIntoleranceManager())
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
created = models.DateTimeField()
|
|
38
|
-
modified = models.DateTimeField()
|
|
36
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
37
|
+
modified = models.DateTimeField(auto_now=True)
|
|
39
38
|
deleted = models.BooleanField()
|
|
40
39
|
committer = models.ForeignKey(
|
|
41
40
|
"v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
|
|
@@ -50,30 +49,28 @@ class AllergyIntolerance(models.Model):
|
|
|
50
49
|
null=True,
|
|
51
50
|
)
|
|
52
51
|
note_id = models.BigIntegerField()
|
|
53
|
-
allergy_intolerance_type = models.CharField()
|
|
52
|
+
allergy_intolerance_type = models.CharField(max_length=1)
|
|
54
53
|
category = models.IntegerField()
|
|
55
|
-
status = models.CharField()
|
|
56
|
-
severity = models.CharField()
|
|
54
|
+
status = models.CharField(max_length=20)
|
|
55
|
+
severity = models.CharField(max_length=20)
|
|
57
56
|
onset_date = models.DateField()
|
|
58
|
-
onset_date_original_input = models.CharField()
|
|
57
|
+
onset_date_original_input = models.CharField(max_length=255)
|
|
59
58
|
last_occurrence = models.DateField()
|
|
60
|
-
last_occurrence_original_input = models.CharField()
|
|
59
|
+
last_occurrence_original_input = models.CharField(max_length=255)
|
|
61
60
|
recorded_date = models.DateTimeField()
|
|
62
|
-
narrative = models.CharField()
|
|
61
|
+
narrative = models.CharField(max_length=512)
|
|
63
62
|
|
|
64
63
|
|
|
65
|
-
class AllergyIntoleranceCoding(
|
|
64
|
+
class AllergyIntoleranceCoding(Model):
|
|
66
65
|
"""AllergyIntoleranceCoding."""
|
|
67
66
|
|
|
68
67
|
class Meta:
|
|
69
|
-
managed = False
|
|
70
68
|
db_table = "canvas_sdk_data_api_allergyintolerancecoding_001"
|
|
71
69
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
display = models.CharField()
|
|
70
|
+
system = models.CharField(max_length=255)
|
|
71
|
+
version = models.CharField(max_length=255)
|
|
72
|
+
code = models.CharField(max_length=255)
|
|
73
|
+
display = models.CharField(max_length=1000)
|
|
77
74
|
user_selected = models.BooleanField()
|
|
78
75
|
allergy_intolerance = models.ForeignKey(
|
|
79
76
|
AllergyIntolerance,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from django.db import models
|
|
2
2
|
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
3
5
|
|
|
4
6
|
class AppointmentProgressStatus(models.TextChoices):
|
|
5
7
|
"""AppointmentProgressStatus."""
|
|
@@ -14,15 +16,12 @@ class AppointmentProgressStatus(models.TextChoices):
|
|
|
14
16
|
CANCELLED = "cancelled", "Cancelled"
|
|
15
17
|
|
|
16
18
|
|
|
17
|
-
class Appointment(
|
|
19
|
+
class Appointment(IdentifiableModel):
|
|
18
20
|
"""Appointment."""
|
|
19
21
|
|
|
20
22
|
class Meta:
|
|
21
|
-
managed = False
|
|
22
23
|
db_table = "canvas_sdk_data_api_appointment_001"
|
|
23
24
|
|
|
24
|
-
id = models.UUIDField()
|
|
25
|
-
dbid = models.BigIntegerField(primary_key=True)
|
|
26
25
|
entered_in_error = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, null=True)
|
|
27
26
|
patient = models.ForeignKey(
|
|
28
27
|
"v1.Patient",
|
|
@@ -56,21 +55,18 @@ class Appointment(models.Model):
|
|
|
56
55
|
description = models.TextField(null=True, blank=True)
|
|
57
56
|
|
|
58
57
|
|
|
59
|
-
class AppointmentExternalIdentifier(
|
|
58
|
+
class AppointmentExternalIdentifier(IdentifiableModel):
|
|
60
59
|
"""AppointmentExternalIdentifier."""
|
|
61
60
|
|
|
62
61
|
class Meta:
|
|
63
|
-
managed = False
|
|
64
62
|
db_table = "canvas_sdk_data_api_appointmentexternalidentifier_001"
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
system = models.CharField()
|
|
73
|
-
value = models.CharField()
|
|
64
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
65
|
+
modified = models.DateTimeField(auto_now=True)
|
|
66
|
+
use = models.CharField(max_length=255)
|
|
67
|
+
identifier_type = models.CharField(max_length=255)
|
|
68
|
+
system = models.CharField(max_length=255)
|
|
69
|
+
value = models.CharField(max_length=255)
|
|
74
70
|
issued_date = models.DateField()
|
|
75
71
|
expiration_date = models.DateField()
|
|
76
72
|
appointment = models.ForeignKey(
|
canvas_sdk/v1/data/assessment.py
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from django.db import models
|
|
2
2
|
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
3
5
|
|
|
4
6
|
class AssessmentStatus(models.TextChoices):
|
|
5
7
|
"""AssessmentStatus."""
|
|
@@ -9,17 +11,14 @@ class AssessmentStatus(models.TextChoices):
|
|
|
9
11
|
STATUS_DETERIORATING = "deteriorated", "Deteriorated"
|
|
10
12
|
|
|
11
13
|
|
|
12
|
-
class Assessment(
|
|
14
|
+
class Assessment(IdentifiableModel):
|
|
13
15
|
"""Assessment."""
|
|
14
16
|
|
|
15
17
|
class Meta:
|
|
16
|
-
managed = False
|
|
17
18
|
db_table = "canvas_sdk_data_api_assessment_001"
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
created = models.DateTimeField()
|
|
22
|
-
modified = models.DateTimeField()
|
|
20
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
21
|
+
modified = models.DateTimeField(auto_now=True)
|
|
23
22
|
originator = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+")
|
|
24
23
|
committer = models.ForeignKey(
|
|
25
24
|
"v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
|
|
@@ -38,10 +37,10 @@ class Assessment(models.Model):
|
|
|
38
37
|
"v1.Condition", on_delete=models.CASCADE, related_name="assessments", null=True
|
|
39
38
|
)
|
|
40
39
|
interview = models.ForeignKey("v1.Interview", on_delete=models.DO_NOTHING, null=True)
|
|
41
|
-
status = models.CharField(choices=AssessmentStatus.choices)
|
|
42
|
-
narrative = models.CharField()
|
|
43
|
-
background = models.CharField()
|
|
44
|
-
care_team = models.CharField()
|
|
40
|
+
status = models.CharField(choices=AssessmentStatus.choices, max_length=20)
|
|
41
|
+
narrative = models.CharField(max_length=2048)
|
|
42
|
+
background = models.CharField(max_length=2048)
|
|
43
|
+
care_team = models.CharField(max_length=500)
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
__exports__ = ("AssessmentStatus", "Assessment")
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
from django.contrib.postgres.fields import ArrayField
|
|
2
2
|
from django.db import models
|
|
3
3
|
|
|
4
|
+
from canvas_sdk.v1.data.base import Model
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
|
|
7
|
+
class BannerAlert(Model):
|
|
6
8
|
"""BannerAlert."""
|
|
7
9
|
|
|
8
10
|
class Meta:
|
|
9
|
-
managed = False
|
|
10
11
|
db_table = "canvas_sdk_data_api_banneralert_001"
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
modified = models.DateTimeField()
|
|
13
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
14
|
+
modified = models.DateTimeField(auto_now=True)
|
|
15
15
|
patient = models.ForeignKey(
|
|
16
16
|
"v1.Patient",
|
|
17
17
|
on_delete=models.DO_NOTHING,
|
|
18
18
|
related_name="banner_alerts",
|
|
19
19
|
null=True,
|
|
20
20
|
)
|
|
21
|
-
plugin_name = models.CharField()
|
|
22
|
-
key = models.CharField()
|
|
23
|
-
narrative = models.CharField()
|
|
24
|
-
placement = ArrayField(models.CharField())
|
|
25
|
-
intent = models.CharField()
|
|
26
|
-
href = models.CharField()
|
|
27
|
-
status = models.CharField()
|
|
21
|
+
plugin_name = models.CharField(max_length=256)
|
|
22
|
+
key = models.CharField(max_length=255)
|
|
23
|
+
narrative = models.CharField(max_length=90)
|
|
24
|
+
placement = ArrayField(models.CharField(max_length=64))
|
|
25
|
+
intent = models.CharField(max_length=64)
|
|
26
|
+
href = models.CharField(max_length=255)
|
|
27
|
+
status = models.CharField(max_length=64)
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
__exports__ = ("BannerAlert",)
|
canvas_sdk/v1/data/base.py
CHANGED
|
@@ -1,14 +1,58 @@
|
|
|
1
|
+
import uuid
|
|
1
2
|
from abc import abstractmethod
|
|
2
3
|
from collections.abc import Container
|
|
3
4
|
from typing import TYPE_CHECKING, Any, Protocol, Self, cast
|
|
4
5
|
|
|
5
|
-
from django.
|
|
6
|
+
from django.contrib.postgres.fields import ArrayField
|
|
7
|
+
from django.db import connection, models
|
|
6
8
|
from django.db.models import Q
|
|
9
|
+
from django.db.models.base import ModelBase
|
|
7
10
|
|
|
8
11
|
if TYPE_CHECKING:
|
|
9
12
|
from canvas_sdk.protocols.timeframe import Timeframe
|
|
10
13
|
from canvas_sdk.value_set.value_set import ValueSet
|
|
11
14
|
|
|
15
|
+
IS_SQLITE = connection.vendor == "sqlite"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ModelMetaclass(ModelBase):
|
|
19
|
+
"""A metaclass for configuring data models."""
|
|
20
|
+
|
|
21
|
+
def __new__(cls, name: str, bases: tuple, attrs: dict[str, Any], **kwargs: Any) -> type:
|
|
22
|
+
"""Create a new model class."""
|
|
23
|
+
meta = attrs.get("Meta")
|
|
24
|
+
|
|
25
|
+
for field_name, field in list(attrs.items()):
|
|
26
|
+
if isinstance(field, ArrayField) and IS_SQLITE:
|
|
27
|
+
# Replace ArrayField(CharField(...)) with JSONField
|
|
28
|
+
attrs[field_name] = models.JSONField(default=list)
|
|
29
|
+
|
|
30
|
+
# set managed to True if database is SQLite and not explicitly set
|
|
31
|
+
if meta and not hasattr(meta, "managed") and not getattr(meta, "abstract", False):
|
|
32
|
+
meta.managed = IS_SQLITE
|
|
33
|
+
|
|
34
|
+
new_class = cast(type["Model"], super().__new__(cls, name, bases, attrs, **kwargs))
|
|
35
|
+
|
|
36
|
+
return new_class
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class Model(models.Model, metaclass=ModelMetaclass):
|
|
40
|
+
"""A base model."""
|
|
41
|
+
|
|
42
|
+
class Meta:
|
|
43
|
+
abstract = True
|
|
44
|
+
|
|
45
|
+
dbid = models.BigAutoField(primary_key=True)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class IdentifiableModel(Model):
|
|
49
|
+
"""A model that includes an identifier."""
|
|
50
|
+
|
|
51
|
+
class Meta:
|
|
52
|
+
abstract = True
|
|
53
|
+
|
|
54
|
+
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
|
|
55
|
+
|
|
12
56
|
|
|
13
57
|
class BaseModelManager(models.Manager):
|
|
14
58
|
"""A base manager for models."""
|
canvas_sdk/v1/data/billing.py
CHANGED
|
@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Self
|
|
|
2
2
|
|
|
3
3
|
from django.db import models
|
|
4
4
|
|
|
5
|
-
from canvas_sdk.v1.data.base import ValueSetTimeframeLookupQuerySet
|
|
5
|
+
from canvas_sdk.v1.data.base import IdentifiableModel, Model, ValueSetTimeframeLookupQuerySet
|
|
6
6
|
from canvas_sdk.value_set.value_set import CodeConstants
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
@@ -29,20 +29,17 @@ class BillingLineItemStatus(models.TextChoices):
|
|
|
29
29
|
REMOVED = "removed", "Removed"
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
class BillingLineItem(
|
|
32
|
+
class BillingLineItem(IdentifiableModel):
|
|
33
33
|
"""BillingLineItem."""
|
|
34
34
|
|
|
35
35
|
class Meta:
|
|
36
|
-
managed = False
|
|
37
36
|
db_table = "canvas_sdk_data_api_billinglineitem_001"
|
|
38
37
|
|
|
39
38
|
# objects = BillingLineItemQuerySet.as_manager()
|
|
40
39
|
objects = models.Manager().from_queryset(BillingLineItemQuerySet)()
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
created = models.DateTimeField()
|
|
45
|
-
modified = models.DateTimeField()
|
|
41
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
42
|
+
modified = models.DateTimeField(auto_now=True)
|
|
46
43
|
note = models.ForeignKey(
|
|
47
44
|
"v1.Note",
|
|
48
45
|
on_delete=models.DO_NOTHING,
|
|
@@ -55,27 +52,25 @@ class BillingLineItem(models.Model):
|
|
|
55
52
|
related_name="billing_line_items",
|
|
56
53
|
null=True,
|
|
57
54
|
)
|
|
58
|
-
cpt = models.CharField()
|
|
55
|
+
cpt = models.CharField(max_length=10)
|
|
59
56
|
charge = models.DecimalField(decimal_places=2, max_digits=8)
|
|
60
|
-
description = models.CharField()
|
|
57
|
+
description = models.CharField(max_length=255)
|
|
61
58
|
units = models.IntegerField()
|
|
62
|
-
command_type = models.CharField()
|
|
59
|
+
command_type = models.CharField(max_length=50)
|
|
63
60
|
command_id = models.IntegerField()
|
|
64
|
-
status = models.CharField(choices=BillingLineItemStatus.choices)
|
|
61
|
+
status = models.CharField(choices=BillingLineItemStatus.choices, max_length=20)
|
|
65
62
|
|
|
66
63
|
|
|
67
|
-
class BillingLineItemModifier(
|
|
64
|
+
class BillingLineItemModifier(Model):
|
|
68
65
|
"""BillingLineItemModifier."""
|
|
69
66
|
|
|
70
67
|
class Meta:
|
|
71
|
-
managed = False
|
|
72
68
|
db_table = "canvas_sdk_data_api_billinglineitemmodifier_001"
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
display = models.CharField()
|
|
70
|
+
system = models.CharField(max_length=255)
|
|
71
|
+
version = models.CharField(max_length=255)
|
|
72
|
+
code = models.CharField(max_length=255)
|
|
73
|
+
display = models.CharField(max_length=1000)
|
|
79
74
|
user_selected = models.BooleanField()
|
|
80
75
|
line_item = models.ForeignKey(
|
|
81
76
|
"v1.BillingLineItem",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from django.db import models
|
|
2
2
|
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
3
5
|
|
|
4
6
|
class BusinessLineState(models.TextChoices):
|
|
5
7
|
"""BusinessLineStatus."""
|
|
@@ -9,21 +11,18 @@ class BusinessLineState(models.TextChoices):
|
|
|
9
11
|
STATE_ERROR = "error", "Deleted"
|
|
10
12
|
|
|
11
13
|
|
|
12
|
-
class BusinessLine(
|
|
14
|
+
class BusinessLine(IdentifiableModel):
|
|
13
15
|
"""Business Line."""
|
|
14
16
|
|
|
15
17
|
class Meta:
|
|
16
|
-
managed = False
|
|
17
18
|
db_table = "canvas_sdk_data_api_businessline_001"
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
dbid = models.BigIntegerField(primary_key=True)
|
|
21
|
-
name = models.CharField()
|
|
20
|
+
name = models.CharField(max_length=255)
|
|
22
21
|
description = models.TextField()
|
|
23
|
-
area_code = models.CharField()
|
|
24
|
-
subdomain = models.CharField()
|
|
22
|
+
area_code = models.CharField(max_length=3)
|
|
23
|
+
subdomain = models.CharField(max_length=100)
|
|
25
24
|
active = models.BooleanField()
|
|
26
|
-
state = models.CharField(max_length=20, choices=BusinessLineState)
|
|
25
|
+
state = models.CharField(max_length=20, choices=BusinessLineState.choices)
|
|
27
26
|
organization = models.ForeignKey(
|
|
28
27
|
"v1.Organization", on_delete=models.DO_NOTHING, related_name="business_lines"
|
|
29
28
|
)
|
canvas_sdk/v1/data/care_team.py
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from django.db import models
|
|
2
2
|
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel, Model
|
|
4
|
+
|
|
3
5
|
|
|
4
6
|
class CareTeamMembershipStatus(models.TextChoices):
|
|
5
7
|
"""CareTeamMembershipStatus."""
|
|
@@ -11,18 +13,16 @@ class CareTeamMembershipStatus(models.TextChoices):
|
|
|
11
13
|
ENTERED_IN_ERROR = "entered-in-error", "Entered in Error"
|
|
12
14
|
|
|
13
15
|
|
|
14
|
-
class CareTeamRole(
|
|
16
|
+
class CareTeamRole(Model):
|
|
15
17
|
"""CareTeamRole."""
|
|
16
18
|
|
|
17
19
|
class Meta:
|
|
18
|
-
managed = False
|
|
19
20
|
db_table = "canvas_sdk_data_api_careteamrole_001"
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
display = models.CharField()
|
|
22
|
+
system = models.CharField(max_length=255)
|
|
23
|
+
version = models.CharField(max_length=255)
|
|
24
|
+
code = models.CharField(max_length=255)
|
|
25
|
+
display = models.CharField(max_length=1000)
|
|
26
26
|
user_selected = models.BooleanField()
|
|
27
27
|
active = models.BooleanField()
|
|
28
28
|
|
|
@@ -30,17 +30,14 @@ class CareTeamRole(models.Model):
|
|
|
30
30
|
return self.display
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
class CareTeamMembership(
|
|
33
|
+
class CareTeamMembership(IdentifiableModel):
|
|
34
34
|
"""CareTeamMembership."""
|
|
35
35
|
|
|
36
36
|
class Meta:
|
|
37
|
-
managed = False
|
|
38
37
|
db_table = "canvas_sdk_data_api_careteammembership_001"
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
created = models.DateTimeField()
|
|
43
|
-
modified = models.DateTimeField()
|
|
39
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
40
|
+
modified = models.DateTimeField(auto_now=True)
|
|
44
41
|
patient = models.ForeignKey(
|
|
45
42
|
"v1.Patient", on_delete=models.DO_NOTHING, related_name="care_team_memberships", null=True
|
|
46
43
|
)
|
|
@@ -50,11 +47,11 @@ class CareTeamMembership(models.Model):
|
|
|
50
47
|
role = models.ForeignKey(
|
|
51
48
|
"v1.CareTeamRole", related_name="care_teams", on_delete=models.DO_NOTHING, null=True
|
|
52
49
|
)
|
|
53
|
-
status = models.CharField(choices=CareTeamMembershipStatus.choices)
|
|
50
|
+
status = models.CharField(choices=CareTeamMembershipStatus.choices, max_length=20)
|
|
54
51
|
lead = models.BooleanField()
|
|
55
|
-
role_code = models.CharField()
|
|
56
|
-
role_system = models.CharField()
|
|
57
|
-
role_display = models.CharField()
|
|
52
|
+
role_code = models.CharField(max_length=255)
|
|
53
|
+
role_system = models.CharField(max_length=255)
|
|
54
|
+
role_display = models.CharField(max_length=255)
|
|
58
55
|
|
|
59
56
|
def __str__(self) -> str:
|
|
60
57
|
return f"id={self.id}"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
from canvas_sdk.v1.data.base import Model
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class CDMCodeSystem(models.TextChoices):
|
|
7
|
+
"""CDMCodeSystem."""
|
|
8
|
+
|
|
9
|
+
INTERNAL = "INTERNAL", "Internal"
|
|
10
|
+
CPT = "CPT", "CPT"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChargeDescriptionMaster(Model):
|
|
14
|
+
"""Charge Description Master."""
|
|
15
|
+
|
|
16
|
+
class Meta:
|
|
17
|
+
db_table = "canvas_sdk_data_quality_and_revenue_chargedescriptionmaster_001"
|
|
18
|
+
|
|
19
|
+
cpt_code = models.CharField(max_length=10)
|
|
20
|
+
name = models.CharField(max_length=17000)
|
|
21
|
+
short_name = models.CharField(max_length=17000)
|
|
22
|
+
charge_amount = models.DecimalField(max_digits=8, decimal_places=2)
|
|
23
|
+
effective_date = models.DateField()
|
|
24
|
+
end_date = models.DateField(null=True)
|
|
25
|
+
code_system = models.CharField(choices=CDMCodeSystem.choices, max_length=10)
|
|
26
|
+
ndc_code = models.CharField(max_length=255)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
__exports__ = ("ChargeDescriptionMaster",)
|