28 lines
882 B
TypeScript
28 lines
882 B
TypeScript
const getTMTVModalityUnit = async (page, attempts = 20) => {
|
|
for (let i = 0; i < attempts; i++) {
|
|
try {
|
|
const modalityUnit = await page.evaluate(
|
|
({ cornerstoneTools }: AppTypes.Test) => {
|
|
const annotations = cornerstoneTools.annotation.state.getAllAnnotations();
|
|
const stats = annotations[0].data.cachedStats;
|
|
const targetIds = Object.keys(stats);
|
|
const targetStats = stats[targetIds[1]];
|
|
return targetStats.modalityUnit;
|
|
},
|
|
await page.evaluateHandle('window')
|
|
);
|
|
|
|
if (modalityUnit) {
|
|
return modalityUnit;
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to get modalityUnit', error);
|
|
}
|
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
}
|
|
|
|
throw new Error('Failed to get modalityUnit after multiple attempts');
|
|
};
|
|
|
|
export { getTMTVModalityUnit };
|