Retrieve/movescu problem

  • Hi,

    I am using 1.4.16 in Linux with MySQL5.5.28. PACS receives data sets fine. Remote devices can query, but is not able to movescu or retrieve, even though dgate sees those devices correctly in From the PACS, I can manually send images from data folder (saved in DICOM format) using dcmtk's storescu command to remote device's storescp just fine. But the same study when "pushed" from Conquest's web interface, or when movescu command was used on the remote device fails.

    ./dgate -v shows:
    Sending file : /RAID01/conquest/data/XXXXXX/
    Image Loaded from Read Ahead Thread, returning TRUE
    Retrieve: remote connection dropped after 0 images, 953 not sent
    C-Move (StudyRoot)
    UPACS THREAD 27: ENDED AT: Wed Nov 28 14:45:58 2012

    Remote station's movescu shows:
    I: Received Store Request: MsgID 507, (MR)
    RECV: .................................................................................................................................................E: DcmElement: Unknown Tag & Data (736c,2265) larger (572661794) than remaining bytes (586632) in file, premature end of stream
    W: DIMSE Warning: (HPSS_QR,TESTPC): DIMSE receiveDataSetInMemory: dset->read() Failed (Invalid stream)
    E: Store SCP Failed: 0006:020d DIMSE Failed to receive message
    E: DIMSE failure (aborting sub-association): 0006:020d DIMSE Failed to receive message
    E: DIMSE failure (aborting sub-association): 0006:020d DIMSE Failed to receive message
    E: 0006:020c DIMSE Read PDV failed
    E: 0000:0000 Normal
    I: ===================== INCOMING DIMSE MESSAGE ====================
    I: Message Type : C-MOVE RSP
    I: Message ID Being Responded To : 1
    I: Affected SOP Class UID : MOVEStudyRootQueryRetrieveInformationModel
    I: Remaining Suboperations : 0
    I: Completed Suboperations : 0
    I: Failed Suboperations : 953
    I: Warning Suboperations : 0
    I: Data Set : none
    I: DIMSE Status : 0xfe00: Cancel: Suboperations terminated due to Cancel Indication
    I: ======================= END DIMSE MESSAGE =======================
    I: Releasing Association

    EDIT: The problem seems be to in Transfer syntax. When I used movescu in bit preserving mode, I got all of the images.

  • (with x.x replaced below):
    HPSS_QR 5679 un
    TESTPC 134.68.x.x 5001 un

    MicroPACS = sscscp
    Edition = Personal

    # Network configuration: server name and TCP/IP port#
    MyACRNema = HPSS_QR
    TCPPort = 5679

    # Reference to other files: known dicom servers; database layout; sops
    ACRNemaMap =
    kFactorFile = dicom.sql
    SOPClassList = dgatesop.lst

    # Host for postgres or mysql only, name, username and password for database
    SQLHost = localhost
    SQLServer = conquest
    Username = xxx
    Password = xxxxx
    PostGres = 0
    MySQL = 1
    SQLite = 0

    UseEscapeStringConstants = 0
    DoubleBackSlashToDB = 1
    #IndexDBF = 1
    #PackDBF = 0
    #LongQueryDBF = 1000

    # Configure database
    TruncateFieldNames = 10
    MaxFieldLength = 254
    MaxFileNameLength = 255
    FixPhilips = 0
    FixKodak = 0
    UIDPrefix = 99999.99999
    EnableReadAheadThread = 1
    PatientQuerySortOrder =
    StudyQuerySortOrder =
    SeriesQuerySortOrder =
    ImageQuerySortOrder =
    EnableComputedFields = 1
    TCPIPTimeOut = 300
    FailHoldOff = 60
    RetryDelay = 100
    QueueSize = 128
    WorkListMode = 0
    WorkListReturnsISO_IR_100 = 1
    DebugLevel = 2
    Prefetcher = 0
    LRUSort =
    AllowTruncate =
    DecompressNon16BitsJpeg = 1
    UseBuiltInJPEG = 1
    IgnoreOutOfMemoryErrors = 0
    PadAEWithZeros = 0
    FileNameSyntax = 4

    # Configuration of compression for incoming images and archival
    DroppedFileCompression = un
    IncomingCompression = un
    ArchiveCompression = as

    # Names of the database tables
    PatientTableName = DICOMPatients
    StudyTableName = DICOMStudies
    SeriesTableName = DICOMSeries
    ImageTableName = DICOMImages
    DMarkTableName = DICOMAccessUpdates
    RegisteredMOPDeviceTable = RegisteredMOPIDs

    # Banner and host for debug information
    PACSName = HPSS_QR
    OperatorConsole =

    # Configuration of disk(s) to store images
    MAGDeviceThreshhold = 0
    MAGDevices = 1
    MAGDevice0 = /RAIDvol1/conquest/data

  • jogr and Marcel,

    Machine OS: Fedora Core 17 (3.5.2-3.fc17.x86_64). GCC version 4.7.0. I could not use jasper libs included in source. I used rpm's instead:

    The problems reported by jogr and mine are the same; I found out that images received through movescu with bit-preserving mode were corrupted.

    I also compiled v1.4.17alpha version on the above Linux. When I ran dgate, the problems were identical.
    I could compile v1.14.15 only if I replace npipe.cpp from upper version (from v1.4.16). When I ran dgate, still the problems were identical.

    If Conquest worked under Fedora, would be an ideal solution. I will look into ubuntu 10.10 next. Thank you for your help.

  • I don't think it's a compiler issue. Ubuntu 12.04 comes with gcc 4.6. Ubuntu 10.10 uses gcc 4.4. I've installed gcc 4.4 on Ubuntu 12.04 and it didn't help. I've also tried the 1.4.17alpha on Ubuntu 12.04 with the same results.

    I'm betting on a library incompatibility with the 3.x kernels.

    Ubuntu 12.04 is based on the 3.2 kernel. Fedora 17 is based on the 3.5 kernel.

    Ubuntu 10.10 is based on the 2.6.35 kernel. It would be interesting to see if it works on Fedora 15 (2.6.42 kernel).


    jogr and Marcel,

    Yes, it appears to be 2.6.x Vs 3.x issue. Since Fedora14 kernel matched ubuntu 10.10 (2.6.35), I compiled dgate (version 1.4.17alpha) under Fedora14, and took everything to FC17, and I could send and receive. I even viewed the retrieved image to make sure. Thanks to tips from jogr.

    One obstacle I found: Since Fedora17 had, dgate was looking for even though I made a link on Fedora17 from /usr/lib64/mysql/ to /usr/lib64/mysql/ I had to tar /usr/lib64/mysql/ folder on Fedora14 and extract it under /opt/local/lib64/mysql folder, and
    export LD_LIBRARY_PATH=/opt/local/lib64/mysql
    Then, cd /var/www/cgi-bin
    ./dgate -v -r
    ./dgate -v worked for send and movescu/retrieve operations.

  • The movescu application implements both an SCU for the Query/Retrieve Service Class and an SCP for the Storage Service Class. movescu supports retrieve functionality using the C-MOVE message. It sends query keys to an SCP and awaits responses. It will accept associations for the purpose of receiving images sent as a result of the C-MOVE request. The application can be used to test SCPs of the Query/Retrieve Service Class. The movescu application can initiate the transfer of images to a third party or can retrieve images to itself. Note that the use of the term "move" is a misnomer..........

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!