fix a few small upload bugs
This commit is contained in:
+4
-2
@@ -70,8 +70,10 @@ def upload_dicom(request, files: List[UploadedFile] = File(...)):
|
|||||||
except DuplicateDicom as e:
|
except DuplicateDicom as e:
|
||||||
duplicate.append((file.name, ud.image_blake3_hash))
|
duplicate.append((file.name, ud.image_blake3_hash))
|
||||||
|
|
||||||
duplicate_series.add(e.duplicate.get_series().get_absolute_url())
|
|
||||||
print(duplicate_series)
|
if type(e.duplicate) == SeriesImage:
|
||||||
|
duplicate_series.add(e.duplicate.series.get_absolute_url())
|
||||||
|
|
||||||
pass
|
pass
|
||||||
except InvalidDicomError:
|
except InvalidDicomError:
|
||||||
failed.append(file.name)
|
failed.append(file.name)
|
||||||
|
|||||||
+3
-2
@@ -1304,8 +1304,7 @@ class UncategorisedDicom(models.Model):
|
|||||||
try:
|
try:
|
||||||
self.series_instance_uid = ds["SeriesInstanceUID"].value
|
self.series_instance_uid = ds["SeriesInstanceUID"].value
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# ? only called with invalid dicom?
|
raise InvalidDicomError("Invalid dicom file")
|
||||||
self.series_instance_uid = ds["SeriesInstanceUID"]
|
|
||||||
|
|
||||||
# if self.check_for_duplicates():
|
# if self.check_for_duplicates():
|
||||||
# return DuplicateDicom
|
# return DuplicateDicom
|
||||||
@@ -1333,6 +1332,8 @@ class UncategorisedDicom(models.Model):
|
|||||||
ds = pydicom.dcmread(self.image)
|
ds = pydicom.dcmread(self.image)
|
||||||
return ds
|
return ds
|
||||||
except pydicom.errors.InvalidDicomError:
|
except pydicom.errors.InvalidDicomError:
|
||||||
|
print("Error getting dicom dataset")
|
||||||
|
print(self.image)
|
||||||
return {"SeriesInstanceUID": "1234"}
|
return {"SeriesInstanceUID": "1234"}
|
||||||
|
|
||||||
def get_basic_dicom_tags(self, dataset=None):
|
def get_basic_dicom_tags(self, dataset=None):
|
||||||
|
|||||||
+8
-1
@@ -9,6 +9,7 @@ from PIL import Image, ImageFile
|
|||||||
from blake3 import blake3
|
from blake3 import blake3
|
||||||
|
|
||||||
import pydicom
|
import pydicom
|
||||||
|
from pydicom.errors import InvalidDicomError
|
||||||
import sys
|
import sys
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
@@ -178,7 +179,13 @@ def get_image_dicom_hash(img, dataset=None, hash_type="md5", direct_pixel_data=T
|
|||||||
raise NotImplemented
|
raise NotImplemented
|
||||||
|
|
||||||
if direct_pixel_data:
|
if direct_pixel_data:
|
||||||
hasher.update(dataset.PixelData)
|
try:
|
||||||
|
hasher.update(dataset.PixelData)
|
||||||
|
except AttributeError as e:
|
||||||
|
print("Error getting pixel data hash from dataset")
|
||||||
|
print(dataset)
|
||||||
|
raise InvalidDicomError("Error getting pixel data hash from dataset")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
first = True
|
first = True
|
||||||
for i in dataset.pixel_array.astype(str).flatten():
|
for i in dataset.pixel_array.astype(str).flatten():
|
||||||
|
|||||||
Reference in New Issue
Block a user