Ir para o conteúdo

 Voltar a invesalius-r...
Tela cheia

Material relativo ao protocolo de comunicação entre aplicativos

25 de Setembro de 2008, 15:59 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 130 vezes

Eu postei em [1] o material relativo ao protocolo de comunicação entre aplicativos DICOM. Este arquivo contém:

- As partes da documentação oficial DICOM relativos a este protocolo.

- Uma documentação auxiliar em português.

- Implementação das mensagens A-Associate-RQ e C-ECHO-RQ, junto com exemplos mostrando o uso destas mensagens através de sockets e o framework Twisted Matrix.

- Instruções de como eu cheguei a esta implementação e dicas de documentação. Mostram como eu usei algumas ferramentas auxiliares que muito me ajudaram.

1- http://www.softwarepublico.gov.br/dotlrn/clubs/invesalius/file-storage/view/projects/ufla/Material_Com_Dicom.7z

Autor: Thiago Franco Moraes


44 comentários

  • Bec98aab44050ffed605c230ece23714?only path=false&size=50&d=404Saulo Aldighieri Moraes(usuário não autenticado)
    2 de Outubro de 2008, 23:57

     

    Thiago,

      Para adicionar a capacidade de comunicação ao InVesalius se pretende desenvolver toda a implementação do DICOM ou utilizar alguma biblioteca ja existente?

      Qual seria a vantagem por exemplo em utilizar o framework Twisted Matrix ao inves do pydicomlib (http://dicomlib.swri.ca/pydicomlib.html) ?

      Ainda não estudei a fundo as opções, estou apenas perguntando para entender oq a equipe do InVesalius pretende e quais ideias nessa parte..

     

    sauLo

    • 4fc11d72fb1974e943174c8ca2fa8765?only path=false&size=50&d=404Thiago Franco Moraes(usuário não autenticado)
      3 de Outubro de 2008, 8:39

       

      Saulo,

      Sim, pode ser utilizada uma biblioteca já existente, mas atente ao fato de que a implementação deverá ser multiplataforma, no mínimo Linux e Windows. Testamos a biblioteca pydicomlib, mas ela estava dando erro durante a importação, ela não está descartada, caso você consiga fazê-la funcionar. E sobre o Twisted Matrix, é apenas uma sugestão, e apresenta facilidades frente ao uso de sockets.

    • 48dfb8d5a4a0459d4285c752af22e7cb?only path=false&size=50&d=404Tatiana Al-Chueyr Pereira Martins(usuário não autenticado)
      3 de Outubro de 2008, 9:46

       

      Oi Saulo,

      Temos ficado no chat, conforme combinado, mas não tem aparecido ninguém da equipe de vocês para tirar dúvidas. Teriam datas/horários melhores para vocês?

      Vocês instalaram o servidor DCM4CHEE?

      Antes do curso realizado nos dias 11 e 12 de setembro, um dos membros da nossa equipe, Thiago, estudou as possibilidades de comunicação em Python com o DCM4CHEE. As possibilidades que havíamos discutido seriam:

      Utilizar biblioteca já pronta;
      Implementar as partes do protocolo DICOM necessárias, via socket;
      Implementar as partes do protocolo DICOM de alguma outra forma.

       No caso de utilizar a opção 1, alguns critérios teriam que ser observados (além do que escrevemos no documento geral de especificação [I]):

      licença compatível com GNU GPL (poderia ser BSD), para que possa ser disponibilizado junto do InVesalius
      em Python ou de modo que haja binding para Python (versão 2.5, pelo menos). É terminantemente proibido utilizar Java (uma virtual machine só daria delay no processo) ou PHP (para o que queremos, esta linguagem não oferece mais recursos que Python). Vocês poderiam utilizar C ou C++, contanto que disponibilizassem os bindings para Python.

      Rodar, pelo menos, em Windows e GNU Linux.

      Thiago havia a princípio testado muitas bibliotecas (dentre as quais a que você citou), mas nenhuma foi bem sucedida - fosse na hora de compilar, na hora de importar, ou de usar. Note que ele trabalhou com isso por uma semana apenas. Ou seja, devem haver outras possibilidades. Entretanto, Thiago é bastante competente, tendo em vista o curto tempo do projeto de vocês, sugiro que vocês partam da experiência dele.

      Após não ter sido bem sucedido com a alternativa 1, Thiago passou para a segunda alternativa. Como resultado deste trabalho com sockets vocês têm os códigos na pasta exemplo [II]. Deu um certo trabalho, mas funcionou de modo bastante efetiva a comunicação via socket.

      O Twisted é um framework que busca abstrair e facilitar a comunicação via rede. A idéia é que seja mais fácil utilizar ele do que implementar as coisas "na raça", utilizando sockets. Entretanto, para utilizá-lo adequadamente, é necessário estudá-lo um pouco. Thiago o estudou muito brevemente e fez um exemplo com ele (dicomTwisted.py), também está disponível em [II]. O Twisted seria uma possibilidade para a alternativa 3.

      Note que não é necessário implementar "todo protocolo DICOM", no caso de vocês seguirem as alternativas 2 ou 3. As seguintes instruções são necessárias:

      A-Associate-RQ
      C-Echo-RQ
      C-STORE
      C-GET
      C-FIND

      A-Release-RQ

      Thiago já implementou 1/3 delas (as duas primeiras), via socket. Pelo que ele sugeriu, seria mais fácil vocês começarem implementando as instruções A-Release-RQ e o C-Find-RQ.

      Além disso, é necessário implementar a parte de tratamento de mensagens. Provavelmente vocês teriam que desenvolver um parser das mensagens RSP (response) do servidor. Para isso é necessário estudar algumas partes do protocolo DICOM, a fim de entender os campos das mensagens de resposta.

      Ainda, caso vocês optem por implementar as instruções, Thiago tem algumas considerações sobre algumas melhorias e adaptações que deveriam ser feitas no código dele.

      O objetivo da nossa equipe com este projeto, Saulo, é o produto final. O meio fica a critério de vocês - seja alternativa 1, 2 ou 3 a escolhida.

      Nos mantenham informados sobre os avanços, para que possamos auxiliá-los. Nossa equipe do CTI apóia o projeto de vocês.

      Atenciosamente,

      Tatiana

      [I] www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/​view​/pro​ject​s/uf​la/e​spec​ific​ao-c​ti-p​roje​to-u​flv.​pdf

      [II] www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​inve​sali​us/f​ile-​stor​age/​view​/pro​ject​s/uf​la/M​ater​ial_​Com_​Dico​m.7z

      • Bec98aab44050ffed605c230ece23714?only path=false&size=50&d=404Saulo Aldighieri Moraes(usuário não autenticado)
        6 de Outubro de 2008, 14:35

         

        ola Tatiana,

          Ainda não entramos no chat, mas acredito que vamos participar mais assim que o projeto avançar mais, nesta quarto o Fernando entrará no forum..

          Estamos com o DCM4CHEE instalado, mas cada um teve que instalar sua propria PACS em seu proprio computador pois não achamos uma maneira de instalar e liberar para todos de maneira eficaz. Voces não teriam um DCM4CHEE que possamos usar pela internet? De qualquer maneira também estamos testando com o servidor dicomserver.medicalconnections.co.uk (descrito no site www.​dico​mser​ver.​co.u​k/).

          Quando as bibliotecas a usar o "pydicomlib" realmente tem dependencias "pouco interessante" (dicomlib e Boost.Python). Fazer na "raça" parece a opção mais sensata e provavelmente esse é o caminho que vamos seguir, embora ainda estamos examinando o Twisted.

          Nosso objetivo também é chegar no produto final, independente de quanto tempo isso leve :D

          Atualmente temos o Sergio e o Fernando trabalhando pra gerenciar e coordenar esse projeto, estamos fazendo reunioes constante, o Flavio está analisando o código atual para a adição das janelas e eu estou elaborando as possibilidade de como fazer a interação com a PACS.

        SauLo

Tutorial passo-a-passo sobre uso do software InVesalius 3

17 de Abril de 2010, 11:45, por Desconhecido

Se você tem interesse em utilizar o software de reconstrução 3D de imagens médicas InVesalius, mas não sabe por onde começar, acesse já o tutorial escrito pelo designer Cícero Moraes:



InVesalius 3 Beta 2 disponível

6 de Março de 2010, 11:41, por Desconhecido

Para saber mais sobre o InVesalius 3.0.0 Beta 2, leia:
http://svn.softwarepublico.gov.br/trac/invesalius/wiki/releases/pt/changelog

Continue contribuindo com a Comunidade InVesalius!

------------------------------------



Siga cada passo do InVesalius com o Twitter!

8 de Fevereiro de 2010, 9:57, por Desconhecido

Acompanhar o InVesalius pelo Twitter permitirá que você saiba, em primeira mão, sobre:



InVesalius 3 Beta 1 disponível para testes em Windows e GNU Linux

27 de Janeiro de 2010, 10:50, por Desconhecido



Trabalho acadêmico discute aplicação do OpenBRR ao InVesalius

6 de Novembro de 2009, 16:35, por Desconhecido

Autor: Tatiana Al-Chueyr Pereira Martins