`
qimo601
  • 浏览: 3445786 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

DCMTK: DcmSCP, error:QueryRetrieveLevel larger remaining bytes

阅读更多

最近在DcmSCU发送一个findRequest后,DcmSCP总是报一个错误:

 

hi, all.

when i send a findRequest in DcmSCU, it will be successful to receive response.
but then the DcmServer will take place an error, as follows.

Quote:
"2012-11-03 16:12:25.758 INFO: Sending C-Find Response" 
"2012-11-03 16:12:27.795 DEBUG: C-FIND Response successfully sent" 
"2012-11-03 16:12:29.678 DEBUG: DcmDataset::read() TransferSyntax="Little Endian Implicit"" 
"2012-11-03 16:12:29.678 WARN: DcmItem: Length of element (0008,0052) is odd" 
"2012-11-03 16:12:29.679 ERROR: DcmElement: QueryRetrieveLevel (0008,0052) larger (414531) than remaining bytes (20) in file, premature end of stream" 
"2012-11-03 16:12:29.679 DEBUG: DIMSE Error, detail (if available): 0006:020d DIMSE: receiveCommand: cmdSet->read() Failed2012-11-03 16:12:29.679 DEBUG: 0001:0004 Invalid stream" 
"2012-11-03 16:12:59.681 DEBUG: DcmSCP: Association Terminated" 
"2012-11-03 16:12:59.681 DEBUG: +++++++++++++++++++++++++++++

 

最后的解决方法是:

 

I have found the anwser Something about the findscu tool

we should implement the callback function to set response->DimseStatus=STATUS_Success;

Code:
typedef void (*DIMSE_FindProviderCallback)(
        /* in */
        void *callbackData,
        OFBool cancelled, T_DIMSE_C_FindRQ *request,
        DcmDataset *requestIdentifiers, int responseCount,
        /* out */
        T_DIMSE_C_FindRSP *response,
        DcmDataset **responseIdentifiers,
        DcmDataset **statusDetail);

DCMTK_DCMNET_EXPORT OFCondition
DIMSE_findProvider(
        /* in */
        T_ASC_Association *assoc,
        T_ASC_PresentationContextID presIdCmd,
        T_DIMSE_C_FindRQ *request,
        DIMSE_FindProviderCallback callback, void *callbackData,
        /* blocking info for data set */
        T_DIMSE_BlockingMode blockMode, int timeout);



my callBack function:
Code:
void FindProviderCallback(
   /* in */ 
   void *callbackData,  
   OFBool cancelled, T_DIMSE_C_FindRQ *request, 
   DcmDataset *requestIdentifiers, int responseCount,
   /* out */
   T_DIMSE_C_FindRSP *response,
   DcmDataset **responseIdentifiers,
   DcmDataset **statusDetail)
{
   if (responseCount>1)
   {
      //*responseIdentifiers=NULL;
      response->DimseStatus=STATUS_Success;
   }
   else   
   {
      if(request->DataSetType==DIMSE_DATASET_PRESENT) //or some other conditions are met
         *responseIdentifiers=new DcmDataset(*requestIdentifiers);     
   }
}


Thanks all.


分享到:
评论

相关推荐

    利用dcmtk实现C-FIND SCU

    专栏博文“DICOM:基于DCMTK实现C-FIND SCU”中对应的源代码。基于dcmtk开源库中的findscu工程,实现的简单的C-FIND SCU,用于示范如何使用dcmtk操作实现具体的DICOM应用。

    第一个 DCMTK 程序:显示 DICOM 图像(DCMTK 3.6.4 + Qt 5.14.2 + VS2015)源码

    这是博文《第一个 DCMTK 程序:显示 DICOM 图像(DCMTK 3.6.4 + Qt 5.14.2 + VS2015)》的源码,详细内容见博客文章 https://blog.csdn.net/blackwoodcliff/article/details/109481195

    nodejs-dcmtk:基于Nodsjs Alpine和DCMTK的Docker映像

    nodejs-dcmtk 基于Nodsjs Alpine和DCMTK的Docker映像

    dcmtk:“ DICOM”工具包(“ DCMTK”)的包装

    dcmtk dcmtk的目标是包装'DICOM'工具包('DCMTK') 。 移植了医学数字成像和通信('DICOM')工具包的功能集,这是一组处理成像数据的功能。 安装 您可以使用以下方法从安装dcmtk的发行版本: install.packages( ...

    dicom.rar_dcmtk_dcmtk3.6_dcmtk3.6.0_dicom

    3. **命令行工具**:DCMTK提供了一系列的命令行工具,如dcmdump用于查看DICOM文件内容,dcmsend用于发送DICOM数据,dcmscp作为DICOM接收器,以及dcmmkdir用于创建DICOM目录结构等。 4. **API接口**:DCMTK提供了C++...

    DCMTK 新手使用指南

    在编辑时,可能会出现“fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds”错误。这是因为需要在 Project->Settings->Preprocessor definitions 中添加相应的预处理器定义。 DCMTK 库...

    DCMTK3.6.7-Win11-VS2019-Release/Debug

    在Visual Studio 2019环境下,你可以通过以下步骤集成DCMTK: 1. 解压提供的`Dcmtk-3.6.7`压缩包。 2. 配置项目的属性页,添加DCMTK库的包含目录(头文件)和库目录(链接库)。 3. 链接所需的DCMTK库文件,这些...

    dcmtk-install.zip

    接下来,我们看看如何在VS2017和Qt5环境中集成和使用DCMTK: 1. **环境配置**:安装CMake,创建一个新项目,设置VS2017作为生成器,指定Qt5和DCMTK的路径。 2. **添加依赖**:在CMakeLists.txt文件中链接DCMTK库,...

    DCMTK-已编译的dcmtk

    名称:DCMTK 评级:★★★★★ 开源许可:BSD 功能: 影像处理,影像归档,影像管理,影像传输 标准:DICOM 语言:英语 客户端: 桌面 平台:跨平台 编程语言:C/C++ 官方网站:http://dicom.offis.de/

    Dcm.zip_dcm_dcmtk vs2008_img2dcm.exe DCMTK_site:www.pudn.com_显示D

    首先,"DCMTK"是DICOM(Digital Imaging and Communications in Medicine)工具包的缩写,这是一个开源软件库,主要用于医学图像处理,如读取、写入和转换DICOM格式的数据。"vs2008"指的是Visual Studio 2008,这是...

    最全DCMTK攻略

    DCMTK攻略 DCMTK(DICOM Toolkit)是德国Offis公司开发的开源项目,旨在提供一个实现DICOM协议的平台,为开发者提供了一个便捷的开发环境。DCMTK提供了所有的源代码、支持库和帮助文档,支持多种操作系统,包括...

    dcmtk-3.6.6.zip

    DCMTK(DICOM ToolKit)是一个开源软件库,专门用于处理医学图像数据,符合DICOM(Digital Imaging and Communications in Medicine)标准。该标准在医疗领域广泛使用,用于存储、传输和打印医学影像数据。DCMTK ...

    DCMTK入门指南-编译说明

    DCMTK入门指南-编译说明 DCMTK(DICOM_toolkit)是一个开源软件,使得开发者可以轻松地处理DICOM格式的医学图像。以下是 DCMTK 的编译说明: 环境准备 在编译 DCMTK 之前,需要准备以下环境: * 操作系统:WIN7 ...

    dcmtk-3.6.0官方帮助文档

    DCMTK(Digital Imaging and Communications in Medicine Toolkit)是开源软件库,主要用于开发医学影像通信标准(DICOM)的软件。这个3.6.0版本的官方帮助文档是开发者和使用者理解DCMTK的重要资源,提供了详尽的...

    已编译好的dcmtk工具包,包含所有dcmtk工具,win10亲测可用

    DCMTK(Digital Imaging and Communications in Medicine Toolkit)是一款开源的医学图像处理库,主要用于医疗影像数据的处理、传输和解析。这个压缩包提供的是已经针对Windows 10操作系统编译好的DCMTK工具集,意味...

    dcmtk-3.5.3-html-help.zip_Help!_dcmtk_dcmtk help

    DCMTK(DICOM ToolKit)是一套开源的软件库,专门用于开发处理DICOM(Digital Imaging and Communications in Medicine)标准的应用程序。DICOM是一种广泛应用于医疗成像领域的国际标准,它定义了医学图像和相关数据...

    dcmtk_3.5.4.orig.tar.gz_DCMTK DICOM_dcmtk

    DCMTK(DICOM Toolkit)是开放源代码的软件库,专为开发和处理遵循DICOM(Digital Imaging and Communications in Medicine)标准的医疗影像数据而设计。DICOM是一种广泛使用的国际标准,它定义了医疗设备之间以及...

    Windows Qt环境下DCMTK库

    **Windows Qt环境下的DCMTK库** DCMTK(DICOM Toolkit)是一个开源软件库,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计。DICOM是医学成像领域广泛使用的通信协议和数据格式标准。...

    DCMTK的生成及加载和一些使用的例子

    - 下载最新版本的DCMTK源代码,例如版本3.5.3的下载链接为:[ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk353/dcmtk-3.5.3.zip](ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk353/...

    DCMTK调试攻略--vc6.0中DCMTK环境搭建

    ### DCMTK调试攻略——vc6.0中DCMTK环境搭建 #### 一、前言 DCMTK(Digital Imaging and Communications in Medicine ToolKit)是DICOM标准的一个开源实现库,广泛应用于医疗图像处理领域。对于刚接触DCMTK的新手...

Global site tag (gtag.js) - Google Analytics