improve image hashing

This commit is contained in:
Ross
2023-12-26 17:11:02 +00:00
parent 8c0aaa82e2
commit 714f472da6
14 changed files with 183 additions and 42 deletions
+11 -11
View File
@@ -58,10 +58,10 @@ def upload_dicom(request, files: List[UploadedFile] = File(...)):
ud.save()
uploaded.append((file.name, ud.image_md5_hash))
uploaded.append((file.name, ud.image_blake3_hash))
except DuplicateDicom:
print(ud.check_for_duplicates(ud.image_md5_hash))
duplicate.append((file.name, ud.image_md5_hash))
print(ud.check_for_duplicates(ud.image_blake3_hash))
duplicate.append((file.name, ud.image_blake3_hash))
pass
return {"uploaded": uploaded, "duplicates": duplicate}
@@ -91,7 +91,7 @@ def uncategorised_dicoms(request):
tags = d.get_basic_dicom_tags()
data[tags["SeriesInstanceUID"]].append(tags)
data["image_hash"].append(d.image_md5_hash)
data["image_hash"].append(d.image_blake3_hash)
return data
@@ -137,7 +137,7 @@ def import_dicoms_helper(request, case_id: int | None = None):
image=dicom.image,
series=series,
is_dicom=True,
image_md5_hash=dicom.image_md5_hash,
image_blake3_hash=dicom.image_blake3_hash,
)
series_image.save()
# dicom.image.delete()
@@ -171,9 +171,9 @@ def series_remove_duplicate_images(request, series_id: int):
img_ids = set()
dupes = set()
for series_image in series.images.all():
if series_image.image_md5_hash in img_ids:
if series_image.image_blake3_hash in img_ids:
dupes.add(series_image.id)
img_ids.add(series_image.image_md5_hash)
img_ids.add(series_image.image_blake3_hash)
if dupes:
SeriesImage.objects.filter(id__in=dupes).delete()
@@ -210,7 +210,7 @@ def get_cases_user(request):
def check_image_hash(request, hash: str):
try:
print(hash)
series_image = SeriesImage.objects.get(image_md5_hash=hash)
series_image = SeriesImage.objects.get(image_blake3_hash=hash)
data = {
"status": "success",
"id": series_image.pk,
@@ -234,7 +234,7 @@ def check_images_hashes(request, hashes: List[str]):
for hash in hashes:
try:
print(hash)
series_image = SeriesImage.objects.get(image_md5_hash=hash)
series_image = SeriesImage.objects.get(image_blake3_hash=hash)
data = {
"id": series_image.pk,
"url": series_image.series.get_absolute_url(),
@@ -250,7 +250,7 @@ def check_images_hashes(request, hashes: List[str]):
def generate_image_hash(request, id: int):
series_image = SeriesImage.objects.get(pk=id)
series_image.image_md5_hash = ""
series_image.image_blake3_hash = ""
series_image.save()
@@ -259,7 +259,7 @@ def generate_image_hash(request, id: int):
@router.get("/view_dicom_tags/{hash}", auth=django_auth)
def view_dicom_tags(request, hash: str):
item = SeriesImage.objects.get(image_md5_hash=hash)
item = SeriesImage.objects.get(image_blake3_hash=hash)
return item.get_dicom_json()
@router.get("/series_split_by_dicom_tag/{series_id}/{dicom_tag}", auth=django_auth)