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
canvas_sdk/v1/data/lab.py CHANGED
@@ -7,6 +7,8 @@ from canvas_sdk.v1.data.base import (
7
7
  BaseQuerySet,
8
8
  CommittableQuerySetMixin,
9
9
  ForPatientQuerySetMixin,
10
+ IdentifiableModel,
11
+ Model,
10
12
  TimeframeLookupQuerySetMixin,
11
13
  ValueSetLookupQuerySet,
12
14
  )
@@ -30,37 +32,34 @@ class TransmissionType(models.TextChoices):
30
32
  MANUAL = "M", "manual"
31
33
 
32
34
 
33
- class LabReport(models.Model):
35
+ class LabReport(IdentifiableModel):
34
36
  """A class representing a lab report."""
35
37
 
36
38
  class Meta:
37
- managed = False
38
39
  db_table = "canvas_sdk_data_api_labreport_001"
39
40
 
40
41
  objects = cast(LabReportQuerySet, LabReportManager())
41
42
 
42
- id = models.UUIDField()
43
- dbid = models.BigIntegerField(primary_key=True)
44
- created = models.DateTimeField()
45
- modified = models.DateTimeField()
46
- review_mode = models.CharField()
43
+ created = models.DateTimeField(auto_now_add=True)
44
+ modified = models.DateTimeField(auto_now=True)
45
+ review_mode = models.CharField(max_length=2)
47
46
  junked = models.BooleanField()
48
47
  requires_signature = models.BooleanField()
49
48
  assigned_date = models.DateTimeField()
50
49
  patient = models.ForeignKey(
51
50
  "v1.Patient", on_delete=models.DO_NOTHING, related_name="lab_reports", null=True
52
51
  )
53
- transmission_type = models.CharField(choices=TransmissionType)
52
+ transmission_type = models.CharField(choices=TransmissionType.choices, max_length=10)
54
53
  for_test_only = models.BooleanField()
55
- external_id = models.CharField()
54
+ external_id = models.CharField(max_length=40)
56
55
  version = models.IntegerField()
57
- requisition_number = models.CharField()
56
+ requisition_number = models.CharField(max_length=40)
58
57
  review = models.ForeignKey(
59
58
  "LabReview", on_delete=models.DO_NOTHING, related_name="reports", null=True
60
59
  )
61
60
  original_date = models.DateTimeField()
62
61
  date_performed = models.DateTimeField()
63
- custom_document_name = models.CharField()
62
+ custom_document_name = models.CharField(max_length=500)
64
63
  originator = models.ForeignKey(
65
64
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
66
65
  )
@@ -82,19 +81,16 @@ class LabReviewQuerySet(BaseQuerySet, CommittableQuerySetMixin, ForPatientQueryS
82
81
  LabReviewManager = BaseModelManager.from_queryset(LabReviewQuerySet)
83
82
 
84
83
 
85
- class LabReview(models.Model):
84
+ class LabReview(IdentifiableModel):
86
85
  """A class representing a lab review."""
87
86
 
88
87
  class Meta:
89
- managed = False
90
88
  db_table = "canvas_sdk_data_api_labreview_001"
91
89
 
92
90
  objects = cast(LabReviewQuerySet, LabReviewManager())
93
91
 
94
- id = models.UUIDField()
95
- dbid = models.BigIntegerField(primary_key=True)
96
- created = models.DateTimeField()
97
- modified = models.DateTimeField()
92
+ created = models.DateTimeField(auto_now_add=True)
93
+ modified = models.DateTimeField(auto_now=True)
98
94
  originator = models.ForeignKey(
99
95
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
100
96
  )
@@ -106,12 +102,12 @@ class LabReview(models.Model):
106
102
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
107
103
  )
108
104
  internal_comment = models.TextField()
109
- message_to_patient = models.CharField()
110
- status = models.CharField()
105
+ message_to_patient = models.CharField(max_length=2048)
106
+ status = models.CharField(max_length=50)
111
107
  patient = models.ForeignKey(
112
108
  "v1.Patient", on_delete=models.DO_NOTHING, related_name="lab_reviews", null=True
113
109
  )
