Skip to content

Commit

Permalink
added 5 MR tags: RepetitionTime, EchoTime, ScanSequence, MagneticFiel… (
Browse files Browse the repository at this point in the history
#70)

* added 5 MR tags: RepetitionTime, EchoTime, ScanSequence, MagneticFieldStrength, ImagedNucleus

* added SEGMENTATION ReferencedSeriesSequence as ref_ct

* change pytest version
  • Loading branch information
skim2257 committed Feb 13, 2023
1 parent 1e25c57 commit 8f81e40
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 17 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest setuptools wheel twine
python -m pip install flake8 pytest==7.2.0 setuptools wheel twine
pip install -e .
pip install -r requirements.txt
- name: Import checking
Expand Down
70 changes: 54 additions & 16 deletions imgtools/utils/crawl.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ def crawl_one(folder):
series = str(meta.SeriesInstanceUID)
instance = str(meta.SOPInstanceUID)

reference_ct, reference_rs, reference_pl = " ", " ", " "
reference_ct, reference_rs, reference_pl, = "", "", ""
tr, te, tesla, scan_seq, elem = "", "", "", "", ""
try:
orientation = str(meta.ImageOrientationPatient) # (0020, 0037)
except:
Expand All @@ -38,19 +39,45 @@ def crawl_one(folder):
try: #RTSTRUCT
reference_ct = str(meta.ReferencedFrameOfReferenceSequence[0].RTReferencedStudySequence[0].RTReferencedSeriesSequence[0].SeriesInstanceUID)
except:
try: #RTDOSE
reference_rs = str(meta.ReferencedStructureSetSequence[0].ReferencedSOPInstanceUID)
try: #SEGMENTATION
reference_ct = str(meta.ReferencedSeriesSequence[0].SeriesInstanceUID)
except:
pass
try:
reference_ct = str(meta.ReferencedImageSequence[0].ReferencedSOPInstanceUID)
except:
pass
try:
reference_pl = str(meta.ReferencedRTPlanSequence[0].ReferencedSOPInstanceUID)
except:
pass
try: #RTDOSE
reference_rs = str(meta.ReferencedStructureSetSequence[0].ReferencedSOPInstanceUID)
except:
pass
try:
reference_ct = str(meta.ReferencedImageSequence[0].ReferencedSOPInstanceUID)
except:
pass
try:
reference_pl = str(meta.ReferencedRTPlanSequence[0].ReferencedSOPInstanceUID)
except:
pass

#MRI Tags
try:
tr = float(meta.RepetitionTime)
except:
pass
try:
te = float(meta.EchoTime)
except:
pass
try:
scan_seq = str(meta.ScanningSequence)
except:
pass
try:
tesla = float(meta.MagneticFieldStrength)
except:
pass
try:
elem = str(meta.ImagedNucleus)
except:
pass


try:
reference_frame = str(meta.FrameOfReferenceUID)
except:
Expand Down Expand Up @@ -95,7 +122,13 @@ def crawl_one(folder):
'reference_frame': reference_frame,
'folder': rel_path,
'orientation': orientation,
'orientation_type': orientation_type}
'orientation_type': orientation_type,
'repetition_time':tr,
'echo_time':te,
'scan_sequence': scan_seq,
'mag_field_strength': tesla,
'imaged_nucleus': elem
}

database[patient][study][series][subseries]['instances'].append(instance)
except:
Expand All @@ -115,14 +148,19 @@ def to_df(database_dict):
'series', 'series_description', 'subseries', 'modality',
'instances', 'instance_uid',
'reference_ct', 'reference_rs', 'reference_pl', 'reference_frame', 'folder',
'orientation', 'orientation_type']
'orientation', 'orientation_type', 'MR_repetition_time', 'MR_echo_time',
'MR_scan_sequence', 'MR_magnetic_field_strength', 'MR_imaged_nucleus']
values = [pat, study, database_dict[pat][study]['description'],
series, database_dict[pat][study][series]['description'],
subseries, database_dict[pat][study][series][subseries]['modality'],
len(database_dict[pat][study][series][subseries]['instances']), database_dict[pat][study][series][subseries]['instance_uid'],
database_dict[pat][study][series][subseries]['instances'], database_dict[pat][study][series][subseries]['instance_uid'],
database_dict[pat][study][series][subseries]['reference_ct'], database_dict[pat][study][series][subseries]['reference_rs'],
database_dict[pat][study][series][subseries]['reference_pl'], database_dict[pat][study][series][subseries]['reference_frame'], database_dict[pat][study][series][subseries]['folder'],
database_dict[pat][study][series][subseries]['orientation'], database_dict[pat][study][series][subseries]['orientation_type']]
database_dict[pat][study][series][subseries]['orientation'], database_dict[pat][study][series][subseries]['orientation_type'],
database_dict[pat][study][series][subseries]['repetition_time'], database_dict[pat][study][series][subseries]['echo_time'],
database_dict[pat][study][series][subseries]['scan_sequence'], database_dict[pat][study][series][subseries]['mag_field_strength'], database_dict[pat][study][series][subseries]['imaged_nucleus'],
]

df_add = pd.DataFrame([values], columns=columns)
df = pd.concat([df, df_add], ignore_index=True)
return df
Expand Down

0 comments on commit 8f81e40

Please sign in to comment.