Skip to content

Commit

Permalink
ENH: Right number of leading zeros.
Browse files Browse the repository at this point in the history
  • Loading branch information
skwarfield committed Jun 18, 2024
1 parent f327af1 commit 7d329c6
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions sort_dicoms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import logging
import argparse
import shutil
import math

def clean_text(string):
# clean and standardize text descriptions, which makes searching files easier
Expand Down Expand Up @@ -43,7 +44,21 @@ def clean_text(string):

fileCount = len(unsortedList)
logging.info('Working on sorting %s files.' % len(unsortedList))


maxSeriesNumber = 1
for dicom_loc in unsortedList:
base_dicom_name = os.path.basename(dicom_loc)
# read the file
ds = pydicom.read_file(dicom_loc, force=True)
seriesNumber = ds.get("SeriesNumber", "NA")
seriesNumberStr = clean_text(str(ds.get("SeriesNumber", "NA")))
if seriesNumber > maxSeriesNumber:
maxSeriesNumber = seriesNumber

maxSeriesNumberDigits = int(math.log10(maxSeriesNumber))+1
logging.debug('Max series number is ' + str(maxSeriesNumber) + '.')
logging.debug('Max series number digits ' + str(maxSeriesNumberDigits))

count = 0
for dicom_loc in unsortedList:
base_dicom_name = os.path.basename(dicom_loc)
Expand All @@ -57,7 +72,7 @@ def clean_text(string):
seriesDescription = clean_text(ds.get("SeriesDescription", "NA"))
seriesNumber = clean_text(str(ds.get("SeriesNumber", "NA")))
logging.debug('SeriesNumber is ' + seriesNumber)
seriesNumber = seriesNumber.rjust(4,'0')
seriesNumber = seriesNumber.rjust(maxSeriesNumberDigits,'0')

# generate new, standardized file name
modality = ds.get("Modality","NA")
Expand Down

0 comments on commit 7d329c6

Please sign in to comment.