canvas 0.45.0__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.

Files changed (62) hide show
  1. {canvas-0.45.0.dist-info → canvas-0.46.0.dist-info}/METADATA +3 -2
  2. {canvas-0.45.0.dist-info → canvas-0.46.0.dist-info}/RECORD +62 -57
  3. canvas_generated/messages/effects_pb2.py +2 -2
  4. canvas_generated/messages/effects_pb2.pyi +10 -0
  5. canvas_generated/messages/events_pb2.py +2 -2
  6. canvas_generated/messages/events_pb2.pyi +18 -0
  7. canvas_sdk/commands/commands/exam.py +2 -1
  8. canvas_sdk/commands/commands/immunization_statement.py +32 -0
  9. canvas_sdk/commands/commands/questionnaire/__init__.py +18 -3
  10. canvas_sdk/commands/commands/questionnaire/question.py +3 -2
  11. canvas_sdk/commands/commands/questionnaire/toggle_questions.py +68 -0
  12. canvas_sdk/commands/commands/review_of_systems.py +2 -1
  13. canvas_sdk/v1/data/__init__.py +17 -3
  14. canvas_sdk/v1/data/allergy_intolerance.py +16 -19
  15. canvas_sdk/v1/data/appointment.py +10 -14
  16. canvas_sdk/v1/data/assessment.py +9 -10
  17. canvas_sdk/v1/data/banner_alert.py +12 -12
  18. canvas_sdk/v1/data/base.py +45 -1
  19. canvas_sdk/v1/data/billing.py +13 -18
  20. canvas_sdk/v1/data/business_line.py +7 -8
  21. canvas_sdk/v1/data/care_team.py +14 -17
  22. canvas_sdk/v1/data/charge_description_master.py +29 -0
  23. canvas_sdk/v1/data/claim.py +87 -95
  24. canvas_sdk/v1/data/claim_line_item.py +17 -18
  25. canvas_sdk/v1/data/command.py +8 -9
  26. canvas_sdk/v1/data/condition.py +9 -12
  27. canvas_sdk/v1/data/coverage.py +47 -53
  28. canvas_sdk/v1/data/detected_issue.py +16 -20
  29. canvas_sdk/v1/data/device.py +20 -21
  30. canvas_sdk/v1/data/discount.py +8 -8
  31. canvas_sdk/v1/data/imaging.py +24 -30
  32. canvas_sdk/v1/data/invoice.py +3 -3
  33. canvas_sdk/v1/data/lab.py +65 -84
  34. canvas_sdk/v1/data/line_item_transaction.py +7 -9
  35. canvas_sdk/v1/data/medication.py +14 -17
  36. canvas_sdk/v1/data/message.py +10 -17
  37. canvas_sdk/v1/data/note.py +27 -36
  38. canvas_sdk/v1/data/observation.py +24 -33
  39. canvas_sdk/v1/data/organization.py +14 -15
  40. canvas_sdk/v1/data/patient.py +57 -68
  41. canvas_sdk/v1/data/patient_consent.py +14 -19
  42. canvas_sdk/v1/data/payment_collection.py +7 -8
  43. canvas_sdk/v1/data/payor_specific_charge.py +10 -12
  44. canvas_sdk/v1/data/posting.py +10 -18
  45. canvas_sdk/v1/data/practicelocation.py +17 -21
  46. canvas_sdk/v1/data/protocol_override.py +8 -10
  47. canvas_sdk/v1/data/questionnaire.py +56 -73
  48. canvas_sdk/v1/data/reason_for_visit.py +7 -9
  49. canvas_sdk/v1/data/staff.py +61 -57
  50. canvas_sdk/v1/data/task.py +21 -31
  51. canvas_sdk/v1/data/team.py +15 -18
  52. canvas_sdk/v1/data/user.py +3 -3
  53. canvas_sdk/v1/data/utils.py +6 -0
  54. plugin_runner/allowed-module-imports.json +1340 -0
  55. plugin_runner/generate_allowed_imports.py +97 -0
  56. plugin_runner/plugin_runner.py +9 -0
  57. plugin_runner/sandbox.py +50 -60
  58. protobufs/canvas_generated/messages/effects.proto +6 -0
  59. protobufs/canvas_generated/messages/events.proto +12 -1
  60. settings.py +56 -22
  61. {canvas-0.45.0.dist-info → canvas-0.46.0.dist-info}/WHEEL +0 -0
  62. {canvas-0.45.0.dist-info → canvas-0.46.0.dist-info}/entry_points.txt +0 -0
