Skip to main content

The original best and only project to provide custom sorting and renaming of DICOM files

Project description

dicomsort

A project to provide custom sorting and renaming of dicom files

Description

Given DICOM files in a random folder structure, this program copies all into a user-defined folder hierarchy, creating folders as necessary and changing DICOM file names to be more meaningful.

The user can define the target folder structure and file naming by using a string consisting of concatenated tag names (like 'PatientName'), underscores and slashes. The last part of the string (as separated by slashes) denotes the naming convention for the file parts.

An Example: a target string of 'Modality/PatientName_PatientID' means that all DICOM images are arranged in a base folder and named by PatientName_PatientID, followed by an underscore and a unique number for every file that falls into the same category (and is not the same..?)

dicomsort returns with a count for both DICOM files organized and non-DICOM (or invalid DICOM) files skipped. It aborts with an error if it is to overwrite any existing file.

Installation

pip install thedicomsort
% dicomsort --help
dicomsort [options...] sourceDir targetDir/<patterns>

 where [options...] can be:
    [-z,--compressTargets] - create a .zip file in the target directory
    [-d,--deleteSource] - remove source files/directories after sorting
    [-f,--forceDelete] - remove source without confirmation
    [-k,--keepGoing] - report but ignore duplicate target files
    [-v,--verbose] - print diagnostics while processing
    [-s,--symlink] - create a symlink to dicom files in sourceDir instead of copying them
    [-t,--test] - run the built in self test (requires internet)
    [-u,--unsafe] - do not replace unsafe characters with '_' in the path
    [--help] - print this message

 where sourceDir is directory to be scanned or "" (null string) to read file list from stdin

 where targetDir/<patterns...> is a string defining the output file and directory
 names based on the dicom tags in the file.

If patterns are not specified, the following default is used:

  %PatientName-%Modality%StudyID-%StudyDescription-%StudyDate/%SeriesNumber_%SeriesDescription-%InstanceNumber.dcm

Example 1:

  dicomsort data sorted/%PatientName/%StudyDate/%SeriesDescription-%InstanceNumber.dcm

  could create a folder structure like:

  sorted/JohnDoe/2013-40-18/FLAIR-2.dcm

Example 2:

  find DicomSourceDir/ | grep "IMA$" | dicomsort -s "" DicomTargetDir

  would scan DicomSourceDir for file path names ending in IMA and create an
  output directory DicomTargetDir. The folder structure will be created using
  the default pattern with symbolic links to the source dicom data files.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thedicomsort-1.0.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

thedicomsort-1.0.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file thedicomsort-1.0.1.tar.gz.

File metadata

  • Download URL: thedicomsort-1.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/22.2.0

File hashes

Hashes for thedicomsort-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ac590d85cff5b4a24a22651b43a021807b505dd43ab60288b358769db470f5d6
MD5 e4a8059dfc7da4d563f41518a3a61059
BLAKE2b-256 be4a68323885dd865ef2a03674cf54f6dd721e2ba2d6d5c5f81f65853bf9fdb7

See more details on using hashes here.

File details

Details for the file thedicomsort-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: thedicomsort-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/22.2.0

File hashes

Hashes for thedicomsort-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 798abd616ee9e88bd58f8fcae58952842763499c5a4a88242b8225925f92b027
MD5 5dbc5b69a989e76b13a3ac846a2cc0dc
BLAKE2b-256 b878a6769a23476bb8e522e517927cabfa79951b4980475639c71a65ed979fd9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page