def getSeriesRecord ( self, recordID=None, seriesUID=None, accessionNumber=None, patientID=None ): whereClause = None queryArg = None # set SQL where clause to search database if recordID is not None: whereClause = " WHERE id = ? " queryArg = recordID elif seriesUID is not None: whereClause = " WHERE SeriesInstanceUID = ? " queryArg = seriesUID elif accessionNumber is not None: whereClause = " WHERE AccessionNumber = ? " queryArg = accessionNumber elif patientID is not None: whereClause = " WHERE PatientID = ? " queryArg = patientID else: return None # get series record from database qFind = "SELECT * FROM %s %s LIMIT 1" % (self.settings.dbTblSeries, whereClause) series = None with self.dbCon: dbCur = self.dbCon.cursor() dbCur.execute( qFind, (queryArg,) ) series = dbCur.fetchone() # check record exists if series is None: print "Can't get series record with given arg: %s" % str(queryArg) return None # create new DICOM object dcm = FileDataset(None,{},None) # fill object from record for dcmHeaderTag in self.settings.tagsToRecord: tagName = DicomDictionary[dcmHeaderTag][4] if series[tagName]: setattr( dcm, tagName, series[tagName] ) # add record ID dcm.recordID = series['id'] return dcm