canvas 0.63.0__py3-none-any.whl → 0.65.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.63.0.dist-info → canvas-0.65.0.dist-info}/METADATA +1 -1
- {canvas-0.63.0.dist-info → canvas-0.65.0.dist-info}/RECORD +16 -11
- canvas_sdk/questionnaires/utils.py +1 -0
- canvas_sdk/test_utils/factories/__init__.py +2 -0
- canvas_sdk/test_utils/factories/claim_diagnosis_code.py +15 -0
- canvas_sdk/v1/data/__init__.py +8 -0
- canvas_sdk/v1/data/claim_diagnosis_code.py +22 -0
- canvas_sdk/v1/data/encounter.py +46 -0
- canvas_sdk/v1/data/medication_statement.py +50 -0
- canvas_sdk/v1/data/patient.py +3 -0
- canvas_sdk/v1/data/stop_medication_event.py +36 -0
- plugin_runner/allowed-module-imports.json +19 -0
- plugin_runner/sandbox.py +1 -0
- settings.py +15 -1
- {canvas-0.63.0.dist-info → canvas-0.65.0.dist-info}/WHEEL +0 -0
- {canvas-0.63.0.dist-info → canvas-0.65.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
settings.py,sha256=
|
|
1
|
+
settings.py,sha256=m3JUFjzlS3vetR35JVTFVPT72lv7BMSunvW4ICIXhBc,6678
|
|
2
2
|
canvas_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
canvas_cli/main.py,sha256=INnlb8THwC0kbUJY94FVFq4UtDRGRyBBm6jASTzV0mU,3111
|
|
4
4
|
canvas_cli/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -219,11 +219,12 @@ canvas_sdk/protocols/base.py,sha256=itPYb_rvfj63l5UgKeAhCXEutR8WO4qww0GdZvAdaNE,
|
|
|
219
219
|
canvas_sdk/protocols/clinical_quality_measure.py,sha256=ZkAJ6rWMz5YZFQf6iQWJyNTV2Vj-5gzy4XWvnd7y374,4922
|
|
220
220
|
canvas_sdk/protocols/timeframe.py,sha256=vdlgUpDam9r4oJpw8HKQOkr6o66jFwfoTtieHBtZxvw,1179
|
|
221
221
|
canvas_sdk/questionnaires/__init__.py,sha256=Pe3R-RY70AOllljO_caNAPpHpJfA3ML5zmw9v1EewzE,110
|
|
222
|
-
canvas_sdk/questionnaires/utils.py,sha256=
|
|
222
|
+
canvas_sdk/questionnaires/utils.py,sha256=6RrGQbcc1uxG6-H5fCzS2mwQTYQdYiQlVVrtSbPls_U,3693
|
|
223
223
|
canvas_sdk/templates/__init__.py,sha256=LtUmLDsGSTq249T6sA7PUzkl2OfCAyvtIOGPNHr6wTo,83
|
|
224
224
|
canvas_sdk/templates/utils.py,sha256=J-wDQ9ijOr_jz1SJxjpyZgR7JwXqtGMSS5IperLi2qE,1475
|
|
225
225
|
canvas_sdk/test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
226
|
-
canvas_sdk/test_utils/factories/__init__.py,sha256=
|
|
226
|
+
canvas_sdk/test_utils/factories/__init__.py,sha256=Rg8C6um05bil4PuajoWyPGMecXKvMqe0uClgTBiaYSk,491
|
|
227
|
+
canvas_sdk/test_utils/factories/claim_diagnosis_code.py,sha256=3kqcgDRfZup8aly66EW-OX2hs3oJNqHkJY5aeeID0Po,557
|
|
227
228
|
canvas_sdk/test_utils/factories/facility.py,sha256=9ZNBHCgPelD4oQynwez32I4Gx0kV1O78kgKvuiByyhg,697
|
|
228
229
|
canvas_sdk/test_utils/factories/patient.py,sha256=zXy47K9C6cmQympOABHGUv-1hOqYIXNb7c4TziFO1RE,1594
|
|
229
230
|
canvas_sdk/test_utils/factories/protocol_current.py,sha256=twq6GdTM29WYZ-AvfE3vkfV3dOMhZDmv_lNZC2eGe8g,1904
|
|
@@ -236,7 +237,7 @@ canvas_sdk/utils/plugins.py,sha256=OPq9OiE1v1AF24HSdEEOlSJxRVc2NVksK0Gpf6OH1NE,1
|
|
|
236
237
|
canvas_sdk/v1/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,17
|
|
237
238
|
canvas_sdk/v1/apps.py,sha256=4MwQfQu78oX5bUVlyxYzbt4rZODi0ZesXe_3QOsEWO8,170
|
|
238
239
|
canvas_sdk/v1/models.py,sha256=LqeHZ-Hz3EWyM9vYr9uZ9rBYdMXNuuvJqbmojV8EcEM,224
|
|
239
|
-
canvas_sdk/v1/data/__init__.py,sha256=
|
|
240
|
+
canvas_sdk/v1/data/__init__.py,sha256=asFixU1731QJTXQSgZn5WACoRGcHui0DFVvQRN4WypY,6106
|
|
240
241
|
canvas_sdk/v1/data/allergy_intolerance.py,sha256=KXfU7UqTdRfHUFrP8yncQGMvlRPEt2K6TrC_y7JYgiE,2453
|
|
241
242
|
canvas_sdk/v1/data/appointment.py,sha256=wRxRYWvGHP6zXFA-Hq3I08fwC56wHKb3zwpp5kqj4Yw,3227
|
|
242
243
|
canvas_sdk/v1/data/assessment.py,sha256=vnVoaKWoJGCfaYn6WilxpI5cTgkvM647hFIuTyi_AgY,1663
|
|
@@ -247,6 +248,7 @@ canvas_sdk/v1/data/business_line.py,sha256=pj7gWj_5FR1V7YUn3bhwjI0j0kcH-ZKQRqbbn
|
|
|
247
248
|
canvas_sdk/v1/data/care_team.py,sha256=vQh2QS8T6JvYL8seMVpVFI9qQLpZRo6NT5lMgnSf0WY,1940
|
|
248
249
|
canvas_sdk/v1/data/charge_description_master.py,sha256=dyxa4Fiwts6wTyoDR-blbPZ_D95pojDLWPrNbmemx2Y,856
|
|
249
250
|
canvas_sdk/v1/data/claim.py,sha256=xCuZ1SSiQ_LxUX-0GoxwKstEZwi87cnqjn8QB6m86S8,11530
|
|
251
|
+
canvas_sdk/v1/data/claim_diagnosis_code.py,sha256=JJIOAXeleCn1TthepA3PA5MTnf9pe_FyqxLy7CvAXAA,713
|
|
250
252
|
canvas_sdk/v1/data/claim_line_item.py,sha256=5WyTqlWSdQSDKyGWwRv5Dyn24_etyp8Zg_Q8aNgGL6o,5072
|
|
251
253
|
canvas_sdk/v1/data/command.py,sha256=G7qtNypiTK274QQExKLbnij4gM71HZMs8f79VFYvIiY,1944
|
|
252
254
|
canvas_sdk/v1/data/common.py,sha256=u5W3_7kXAGPe7guEBwRouKp8FMRCx9iZL6ei8QMmtwU,4880
|
|
@@ -256,6 +258,7 @@ canvas_sdk/v1/data/coverage.py,sha256=i03BeVxNCsxXWnBL8klySFRXXN-T1hF01HyCvcCnlY
|
|
|
256
258
|
canvas_sdk/v1/data/detected_issue.py,sha256=k-tOX6fpzfRf9WmG7neHPEeWrpZUdTiTEqYzKaa2haI,1865
|
|
257
259
|
canvas_sdk/v1/data/device.py,sha256=5YnCApQR3ZprGO9zCsSP-4spwo4HVRDSTY3QCNwqYlo,1932
|
|
258
260
|
canvas_sdk/v1/data/discount.py,sha256=Bqa0PcytSdqZ0MJor9EShtRUmNWGcBKtivGCmjk9Pbw,618
|
|
261
|
+
canvas_sdk/v1/data/encounter.py,sha256=FDQfcqtCdufZ5B5LpkthM4Qf_D3oK6Gkv1WwoGNQy9U,1315
|
|
259
262
|
canvas_sdk/v1/data/facility.py,sha256=_Ux4D34Evcexu95iRMLN0foGcHJI6KweIYkbyYVAe0s,947
|
|
260
263
|
canvas_sdk/v1/data/fields.py,sha256=bI7mPI_3B36ntyoVQ6vuDq8eGLoUIkwZZr14lTC-4To,1104
|
|
261
264
|
canvas_sdk/v1/data/goal.py,sha256=dOI0rakLBnnYSkdMt5W2uh7_W5Pp21G6s1z70PzU3TY,2465
|
|
@@ -265,11 +268,12 @@ canvas_sdk/v1/data/invoice.py,sha256=F5j_Hvu-YwqhHFkp6FDui8vx6GumCAgj14YgDvfyeYU
|
|
|
265
268
|
canvas_sdk/v1/data/lab.py,sha256=8FPnApgcEfZ5f62387EgY6RZd8za2wps5LMzCB0_x6U,12969
|
|
266
269
|
canvas_sdk/v1/data/line_item_transaction.py,sha256=OJA_3DLA1RF0v8jCgQ8SHaoqij_Z97Iatfi5i6CVEis,2406
|
|
267
270
|
canvas_sdk/v1/data/medication.py,sha256=QMAUqqldJeQK9IuaoO5mWFp3IEjbqcqrxkzIgFZ4O0U,2333
|
|
271
|
+
canvas_sdk/v1/data/medication_statement.py,sha256=lNzwQryRIAxt0m4sC7AHUpx7WXxyrsFPC-s4Si-to1E,1987
|
|
268
272
|
canvas_sdk/v1/data/message.py,sha256=EKc2kkWGuzrgBH3sDUa9jiNpRP7J1ZdWE6BnPhY2gvs,2268
|
|
269
273
|
canvas_sdk/v1/data/note.py,sha256=Eq0JgDRzwK84BAT6Y51f47Gke2rseC3vvcjoqhzAsVE,9335
|
|
270
274
|
canvas_sdk/v1/data/observation.py,sha256=l1EXGQ8FBBInxQthsmY1Oms9v73ni_J7SAP5M8Hmkvg,3881
|
|
271
275
|
canvas_sdk/v1/data/organization.py,sha256=gt0KZC1hklwWf57vCxs2K0qPnLpMyyNFWNL7-WZ6AqI,1159
|
|
272
|
-
canvas_sdk/v1/data/patient.py,sha256=
|
|
276
|
+
canvas_sdk/v1/data/patient.py,sha256=XmOtO7B2qnoj8-fsy15k6OnGcKT0AHj663yZfh5VDa0,11884
|
|
273
277
|
canvas_sdk/v1/data/patient_consent.py,sha256=zx1C__E6On-MC7OnTgEeP50tn77R6UXw15wC125jDog,2704
|
|
274
278
|
canvas_sdk/v1/data/payment_collection.py,sha256=h17qmQkCCwSdukIeeYMqBHZnpxpahOa03ckMHmgZV-I,954
|
|
275
279
|
canvas_sdk/v1/data/payor_specific_charge.py,sha256=TtByy7-QF00PfONC-QDo2kkxRAOdLaRjkhssQBPvZjw,770
|
|
@@ -283,6 +287,7 @@ canvas_sdk/v1/data/reason_for_visit.py,sha256=diXbeGUUc_XBmIDpzubxesc6Nhj5F87zw2
|
|
|
283
287
|
canvas_sdk/v1/data/referral.py,sha256=qVPHWqDlJoBzrYsNhP6z2NQ2Wpus_OxW8LwHYpLlM-M,3589
|
|
284
288
|
canvas_sdk/v1/data/service_provider.py,sha256=LQfQ0esg97NpmSYnftsWqYUJyJIQOZKmpZFNnGsxXoQ,1917
|
|
285
289
|
canvas_sdk/v1/data/staff.py,sha256=osAPzLw2y-SJW5TQt69RnKBmsDx5wKeDNmbBtfxYDWw,9392
|
|
290
|
+
canvas_sdk/v1/data/stop_medication_event.py,sha256=mvUZnlVEZz1BY9hUT8bb_LZauwEOH2ZVcud625rdiLo,1221
|
|
286
291
|
canvas_sdk/v1/data/task.py,sha256=9jSqr7e7ODJTs4hanWsOD-1Rb8gByJOuLta90V9V_hY,3480
|
|
287
292
|
canvas_sdk/v1/data/team.py,sha256=J4s98sS7UuUw9jJCe-_7eikr1dV4SQARDzK5oxmsO_o,2832
|
|
288
293
|
canvas_sdk/v1/data/user.py,sha256=82jnqVrYeWo2eBXY_MH2r75LZo5EKgY9kalahrUl0_s,511
|
|
@@ -312,7 +317,7 @@ canvas_sdk/views/__init__.py,sha256=YYXr5tEQlnwMgTXJbOG963tKSPiUOM4mUkX8wuiqp7U,
|
|
|
312
317
|
logger/__init__.py,sha256=uMIOf1CDdKSmBKxKwO4CmDpvnJITci76IMXENOwSHEo,85
|
|
313
318
|
logger/logger.py,sha256=l5W5jn3vGQt6TM7OxOpoMy-vC7RNNA2pGnQJJgHeXWA,2068
|
|
314
319
|
plugin_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
315
|
-
plugin_runner/allowed-module-imports.json,sha256=
|
|
320
|
+
plugin_runner/allowed-module-imports.json,sha256=txhTDIMO3kCz3HXO1tPboWMCfLD4VX8pY1QDqVOgwKk,38364
|
|
316
321
|
plugin_runner/authentication.py,sha256=UyyhXajokVFH866dpDhoTlXS9Cg7y0sQltn0_LcwXrY,1131
|
|
317
322
|
plugin_runner/aws_headers.py,sha256=wZ8584E1fTW0CdGxOCnLSF8alH27z-URcUyoc6y6ohg,2782
|
|
318
323
|
plugin_runner/exceptions.py,sha256=ltqn56SMTg-T5miSh5hux4ojwx0hZGSWaB7BxyAmcAo,545
|
|
@@ -320,7 +325,7 @@ plugin_runner/generate_allowed_imports.py,sha256=LQuVxL_j5n0Sj-KgR4Q8D9mj0xfuDqz
|
|
|
320
325
|
plugin_runner/installation.py,sha256=2KTDWWsQ97WIN2k9tC4d50zN77WWK_1D5obXlhLfWw8,8536
|
|
321
326
|
plugin_runner/load_all_plugins.py,sha256=4T2gW2YljhIx4xfwf1c0F_8oIbE1ubsLj0ShkHRtlVY,5847
|
|
322
327
|
plugin_runner/plugin_runner.py,sha256=RpcZoXXzGEflJGuHJaAOCP24mWb4fG1bLw3ryA6n88k,26623
|
|
323
|
-
plugin_runner/sandbox.py,sha256=
|
|
328
|
+
plugin_runner/sandbox.py,sha256=MYEYRTtkznOC0VQNq2Svj6f_2wBgzIOlzEj3Y85ekBY,30253
|
|
324
329
|
protobufs/canvas_generated/messages/effects.proto,sha256=knnBn15oyJhNQ_diywrJ6NgwPsd1Q6TWuff2nQ8U7Og,10632
|
|
325
330
|
protobufs/canvas_generated/messages/events.proto,sha256=KwjnaA8ekFwQTg54vWhbQuGF0_mLK9kFdtjuJ-K1cfo,52782
|
|
326
331
|
protobufs/canvas_generated/messages/plugins.proto,sha256=xJyEeTwM6wWja3vGECLsIzfabwf1VahDgacoPL3TuwI,323
|
|
@@ -341,7 +346,7 @@ canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookie
|
|
|
341
346
|
canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/README.md,sha256=3QKoJQq3YmdplGnDOBMsLCJ3Ya1_aKjoz-QiWc4QfjA,291
|
|
342
347
|
canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
343
348
|
canvas_cli/templates/plugins/default/{{ cookiecutter.__project_slug }}/{{ cookiecutter.__package_name }}/protocols/my_protocol.py,sha256=fKLLcOIwvSWenW8-7tr8VqnF4Iox_5wU9V-Qw9UySsA,2381
|
|
344
|
-
canvas-0.
|
|
345
|
-
canvas-0.
|
|
346
|
-
canvas-0.
|
|
347
|
-
canvas-0.
|
|
349
|
+
canvas-0.65.0.dist-info/METADATA,sha256=WFkI-jXhIwOGyPxe-Td-T7_XhCAFAXffSNHrRszGfyQ,4758
|
|
350
|
+
canvas-0.65.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
351
|
+
canvas-0.65.0.dist-info/entry_points.txt,sha256=0Vs_9GmTVUNniH6eDBlRPgofmADMV4BES6Ao26M4AbM,47
|
|
352
|
+
canvas-0.65.0.dist-info/RECORD,,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from .claim_diagnosis_code import ClaimDiagnosisCodeFactory
|
|
1
2
|
from .facility import FacilityFactory
|
|
2
3
|
from .patient import PatientAddressFactory, PatientFacilityAddressFactory, PatientFactory
|
|
3
4
|
from .protocol_current import ProtocolCurrentFactory
|
|
@@ -5,6 +6,7 @@ from .user import CanvasUserFactory
|
|
|
5
6
|
|
|
6
7
|
__all__ = (
|
|
7
8
|
"CanvasUserFactory",
|
|
9
|
+
"ClaimDiagnosisCodeFactory",
|
|
8
10
|
"FacilityFactory",
|
|
9
11
|
"PatientAddressFactory",
|
|
10
12
|
"PatientFacilityAddressFactory",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import factory
|
|
2
|
+
from factory.fuzzy import FuzzyInteger
|
|
3
|
+
|
|
4
|
+
from canvas_sdk.v1.data import ClaimDiagnosisCode
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ClaimDiagnosisCodeFactory(factory.django.DjangoModelFactory[ClaimDiagnosisCode]):
|
|
8
|
+
"""Factory for creating a ClaimDiagnosisCode."""
|
|
9
|
+
|
|
10
|
+
class Meta:
|
|
11
|
+
model = ClaimDiagnosisCode
|
|
12
|
+
|
|
13
|
+
rank = FuzzyInteger(1, 12) # ICD-10 allows up to 12 diagnosis codes on a claim
|
|
14
|
+
code = factory.Faker("bothify", text="?##.##") # ICD-10 format like A01.23
|
|
15
|
+
display = factory.Faker("sentence", nb_words=4) # Human readable diagnosis description
|
canvas_sdk/v1/data/__init__.py
CHANGED
|
@@ -7,6 +7,7 @@ from .business_line import BusinessLine
|
|
|
7
7
|
from .care_team import CareTeamMembership, CareTeamRole
|
|
8
8
|
from .charge_description_master import ChargeDescriptionMaster
|
|
9
9
|
from .claim import Claim, ClaimCoverage, ClaimPatient, ClaimQueue, InstallmentPlan
|
|
10
|
+
from .claim_diagnosis_code import ClaimDiagnosisCode
|
|
10
11
|
from .claim_line_item import ClaimLineItem
|
|
11
12
|
from .command import Command
|
|
12
13
|
from .compound_medication import CompoundMedication
|
|
@@ -15,6 +16,7 @@ from .coverage import Coverage, Transactor, TransactorAddress, TransactorPhone
|
|
|
15
16
|
from .detected_issue import DetectedIssue, DetectedIssueEvidence
|
|
16
17
|
from .device import Device
|
|
17
18
|
from .discount import Discount
|
|
19
|
+
from .encounter import Encounter
|
|
18
20
|
from .facility import Facility
|
|
19
21
|
from .goal import Goal
|
|
20
22
|
from .imaging import ImagingOrder, ImagingReport, ImagingReview
|
|
@@ -43,6 +45,7 @@ from .line_item_transaction import (
|
|
|
43
45
|
NewLineItemPayment,
|
|
44
46
|
)
|
|
45
47
|
from .medication import Medication, MedicationCoding
|
|
48
|
+
from .medication_statement import MedicationStatement
|
|
46
49
|
from .message import Message, MessageAttachment, MessageTransmission
|
|
47
50
|
from .note import CurrentNoteStateEvent, Note, NoteStateChangeEvent, NoteType
|
|
48
51
|
from .observation import (
|
|
@@ -93,6 +96,7 @@ from .reason_for_visit import ReasonForVisitSettingCoding
|
|
|
93
96
|
from .referral import Referral, ReferralReport
|
|
94
97
|
from .service_provider import ServiceProvider
|
|
95
98
|
from .staff import Staff, StaffAddress, StaffContactPoint, StaffLicense, StaffPhoto, StaffRole
|
|
99
|
+
from .stop_medication_event import StopMedicationEvent
|
|
96
100
|
from .task import Task, TaskComment, TaskLabel, TaskTaskLabel
|
|
97
101
|
from .team import Team, TeamContactPoint
|
|
98
102
|
from .user import CanvasUser
|
|
@@ -117,6 +121,7 @@ __all__ = __exports__ = (
|
|
|
117
121
|
"ChargeDescriptionMaster",
|
|
118
122
|
"Claim",
|
|
119
123
|
"ClaimCoverage",
|
|
124
|
+
"ClaimDiagnosisCode",
|
|
120
125
|
"ClaimLineItem",
|
|
121
126
|
"ClaimPatient",
|
|
122
127
|
"ClaimQueue",
|
|
@@ -131,6 +136,7 @@ __all__ = __exports__ = (
|
|
|
131
136
|
"DetectedIssueEvidence",
|
|
132
137
|
"Device",
|
|
133
138
|
"Discount",
|
|
139
|
+
"Encounter",
|
|
134
140
|
"Facility",
|
|
135
141
|
"Goal",
|
|
136
142
|
"ImagingOrder",
|
|
@@ -158,6 +164,7 @@ __all__ = __exports__ = (
|
|
|
158
164
|
"LineItemTransfer",
|
|
159
165
|
"Medication",
|
|
160
166
|
"MedicationCoding",
|
|
167
|
+
"MedicationStatement",
|
|
161
168
|
"Message",
|
|
162
169
|
"MessageAttachment",
|
|
163
170
|
"MessageTransmission",
|
|
@@ -204,6 +211,7 @@ __all__ = __exports__ = (
|
|
|
204
211
|
"StaffPhoto",
|
|
205
212
|
"StaffRole",
|
|
206
213
|
"StaffContactPoint",
|
|
214
|
+
"StopMedicationEvent",
|
|
207
215
|
"Task",
|
|
208
216
|
"TaskComment",
|
|
209
217
|
"TaskLabel",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ClaimDiagnosisCode(IdentifiableModel):
|
|
7
|
+
"""ClaimDiagnosisCode model for claim diagnosis codes."""
|
|
8
|
+
|
|
9
|
+
class Meta:
|
|
10
|
+
db_table = "canvas_sdk_data_quality_and_revenue_claimdiagnosiscode_001"
|
|
11
|
+
ordering = ["rank"]
|
|
12
|
+
|
|
13
|
+
claim = models.ForeignKey("v1.Claim", on_delete=models.CASCADE, related_name="diagnosis_codes")
|
|
14
|
+
rank = models.IntegerField()
|
|
15
|
+
code = models.CharField(max_length=20, blank=True)
|
|
16
|
+
display = models.CharField(max_length=1000, blank=True)
|
|
17
|
+
|
|
18
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
19
|
+
modified = models.DateTimeField(auto_now=True)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
__exports__ = ("ClaimDiagnosisCode",)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
from django.utils import timezone
|
|
3
|
+
|
|
4
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class EncounterMedium(models.TextChoices):
|
|
8
|
+
"""Encounter medium."""
|
|
9
|
+
|
|
10
|
+
VOICE = "voice", "Telephone visit"
|
|
11
|
+
VIDEO = "video", "Video visit"
|
|
12
|
+
OFFICE = "office", "Office visit"
|
|
13
|
+
HOME = "home", "Home visit"
|
|
14
|
+
OFFSITE = "offsite", "Other offsite visit"
|
|
15
|
+
LAB = "lab", "Lab visit"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class EncounterState(models.TextChoices):
|
|
19
|
+
"""Encounter state."""
|
|
20
|
+
|
|
21
|
+
STARTED = "STA", "Started"
|
|
22
|
+
PLANNED = "PLA", "Planned"
|
|
23
|
+
CONCLUDED = "CON", "Concluded"
|
|
24
|
+
CANCELLED = "CAN", "Cancelled"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Encounter(IdentifiableModel):
|
|
28
|
+
"""Encounter."""
|
|
29
|
+
|
|
30
|
+
class Meta:
|
|
31
|
+
db_table = "canvas_sdk_data_api_encounter_001"
|
|
32
|
+
|
|
33
|
+
note = models.OneToOneField("v1.Note", on_delete=models.CASCADE, related_name="encounter")
|
|
34
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
35
|
+
modified = models.DateTimeField(auto_now=True)
|
|
36
|
+
medium = models.CharField(choices=EncounterMedium.choices, max_length=20)
|
|
37
|
+
state = models.CharField(max_length=3, choices=EncounterState.choices)
|
|
38
|
+
start_time = models.DateTimeField(default=timezone.now, null=True)
|
|
39
|
+
end_time = models.DateTimeField(default=None, null=True)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
__exports__ = (
|
|
43
|
+
"Encounter",
|
|
44
|
+
"EncounterMedium",
|
|
45
|
+
"EncounterState",
|
|
46
|
+
)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class MedicationStatement(IdentifiableModel):
|
|
7
|
+
"""MedicationStatement."""
|
|
8
|
+
|
|
9
|
+
class Meta:
|
|
10
|
+
db_table = "canvas_sdk_data_api_medicationstatement_001"
|
|
11
|
+
|
|
12
|
+
patient = models.ForeignKey(
|
|
13
|
+
"v1.Patient", on_delete=models.DO_NOTHING, related_name="medication_statements"
|
|
14
|
+
)
|
|
15
|
+
note = models.ForeignKey(
|
|
16
|
+
"v1.Note", on_delete=models.DO_NOTHING, related_name="medication_statements"
|
|
17
|
+
)
|
|
18
|
+
medication = models.ForeignKey(
|
|
19
|
+
"v1.Medication",
|
|
20
|
+
on_delete=models.DO_NOTHING,
|
|
21
|
+
related_name="medication_statements",
|
|
22
|
+
null=True,
|
|
23
|
+
)
|
|
24
|
+
indications = models.ManyToManyField(
|
|
25
|
+
"v1.Assessment",
|
|
26
|
+
related_name="treatments_stated",
|
|
27
|
+
db_table="canvas_sdk_data_api_medicationstatement_indications_001",
|
|
28
|
+
)
|
|
29
|
+
entered_in_error = models.ForeignKey(
|
|
30
|
+
"v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+", null=True
|
|
31
|
+
)
|
|
32
|
+
committer = models.ForeignKey(
|
|
33
|
+
"v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+", null=True
|
|
34
|
+
)
|
|
35
|
+
originator = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+")
|
|
36
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
37
|
+
modified = models.DateTimeField(auto_now=True)
|
|
38
|
+
start_date_original_input = models.CharField(max_length=255, default="")
|
|
39
|
+
start_date = models.DateField(default=None, null=True)
|
|
40
|
+
end_date_original_input = models.CharField(max_length=255, default="")
|
|
41
|
+
end_date = models.DateField(default=None, null=True)
|
|
42
|
+
dose_quantity = models.FloatField(null=True)
|
|
43
|
+
dose_form = models.CharField(max_length=255, default="")
|
|
44
|
+
dose_route = models.CharField(max_length=255, default="")
|
|
45
|
+
dose_frequency = models.FloatField(null=True)
|
|
46
|
+
dose_frequency_interval = models.CharField(max_length=255, default="")
|
|
47
|
+
sig_original_input = models.CharField(max_length=255, default="")
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
__exports__ = ("MedicationStatement",)
|
canvas_sdk/v1/data/patient.py
CHANGED
|
@@ -72,6 +72,9 @@ class Patient(Model):
|
|
|
72
72
|
biological_race_codes = ArrayField(
|
|
73
73
|
models.CharField(max_length=100, default="", blank=True), default=list, blank=True
|
|
74
74
|
)
|
|
75
|
+
cultural_ethnicity_codes = ArrayField(
|
|
76
|
+
models.CharField(max_length=100, default="", blank=True), default=list, blank=True
|
|
77
|
+
)
|
|
75
78
|
last_known_timezone = models.CharField(max_length=32, null=True, blank=True)
|
|
76
79
|
mrn = models.CharField(max_length=9, unique=True, default=generate_mrn)
|
|
77
80
|
active = models.BooleanField(default=True)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from django.db import models
|
|
2
|
+
|
|
3
|
+
from canvas_sdk.v1.data.base import IdentifiableModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class StopMedicationEvent(IdentifiableModel):
|
|
7
|
+
"""StopMedicationEvent."""
|
|
8
|
+
|
|
9
|
+
class Meta:
|
|
10
|
+
db_table = "canvas_sdk_data_api_stopmedicationevent_001"
|
|
11
|
+
|
|
12
|
+
patient = models.ForeignKey(
|
|
13
|
+
"v1.Patient", on_delete=models.DO_NOTHING, related_name="stopped_medications"
|
|
14
|
+
)
|
|
15
|
+
note = models.ForeignKey(
|
|
16
|
+
"v1.Note", on_delete=models.DO_NOTHING, related_name="stopped_medications"
|
|
17
|
+
)
|
|
18
|
+
medication = models.ForeignKey(
|
|
19
|
+
"v1.Medication",
|
|
20
|
+
on_delete=models.DO_NOTHING,
|
|
21
|
+
related_name="stopmedicationevent_set",
|
|
22
|
+
null=True,
|
|
23
|
+
)
|
|
24
|
+
entered_in_error = models.ForeignKey(
|
|
25
|
+
"v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+", null=True
|
|
26
|
+
)
|
|
27
|
+
committer = models.ForeignKey(
|
|
28
|
+
"v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+", null=True
|
|
29
|
+
)
|
|
30
|
+
originator = models.ForeignKey("v1.CanvasUser", on_delete=models.DO_NOTHING, related_name="+")
|
|
31
|
+
created = models.DateTimeField(auto_now_add=True)
|
|
32
|
+
modified = models.DateTimeField(auto_now=True)
|
|
33
|
+
rationale = models.CharField(max_length=1024, default="")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
__exports__ = ("StopMedicationEvent",)
|
|
@@ -509,6 +509,7 @@
|
|
|
509
509
|
"canvas_sdk.questionnaires.utils": [
|
|
510
510
|
"Draft7Validator",
|
|
511
511
|
"ExtendedDraft7Validator",
|
|
512
|
+
"QuestionnaireConfig",
|
|
512
513
|
"from_yaml"
|
|
513
514
|
],
|
|
514
515
|
"canvas_sdk.templates": [
|
|
@@ -558,6 +559,7 @@
|
|
|
558
559
|
"ChargeDescriptionMaster",
|
|
559
560
|
"Claim",
|
|
560
561
|
"ClaimCoverage",
|
|
562
|
+
"ClaimDiagnosisCode",
|
|
561
563
|
"ClaimLineItem",
|
|
562
564
|
"ClaimPatient",
|
|
563
565
|
"ClaimQueue",
|
|
@@ -572,6 +574,7 @@
|
|
|
572
574
|
"DetectedIssueEvidence",
|
|
573
575
|
"Device",
|
|
574
576
|
"Discount",
|
|
577
|
+
"Encounter",
|
|
575
578
|
"Facility",
|
|
576
579
|
"Goal",
|
|
577
580
|
"ImagingOrder",
|
|
@@ -599,6 +602,7 @@
|
|
|
599
602
|
"LineItemTransfer",
|
|
600
603
|
"Medication",
|
|
601
604
|
"MedicationCoding",
|
|
605
|
+
"MedicationStatement",
|
|
602
606
|
"Message",
|
|
603
607
|
"MessageAttachment",
|
|
604
608
|
"MessageTransmission",
|
|
@@ -645,6 +649,7 @@
|
|
|
645
649
|
"StaffLicense",
|
|
646
650
|
"StaffPhoto",
|
|
647
651
|
"StaffRole",
|
|
652
|
+
"StopMedicationEvent",
|
|
648
653
|
"Task",
|
|
649
654
|
"TaskComment",
|
|
650
655
|
"TaskLabel",
|
|
@@ -701,6 +706,9 @@
|
|
|
701
706
|
"InstallmentPlan",
|
|
702
707
|
"InstallmentPlanStatus"
|
|
703
708
|
],
|
|
709
|
+
"canvas_sdk.v1.data.claim_diagnosis_code": [
|
|
710
|
+
"ClaimDiagnosisCode"
|
|
711
|
+
],
|
|
704
712
|
"canvas_sdk.v1.data.claim_line_item": [
|
|
705
713
|
"ClaimLineItem",
|
|
706
714
|
"ClaimLineItemStatus",
|
|
@@ -756,6 +764,11 @@
|
|
|
756
764
|
"canvas_sdk.v1.data.discount": [
|
|
757
765
|
"Discount"
|
|
758
766
|
],
|
|
767
|
+
"canvas_sdk.v1.data.encounter": [
|
|
768
|
+
"Encounter",
|
|
769
|
+
"EncounterMedium",
|
|
770
|
+
"EncounterState"
|
|
771
|
+
],
|
|
759
772
|
"canvas_sdk.v1.data.facility": [
|
|
760
773
|
"Facility"
|
|
761
774
|
],
|
|
@@ -809,6 +822,9 @@
|
|
|
809
822
|
"MedicationCoding",
|
|
810
823
|
"Status"
|
|
811
824
|
],
|
|
825
|
+
"canvas_sdk.v1.data.medication_statement": [
|
|
826
|
+
"MedicationStatement"
|
|
827
|
+
],
|
|
812
828
|
"canvas_sdk.v1.data.message": [
|
|
813
829
|
"Message",
|
|
814
830
|
"MessageAttachment",
|
|
@@ -914,6 +930,9 @@
|
|
|
914
930
|
"StaffPhoto",
|
|
915
931
|
"StaffRole"
|
|
916
932
|
],
|
|
933
|
+
"canvas_sdk.v1.data.stop_medication_event": [
|
|
934
|
+
"StopMedicationEvent"
|
|
935
|
+
],
|
|
917
936
|
"canvas_sdk.v1.data.task": [
|
|
918
937
|
"EventType",
|
|
919
938
|
"Task",
|
plugin_runner/sandbox.py
CHANGED
settings.py
CHANGED
|
@@ -77,10 +77,24 @@ else:
|
|
|
77
77
|
|
|
78
78
|
PLUGIN_RUNNER_MAX_WORKERS = int(os.getenv("PLUGIN_RUNNER_MAX_WORKERS", 5))
|
|
79
79
|
|
|
80
|
+
# By default, allow a pool size that gives each worker 2 active connections
|
|
81
|
+
# and allow overriding via environment variable if necessary
|
|
82
|
+
PLUGIN_RUNNER_DATABASE_POOL_MAX = int(
|
|
83
|
+
os.getenv(
|
|
84
|
+
"PLUGIN_RUNNER_DATABASE_POOL_MAX",
|
|
85
|
+
PLUGIN_RUNNER_MAX_WORKERS * 2,
|
|
86
|
+
)
|
|
87
|
+
)
|
|
88
|
+
|
|
80
89
|
if CANVAS_SDK_DB_BACKEND == "postgres":
|
|
81
90
|
db_config: dict[str, Any] = {
|
|
82
91
|
"ENGINE": "django.db.backends.postgresql",
|
|
83
|
-
"OPTIONS": {
|
|
92
|
+
"OPTIONS": {
|
|
93
|
+
"pool": {
|
|
94
|
+
"min_size": 2,
|
|
95
|
+
"max_size": PLUGIN_RUNNER_DATABASE_POOL_MAX,
|
|
96
|
+
}
|
|
97
|
+
},
|
|
84
98
|
}
|
|
85
99
|
|
|
86
100
|
if CANVAS_SDK_DB_URL:
|
|
File without changes
|
|
File without changes
|