@@ -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(models.Model):
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
- id = models.UUIDField()
43
- dbid = models.BigIntegerField(primary_key=True)
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(models.Model):
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
- dbid = models.BigIntegerField(primary_key=True)
75
- system = models.CharField()
76
- version = models.CharField()
77
- code = models.CharField()
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(models.Model):
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
- id = models.UUIDField()
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
  )
@@ -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(models.Model):
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
- dbid = models.BigIntegerField(primary_key=True)
22
- system = models.CharField()
23
- version = models.CharField()
24
- code = models.CharField()
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(models.Model):
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
- id = models.UUIDField()
41
- dbid = models.BigIntegerField(primary_key=True)
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",)
@@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Self
3
3
 
4
4
  from django.db import models
5
5
 
6
+ from canvas_sdk.v1.data.base import IdentifiableModel, Model
6
7
  from canvas_sdk.v1.data.common import PersonSex
7
8
  from canvas_sdk.v1.data.coverage import CoverageRelationshipCode, CoverageType
8
9
  from canvas_sdk.v1.data.fields import ChoiceArrayField
@@ -20,15 +21,12 @@ class InstallmentPlanStatus(models.TextChoices):
20
21
  CANCELLED = "cancelled", "Cancelled"
21
22
 
22
23
 
23
- class InstallmentPlan(models.Model):
24
+ class InstallmentPlan(Model):
24
25
  """InstallmentPlan."""
25
26
 
26
27
  class Meta:
27
- managed = False
28
28
  db_table = "canvas_sdk_data_quality_and_revenue_installmentplan_001"
29
29
 
30
- dbid = models.BigIntegerField(primary_key=True)
31
-
32
30
  creator = models.ForeignKey("v1.CanvasUser", on_delete=models.CASCADE)
