import { type Types as CSTypes } from '@cornerstonejs/core'; import type { Types } from '@cornerstonejs/tools'; import LabelData from './LabelData'; type Annotation = Types.Annotation; type SpatialCoordinatesState = { description?: string; sopInstanceUid?: string; annotation: Annotation; finding?: unknown; findingSites?: unknown; commentGroup?: any; commentPositionGroup?: any; }; type ScoordType = { GraphicData: number[]; }; type SetupMeasurementData = { defaultState: SpatialCoordinatesState; state?: SpatialCoordinatesState; is3DMeasurement?: boolean; scoord?: ScoordType; worldCoords?: CSTypes.Point3[]; scoordArgs?: { referencedImageId: string; is3DMeasurement: boolean; }; NUMGroup: { MeasuredValueSequence: { MeasurementUnitsCodeSequence: { CodeValue: string; }; NumericValue: number; }; }; SCOORDGroup?: ScoordType; ReferencedSOPSequence?: Record; ReferencedSOPInstanceUID?: string; referencedImageId?: string; textBoxPosition?: ScoordType; ReferencedFrameNumber?: string; SCOORD3DGroup?: ScoordType; FrameOfReferenceUID?: string; }; type SpatialCoordinatesData = Omit & { state: SpatialCoordinatesState; }; export type AdapterOptions = { parentType?: string; replace?: boolean | ((original: MeasurementAdapter) => void); }; export interface MeasurementAdapter { toolType: string; TID300Representation: any; trackingIdentifierTextValue: string; trackingIdentifiers: Set; parentType: string; init(toolType: string, representation: any, options?: AdapterOptions): any; getMeasurementData(measurementGroup: any, sopInstanceUIDToImageIdMap: any, metadata: any, trackingIdentifier: string): any; isValidCornerstoneTrackingIdentifier(trackingIdentifier: string): boolean; isValidMeasurement(measurementGroup: any): boolean; getTID300RepresentationArguments(tool: any, is3DMeasurement: any): Record; } export default class MeasurementReport { static CORNERSTONE_3D_TAG: string; static measurementAdapterByToolType: Map; static measurementAdaptersByType: Map; static measurementAdapterByTrackingIdentifier: Map; static getTID300ContentItem(tool: any, ReferencedSOPSequence: any, toolClass: any, is3DMeasurement: any): LabelData; static codeValueMatch: (group: any, code: any, oldCode?: any) => boolean; static getMeasurementGroup(toolType: any, toolData: any, ReferencedSOPSequence: any, is3DMeasurement: any): any; static getCornerstoneLabelFromDefaultState(defaultState: any): any; static generateDatasetMeta(): { FileMetaInformationVersion: { Value: ArrayBufferLike[]; vr: string; }; TransferSyntaxUID: { Value: string[]; vr: string; }; ImplementationClassUID: { Value: string[]; vr: string; }; ImplementationVersionName: { Value: string[]; vr: string; }; }; static generateDerivationSourceDataset: (instance: any) => { StudyInstanceUID?: string; SeriesInstanceUID?: string; SeriesDescription?: string; SeriesNumber?: number | string; SeriesDate?: string; SeriesTime?: string; Modality?: string; SOPInstanceUID?: string; SOPClassUID?: string; InstanceNumber?: string | number; FrameOfReferenceUID?: string; PerFrameFunctionalGroupsSequence?: CSTypes.FunctionalGroups[]; SharedFunctionalGroupsSequence?: CSTypes.FunctionalGroups; _meta: any; _vrMap: any; }; static processSCOORDGroup({ SCOORDGroup, toolType, sopInstanceUIDToImageIdMap, metadata, }: { SCOORDGroup: any; toolType: any; sopInstanceUIDToImageIdMap: any; metadata: any; }): { SCOORDGroup: any; ReferencedSOPSequence: any; ReferencedSOPInstanceUID: any; ReferencedFrameNumber: any; referencedImageId: any; state: { description: any; sopInstanceUid: any; annotation: { data: { annotationUID: any; cachedStats: {}; handles: { activeHandleIndex: number; textBox: { hasMoved: boolean; }; }; }; annotationUID: any; metadata: { toolName: any; referencedImageId: any; FrameOfReferenceUID: any; }; }; }; }; static processSCOORD3DGroup({ SCOORD3DGroup, toolType, }: { SCOORD3DGroup: any; toolType: any; }): SpatialCoordinatesData; static getSpatialCoordinatesState({ NUMGroup, sopInstanceUIDToImageIdMap, metadata, toolType, }: { NUMGroup: any; sopInstanceUIDToImageIdMap: any; metadata: any; toolType: any; }): SpatialCoordinatesData; static processSpatialCoordinatesGroup({ NUMGroup, sopInstanceUIDToImageIdMap, metadata, findingGroup, findingSiteGroups, commentGroup, commentPositionGroup, controlPointsGroup, toolType, }: { NUMGroup: any; sopInstanceUIDToImageIdMap: any; metadata: any; findingGroup: any; findingSiteGroups: any; commentGroup: any; commentPositionGroup: any; controlPointsGroup: any; toolType: any; }): { defaultState: SpatialCoordinatesState; state: SpatialCoordinatesState; NUMGroup: any; scoord: ScoordType; SCOORDGroup: ScoordType; ReferencedSOPSequence: Record; ReferencedSOPInstanceUID: string; referencedImageId: string; textBoxPosition: ScoordType; ReferencedFrameNumber: string; SCOORD3DGroup: ScoordType; FrameOfReferenceUID: string; }; static getSetupMeasurementData(MeasurementGroup: any, sopInstanceUIDToImageIdMap: any, metadata: any, toolType: any): SetupMeasurementData; static generateReferencedSOPSequence({ toolData, toolTypes, metadataProvider, imageId, sopInstanceUIDsToSeriesInstanceUIDMap, derivationSourceDatasets, }: { toolData: any; toolTypes: any; metadataProvider: any; imageId: any; sopInstanceUIDsToSeriesInstanceUIDMap: any; derivationSourceDatasets: any; }): { ReferencedSOPClassUID: any; ReferencedSOPInstanceUID: any; ReferencedFrameNumber: any; }; static getImageIdFromVolume({ toolData, toolTypes }: { toolData: any; toolTypes: any; }): string; static generateReport(toolState: any, metadataProvider: any, options: any): any; static generateToolState(dataset: any, sopInstanceUIDToImageIdMap: any, metadata: any, hooks: any): {}; static registerTool(toolAdapter: MeasurementAdapter, replace?: boolean | ((original: any) => void)): void; static registerTrackingIdentifier(toolClass: any, ...trackingIdentifiers: string[]): void; static getAdapterForTrackingIdentifier(trackingIdentifier: string): MeasurementAdapter; static getAdapterForCodeType(measurementGroup: any): MeasurementAdapter; static registerAdapterTypes(adapter: any, ...types: any[]): void; static getAdaptersForTypes(graphicCode: string, graphicType: string, pointCount: number): any[]; } export {};