64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
import SUPPORTED_TOOLS from './constants/supportedTools';
|
|
import { getSOPInstanceAttributes } from '@ohif/extension-cornerstone';
|
|
|
|
const RectangleROIStartEndThreshold = {
|
|
toAnnotation: (measurement, definition) => {},
|
|
|
|
/**
|
|
* Maps cornerstone annotation event data to measurement service format.
|
|
*
|
|
* @param {Object} cornerstone Cornerstone event data
|
|
* @return {Measurement} Measurement instance
|
|
*/
|
|
toMeasurement: (csToolsEventDetail, displaySetService, cornerstoneViewportService) => {
|
|
const { annotation, viewportId } = csToolsEventDetail;
|
|
const { metadata, data, annotationUID } = annotation;
|
|
|
|
if (!metadata || !data) {
|
|
console.warn('Length tool: Missing metadata or data');
|
|
return null;
|
|
}
|
|
|
|
const { toolName, referencedImageId, FrameOfReferenceUID } = metadata;
|
|
const validToolType = SUPPORTED_TOOLS.includes(toolName);
|
|
|
|
if (!validToolType) {
|
|
throw new Error('Tool not supported');
|
|
}
|
|
|
|
const { SOPInstanceUID, SeriesInstanceUID, StudyInstanceUID } = getSOPInstanceAttributes(
|
|
referencedImageId,
|
|
cornerstoneViewportService,
|
|
viewportId
|
|
);
|
|
|
|
let displaySet;
|
|
|
|
if (SOPInstanceUID) {
|
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
|
SOPInstanceUID,
|
|
SeriesInstanceUID
|
|
);
|
|
} else {
|
|
displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
|
}
|
|
|
|
return {
|
|
uid: annotationUID,
|
|
SOPInstanceUID,
|
|
FrameOfReferenceUID,
|
|
// points,
|
|
metadata,
|
|
referenceSeriesUID: SeriesInstanceUID,
|
|
referenceStudyUID: StudyInstanceUID,
|
|
toolName: metadata.toolName,
|
|
displaySetInstanceUID: displaySet.displaySetInstanceUID,
|
|
label: metadata.label,
|
|
data: data.cachedStats,
|
|
type: 'RectangleROIStartEndThreshold',
|
|
};
|
|
},
|
|
};
|
|
|
|
export default RectangleROIStartEndThreshold;
|