Working with Data#

Open In Colab

Here we present some useful tips & tricks which to help working with data which has been converted using PyDicer. As you will see, working with data in PyDicer is heavily oriented around DataFrames provided by the Pandas library. If you aren’t familiar with Pandas, we recommend working through the Pandas Getting Started Tutorials.

[1]:
try:
    from pydicer import PyDicer
except ImportError:
    !pip install pydicer
    from pydicer import PyDicer

from pathlib import Path

from pydicer.utils import (
    fetch_converted_test_data,
    load_object_metadata,
    determine_dcm_datetime,
    read_simple_itk_image
)

Setup PyDicer#

Here we load the LCTSC data which has already been converted. This is downloaded into the testdata_lctsc directory. We also initialise a PyDicer object.

[2]:
working_directory = fetch_converted_test_data("./testdata_lctsc", dataset="LCTSC")

pydicer = PyDicer(working_directory)
Working directory %s aready exists, won't download test data.

Read Converted Data#

To obtain a DataFrame of the converted data, use the read_converted_data function.

[3]:
df = pydicer.read_converted_data()
df
[3]:
sop_instance_uid hashed_uid modality patient_id series_uid for_uid referenced_sop_instance_uid path
0 1.3.6.1.4.1.14519.5.2.1.7014.4598.168227681755... 5adf40 CT LCTSC-Train-S1-007 1.3.6.1.4.1.14519.5.2.1.7014.4598.335375068555... 1.3.6.1.4.1.14519.5.2.1.7014.4598.187709044743... NaN testdata_lctsc/data/LCTSC-Train-S1-007/images/...
1 1.3.6.1.4.1.14519.5.2.1.7014.4598.284338872489... ed6686 RTSTRUCT LCTSC-Train-S1-007 1.3.6.1.4.1.14519.5.2.1.7014.4598.284338872489... 1.3.6.1.4.1.14519.5.2.1.7014.4598.187709044743... 1.3.6.1.4.1.14519.5.2.1.7014.4598.168227681755... testdata_lctsc/data/LCTSC-Train-S1-007/structu...
2 1.3.6.1.4.1.14519.5.2.1.7014.4598.263565217029... 88c5ef CT LCTSC-Train-S1-006 1.3.6.1.4.1.14519.5.2.1.7014.4598.770569242984... 1.3.6.1.4.1.14519.5.2.1.7014.4598.325217978839... NaN testdata_lctsc/data/LCTSC-Train-S1-006/images/...
3 1.3.6.1.4.1.14519.5.2.1.7014.4598.161109536301... ceb111 RTSTRUCT LCTSC-Train-S1-006 1.3.6.1.4.1.14519.5.2.1.7014.4598.161109536301... 1.3.6.1.4.1.14519.5.2.1.7014.4598.325217978839... 1.3.6.1.4.1.14519.5.2.1.7014.4598.263565217029... testdata_lctsc/data/LCTSC-Train-S1-006/structu...
4 1.3.6.1.4.1.14519.5.2.1.7014.4598.235489581364... 914d57 CT LCTSC-Test-S1-102 1.3.6.1.4.1.14519.5.2.1.7014.4598.639871532605... 1.3.6.1.4.1.14519.5.2.1.7014.4598.408067568497... NaN testdata_lctsc/data/LCTSC-Test-S1-102/images/9...
5 1.3.6.1.4.1.14519.5.2.1.7014.4598.110977663386... 6c6ea4 RTSTRUCT LCTSC-Test-S1-102 1.3.6.1.4.1.14519.5.2.1.7014.4598.110977663386... 1.3.6.1.4.1.14519.5.2.1.7014.4598.408067568497... 1.3.6.1.4.1.14519.5.2.1.7014.4598.235489581364... testdata_lctsc/data/LCTSC-Test-S1-102/structur...
6 1.3.6.1.4.1.14519.5.2.1.7014.4598.318848546630... aa38e6 CT LCTSC-Train-S1-002 1.3.6.1.4.1.14519.5.2.1.7014.4598.234842392725... 1.3.6.1.4.1.14519.5.2.1.7014.4598.145984743865... NaN testdata_lctsc/data/LCTSC-Train-S1-002/images/...
7 1.3.6.1.4.1.14519.5.2.1.7014.4598.291449913947... f036b8 RTSTRUCT LCTSC-Train-S1-002 1.3.6.1.4.1.14519.5.2.1.7014.4598.291449913947... 1.3.6.1.4.1.14519.5.2.1.7014.4598.145984743865... 1.3.6.1.4.1.14519.5.2.1.7014.4598.318848546630... testdata_lctsc/data/LCTSC-Train-S1-002/structu...
8 1.3.6.1.4.1.14519.5.2.1.7014.4598.217118546740... dd0026 CT LCTSC-Train-S1-008 1.3.6.1.4.1.14519.5.2.1.7014.4598.135073567254... 1.3.6.1.4.1.14519.5.2.1.7014.4598.243364093992... NaN testdata_lctsc/data/LCTSC-Train-S1-008/images/...
9 1.3.6.1.4.1.14519.5.2.1.7014.4598.225487254421... 48a970 RTSTRUCT LCTSC-Train-S1-008 1.3.6.1.4.1.14519.5.2.1.7014.4598.225487254421... 1.3.6.1.4.1.14519.5.2.1.7014.4598.243364093992... 1.3.6.1.4.1.14519.5.2.1.7014.4598.217118546740... testdata_lctsc/data/LCTSC-Train-S1-008/structu...
10 1.3.6.1.4.1.14519.5.2.1.7014.4598.141349678572... d91c84 CT LCTSC-Train-S1-004 1.3.6.1.4.1.14519.5.2.1.7014.4598.269433294341... 1.3.6.1.4.1.14519.5.2.1.7014.4598.313160975008... NaN testdata_lctsc/data/LCTSC-Train-S1-004/images/...
11 1.3.6.1.4.1.14519.5.2.1.7014.4598.595315284787... 61758b RTSTRUCT LCTSC-Train-S1-004 1.3.6.1.4.1.14519.5.2.1.7014.4598.595315284787... 1.3.6.1.4.1.14519.5.2.1.7014.4598.313160975008... 1.3.6.1.4.1.14519.5.2.1.7014.4598.141349678572... testdata_lctsc/data/LCTSC-Train-S1-004/structu...
12 1.3.6.1.4.1.14519.5.2.1.7014.4598.140943693489... 738c1a CT LCTSC-Train-S1-005 1.3.6.1.4.1.14519.5.2.1.7014.4598.338518041666... 1.3.6.1.4.1.14519.5.2.1.7014.4598.964812114328... NaN testdata_lctsc/data/LCTSC-Train-S1-005/images/...
13 1.3.6.1.4.1.14519.5.2.1.7014.4598.214803404117... 68d663 RTSTRUCT LCTSC-Train-S1-005 1.3.6.1.4.1.14519.5.2.1.7014.4598.214803404117... 1.3.6.1.4.1.14519.5.2.1.7014.4598.964812114328... 1.3.6.1.4.1.14519.5.2.1.7014.4598.140943693489... testdata_lctsc/data/LCTSC-Train-S1-005/structu...
14 1.3.6.1.4.1.14519.5.2.1.7014.4598.188371727865... 6834c9 CT LCTSC-Train-S1-001 1.3.6.1.4.1.14519.5.2.1.7014.4598.330486033168... 1.3.6.1.4.1.14519.5.2.1.7014.4598.109432485688... NaN testdata_lctsc/data/LCTSC-Train-S1-001/images/...
15 1.3.6.1.4.1.14519.5.2.1.7014.4598.267594131248... b5bddb RTSTRUCT LCTSC-Train-S1-001 1.3.6.1.4.1.14519.5.2.1.7014.4598.267594131248... 1.3.6.1.4.1.14519.5.2.1.7014.4598.109432485688... 1.3.6.1.4.1.14519.5.2.1.7014.4598.188371727865... testdata_lctsc/data/LCTSC-Train-S1-001/structu...
16 1.3.6.1.4.1.14519.5.2.1.7014.4598.333558838494... 666be6 CT LCTSC-Test-S1-101 1.3.6.1.4.1.14519.5.2.1.7014.4598.106943890850... 1.3.6.1.4.1.14519.5.2.1.7014.4598.171234424242... NaN testdata_lctsc/data/LCTSC-Test-S1-101/images/6...
17 1.3.6.1.4.1.14519.5.2.1.7014.4598.929007819506... cc682f RTSTRUCT LCTSC-Test-S1-101 1.3.6.1.4.1.14519.5.2.1.7014.4598.280355341349... 1.3.6.1.4.1.14519.5.2.1.7014.4598.171234424242... 1.3.6.1.4.1.14519.5.2.1.7014.4598.333558838494... testdata_lctsc/data/LCTSC-Test-S1-101/structur...
18 1.3.6.1.4.1.14519.5.2.1.7014.4598.159497309342... 2bf2f9 CT LCTSC-Train-S1-003 1.3.6.1.4.1.14519.5.2.1.7014.4598.742383887179... 1.3.6.1.4.1.14519.5.2.1.7014.4598.803594135292... NaN testdata_lctsc/data/LCTSC-Train-S1-003/images/...
19 1.3.6.1.4.1.14519.5.2.1.7014.4598.127494043495... 8e34f9 RTSTRUCT LCTSC-Train-S1-003 1.3.6.1.4.1.14519.5.2.1.7014.4598.127494043495... 1.3.6.1.4.1.14519.5.2.1.7014.4598.803594135292... 1.3.6.1.4.1.14519.5.2.1.7014.4598.159497309342... testdata_lctsc/data/LCTSC-Train-S1-003/structu...

