From d6904562de44978b913bf1c910e38b6b0123312f Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Tue, 24 Oct 2023 13:06:12 -0400 Subject: [PATCH] fix(sr): dcm4chee requires the patient name for an SR to match what is in the original study (#3739) --- extensions/cornerstone-dicom-sr/package.json | 2 +- .../src/viewports/OHIFCornerstoneSRViewport.tsx | 2 +- extensions/cornerstone/package.json | 2 +- extensions/default/package.json | 2 +- extensions/dicom-pdf/package.json | 2 +- extensions/dicom-video/package.json | 2 +- extensions/measurement-tracking/package.json | 2 +- extensions/test-extension/package.json | 2 +- extensions/tmtv/package.json | 2 +- platform/app/package.json | 2 +- platform/core/package.json | 2 +- .../docs/configuration/dataSources/dicom-json.md | 12 ++++++++++++ yarn.lock | 15 ++++++++++++++- 13 files changed, 37 insertions(+), 12 deletions(-) diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 3903c038de6..802b85f1ddd 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -36,7 +36,7 @@ "@ohif/extension-cornerstone": "3.8.0-beta.4", "@ohif/extension-measurement-tracking": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx index a1e728bdda7..0937ca1ff10 100644 --- a/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx +++ b/extensions/cornerstone-dicom-sr/src/viewports/OHIFCornerstoneSRViewport.tsx @@ -360,7 +360,7 @@ function OHIFCornerstoneSRViewport(props) { patientSex: PatientSex || '', patientAge: PatientAge || '', MRN: PatientID || '', - thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '', + thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '', spacing: SpacingBetweenSlices !== undefined ? `${SpacingBetweenSlices.toFixed(2)}mm` : '', scanner: ManufacturerModelName || '', diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 49e5984e26e..e9069fb742a 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -39,7 +39,7 @@ "@cornerstonejs/dicom-image-loader": "^1.20.3", "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.6", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.21", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/default/package.json b/extensions/default/package.json index 1f5b8537e47..bd586fca5a7 100644 --- a/extensions/default/package.json +++ b/extensions/default/package.json @@ -32,7 +32,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/i18n": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "prop-types": "^15.6.2", "react": "^17.0.2", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index 7a45b84deb1..7fde3bae11d 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/dicom-video/package.json b/extensions/dicom-video/package.json index ac478f1ff12..e8c156e08c3 100644 --- a/extensions/dicom-video/package.json +++ b/extensions/dicom-video/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index be7d9c1c75e..16e1ab05963 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -36,7 +36,7 @@ "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", "classnames": "^2.3.2", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "lodash.debounce": "^4.17.21", "prop-types": "^15.6.2", "react": "^17.0.2", diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index c52c06d5f93..cfdf08f8cc5 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "0.29.4", + "dcmjs": "0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/extensions/tmtv/package.json b/extensions/tmtv/package.json index 893e128fe1d..d72fce00f03 100644 --- a/extensions/tmtv/package.json +++ b/extensions/tmtv/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@ohif/core": "3.8.0-beta.4", "@ohif/ui": "3.8.0-beta.4", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", diff --git a/platform/app/package.json b/platform/app/package.json index f4912c1e874..6fec3ffe1de 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -72,7 +72,7 @@ "classnames": "^2.3.2", "core-js": "^3.16.1", "cornerstone-math": "^0.1.9", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "detect-gpu": "^4.0.16", "dicom-parser": "^1.8.9", "dotenv-webpack": "^1.7.0", diff --git a/platform/core/package.json b/platform/core/package.json index 64c00e484c8..c0a742f37b7 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -42,7 +42,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "dcmjs": "^0.29.5", + "dcmjs": "^0.29.11", "dicomweb-client": "^0.10.2", "gl-matrix": "^3.4.3", "isomorphic-base64": "^1.0.2", diff --git a/platform/docs/docs/configuration/dataSources/dicom-json.md b/platform/docs/docs/configuration/dataSources/dicom-json.md index 20b0036d057..37fbda55240 100644 --- a/platform/docs/docs/configuration/dataSources/dicom-json.md +++ b/platform/docs/docs/configuration/dataSources/dicom-json.md @@ -154,6 +154,18 @@ Your public folder should look like this: ![](../../assets/img/dicom-json-public.png) +:::tip +It is important to URL encode the `url` query parameter especially if the `url` +parameter itself also contains query parameters. So for example, + +`http://localhost:3000/viewer/dicomjson?url=http://localhost:3000/LIDC-IDRI-0001.json?key0=val0&key1=val1` + +should be... + +`http://localhost:3000/viewer/dicomjson?url=http://localhost:3000/LIDC-IDRI-0001.json?key0=val0%26key1=val1` + +Notice the ampersand (`&`) is encoded as `%26`. +::: :::note When hosting the DICOM JSON files, it is important to be aware that certain providers diff --git a/yarn.lock b/yarn.lock index af72256071b..9b8ad2e7f4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8436,7 +8436,20 @@ dcmjs@^0.27: loglevelnext "^3.0.1" ndarray "^1.0.19" -dcmjs@^0.29.5, dcmjs@^0.29.8: +dcmjs@^0.29.11: + version "0.29.11" + resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.11.tgz#82e19d7c5212218c3225f8022ce97b0102ed3cc8" + integrity sha512-B5fO5D+USzfnuUG7ephnaKMluqBOP4qcckV2LgROXvn0hmWc53Gs2YzlokjcYcDeBAXNfssOOhDekUc+AduwkQ== + dependencies: + "@babel/runtime-corejs3" "^7.22.5" + adm-zip "^0.5.10" + gl-matrix "^3.1.0" + lodash.clonedeep "^4.5.0" + loglevelnext "^3.0.1" + ndarray "^1.0.19" + pako "^2.0.4" + +dcmjs@^0.29.8: version "0.29.8" resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.8.tgz#3daa5224f8e75b2e5b069590bef26a272741fa44" integrity sha512-Y0/KZAmT1siVo7eH3KK4ZflEbNi61soUpD0N7lsXMVVJQ6IZkHlaSzb9DtqnEpMs7RJDfvZGr1uXpv1vBBIypQ==