LDicomDS: CopyDS

# include“ltdic.h”

L_UINT16LDicomDS:: CopyDS (pDstParent、pSrcDS pSrcParent)

L_UINT16LDicomDS:: CopyDS (pDstParent、pSrcDS pSrcParent, pfnCallback, pUserData)

复制数据元素从一个数据集到另一个。

参数

pDICOMELEMENTpDstParent

指针DICOMELEMENT结构包含一个数据元素在目标数据集。源数据集的副本将数据元素插入的孩子。

LDicomDS* pSrcDS

DICOM对象,其中包含要复制的数据集(源数据集)。

pDICOMELEMENTpSrcParent

指针DICOMELEMENT结构包含一个数据元素在源数据集。所有的孩子,孙子,等这个元素将被添加到目标数据集。

COPYDSCALLBACKpfnCallback

可选的回调函数。如果你不提供一个回调函数,使用NULL作为该参数的值。如果你提供一个回调函数,使用函数指针作为该参数的值。回调函数必须遵守所描述的函数原型COPYDSCALLBACK函数。

L_VOID* pUserData

空指针,您可以使用它通过一个或多个回调函数需要额外的参数。要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后,在这个参数,通过变量的地址或结构,铸造L_VOID *。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。如果不需要额外的参数,该参数可以传递NULL。

返回

价值 意义
0 成功
> 0 一个错误发生。指返回代码

评论

如果pSrcParent和pDstParent都是NULL,源数据集将插入到根级别的目标数据集。因此,最高水平的元素源数据集将被添加为兄弟姐妹的最高水平目标数据集的元素。如下图中可以看到这个。

图像\ CopyNN.gif

如果pSrcParent不是零和pDstParent是NULL, pSrcParent的孩子将被添加在根级别的目标数据集(即兄弟姐妹最高层元素)。如下图中可以看到这个。注意,源元素添加在蓝色。

图像\ CopySN.gif

如果pScrParent是NULL, pDstParent不是NULL,整个源数据集将被添加作为pDstParent孩子。如下图中可以看到这个。

图像\ CopyND.gif

如果pSrcParent和pDstParent都不是NULL,那么的孩子pSrcParent添加pDstParent的孩子。如下图中可以看到这个。原pDstParent的孩子在红色和源元素添加在蓝色。

图像\ CopySD.gif

如果一个插入的元素有相同的标记值作为一个目标元素在同一水平和相同的父母,然后从源元素的值复制到目标元素和相应的子元素被添加。例如,下图显示了调用的结果LDicomDS:: CopyDS。如果两个元素箭头所示有相同的标记值,该值从源复制到目标元素和结构上正确的结果。这是目标元素的红色轮廓所示蓝色源元素的中心。

图像\ CopySDA.gif

使目标数据集的精确复制源数据集,而不是插入目标数据集内,你必须叫LDicomDS:: ResetDS与目标数据集参数,在调用LDicomDS之前::CopyDS。

只复制部分数据集,调用LDicomDS: CopyDS过载,需要一个回调。调用回调之前每个DICOM元素被复制。在回调函数返回TRUE复制的元素。在回调函数返回FALSE离开元素的数据集。欲了解更多信息,请参阅文档188宝金博安卓下载COPYDSCALLBACK

必需的dll和库

平台

Win32, x64

另请参阅

功能

主题

例子

这些例子复制元素从一个数据集到另一个数据集。
第一个例子是一个完整的副本。
第二个示例复制所有元素除了像素数据元素。

L_INT LDicomDS_CopyDSExample (){L_UINT32类;L_UINT16 uFlags;L_TCHAR buf [180];LDicomDS DS1(空);LDicomDS DS2(空);DS1。InitDS (CLASS_CR_IMAGE_STORAGE DS_LITTLE_ENDIAN | DS_IMPLICIT_VR);DS1。GetInfoDS(类、&uFlags);wsprintf (buf文本(“数据集# 1类= % d \ nFlags = % d”)、类uFlags);:对话框(零、缓冲区、文本(“测试”),MB_OK);DS2。CopyDS (ds1的空,空);DS2。GetInfoDS(类、&uFlags);wsprintf (buf文本(“数据集# 2类= % d \ nFlags = % d”)、类uFlags);:对话框(零、缓冲区、文本(“测试”),MB_OK);返回DICOM_SUCCESS;}L_BOOL EXT_CALLBACK pfnCopyDSCallBack (pDICOMELEMENT pElement, L_UINT16 nFlags, L_VOID * pUserData){UNREFERENCED_PARAMETER (nFlags);UNREFERENCED_PARAMETER (pUserData);如果(pElement - > nTag = = TAG_PIXEL_DATA)返回虚假的;返回真正的;}L_INT LDicomDS_CopyDSExample2 (LDicomDS * pSrcDS L_TCHAR * pszName){L_INT nRet = DICOM_SUCCESS;LDicomDS ds;如果(pSrcDS & & pszName){nRet = ds。pfnCopyDSCallBack pSrcDS CopyDS(空,空,空);}ds。保存(pszName 0);返回nRet;}

LEADTOOLS DICOM c++类库的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。