114
- patient_communication_method = models.CharField()
110
+ patient_communication_method = models.CharField(max_length=30)
115
111
 
116
112
 
117
113
  class LabValueTimeframeLookupQuerySetMixin(TimeframeLookupQuerySetMixin):
@@ -129,51 +125,46 @@ class LabValueQuerySet(ValueSetLookupQuerySet, LabValueTimeframeLookupQuerySetMi
129
125
  pass
130
126
 
131
127
 
132
- class LabValue(models.Model):
128
+ class LabValue(IdentifiableModel):
133
129
  """A class representing a lab value."""
134
130
 
135
131
  class Meta:
136
- managed = False
137
132
  db_table = "canvas_sdk_data_api_labvalue_001"
138
133
 
139
134
  objects = LabValueQuerySet.as_manager()
140
135
 
141
- id = models.UUIDField()
142
- dbid = models.BigIntegerField(primary_key=True)
143
- created = models.DateTimeField()
144
- modified = models.DateTimeField()
136
+ created = models.DateTimeField(auto_now_add=True)
137
+ modified = models.DateTimeField(auto_now=True)
145
138
  report = models.ForeignKey(
146
139
  "LabReport", on_delete=models.DO_NOTHING, related_name="values", null=True
147
140
  )
148
141
  value = models.TextField()
149
- units = models.CharField()
150
- abnormal_flag = models.CharField()
151
- reference_range = models.CharField()
152
- low_threshold = models.CharField()
153
- high_threshold = models.CharField()
142
+ units = models.CharField(max_length=30)
143
+ abnormal_flag = models.CharField(max_length=128)
144
+ reference_range = models.CharField(max_length=128)
145
+ low_threshold = models.CharField(max_length=30)
146
+ high_threshold = models.CharField(max_length=30)
154
147
  comment = models.TextField()
155
- observation_status = models.CharField()
148
+ observation_status = models.CharField(max_length=24)
156
149
 
157
150
 
158
- class LabValueCoding(models.Model):
151
+ class LabValueCoding(Model):
159
152
  """A class representing a lab value coding."""
160
153
 
161
154
  class Meta:
162
- managed = False
163
155
  db_table = "canvas_sdk_data_api_labvaluecoding_001"
164
156
 
165
- dbid = models.BigIntegerField(primary_key=True)
166
- created = models.DateTimeField()
167
- modified = models.DateTimeField()
157
+ created = models.DateTimeField(auto_now_add=True)
158
+ modified = models.DateTimeField(auto_now=True)
168
159
  value = models.ForeignKey(
169
160
  LabValue, on_delete=models.DO_NOTHING, related_name="codings", null=True
170
161
  )
171
- code = models.CharField()
172
- name = models.CharField()
173
- system = models.CharField()
162
+ code = models.CharField(max_length=128)
163
+ name = models.CharField(max_length=256)
164
+ system = models.CharField(max_length=128)
174
165
 
175
166
 
176
- class LabOrder(models.Model):
167
+ class LabOrder(IdentifiableModel):
177
168
  """A class representing a lab order."""
178
169
 
179
170
  class SpecimenCollectionType(models.TextChoices):
@@ -199,13 +190,10 @@ class LabOrder(models.Model):
199
190
  MANUAL_PROCESSING_STATUS_FLAGGED = "FLAGGED", "Flagged"
200
191
 
201
192
  class Meta:
202
- managed = False
203
193
  db_table = "canvas_sdk_data_api_laborder_001"
204
194
 
205
- id = models.UUIDField()
206
- dbid = models.BigIntegerField(primary_key=True)
207
- created = models.DateTimeField()
208
- modified = models.DateTimeField()
195
+ created = models.DateTimeField(auto_now_add=True)
196
+ modified = models.DateTimeField(auto_now=True)
209
197
  originator = models.ForeignKey(
210
198
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
211
199
  )
@@ -219,28 +207,34 @@ class LabOrder(models.Model):
219
207
  patient = models.ForeignKey(
220
208
  "v1.Patient", on_delete=models.DO_NOTHING, related_name="lab_orders", null=True
221
209
  )
222
- ontology_lab_partner = models.CharField()
210
+ ontology_lab_partner = models.CharField(max_length=128)
223
211
  # TODO - uncomment when the Note model is finished
224
212
  # note = models.ForeignKey("Note", on_delete=models.DO_NOTHING, null=True)
225
- comment = models.CharField()
226
- requisition_number = models.CharField()
213
+ comment = models.CharField(max_length=128)
214
+ requisition_number = models.CharField(max_length=32)
227
215
  is_patient_bill = models.BooleanField(null=True)
228
216
  date_ordered = models.DateTimeField()
229
217
  fasting_status = models.BooleanField(null=True)
230
- specimen_collection_type = models.CharField(choices=SpecimenCollectionType, null=True)
231
- transmission_type = models.CharField(choices=TransmissionType, null=True)
232
- courtesy_copy_type = models.CharField(choices=CourtesyCopyType, null=True)
233
- courtesy_copy_number = models.CharField()
234
- courtesy_copy_text = models.CharField()
218
+ specimen_collection_type = models.CharField(
219
+ choices=SpecimenCollectionType.choices, null=True, max_length=10
220
+ )
221
+ transmission_type = models.CharField(choices=TransmissionType.choices, null=True, max_length=10)
222
+ courtesy_copy_type = models.CharField(
223
+ choices=CourtesyCopyType.choices, null=True, max_length=10
224
+ )
225
+ courtesy_copy_number = models.CharField(max_length=32)
226
+ courtesy_copy_text = models.CharField(max_length=64)
235
227
  ordering_provider = models.ForeignKey(Staff, on_delete=models.DO_NOTHING, null=True)
236
228
  parent_order = models.ForeignKey("LabOrder", on_delete=models.DO_NOTHING, null=True)
237
- healthgorilla_id = models.CharField()
238
- manual_processing_status = models.CharField(choices=ManualProcessingStatus)
239
- manual_processing_comment = models.CharField()
229
+ healthgorilla_id = models.CharField(max_length=40)
230
+ manual_processing_status = models.CharField(
231
+ choices=ManualProcessingStatus.choices, null=True, max_length=16
232
+ )
233
+ manual_processing_comment = models.TextField(null=True)
240
234
  labcorp_abn_url = models.URLField()
241
235
 
242
236
 
243
- class LabOrderReason(models.Model):
237
+ class LabOrderReason(Model):
244
238
  """A class representing a lab order reason."""
245
239
 
246
240
  class LabReasonMode(models.TextChoices):
@@ -252,12 +246,10 @@ class LabOrderReason(models.Model):
252
246
  UNKNOWN = "UNK", "unknown"
253
247
 
254
248
  class Meta:
255
- managed = False
256
249
  db_table = "canvas_sdk_data_api_laborderreason_001"
257
250
 
258
- dbid = models.BigIntegerField(primary_key=True)
259
- created = models.DateTimeField()
260
- modified = models.DateTimeField()
251
+ created = models.DateTimeField(auto_now_add=True)
252
+ modified = models.DateTimeField(auto_now=True)
261
253
  originator = models.ForeignKey(
262
254
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
263
255
  )
@@ -274,16 +266,14 @@ class LabOrderReason(models.Model):
274
266
  mode = models.CharField(max_length=30, choices=LabReasonMode)
275
267
 
276
268
 
277
- class LabOrderReasonCondition(models.Model):
269
+ class LabOrderReasonCondition(Model):
278
270
  """A class representing a lab order reason's condition."""
279
271
 
280
272
  class Meta:
281
- managed = False
282
273
  db_table = "canvas_sdk_data_api_laborderreasoncondition_001"
283
274
 
284
- dbid = models.BigIntegerField(primary_key=True)
285
- created = models.DateTimeField()
286
- modified = models.DateTimeField()
275
+ created = models.DateTimeField(auto_now_add=True)
276
+ modified = models.DateTimeField(auto_now=True)
287
277
  reason = models.ForeignKey(
288
278
  LabOrderReason, on_delete=models.DO_NOTHING, related_name="reason_conditions", null=True
289
279
  )
@@ -295,7 +285,7 @@ class LabOrderReasonCondition(models.Model):
295
285
  )
