diff --git a/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-controller.ts b/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-controller.ts index 5e265a17f..dc3841ac5 100644 --- a/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-controller.ts +++ b/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-controller.ts @@ -132,8 +132,14 @@ class CompareDoubleImagesController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'compareDoubleImages-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'compareDoubleImages') { @@ -142,10 +148,16 @@ class CompareDoubleImagesController { url.search = params window.history.replaceState({ functionName: 'compareDoubleImages' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'compareDoubleImages') { + preRun() } }) diff --git a/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-load-sample-inputs.ts b/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-load-sample-inputs.ts index db0a3aeb3..795a18fae 100644 --- a/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-load-sample-inputs.ts +++ b/packages/compare-images/typescript/test/browser/demo-app/compare-double-images-load-sample-inputs.ts @@ -1,7 +1,7 @@ // Generated file. To retain edits, remove this comment. export default null -// export default async function compareDoubleImagesLoadSampleInputs (model) { +// export default async function compareDoubleImagesLoadSampleInputs (model, preRun=false) { // Load sample inputs for the compareDoubleImages function. // @@ -25,4 +25,4 @@ export default null // Use this function to run the pipeline when this tab group is select. // This will load the web worker if it is not already loaded, download the wasm module, and allocate memory in the wasm model. // Set this to `false` if sample inputs are very large or sample pipeline computation is long. -export usePreRun = true +export const usePreRun = true diff --git a/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-controller.ts b/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-controller.ts index 6cd6e571e..6c9a3c94b 100644 --- a/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-controller.ts +++ b/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-controller.ts @@ -73,8 +73,14 @@ class VectorMagnitudeController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'vectorMagnitude-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'vectorMagnitude') { @@ -83,10 +89,16 @@ class VectorMagnitudeController { url.search = params window.history.replaceState({ functionName: 'vectorMagnitude' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'vectorMagnitude') { + preRun() } }) diff --git a/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-load-sample-inputs.ts b/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-load-sample-inputs.ts index 1886663e3..9851da352 100644 --- a/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-load-sample-inputs.ts +++ b/packages/compare-images/typescript/test/browser/demo-app/vector-magnitude-load-sample-inputs.ts @@ -1,7 +1,7 @@ // Generated file. To retain edits, remove this comment. export default null -// export default async function vectorMagnitudeLoadSampleInputs (model) { +// export default async function vectorMagnitudeLoadSampleInputs (model, preRun=false) { // Load sample inputs for the vectorMagnitude function. // @@ -25,4 +25,4 @@ export default null // Use this function to run the pipeline when this tab group is select. // This will load the web worker if it is not already loaded, download the wasm module, and allocate memory in the wasm model. // Set this to `false` if sample inputs are very large or sample pipeline computation is long. -export usePreRun = true +export const usePreRun = true diff --git a/packages/compress-stringify/typescript/test/browser/demo-app/compress-stringify-controller.ts b/packages/compress-stringify/typescript/test/browser/demo-app/compress-stringify-controller.ts index 02fae44e0..fbf209c3f 100644 --- a/packages/compress-stringify/typescript/test/browser/demo-app/compress-stringify-controller.ts +++ b/packages/compress-stringify/typescript/test/browser/demo-app/compress-stringify-controller.ts @@ -79,8 +79,14 @@ class CompressStringifyController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'compressStringify-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'compressStringify') { @@ -89,10 +95,16 @@ class CompressStringifyController { url.search = params window.history.replaceState({ functionName: 'compressStringify' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'compressStringify') { + preRun() } }) diff --git a/packages/compress-stringify/typescript/test/browser/demo-app/index.ts b/packages/compress-stringify/typescript/test/browser/demo-app/index.ts index 53a88f11e..a539d23a6 100644 --- a/packages/compress-stringify/typescript/test/browser/demo-app/index.ts +++ b/packages/compress-stringify/typescript/test/browser/demo-app/index.ts @@ -11,11 +11,10 @@ compressStringify.setPipelineWorkerUrl(pipelineWorkerUrl) import './compress-stringify-controller.js' import './parse-string-decompress-controller.js' -const tabGroup = document.querySelector('sl-tab-group') const params = new URLSearchParams(window.location.search) -if (params.has('functionName')) { - const functionName = params.get('functionName') - tabGroup.show(functionName + '-panel') -} else { - tabGroup.show('compressStringify-panel') +if (!params.has('functionName')) { + params.set('functionName', 'compressStringify') + const url = new URL(document.location) + url.search = params + window.history.replaceState({ functionName: 'compressStringify' }, '', url) } diff --git a/packages/compress-stringify/typescript/test/browser/demo-app/parse-string-decompress-controller.ts b/packages/compress-stringify/typescript/test/browser/demo-app/parse-string-decompress-controller.ts index 4a6e97c74..88026ce20 100644 --- a/packages/compress-stringify/typescript/test/browser/demo-app/parse-string-decompress-controller.ts +++ b/packages/compress-stringify/typescript/test/browser/demo-app/parse-string-decompress-controller.ts @@ -69,8 +69,14 @@ class ParseStringDecompressController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'parseStringDecompress-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'parseStringDecompress') { @@ -79,10 +85,16 @@ class ParseStringDecompressController { url.search = params window.history.replaceState({ functionName: 'parseStringDecompress' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'parseStringDecompress') { + preRun() } }) diff --git a/packages/dicom/typescript/src/apply-presentation-state-to-image-node.ts b/packages/dicom/typescript/src/apply-presentation-state-to-image-node.ts index 2c4649c27..1ec54ea88 100644 --- a/packages/dicom/typescript/src/apply-presentation-state-to-image-node.ts +++ b/packages/dicom/typescript/src/apply-presentation-state-to-image-node.ts @@ -37,8 +37,8 @@ async function applyPresentationStateToImageNode( { type: InterfaceTypes.Image }, ] - mountDirs.add(path.dirname(imageIn as string)) - mountDirs.add(path.dirname(presentationStateFile as string)) + mountDirs.add(path.dirname(value as string)) + mountDirs.add(path.dirname(value as string)) const inputs: Array = [ ] diff --git a/packages/dicom/typescript/src/read-dicom-encapsulated-pdf-node.ts b/packages/dicom/typescript/src/read-dicom-encapsulated-pdf-node.ts index cbbf03508..34711c764 100644 --- a/packages/dicom/typescript/src/read-dicom-encapsulated-pdf-node.ts +++ b/packages/dicom/typescript/src/read-dicom-encapsulated-pdf-node.ts @@ -33,7 +33,7 @@ async function readDicomEncapsulatedPdfNode( { type: InterfaceTypes.BinaryStream }, ] - mountDirs.add(path.dirname(dicomFile as string)) + mountDirs.add(path.dirname(value as string)) const inputs: Array = [ ] diff --git a/packages/dicom/typescript/src/read-image-dicom-file-series-node.ts b/packages/dicom/typescript/src/read-image-dicom-file-series-node.ts index 04e549f51..29974fe86 100644 --- a/packages/dicom/typescript/src/read-image-dicom-file-series-node.ts +++ b/packages/dicom/typescript/src/read-image-dicom-file-series-node.ts @@ -54,10 +54,8 @@ async function readImageDicomFileSeriesNode( args.push('--input-images') options.inputImages.forEach((value) => { - mountDirs.add(path.dirname(value as string)) mountDirs.add(path.dirname(value as string)) args.push(value as string) - }) } if (typeof options.singleSortedSeries !== "undefined") { diff --git a/packages/dicom/typescript/src/structured-report-to-html-node.ts b/packages/dicom/typescript/src/structured-report-to-html-node.ts index 44603d164..b8598613c 100644 --- a/packages/dicom/typescript/src/structured-report-to-html-node.ts +++ b/packages/dicom/typescript/src/structured-report-to-html-node.ts @@ -33,7 +33,7 @@ async function structuredReportToHtmlNode( { type: InterfaceTypes.TextStream }, ] - mountDirs.add(path.dirname(dicomFile as string)) + mountDirs.add(path.dirname(value as string)) const inputs: Array = [ ] @@ -127,7 +127,7 @@ async function structuredReportToHtmlNode( } if (typeof options.cssFile !== "undefined") { const cssFile = options.cssFile - mountDirs.add(path.dirname(cssFile as string)) + mountDirs.add(path.dirname(value as string)) args.push('--css-file') const name = cssFile as string diff --git a/packages/dicom/typescript/src/structured-report-to-text-node.ts b/packages/dicom/typescript/src/structured-report-to-text-node.ts index a6e9c2cc9..2c93962c1 100644 --- a/packages/dicom/typescript/src/structured-report-to-text-node.ts +++ b/packages/dicom/typescript/src/structured-report-to-text-node.ts @@ -33,7 +33,7 @@ async function structuredReportToTextNode( { type: InterfaceTypes.TextStream }, ] - mountDirs.add(path.dirname(dicomFile as string)) + mountDirs.add(path.dirname(value as string)) const inputs: Array = [ ] diff --git a/packages/dicom/typescript/test/browser/demo-app/apply-presentation-state-to-image-controller.ts b/packages/dicom/typescript/test/browser/demo-app/apply-presentation-state-to-image-controller.ts index fde102e8e..3c3f8c7d1 100644 --- a/packages/dicom/typescript/test/browser/demo-app/apply-presentation-state-to-image-controller.ts +++ b/packages/dicom/typescript/test/browser/demo-app/apply-presentation-state-to-image-controller.ts @@ -118,8 +118,14 @@ class ApplyPresentationStateToImageController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'applyPresentationStateToImage-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'applyPresentationStateToImage') { @@ -128,10 +134,16 @@ class ApplyPresentationStateToImageController { url.search = params window.history.replaceState({ functionName: 'applyPresentationStateToImage' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'applyPresentationStateToImage') { + preRun() } }) diff --git a/packages/dicom/typescript/test/browser/demo-app/index.ts b/packages/dicom/typescript/test/browser/demo-app/index.ts index bdea1a24c..0a1459759 100644 --- a/packages/dicom/typescript/test/browser/demo-app/index.ts +++ b/packages/dicom/typescript/test/browser/demo-app/index.ts @@ -15,11 +15,10 @@ import './structured-report-to-text-controller.js' import './read-dicom-tags-controller.js' import './read-image-dicom-file-series-controller.js' -const tabGroup = document.querySelector('sl-tab-group') const params = new URLSearchParams(window.location.search) -if (params.has('functionName')) { - const functionName = params.get('functionName') - tabGroup.show(functionName + '-panel') -} else { - tabGroup.show('applyPresentationStateToImage-panel') +if (!params.has('functionName')) { + params.set('functionName', 'applyPresentationStateToImage') + const url = new URL(document.location) + url.search = params + window.history.replaceState({ functionName: 'applyPresentationStateToImage' }, '', url) } diff --git a/packages/dicom/typescript/test/browser/demo-app/read-dicom-tags-controller.ts b/packages/dicom/typescript/test/browser/demo-app/read-dicom-tags-controller.ts index 96c9446cb..d78dc360a 100644 --- a/packages/dicom/typescript/test/browser/demo-app/read-dicom-tags-controller.ts +++ b/packages/dicom/typescript/test/browser/demo-app/read-dicom-tags-controller.ts @@ -77,8 +77,14 @@ class ReadDicomTagsController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'readDicomTags-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'readDicomTags') { @@ -87,10 +93,16 @@ class ReadDicomTagsController { url.search = params window.history.replaceState({ functionName: 'readDicomTags' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'readDicomTags') { + preRun() } }) diff --git a/packages/dicom/typescript/test/browser/demo-app/structured-report-to-text-controller.ts b/packages/dicom/typescript/test/browser/demo-app/structured-report-to-text-controller.ts index f9d84ffab..28239d798 100644 --- a/packages/dicom/typescript/test/browser/demo-app/structured-report-to-text-controller.ts +++ b/packages/dicom/typescript/test/browser/demo-app/structured-report-to-text-controller.ts @@ -149,8 +149,14 @@ class StructuredReportToTextController { } }) - const tabGroup = document.querySelector('sl-tab-group') - tabGroup.addEventListener('sl-tab-show', async (event) => { + const preRun = async () => { + if (!this.webWorker && loadSampleInputs && usePreRun) { + await loadSampleInputs(model, true) + await this.run() + } + } + + const onSelectTab = async (event) => { if (event.detail.name === 'structuredReportToText-panel') { const params = new URLSearchParams(window.location.search) if (!params.has('functionName') || params.get('functionName') !== 'structuredReportToText') { @@ -159,10 +165,16 @@ class StructuredReportToTextController { url.search = params window.history.replaceState({ functionName: 'structuredReportToText' }, '', url) } - if (!this.webWorker && loadSampleInputs && usePreRun) { - await loadSampleInputs(model, true) - await this.run() - } + await preRun() + } + } + + const tabGroup = document.querySelector('sl-tab-group') + tabGroup.addEventListener('sl-tab-show', onSelectTab) + document.addEventListener('DOMContentLoaded', () => { + const params = new URLSearchParams(window.location.search) + if (params.has('functionName') && params.get('functionName') === 'structuredReportToText') { + preRun() } })