33
31
  patient = models.ForeignKey(
34
32
  "v1.Patient", on_delete=models.CASCADE, related_name="installment_plans"
@@ -37,8 +35,8 @@ class InstallmentPlan(models.Model):
37
35
  status = models.CharField(choices=InstallmentPlanStatus.choices, max_length=10)
38
36
  expected_payoff_date = models.DateField()
39
37
 
40
- created = models.DateTimeField()
41
- modified = models.DateTimeField()
38
+ created = models.DateTimeField(auto_now_add=True)
39
+ modified = models.DateTimeField(auto_now=True)
42
40
 
43
41
 
44
42
  class ClaimQueueColumns(models.TextChoices):
@@ -75,23 +73,23 @@ class ClaimQueues(models.IntegerChoices):
75
73
  TRASH = 10, "Trash"
76
74
 
77
75
 
78
- class ClaimQueue(models.Model):
76
+ class ClaimQueue(Model):
79
77
  """ClaimQueue."""
80
78
 
81
79
  class Meta:
82
- managed = False
83
80
  db_table = "canvas_sdk_data_quality_and_revenue_queue_001"
84
81
 
85
- dbid = models.BigIntegerField(primary_key=True)
86
82
  queue_sort_ordering = models.IntegerField()
87
- name = models.CharField()
88
- display_name = models.CharField()
89
- description = models.CharField()
83
+ name = models.CharField(max_length=100)
84
+ display_name = models.CharField(max_length=100)
85
+ description = models.CharField(max_length=500)
90
86
  show_in_revenue = models.BooleanField()
91
- visible_columns = ChoiceArrayField(models.CharField(choices=ClaimQueueColumns.choices))
87
+ visible_columns = ChoiceArrayField(
88
+ models.CharField(choices=ClaimQueueColumns.choices, max_length=64)
89
+ )
92
90
 
93
- created = models.DateTimeField()
94
- modified = models.DateTimeField()
91
+ created = models.DateTimeField(auto_now_add=True)
92
+ modified = models.DateTimeField(auto_now=True)
95
93
 
96
94
 
97
95
  class ClaimPayerOrder(models.TextChoices):
@@ -126,17 +124,14 @@ class ClaimCoverageQuerySet(models.QuerySet):
126
124
  return self.filter(active=True)
127
125
 
128
126
 
129
- class ClaimCoverage(models.Model):
127
+ class ClaimCoverage(Model):
130
128
  """A model that represents the link between a claim and a specific insurance coverage."""
131
129
 
132
130
  class Meta:
133
- managed = False
134
131
  db_table = "canvas_sdk_data_quality_and_revenue_claimcoverage_001"
135
132
 
136
133
  objects = ClaimCoverageQuerySet.as_manager()
137
134
 
138
- dbid = models.BigIntegerField(primary_key=True)
139
-
140
135
  claim = models.ForeignKey("Claim", on_delete=models.CASCADE, related_name="coverages")
141
136
 
142
137
  coverage = models.ForeignKey(
@@ -144,75 +139,75 @@ class ClaimCoverage(models.Model):
144
139
  )
145
140
 
146
141
  active = models.BooleanField()
147
- payer_name = models.CharField()
148
- payer_id = models.CharField()
149
- payer_typecode = models.CharField()
150
- payer_order = models.CharField(choices=ClaimPayerOrder.choices)
151
- payer_addr1 = models.CharField()
152
- payer_addr2 = models.CharField()
153
- payer_city = models.CharField()
154
- payer_state = models.CharField()
155
- payer_zip = models.CharField()
156
- payer_plan_type = models.CharField(choices=ClaimTypeCode.choices)
157
- coverage_type = models.CharField(choices=CoverageType.choices)
158
-
159
- subscriber_employer = models.CharField()
160
- subscriber_group = models.CharField()
161
- subscriber_number = models.CharField()
162
- subscriber_plan = models.CharField()
163
- subscriber_dob = models.CharField()
164
- subscriber_first_name = models.CharField()
165
- subscriber_last_name = models.CharField()
166
- subscriber_middle_name = models.CharField()
167
- subscriber_phone = models.CharField()
168
- subscriber_sex = models.CharField(choices=PersonSex.choices)
169
- subscriber_addr1 = models.CharField()
170
- subscriber_addr2 = models.CharField()
171
- subscriber_city = models.CharField()
172
- subscriber_state = models.CharField()
173
- subscriber_zip = models.CharField()
174
- subscriber_country = models.CharField()
175
- patient_relationship_to_subscriber = models.CharField(choices=CoverageRelationshipCode.choices)
176
-
177
- pay_to_addr1 = models.CharField()
178
- pay_to_addr2 = models.CharField()
179
- pay_to_city = models.CharField()
180
- pay_to_state = models.CharField()
181
- pay_to_zip = models.CharField()
182
-
183
- resubmission_code = models.CharField()
184
- payer_icn = models.CharField()
185
-
186
- created = models.DateTimeField()
187
- modified = models.DateTimeField()
188
-
189
-
190
- class ClaimPatient(models.Model):
142
+ payer_name = models.CharField(max_length=255)
143
+ payer_id = models.CharField(max_length=255)
144
+ payer_typecode = models.CharField(max_length=2)
145
+ payer_order = models.CharField(choices=ClaimPayerOrder.choices, max_length=10)
146
+ payer_addr1 = models.CharField(max_length=255)
147
+ payer_addr2 = models.CharField(max_length=255)
148
+ payer_city = models.CharField(max_length=255)
149
+ payer_state = models.CharField(max_length=2)
150
+ payer_zip = models.CharField(max_length=255)
151
+ payer_plan_type = models.CharField(choices=ClaimTypeCode.choices, max_length=20)
152
+ coverage_type = models.CharField(choices=CoverageType.choices, max_length=64)
153
+
154
+ subscriber_employer = models.CharField(max_length=255)
155
+ subscriber_group = models.CharField(max_length=255)
156
+ subscriber_number = models.CharField(max_length=100)
157
+ subscriber_plan = models.CharField(max_length=255)
158
+ subscriber_dob = models.CharField(max_length=10)
159
+ subscriber_first_name = models.CharField(max_length=255)
160
+ subscriber_last_name = models.CharField(max_length=255)
161
+ subscriber_middle_name = models.CharField(max_length=255)
162
+ subscriber_phone = models.CharField(max_length=50)
163
+ subscriber_sex = models.CharField(choices=PersonSex.choices, max_length=3)
164
+ subscriber_addr1 = models.CharField(max_length=255)
165
+ subscriber_addr2 = models.CharField(max_length=255)
166
+ subscriber_city = models.CharField(max_length=255)
167
+ subscriber_state = models.CharField(max_length=2)
168
+ subscriber_zip = models.CharField(max_length=255)
169
+ subscriber_country = models.CharField(max_length=50)
170
+ patient_relationship_to_subscriber = models.CharField(
171
+ choices=CoverageRelationshipCode.choices, max_length=2
172
+ )
173
+
174
+ pay_to_addr1 = models.CharField(max_length=255)
175
+ pay_to_addr2 = models.CharField(max_length=255)
176
+ pay_to_city = models.CharField(max_length=255)
177
+ pay_to_state = models.CharField(max_length=2)
178
+ pay_to_zip = models.CharField(max_length=255)
179
+
180
+ resubmission_code = models.CharField(max_length=1)
181
+ payer_icn = models.CharField(max_length=250)
182
+
183
+ created = models.DateTimeField(auto_now_add=True)
184
+ modified = models.DateTimeField(auto_now=True)
185
+
186
+
187
+ class ClaimPatient(Model):
191
188
  """ClaimPatient."""
192
189
 
193
190
  class Meta:
194
- managed = False
195
191
  db_table = "canvas_sdk_data_quality_and_revenue_claimpatient_001"
196
192
 
197
- dbid = models.BigIntegerField(primary_key=True)
198
193
  claim = models.OneToOneField("v1.Claim", on_delete=models.CASCADE, related_name="patient")
199
- photo = models.CharField()
200
- dob = models.CharField()
201
- first_name = models.CharField()
202
- last_name = models.CharField()
203
- middle_name = models.CharField()
204
- phone = models.CharField()
205
- sex = models.CharField(choices=PersonSex.choices)
206
- ssn = models.CharField()
207
- addr1 = models.CharField()
208
- addr2 = models.CharField()
209
- city = models.CharField()
210
- state = models.CharField()
211
- zip = models.CharField()
212
- country = models.CharField()
213
-
214
- created = models.DateTimeField()
215
- modified = models.DateTimeField()
194
+ photo = models.CharField(max_length=512)
195
+ dob = models.CharField(max_length=10)
196
+ first_name = models.CharField(max_length=255)
197
+ last_name = models.CharField(max_length=255)
198
+ middle_name = models.CharField(max_length=255)
199
+ phone = models.CharField(max_length=50)
200
+ sex = models.CharField(choices=PersonSex.choices, max_length=3)
201
+ ssn = models.CharField(max_length=10)
202
+ addr1 = models.CharField(max_length=255)
203
+ addr2 = models.CharField(max_length=255)
204
+ city = models.CharField(max_length=255)
205
+ state = models.CharField(max_length=2)
206
+ zip = models.CharField(max_length=255)
207
+ country = models.CharField(max_length=50)
208
+
209
+ created = models.DateTimeField(auto_now_add=True)
210
+ modified = models.DateTimeField(auto_now=True)
216
211
 
217
212
 
218
213
  class ClaimQueryset(models.QuerySet):
@@ -223,17 +218,14 @@ class ClaimQueryset(models.QuerySet):
223
218
  return self.exclude(current_queue__queue_sort_ordering=ClaimQueues.TRASH)
224
219
 
225
220
 
226
- class Claim(models.Model):
221
+ class Claim(IdentifiableModel):
227
222
  """Claim."""
228
223
 
229
224
  class Meta:
230
- managed = False
231
225
  db_table = "canvas_sdk_data_quality_and_revenue_claim_001"
232
226
 
233
227
  objects = ClaimQueryset.as_manager()
234
228
 
235
- id = models.UUIDField()
236
- dbid = models.BigIntegerField(primary_key=True)
237
229
  note = models.ForeignKey("v1.Note", on_delete=models.PROTECT, related_name="claims", null=True)
238
230
  installment_plan = models.ForeignKey(
239
231
  InstallmentPlan, on_delete=models.SET_NULL, related_name="claims", null=True
@@ -246,23 +238,23 @@ class Claim(models.Model):
246
238
 
247
239
  accept_assign = models.BooleanField()
248
240
  auto_accident = models.BooleanField()
249
- auto_accident_state = models.CharField()
241
+ auto_accident_state = models.CharField(max_length=2)
250
242
  employment_related = models.BooleanField()
251
243
  other_accident = models.BooleanField()
252
- accident_code = models.CharField()
244
+ accident_code = models.CharField(max_length=10)
253
245
  illness_date = models.DateField()
254
- remote_batch_id = models.CharField()
255
- remote_file_id = models.CharField()
256
- prior_auth = models.CharField()
246
+ remote_batch_id = models.CharField(max_length=100)
247
+ remote_file_id = models.CharField(max_length=100)
248
+ prior_auth = models.CharField(max_length=100)
257
249
 
258
- narrative = models.CharField()
259
- account_number = models.CharField()
250
+ narrative = models.CharField(max_length=2500)
251
+ account_number = models.CharField(max_length=255)
260
252
  snoozed_until = models.DateField()
261
253
 
262
254
  patient_balance = models.DecimalField(max_digits=8, decimal_places=2)
263
255
  aggregate_coverage_balance = models.DecimalField(max_digits=8, decimal_places=2)
264
- created = models.DateTimeField()
265
- modified = models.DateTimeField()
256
+ created = models.DateTimeField(auto_now_add=True)
257
+ modified = models.DateTimeField(auto_now=True)
266
258
 
267
259
  @property
268
260
  def total_charges(self) -> Decimal:
@@ -5,6 +5,7 @@ from django.db import models
5
5
  from django.db.models import Q, Sum
6
6
  from django.db.models.functions import Coalesce
7
7
 
8
+ from canvas_sdk.v1.data.base import Model
8
9
  from canvas_sdk.v1.data.note import PracticeLocationPOS
9
10
 
10
11
 
@@ -105,36 +106,34 @@ class ClaimLineItemQuerySet(models.QuerySet):
105
106
  return self.exclude(proc_code=LineItemCodes.UNLINKED.value).apply_ordering()
106
107
 
107
108
 
108
- class ClaimLineItem(models.Model):
109
+ class ClaimLineItem(Model):
109
110
  """ClaimLineItem."""
110
111
 
111
112
  class Meta:
112
- managed = False
113
113
  db_table = "canvas_sdk_data_quality_and_revenue_claimlineitem_001"
114
114
 
115
115
  objects = ClaimLineItemQuerySet.as_manager()
116
116
 
117
- dbid = models.BigIntegerField(primary_key=True)
118
117
  billing_line_item = models.ForeignKey("v1.BillingLineItem", on_delete=models.CASCADE, null=True)
119
118
  claim = models.ForeignKey("v1.Claim", on_delete=models.CASCADE, related_name="line_items")
120
- status = models.CharField(choices=ClaimLineItemStatus.choices)
119
+ status = models.CharField(choices=ClaimLineItemStatus.choices, max_length=10)
121
120
  charge = models.DecimalField(max_digits=8, decimal_places=2)
122
- from_date = models.CharField()
123
- thru_date = models.CharField()
124
- narrative = models.CharField()
125
- ndc_code = models.CharField()
126
- ndc_dosage = models.CharField()
127
- ndc_measure = models.CharField()
128
- place_of_service = models.CharField(choices=PracticeLocationPOS.choices)
129
- proc_code = models.CharField()
130
- display = models.CharField()
131
- remote_chg_id = models.CharField()
121
+ from_date = models.CharField(max_length=10)
122
+ thru_date = models.CharField(max_length=10)
123
+ narrative = models.CharField(max_length=2000)
124
+ ndc_code = models.CharField(max_length=100)
125
+ ndc_dosage = models.CharField(max_length=100)
126
+ ndc_measure = models.CharField(max_length=100)
127
+ place_of_service = models.CharField(choices=PracticeLocationPOS.choices, max_length=2)
128
+ proc_code = models.CharField(max_length=10)
129
+ display = models.CharField(max_length=255)
130
+ remote_chg_id = models.CharField(max_length=100)
132
131
  units = models.IntegerField()
133
- epsdt = models.CharField()
134
- family_planning = models.CharField(choices=FamilyPlanningOptions.choices)
132
+ epsdt = models.CharField(max_length=2)
133
+ family_planning = models.CharField(choices=FamilyPlanningOptions.choices, max_length=1)
135
134
 
136
- created = models.DateTimeField()
137
- modified = models.DateTimeField()
135
+ created = models.DateTimeField(auto_now_add=True)
136
+ modified = models.DateTimeField(auto_now=True)
138
137
 
139
138
 
140
139
  __exports__ = ("ClaimLineItem", "ClaimLineItemStatus", "LineItemCodes", "FamilyPlanningOptions")
@@ -1,18 +1,17 @@
1
1
  from django.apps import apps
2
2
  from django.db import models
3
3
 
4
+ from canvas_sdk.v1.data.base import IdentifiableModel
4
5
 
5
- class Command(models.Model):
6
+
7
+ class Command(IdentifiableModel):
6
8
  """Command."""
7
9
 
8
10
  class Meta:
9
- managed = False
10
11
  db_table = "canvas_sdk_data_commands_command_001"
11
12
 
12
- id = models.UUIDField()
13
- dbid = models.BigIntegerField(primary_key=True)
14
- created = models.DateTimeField()
15
- modified = models.DateTimeField()
13
+ created = models.DateTimeField(auto_now_add=True)
14
+ modified = models.DateTimeField(auto_now=True)
16
15
  originator = models.ForeignKey(
17
16
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="commands_originated"
18
17
  )
@@ -25,13 +24,13 @@ class Command(models.Model):
25
24
  null=True,
26
25
  related_name="commands_entered_in_error",
27
26
  )
28
- state = models.CharField()
27
+ state = models.CharField(max_length=20)
29
28
  patient = models.ForeignKey("v1.Patient", on_delete=models.DO_NOTHING, null=True)
30
29
  note = models.ForeignKey("v1.Note", on_delete=models.DO_NOTHING, related_name="commands")
31
30
  schema_key = models.TextField()
32
31
  data = models.JSONField()
33
- origination_source = models.CharField()
34
- anchor_object_type = models.CharField()
32
+ origination_source = models.CharField(max_length=20)
33
+ anchor_object_type = models.CharField(max_length=100)
35
34
  anchor_object_dbid = models.BigIntegerField()
36
35
 
37
36
  @property
@@ -8,6 +8,8 @@ from canvas_sdk.v1.data.base import (
8
8
  BaseQuerySet,
9
9
  CommittableQuerySetMixin,
10
10
  ForPatientQuerySetMixin,
11
+ IdentifiableModel,
12
+ Model,
11
13
  ValueSetLookupQuerySetMixin,
12
14
  )
13
15
 
@@ -38,17 +40,14 @@ class ConditionQuerySet(
38
40
  ConditionManager = BaseModelManager.from_queryset(ConditionQuerySet)
39
41
 
40
42
 
41
- class Condition(models.Model):
43
+ class Condition(IdentifiableModel):
42
44
  """Condition."""
43
45
 
44
46
  class Meta:
45
- managed = False
46
47
  db_table = "canvas_sdk_data_api_condition_001"
47
48
 
48
49
  objects = cast(ConditionQuerySet, ConditionManager())
49
50
 
50
- id = models.UUIDField()
51
- dbid = models.BigIntegerField(primary_key=True)
52
51
  deleted = models.BooleanField()
53
52
  entered_in_error = models.ForeignKey(
54
53
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
@@ -61,22 +60,20 @@ class Condition(models.Model):
61
60
  )
62
61
  onset_date = models.DateField()
63
62
  resolution_date = models.DateField()
64
- clinical_status = models.CharField(choices=ClinicalStatus.choices)
63
+ clinical_status = models.CharField(choices=ClinicalStatus.choices, max_length=20)
65
64
  surgical = models.BooleanField()
66
65
 
67
66
 
68
- class ConditionCoding(models.Model):
67
+ class ConditionCoding(Model):
69
68
  """ConditionCoding."""
70
69
 
71
70
  class Meta:
72
- managed = False
73
71
  db_table = "canvas_sdk_data_api_conditioncoding_001"
74
72
 
75
- dbid = models.BigIntegerField(primary_key=True)
76
- system = models.CharField()
77
- version = models.CharField()
78
- code = models.CharField()
79
- display = models.CharField()
73
+ system = models.CharField(max_length=255)
74
+ version = models.CharField(max_length=255)
75
+ code = models.CharField(max_length=255)
76
+ display = models.CharField(max_length=1000)
80
77
  user_selected = models.BooleanField()
81
78
  condition = models.ForeignKey(
82
79
  Condition, on_delete=models.DO_NOTHING, related_name="codings", null=True