Iterating Over Objects#

If you want to perform some operation on (for example) all images in your dataset, you can iterate over each image row like this. Within each loop we load each image as a SimpleITK image (just for demonstration purposes).)

[4]:
for idx, ct_row in df[df.modality=="CT"].iterrows():

    print(f"Loading image with hashed UID: {ct_row.hashed_uid}...", end="")

    img = read_simple_itk_image(ct_row)

    print(" Complete")
Loading image with hashed UID: 5adf40... Complete
Loading image with hashed UID: 88c5ef... Complete
Loading image with hashed UID: 914d57... Complete
Loading image with hashed UID: aa38e6... Complete
Loading image with hashed UID: dd0026... Complete
Loading image with hashed UID: d91c84... Complete
Loading image with hashed UID: 738c1a... Complete
Loading image with hashed UID: 6834c9... Complete
Loading image with hashed UID: 666be6... Complete
Loading image with hashed UID: 2bf2f9... Complete

Loading Object Metadata#

The metadata from the DICOM headers is stored by PyDicer and can be easily loaded using the load_object_metadata function. Simply pass a row from the converted DataFrame into this function to load the metadata for that object.

[5]:
first_row = df.iloc[0]
ds = load_object_metadata(first_row)
ds
[5]:
(0008, 0005) Specific Character Set              CS: 'ISO_IR 100'
(0008, 0008) Image Type                          CS: ['ORIGINAL', 'PRIMARY', 'AXIAL', 'CT_SOM5 SPI']
(0008, 0012) Instance Creation Date              DA: '20050726'
(0008, 0013) Instance Creation Time              TM: '090342.451000'
(0008, 0016) SOP Class UID                       UI: CT Image Storage
(0008, 0018) SOP Instance UID                    UI: 1.3.6.1.4.1.14519.5.2.1.7014.4598.168227681755643512811062844019
(0008, 0020) Study Date                          DA: '20031213'
(0008, 0021) Series Date                         DA: '20031213'
(0008, 0023) Content Date                        DA: '20031213'
(0008, 0030) Study Time                          TM: '140027.397000'
(0008, 0031) Series Time                         TM: '141846.903000'
(0008, 0033) Content Time                        TM: '141558.073000'
(0008, 0050) Accession Number                    SH: '1507292331039118'
(0008, 0060) Modality                            CS: 'CT'
(0008, 0070) Manufacturer                        LO: 'SIEMENS'
(0008, 0090) Referring Physician's Name          PN: ''
(0008, 1030) Study Description                   LO: 'RT^RCCT_THORAX_8F_High (Adult)'
(0008, 103e) Series Description                  LO: 'CT:P1B3RespCT  3.0  B30f  50% Ex'
(0008, 1090) Manufacturer's Model Name           LO: 'Sensation Open'
(0010, 0010) Patient's Name                      PN: 'LCTSC-Train-S1-007'
(0010, 0020) Patient ID                          LO: 'LCTSC-Train-S1-007'
(0010, 0030) Patient's Birth Date                DA: ''
(0010, 0040) Patient's Sex                       CS: 'F'
(0012, 0062) Patient Identity Removed            CS: 'YES'
(0012, 0063) De-identification Method            LO: ['Per DICOM PS 3.15 AnnexE. Details in 0012,0064', 'Per DICOM PS 3.15 AnnexE. Details in 0012,0064']
(0012, 0064)  De-identification Method Code Sequence  16 item(s) ----
   (0008, 0100) Code Value                          SH: '113100'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Basic Application Confidentiality Profile'
   ---------
   (0008, 0100) Code Value                          SH: '113101'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Pixel Data Option'
   ---------
   (0008, 0100) Code Value                          SH: '113104'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Structured Content Option'
   ---------
   (0008, 0100) Code Value                          SH: '113105'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Descriptors Option'
   ---------
   (0008, 0100) Code Value                          SH: '113107'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Longitudinal Temporal Information Modified Dates Option'
   ---------
   (0008, 0100) Code Value                          SH: '113108'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Patient Characteristics Option'
   ---------
   (0008, 0100) Code Value                          SH: '113109'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Device Identity Option'
   ---------
   (0008, 0100) Code Value                          SH: '113111'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Safe Private Option'
   ---------
   (0008, 0100) Code Value                          SH: '113100'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Basic Application Confidentiality Profile'
   ---------
   (0008, 0100) Code Value                          SH: '113101'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Pixel Data Option'
   ---------
   (0008, 0100) Code Value                          SH: '113104'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Structured Content Option'
   ---------
   (0008, 0100) Code Value                          SH: '113105'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Clean Descriptors Option'
   ---------
   (0008, 0100) Code Value                          SH: '113107'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Longitudinal Temporal Information Modified Dates Option'
   ---------
   (0008, 0100) Code Value                          SH: '113108'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Patient Characteristics Option'
   ---------
   (0008, 0100) Code Value                          SH: '113109'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Device Identity Option'
   ---------
   (0008, 0100) Code Value                          SH: '113111'
   (0008, 0102) Coding Scheme Designator            SH: 'DCM'
   (0008, 0104) Code Meaning                        LO: 'Retain Safe Private Option'
   ---------
