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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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
    Membre confirmé
    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
    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
    Membre confirmé
    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
    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
    Membre confirmé
    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
    Par défaut
    Vous n'auriez pas un tuto sur DCMTK ?

  5. #5
    Membre éprouvé
    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 : 43
    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
    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
    Membre confirmé
    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
    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 ????

Discussions similaires

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

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