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.

Files changed (64) hide show
  1. {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/METADATA +4 -2
  2. {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/RECORD +64 -59
  3. canvas_cli/apps/plugin/plugin.py +21 -2
  4. canvas_generated/messages/effects_pb2.py +2 -2
  5. canvas_generated/messages/effects_pb2.pyi +10 -0
  6. canvas_generated/messages/events_pb2.py +2 -2
  7. canvas_generated/messages/events_pb2.pyi +18 -0
  8. canvas_sdk/commands/commands/exam.py +2 -1
  9. canvas_sdk/commands/commands/immunization_statement.py +32 -0
  10. canvas_sdk/commands/commands/questionnaire/__init__.py +18 -3
  11. canvas_sdk/commands/commands/questionnaire/question.py +3 -2
  12. canvas_sdk/commands/commands/questionnaire/toggle_questions.py +68 -0
  13. canvas_sdk/commands/commands/review_of_systems.py +2 -1
  14. canvas_sdk/utils/http.py +4 -1
  15. canvas_sdk/v1/data/__init__.py +17 -3
  16. canvas_sdk/v1/data/allergy_intolerance.py +16 -19
  17. canvas_sdk/v1/data/appointment.py +10 -14
  18. canvas_sdk/v1/data/assessment.py +9 -10
  19. canvas_sdk/v1/data/banner_alert.py +12 -12
  20. canvas_sdk/v1/data/base.py +45 -1
  21. canvas_sdk/v1/data/billing.py +13 -18
  22. canvas_sdk/v1/data/business_line.py +7 -8
  23. canvas_sdk/v1/data/care_team.py +14 -17
  24. canvas_sdk/v1/data/charge_description_master.py +29 -0
  25. canvas_sdk/v1/data/claim.py +87 -95
  26. canvas_sdk/v1/data/claim_line_item.py +17 -18
  27. canvas_sdk/v1/data/command.py +8 -9
  28. canvas_sdk/v1/data/condition.py +9 -12
  29. canvas_sdk/v1/data/coverage.py +47 -53
  30. canvas_sdk/v1/data/detected_issue.py +16 -20
  31. canvas_sdk/v1/data/device.py +20 -21
  32. canvas_sdk/v1/data/discount.py +8 -8
  33. canvas_sdk/v1/data/imaging.py +24 -30
  34. canvas_sdk/v1/data/invoice.py +3 -3
  35. canvas_sdk/v1/data/lab.py +65 -84
  36. canvas_sdk/v1/data/line_item_transaction.py +7 -9
  37. canvas_sdk/v1/data/medication.py +14 -17
  38. canvas_sdk/v1/data/message.py +10 -17
  39. canvas_sdk/v1/data/note.py +87 -24
  40. canvas_sdk/v1/data/observation.py +24 -33
  41. canvas_sdk/v1/data/organization.py +14 -15
  42. canvas_sdk/v1/data/patient.py +57 -68
  43. canvas_sdk/v1/data/patient_consent.py +14 -19
  44. canvas_sdk/v1/data/payment_collection.py +7 -8
  45. canvas_sdk/v1/data/payor_specific_charge.py +10 -12
  46. canvas_sdk/v1/data/posting.py +10 -18
  47. canvas_sdk/v1/data/practicelocation.py +17 -21
  48. canvas_sdk/v1/data/protocol_override.py +8 -10
  49. canvas_sdk/v1/data/questionnaire.py +56 -73
  50. canvas_sdk/v1/data/reason_for_visit.py +7 -9
  51. canvas_sdk/v1/data/staff.py +61 -57
  52. canvas_sdk/v1/data/task.py +21 -31
  53. canvas_sdk/v1/data/team.py +15 -18
  54. canvas_sdk/v1/data/user.py +3 -3
  55. canvas_sdk/v1/data/utils.py +6 -0
  56. plugin_runner/allowed-module-imports.json +1340 -0
  57. plugin_runner/generate_allowed_imports.py +97 -0
  58. plugin_runner/plugin_runner.py +9 -0
  59. plugin_runner/sandbox.py +55 -60
  60. protobufs/canvas_generated/messages/effects.proto +6 -0
  61. protobufs/canvas_generated/messages/events.proto +12 -1
  62. settings.py +56 -22
  63. {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/WHEEL +0 -0
  64. {canvas-0.44.3.dist-info → canvas-0.46.0.dist-info}/entry_points.txt +0 -0
@@ -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()
@@ -1,6 +1,8 @@
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 IdentifiableModel
5
+
4
6
 
5
7
  class NoteTypeCategories(models.TextChoices):
6
8
  """Note type categories."""
@@ -87,35 +89,58 @@ class NoteTypes(models.TextChoices):
87
89
  CCDA = "ccda", "C-CDA Import"
88
90
 
89
91
 
90
- class NoteType(models.Model):
92
+ class NoteStates(models.TextChoices):
93
+ """Note states."""
94
+
95
+ NEW = "NEW", "Created"
96
+ PUSHED = "PSH", "Pushed the charges for"
97
+ LOCKED = "LKD", "Locked"
98
+ UNLOCKED = "ULK", "Unlocked"
99
+ DELETED = "DLT", "Deleted"
100
+ RELOCKED = "RLK", "Relocked"
101
+ RESTORED = "RST", "Restored"
102
+ RECALLED = "RCL", "Recalled"
103
+ UNDELETED = "UND", "Undeleted"
104
+ DISCHARGED = "DSC", "Discharged"
105
+ # Appointment note
106
+ SCHEDULING = "SCH", "Scheduling"
107
+ BOOKED = "BKD", "Booked"
108
+ CONVERTED = "CVD", "Checked in"
109
+ CANCELLED = "CLD", "Canceled"
110
+ NOSHOW = "NSW", "No show"
111
+ REVERTED = "RVT", "Reverted"
112
+ # C-CDA Import note
113
+ CONFIRM_IMPORT = "CNF", "Confirmed"
114
+
115
+
116
+ class NoteType(IdentifiableModel):
91
117
  """NoteType."""
92
118
 
93
119
  objects: models.Manager["NoteType"]
94
120
 
95
121
  class Meta:
96
- managed = False
97
122
  db_table = "canvas_sdk_data_api_notetype_001"
98
123
 
99
- id = models.UUIDField()
100
- dbid = models.BigIntegerField(primary_key=True)
101
- created = models.DateTimeField()
102
- modified = models.DateTimeField()
103
- system = models.CharField()
104
- version = models.CharField()
105
- code = models.CharField()
106
- display = models.CharField()
124
+ created = models.DateTimeField(auto_now_add=True)
125
+ modified = models.DateTimeField(auto_now=True)
126
+ system = models.CharField(max_length=255)
127
+ version = models.CharField(max_length=255)
128
+ code = models.CharField(max_length=255)
129
+ display = models.CharField(max_length=1000)
107
130
  user_selected = models.BooleanField()
108
- name = models.CharField()
109
- icon = models.CharField()
110
- category = models.CharField(choices=NoteTypeCategories.choices)
131
+ name = models.CharField(max_length=250)
132
+ icon = models.CharField(max_length=250)
133
+ category = models.CharField(choices=NoteTypeCategories.choices, max_length=50)
111
134
  rank = models.PositiveIntegerField()
112
135
  is_default_appointment_type = models.BooleanField()
113
136
  is_scheduleable = models.BooleanField()
114
137
  is_telehealth = models.BooleanField()
115
138
  is_billable = models.BooleanField()
116
139
  defer_place_of_service_to_practice_location = models.BooleanField()
117
- available_places_of_service = ArrayField(models.CharField(choices=PracticeLocationPOS.choices))
118
- default_place_of_service = models.CharField(choices=PracticeLocationPOS.choices)
140
+ available_places_of_service = ArrayField(
141
+ models.CharField(choices=PracticeLocationPOS.choices, max_length=5)
142
+ )
143
+ default_place_of_service = models.CharField(choices=PracticeLocationPOS.choices, max_length=5)
119
144
  is_system_managed = models.BooleanField()
120
145
  is_visible = models.BooleanField()
121
146
  is_active = models.BooleanField()
@@ -127,24 +152,21 @@ class NoteType(models.Model):
127
152
  online_duration = models.IntegerField()
128
153
 
129
154
 
130
- class Note(models.Model):
155
+ class Note(IdentifiableModel):
131
156
  """Note."""
132
157
 
133
158
  class Meta:
134
- managed = False
135
159
  db_table = "canvas_sdk_data_api_note_001"
136
160
 
137
- id = models.CharField(max_length=32)
138
- dbid = models.BigIntegerField(db_column="dbid", primary_key=True)
139
- created = models.DateTimeField()
140
- modified = models.DateTimeField()
161
+ created = models.DateTimeField(auto_now_add=True)
162
+ modified = models.DateTimeField(auto_now=True)
141
163
  patient = models.ForeignKey(
142
164
  "v1.Patient", on_delete=models.DO_NOTHING, related_name="notes", null=True
143
165
  )
144
166
  provider = models.ForeignKey(
145
167
  "v1.Staff", on_delete=models.DO_NOTHING, related_name="notes", null=True
146
168
  )
147
- note_type = models.CharField(choices=NoteTypes.choices, null=True)
169
+ note_type = models.CharField(choices=NoteTypes.choices, null=True, max_length=50)
148
170
  note_type_version = models.ForeignKey(
149
171
  "v1.NoteType", on_delete=models.DO_NOTHING, related_name="notes", null=True
150
172
  )
@@ -152,14 +174,52 @@ class Note(models.Model):
152
174
  body = models.JSONField()
153
175
  originator = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, null=True)
154
176
  last_modified_by_staff = models.ForeignKey("v1.Staff", on_delete=models.DO_NOTHING, null=True)
155
- checksum = models.CharField()
177
+ checksum = models.CharField(max_length=32)
156
178
  billing_note = models.TextField()
157
179
  # TODO -implement InpatientStay model
158
180
  # inpatient_stay = models.ForeignKey("v1.InpatientStay", on_delete=models.DO_NOTHING, null=True)
159
181
  related_data = models.JSONField()
160
182
  location = models.ForeignKey("v1.PracticeLocation", on_delete=models.DO_NOTHING, null=True)
161
183
  datetime_of_service = models.DateTimeField()
162
- place_of_service = models.CharField()
184
+ place_of_service = models.CharField(max_length=255)
185
+
186
+
187
+ class NoteStateChangeEvent(IdentifiableModel):
188
+ """NoteStateChangeEvent."""
189
+
190
+ class Meta:
191
+ db_table = "canvas_sdk_data_api_notestatechangeevent_001"
192
+
193
+ created = models.DateTimeField()
194
+ modified = models.DateTimeField()
195
+ note = models.ForeignKey("v1.Note", on_delete=models.DO_NOTHING, related_name="state_history")
196
+ originator = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, null=True)
197
+ state = models.CharField(choices=NoteStates.choices, max_length=3)
198
+ note_state_document = models.CharField(max_length=100, null=True)
199
+ note_state_html = models.TextField()
200
+
201
+
202
+ class CurrentNoteStateEvent(IdentifiableModel):
203
+ """
204
+ CurrentNoteStateEvent is a special model backed by a view which only includes the latest
205
+ NoteStateChangeEvent for any given note_id.
206
+ """
207
+
208
+ class Meta:
209
+ db_table = "canvas_sdk_data_current_note_state_001"
210
+
211
+ state = models.CharField(choices=NoteStates.choices, max_length=3)
212
+ note = models.ForeignKey("v1.Note", on_delete=models.DO_NOTHING, related_name="+")
213
+
214
+ def editable(self) -> bool:
215
+ """Returns a boolean to indicate if the related note can be edited."""
216
+ return self.state in [
217
+ NoteStates.NEW,
218
+ NoteStates.PUSHED,
219
+ NoteStates.UNLOCKED,
220
+ NoteStates.RESTORED,
221
+ NoteStates.UNDELETED,
222
+ ]
163
223
 
164
224
 
165
225
  __exports__ = (
@@ -168,4 +228,7 @@ __exports__ = (
168
228
  "NoteTypes",
169
229
  "NoteType",
170
230
  "Note",
231
+ "NoteStates",
232
+ "NoteStateChangeEvent",
233
+ "CurrentNoteStateEvent",
171
234
  )
@@ -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
 
@@ -21,19 +23,16 @@ class ObservationQuerySet(
21
23
  ObservationManager = BaseModelManager.from_queryset(ObservationQuerySet)
22
24
 
23
25
 
24
- class Observation(models.Model):
26
+ class Observation(IdentifiableModel):
25
27
  """Observation."""
26
28
 
27
29
  class Meta:
28
- managed = False
29
30
  db_table = "canvas_sdk_data_api_observation_001"
30
31
 
31
32
  objects = cast(ObservationQuerySet, ObservationManager())
32
33
 
33
- id = models.UUIDField()
34
- dbid = models.BigIntegerField(primary_key=True)
35
- created = models.DateTimeField()
36
- modified = models.DateTimeField()
34
+ created = models.DateTimeField(auto_now_add=True)
35
+ modified = models.DateTimeField(auto_now=True)
37
36
  originator = models.ForeignKey(
38
37
  "v1.CanvasUser", on_delete=models.DO_NOTHING, null=True, related_name="+"
39
38
  )
@@ -50,7 +49,7 @@ class Observation(models.Model):
50
49
  is_member_of = models.ForeignKey(
51
50
  "self", on_delete=models.DO_NOTHING, related_name="members", null=True
52
51
  )
53
- category = models.CharField()
52
+ category = models.CharField(max_length=14)
54
53
  units = models.TextField()
55
54
  value = models.TextField()
56
55
  note_id = models.BigIntegerField()
@@ -58,34 +57,30 @@ class Observation(models.Model):
58
57
  effective_datetime = models.DateTimeField()
59
58
 
60
59
 
61
- class ObservationCoding(models.Model):
60
+ class ObservationCoding(Model):
62
61
  """ObservationCoding."""
63
62
 
64
63
  class Meta:
65
- managed = False
66
64
  db_table = "canvas_sdk_data_api_observationcoding_001"
67
65
 
68
- dbid = models.BigIntegerField(primary_key=True)
69
- system = models.CharField()
70
- version = models.CharField()
71
- code = models.CharField()
72
- display = models.CharField()
66
+ system = models.CharField(max_length=255)
67
+ version = models.CharField(max_length=255)
68
+ code = models.CharField(max_length=255)
69
+ display = models.CharField(max_length=1000)
73
70
  user_selected = models.BooleanField()
74
71
  observation = models.ForeignKey(
75
72
  Observation, on_delete=models.DO_NOTHING, related_name="codings", null=True
76
73
  )
77
74
 
78
75
 
79
- class ObservationComponent(models.Model):
76
+ class ObservationComponent(Model):
80
77
  """ObservationComponent."""
81
78
 
82
79
  class Meta:
83
- managed = False
84
80
  db_table = "canvas_sdk_data_api_observationcomponent_001"
85
81
 
86
- dbid = models.BigIntegerField(primary_key=True)
87
- created = models.DateTimeField()
88
- modified = models.DateTimeField()
82
+ created = models.DateTimeField(auto_now_add=True)
83
+ modified = models.DateTimeField(auto_now=True)
89
84
  observation = models.ForeignKey(
90
85
  Observation, on_delete=models.DO_NOTHING, related_name="components", null=True
91
86
  )
@@ -94,36 +89,32 @@ class ObservationComponent(models.Model):
94
89
  name = models.TextField()
95
90
 
96
91
 
97
- class ObservationComponentCoding(models.Model):
92
+ class ObservationComponentCoding(Model):
98
93
  """ObservationComponentCoding."""
99
94
 
100
95
  class Meta:
101
- managed = False
102
96
  db_table = "canvas_sdk_data_api_observationcomponentcoding_001"
103
97
 
104
- dbid = models.BigIntegerField(primary_key=True)
105
- system = models.CharField()
106
- version = models.CharField()
107
- code = models.CharField()
108
- display = models.CharField()
98
+ system = models.CharField(max_length=255)
99
+ version = models.CharField(max_length=255)
100
+ code = models.CharField(max_length=255)
101
+ display = models.CharField(max_length=1000)
109
102
  user_selected = models.BooleanField()
110
103
  observation_component = models.ForeignKey(
111
104
  ObservationComponent, on_delete=models.DO_NOTHING, related_name="codings", null=True
112
105
  )
113
106
 
114
107
 
115
- class ObservationValueCoding(models.Model):
108
+ class ObservationValueCoding(Model):
116
109
  """ObservationValueCoding."""
117
110
 
118
111
  class Meta:
119
- managed = False
120
112
  db_table = "canvas_sdk_data_api_observationvaluecoding_001"
121
113
 
122
- dbid = models.BigIntegerField(primary_key=True)
123
- system = models.CharField()
124
- version = models.CharField()
125
- code = models.CharField()
126
- display = models.CharField()
114
+ system = models.CharField(max_length=255)
115
+ version = models.CharField(max_length=255)
116
+ code = models.CharField(max_length=255)
117
+ display = models.CharField(max_length=1000)
127
118
  user_selected = models.BooleanField()
128
119
  observation = models.ForeignKey(
129
120
  Observation, on_delete=models.DO_NOTHING, related_name="value_codings", null=True
@@ -1,29 +1,28 @@
1
1
  from django.db import models
2
2
 
3
+ from canvas_sdk.v1.data.base import Model
3
4
  from canvas_sdk.v1.data.common import TaxIDType
4
5
 
5
6
 
6
- class Organization(models.Model):
7
+ class Organization(Model):
7
8
  """Organization."""
8
9
 
9
10
  class Meta:
10
- managed = False
11
11
  db_table = "canvas_sdk_data_api_organization_001"
12
12
 
13
- dbid = models.BigIntegerField(primary_key=True)
14
- created = models.DateTimeField()
15
- modified = models.DateTimeField()
16
- full_name = models.CharField()
17
- short_name = models.CharField()
18
- subdomain = models.CharField()
19
- logo_url = models.CharField()
20
- background_image_url = models.CharField()
21
- background_gradient = models.CharField()
13
+ created = models.DateTimeField(auto_now_add=True)
14
+ modified = models.DateTimeField(auto_now=True)
15
+ full_name = models.CharField(max_length=255)
16
+ short_name = models.CharField(max_length=255)
17
+ subdomain = models.CharField(max_length=100)
18
+ logo_url = models.CharField(max_length=255)
19
+ background_image_url = models.CharField(max_length=255)
20
+ background_gradient = models.CharField(max_length=255)
22
21
  active = models.BooleanField()
23
- tax_id = models.CharField(null=True)
24
- tax_id_type = models.CharField(choices=TaxIDType.choices)
25
- group_npi_number = models.CharField()
26
- group_taxonomy_number = models.CharField()
22
+ tax_id = models.CharField(null=True, max_length=25)
23
+ tax_id_type = models.CharField(choices=TaxIDType.choices, max_length=1)
24
+ group_npi_number = models.CharField(max_length=10)
25
+ group_taxonomy_number = models.CharField(max_length=10)
27
26
  include_zz_qualifier = models.BooleanField()
28
27
  main_location = models.OneToOneField(
29
28
  "v1.PracticeLocation", on_delete=models.DO_NOTHING, related_name="+"