proknow.Uploads

Uploads

class proknow.Uploads.Uploads(proknow, requestor)

This class should be used to interact with the uploads in a ProKnow organization. It is instantiated for you as an attribute of the proknow.ProKnow.ProKnow class.

upload(workspace, path_or_paths, overrides=None, scope=None, wait=True)

Initiates an upload or series of uploads to the API.

Parameters:
  • workspace (str) – An id or name of the workspace in which to create the uploads.

  • path_or_paths (str or list) – A path or list of paths such that each path is a directory of files to upload or a path to a file to upload.

  • overrides (dict, optional) – A dictionary of overrides to use when creating uploads. The object may contain an optional key "patient", which in turn may contain the optional override parameters "mrn", "name", "birth_date", and "sex".

  • scope (str, optional) – The upload scope.

  • wait (bool, optional) – Whether to wait for the uploads to reach a terminal state.

Returns:

If wait is True, an object used to manage a batch of uploads; otherwise, None.

Return type:

proknow.Uploads.UploadBatch

Raises:

Example

This example shows how to upload a directory of files:

from proknow import ProKnow
pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
pk.uploads.upload("Upload Test", "./DICOM")

You may also provide the path to each file:

from proknow import ProKnow
pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
pk.uploads.upload("Upload Test", [
    "./DICOM/img000001.dcm",
    "./DICOM/img000002.dcm",
    "./DICOM/img000003.dcm",
    "./DICOM/img000004.dcm",
    "./DICOM/img000005.dcm",
])

Lists containing both directories and file paths are also permitted:

from proknow import ProKnow
pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
pk.uploads.upload("Upload Test", [
    "./DICOM/CT/",
    "./DICOM/structures.dcm",
    "./DICOM/plan.dcm",
    "./DICOM/dose.dcm",
])

UploadBatch

class proknow.Uploads.UploadBatch(uploads, workspace_id, files)

This class is instantiated by the proknow.Uploads.Uploads.upload() method and is used as an interface for looking up patients and entities within a batch of resolved uploads.

Attributes

patients (list): A list of proknow.Uploads.UploadPatientSummary items.

find_entity(path)

Find the entity associated with the given file.

Parameters:

path (str) – An absolute file path.

Returns:

A summary representation of the entity.

Return type:

proknow.Uploads.UploadEntitySummary

Raises:

Example

This example shows how to find an entity associated with a given file upload:

from proknow import ProKnow
import os

pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
batch = pk.uploads.upload("Upload Test", "./DICOM")
path = os.path.abspath("./DICOM/plan.dcm")
entity_summary = batch.find_entity(path)
find_patient(path)

Find the patient associated with the given file.

Parameters:

path (str) – An absolute file path.

Returns:

A summary representation of the patient.

Return type:

proknow.Uploads.UploadPatientSummary

Raises:

Example

This example shows how to find a patient associated with a given file upload:

from proknow import ProKnow
import os

pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
batch = pk.uploads.upload("Upload Test", "./DICOM")
path = os.path.abspath("./DICOM/plan.dcm")
patient_summary = batch.find_patient(path)

UploadPatientSummary

class proknow.Uploads.UploadPatientSummary(uploads, workspace_id, patient)

This class provides a summary view of a patient as returned as part of an upload.

id

The id of the patient (readonly).

Type:

str

data

The summary representation of the patient as returned from the API for an upload (readonly).

Type:

dict

entities

A list of proknow.Uploads.UploadEntitySummary items.

Type:

list

add_entity(entity)

Adds an entity to patient summary.

Parameters:

entity (proknow.Uploads.UploadEntitySummary) – An entity summary to add to the patient summary.

get()

Gets the complete representation of the patient.

Returns:

An object representing a patient in the organization.

Return type:

proknow.Patients.PatientItem

Raises:

proknow.Exceptions.HttpError – If the HTTP request generated an error.

Example

This example shows how to get a list of patient items associated with a batch of uploads:

from proknow import ProKnow

pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
batch = pk.uploads.upload("Upload Test", "./DICOM")
patients = [patient.get() for patient in batch.patients]

UploadEntitySummary

class proknow.Uploads.UploadEntitySummary(uploads, workspace_id, patient_id, entity)

This class provides a summary view of a entity as returned as part of an upload.

id

The id of the entity (readonly).

Type:

str

data

The summary representation of the entity as returned from the API for an upload (readonly).

Type:

dict

get()

Gets the complete representation of the entity.

Returns:

One of (proknow.Patients.ImageSetItem, proknow.Patients.StructureSetItem, proknow.Patients.PlanItem, proknow.Patients.DoseItem) based on the entity summary type.

Raises:

proknow.Exceptions.HttpError – If the HTTP request generated an error.

Example

This example shows how to get a list of entity items associated with a batch of uploads:

from proknow import ProKnow

pk = ProKnow('https://example.proknow.com', credentials_file="./credentials.json")
batch = pk.uploads.upload("Upload Test", "./DICOM")
entities = [entity.get() for patient in batch.patients for entity in patient.entities]