296
286
 
297
287
 
298
- class LabTest(models.Model):
288
+ class LabTest(IdentifiableModel):
299
289
  """A class representing a lab test."""
300
290
 
301
291
  class LabTestOrderStatus(models.TextChoices):
@@ -312,23 +302,20 @@ class LabTest(models.Model):
312
302
  INACTIVE = "IN", "inactive"
313
303
 
314
304
  class Meta:
315
- managed = False
316
305
  db_table = "canvas_sdk_data_api_labtest_001"
317
306
 
318
- id = models.UUIDField()
319
- dbid = models.BigIntegerField(primary_key=True)
320
307
  ontology_test_name = models.CharField(max_length=512, blank=True, default="")
321
308
  ontology_test_code = models.CharField(max_length=512, blank=True, default="")
322
- status = models.CharField(max_length=30, choices=LabTestOrderStatus)
309
+ status = models.CharField(max_length=30, choices=LabTestOrderStatus.choices)
323
310
  report = models.ForeignKey(
324
311
  LabReport, on_delete=models.DO_NOTHING, related_name="tests", null=True
325
312
  )
326
313
  aoe_code = models.CharField(max_length=10, default="")
327
314
  procedure_class = models.CharField(max_length=10, default="")
328
- specimen_type = models.CharField()
329
- specimen_source_code = models.CharField()
330
- specimen_source_description = models.CharField()
331
- specimen_source_coding_system = models.CharField()
315
+ specimen_type = models.CharField(max_length=26)
316
+ specimen_source_code = models.CharField(max_length=5)
317
+ specimen_source_description = models.CharField(max_length=255)
318
+ specimen_source_coding_system = models.CharField(max_length=5)
332
319
  order = models.ForeignKey(
333
320
  LabOrder, on_delete=models.DO_NOTHING, related_name="tests", null=True
334
321
  )
