update dicom viewer to support load by imageid
This commit is contained in:
@@ -585,13 +585,14 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
//});
|
//});
|
||||||
} else {
|
} else {
|
||||||
let url;
|
let url;
|
||||||
// This doesn't seem to have any benefit
|
// Cornerstone needs the whole url to load? (not relative)
|
||||||
//if (data_url.startsWith("http")) {
|
if (data_url.startsWith("http")) {
|
||||||
// url = data_url;
|
|
||||||
//} else {
|
|
||||||
// url = window.location.href.replace(/\/\#\/?$/, '') + "/" + data_url
|
|
||||||
//}
|
|
||||||
url = data_url;
|
url = data_url;
|
||||||
|
} else {
|
||||||
|
url = window.location.href.replace(/\/\#\/?$/, '').replace("index.html", "") + "/" + data_url
|
||||||
|
}
|
||||||
|
//url = data_url;
|
||||||
|
|
||||||
|
|
||||||
if (url.endsWith("dcm")) {
|
if (url.endsWith("dcm")) {
|
||||||
url = "wadouri:" + url;
|
url = "wadouri:" + url;
|
||||||
@@ -618,7 +619,11 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
|
|
||||||
//console.log("LOAD and cache, then", image);
|
//console.log("LOAD and cache, then", image);
|
||||||
loadCornerstoneMainImage(element, image, stack, db, load_as_stack);
|
loadCornerstoneMainImage(element, image, stack, db, load_as_stack);
|
||||||
|
|
||||||
|
// We can only check dicom data if it exists (e.g. not on jpegs)
|
||||||
|
if (image.data != undefined) {
|
||||||
checkAnonStatus(image.data)
|
checkAnonStatus(image.data)
|
||||||
|
}
|
||||||
|
|
||||||
let load_annotation_image = true;
|
let load_annotation_image = true;
|
||||||
if (load_annotation_image) {
|
if (load_annotation_image) {
|
||||||
@@ -1215,6 +1220,12 @@ export function loadStackIndex(new_index, dicom_element) {
|
|||||||
//c = cornerstone.getEnabledElement(dicom_element)
|
//c = cornerstone.getEnabledElement(dicom_element)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function loadImageById(imageId, dicom_element) {
|
||||||
|
cornerstone.loadImage(imageId).then(b => {
|
||||||
|
cornerstone.displayImage(dicom_element, b);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function urltoFile(url, filename, mimeType) {
|
function urltoFile(url, filename, mimeType) {
|
||||||
return fetch(url)
|
return fetch(url)
|
||||||
.then(function (res) {
|
.then(function (res) {
|
||||||
|
|||||||
@@ -215,9 +215,10 @@
|
|||||||
$("#add-finding-button").click(() => {
|
$("#add-finding-button").click(() => {
|
||||||
$("#hidden-form").show()
|
$("#hidden-form").show()
|
||||||
dicom_element = $(".cornerstone-element").get(0);
|
dicom_element = $(".cornerstone-element").get(0);
|
||||||
cornerstoneTools.globalImageIdSpecificToolStateManager.clear(dicom_element);
|
//cornerstoneTools.globalImageIdSpecificToolStateManager.clear(dicom_element);
|
||||||
cornerstone.reset(dicom_element);
|
//cornerstone.reset(dicom_element);
|
||||||
cornerstone.resize(dicom_element, true);
|
////cornerstone.resize(dicom_element, true);
|
||||||
|
$("#add-finding-button").hide()
|
||||||
//$("#finding-form").empty().append(
|
//$("#finding-form").empty().append(
|
||||||
// $("#hidden-form form").clone()
|
// $("#hidden-form form").clone()
|
||||||
//);
|
//);
|
||||||
@@ -225,6 +226,7 @@
|
|||||||
});
|
});
|
||||||
$("#cancel-add-finding-button").click((e) => {
|
$("#cancel-add-finding-button").click((e) => {
|
||||||
$("#hidden-form").hide()
|
$("#hidden-form").hide()
|
||||||
|
$("#add-finding-button").show()
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import json
|
import json
|
||||||
import pprint
|
import pprint
|
||||||
|
from typing import Any
|
||||||
from dal import autocomplete
|
from dal import autocomplete
|
||||||
|
from django.db.models.base import Model as Model
|
||||||
|
from django.db.models.query import QuerySet
|
||||||
from django.shortcuts import render, get_object_or_404, redirect
|
from django.shortcuts import render, get_object_or_404, redirect
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -563,12 +566,21 @@ class CaseDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView):
|
|||||||
template_name = "confirm_delete.html"
|
template_name = "confirm_delete.html"
|
||||||
|
|
||||||
|
|
||||||
|
# TODO fix permissions
|
||||||
class SeriesFindingDelete(RevisionMixin, PermissionRequiredMixin, DeleteView):
|
class SeriesFindingDelete(RevisionMixin, PermissionRequiredMixin, DeleteView):
|
||||||
permission_required = "atlas.delete_seriesfinding"
|
permission_required = "atlas.delete_seriesfinding"
|
||||||
model = SeriesFinding
|
model = SeriesFinding
|
||||||
template_name = "confirm_delete.html"
|
template_name = "confirm_delete.html"
|
||||||
# success_url = reverse_lazy("atlas:case_view")
|
# success_url = reverse_lazy("atlas:case_view")
|
||||||
|
|
||||||
|
def get_object(self):
|
||||||
|
series_finding = super().get_object()
|
||||||
|
series = series_finding.series
|
||||||
|
if series.check_user_can_edit(self.request.user):
|
||||||
|
return series_finding
|
||||||
|
else:
|
||||||
|
raise PermissionDenied
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
pk = self.kwargs["pk"]
|
pk = self.kwargs["pk"]
|
||||||
series_id = get_object_or_404(SeriesFinding, pk=pk).series.id
|
series_id = get_object_or_404(SeriesFinding, pk=pk).series.id
|
||||||
@@ -1375,6 +1387,7 @@ class SeriesImagesZipView(SeriesImagesZipViewBase, SuperuserRequiredMixin):
|
|||||||
series_object = Series
|
series_object = Series
|
||||||
|
|
||||||
|
|
||||||
|
# At the moment only the series owner / author can delete findings but anyone can create
|
||||||
def create_series_findings(request):
|
def create_series_findings(request):
|
||||||
# posts = Post.objects.all()
|
# posts = Post.objects.all()
|
||||||
response_data = {}
|
response_data = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user