.
This commit is contained in:
@@ -58,7 +58,7 @@
|
|||||||
<summary>Image info</summary>
|
<summary>Image info</summary>
|
||||||
<div>
|
<div>
|
||||||
<a href="{% url 'atlas:series_anonymise_dicom' pk=series.pk %}"
|
<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
|
<a href="{% url 'atlas:series_order_dicom' pk=series.pk %}" title="orders dicom by slice location">Order dicoms
|
||||||
by slice location</a>
|
by slice location</a>
|
||||||
<a href="{% url 'atlas:series_order_dicom_instance' pk=series.pk %}"
|
<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 rad.settings import REMOTE_URL
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.http.response import JsonResponse
|
from django.http.response import JsonResponse
|
||||||
@@ -474,6 +476,18 @@ class Rapid(models.Model):
|
|||||||
|
|
||||||
return json
|
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(Rapid, follow=["images"])
|
||||||
# @reversion.register
|
# @reversion.register
|
||||||
|
|||||||
@@ -95,6 +95,8 @@
|
|||||||
</span>
|
</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</details>
|
</details>
|
||||||
|
<a href="{% url 'rapid:question_anonymise_dicom' pk=question.pk %}"
|
||||||
|
title="Anonymise dicom images">Anonymise dicoms</a><br />
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$("#edit-button").click(() => {
|
$("#edit-button").click(() => {
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ urlpatterns = [
|
|||||||
views.GenericViews.question_user_answers,
|
views.GenericViews.question_user_answers,
|
||||||
name="question_user_answers",
|
name="question_user_answers",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"question/<int:pk>/anon",
|
||||||
|
views.question_anonymise_dicom,
|
||||||
|
name="question_anonymise_dicom",
|
||||||
|
),
|
||||||
path(
|
path(
|
||||||
"exam/<int:pk>/review",
|
"exam/<int:pk>/review",
|
||||||
views.GenericViews.question_review,
|
views.GenericViews.question_review,
|
||||||
|
|||||||
@@ -984,6 +984,13 @@ class RapidLateralityViewSet(
|
|||||||
|
|
||||||
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
|
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
|
@user_is_author_or_rapid_checker
|
||||||
def question_save_annotation(request, pk):
|
def question_save_annotation(request, pk):
|
||||||
|
|||||||
Reference in New Issue
Block a user