From a330e2bcd1302b3038445c60dea285d68ba41e35 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:53:38 +0545 Subject: [PATCH 01/21] renaming page object to match naming conventions --- tests/e2e/pageObjects/{DicomViewer.ts => dicomViewerPage.ts} | 2 +- tests/e2e/steps/dicomViewerContext.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename tests/e2e/pageObjects/{DicomViewer.ts => dicomViewerPage.ts} (98%) diff --git a/tests/e2e/pageObjects/DicomViewer.ts b/tests/e2e/pageObjects/dicomViewerPage.ts similarity index 98% rename from tests/e2e/pageObjects/DicomViewer.ts rename to tests/e2e/pageObjects/dicomViewerPage.ts index 103b1977..fcdfc071 100644 --- a/tests/e2e/pageObjects/DicomViewer.ts +++ b/tests/e2e/pageObjects/dicomViewerPage.ts @@ -1,7 +1,7 @@ import util from 'util' import { getUser } from '../userStore' -export class DicomViewer { +export class dicomViewerPage { elements: Readonly> = { userNameSelector: '#oc-login-username', passwordSelector: '#oc-login-password', diff --git a/tests/e2e/steps/dicomViewerContext.ts b/tests/e2e/steps/dicomViewerContext.ts index cd6e614d..912a49d2 100644 --- a/tests/e2e/steps/dicomViewerContext.ts +++ b/tests/e2e/steps/dicomViewerContext.ts @@ -3,9 +3,9 @@ import { expect } from '@playwright/test' import util from 'util' import { config } from '../config.js' -import { DicomViewer } from '../pageObjects/DicomViewer' +import { dicomViewerPage } from '../pageObjects/dicomViewerPage' -const dicomViewer = new DicomViewer() +const dicomViewer = new dicomViewerPage() import { apiUpload } from '../api/apiUpload' Given('the user {string} has logged in', async function (user: string): Promise { From abb93a4ffb6cf6cea02a5ed17d808cd23697013f Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:56:34 +0545 Subject: [PATCH 02/21] fix typo in feature file --- tests/e2e/features/dicomViewer.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 7f075516..00034f2e 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -6,7 +6,7 @@ Feature: Preview dicom image Scenario: user previews dicom image Given the dicom file "MRBRAIN.dcm" has been uploaded - And the user "Admin" has logged in + And the user "admin" has logged in When the user previews the dicom file "MRBRAIN.dcm" Then the user should see the dicom file "MRBRAIN.dcm" And the user should see patient name "MR/BRAIN/GRASE/1024" in the VIP metadata section From 760a8c6214966167cfe4f4d690ef8d6299f87418 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:58:34 +0545 Subject: [PATCH 03/21] rename apiHelper file to comply with naming conventions --- tests/e2e/api/{APIHelper.ts => apiHelper.ts} | 0 tests/e2e/api/apiUpload.ts | 2 +- tests/e2e/hooks.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename tests/e2e/api/{APIHelper.ts => apiHelper.ts} (100%) diff --git a/tests/e2e/api/APIHelper.ts b/tests/e2e/api/apiHelper.ts similarity index 100% rename from tests/e2e/api/APIHelper.ts rename to tests/e2e/api/apiHelper.ts diff --git a/tests/e2e/api/apiUpload.ts b/tests/e2e/api/apiUpload.ts index 72d7451f..3be9e42e 100644 --- a/tests/e2e/api/apiUpload.ts +++ b/tests/e2e/api/apiUpload.ts @@ -1,6 +1,6 @@ import fs from 'fs' import { config } from '../config.js' -import { sendRequest } from './APIHelper' +import { sendRequest } from './apiHelper' export const apiUpload = async function ({ filename }): Promise { const response = await sendRequest({ diff --git a/tests/e2e/hooks.ts b/tests/e2e/hooks.ts index bd73dfda..12efb4d5 100644 --- a/tests/e2e/hooks.ts +++ b/tests/e2e/hooks.ts @@ -3,7 +3,7 @@ import { chromium } from '@playwright/test' import { xml2js } from 'xml-js' import { _ } from 'lodash' import { config } from './config.js' -import { sendRequest } from './api/APIHelper' +import { sendRequest } from './api/apiHelper' setDefaultTimeout(config.timeout * 1000) From aa3a6ad4e7f33ce29e7e233ff08e1b18a3bf68e7 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 16:04:22 +0545 Subject: [PATCH 04/21] update wording of user story to match the user story given by project owner --- tests/e2e/features/dicomViewer.feature | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 00034f2e..1ada2950 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -1,7 +1,7 @@ Feature: Preview dicom image - As a user - I want to preview a DICOM file - so that I can preview DICOM image and its metadata + As a user who has a DICOM file + I want to preview the file + so that I can reassure that it contains the right image and check its metadata Scenario: user previews dicom image From 41ff2f9b385777b9590245ee3789a80d50436b5c Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 16:22:23 +0545 Subject: [PATCH 05/21] adding error if trashbin wasn't deleted properly --- tests/e2e/hooks.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/e2e/hooks.ts b/tests/e2e/hooks.ts index bd73dfda..8fb7dd2e 100644 --- a/tests/e2e/hooks.ts +++ b/tests/e2e/hooks.ts @@ -40,6 +40,13 @@ const deleteDicomFile = async function (): Promise { await sendRequest({ method: 'DELETE', path: href }) } -const emptyTrashbin = async function (): Promise { - await sendRequest({ method: 'DELETE', path: 'remote.php/dav/trash-bin/admin' }) +const emptyTrashbin = async function (): Promise { + const response = await sendRequest({ + method: 'DELETE', + path: 'remote.php/dav/trash-bin/admin' + }) + if (response.status !== 204) { + throw new Error(`Failed to empty trashbin`) + } + return response.status } From d1571bcd74e7531c438273ebc281083cc6836067 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 16:33:41 +0545 Subject: [PATCH 06/21] adding error if file hasn't been properly deleted --- tests/e2e/hooks.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/e2e/hooks.ts b/tests/e2e/hooks.ts index 8fb7dd2e..8ae02450 100644 --- a/tests/e2e/hooks.ts +++ b/tests/e2e/hooks.ts @@ -30,14 +30,20 @@ After(async function (): Promise { await global.page.close() }) -const deleteDicomFile = async function (): Promise { +const deleteDicomFile = async function (): Promise { const response = await sendRequest({ method: 'PROPFIND', path: 'remote.php/dav/files/admin' }) const xmlResponse = response.data const result = xml2js(xmlResponse, { compact: true }) const resp = _.get(result, 'd:multistatus.d:response') const href = _.get(resp[1], 'd:href._text') - - await sendRequest({ method: 'DELETE', path: href }) + const response2 = await sendRequest({ + method: 'DELETE', + path: href + }) + if (response2.status !== 204) { + throw new Error(`Failed to delete file`) + } + return response2.status } const emptyTrashbin = async function (): Promise { From 7ff32d465aab2c7f16b98d70c66abc9646902683 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 17:06:03 +0545 Subject: [PATCH 07/21] removing unnecessary return values --- tests/e2e/hooks.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/e2e/hooks.ts b/tests/e2e/hooks.ts index 8ae02450..f6d61d23 100644 --- a/tests/e2e/hooks.ts +++ b/tests/e2e/hooks.ts @@ -30,7 +30,7 @@ After(async function (): Promise { await global.page.close() }) -const deleteDicomFile = async function (): Promise { +const deleteDicomFile = async function (): Promise { const response = await sendRequest({ method: 'PROPFIND', path: 'remote.php/dav/files/admin' }) const xmlResponse = response.data const result = xml2js(xmlResponse, { compact: true }) @@ -41,12 +41,11 @@ const deleteDicomFile = async function (): Promise { path: href }) if (response2.status !== 204) { - throw new Error(`Failed to delete file`) + throw new Error(`Failed to delete dicom file`) } - return response2.status } -const emptyTrashbin = async function (): Promise { +const emptyTrashbin = async function (): Promise { const response = await sendRequest({ method: 'DELETE', path: 'remote.php/dav/trash-bin/admin' @@ -54,5 +53,4 @@ const emptyTrashbin = async function (): Promise { if (response.status !== 204) { throw new Error(`Failed to empty trashbin`) } - return response.status } From 4ed9e1326ed4eab84ba0c63c8b628a522977d97d Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 17:06:31 +0545 Subject: [PATCH 08/21] adding try & catch to API request --- tests/e2e/api/APIHelper.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tests/e2e/api/APIHelper.ts b/tests/e2e/api/APIHelper.ts index adc92139..06036d88 100644 --- a/tests/e2e/api/APIHelper.ts +++ b/tests/e2e/api/APIHelper.ts @@ -3,17 +3,20 @@ import axios from 'axios' import join from 'join-path' export const sendRequest = function ({ method, path, header = null, data = null }): Promise { - const headers = { - ...header, - Authorization: `Basic ${Buffer.from(`${config.adminUser}:${config.adminPassword}`).toString( - 'base64' - )}` + try { + const headers = { + ...header, + Authorization: `Basic ${Buffer.from(`${config.adminUser}:${config.adminPassword}`).toString( + 'base64' + )}` + } + return axios({ + method, + url: join(config.baseUrlOcis, path), + headers, + data + }) + } catch (error) { + throw new Error(error.message) } - - return axios({ - method, - url: join(config.baseUrlOcis, path), - headers, - data - }) } From 82ded73f46c1e1f537e1444d4380449ed1e820d1 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 11:16:45 +0545 Subject: [PATCH 09/21] remove purple border around dicom image --- src/App.vue | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/App.vue b/src/App.vue index 90c2b888..579ad53d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -258,9 +258,10 @@ export default defineComponent({ // set stack on the viewport (currently only one image in the stack, therefore no frame # required) await this.viewport.setStack(dicomStack) - // render the image (updates every viewport in the rendering engine) - this.viewport.render() + // set initial parallel scale factor and render the image (updates every viewport in the rendering engine) this.setViewportCameraParallelScaleFactor() + this.setZoom(this.currentImageZoom) + this.viewport.render() // getting image metadata from viewport this.getImageMetadataFromViewport(this.dicomUrl) @@ -268,8 +269,6 @@ export default defineComponent({ }, updated() { // this.viewport.resize() - // also check if it is needed to recalculate scale factor - // this.setViewportCameraParallelScaleFactor() }, beforeUnmount() { this.renderingEngine.destroy() @@ -563,7 +562,7 @@ export default defineComponent({ }, setViewportCameraParallelScaleFactor() { const camera = this.viewport.getCamera() - this.viewportCameraParallelScale = camera.parallelScale + this.viewportCameraParallelScale = camera.parallelScale * 0.925 // add small correction factor to remove purple border around image }, // functions for styling data formatOverlayDateAndTime(date: string, time: string) { From 9eb5a2e67e13af3900269854535964e4b3b58547 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 11:55:30 +0545 Subject: [PATCH 10/21] change flip icon --- src/components/DicomControls.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/DicomControls.vue b/src/components/DicomControls.vue index d4fb050e..3b302a43 100644 --- a/src/components/DicomControls.vue +++ b/src/components/DicomControls.vue @@ -96,8 +96,7 @@ :aria-label="imageFlipHorizontalDescription" @click="$emit('setHorizontalFlip')" > - - + - - +
From 69ebf418086ee74bbd6fe549c9ddbf52733eea3d Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 14:22:46 +0545 Subject: [PATCH 11/21] improve readability of code --- src/App.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/App.vue b/src/App.vue index 579ad53d..31235b64 100644 --- a/src/App.vue +++ b/src/App.vue @@ -562,7 +562,8 @@ export default defineComponent({ }, setViewportCameraParallelScaleFactor() { const camera = this.viewport.getCamera() - this.viewportCameraParallelScale = camera.parallelScale * 0.925 // add small correction factor to remove purple border around image + this.viewportCameraParallelScale = camera.parallelScale * 0.925 + // add small correction factor to remove purple border around image }, // functions for styling data formatOverlayDateAndTime(date: string, time: string) { From 508368e181863c0baeb1c2756090e567a7659471 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 14:51:25 +0545 Subject: [PATCH 12/21] figure out how to refresh viewport after changing parallel scale factor --- src/App.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/App.vue b/src/App.vue index 31235b64..fa7989fe 100644 --- a/src/App.vue +++ b/src/App.vue @@ -260,7 +260,9 @@ export default defineComponent({ // set initial parallel scale factor and render the image (updates every viewport in the rendering engine) this.setViewportCameraParallelScaleFactor() - this.setZoom(this.currentImageZoom) + // this.setZoom(this.currentImageZoom) + // TODO: figure out how to refresh viewport (display image with modified parallel scale factor) + this.viewport.render() // getting image metadata from viewport From c5d583ad3578748770cad35d5303f544a302e2fe Mon Sep 17 00:00:00 2001 From: Salipa-Gurung Date: Thu, 15 Aug 2024 15:19:54 +0545 Subject: [PATCH 13/21] add missing mock function --- tests/unit/App.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/App.spec.ts b/tests/unit/App.spec.ts index a0b344e9..2962add8 100644 --- a/tests/unit/App.spec.ts +++ b/tests/unit/App.spec.ts @@ -19,6 +19,7 @@ vi.mock('@cornerstonejs/core', () => { return { setStack: vi.fn(), render: vi.fn(), + setCamera: vi.fn(), getCamera: vi.fn().mockImplementation(() => { return { parallelScale: 137.3853139193763 } }), From 3aacc1904dfd6dcc3c0909899f312bf15cf62cc8 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 16:53:19 +0545 Subject: [PATCH 14/21] add setZoom back --- src/App.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/App.vue b/src/App.vue index fa7989fe..31235b64 100644 --- a/src/App.vue +++ b/src/App.vue @@ -260,9 +260,7 @@ export default defineComponent({ // set initial parallel scale factor and render the image (updates every viewport in the rendering engine) this.setViewportCameraParallelScaleFactor() - // this.setZoom(this.currentImageZoom) - // TODO: figure out how to refresh viewport (display image with modified parallel scale factor) - + this.setZoom(this.currentImageZoom) this.viewport.render() // getting image metadata from viewport From 70722a9fe58375f70e4c790c697b06e089e78223 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Thu, 15 Aug 2024 17:01:33 +0545 Subject: [PATCH 15/21] correcting the parallel scale factor in mocks to match with changes in implementation --- tests/unit/App.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/unit/App.spec.ts b/tests/unit/App.spec.ts index a0b344e9..e7508436 100644 --- a/tests/unit/App.spec.ts +++ b/tests/unit/App.spec.ts @@ -19,8 +19,9 @@ vi.mock('@cornerstonejs/core', () => { return { setStack: vi.fn(), render: vi.fn(), + setCamera: vi.fn(), getCamera: vi.fn().mockImplementation(() => { - return { parallelScale: 137.3853139193763 } + return { parallelScale: 127.08141537542309 } }), getImageData: vi.fn().mockImplementation(() => { return { dimensions: [] } From 53cc50ef0ac818c5f3653c97eae8cd6f9914765b Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Tue, 20 Aug 2024 10:59:15 +0545 Subject: [PATCH 16/21] Apply suggestions from code review Co-authored-by: Phil Davis --- tests/e2e/features/dicomViewer.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 1ada2950..59517703 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -1,7 +1,7 @@ Feature: Preview dicom image As a user who has a DICOM file I want to preview the file - so that I can reassure that it contains the right image and check its metadata + so that I can assure myself that it contains the right image and check its metadata Scenario: user previews dicom image From 133efbe4e88b7b82de20ffdaa704f2716d2ad8ee Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:53:38 +0545 Subject: [PATCH 17/21] renaming page object to match naming conventions --- tests/e2e/pageObjects/{DicomViewer.ts => dicomViewerPage.ts} | 2 +- tests/e2e/steps/dicomViewerContext.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename tests/e2e/pageObjects/{DicomViewer.ts => dicomViewerPage.ts} (98%) diff --git a/tests/e2e/pageObjects/DicomViewer.ts b/tests/e2e/pageObjects/dicomViewerPage.ts similarity index 98% rename from tests/e2e/pageObjects/DicomViewer.ts rename to tests/e2e/pageObjects/dicomViewerPage.ts index 103b1977..fcdfc071 100644 --- a/tests/e2e/pageObjects/DicomViewer.ts +++ b/tests/e2e/pageObjects/dicomViewerPage.ts @@ -1,7 +1,7 @@ import util from 'util' import { getUser } from '../userStore' -export class DicomViewer { +export class dicomViewerPage { elements: Readonly> = { userNameSelector: '#oc-login-username', passwordSelector: '#oc-login-password', diff --git a/tests/e2e/steps/dicomViewerContext.ts b/tests/e2e/steps/dicomViewerContext.ts index cd6e614d..912a49d2 100644 --- a/tests/e2e/steps/dicomViewerContext.ts +++ b/tests/e2e/steps/dicomViewerContext.ts @@ -3,9 +3,9 @@ import { expect } from '@playwright/test' import util from 'util' import { config } from '../config.js' -import { DicomViewer } from '../pageObjects/DicomViewer' +import { dicomViewerPage } from '../pageObjects/dicomViewerPage' -const dicomViewer = new DicomViewer() +const dicomViewer = new dicomViewerPage() import { apiUpload } from '../api/apiUpload' Given('the user {string} has logged in', async function (user: string): Promise { From 5c8f1f35fddc2710b8a699b4d337ec16f9b3403c Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:56:34 +0545 Subject: [PATCH 18/21] fix typo in feature file --- tests/e2e/features/dicomViewer.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 7f075516..00034f2e 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -6,7 +6,7 @@ Feature: Preview dicom image Scenario: user previews dicom image Given the dicom file "MRBRAIN.dcm" has been uploaded - And the user "Admin" has logged in + And the user "admin" has logged in When the user previews the dicom file "MRBRAIN.dcm" Then the user should see the dicom file "MRBRAIN.dcm" And the user should see patient name "MR/BRAIN/GRASE/1024" in the VIP metadata section From cc2185c725ce54eac3894597f60a5d54f396d1d4 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 15:58:34 +0545 Subject: [PATCH 19/21] rename apiHelper file to comply with naming conventions --- tests/e2e/api/{APIHelper.ts => apiHelper.ts} | 0 tests/e2e/api/apiUpload.ts | 2 +- tests/e2e/hooks.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename tests/e2e/api/{APIHelper.ts => apiHelper.ts} (100%) diff --git a/tests/e2e/api/APIHelper.ts b/tests/e2e/api/apiHelper.ts similarity index 100% rename from tests/e2e/api/APIHelper.ts rename to tests/e2e/api/apiHelper.ts diff --git a/tests/e2e/api/apiUpload.ts b/tests/e2e/api/apiUpload.ts index 72d7451f..3be9e42e 100644 --- a/tests/e2e/api/apiUpload.ts +++ b/tests/e2e/api/apiUpload.ts @@ -1,6 +1,6 @@ import fs from 'fs' import { config } from '../config.js' -import { sendRequest } from './APIHelper' +import { sendRequest } from './apiHelper' export const apiUpload = async function ({ filename }): Promise { const response = await sendRequest({ diff --git a/tests/e2e/hooks.ts b/tests/e2e/hooks.ts index f6d61d23..59d0028c 100644 --- a/tests/e2e/hooks.ts +++ b/tests/e2e/hooks.ts @@ -3,7 +3,7 @@ import { chromium } from '@playwright/test' import { xml2js } from 'xml-js' import { _ } from 'lodash' import { config } from './config.js' -import { sendRequest } from './api/APIHelper' +import { sendRequest } from './api/apiHelper' setDefaultTimeout(config.timeout * 1000) From b078fec10b95b41e50d7c31d07620d55b92bebc7 Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Wed, 14 Aug 2024 16:04:22 +0545 Subject: [PATCH 20/21] update wording of user story to match the user story given by project owner --- tests/e2e/features/dicomViewer.feature | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 00034f2e..1ada2950 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -1,7 +1,7 @@ Feature: Preview dicom image - As a user - I want to preview a DICOM file - so that I can preview DICOM image and its metadata + As a user who has a DICOM file + I want to preview the file + so that I can reassure that it contains the right image and check its metadata Scenario: user previews dicom image From af5f19a93b6bc00bf31f36cc2266960441ae793b Mon Sep 17 00:00:00 2001 From: Kathrin Koebel Date: Tue, 20 Aug 2024 10:59:15 +0545 Subject: [PATCH 21/21] Apply suggestions from code review Co-authored-by: Phil Davis --- tests/e2e/features/dicomViewer.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/features/dicomViewer.feature b/tests/e2e/features/dicomViewer.feature index 1ada2950..59517703 100644 --- a/tests/e2e/features/dicomViewer.feature +++ b/tests/e2e/features/dicomViewer.feature @@ -1,7 +1,7 @@ Feature: Preview dicom image As a user who has a DICOM file I want to preview the file - so that I can reassure that it contains the right image and check its metadata + so that I can assure myself that it contains the right image and check its metadata Scenario: user previews dicom image