šŸ”° IntroduĆ§Ć£o

Projeto de AnonimizaĆ§Ć£o e SegmentaĆ§Ć£o de imagens DICOM(.dcm) atravĆ©s da proposta da empresa Dosimagem filiado a universidade IBMEC-RJ.

šŸ‘± Colaboradores

  1. Arthur Camaz
  2. Bruno Rocha
  3. Bruno Xavier
  4. Caio Medeiros
  5. Ian Amoedo
  6. Pedro Oliveira
  7. Matheus Noricia

šŸ§° Ferramentas

  1. Pydicom : Biblioteca utilizada para vizualizar os metadados
  2. Insominia : API utilzada para anonimizar os metadados
  3. 3dSlicer : Software utilizado para vizualizar imagem nearly raw raster data(.nnrd) segmentada em 3D
  4. ImageJ : Software utilizado para vizuliar os metadados e imagem no formato DICOM(.dcm)
  5. SympleITK : Biblioteca utilzada para segmentar a imagem DICOM(.dcm)
  6. Trello : Software utilizado para organizaĆ§Ć£o de tarefas.

HistĆ³ria do Projeto

šŸ’„ Proposta do Trabalho

A empresa Dosimagem realizou um pedido aos alunos da IBMEC realizarem um software em Python com o objetivo de anonimizar e segmentar imagens DICOM. O projeto teve como proposta ampliar os conhecimentos dos alunos e ampliar novos horizontes para a empresa Dosimagem utilizar no prƔtica.

O projeto foi dividido em dois casos no qual denominamos como :

  • Problema 1: Os laboratĆ³rios que solicitam serviƧos de dosimetria Ć  Dosimagem precisam anonimizar os metadados das imagens submetidas, em respeito Ć  Lei Geral de ProteĆ§Ć£o de Dados (LGPD). Essa tarefa toma tempo dos responsĆ”veis pelos laboratĆ³rios e atrasa o inĆ­cio do trabalho da Dosimagem, uma vez que nem todos os seus clientes tĆŖm o conhecimento necessĆ”rio para realizar tal tarefa. Portanto, hĆ” a necessidade de criaĆ§Ć£o de uma API REST que possa receber imagens no formato DICOM e seja capaz de anonimizar seus metadados, tais como o nome do paciente, sua data de nascimento e quaisquer outros metadados que possam ser considerados sensĆ­veis.

  • Problema 2: A Dosimagem utiliza a ferramenta 3D Slicer para realizar as segmentaƧƵes dos Ć³rgĆ£os. No 3D Slicer, hĆ” uma ferramenta chamada TotalSegmentatorAI, que Ć© capaz de realizar a segmentaĆ§Ć£o de forma automĆ”tica dos Ć³rgĆ£os em poucos minutos. A ideia, neste caso, seria desenvolver uma API REST que possa receber imagens no formato DICOM e seja capaz de segmentĆ”-las automaticamente.

šŸ“‹OrganizaĆ§Ć£o da equipe

Com a alta demanda de tarefas no percurso deste projeto decidimos utilizar a metodoligia de Scrum/Kanban na organizaĆ§Ć£o das nossas tarefas para buscar melhorias e vizualizar as tarefas que estavam pendentes ou finalizadas.

Link para Scrum/Kanban

šŸ¤” Como utilizar na PrĆ”tica ?

0. O usuƔrio deve possuir na mƔquina os seguintes softwares instalados:

1. O usuƔrio deve instalar e descompactar o software na mƔquina.

Esta etapa tem como objetivo instalar o software do nosso projeto junto com as imagens DICOM de teste.

  • 1. O usuĆ”rio baixa o software
  • 2. ApĆ³s baixar o arquivo o usuĆ”rio deve descompacta o arquivo

Arquivo Software

Download Software

Video de DemonstraĆ§Ć£o

Passo.1.mp4

2. O usuƔrio deve abrir o software em sua IDE

Esta etapa tem como objetivo inicializar o software na IDE na qual esta utilzando.

  • 1. O usuĆ”rio deve inicializar a IDE.
  • 2. ApĆ³s inicializar sua IDE deve-se abrir o software dentro da IDE.
  • 3. Verifique se estĆ” semelhante a imagem abaixo.

Imagem de DemonstraĆ§Ć£o

Imagem de demonstraĆ§Ć£o

3. Instalar bibliotecas do software

Esta etapa tem como objetivo instalar bibliotecas no qual a linguagem Python nĆ£o possue como padrĆ£o, podendo da um erro ao inicializar o programa caso nĆ£o realize este passo.

  • 1. Inicializar o Powersheel ou Prompt de Comando (cmd) no caminho da pasta do software. Ex: C:\Users\nome_usuario\Desktop\Projeto_back_end-main.
  • 2. ApĆ³s inicializar Powersheel ou Prompt de Comando (cmd) no endereco pasta do arquivo copie o comando abaixo de video e cole na liha de comando.
  • 3. Aguarde a instalaĆ§Ć£o das bibliotecas e verifique se a instalaĆ§Ć£o foi concluida.

Comando para direcionar caminho do arquivo

  cd C:\endereco\arquivo   

Comando de InstalaĆ§Ć£o bibliotecas

  pip install -r requirements.txt

Comando para verificar os arquivos

  ls

Video de DemonstraĆ§Ć£o

Passo-3.mp4

4. Inicializar a Software para a anonimizaĆ§Ć£o dos metadados e configurar o Insomia para o software

