This commit is contained in:
Ross
2021-12-04 16:21:32 +00:00
parent a9d7155fb4
commit 6bc1da348b
2 changed files with 43 additions and 33 deletions
+41 -31
View File
@@ -1,12 +1,12 @@
<div>{{ series.modality}}, {{ series.examination }}, {{ series.plane }}, {{ series.contrast }}</div> <div>{{ series.modality}}, {{ series.examination }}, {{ series.plane }}, {{ series.contrast }}</div>
{% if series.case %} {% if series.case %}
Associated case: Associated case:
{% for case in series.case.all %} {% for case in series.case.all %}
<a href="{% url 'atlas:case_detail' pk=case.pk %}">{{case}}</a> <a href="{% url 'atlas:case_detail' pk=case.pk %}">{{case}}</a>
{% endfor %} {% endfor %}
{% else %} {% else %}
This series is not associated with any cases. This series is not associated with any cases.
{% endif %} {% endif %}
<div id="single-dicom-viewer" class="dicom-viewer" data-images="{{ series.get_image_url_array }}" data-annotations=''> <div id="single-dicom-viewer" class="dicom-viewer" data-images="{{ series.get_image_url_array }}" data-annotations=''>
@@ -21,13 +21,14 @@
<summary>Findings</summary> <summary>Findings</summary>
{% for finding in series.findings.all %} {% for finding in series.findings.all %}
<div class="finding-box"> <div class="finding-box">
<button class="view-finding-button" data-annotationjson={{finding.annotation_json}} data-viewportjson={{finding.viewport_json}}>Click to view</button> <button class="view-finding-button" data-annotationjson={{finding.annotation_json}}
Finding(s): {{finding.findings.all|join:", "}}<br /> data-viewportjson={{finding.viewport_json}}>Click to view</button>
Structure(s): {{finding.structure.all|join:", "}}<br /> Finding(s): {{finding.findings.all|join:", "}}<br />
Description: {{finding.description}}<br /> Structure(s): {{finding.structure.all|join:", "}}<br />
<a href="{% url 'atlas:delete_finding' pk=finding.pk %}" class="delete-finding-link">Delete finding</a> Description: {{finding.description}}<br />
</div> <a href="{% url 'atlas:delete_finding' pk=finding.pk %}" class="delete-finding-link">Delete finding</a>
</div>
{% endfor %} {% endfor %}
</details> </details>
@@ -47,8 +48,8 @@
title="orders dicom by uploaded filename">Order by uploaded filename</a> title="orders dicom by uploaded filename">Order by uploaded filename</a>
</div> </div>
{% for image in series.images.all %} {% for image in series.images.all %}
{{image.image.url}}, pos: {{image.position}}, {{image.upload_filename}} [{{image.image.size|filesizeformat}}]<br /> {{image.image.url}}, pos: {{image.position}}, {{image.upload_filename}} [{{image.image.size|filesizeformat}}]<br />
{% comment %} {{image.get_dicom_info|safe}}<br /> {% endcomment %} {% comment %} {{image.get_dicom_info|safe}}<br /> {% endcomment %}
{% endfor %} {% endfor %}
@@ -60,11 +61,11 @@
<form method="post" id="series_finding_form"> <form method="post" id="series_finding_form">
{% csrf_token %} {% csrf_token %}
{{series_finding_form.management_form}} {{series_finding_form.management_form}}
<ul> <ul>
<li>Description: {{ series_finding_form.description }}</li> <li>Description: {{ series_finding_form.description }}</li>
<li>Findings: {{ series_finding_form.findings }}</li> <li>Findings: {{ series_finding_form.findings }}</li>
<li>Structures: {{ series_finding_form.structures }}</li> <li>Structures: {{ series_finding_form.structures }}</li>
</ul> </ul>
<input type="submit" value="Submit"> <input type="submit" value="Submit">
</form> </form>
</div> </div>
@@ -73,17 +74,17 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
$("#add-finding-button").click(() => { $("#add-finding-button").click(() => {
dicom_element = $(".single-dicom-viewer").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);
$("#finding-form").empty().append( $("#finding-form").empty().append(
$("#hidden-form form").clone() $("#hidden-form form").clone()
); );
}); });
$("#reset-viewport-button").click(() => { $("#reset-viewport-button").click(() => {
dicom_element = $(".single-dicom-viewer").get(0); dicom_element = $(".cornerstone-element").get(0);
//annotationjson = JSON.parse(e.currentTarget.dataset.annotationjson); //annotationjson = JSON.parse(e.currentTarget.dataset.annotationjson);
cornerstoneTools.globalImageIdSpecificToolStateManager.clear(dicom_element); cornerstoneTools.globalImageIdSpecificToolStateManager.clear(dicom_element);
cornerstone.reset(dicom_element); cornerstone.reset(dicom_element);
@@ -93,10 +94,11 @@
$(".view-finding-button").each((n, el) => { $(".view-finding-button").each((n, el) => {
$(el).click((e) => { $(el).click((e) => {
dicom_element = $(".single-dicom-viewer").get(0); dicom_element = $(".cornerstone-element").get(0);
annotationjson = JSON.parse(e.currentTarget.dataset.annotationjson); annotationjson = JSON.parse(e.currentTarget.dataset.annotationjson);
viewport = JSON.parse(e.currentTarget.dataset.viewportjson); viewport = JSON.parse(e.currentTarget.dataset.viewportjson);
cornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(annotationjson); cornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(
annotationjson);
console.log(annotationjson) console.log(annotationjson)
//cornerstone.getEnabledElement(dicom_element).toolStateManager.restoreToolState(annotationjson) //cornerstone.getEnabledElement(dicom_element).toolStateManager.restoreToolState(annotationjson)
cornerstone.getEnabledElement(dicom_element).viewport = viewport cornerstone.getEnabledElement(dicom_element).viewport = viewport
@@ -109,7 +111,7 @@
}); });
$(document).on('submit', '#series_finding_form', function (e) { $(document).on('submit', '#series_finding_form', function (e) {
dicom_element = $(".single-dicom-viewer").get(0); dicom_element = $(".cornerstone-element").get(0);
c = cornerstone.getEnabledElement(dicom_element); c = cornerstone.getEnabledElement(dicom_element);
e.preventDefault(); e.preventDefault();
@@ -118,11 +120,19 @@
url: '{% url "atlas:add_finding" %}', url: '{% url "atlas:add_finding" %}',
data: { data: {
description: $('#id_description').val(), description: $('#id_description').val(),
series: {{series.pk}}, series: {
{
series.pk
}
},
//annotation_json: JSON.stringify(c.toolStateManager.saveToolState()), //annotation_json: JSON.stringify(c.toolStateManager.saveToolState()),
annotation_json: JSON.stringify(cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState()), annotation_json: JSON.stringify(cornerstoneTools.globalImageIdSpecificToolStateManager
.saveToolState()),
viewport_json: JSON.stringify(c.viewport), viewport_json: JSON.stringify(c.viewport),
findings: JSON.stringify($('#finding-form select[name="findings"]').find(":selected").map((i, el) => { return $(el).val() }).toArray()), findings: JSON.stringify($('#finding-form select[name="findings"]').find(":selected")
.map((i, el) => {
return $(el).val()
}).toArray()),
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(), csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
action: 'post' action: 'post'
}, },
@@ -133,7 +143,7 @@
}, },
error: function (xhr, errmsg, err) { error: function (xhr, errmsg, err) {
console.log(xhr.status + ": " + xhr console.log(xhr.status + ": " + xhr
.responseText); // provide a bit more info about the error to the console .responseText); // provide a bit more info about the error to the console
} }
}); });
}); });
@@ -104,7 +104,7 @@
// send request to change the is_private state on customSwitches toggle // send request to change the is_private state on customSwitches toggle
$("#save-annotations").click(function () { $("#save-annotations").click(function () {
let el = $(".single-dicom-viewer").get(0); let el = $(".cornerstone-element").get(0);
let c = cornerstone.getEnabledElement(el); let c = cornerstone.getEnabledElement(el);