.
This commit is contained in:
@@ -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 %}"
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user