(0013, 0010) Private Creator                     LO: 'CTP'
(0013, 1010) Private tag data                    LO: 'LCTSC'
(0013, 1013) Private tag data                    LO: '70144598'
(0018, 0015) Body Part Examined                  CS: 'LUNG'
(0018, 0050) Slice Thickness                     DS: '3.0'
(0018, 0060) KVP                                 DS: '120.0'
(0018, 0090) Data Collection Diameter            DS: '500.0'
(0018, 1100) Reconstruction Diameter             DS: '500.0'
(0018, 1110) Distance Source to Detector         DS: '1040.0'
(0018, 1111) Distance Source to Patient          DS: '570.0'
(0018, 1120) Gantry/Detector Tilt                DS: '0.0'
(0018, 1130) Table Height                        DS: '184.0'
(0018, 1140) Rotation Direction                  CS: 'CW'
(0018, 1150) Exposure Time                       IS: '361'
(0018, 1151) X-Ray Tube Current                  IS: '100'
(0018, 1152) Exposure                            IS: '500'
(0018, 1160) Filter Type                         SH: '0'
(0018, 1170) Generator Power                     IS: '12'
(0018, 1190) Focal Spot(s)                       DS: '1.2'
(0018, 1210) Convolution Kernel                  SH: 'B30f'
(0018, 5100) Patient Position                    CS: 'HFS'
(0020, 000d) Study Instance UID                  UI: 1.3.6.1.4.1.14519.5.2.1.7014.4598.208415500372767635171688815875
(0020, 000e) Series Instance UID                 UI: 1.3.6.1.4.1.14519.5.2.1.7014.4598.335375068555840597820636886710
(0020, 0010) Study ID                            SH: ''
(0020, 0011) Series Number                       IS: '0'
(0020, 0012) Acquisition Number                  IS: '2'
(0020, 0013) Instance Number                     IS: '149'
(0020, 0032) Image Position (Patient)            DS: [-249.51171875, -433.51171875, -702.5]
(0020, 0037) Image Orientation (Patient)         DS: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0]
(0020, 0052) Frame of Reference UID              UI: 1.3.6.1.4.1.14519.5.2.1.7014.4598.187709044743964862096664351089
(0020, 1040) Position Reference Indicator        LO: ''
(0020, 1041) Slice Location                      DS: '-702.5'
(0028, 0002) Samples per Pixel                   US: 1
(0028, 0004) Photometric Interpretation          CS: 'MONOCHROME2'
(0028, 0010) Rows                                US: 512
(0028, 0011) Columns                             US: 512
(0028, 0030) Pixel Spacing                       DS: [0.9765625, 0.9765625]
(0028, 0100) Bits Allocated                      US: 16
(0028, 0101) Bits Stored                         US: 12
(0028, 0102) High Bit                            US: 11
(0028, 0103) Pixel Representation                US: 0
(0028, 0303) Longitudinal Temporal Information M CS: 'MODIFIED'
(0028, 1050) Window Center                       DS: '40.0'
(0028, 1051) Window Width                        DS: '400.0'
(0028, 1052) Rescale Intercept                   DS: '-1024.0'
(0028, 1053) Rescale Slope                       DS: '1.0'
(3253, 0010) Private Creator                     LO: 'Varian Medical Systems VISION 3253'
(7fe0, 0010) Pixel Data                          OW: None

