Compare commits

..
6 changed files with 206 additions and 5 deletions

No files matched your search

+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.3.2](https://github.com/OHIF/Viewers/compare/@ohif/extension-debugging@0.3.1...@ohif/extension-debugging@0.3.2) (2022-03-10)
**Note:** Version bump only for package @ohif/extension-debugging
## [0.3.1](https://github.com/OHIF/Viewers/compare/@ohif/extension-debugging@0.3.0...@ohif/extension-debugging@0.3.1) (2021-12-02)
**Note:** Version bump only for package @ohif/extension-debugging
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-debugging",
"version": "0.3.1",
"version": "0.3.2",
"description": "OHIF extension for debugging.",
"author": "OHIF",
"license": "MIT",
@@ -24,3 +24,21 @@
overflow: scroll;
max-height: 300px;
}
.debug-overflowText {
margin: 0 auto;
max-width: 300px;
overflow-wrap: break-word;
word-wrap: break-word;
hyphens: auto;
}
.debug-overflowText-border {
margin: 0 auto;
max-width: 300px;
border: solid 2px #ccc;
padding: 12px;
overflow-wrap: break-word;
word-wrap: break-word;
hyphens: auto;
}
+169 -2
View File
@@ -2,6 +2,8 @@ import React from 'react';
import { detect } from 'detect-browser';
import './DebugReportModal.css';
import { ToolbarButton } from '@ohif/ui';
import { utils } from '@ohif/core';
const { studyMetadataManager } = utils;
const DubugReportModal = ({
viewports,
@@ -70,7 +72,7 @@ const DubugReportModal = ({
body += '== Viewport Layout ==\n';
body += `Rows\t${numRows}\n`;
body += `Columns\t${numColumns}\n\n`;
body += '== Viewports ==\n';
body += '== SeriesInstanceUIDs ==\n';
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const vsd = viewportSpecificData[viewportIndex];
@@ -83,6 +85,40 @@ const DubugReportModal = ({
body += `[${row},${column}]\t${vsd.SeriesInstanceUID}\n`;
});
body += '== ReferencedSEGSeriesInstanceUIDs ==\n';
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'SEG');
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
body += `[${row},${column}]\t${referencedDisplaySetsRef}\n`;
});
body += '== ReferencedRTSTRUCTSeriesInstanceUIDs ==\n';
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'RTSTRUCT');
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
body += `[${row},${column}]\t${referencedDisplaySetsRef}\n`;
});
return body;
};
@@ -171,7 +207,7 @@ const getCurrentStudyUrl = () => {
</tr>
<tr>
<td>URL</td>
<td>{window.location.href}</td>
<td className="debug-overflowText">{window.location.href}</td>
</tr>
</React.Fragment>
);
@@ -222,6 +258,14 @@ const getLayout = viewports => {
<th>SeriesInstanceUIDs</th>
</tr>
{getSeriesInstanceUIDsPerRow(viewports)}
<tr>
<th>ReferencedSEGSeriesInstanceUIDs</th>
</tr>
{getReferencedSEGSeriesInstanceUIDsPerRow(viewports)}
<tr>
<th>ReferencedRTSTRUCTSeriesInstanceUIDs</th>
</tr>
{getReferencedRTSTRUCTSeriesInstanceUIDsPerRow(viewports)}
</React.Fragment>
);
};
@@ -256,6 +300,129 @@ const getBrowserInfo = () => {
);
};
/**
* Returns DisplaySets that reference the target series, sorted by dateTime
*
* @param {string} StudyInstanceUID
* @param {string} SeriesInstanceUID
* @returns Array
*/
const _getReferencedDisplaysets = (
StudyInstanceUID,
SeriesInstanceUID,
Modality
) => {
/* Referenced DisplaySets */
const studyMetadata = studyMetadataManager.get(StudyInstanceUID);
const referencedDisplaysets = studyMetadata.getDerivedDatasets({
referencedSeriesInstanceUID: SeriesInstanceUID,
Modality,
});
/* Sort */
referencedDisplaysets.sort((a, b) => {
const aNumber = Number(`${a.SeriesDate}${a.SeriesTime}`);
const bNumber = Number(`${b.SeriesDate}${b.SeriesTime}`);
return bNumber - aNumber;
});
return referencedDisplaysets;
};
const _getReferencedSeriesInstanceUIDsString = (displaySet, Modality) => {
const referencedDisplaySets = _getReferencedDisplaysets(
displaySet.StudyInstanceUID,
displaySet.SeriesInstanceUID,
Modality
);
let referencedDisplaySetsRef = 'None';
const referencedDisplaySetsCount = referencedDisplaySets.length;
if (referencedDisplaySetsCount !== 0) {
referencedDisplaySetsRef = '';
for (let i = 0; i < referencedDisplaySetsCount - 1; i++) {
referencedDisplaySetsRef +=
referencedDisplaySets[i].SeriesInstanceUID + ', ';
}
referencedDisplaySetsRef +=
referencedDisplaySets[referencedDisplaySetsCount - 1].SeriesInstanceUID;
}
return [referencedDisplaySetsRef, referencedDisplaySetsCount];
};
const getReferencedSEGSeriesInstanceUIDsPerRow = viewports => {
const { viewportSpecificData, numColumns } = viewports;
// NOTE viewportSpecificData is actually an object with numerical keys.
return Object.keys(viewportSpecificData).map(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'SEG');
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
if (referencedDisplaySetsCount > 1) {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText-border">
{referencedDisplaySetsRef}
</td>
</tr>
);
} else {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText">{referencedDisplaySetsRef}</td>
</tr>
);
}
});
};
const getReferencedRTSTRUCTSeriesInstanceUIDsPerRow = viewports => {
const { viewportSpecificData, numColumns } = viewports;
// NOTE viewportSpecificData is actually an object with numerical keys.
return Object.keys(viewportSpecificData).map(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'RTSTRUCT');
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
if (referencedDisplaySetsCount > 1) {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText-border">
{referencedDisplaySetsRef}
</td>
</tr>
);
} else {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText">{referencedDisplaySetsRef}</td>
</tr>
);
}
});
};
const getSeriesInstanceUIDsPerRow = viewports => {
const { viewportSpecificData, numColumns } = viewports;
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [4.12.19](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.18...@ohif/viewer@4.12.19) (2022-03-10)
**Note:** Version bump only for package @ohif/viewer
## [4.12.18](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.17...@ohif/viewer@4.12.18) (2022-02-15)
**Note:** Version bump only for package @ohif/viewer
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/viewer",
"version": "4.12.18",
"version": "4.12.19",
"description": "OHIF Viewer",
"author": "OHIF Contributors",
"license": "MIT",
@@ -49,7 +49,7 @@
"@babel/runtime": "^7.5.5",
"@ohif/core": "^2.16.12",
"@ohif/extension-cornerstone": "^2.12.7",
"@ohif/extension-debugging": "^0.3.1",
"@ohif/extension-debugging": "^0.3.2",
"@ohif/extension-dicom-html": "^1.3.18",
"@ohif/extension-dicom-microscopy": "^0.52.0",
"@ohif/extension-dicom-pdf": "^1.1.2",