Skip to content

Commit

Permalink
Fixes (#323)
Browse files Browse the repository at this point in the history
* fix: pdf

* fixed multiframe and DSA

* fixed larvitar final

* final checks: removed logs and restored imports

* dsa removed logs

* Update docs

* Update docs

* Update docs

---------

Co-authored-by: daron1337 <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
3 people authored Mar 12, 2024
1 parent 2355f29 commit f0a03b8
Show file tree
Hide file tree
Showing 19 changed files with 50 additions and 38 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@

## Dicom Image Toolkit for CornerstoneJS

### Current version: 2.4.7
### Current version: 2.4.8

### Latest Published Release: 2.4.7
### Latest Published Release: 2.4.8

This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornerstone-js environment.

Expand Down
2 changes: 1 addition & 1 deletion dist/larvitar.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/larvitar.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/documentation/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ <h3> </h3>
<h1 id="larvitar">Larvitar</h1>
<p><a href="https://github.com/dvisionlab/Larvitar"><img src="https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&amp;prefix=%E2%89%A5&amp;suffix=%25&amp;query=$.typeCoverage.atLeast&amp;uri=https%3A%2F%2Fraw.githubusercontent.com%2Fplantain-00%2Ftype-coverage%2Fmaster%2Fpackage.json" alt="type-coverage"></a></p>
<h2 id="dicom-image-toolkit-for-cornerstonejs">Dicom Image Toolkit for CornerstoneJS</h2>
<h3 id="current-version%3A-2.4.7">Current version: 2.4.7</h3>
<h3 id="latest-published-release%3A-2.4.7">Latest Published Release: 2.4.7</h3>
<h3 id="current-version%3A-2.4.8">Current version: 2.4.8</h3>
<h3 id="latest-published-release%3A-2.4.8">Latest Published Release: 2.4.8</h3>
<p>This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornerstone-js environment.</p>
<h2 id="features%3A">Features:</h2>
<ul>
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/larvitar.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion imaging/MetaDataTypes.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,7 @@ export type MetaDataTypes = {
x00181160?: string;
x00181161?: string;
x00181162?: number;
x00181164?: number;
x00181164?: [number, number];
x00181166?: string;
x00181170?: number;
x00181180?: string;
Expand Down
9 changes: 7 additions & 2 deletions imaging/imageParsing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,9 @@ const parseFile = function (file: File) {
metadata["x00186011"]![0].x0018602e * 10, //so that from cm goes to mm
metadata["x00186011"]![0].x0018602c * 10
] as [number, number])
: metadata.x00280030;
: metadata.x00181164
? metadata.x00181164
: [1, 1];
let imageOrientation = metadata["x00200037"];
let imagePosition = metadata["x00200032"];
let sliceThickness = metadata["x00180050"];
Expand Down Expand Up @@ -408,7 +410,10 @@ const parseFile = function (file: File) {
.toLowerCase();
imageObject.metadata.intercept = metadata["x00281052"];
imageObject.metadata.slope = metadata["x00281053"];
imageObject.metadata.pixelSpacing = pixelSpacing;
imageObject.metadata.pixelSpacing = pixelSpacing as [
number,
number
];
imageObject.metadata.sliceThickness = sliceThickness;
imageObject.metadata.imageOrientation = imageOrientation;
imageObject.metadata.imagePosition = imagePosition;
Expand Down
5 changes: 4 additions & 1 deletion imaging/imageRendering.ts
Original file line number Diff line number Diff line change
Expand Up @@ -634,8 +634,11 @@ export const updateImage = async function (
isDSAEnabled === true
? series.dsa!.imageIds[imageIndex]
: series.imageIds[imageIndex];

//check if it is a metadata-only object
if (series.instances[imageId].metadata.pixelDataLength != 0) {
if (
series.instances[series.imageIds[imageIndex]].metadata.pixelDataLength != 0
) {
if (isDSAEnabled === true) {
// get the optional custom pixel shift
const pixelShift = store.get(["viewports", id, "pixelShift"]);
Expand Down
2 changes: 2 additions & 0 deletions imaging/loaders/dicomLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,14 @@ export const loadAndCacheDsaImageStack = async function (
reject();
return;
}

if (seriesData.dsa.imageIds.length > 0) {
const dsaPromises: Promise<cornerstone.Image>[] =
seriesData.dsa.imageIds.map(imageId => {
if (forceRecache) {
cornerstone.imageCache.removeImageLoadObject(imageId);
}

return cornerstone.loadAndCacheImage(imageId);
});
Promise.all(dsaPromises).then(() => {
Expand Down
2 changes: 2 additions & 0 deletions imaging/loaders/dsaImageLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export const loadDsaImage: ImageLoader = function (imageId: string): any {
const srcImage: Image = find(cornerstone.imageCache.cachedImages, {
imageId: multiFrameSerie.imageIds[index]
}).image;

console.debug(`Load DSA Image with custom loader for imageId: ${imageId}`);
return createCustomImage(imageId, srcImage, pixelData);
} else {
Expand Down Expand Up @@ -165,6 +166,7 @@ let createCustomImage = function (
rowPixelSpacing: srcImage.rowPixelSpacing,
sizeInBytes: srcImage.sizeInBytes
};

resolve(image as Image);
});

Expand Down
4 changes: 3 additions & 1 deletion imaging/loaders/multiframeLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,9 @@ let createCustomImage = function (
metadata["x00186011"]![0].x0018602e * 10, //so that from cm goes to mm
metadata["x00186011"]![0].x0018602c * 10
] as [number, number])
: metadata.x00280030;
: metadata.x00181164
? metadata.x00181164
: [1, 1];
let rescaleIntercept = metadata.x00281052;
let rescaleSlope = metadata.x00281053;
let windowCenter = metadata.x00281050;
Expand Down
4 changes: 3 additions & 1 deletion imaging/loaders/nrrdLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,9 @@ let createCustomImage = function (
metadata["x00186011"]![0].x0018602e * 10, //so that from cm goes to mm
metadata["x00186011"]![0].x0018602c * 10
] as [number, number])
: metadata.x00280030;
: metadata.x00181164
? metadata.x00181164
: [1, 1];
let rescaleIntercept = metadata.x00281052;
let rescaleSlope = metadata.x00281053;
let windowCenter = metadata.x00281050;
Expand Down
4 changes: 3 additions & 1 deletion imaging/loaders/resliceLoader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ let createCustomImage = function (
metadata["x00186011"]![0].x0018602e * 10, //so that from cm goes to mm
metadata["x00186011"]![0].x0018602c * 10
] as [number, number])
: metadata.x00280030;
: metadata.x00181164
? metadata.x00181164
: [1, 1];
let rescaleIntercept = metadata.x00281052;
let rescaleSlope = metadata.x00281053;
let windowCenter = metadata.x00281050;
Expand Down
4 changes: 3 additions & 1 deletion imaging/tools/custom/EllipticalRoiUSTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,9 @@ export default class EllipticalRoiTool extends BaseAnnotationTool {
const hasPixelSpacing: boolean =
rowPixelSpacing != undefined &&
rowPixelSpacing != 0 &&
colPixelSpacing != 0 &&
rowPixelSpacing != 1;
colPixelSpacing != 0 &&
colPixelSpacing != 1 &&
colPixelSpacing != undefined;

draw(context, (context: CanvasRenderingContext2D) => {
Expand Down
4 changes: 3 additions & 1 deletion imaging/tools/custom/FreehandRoiUSTool.js
Original file line number Diff line number Diff line change
Expand Up @@ -550,8 +550,10 @@ export default class FreehandRoiTool extends BaseAnnotationTool {
if (
rowPixelSpacing === undefined ||
rowPixelSpacing === 0 ||
rowPixelSpacing === 1 ||
colPixelSpacing === undefined ||
colPixelSpacing === 0
colPixelSpacing === 0 ||
colPixelSpacing === 1
) {
suffix = ` pixels${String.fromCharCode(178)}`;
}
Expand Down
14 changes: 5 additions & 9 deletions imaging/tools/custom/LengthUSTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,12 +272,7 @@ export default class LengthTool extends BaseAnnotationTool {
}
}

const text = textBoxText(
data,
rowPixelSpacing,
colPixelSpacing,
this.modality
);
const text = textBoxText(data, rowPixelSpacing, colPixelSpacing);

drawLinkedTextBox(
context,
Expand All @@ -298,8 +293,7 @@ export default class LengthTool extends BaseAnnotationTool {
function textBoxText(
annotation: MeasurementData,
rowPixelSpacing: number,
colPixelSpacing: number,
modality: string
colPixelSpacing: number
) {
const measuredValue = _sanitizeMeasuredValue(annotation.length!);

Expand All @@ -313,8 +307,10 @@ export default class LengthTool extends BaseAnnotationTool {
if (
rowPixelSpacing === undefined ||
rowPixelSpacing === 0 ||
rowPixelSpacing === 1 ||
colPixelSpacing === undefined ||
colPixelSpacing === 0
colPixelSpacing === 0 ||
colPixelSpacing === 1
) {
suffix = "pixels";
}
Expand Down
4 changes: 3 additions & 1 deletion imaging/tools/custom/RectangleRoiUSTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ export default class RectangleRoiTool extends BaseAnnotationTool {
const hasPixelSpacing: boolean =
rowPixelSpacing != undefined &&
rowPixelSpacing != 0 &&
colPixelSpacing != 0 &&
rowPixelSpacing != 1;
colPixelSpacing != 0 &&
colPixelSpacing != 1 &&
colPixelSpacing != undefined;

draw(context, (context: CanvasRenderingContext2D) => {
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"medical",
"cornerstone"
],
"version": "2.4.7",
"version": "2.4.8",
"description": "typescript library for parsing, loading, rendering and interacting with DICOM images",
"repository": {
"url": "https://github.com/dvisionlab/Larvitar.git",
Expand Down Expand Up @@ -50,7 +50,7 @@
"lodash": "^4.17.15",
"pako": "^1.0.10",
"papaparse": "^5.3.0",
"pdfjs-dist": "=3.8.162",
"pdfjs-dist": "3.11.174",
"plotly.js-dist-min": "^2.27.1",
"uuid": "^8.3.2"
},
Expand Down
12 changes: 2 additions & 10 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3088,22 +3088,14 @@ path2d-polyfill@^2.0.1:
resolved "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz"
integrity sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==

pdfjs-dist@*:
pdfjs-dist@*, [email protected]:
version "3.11.174"
resolved "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz"
resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz#5ff47b80f2d58c8dd0d74f615e7c6a7e7e704c4b"
integrity sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==
optionalDependencies:
canvas "^2.11.2"
path2d-polyfill "^2.0.1"

pdfjs-dist@=3.8.162:
version "3.8.162"
resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-3.8.162.tgz#aff9026aa7fc0dffd62fba1111b64207f861343d"
integrity sha512-Do0Lpuk1ItcNnIPr9MM+/jnnMOb4i6asRX7gVnL6fFUW1QPC7ERfHQkbhF7jkAri1o6GxttX0Yn7ZhOmpFUeGA==
optionalDependencies:
canvas "^2.11.2"
path2d-polyfill "^2.0.1"

picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
Expand Down

0 comments on commit f0a03b8

Please sign in to comment.