From 55fe185c72500256452e25d2f2b17fc9faa99dff Mon Sep 17 00:00:00 2001 From: nithin-trenser <107548822+nithin-trenser@users.noreply.github.com> Date: Fri, 3 Jan 2025 21:27:25 +0530 Subject: [PATCH] feat: Implemented CSV support for Arrow annotation. (#4623) Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> --- .../ArrowAnnotate.ts | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts index bffba4a2a..edd57546c 100644 --- a/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts +++ b/extensions/cornerstone/src/utils/measurementServiceMappings/ArrowAnnotate.ts @@ -57,6 +57,7 @@ const Length = { const mappedAnnotations = getMappedAnnotations(annotation, displaySetService); const displayText = getDisplayText(mappedAnnotations, displaySet); + const getReport = () => _getReport(mappedAnnotations, points, FrameOfReferenceUID); return { uid: annotationUID, @@ -77,9 +78,7 @@ const Length = { displayText: displayText, data: data.cachedStats, type: getValueTypeFromToolType(toolName), - getReport: () => { - throw new Error('Not implemented'); - }, + getReport, }; }, }; @@ -145,4 +144,32 @@ function getDisplayText(mappedAnnotations, displaySet) { return displayText; } +function _getReport(mappedAnnotations, points, FrameOfReferenceUID) { + const columns = []; + const values = []; + + columns.push('AnnotationType'); + values.push('Cornerstone:ArrowAnnote'); + + mappedAnnotations.forEach(annotation => { + const { text } = annotation; + columns.push(`Text`); + values.push(text); + }); + + if (FrameOfReferenceUID) { + columns.push('FrameOfReferenceUID'); + values.push(FrameOfReferenceUID); + } + + if (points) { + columns.push('points'); + values.push(points.map(p => p.join(' ')).join(';')); + } + + return { + columns, + values, + }; +} export default Length;