Skip to content

Commit d43a9de

Browse files
committed
improve 4D dicom writing and add lookup table for GE isotope names and dicom radio nuclide codes
1 parent 3df5718 commit d43a9de

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

pymirc/fileio/radioPharmaceuticalInfoSequence.py

+41
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,47 @@
22

33
import warnings
44

5+
def GE_PET_nuclide_code_dict():
6+
d = {
7+
'11C':'C-105A1',
8+
'13N':'C-107A1',
9+
'14O':'C-1018C',
10+
'15O':'C-B1038',
11+
'18F':'C-111A1',
12+
'22Na':'C-155A1',
13+
'38K':'C-135A4',
14+
'43Sc':'126605',
15+
'44Sc':'126600',
16+
'45Ti':'C-166A2',
17+
'51Mn':'126601',
18+
'52Fe':'C-130A1',
19+
'52Mn':'C-149A1',
20+
'52mMn':'126607',
21+
'60Cu':'C-127A4',
22+
'61Cu':'C-127A1',
23+
'62Cu':'C-127A5',
24+
'62Zn':'C-141A1',
25+
'64Cu':'C-127A2',
26+
'66Ga':'C-131A1',
27+
'68Ga':'C-131A3',
28+
'68Ge':'C-128A2',
29+
'70As': '126602',
30+
'72As':'C-115A2',
31+
'73Se':'C-116A2',
32+
'75Br':'C-113A1',
33+
'76Br':'C-113A2',
34+
'77Br':'C-113A3',
35+
'82Rb':'C-159A2',
36+
'86Y':'C-162A3',
37+
'89Zr':'C-168A4',
38+
'90Nb':'126603',
39+
'90Y':'C-162A7',
40+
'94mTc':'C-163AA',
41+
'124I':'C-114A5',
42+
'152Tb':'126606'}
43+
44+
return d
45+
546
def radioPharmaceuticalDict():
647
rpd = {
748
'126752' : ['28H1 ^89^Zr' ,'DCM'],

pymirc/fileio/write_dicom.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,12 @@ def write_4d_dicom(vol_lps,
417417
"""
418418
numFrames = vol_lps.shape[0]
419419

420-
StudyInstanceUID = dicom.uid.generate_uid(uid_base)
421420
SeriesInstanceUID = dicom.uid.generate_uid(uid_base)
422-
FrameOfReferenceUID = dicom.uid.generate_uid(uid_base)
421+
422+
if not 'StudyInstanceUID' in kwargs:
423+
kwargs['StudyInstanceUID'] = dicom.uid.generate_uid(uid_base)
424+
if not 'FrameOfReferenceUID' in kwargs:
425+
kwargs['FrameOfReferenceUID'] = dicom.uid.generate_uid(uid_base)
423426

424427
numSlices = vol_lps.shape[-1]
425428

@@ -441,9 +444,7 @@ def write_4d_dicom(vol_lps,
441444
uid_base = uid_base,
442445
TemporalPositionIdentifier = i + 1,
443446
NumberOfTemporalPositions = numFrames,
444-
StudyInstanceUID = StudyInstanceUID,
445447
SeriesInstanceUID = SeriesInstanceUID,
446-
FrameOfReferenceUID = FrameOfReferenceUID,
447448
SeriesType = SeriesType,
448449
frm = frm,
449450
**kw))

0 commit comments

Comments
 (0)