This commit is contained in:
Ross
2022-04-07 18:31:34 +01:00
parent a2c44600eb
commit 2bce2956c6
5 changed files with 29 additions and 1 deletions
+1 -1
View File
@@ -58,7 +58,7 @@
<summary>Image info</summary>
<div>
<a href="{% url 'atlas:series_anonymise_dicom' pk=series.pk %}"
title="orders dicom by uploaded filename">Anonymise dicoms</a><br />
title="Anonymise dicom images">Anonymise dicoms</a><br />
<a href="{% url 'atlas:series_order_dicom' pk=series.pk %}" title="orders dicom by slice location">Order dicoms
by slice location</a>
<a href="{% url 'atlas:series_order_dicom_instance' pk=series.pk %}"
+14
View File
@@ -1,3 +1,5 @@
import os
import dicognito
from rad.settings import REMOTE_URL
from django.db import models
from django.http.response import JsonResponse
@@ -474,6 +476,18 @@ class Rapid(models.Model):
return json
def anonymise_images(self):
anonymizer = dicognito.anonymizer.Anonymizer()
for image in self.images.all():
file_path = os.path.join(settings.MEDIA_ROOT, image.image.name)
try:
with pydicom.dcmread(file_path) as dataset:
anonymizer.anonymize(dataset)
dataset.save_as(file_path)
except pydicom.errors.InvalidDicomError:
pass
# reversion.register(Rapid, follow=["images"])
# @reversion.register
@@ -95,6 +95,8 @@
</span>
{% endfor %}
</details>
<a href="{% url 'rapid:question_anonymise_dicom' pk=question.pk %}"
title="Anonymise dicom images">Anonymise dicoms</a><br />
<script>
$(document).ready(function () {
$("#edit-button").click(() => {
+5
View File
@@ -45,6 +45,11 @@ urlpatterns = [
views.GenericViews.question_user_answers,
name="question_user_answers",
),
path(
"question/<int:pk>/anon",
views.question_anonymise_dicom,
name="question_anonymise_dicom",
),
path(
"exam/<int:pk>/review",
views.GenericViews.question_review,
+7
View File
@@ -984,6 +984,13 @@ class RapidLateralityViewSet(
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
@user_is_author_or_rapid_checker
def question_anonymise_dicom(request, pk):
question = get_object_or_404(Rapid, pk=pk)
question.anonymise_images()
return redirect("atlas:series_detail", pk=pk)
@user_is_author_or_rapid_checker
def question_save_annotation(request, pk):