From 5c7134efd841c7b25d38c0c4c34b5e5dca52bc3a Mon Sep 17 00:00:00 2001 From: Nick Portokallidis Date: Thu, 26 Feb 2026 13:27:46 +0200 Subject: [PATCH 1/2] feat(dicom): add DICOM viewer and entity management - Implemented DICOM viewer with frame navigation and window presets. - Created DicomEntity model to manage DICOM file properties and metadata. - Added DicomEntityMixin for handling multiple DICOM files and lifecycle management. - Introduced HtxDicom component for rendering DICOM images using Konva. - Added styles for DICOM viewer controls and loading states. - Registered DICOM model and viewer in the application registry. --- .../dicom-annotation/config.yml | 39 ++ .../dicom-segmentation/config.yml | 37 ++ label_studio/core/settings/base.py | 2 + web/libs/editor/package.json | 2 + .../editor/src/regions/DicomBrushRegion.js | 105 +++ .../editor/src/regions/DicomPolygonRegion.js | 123 ++++ .../src/regions/DicomRectangleRegion.js | 74 +++ web/libs/editor/src/regions/DicomRegion.js | 369 +++++++++++ web/libs/editor/src/regions/index.js | 15 + .../src/tags/control/DicomBrushLabels.jsx | 64 ++ .../src/tags/control/DicomPolygonLabels.jsx | 66 ++ .../src/tags/control/DicomRectangleLabels.jsx | 64 ++ web/libs/editor/src/tags/control/index.js | 9 + .../editor/src/tags/object/Dicom/Dicom.js | 626 ++++++++++++++++++ .../editor/src/tags/object/Dicom/Dicom.scss | 213 ++++++ .../src/tags/object/Dicom/DicomEntity.js | 237 +++++++ .../src/tags/object/Dicom/DicomEntityMixin.js | 167 +++++ .../editor/src/tags/object/Dicom/HtxDicom.jsx | 438 ++++++++++++ .../editor/src/tags/object/Dicom/index.js | 12 + web/libs/editor/src/tags/object/index.js | 2 + 20 files changed, 2664 insertions(+) create mode 100644 label_studio/annotation_templates/computer-vision/dicom-annotation/config.yml create mode 100644 label_studio/annotation_templates/computer-vision/dicom-segmentation/config.yml create mode 100644 web/libs/editor/src/regions/DicomBrushRegion.js create mode 100644 web/libs/editor/src/regions/DicomPolygonRegion.js create mode 100644 web/libs/editor/src/regions/DicomRectangleRegion.js create mode 100644 web/libs/editor/src/regions/DicomRegion.js create mode 100644 web/libs/editor/src/tags/control/DicomBrushLabels.jsx create mode 100644 web/libs/editor/src/tags/control/DicomPolygonLabels.jsx create mode 100644 web/libs/editor/src/tags/control/DicomRectangleLabels.jsx create mode 100644 web/libs/editor/src/tags/object/Dicom/Dicom.js create mode 100644 web/libs/editor/src/tags/object/Dicom/Dicom.scss create mode 100644 web/libs/editor/src/tags/object/Dicom/DicomEntity.js create mode 100644 web/libs/editor/src/tags/object/Dicom/DicomEntityMixin.js create mode 100644 web/libs/editor/src/tags/object/Dicom/HtxDicom.jsx create mode 100644 web/libs/editor/src/tags/object/Dicom/index.js diff --git a/label_studio/annotation_templates/computer-vision/dicom-annotation/config.yml b/label_studio/annotation_templates/computer-vision/dicom-annotation/config.yml new file mode 100644 index 000000000000..5137486db7d3 --- /dev/null +++ b/label_studio/annotation_templates/computer-vision/dicom-annotation/config.yml @@ -0,0 +1,39 @@ +title: DICOM Medical Image Annotation +type: community +group: Computer Vision +image: /static/templates/dicom-annotation.png +details: | +

Annotate DICOM medical images with multi-frame support

+
+
Industry Applications
+
radiology, pathology, oncology, diagnostic imaging, medical diagnosis, clinical decision support, medical AI, healthcare AI, CT scan, MRI, X-ray, ultrasound, mammography, PET scan, nuclear medicine, interventional radiology, cardiac imaging, neuroimaging, musculoskeletal imaging
+
Domain Terminology
+
DICOM, PACS, RIS, windowing, window level, window width, Hounsfield units, slice thickness, multi-planar reconstruction, segmentation, contouring, ROI, region of interest, lesion detection, tumor segmentation
+
Regulatory
+
FDA approval, medical device, clinical validation, HIPAA compliance, patient privacy, de-identification, anonymization
+
+config: | + +
+ + + + + + + + + + + + +