Projeto de AnonimizaĆ§Ć£o e SegmentaĆ§Ć£o de imagens DICOM(.dcm) atravĆ©s da proposta da empresa Dosimagem filiado a universidade IBMEC-RJ.
- Arthur Camaz
- Bruno Rocha
- Bruno Xavier
- Caio Medeiros
- Ian Amoedo
- Pedro Oliveira
- Matheus Noricia
- Pydicom : Biblioteca utilizada para vizualizar os metadados
- Insominia : API utilzada para anonimizar os metadados
- 3dSlicer : Software utilizado para vizualizar imagem nearly raw raster data(.nnrd) segmentada em 3D
- ImageJ : Software utilizado para vizuliar os metadados e imagem no formato DICOM(.dcm)
- SympleITK : Biblioteca utilzada para segmentar a imagem DICOM(.dcm)
- Trello : Software utilizado para organizaĆ§Ć£o de tarefas.
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.
-
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.
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.
IDE
A IDE utilizada do projeto foi o VSCODE porƩm pode utilizar a IDE de seu gosto. Link para DowloadInsomnia
Link para Download3DSlicer
Link para DownloadPython
Link para Dowload
Esta etapa tem como objetivo instalar o software do nosso projeto junto com as imagens DICOM de teste.
1
. O usuƔrio baixa o software2
. ApĆ³s baixar o arquivo o usuĆ”rio deve descompacta o arquivo
Passo.1.mp4
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.
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.
cd C:\endereco\arquivo
pip install -r requirements.txt
ls
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.
Imagem de demonstraĆ§Ć£o ao arquivo meta.py incializado no console
Passo.4.mp4
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
Passo.5.mp4
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).
Passo.6.mp4
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.
Passo.7.mp4
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.