最近在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 toolwe 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.
分享到:
相关推荐
专栏博文“DICOM:基于DCMTK实现C-FIND SCU”中对应的源代码。基于dcmtk开源库中的findscu工程,实现的简单的C-FIND SCU,用于示范如何使用dcmtk操作实现具体的DICOM应用。
这是博文《第一个 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映像
dcmtk dcmtk的目标是包装'DICOM'工具包('DCMTK') 。 移植了医学数字成像和通信('DICOM')工具包的功能集,这是一组处理成像数据的功能。 安装 您可以使用以下方法从安装dcmtk的发行版本: install.packages( ...
3. **命令行工具**:DCMTK提供了一系列的命令行工具,如dcmdump用于查看DICOM文件内容,dcmsend用于发送DICOM数据,dcmscp作为DICOM接收器,以及dcmmkdir用于创建DICOM目录结构等。 4. **API接口**:DCMTK提供了C++...
在编辑时,可能会出现“fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds”错误。这是因为需要在 Project->Settings->Preprocessor definitions 中添加相应的预处理器定义。 DCMTK 库...
在Visual Studio 2019环境下,你可以通过以下步骤集成DCMTK: 1. 解压提供的`Dcmtk-3.6.7`压缩包。 2. 配置项目的属性页,添加DCMTK库的包含目录(头文件)和库目录(链接库)。 3. 链接所需的DCMTK库文件,这些...
接下来,我们看看如何在VS2017和Qt5环境中集成和使用DCMTK: 1. **环境配置**:安装CMake,创建一个新项目,设置VS2017作为生成器,指定Qt5和DCMTK的路径。 2. **添加依赖**:在CMakeLists.txt文件中链接DCMTK库,...
名称:DCMTK 评级:★★★★★ 开源许可:BSD 功能: 影像处理,影像归档,影像管理,影像传输 标准:DICOM 语言:英语 客户端: 桌面 平台:跨平台 编程语言:C/C++ 官方网站:http://dicom.offis.de/
首先,"DCMTK"是DICOM(Digital Imaging and Communications in Medicine)工具包的缩写,这是一个开源软件库,主要用于医学图像处理,如读取、写入和转换DICOM格式的数据。"vs2008"指的是Visual Studio 2008,这是...
DCMTK攻略 DCMTK(DICOM Toolkit)是德国Offis公司开发的开源项目,旨在提供一个实现DICOM协议的平台,为开发者提供了一个便捷的开发环境。DCMTK提供了所有的源代码、支持库和帮助文档,支持多种操作系统,包括...
DCMTK(DICOM ToolKit)是一个开源软件库,专门用于处理医学图像数据,符合DICOM(Digital Imaging and Communications in Medicine)标准。该标准在医疗领域广泛使用,用于存储、传输和打印医学影像数据。DCMTK ...
DCMTK入门指南-编译说明 DCMTK(DICOM_toolkit)是一个开源软件,使得开发者可以轻松地处理DICOM格式的医学图像。以下是 DCMTK 的编译说明: 环境准备 在编译 DCMTK 之前,需要准备以下环境: * 操作系统:WIN7 ...
DCMTK(Digital Imaging and Communications in Medicine Toolkit)是开源软件库,主要用于开发医学影像通信标准(DICOM)的软件。这个3.6.0版本的官方帮助文档是开发者和使用者理解DCMTK的重要资源,提供了详尽的...
DCMTK(Digital Imaging and Communications in Medicine Toolkit)是一款开源的医学图像处理库,主要用于医疗影像数据的处理、传输和解析。这个压缩包提供的是已经针对Windows 10操作系统编译好的DCMTK工具集,意味...
DCMTK(DICOM ToolKit)是一套开源的软件库,专门用于开发处理DICOM(Digital Imaging and Communications in Medicine)标准的应用程序。DICOM是一种广泛应用于医疗成像领域的国际标准,它定义了医学图像和相关数据...
DCMTK(DICOM Toolkit)是开放源代码的软件库,专为开发和处理遵循DICOM(Digital Imaging and Communications in Medicine)标准的医疗影像数据而设计。DICOM是一种广泛使用的国际标准,它定义了医疗设备之间以及...
**Windows Qt环境下的DCMTK库** DCMTK(DICOM Toolkit)是一个开源软件库,专为处理DICOM(Digital Imaging and Communications in Medicine)标准而设计。DICOM是医学成像领域广泛使用的通信协议和数据格式标准。...
- 下载最新版本的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(Digital Imaging and Communications in Medicine ToolKit)是DICOM标准的一个开源实现库,广泛应用于医疗图像处理领域。对于刚接触DCMTK的新手...