");
- if (compareString(answer, user_answer)) {
+ .then(function (saved_user_answers) {
+ // check if given answer matches a user saved answer
+ if (saved_user_answers != undefined) {
+ saved_user_answers.ans.forEach(function (saved_answer, n) {
+ ul.append("
" + saved_answer + "
");
+ if (compareString(saved_answer, user_answer)) {
textarea.removeClass("incorrect").addClass("correct");
}
});
}
+ // check if given answer matches an answer from the question
current_question.answers.forEach(function (answer, n) {
ul.append("
" + answer + "
");
if (compareString(answer, user_answer)) {
@@ -1543,13 +1508,17 @@ function markAnswer(qid, current_question) {
}
});
+ // If the given answer is not abnormal it must be incorrect
if (type == "rapid" && option.value != "Abnormal") {
option.classList.add("incorrect");
} else {
+ // If it is blank it must also be incorrect
if (
textarea.hasClass("incorrect") == true &&
user_answer.replace(/\s/g, "") != ""
) {
+ // Otherwise there is a chance that it may be correct
+ // so we give the option to mark it correct
if (window.allow_self_marking) {
$(".answer-panel").append(
$("").click(
@@ -1682,6 +1651,11 @@ $("#start-exam-button").click(function (evt) {
});
$("#start-packet-button").click(function (evt) {
+ if (window.timer != null) {
+ window.timer.stop();
+ }
+ window.timer = null;
+
let timer = new easytimer.Timer();
//window.exam_time = 2;
timer.start({ countdown: true, startValues: { seconds: window.exam_time } });
@@ -1692,6 +1666,8 @@ $("#start-packet-button").click(function (evt) {
$("#time-up-dialog").modal();
});
+ window.timer = timer;
+
$("#timer").click(() => {
timer.pause();
$("#pause").empty();
@@ -1731,7 +1707,9 @@ $("#start-packet-button").click(function (evt) {
});
$("#btn-delete-databases").click(function (evt) {
- var r = confirm("This will delete ALL saved answers!");
+ var r = confirm(
+ "This will delete ALL saved answers (including saved correct answers)!"
+ );
if (r == true) {
db.delete()
.then(() => {
@@ -1754,22 +1732,59 @@ $("#btn-delete-databases").click(function (evt) {
});
$("#btn-delete-current").click(function (evt) {
+ if (window.question_order.length < 1) {
+ $.notify("No packet is currently loaded", "warn");
+ return;
+ }
+
+ db.flags
+ .where("qid")
+ .anyOf(window.question_order)
+ .delete()
+ .then(function (deleteCount) {
+ $.notify("Packet flags deleted", "success");
+ })
+ .catch((err) => {
+ $.notify("Error deleting packet flags", "error");
+ $.notify("You may have to delete all answers this time", "info");
+ });
+
db.answers
.where("qid")
.anyOf(window.question_order)
.delete()
.then(function (deleteCount) {
$.notify("Packet successfully reset", "success");
- $.notify("The page will now reload", "warn");
- setTimeout(() => {
- location.reload();
- }, 2000);
+ loadQuestion(0, 0, true);
+ // $.notify("The page will now reload", "warn");
+ // setTimeout(() => {
+ // location.reload();
+ // }, 2000);
console.log("Deleted " + deleteCount + " objects");
})
.catch((err) => {
$.notify("Error reseting packet", "error");
$.notify("You may have to delete all answers this time", "info");
- console.error("Could not answers");
+ console.log(err);
+ });
+});
+
+$("#btn-delete-current-saved-answers").click(function (evt) {
+ if (window.question_order.length < 1) {
+ $.notify("No packet is currently loaded", "warn");
+ return;
+ }
+
+ db.user_answers
+ .where("qid")
+ .anyOf(window.question_order)
+ .delete()
+ .then(function (deleteCount) {
+ $.notify("Packet flags deleted", "success");
+ })
+ .catch((err) => {
+ $.notify("Error deleting saved answers", "error");
+ $.notify("You may have to delete all answers this time", "info");
});
});
diff --git a/js/viewer.js b/js/viewer.js
index 0bf47f8..2cd5e41 100644
--- a/js/viewer.js
+++ b/js/viewer.js
@@ -229,3 +229,102 @@ export function debugCornerstone() {
let viewport = cornerstone.getViewport(dicom_element);
let c = cornerstone.getEnabledElement(dicom_element);
}
+
+/**
+ * Registers the selected dicom tool
+ */
+export function changeControlSelection() {
+ // We also duplicate the sel that are available
+ const sel = $(".control-overlay").get(0);
+
+ const old = sel.oldSelectedIndex;
+ sel.oldSelectedIndex = sel.selectedIndex;
+
+ console.log(event);
+
+ const dicom_element = document.getElementById("dicom-image");
+ switch (sel.options[sel.selectedIndex].value) {
+ case "pan": {
+ cornerstoneTools.setToolActive("Pan", { mouseButtonMask: 1 });
+ break;
+ }
+ case "zoom": {
+ cornerstoneTools.setToolActive("Zoom", { mouseButtonMask: 1 });
+ break;
+ }
+ case "rotate": {
+ cornerstoneTools.setToolActive("Rotate", { mouseButtonMask: 1 });
+ break;
+ }
+ case "scroll": {
+ cornerstoneTools.setToolActive("StackScroll", { mouseButtonMask: 1 });
+ // _this.left.onstart = _this.scroll_start;
+ // _this.selected_control = t.selectedIndex;
+ break;
+ }
+ case "window": {
+ cornerstoneTools.setToolActive("Wwwc", { mouseButtonMask: 1 });
+ break;
+ }
+ case "abdomen": {
+ const viewport = cornerstone.getViewport(dicom_element);
+ viewport.voi.windowCenter = 150;
+ viewport.voi.windowWidth = 500;
+ cornerstone.setViewport(dicom_element, viewport);
+ sel.selectedIndex = find_option(sel, "window");
+ changeControlSelection();
+ break;
+ }
+ case "pulmonary": {
+ const viewport = cornerstone.getViewport(dicom_element);
+ viewport.voi.windowCenter = -500;
+ viewport.voi.windowWidth = 1500;
+ cornerstone.setViewport(dicom_element, viewport);
+ sel.selectedIndex = find_option(sel, "window");
+ changeControlSelection();
+ break;
+ }
+ case "brain": {
+ const viewport = cornerstone.getViewport(dicom_element);
+ viewport.voi.windowCenter = 50;
+ viewport.voi.windowWidth = 80;
+ cornerstone.setViewport(dicom_element, viewport);
+ sel.selectedIndex = find_option(sel, "window");
+ changeControlSelection();
+ break;
+ }
+ case "bone": {
+ const viewport = cornerstone.getViewport(dicom_element);
+ viewport.voi.windowCenter = 570;
+ viewport.voi.windowWidth = 3000;
+ cornerstone.setViewport(dicom_element, viewport);
+ sel.selectedIndex = find_option(sel, "window");
+ changeControlSelection();
+ break;
+ }
+ case "reset": {
+ cornerstone.reset(dicom_element);
+ sel.selectedIndex = old;
+ sel.oldSelectedIndex = old;
+ break;
+ }
+ case "close": {
+ // disable fullscreen if required
+ if ($(".canvas-panel").length == 0) {
+ disableFullscreen(dicom_element);
+ }
+ if (dicom_element != undefined) {
+ cornerstone.removeElementData(dicom_element);
+ cornerstone.disable(dicom_element);
+ $(".canvas-panel").remove();
+ $(".figure-open").removeClass("figure-open").addClass("figure");
+ $(dicom_element).remove();
+ }
+ break;
+ }
+ }
+ sel.blur();
+ if (event) {
+ event.preventDefault();
+ }
+}