Imaging

Introduction #

The ImagingOrder, ImagingReview, ImagingReport, and ImagingReportCoding models represent imaging results.

Basic Usage #

To retrieve an ImagingOrder, ImagingReview, or ImagingReport by identifier, use the get method on the model manager:

from canvas_sdk.v1.data.imaging import ImagingOrder, ImagingReview, ImagingReport

imaging_order = ImagingOrder.objects.get(id="d2194110-5c9a-4842-8733-ef09ea5ead11")
imaging_review = ImagingReview.objects.get(id="c02c6b02-2581-46bf-819c-b5aacad2134c")
imaging_report = ImagingReport.objects.get(id="c1a5a35a-4ee2-4a0e-85c0-21739dc8c4a8")

If you have a patient object, the orders, reviews, and reports can be accessed with the imaging_orders, imaging_reviews, and imaging_results attributes, respectively on a Patient object:

from canvas_sdk.v1.data.patient import Patient

patient = Patient.objects.get(id="1eed3ea2a8d546a1b681a2a45de1d790")
orders = patient.imaging_orders.all()
reviews = patient.imaging_reviews.all()
reports = patient.imaging_results.all()

Filtering #

Imaging orders, reviews, and reports can be filtered by any attribute that exists on the models.

Filtering is done with the filter method on the ImagingOrder, ImagingReview, and ImagingReport model managers.

By attribute #

Specify an attribute with filter to filter by that attribute:

from canvas_sdk.v1.data.imaging import ImagingOrder, ImagingReview, ImagingReport

orders = ImagingOrder.objects.filter(status="completed")
reviews = ImagingReview.objects.filter(is_released_to_patient=False)
reports = ImagingReport.objects.filter(requires_signature=True)

By ValueSet #

See Value Sets for the library of built-in value sets and how to create your own.

ImagingReport supports ValueSet filtering through the find method on its model manager:

from canvas_sdk.v1.data.imaging import ImagingReport
from canvas_sdk.value_set.v2022.diagnostic_study import Mammography

reports = ImagingReport.objects.find(Mammography)

find joins through the report’s codings reverse relation and matches on (system, code) pairs from the value set, so a coding must match both the code system and the code to be included.

Committed records #

The committed method returns ImagingOrder and ImagingReview records that have been committed and not entered in error:

from canvas_sdk.v1.data.imaging import ImagingOrder, ImagingReview

committed_orders = ImagingOrder.objects.committed()
committed_reviews = ImagingReview.objects.committed()

Related Tasks #

To retrieve an Imaging Order’s related tasks, use the get_task_objects method on the ImagingOrder object.

from canvas_sdk.v1.data.imaging import ImagingOrder

imaging_order = ImagingOrder.objects.get(id="d2194110-5c9a-4842-8733-ef09ea5ead11")
tasks = imaging_order.get_task_objects().all()

The task_list computed property returns the same related tasks as a list[Task]:

from canvas_sdk.v1.data.imaging import ImagingOrder

imaging_order = ImagingOrder.objects.get(id="d2194110-5c9a-4842-8733-ef09ea5ead11")
tasks = imaging_order.task_list

Accessing the report file #

The document_url property on ImagingReport returns a presigned S3 URL for securely accessing the report’s file. The URL is valid for one hour and is regenerated on each access, so don’t persist or cache it. If the report has no associated file, document_url returns None.

from canvas_sdk.v1.data.imaging import ImagingReport

imaging_report = ImagingReport.objects.get(id="c1a5a35a-4ee2-4a0e-85c0-21739dc8c4a8")

# Presigned S3 URL to the report file, or None if the report has no file
url = imaging_report.document_url

Attributes #

ImagingOrder #

Field NameType
idUUID
dbidInteger
createdDateTime
modifiedDateTime
originatorCanvasUser
committerCanvasUser
entered_in_errorCanvasUser
patientPatient
noteNote
imagingString
imaging_centerServiceProvider
note_to_radiologistString
internal_commentString
statusOrderStatus
date_time_orderedDateTime
ordering_providerStaff
priorityString
delegatedBoolean
task_idsString
resultsImagingReport[]

ImagingReview #

Field NameType
idUUID
dbidInteger
createdDateTime
modifiedDateTime
originatorCanvasUser
committerCanvasUser
entered_in_errorCanvasUser
patient_communication_methodReviewPatientCommunicationMethod
internal_commentString
message_to_patientString
is_released_to_patientBoolean
statusReviewStatus
noteNote
patientPatient

ImagingReport #

Field NameType
idUUID
dbidInteger
createdDateTime
modifiedDateTime
review_modeDocumentReviewMode
junkedBoolean
requires_signatureBoolean
assigned_dateDateTime
patientPatient
orderImagingOrder
sourceImagingReportSource
nameString
result_dateDate
original_dateDate
reviewImagingReview
document_urlString (property) — presigned S3 URL, or None if the report has no file
codingsImagingReportCoding[]

ImagingReportCoding #

Field NameType
dbidInteger
reportImagingReport
systemString
versionString
codeString
displayString
user_selectedBoolean
valueString

Enumeration types #

ImagingReportSource #

ValueLabel
RADIOLOGY_PATIENTRadiology Report From Patient
VERBAL_PATIENTVerbal Report From Patient
DIRECTLY_RADIOLOGYDirectly Radiology Report