@@ -337,17 +324,14 @@ class LabTest(models.Model):
337
324
  return f"{self.ontology_test_name}: f{self.ontology_test_code}"
338
325
 
339
326
 
340
- class LabPartner(models.Model):
327
+ class LabPartner(IdentifiableModel):
341
328
  """A class representing a lab partner."""
342
329
 
343
330
  class Meta:
344
- managed = False
345
331
  db_table = "canvas_sdk_data_lab_partner_001"
346
332
 
347
333
  objects: models.Manager["LabPartner"]
348
334
 
349
- id = models.UUIDField()
350
- dbid = models.BigIntegerField(primary_key=True)
351
335
  name = models.CharField(max_length=256)
352
336
  active = models.BooleanField()
353
337
  electronic_ordering_enabled = models.BooleanField()
@@ -355,17 +339,14 @@ class LabPartner(models.Model):
355
339
  default_lab_account_number = models.CharField(max_length=256)
356
340
 
357
341
 
358
- class LabPartnerTest(models.Model):
342
+ class LabPartnerTest(IdentifiableModel):
359
343
  """A class representing a lab partner's test."""
360
344
 
361
345
  class Meta:
362
- managed = False
363
346
  db_table = "canvas_sdk_data_lab_partner_test_001"
364
347
 
365
348
  objects: models.Manager["LabPartnerTest"]
366
349
 
367
- id = models.UUIDField()
368
- dbid = models.BigIntegerField(primary_key=True)
369
350
  lab_partner = models.ForeignKey(
370
351
  "LabPartner", on_delete=models.DO_NOTHING, related_name="available_tests"
371
352
  )
@@ -1,6 +1,8 @@
1
1
  from django.db import models
2
2
  from django.db.models import QuerySet
3
3
 
4
+ from canvas_sdk.v1.data.base import Model
5
+
4
6
 
5
7
  class AbstractLineItemQuerySet(models.QuerySet):
6
8
  """AbstractLineItemQuerySet."""
@@ -10,7 +12,7 @@ class AbstractLineItemQuerySet(models.QuerySet):
10
12
  return self.filter(entered_in_error__isnull=True)
11
13
 
12
14
 
13
- class AbstractLineItemTransaction(models.Model):
15
+ class AbstractLineItemTransaction(Model):
14
16
  """Abstract class with common properties for both payments and adjustments."""
15
17
 
16
18
  class Meta:
