IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Comment utiliser DCMTK


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut Comment utiliser DCMTK
    Salut à tous
    Je commence la programmation en C++ sous Visual Studio d'un logiciel pour des radiologues.
    Je voudrais de l'aide concernant DCMTK car pour l'heure je n'ai trouvé que très peu de doc (et en anglais)

    J'ai téléchargé la dernière version en date (3.6), ainsi que les librairies conseillées sur le site. J'ai suivit les instructions du fichier INSTALL et et compiler sans problème la solution DCMTK.

    Reste maintenant un gros problème. J'ai entre les mains une boîte à outils formidable mais je ne sais pas l'utiliser. J'ai compris qu'il fallait intégrer chacun des includes des sous projets de la solution DCMTK dans les includes de mon projet sous Visual Studio...

    Sauf que maintenant j'aimerai commencer à programmer mon application et je ne sais toujours pas par où commencer.
    J'aimerai faire un module pour vérifier que la connexion avec le système PACS est possible. Après une petite recherche je suis arrivé sur ce topic qui ne m'aide pas beaucoup.

    Suite à cela j'aimerai fais un module pour importer et (pourquoi pas aussi) exporter les informations depuis et vers le PACS.... Mais bon... commençons par le début.

    Quelqu'un serait-il m'aider ??

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Je viens juste de découvrir ce code

    Du coup je l'ai un peu modifier pour en faire cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    int Import::connection(QString qipAdress, QString qport, QString qaet){
      DcmSCU scu;
      OFString host(qipAdress.toAscii());
      scu.setPeerHostName(host);
      unsigned int port = atoi(qport.toAscii());
      scu.setPeerPort(port);
      OFString verificationSOP = UID_VerificationSOPClass;
      OFList<OFString> ts;
      ts.push_back(UID_LittleEndianExplicitTransferSyntax);
      ts.push_back(UID_BigEndianExplicitTransferSyntax);
      ts.push_back(UID_LittleEndianImplicitTransferSyntax);
      scu.addPresentationContext(verificationSOP, ts);
      OFString peerAET = qaet.toAscii();
      if (peerAET != "")
      {
        scu.setPeerAETitle(peerAET);
      }
      OFCondition result = scu.initNetwork();
      if (result.bad())
      {
        std::cerr << "Error setting up SCU: " << result.text() << "\n";
        return 2;
      }
     
      // Negotiate association
      result = scu.negotiateAssociation();
      if (result.bad())
      {
        std::cerr << "Error negotiating association: " << result.text() << "\n";
        return 2;
      }
     
      // Issue ECHO request and let scu find presentation context itself (0)
      result = scu.sendECHORequest(0);
      if (result.bad())
      {
        std::cerr << "Error issuing ECHO request or received rejecting response: " << result.text() << "\n";
        return 2;
      }
      std::cout << "Successfully sent DICOM Echo to host " << host << " on port " << port << "\n";
      return 0;
    }
    avec les importations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
    #include "dcmtk/dcmnet/scu.h"
    #include "Import.h"
    #include "dcmtk\dcmnet\assoc.h"
    #include "dcmtk\dcmnet\dimse.h"
     
    #include <cstdlib>
    #include <iostream>
    #include <fstream>
    mais cela ne fonctionne pas :-(
    Un message d'erreur apparait et dit :
    • Erreur 1 error LNK2019: symbole externe non résolu "public: virtual __thiscall DcmSCU::~DcmSCU(void)" (??1DcmSCU@@UAE@XZ) référencé dans la fonction "public: static int __cdecl Import::connection(class QString,class QString,class QString)" (?connection@Import@@SAHVQString@@00@Z) C:\Users\Nicolas\Documents\Visual Studio 2010\Projects\Importation\Importation\Import.obj Importation
    • Erreur 2 error LNK2019: symbole externe non résolu "public: __thiscall DcmSCU::DcmSCU(void)" (??0DcmSCU@@QAE@XZ) référencé dans la fonction "public: static int __cdecl Import::connection(class QString,class QString,class QString)" (?connection@Import@@SAHVQString@@00@Z) C:\Users\Nicolas\Documents\Visual Studio 2010\Projects\Importation\Importation\Import.obj Importation
    • Erreur 3 error LNK1120: 2 externes non résolus C:\Users\Nicolas\documents\visual studio 2010\Projects\Importation\\Importation.exe 1 1 Importation


    quelqu'un serait-il m'expliquer ce que cela signifie ??

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Du coup j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\dcmtk-3.6.0\include;C:\dcmtk-3.6.0\ofstd\include;C:\dcmtk-3.6.0\oflog\include;C:\dcmtk-3.6.0\dcmwlm\include;C:\dcmtk-3.6.0\dcmtls\include;C:\dcmtk-3.6.0\dcmsr\include;C:\dcmtk-3.6.0\dcmsign\include;C:\dcmtk-3.6.0\dcmqrdb\include;C:\dcmtk-3.6.0\dcmpstat\include;C:\dcmtk-3.6.0\dcmnet\include;C:\dcmtk-3.6.0\dcmjpls\include;C:\dcmtk-3.6.0\dcmjpeg\include;C:\dcmtk-3.6.0\dcmimgle\include;C:\dcmtk-3.6.0\dcmimage\include;C:\dcmtk-3.6.0\dcmdata\include;C:\dcmtk-3.6.0\config\include;.\GeneratedFiles;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\qtmain;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;.\;%(AdditionalIncludeDirectories)
    dans les options import de mon projet

    et j'ai ajouté :

    dans les options linker du projet...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\dcmtk-3.6.0\ofstd\libsrc\Debug;C:\dcmtk-3.6.0\oflog\libsrc\Debug;C:\dcmtk-3.6.0\dcmwlm\libsrc\Debug;C:\dcmtk-3.6.0\dcmtls\libsrc\Debug;C:\dcmtk-3.6.0\dcmsr\libsrc\Debug;C:\dcmtk-3.6.0\dcmsign\libsrc\Debug;C:\dcmtk-3.6.0\dcmqrdb\libsrc;C:\dcmtk-3.6.0\dcmpstat\libsrc;C:\dcmtk-3.6.0\dcmnet\libsrc\Debug;C:\dcmtk-3.6.0\dcmjpls\libsrc\Debug;C:\dcmtk-3.6.0\dcmjpls\libcharls\Debug;C:\dcmtk-3.6.0\dcmjpeg\libijg8\Debug;C:\dcmtk-3.6.0\dcmjpeg\libijg12\Debug;C:\dcmtk-3.6.0\dcmjpeg\libijg16\Debug;C:\dcmtk-3.6.0\dcmimgle\libsrc\Debug;C:\dcmtk-3.6.0\dcmimage\libsrc\Debug;C:\dcmtk-3.6.0\dcmdata\libsrc\Debug;C:\dcmtk-3.6.0\dcmdata\libi2d\Debug;$(QTDIR)\lib;%(AdditionalLibraryDirectories)
    Sauf que cela ne change rien à mon erreur :-(

    une idée ??

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Vous n'auriez pas un tuto sur DCMTK ?

  5. #5
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Je pense qu'avec ces quelques liens tu devrais t'en sortir :
    - Home page DCMTK
    - Wiki DCMTK
    - Documentation DCMTK

    Visiblement le code est plein d'exemples ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Merci, je suis déjà le nez plongé dans ses documents depuis un moment hihihi
    Là, par exemple, je cherche comment bien configurer le projet visual studio 2010 pour qu'il reconnaisse les includes C++ et les inputs ainsi que les lib dans le Linker... Je crois que l'ordre à une importance... Auriez vous cela sous la main ????

  7. #7
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Install file section BUILDING (Windows).

    Après je ne connais pas cette API, je te rapporte juste ce que je trouve en qqs minutes de recherches ...Je présume par ailleurs que tu trouveras sûrement encore plus de précisions en allant directement sur le Forum DCMTK.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Merci, en effet leur forum est très riche, seulement il est en anglais est quand même très réservé à des spécialistes...
    Moi qui n'y connais pas grand chose je m'y sens un peu perdu...

    Du coup ici je peux parler en français, je peux demander de l'aide sans qu'on me regarde avec des grands yeux et enfin je peux attendre ici une dynamique un brin plus agréable que chez eux ^^

    Bref, je proposerai bien de rajouter un TOPIC général DCMTK mais je ne sais pas comment faire... Du coup je poste ici ^^

    Sinon, j'ai mis de coté mon problème de connexion au PACS pour m’intéresser au CD, j'ai réussi à lire dans un DICOMDIR et maintenant j'essaye de comprendre comment lire dans un fichier DICOM (pour récupérer le B value notamment)... Si quelqu'un à sous la main un peu de code pour me montrer comment faire ça ^^

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 10
    Points
    10
    Par défaut DCMTK tutorial
    Au cas ou quelqu'un retombe sur ce topic, j'ai tenté de partager les connaissances que j'avais pu acquérir sur DCMTK ici.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut Merci
    Citation Envoyé par Zerkay Voir le message
    Au cas ou quelqu'un retombe sur ce topic, j'ai tenté de partager les connaissances que j'avais pu acquérir sur DCMTK ici.
    Ahhh effectivement c'est une excellente ça, et c'est assez bien fait - super pratique - merci beaucoup ^^

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 10
    Points
    10
    Par défaut Merci
    Merci, c'est gentil, tout retour est bienvenu, je ne viens que de créer le site (1 semaine à peine) et ce topic m'a par exemple donner l'idée d'ajouter les includes et le CMAKE

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 38
    Points
    38
    Par défaut
    Ahhh cela me donne envie de faire une nouvelle application...
    Je pense au score ASPECTS - pour estimer l'impact d'un AVC via les images IRM : lien
    Le problème actuellement c'est la reproductibilité d'un examen. Le score n'est jamais le même d'un clinicien à l'autre...chacun choisi ses zones avec plus ou moins de marge.... Du coup les tests sont toujours d'une extrême lourdeur...
    Avec une application, DMCTK pour les images, et ITK pour la création du masque et l'ajustement des images par rapport à ce masque...on pourrait automatiser la génération du score...
    A tester...
    Mais j'ai toujours le même problème.... LE TEMPS !!

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 13h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 10h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 10/02/2003, 00h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 10h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo