Open-Minds-Lab / mrQA

mrQA: tools for quality assurance in medical imaging datasets, including protocol compliance
https://open-minds-lab.github.io/mrQA/
Apache License 2.0
9 stars 6 forks source link

How to identify sequences in the same session? #39

Open sinhaharsh opened 1 year ago

sinhaharsh commented 1 year ago

the session id (via SeriesNumber) is changing even for different sequences within the same folder (which I assume are coming from the same session). Slack

can we we use these dicom tags instead. (0008, 0012) Instance Creation Date (0008, 0013) Instance Creation Time

sinhaharsh commented 1 year ago

so the Instance Creation Date is the same for all slices, but the Instance Creation TIME is not. Instance Number and Acquisition Number are also changing for each slice. But the SeriesInstanceUID (used as run by us) and SeriesNumber (used as session by us) are not changing. Slack

sinhaharsh commented 1 year ago

using the StudyInstanceUID, I could link them : Slack

s1 = 'SpinEchoFieldMap_AP_2mm'  # 'gre_FieldMap'  # 'T1_MPRAGE_Iso'  #
s2 = 'reward_1'  # 'resting-state'
for subj, sess, r1, r2, seq1, seq2 in ds.traverse_vertical(s1, s2):
    print(f'\n{subj} {sess:3} \n\t{seq1} \n\t{seq2}')

50252 1.3.12.2.1107.5.2.43.67078.30000023012711450981600000019 
    SpinEchoFieldMap_AP_2mm(SSEQ=EP,PED=COL,TE=66,TR=8000,FA=90) 
    reward_1(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70)
50250 1.3.12.2.1107.5.2.43.67078.30000023011912331639500000007 
    SpinEchoFieldMap_AP_2mm(SSEQ=EP,PED=COL,TE=66,TR=8000,FA=90) 
    reward_1(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70)

run IDs are differing across sequences even within the same session, so run ID seems to depend primarily on sequence

the reward tasks seem to be compatible, although we need to do this again once all parameters implemented in the new design:

s1 = 'reward_1'
s2 = 'reward_2'
for subj, sess, r1, r2, seq1, seq2 in ds.traverse_vertical(s1, s2):
    print(f'\n{subj} {sess:3} \n\t{str(seq1):>120} \n\t{str(seq2):>120}')

50252 1.3.12.2.1107.5.2.43.67078.30000023012711450981600000019 
                                                                             reward_1(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70) 
                                                                             reward_2(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70)
50250 1.3.12.2.1107.5.2.43.67078.30000023011912331639500000007 
                                                                             reward_1(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70) 
                                                                             reward_2(SSEQ=EP,PED=COL,TE=15.6,TR=1500,FA=70)

and StudyInstanceUID seems to work for ABCD too, although we must do more validation: yes! with StudyInstanceUID, we can link DTI with its fmap from ABCD Slack

s1 = 'ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)'
s2 = 'ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)'

for subj, sess, r1, r2, seq1, seq2 in ds.traverse_vertical(s1, s2):
    print(f'\n{subj} {sess:3} \n\t{str(seq1):>120} \n\t{str(seq2):>120}')

NDAR_INVVAMKAM75 1.2.840.113619.6.374.183606420954103393796096925130541883293 
                             ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=77,PED=COL,SSEQ=['EP', 'RM'],TR=4100) 
                    ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=77,PED=COL,SSEQ=['EP', 'RM'],TR=4100)
NDAR_INVVAZC3MD9 1.2.840.113619.6.408.119057285563868266546910783175051310075 
                             ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100) 
                    ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100)
NDAR_INVVA1P3NB5 1.2.840.113619.6.408.133805233752109833102337760578461246740 
                             ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100) 
                    ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100)
NDAR_INVVAXL08MG 1.2.840.113619.6.408.283613708615011674699111544512294612957 
                             ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100) 
                    ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=90,PED=COL,SSEQ=['EP', 'RM'],TR=4100)
NDAR_INVVAWB3BNR 1.2.840.113619.6.374.227696162207618313397642256906289692209 
                             ABCD-DTI,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=77,PED=COL,SSEQ=['EP', 'RM'],TR=4100) 
                    ABCD-Diffusion-FM,_GE,_original_(baseline_year_1_arm_1)(TE=81.9,FA=77,PED=COL,SSEQ=['EP', 'RM'],TR=4100)