diff --git a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts index 564dc52a5b2..e380810ced5 100644 --- a/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts +++ b/extensions/cornerstone-dicom-seg/src/getSopClassHandlerModule.ts @@ -2,6 +2,7 @@ import { utils } from '@ohif/core'; import { metaData, triggerEvent, eventTarget } from '@cornerstonejs/core'; import { CONSTANTS, segmentation as cstSegmentation } from '@cornerstonejs/tools'; import { adaptersSEG, Enums } from '@cornerstonejs/adapters'; +import { internal } from '@cornerstonejs/dicom-image-loader'; import { SOPClassHandlerId } from './id'; import { dicomlabToRGB } from './utils/dicomlabToRGB'; @@ -97,8 +98,10 @@ function _getDisplaySetsFromSeries( displaySet.referencedDisplaySetInstanceUID = referencedDisplaySet.displaySetInstanceUID; } + const codHeaders = internal.getCodHeaders(); + displaySet.load = async ({ headers }) => - await _load(displaySet, servicesManager, extensionManager, headers); + await _load(displaySet, servicesManager, extensionManager, { ...headers, ...codHeaders }); return [displaySet]; } diff --git a/extensions/cornerstone/src/components/OPFSManagementTool/OPFSManagementTool.tsx b/extensions/cornerstone/src/components/OPFSManagementTool/OPFSManagementTool.tsx index 4eb0d6fcce4..d6c4adb92c5 100644 --- a/extensions/cornerstone/src/components/OPFSManagementTool/OPFSManagementTool.tsx +++ b/extensions/cornerstone/src/components/OPFSManagementTool/OPFSManagementTool.tsx @@ -28,9 +28,12 @@ import { Study } from './types'; import { clearPreviousOPFSVersionData, deleteFoldersFromOPFS, + formatSize, getOPFSData, hybridGlobalFilter, + purgeOldFilesFromOPFS, } from './utils'; +import { OPFS_PURGE_METADATA } from './constants'; const columnHelper = createColumnHelper(); @@ -66,23 +69,21 @@ const columns: ColumnDef[] = [ variant="ghost" onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')} > - StudyInstanceUID - + StudyInstanceUID ); }, cell: ({ row }) =>
{row.getValue('study-uid')}
, }, - { - accessorKey: 'study-description', + columnHelper.accessor('study-description', { + accessorFn: row => row['study-description'] || '', header: ({ column }) => { return ( ); }, @@ -97,7 +98,7 @@ const columns: ColumnDef[] = [ ); }, - }, + }), columnHelper.accessor('study-modalities', { accessorFn: row => row['study-modalities'].sort().join(', '), header: ({ column }) => { @@ -106,8 +107,7 @@ const columns: ColumnDef[] = [ variant="ghost" onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')} > - Modalities - + Modalities ); }, @@ -126,18 +126,7 @@ const columns: ColumnDef[] = [ columnHelper.accessor('study-size', { accessorFn: row => { const size: number = row['study-size']; - const oneGB = 1024 * 1024 * 1024, - oneMB = 1024 * 1024, - oneKB = 1024; - - if (size >= oneGB) { - return `${(size / oneGB).toFixed(2)} GB`; - } else if (size >= oneMB) { - return `${(size / oneMB).toFixed(2)} MB`; - } else if (size >= oneKB) { - return `${(size / oneKB).toFixed(2)} KB`; - } - return `${size} bytes`; + return formatSize(size); }, sortingFn: (rowA, rowB, columnId) => { const sizeA = rowA.original[columnId]; @@ -157,27 +146,30 @@ const columns: ColumnDef[] = [ variant="ghost" onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')} > - Size - + Size ); }, cell: ({ row }) =>
{row.getValue('study-size')}
, }), columnHelper.accessor('study-last-modified', { - accessorFn: row => new Date(row['study-last-modified']).toGMTString(), + accessorFn: row => new Date(row['study-last-modified']), + sortingFn: 'datetime', header: ({ column }) => { return ( ); }, - cell: ({ row }) =>
{row.getValue('study-last-modified')}
, + cell: ({ row }) => { + const value: Date = row.getValue('study-last-modified'); + const formattedDate = value.toDateString() + ', ' + value.toLocaleTimeString(); + return
{formattedDate}
; + }, }), { id: 'actions', @@ -247,6 +239,7 @@ export default function OPFSManagementTool() { const refreshOPFSData = async () => { const fetchedData = await getOPFSData(); + table.toggleAllPageRowsSelected(false); setData(fetchedData); }; @@ -265,6 +258,19 @@ export default function OPFSManagementTool() { } }; + const purgeOldFiles = async (time: number) => { + await purgeOldFilesFromOPFS(time); + refreshOPFSData(); + }; + + const calculateTotalSize = (list: Study[]) => { + const totalSize = list.reduce((total, study) => { + return total + study['study-size']; + }, 0); + + return formatSize(totalSize); + }; + return (
@@ -300,6 +306,28 @@ export default function OPFSManagementTool() { > Debug Copy + + + + + + Files older than + {OPFS_PURGE_METADATA.map(option => ( + purgeOldFiles(option.time)} + > + {option.label} + + ))} + +
+
+ Total size: {calculateTotalSize(data)}