@@ -18,7 +20,6 @@ class AbstractLineItemTransaction(models.Model):
18
20
 
19
21
  objects = AbstractLineItemQuerySet.as_manager()
20
22
 
21
- dbid = models.BigIntegerField(primary_key=True)
22
23
  posting = models.ForeignKey(
23
24
  "v1.BasePosting", related_name="%(class)ss", on_delete=models.PROTECT
24
25
  )
@@ -27,15 +28,14 @@ class AbstractLineItemTransaction(models.Model):
27
28
  )
28
29
  amount = models.DecimalField(max_digits=8, decimal_places=2)
29
30
 
30
- created = models.DateTimeField()
31
- modified = models.DateTimeField()
31
+ created = models.DateTimeField(auto_now_add=True)
32
+ modified = models.DateTimeField(auto_now=True)
32
33
 
33
34
 
34
35
  class NewLineItemPayment(AbstractLineItemTransaction):
35
36
  """Subclass that represents a payment on a billing line item."""
36
37
 
37
38
  class Meta:
38
- managed = False
39
39
  db_table = "canvas_sdk_data_quality_and_revenue_newlineitempayment_001"
40
40
 
41
41
  charged = models.DecimalField(max_digits=8, decimal_places=2)
@@ -47,8 +47,8 @@ class AbstractLineItemAdjustment(AbstractLineItemTransaction):
47
47
  class Meta:
48
48
  abstract = True
49
49
 
50
- code = models.CharField()
51
- group = models.CharField()
50
+ code = models.CharField(max_length=8)
51
+ group = models.CharField(max_length=8)
52
52
 
53
53
  deviated_from_posting_ruleset = models.BooleanField()
54
54
 
@@ -57,7 +57,6 @@ class NewLineItemAdjustment(AbstractLineItemAdjustment):
57
57
  """Subclass for billing line item adjustments."""
58
58
 
59
59
  class Meta:
60
- managed = False
61
60
  db_table = "canvas_sdk_data_quality_and_revenue_newlineitemadjustment_001"
62
61
 
63
62
  write_off = models.BooleanField()
@@ -67,7 +66,6 @@ class LineItemTransfer(AbstractLineItemAdjustment):
67
66
  """Subclass for billing line item balance transfer to other coverages or patient."""
68
67
 
69
68
  class Meta:
70
- managed = False
71
69
  db_table = "canvas_sdk_data_quality_and_revenue_lineitemtransfer_001"
72
70
 
