Skip to content
Guides5 min read

Anotação de Imagens Médicas com o Potato

Boas práticas para anotar imagens médicas no Potato, exibição de DICOM, rotulagem de laudos radiológicos, extração de eventos adversos e implantação auto-hospedada em conformidade com o CEP.

Potato Team

Você pode usar a anotação de imagens do Potato para imagens médicas como radiografias, fotografias de lesões de pele ou outras imagens clínicas, desde que estejam em um formato padrão como PNG ou JPG. Este guia mostra como montar bem um projeto desse tipo.

Para entender os mecanismos básicos da anotação de imagens, consulte a documentação de origem.

Antes de começar

Um projeto de anotação médica traz obrigações que não têm nada a ver com o Potato. Remova todas as informações de saúde protegidas (PHI) das imagens antes de tudo. Mantenha os dados na infraestrutura segura da sua instituição para armazenamento e processamento. Controle o acesso dos anotadores pelo mecanismo de autenticação que você já utiliza. E envolva suas equipes de CEP e conformidade desde cedo, para atender aos requisitos institucionais em vez de descobri-los depois.

Vale deixar uma coisa clara: o Potato é uma ferramenta de anotação, não uma plataforma de imagens médicas. Ele não tem conformidade com HIPAA embutida, não tem visualizador de DICOM e não tem recursos especializados de imagem. Trate disso no nível da infraestrutura.

Configuração básica de anotação de imagens médicas

Veja como configurar o Potato para imagens médicas padrão:

yaml
annotation_task_name: "Medical Image Annotation"
 
data_files:
  - path: data/medical_images.json
    type: json
 
annotation_schemes:
  - annotation_type: bounding_box
    name: lesions
    allow_multiple: true
    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
    question: "Overall image quality?"
    options:
      - name: diagnostic
        label: "Diagnostic Quality"
      - name: limited
        label: "Limited Quality"
      - name: non_diagnostic
        label: "Non-Diagnostic"

Anotação de radiografias e fotos clínicas

Para radiografias ou fotografias clínicas que foram exportadas para formatos de imagem padrão:

yaml
annotation_task_name: "X-Ray Findings Annotation"
 
data_files:
  - path: data/xray_images.json
    type: json
 
annotation_schemes:
  - annotation_type: polygon
    name: abnormalities
    allow_multiple: true
    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
    question: "Select all findings present"
    options:
      - name: normal
        label: "No acute findings"
      - name: pneumonia
        label: "Pneumonia"
      - name: atelectasis
        label: "Atelectasis"
      - name: pneumothorax
        label: "Pneumothorax"
      - name: fracture
        label: "Fracture"

Anotação de lesões de pele

Para imagens de dermatologia:

yaml
annotation_task_name: "Dermoscopy Annotation"
 
data_files:
  - path: data/skin_lesions.json
    type: json
 
annotation_schemes:
  - annotation_type: polygon
    name: lesion_boundary
    labels:
      - name: lesion
        color: "#EF4444"
        description: "Lesion boundary"
 
  - annotation_type: multiselect
    name: dermoscopic_features
    question: "Select all features present"
    options:
      - 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
    question: "Most likely diagnosis?"
    options:
      - 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
    question: "Diagnostic confidence"
    size: 5
    min_label: "Low"
    max_label: "High"

Anotação de imagens da retina

Para retinografias e outras imagens da retina:

yaml
annotation_task_name: "Fundus Image Annotation"
 
data_files:
  - path: data/fundus_images.json
    type: json
 
annotation_schemes:
  - annotation_type: 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: polygon
    name: pathology
    allow_multiple: true
    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
    question: "Diabetic retinopathy grade"
    options:
      - 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 dos dados

Prepare os dados das imagens em 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"
    }
  }
]

Observação: as imagens precisam estar em formatos compatíveis com a web (PNG, JPG, etc.). Arquivos DICOM precisam ser convertidos para formatos de imagem padrão antes de serem usados com o Potato.

Boas práticas

Use anotadores com treinamento clínico de verdade, pois este não é um trabalho que você possa entregar a qualquer pessoa. Faça o pré-processamento das imagens antes: converta DICOM e outros formatos especializados para formatos padrão e confirme que as PHI foram removidas. Tenha mais de um anotador rotulando cada imagem, para que você possa medir a concordância. Escreva diretrizes específicas para o seu domínio clínico, em vez de genéricas. Inclua casos de padrão-ouro para acompanhar a precisão. E mantenha sua equipe de conformidade a par de como os dados são tratados.

Limitações

O Potato faz anotação de imagens de uso geral. Ele não oferece suporte nativo a DICOM nem visualizador de DICOM, visualizadores de lâminas inteiras com zoom multirresolução, conformidade com HIPAA embutida ou registro de auditoria, verificação de credenciais nem ferramentas de janelamento radiológico. Se você precisa disso, faça o pré-processamento dos seus dados ou coloque o Potato ao lado de uma infraestrutura dedicada de imagens médicas.


Para saber mais sobre anotação de imagens, consulte /docs/features/image-annotation.