diff --git a/webapp/src/components/tabContentComponents/slideScanContent.vue b/webapp/src/components/tabContentComponents/slideScanContent.vue
index de827dbd..acb3f5e9 100644
--- a/webapp/src/components/tabContentComponents/slideScanContent.vue
+++ b/webapp/src/components/tabContentComponents/slideScanContent.vue
@@ -41,18 +41,7 @@
submit-label="Start smart scan"
:can-terminate="true"
:submit-data="{ sample_check: true }"
- @taskStarted="scanning = true"
- @update:taskStatus="taskStatus = $event"
- @update:progress="progress = $event"
- @update:log="log = $event"
- />
-
-
-
Close
+
+
+
+
-
+
![]()
+
@@ -96,6 +97,7 @@ import taskSubmitter from "../genericComponents/taskSubmitter";
import propertyControl from "../labThingsComponents/propertyControl.vue";
import actionLogDisplay from "../genericComponents/actionLogDisplay.vue";
import actionProgressBar from "../genericComponents/actionProgressBar.vue";
+import MiniStreamDisplay from '../genericComponents/miniStreamDisplay.vue';
export default {
name: "SlideScanContent",
@@ -105,7 +107,8 @@ export default {
taskSubmitter,
propertyControl,
actionLogDisplay,
- actionProgressBar
+ actionProgressBar,
+ MiniStreamDisplay
},
data() {
@@ -113,8 +116,11 @@ export default {
lastScanName: null,
scanning: false,
taskStatus: "pending",
+ correlateStatus: "",
+ stitchFromStageStatus: "",
progress: null,
- log: []
+ log: [],
+ lastStitchedImage: null
};
},
@@ -125,8 +131,37 @@ export default {
smartScanUri() {
return this.thingActionUrl("smart_scan", "sample_scan");
},
+ stitchFromStageUri () {
+ return this.thingActionUrl("stitching", "stitch_scan_from_stage");
+ },
+ stitchUri () {
+ return this.thingActionUrl("stitching", "stitch_scan");
+ },
+ correlateUri () {
+ return this.thingActionUrl("stitching", "correlate_scan");
+ },
cancellable() {
return (this.taskStatus == "running") | (this.taskStatus == "pending");
+ },
+ correlatePayload() {
+ return {
+ scan_name: this.lastScanName
+ }
+ },
+ stitchPayload() {
+ return {
+ downsample: 2,
+ ...this.correlatePayload
+ }
+ },
+ stitchFromStagePayload() {
+ return {
+ downsample: 2,
+ ...this.correlatePayload
+ }
+ },
+ displayImageOnRight() {
+ return this.scanning & this.lastStitchedImage !== null;
}
},
@@ -134,6 +169,22 @@ export default {
onScanError: function(error) {
this.scanRunning = false;
this.modalError(error);
+ },
+ correlateCurrentScan() {
+
+ },
+ startScanning() {
+ this.lastStitchedImage = null;
+ this.scanning = true;
+ setTimeout(this.pollScan, 5000);
+ },
+ pollScan() {
+ if (this.cancellable) { // while the scan is running
+ if (!["pending", "running"].includes(this.stitchFromStageStatus)) {
+ this.$refs.stitchFromStageSubmitter.startTask()
+ }
+ setTimeout(this.pollScan, 5000); // keep rescheduling until it's stopped
+ }
}
}
};