Keep only specific header tags#

Loading object metadata can be slow, especially when doing this for many objects at once. So, you can specify the keep_tags argument if you know which header attributes you want to use. This speeds up loading metadata significantly.

Here we load only the StudyDate, PatientSex and Manufacturer.

Tip: These tags are defined by the DICOM standard, and we use pydicom to load this metadata. In fact, the metadata returned is a pydicom Dataset. Check out the pydicom documentation for more information.

[6]:
ds = load_object_metadata(first_row, keep_tags=["StudyDate", "PatientSex", "Manufacturer"])
ds
[6]:
(0008, 0020) Study Date                          DA: '20031213'
(0008, 0070) Manufacturer                        LO: 'SIEMENS'
(0010, 0040) Patient's Sex                       CS: 'F'

Loading metadata for all data objects#

You can use the Pandas apply function to load metadata for all rows and add it as a column to the converted DataFrame.

[7]:
df["StudyDescription"] = df.apply(lambda row: load_object_metadata(row, keep_tags="StudyDescription").StudyDescription, axis=1)
df
[7]:
sop_instance_uid hashed_uid modality patient_id series_uid for_uid referenced_sop_instance_uid path StudyDescription
0 1.3.6.1.4.1.14519.5.2.1.7014.4598.168227681755... 5adf40 CT LCTSC-Train-S1-007 1.3.6.1.4.1.14519.5.2.1.7014.4598.335375068555... 1.3.6.1.4.1.14519.5.2.1.7014.4598.187709044743... NaN testdata_lctsc/data/LCTSC-Train-S1-007/images/... RT^RCCT_THORAX_8F_High (Adult)
1 1.3.6.1.4.1.14519.5.2.1.7014.4598.284338872489... ed6686 RTSTRUCT LCTSC-Train-S1-007 1.3.6.1.4.1.14519.5.2.1.7014.4598.284338872489... 1.3.6.1.4.1.14519.5.2.1.7014.4598.187709044743... 1.3.6.1.4.1.14519.5.2.1.7014.4598.168227681755... testdata_lctsc/data/LCTSC-Train-S1-007/structu... RT^RCCT_THORAX_8F_High (Adult)
2 1.3.6.1.4.1.14519.5.2.1.7014.4598.263565217029... 88c5ef CT LCTSC-Train-S1-006 1.3.6.1.4.1.14519.5.2.1.7014.4598.770569242984... 1.3.6.1.4.1.14519.5.2.1.7014.4598.325217978839... NaN testdata_lctsc/data/LCTSC-Train-S1-006/images/... RT^RCCT_THORAX_8F_High (Adult)
3 1.3.6.1.4.1.14519.5.2.1.7014.4598.161109536301... ceb111 RTSTRUCT LCTSC-Train-S1-006 1.3.6.1.4.1.14519.5.2.1.7014.4598.161109536301... 1.3.6.1.4.1.14519.5.2.1.7014.4598.325217978839... 1.3.6.1.4.1.14519.5.2.1.7014.4598.263565217029... testdata_lctsc/data/LCTSC-Train-S1-006/structu... RT^RCCT_THORAX_8F_High (Adult)
4 1.3.6.1.4.1.14519.5.2.1.7014.4598.235489581364... 914d57 CT LCTSC-Test-S1-102 1.3.6.1.4.1.14519.5.2.1.7014.4598.639871532605... 1.3.6.1.4.1.14519.5.2.1.7014.4598.408067568497... NaN testdata_lctsc/data/LCTSC-Test-S1-102/images/9... RT^RCCT_THORAX_8F_High (Adult)
5 1.3.6.1.4.1.14519.5.2.1.7014.4598.110977663386... 6c6ea4 RTSTRUCT LCTSC-Test-S1-102 1.3.6.1.4.1.14519.5.2.1.7014.4598.110977663386... 1.3.6.1.4.1.14519.5.2.1.7014.4598.408067568497... 1.3.6.1.4.1.14519.5.2.1.7014.4598.235489581364... testdata_lctsc/data/LCTSC-Test-S1-102/structur... RT^RCCT_THORAX_8F_High (Adult)
6 1.3.6.1.4.1.14519.5.2.1.7014.4598.318848546630... aa38e6 CT LCTSC-Train-S1-002 1.3.6.1.4.1.14519.5.2.1.7014.4598.234842392725... 1.3.6.1.4.1.14519.5.2.1.7014.4598.145984743865... NaN testdata_lctsc/data/LCTSC-Train-S1-002/images/... RT^RCCT_THORAX_8F (Adult)
7 1.3.6.1.4.1.14519.5.2.1.7014.4598.291449913947... f036b8 RTSTRUCT LCTSC-Train-S1-002 1.3.6.1.4.1.14519.5.2.1.7014.4598.291449913947... 1.3.6.1.4.1.14519.5.2.1.7014.4598.145984743865... 1.3.6.1.4.1.14519.5.2.1.7014.4598.318848546630... testdata_lctsc/data/LCTSC-Train-S1-002/structu... RT^RCCT_THORAX_8F (Adult)
8 1.3.6.1.4.1.14519.5.2.1.7014.4598.217118546740... dd0026 CT LCTSC-Train-S1-008 1.3.6.1.4.1.14519.5.2.1.7014.4598.135073567254... 1.3.6.1.4.1.14519.5.2.1.7014.4598.243364093992... NaN testdata_lctsc/data/LCTSC-Train-S1-008/images/... Specials^RCCTPET_THORAX_8F (Adult)
9 1.3.6.1.4.1.14519.5.2.1.7014.4598.225487254421... 48a970 RTSTRUCT LCTSC-Train-S1-008 1.3.6.1.4.1.14519.5.2.1.7014.4598.225487254421... 1.3.6.1.4.1.14519.5.2.1.7014.4598.243364093992... 1.3.6.1.4.1.14519.5.2.1.7014.4598.217118546740... testdata_lctsc/data/LCTSC-Train-S1-008/structu... Specials^RCCTPET_THORAX_8F (Adult)
10 1.3.6.1.4.1.14519.5.2.1.7014.4598.141349678572... d91c84 CT LCTSC-Train-S1-004 1.3.6.1.4.1.14519.5.2.1.7014.4598.269433294341... 1.3.6.1.4.1.14519.5.2.1.7014.4598.313160975008... NaN testdata_lctsc/data/LCTSC-Train-S1-004/images/... RT^RCCT_THORAX_8F_High_CONTRAST (Adult)
11 1.3.6.1.4.1.14519.5.2.1.7014.4598.595315284787... 61758b RTSTRUCT LCTSC-Train-S1-004 1.3.6.1.4.1.14519.5.2.1.7014.4598.595315284787... 1.3.6.1.4.1.14519.5.2.1.7014.4598.313160975008... 1.3.6.1.4.1.14519.5.2.1.7014.4598.141349678572... testdata_lctsc/data/LCTSC-Train-S1-004/structu... RT^RCCT_THORAX_8F_High_CONTRAST (Adult)
12 1.3.6.1.4.1.14519.5.2.1.7014.4598.140943693489... 738c1a CT LCTSC-Train-S1-005 1.3.6.1.4.1.14519.5.2.1.7014.4598.338518041666... 1.3.6.1.4.1.14519.5.2.1.7014.4598.964812114328... NaN testdata_lctsc/data/LCTSC-Train-S1-005/images/... RT^RCCT_THORAX_8F_High (Adult)
13 1.3.6.1.4.1.14519.5.2.1.7014.4598.214803404117... 68d663 RTSTRUCT LCTSC-Train-S1-005 1.3.6.1.4.1.14519.5.2.1.7014.4598.214803404117... 1.3.6.1.4.1.14519.5.2.1.7014.4598.964812114328... 1.3.6.1.4.1.14519.5.2.1.7014.4598.140943693489... testdata_lctsc/data/LCTSC-Train-S1-005/structu... RT^RCCT_THORAX_8F_High (Adult)
14 1.3.6.1.4.1.14519.5.2.1.7014.4598.188371727865... 6834c9 CT LCTSC-Train-S1-001 1.3.6.1.4.1.14519.5.2.1.7014.4598.330486033168... 1.3.6.1.4.1.14519.5.2.1.7014.4598.109432485688... NaN testdata_lctsc/data/LCTSC-Train-S1-001/images/... RT^RCCT_THORAX_8F_Low (Adult)
15 1.3.6.1.4.1.14519.5.2.1.7014.4598.267594131248... b5bddb RTSTRUCT LCTSC-Train-S1-001 1.3.6.1.4.1.14519.5.2.1.7014.4598.267594131248... 1.3.6.1.4.1.14519.5.2.1.7014.4598.109432485688... 1.3.6.1.4.1.14519.5.2.1.7014.4598.188371727865... testdata_lctsc/data/LCTSC-Train-S1-001/structu... RT^RCCT_THORAX_8F_Low (Adult)
16 1.3.6.1.4.1.14519.5.2.1.7014.4598.333558838494... 666be6 CT LCTSC-Test-S1-101 1.3.6.1.4.1.14519.5.2.1.7014.4598.106943890850... 1.3.6.1.4.1.14519.5.2.1.7014.4598.171234424242... NaN testdata_lctsc/data/LCTSC-Test-S1-101/images/6...
17 1.3.6.1.4.1.14519.5.2.1.7014.4598.929007819506... cc682f RTSTRUCT LCTSC-Test-S1-101 1.3.6.1.4.1.14519.5.2.1.7014.4598.280355341349... 1.3.6.1.4.1.14519.5.2.1.7014.4598.171234424242... 1.3.6.1.4.1.14519.5.2.1.7014.4598.333558838494... testdata_lctsc/data/LCTSC-Test-S1-101/structur...
18 1.3.6.1.4.1.14519.5.2.1.7014.4598.159497309342... 2bf2f9 CT LCTSC-Train-S1-003 1.3.6.1.4.1.14519.5.2.1.7014.4598.742383887179... 1.3.6.1.4.1.14519.5.2.1.7014.4598.803594135292... NaN testdata_lctsc/data/LCTSC-Train-S1-003/images/... RT^RCCT_THORAX_8F_High (Adult)
19 1.3.6.1.4.1.14519.5.2.1.7014.4598.127494043495... 8e34f9 RTSTRUCT LCTSC-Train-S1-003 1.3.6.1.4.1.14519.5.2.1.7014.4598.127494043495... 1.3.6.1.4.1.14519.5.2.1.7014.4598.803594135292... 1.3.6.1.4.1.14519.5.2.1.7014.4598.159497309342... testdata_lctsc/data/LCTSC-Train-S1-003/structu... RT^RCCT_THORAX_8F_High (Adult)

Determine Date of Object#

There are several DICOM header tags which could define the date of an object. The DICOM standard doesn’t require all of these to be set within the metadata. PyDicer provides the determine_dcm_datetime function to extract the date from the DICOM header.

[8]:
ds = load_object_metadata(first_row)
obj_datetime = determine_dcm_datetime(ds)
print(obj_datetime)
2003-12-13 14:18:46.903000
[ ]: