Pinnacle Export Tool#

Summary#

Export DICOM objects from raw Pinnacle patient data for research workflows. pymedphys.pinnacle has been part of the public, non-experimental API since PyMedPhys 0.40.0; see the release notes.

Warning

Research use only. The Pinnacle Export Tool is intended for research purposes only. Do not use it clinically. Inclusion in the public Python API does not imply clinical suitability or clinical validation.

Some conversion values are hard-coded rather than taken from the source data. Conversion support and validation vary by DICOM object and Pinnacle version, and some objects may not be converted correctly. Before using the output in research, compare it with the corresponding DICOM objects exported directly by the same Pinnacle version.

See also

For the command line interface, see Pinnacle Export Tool.

API#

class pymedphys.pinnacle.PinnacleExport(path, logger=None)[source]#

Handle Pinnacle data to allow export of DICOM objects

This class is used to export the various DICOM objects from Pinnacle data found within the given path.

Parameters:
  • path (str) – Path to raw Pinnacle data (directory containing ‘Patient’ file).

  • logger (Logger) – Logger the tool will log to.

static export_dose(plan, export_path='.')[source]#

Exports the RTDOSE DICOM modality.

Parameters:
  • plan (PinnaclePlan) – The plan for which dose should be exported.

  • export_path (str, optional) – The file system path where the DICOM object should be exported to.

export_image(image=None, series_uid='', export_path='.')[source]#

Exports an image from the Pinnacle data.

Parameters:
  • image (PinnacleImage, optional) – The image to export.

  • series_uid (str, optional) – The SeriesInstanceUID of the image to export.

  • export_path (str, optional) – The file system path where the DICOM objects should be exported to.

static export_plan(plan, export_path='.')[source]#

Exports the RTPLAN DICOM modality.

Parameters:
  • plan (PinnaclePlan) – The plan for which dose should be exported.

  • export_path (str, optional) – The file system path where the DICOM object should be exported to.

static export_struct(plan, export_path='.', skip_pattern='^$')[source]#

Exports the RTSTRUCT DICOM modality.

Parameters:
  • plan (PinnaclePlan) – The plan for which structures should be exported.

  • export_path (str, optional) – The file system path where the DICOM object should be exported to.

  • skip_pattern (str, optional) – A regular expression specifying which ROIs to skip For example: RadCalc|normal_tissue

property images#

Get the images available.

Returns:

images – List of PinnacleImage’s available within the Pinnacle raw data in the path configured.

Return type:

list

log_images()[source]#

Outputs all images found in the Pinnacle data to the log.

log_plan_names()[source]#

Outputs all plans found in the Pinnacle data to the log.

log_trial_names()[source]#

Outputs all trials found in the Pinnacle data to the log.

log_trial_names_in_plan(plan)[source]#

Outputs all trials found within a plan to the log.

Parameters:

plan (PinnaclePlan) – The plan for which to log the trials.

property logger#

Gets the configured logger.

Returns:

logger – Logger configured.

Return type:

Logger

property patient_info#

Gets the patient info.

Returns:

patient_info – Dictionary object containing the data found in the ‘Patient’ file within the raw Pinnacle data.

Return type:

dict

property plans#

Get the plans available.

Returns:

plans – List of PinnaclePlan’s available within the Pinnacle raw data in the path configured.

Return type:

list

class pymedphys.pinnacle.PinnaclePlan(pinnacle, path, plan)[source]#

Represents a plan within the Pinnacle data.

This class manages the data specific to a plan within a Pinnacle dataset.

Parameters:
  • pinnacle (PinnacleExport) – PinnacleExport object representing the dataset.

  • path (str) – Path to raw Pinnacle data (directoy containing ‘Patient’ file).

  • plan (dict) – Plan info dict from ‘Patient’ file.

property active_trial#

Get and set the active trial for this plan.

When DICOM objects are exported, data from the active trial is used to generate the output.

convert_point(point)[source]#

Convert a point from Pinnacle coordinates to DICOM coordinates.

Parameters:

point (list) – The point to convert.

Return type:

The converted point.

property dose_inst_uid#

Gets the instance UID for RTDOSE.

Returns:

uid – The UID to use for the dose.

Return type:

str

generate_uids(uid_type='HASH')[source]#

Generates UIDs to be used for exporting this plan.

Parameters:

uid_type (str, optional) – If ‘HASH’, the entropy will be generated to hash to consistant UIDs. If not then random UIDs will be generated. Default: ‘HASH’

static is_prefix_valid(prefix)[source]#

Check if a UID prefix is valid.

Parameters:

prefix (str) – The UID prefix to check.

Returns:

True if valid, False otherwise.

property iso_center#

Gets and sets the iso center for this plan.

property logger#

Gets the configured logger.

Returns:

logger – Logger configured.

Return type:

Logger

property machine_info#

Gets the machine info for this plan.

Returns:

machine_info – Machine info read from ‘plan.Pinnacle.Machines’ file.

Return type:

dict

property path#

Gets the path of the Pinnacle data.

Returns:

path – Path containing the Pinnacle data.

Return type:

str

property patient_position#

Gets the patient position

Returns:

patient_position – The patient position for this plan.

Return type:

str

property pinnacle#

Gets the PinnacleExport object.

Returns:

pinnacle – PinnacleExport object for this dataset.

Return type:

PinnacleExport

property plan_info#

Gets the plan information for this plan.

Returns:

plan_info – Plan info as found in the Pinnacle ‘Patient’ file.

Return type:

dict

property plan_inst_uid#

Gets the instance UID for RTPLAN.

Returns:

uid – The UID to use for the plan.

Return type:

str

property points#

Gets the points defined within the plan.

Returns:

points – List of points read from the ‘plan.Points’ file.

Return type:

list

property primary_image#

Gets the primary image for this plan.

Returns:

primary_image – PinnacleImage representing the primary image for this plan.

Return type:

PinnacleImage

property struct_inst_uid#

Gets the instance UID for RTSTRUCT.

Returns:

uid – The UID to use for the struct.

Return type:

str

property trial_info#

Gets the trial information of the active trial.

Returns:

trial_info – Trial info from the ‘plan.Trial’ file.

Return type:

dict

property trials#

Gets the trials within this plan.

Returns:

trials – List of all trials found within this plan.

Return type:

list

class pymedphys.pinnacle.PinnacleImage(pinnacle, path, image)[source]#

Represents an image within the Pinnacle data.

This class manages the data specific to an image within a Pinnacle dataset.

Parameters:
  • pinnacle (PinnacleExport) – PinnacleExport object representing the dataset.

  • path (str) – Path to raw Pinnacle data (directoy containing ‘Patient’ file).

  • image (dict) – Image info dict from ‘Patient’ file.

property image#

Gets the image information from the ‘Patient’ file.

Returns:

image – Image info as found in the Pinnacle ‘Patient’ file.

Return type:

dict

property image_header#

Gets the image header from the ‘.header’ file.

Returns:

image_header – Image info as found in the Pinnacle ‘.header’ file.

Return type:

dict

property image_info#

Gets the image information from the ‘.ImageInfo’ file.

Returns:

image_info – Image info as found in the Pinnacle ‘.ImageInfo’ file.

Return type:

dict

property image_set#

Gets the image set from the ‘.ImageSet’ file.

Returns:

image_set – Image set as found in the Pinnacle ‘.ImageSet’ file.

Return type:

dict

property logger#

Gets the configured logger.

Returns:

logger – Logger configured.

Return type:

Logger

property path#

Gets the path of the Pinnacle data.

Returns:

path – Path containing the Pinnacle data.

Return type:

str

property pinnacle#

Gets the PinnacleExport object.

Returns:

pinnacle – PinnacleExport object for this dataset.

Return type:

PinnacleExport