canvas 0.45.0__py3-none-any.whl → 0.47.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.45.0.dist-info → canvas-0.47.0.dist-info}/METADATA +3 -2
- {canvas-0.45.0.dist-info → canvas-0.47.0.dist-info}/RECORD +62 -57
- 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/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 +27 -36
- 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 +51 -60
- protobufs/canvas_generated/messages/effects.proto +6 -0
- protobufs/canvas_generated/messages/events.proto +12 -1
- settings.py +56 -22
- {canvas-0.45.0.dist-info → canvas-0.47.0.dist-info}/WHEEL +0 -0
- {canvas-0.45.0.dist-info → canvas-0.47.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(
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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(
|
|
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
|
-
|
|
95
|
-
|
|
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(
|
|
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
|
-
|
|
142
|
-
|
|
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(
|
|
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
|
-
|
|
166
|
-
|
|
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(
|
|
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
|
-
|
|
206
|
-
|
|
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(
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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(
|
|
239
|
-
|
|
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(
|
|
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
|
-
|
|
259
|
-
|
|
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(
|
|
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
|
-
|
|
285
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
canvas_sdk/v1/data/medication.py
CHANGED
|
@@ -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(
|
|
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.
|
|
57
|
-
clinical_quantity_description = models.
|
|
58
|
-
potency_unit_code = models.CharField()
|
|
59
|
-
national_drug_code = models.CharField()
|
|
60
|
-
erx_quantity = models.
|
|
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(
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
canvas_sdk/v1/data/message.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 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(
|
|
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
|
-
|
|
21
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
61
|
-
|
|
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()
|