All files / extensions/default/src/utils promptLabelAnnotation.js

0% Statements 0/14
0% Branches 0/2
0% Functions 0/3
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48                                                                                               
import { callInputDialogAutoComplete } from './callInputDialog';
 
function promptLabelAnnotation({ servicesManager }, ctx, evt) {
  const { measurementService, customizationService, toolGroupService, uiDialogService } =
    servicesManager.services;
  const { viewportId, StudyInstanceUID, SeriesInstanceUID, measurementId, toolName } = evt;
  return new Promise(resolve => {
    (async () => {
      const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
      const activeToolOptions = toolGroup.getToolConfiguration(toolName);
      if (activeToolOptions.getTextCallback) {
        resolve({
          StudyInstanceUID,
          SeriesInstanceUID,
          viewportId,
        });
      } else {
        const labelConfig = customizationService.getCustomization('measurementLabels');
        const measurement = measurementService.getMeasurement(measurementId);
        const renderContent = customizationService.getCustomization('ui.labellingComponent');
 
        const value = await callInputDialogAutoComplete({
          measurement,
          uiDialogService,
          labelConfig,
          renderContent,
        });
 
        measurementService.update(
          measurementId,
          {
            ...value,
          },
          true
        );
 
        resolve({
          StudyInstanceUID,
          SeriesInstanceUID,
          viewportId,
        });
      }
    })();
  });
}
 
export default promptLabelAnnotation;