see if atomic transactions fixes case uploads

This commit is contained in:
Ross
2024-02-26 09:58:47 +00:00
parent ca05c67b87
commit 1f109de25b
3 changed files with 7 additions and 2 deletions
+6 -2
View File
@@ -3,6 +3,8 @@ from typing import List, Tuple
from django.shortcuts import get_object_or_404
from ninja import ModelSchema, Router, Schema, Field
from django.db import transaction
# from .decorators import user_is_author_or_rapid_checker
from django.core.exceptions import PermissionDenied
import pydicom
@@ -123,7 +125,8 @@ def import_dicoms_helper(request, case_id: int | None = None):
# Check if series with the id already exists (in which case we just add to htat)
try:
series = Series.objects.get(series_instance_uid=tags["SeriesInstanceUID"])
with transaction.atomic():
series = Series.objects.get(series_instance_uid=tags["SeriesInstanceUID"])
except Series.DoesNotExist:
series = Series(
modality=modality,
@@ -240,7 +243,8 @@ def check_images_hashes(request, hashes: List[str]):
for hash in hashes:
try:
# TOOD also check against uncategorised dicoms?
series_image = SeriesImage.objects.get(image_blake3_hash=hash)
with transaction.atomic():
series_image = SeriesImage.objects.get(image_blake3_hash=hash)
data = {
"id": series_image.pk,
"url": series_image.series.get_absolute_url(),