Skip to content
Guides5 min read

Annotazione di immagini mediche con Potato

Buone pratiche per annotare immagini mediche in Potato: visualizzazione DICOM, etichettatura di referti radiologici, estrazione di eventi avversi e deployment self-hosted conforme all'IRB.

Potato Team

Puoi usare l'annotazione di immagini di Potato per immagini mediche come radiografie, fotografie di lesioni cutanee o altre immagini cliniche, purché siano in un formato standard tipo PNG o JPG. Questa guida spiega come impostare bene un progetto del genere.

Per i meccanismi di base dell'annotazione di immagini, vedi la documentazione sorgente.

Prima di iniziare

Un progetto di annotazione medica porta con sé obblighi che con Potato non c'entrano nulla. Prima rimuovi tutte le PHI dalle immagini. Tieni i dati sull'infrastruttura sicura del tuo ente, sia per l'archiviazione sia per l'elaborazione. Filtra l'accesso degli annotatori attraverso il sistema di autenticazione che già usi. E coinvolgi presto l'IRB e i team che si occupano di conformità, così i requisiti istituzionali li rispetti invece di scoprirli dopo.

Una cosa da mettere in chiaro: Potato è uno strumento di annotazione, non una piattaforma di imaging medico. Non ha conformità HIPAA integrata, né un visualizzatore DICOM, né funzionalità specifiche per l'imaging. Queste cose si gestiscono a livello di infrastruttura.

Impostazione di base per l'annotazione di immagini mediche

Ecco come configurare Potato per immagini mediche in formato standard:

yaml
annotation_task_name: "Medical Image Annotation"
 
data_files:
  - path: data/medical_images.json
    type: json
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [bbox]
    name: lesions
    labels:
      - name: primary
        color: "#EF4444"
        description: "Primary finding"
 
      - name: secondary
        color: "#F97316"
        description: "Secondary finding"
 
      - name: artifact
        color: "#6B7280"
        description: "Artifact or noise"
 
  - annotation_type: radio
    name: image_quality
    description: "Overall image quality?"
    labels:
      - name: diagnostic
        label: "Diagnostic Quality"
      - name: limited
        label: "Limited Quality"
      - name: non_diagnostic
        label: "Non-Diagnostic"

Annotazione di radiografie e foto cliniche

Per radiografie o fotografie cliniche esportate in formati immagine standard:

yaml
annotation_task_name: "X-Ray Findings Annotation"
 
data_files:
  - path: data/xray_images.json
    type: json
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: abnormalities
    labels:
      - name: opacity
        color: "#EF4444"
        description: "Pulmonary opacity"
 
      - name: consolidation
        color: "#F97316"
        description: "Consolidation"
 
      - name: nodule
        color: "#EAB308"
        description: "Pulmonary nodule"
 
      - name: effusion
        color: "#3B82F6"
        description: "Pleural effusion"
 
  - annotation_type: multiselect
    name: findings
    description: "Select all findings present"
    labels:
      - name: normal
        label: "No acute findings"
      - name: pneumonia
        label: "Pneumonia"
      - name: atelectasis
        label: "Atelectasis"
      - name: pneumothorax
        label: "Pneumothorax"
      - name: fracture
        label: "Fracture"

Annotazione di lesioni cutanee

Per le immagini dermatologiche:

yaml
annotation_task_name: "Dermoscopy Annotation"
 
data_files:
  - path: data/skin_lesions.json
    type: json
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: lesion_boundary
    labels:
      - name: lesion
        color: "#EF4444"
        description: "Lesion boundary"
 
  - annotation_type: multiselect
    name: dermoscopic_features
    description: "Select all features present"
    labels:
      - name: pigment_network
        label: "Pigment Network"
      - name: dots_globules
        label: "Dots/Globules"
      - name: streaks
        label: "Streaks"
      - name: blue_white_veil
        label: "Blue-White Veil"
      - name: regression
        label: "Regression Structures"
      - name: vascular
        label: "Vascular Structures"
 
  - annotation_type: radio
    name: diagnosis
    description: "Most likely diagnosis?"
    labels:
      - name: benign_nevus
        label: "Benign Nevus"
      - name: seborrheic_keratosis
        label: "Seborrheic Keratosis"
      - name: basal_cell
        label: "Basal Cell Carcinoma"
      - name: melanoma
        label: "Melanoma"
      - name: other
        label: "Other"
 
  - annotation_type: likert
    name: confidence
    description: "Diagnostic confidence"
    size: 5
    min_label: "Low"
    max_label: "High"

Annotazione di immagini retiniche

Per le fotografie del fondo oculare e altre immagini della retina:

yaml
annotation_task_name: "Fundus Image Annotation"
 
data_files:
  - path: data/fundus_images.json
    type: json
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: anatomical_structures
    labels:
      - name: optic_disc
        color: "#FDE68A"
        description: "Optic disc boundary"
 
      - name: fovea
        color: "#A78BFA"
        description: "Fovea region"
 
      - name: macula
        color: "#93C5FD"
        description: "Macular region"
 
  - annotation_type: image_annotation
    tools: [polygon]
    name: pathology
    labels:
      - name: hemorrhage
        color: "#EF4444"
        description: "Retinal hemorrhage"
 
      - name: exudate
        color: "#FCD34D"
        description: "Hard/soft exudate"
 
      - name: microaneurysm
        color: "#F97316"
        description: "Microaneurysm"
 
  - annotation_type: radio
    name: dr_grade
    description: "Diabetic retinopathy grade"
    labels:
      - name: none
        label: "No DR"
      - name: mild
        label: "Mild NPDR"
      - name: moderate
        label: "Moderate NPDR"
      - name: severe
        label: "Severe NPDR"
      - name: proliferative
        label: "PDR"

Formato dei dati

Prepara i dati delle immagini in JSON:

json
[
  {
    "id": "case_001",
    "image": "images/case_001.png",
    "metadata": {
      "body_part": "chest",
      "modality": "xray"
    }
  },
  {
    "id": "case_002",
    "image": "images/case_002.png",
    "metadata": {
      "body_part": "chest",
      "modality": "xray"
    }
  }
]

Attenzione: le immagini devono essere in formati standard compatibili con il web (PNG, JPG e simili). I file DICOM vanno convertiti in formati immagine standard prima di usarli con Potato.

Buone pratiche

Usa annotatori con una vera formazione clinica, perché questo non è un lavoro da affidare a chiunque. Prepara prima le immagini: converti DICOM e altri formati specialistici in formati standard e verifica che le PHI siano sparite. Fai etichettare ogni immagine a più di un annotatore, così puoi misurare l'accordo. Scrivi linee guida specifiche per il tuo dominio clinico, non generiche. Inserisci qua e là dei casi gold standard per tenere sotto controllo l'accuratezza. E tieni aggiornato il team che si occupa di conformità su come vengono trattati i dati.

Limiti

Potato fa annotazione di immagini di uso generale. Non ti dà supporto DICOM nativo o un visualizzatore DICOM, visualizzatori di whole slide image con zoom multi-risoluzione, conformità HIPAA integrata o audit logging, verifica delle credenziali, né strumenti di windowing radiologico. Se ti servono, prepara i dati a monte oppure affianca Potato a un'infrastruttura dedicata all'imaging medico.


Per approfondire l'annotazione di immagini, vedi Annotazione di Immagini.