Esta etapa tem como objetivo inicializar a API de anonimizaĆ§Ć£o e configurar o software Insomnia na utilizaĆ§Ć£o da API.

  • 1. Inicializar/Compilar o arquivo meta.py.
  • 2. ApĆ³s inicializar o programa execute o aplicativo Insomnia.
  • 3. ApĆ³s inicializar o Insomnia selecione na opĆ§Ć£o New Collection e de um nome a sua Collection.
  • 4. ApĆ³s criar seu Collection selecione no nome do seu arquivo (no video AnonimizaĆ§Ć£o)localizado no canto superior esquerdo da tela.
  • 5. ApĆ³s selecionar o nome da sua Collection selecione na opĆ§Ć£o Import.
  • 6. ApĆ³s selecionar na opĆ§Ć£o Import baixe e importe o arquivo destacado abaixo para configurar o Prompt utilzado no projeto.

Arquivo Prompt Insomnia

Download Arquivo

Imagem demonstraĆ§Ć£o console

Imagem de demonstraĆ§Ć£o ao arquivo meta.py incializado no console

Video de DemonstraĆ§Ć£o

Passo.4.mp4

5. Anonimizar dados sensĆ­veis de determinada imagem DICOM

Esta etapa tem como objetivo realizar a operaĆ§Ć£o para anonimizar dados sensĆ­veis da imagem.

  • 1. Selecione no filter POST.
  • 2. ApĆ³s selecionar no botao filter POST, selecione o quadrado onde possui um arquivo como demostraĆ§Ć£o de Exemplo (SPECT_1h.dcm).
  • 3. ApĆ³s selecionar no arquivo como demostraĆ§Ć£o de Exemplo (SPECT_1h.dcm), selecione um arquivo DICOM no qual o usuĆ”rio possua ou utilize um dos arquivos de exemplo na pasta do software(Os arquivos testes estao na pasta chamada inputs).
  • 4. ApĆ³s selecionar um arquivo DICOM no qual o usuĆ”rio possua ou utilize um dos arquivos de exemplo na pasta do software(Os arquivos testes estao na pasta chamada inputs),selecione o botĆ£o Send para gerar uma imagem DICOM com alguns dados sensĆ­veis anonimizados.

ObservaĆ§Ć£o : Se observar o console no qual o arquivo meta.py serĆ” gerada estas informaƧƵes e a criaĆ§Ć£o da imagem DICOM anonimizada onde sera armazenada na pasta uploads do software

Resposta do Console

Passo 5.1

Arquivo Gerado na pasta Uploads

Passo 5 2

Video de DemonstraĆ§Ć£o

Passo.5.mp4

6. SegmentaĆ§Ć£o de Imagens DICOM

Esta etapa tem como objetivo importar a imagem em formato DICOM(.dcm) e segmentar a imagem para o formato Nearly Raw Raster Data (.nrrd).

  • 1. Retorne para a IDE onde esta aberto o software.
  • 2. ApĆ³s retornar a IDE selecione o arquivo seg3d.py.
  • 3. ApĆ³s selecionar o arquivo seg3d.py na linha 7 do cĆ³digo implemente o caminho da imagem anonimizada dentro das aspas. Ex: ./uploads/SPECT_1H.dcm (./uploads/nome-do-arquivo.dcm).
  • 3. ApĆ³s implementar o caminho da imagem anonimizada inicializa/compile o cĆ³digo.

ObservaĆ§Ć£o : Quando compilado o cĆ³digo gera um arquivo chamado segmented_image.nnrd na pasta segmentacao (onde ela esta anonimizada e segmentada).

Local de implementar endereƧo da imagem

Passo 6 2

Arquivo Gerado na pasta segmentacao

Passo 6 1

Video de DemonstraĆ§Ć£o

Passo.6.mp4

7. Vizualizar imagem segmentada

Esta etapa tem como objetivo importar a imagem segmentada para realizar a vizualizaĆ§Ć£o na ferramenta 3DSlicer.

  • 1. Inicialize a ferramenta do 3DSlicer.
  • 2. ApĆ³s inicializar a ferramenta do 3DSlicer selecione no canto superior esquerdo o botĆ£o possuindo uma pasta chamada DATA.
  • 3. ApĆ³s selecionar no canto superior esquerdo o botĆ£o possuindo uma pasta chamada DATA selecione o botĆ£o chamdo Choose File(s) to Add.
  • 4. ApĆ³s selecionar a botĆ£o Choose File(s) to Add adicione o arquivo contendo a imagem segmentada e anonimizada.
  • 5. ApĆ³s adicionarr o arquivo contendo a imagem segmentada e anonimizada selecione o boĆ£o Ok.

ObservaĆ§Ć£o: Quando realizado esta etapa o usuĆ”rio consegue vizualizar a imagem segmentada e podendo vela a partir das cores vermelho,verde e amarelo.

Exemplo Imagem Segmentada

Passo 7 1

Video de DemonstraĆ§Ć£o

Passo.7.mp4

8. Vizualizar os Metadados

  • 1. Selecione no canto superior esquerdo o botĆ£o possuindo uma pasta chamada DCM.
  • 2. ApĆ³s selecionar no canto superior esquerdo o botĆ£o possuindo uma pasta chamada DCM selecione um PatientName (nesse caso Anonymous) com o botĆ£o direito e escolha o opĆ§Ć£o View DICOM Metadata.

ObservaĆ§Ć£o: Quando realizado esta etapa o usuĆ”rio consegue vizualizar os metadados da imagem segmentada.

Video de DemonstraĆ§Ć£o

Passo.8.mp4