73
71
  transfer_to = models.ForeignKey(
@@ -7,6 +7,8 @@ from canvas_sdk.v1.data.base import (
7
7
  BaseModelManager,
8
8
  CommittableQuerySetMixin,
9
9
  ForPatientQuerySetMixin,
10
+ IdentifiableModel,
11
+ Model,
10
12
  ValueSetLookupQuerySet,
11
13
  )
12
14
 
@@ -29,17 +31,14 @@ class MedicationQuerySet(ValueSetLookupQuerySet, CommittableQuerySetMixin, ForPa
29
31
  MedicationManager = BaseModelManager.from_queryset(MedicationQuerySet)
30
32
 
31
33
 
32
- class Medication(models.Model):
34
+ class Medication(IdentifiableModel):
33
35
  """Medication."""
34
36
 
35
37
  class Meta:
36
- managed = False
37
38
  db_table = "canvas_sdk_data_api_medication_001"
38
39
 
39
40
  objects = cast(MedicationQuerySet, MedicationManager())
40
41
 
41
- id = models.UUIDField()
42
- dbid = models.BigIntegerField(primary_key=True)
43
42
  patient = models.ForeignKey(
44
43
  "v1.Patient", on_delete=models.DO_NOTHING, related_name="medications", null=True
45
44
  )
@@ -50,28 +49,26 @@ class Medication(models.Model):
50
49
  committer = models.ForeignKey(
51
50
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
52
51
  )
53
- status = models.CharField(choices=Status.choices)
52
+ status = models.CharField(choices=Status.choices, max_length=20)
54
53
  start_date = models.DateTimeField()
55
54
  end_date = models.DateTimeField()
56
- quantity_qualifier_description = models.CharField()
57
- clinical_quantity_description = models.CharField()
58
- potency_unit_code = models.CharField()
59
- national_drug_code = models.CharField()
60
- erx_quantity = models.CharField()
55
+ quantity_qualifier_description = models.TextField()
56
+ clinical_quantity_description = models.TextField()
57
+ potency_unit_code = models.CharField(max_length=20)
58
+ national_drug_code = models.CharField(max_length=20)
59
+ erx_quantity = models.FloatField()
61
60
 
62
61
 
63
- class MedicationCoding(models.Model):
62
+ class MedicationCoding(Model):
64
63
  """MedicationCoding."""
65
64
 
66
65
  class Meta:
67
- managed = False
68
66
  db_table = "canvas_sdk_data_api_medicationcoding_001"
69
67
 
70
- dbid = models.BigIntegerField(primary_key=True)
71
- system = models.CharField()
72
- version = models.CharField()
73
- code = models.CharField()
74
- display = models.CharField()
68
+ system = models.CharField(max_length=255)
69
+ version = models.CharField(max_length=255)
70
+ code = models.CharField(max_length=255)
71
+ display = models.CharField(max_length=1000)
75
72
  user_selected = models.BooleanField()
76
73
  medication = models.ForeignKey(
77
74
  Medication, on_delete=models.DO_NOTHING, related_name="codings", null=True
@@ -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 TransmissionChannel(models.TextChoices):
5
7
  """Transmission channel."""
@@ -10,17 +12,14 @@ class TransmissionChannel(models.TextChoices):
10
12
  NOOP = "noop", "No-op"
11
13
 
12
14
 
13
- class Message(models.Model):
15
+ class Message(IdentifiableModel):
14
16
  """Message."""
15
17
 
16
18
  class Meta:
17
- managed = False
18
19
  db_table = "canvas_sdk_data_api_message_001"
19
20
 
20
- id = models.UUIDField()
21
- dbid = models.BigIntegerField(primary_key=True)
22
- created = models.DateTimeField()
23
- modified = models.DateTimeField()
21
+ created = models.DateTimeField(auto_now_add=True)
22
+ modified = models.DateTimeField(auto_now=True)
24
23
  content = models.TextField()
25
24
  sender = models.ForeignKey(
26
25
  "v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="sent_messages", null=True
@@ -34,15 +33,12 @@ class Message(models.Model):
34
33
  read = models.BooleanField()
35
34
 
36
35
 
37
- class MessageAttachment(models.Model):
36
+ class MessageAttachment(IdentifiableModel):
38
37
  """Message attachment."""
39
38
 
40
39
  class Meta:
41
- managed = False
42
40
  db_table = "canvas_sdk_data_api_messageattachment_001"
43
41
 
44
- id = models.UUIDField()
45
- dbid = models.BigIntegerField(primary_key=True)
46
42
  file = models.TextField()
47
43
  content_type = models.CharField(max_length=255)
48
44
  message = models.ForeignKey(
@@ -50,24 +46,21 @@ class MessageAttachment(models.Model):
50
46
  )
51
47
 
52
48
 
53
- class MessageTransmission(models.Model):
49
+ class MessageTransmission(IdentifiableModel):
54
50
  """Message Transmission."""
55
51
 
56
52
  class Meta:
57
- managed = False
58
53
  db_table = "canvas_sdk_data_api_messagetransmission_001"
59
54
 
60
- id = models.UUIDField()
61
- dbid = models.BigIntegerField(primary_key=True)
62
- created = models.DateTimeField()
63
- modified = models.DateTimeField()
55
+ created = models.DateTimeField(auto_now_add=True)
56
+ modified = models.DateTimeField(auto_now=True)
64
57
  message = models.ForeignKey(
65
58
  "v1.Message", on_delete=models.DO_NOTHING, related_name="transmissions", null=True
66
59
  )
67
60
  delivered = models.BooleanField()
68
61
  failed = models.BooleanField()
69
62
 
70
- contact_point_system = models.CharField(choices=TransmissionChannel.choices)
63
+ contact_point_system = models.CharField(choices=TransmissionChannel.choices, max_length=20)
71
64
  contact_point_value = models.CharField(max_length=255)
72
65
 
73
66
  comment = models.TextField()