Explorar o código

Manage rows with missing orthanc Ids

Andrej Studen %!s(int64=2) %!d(string=hai) anos
pai
achega
53d1b800fb
Modificáronse 1 ficheiros con 19 adicións e 4 borrados
  1. 19 4
      pythonScripts/preprocess.py

+ 19 - 4
pythonScripts/preprocess.py

@@ -46,6 +46,9 @@ def getDicom(ofb,row,zipDir,rawDir,im,imageSelector,\
     if seriesId=="0":
     if seriesId=="0":
         return False
         return False
 
 
+    if seriesId==None:
+        return False
+    
     print("getDicom: {}: {}".format(im,seriesId))
     print("getDicom: {}: {}".format(im,seriesId))
     fname=os.path.join(zipDir,\
     fname=os.path.join(zipDir,\
             getStudyLabel(row,participantField)+'_'+im+".zip");
             getStudyLabel(row,participantField)+'_'+im+".zip");
@@ -149,7 +152,11 @@ def main(parameterFile):
 
 
     i=0
     i=0
     for row in ds["rows"]:
     for row in ds["rows"]:
-        print("Starting row id:{} seq:{}".format(row[participantField],row['SequenceNum']))
+        pId=row[participantField]
+        seqNo=row['SequenceNum']
+        print("Starting row id:{} seq:{}".format(pId,seqNo))
+
+
         #interesting files are processedDir/studyName_CT_notCropped_2mmVoxel.nii
         #interesting files are processedDir/studyName_CT_notCropped_2mmVoxel.nii
         #asn processedDir/studyName_PET_notCropped_2mmVoxel.nii
         #asn processedDir/studyName_PET_notCropped_2mmVoxel.nii
         volumeFileNames={im:\
         volumeFileNames={im:\
@@ -211,12 +218,20 @@ def main(parameterFile):
         if not all(filesPresent):
         if not all(filesPresent):
 
 
             #use imageSelector -> inputs
             #use imageSelector -> inputs
+            dicomStatus="OK"
             for im in imageSelector:
             for im in imageSelector:
                 #checks if raw files are already loaded
                 #checks if raw files are already loaded
-                getDicom(ofb,row,zipDir,rawDir,im,imageSelector,\
+                ok=getDicom(ofb,row,zipDir,rawDir,im,imageSelector,\
                     participantField)
                     participantField)
-
-
+                
+                if not ok:
+                    dicomStatus="BAD"
+                    break
+
+            
+            if not dicomStatus=="OK":
+                print('Troubles getting dicom for {}/{}'.format(pId,seqNo))
+                continue
     
     
             #preprocess and zip
             #preprocess and zip
             ok=runPreprocess_DM(matlab,generalCodes,niftiTools,studyDir)
             ok=runPreprocess_DM(matlab,generalCodes,niftiTools,studyDir)