第一范文网 - 专业文章范例文档资料分享平台

dcmtk程序包简介

来源:用户分享 时间:2025/9/12 8:15:39 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

DcmSignature signer; // signature handler

DcmItem *sigItem = DcmSignature::findFirstSignatureItem(*dataset, stack); while (sigItem) // browse through items that contain digital signatures {

signer.attach(sigItem); // each item may contain multiple signatures for (unsigned long l=0; l < signer.numberOfSignatures(); ++l) {

if (signer.selectSignature(l).good()) {

++counter;

if (signer.verifyCurrent().bad()) // verify signature corrupt_counter++; } }

signer.detach();

sigItem = DcmSignature::findNextSignatureItem(*dataset, stack); }

if (counter == 0)

cerr << \else

cerr << counter << \ << corrupt_counter << \}

--给一个DICOM文件增加签名。 DcmFileFormat fileformat;

if (fileformat.loadFile(\{

DcmDataset *dataset = fileformat.getDataset();

SiCreatorProfile profile; // select the \SiRIPEMD160 mac; // use RIPEMD160 as MAC algorithm DcmSignature signer; // signature handler SiCertificate cert; // our certificate

if (cert.loadCertificate(\{

cerr << \

return; }

SiPrivateKey key; // private key, must be unencrypted here

if (key.loadPrivateKey(\{

cerr << \ return; }

signer.attach(dataset); // connect handler to data set if (signer.createSignature(key, cert, mac, profile).good()) {

fileformat.saveFile(\} }

十、dcmsr程序包

dcmsr是一个结构化报表库和可用工具。这个模块包括一些类来读、写、创建、修改、访问、打印和显示DICOM结构化报表文档。所支持的SOP类列表由DSRTypes::E_DocumentType提供。 主要接口:

--DSRDocument: Interface class for 'dcmsr' (DICOM Structured Reporting Documents). This class supports reading, writing, creation, printing and rendering of DICOM SR documents (according to DICOM PS 3.x-2004, formerly known as Supplement 23). The list of supported SOP classes is available in file \在dsrdoc.h中定义。

--DSRDocumentTree: 管理SR文档树的类。在dsrdoctr.h中定义。

--DSRContentItem: Interface class for content items. This class allows to access the document tree nodes without using any pointers. 在dsrcitem.h中定义。

--DSRCodedEntryValue: Class for coded entry values. 在dsrcodvl.h中定义。 工具:

dsr2html: Render DICOM SR file and data set to HTML dsr2xml: Convert DICOM SR file and data set to XML dsrdump: Dump DICOM SR file and data set xml2dsr: Convert DICOM SR file and data set to XML 举例:

--载入一个DICOM结构化报表,并以HTML格式显示其内容。 DcmFileFormat fileformat;

OFCondition status = fileformat.loadFile(\if (status.good()) {

DSRDocument document;

status = document.read(*fileformat.getDataset()); if (status.good()) {

status = document.renderHTML(cout);

if (status.bad())

cerr << \} else

cerr << \} else

cerr << \--创建一个DICOM结构化报告,并将其存为文件。 DSRDocument document;

document.setPatientsName(\/* ... */

document.getTree().addContentItem(DSRTypes::RT_isRoot, DSRTypes::VT_Container);

document.getTree().getCurrentContentItem().setConceptName(DSRCodedEntryValue(/* some code */));

document.getTree().addContentItem(DSRTypes::RT_hasObsContext, DSRTypes::VT_Code, DSRTypes::AM_belowCurrent); /* ... */

DcmFileFormat fileformat;

OFCondition status = document.write(*fileformat.getDataset()) if (status.good()) {

status = fileformat.saveFile(\if (status.bad())

cerr << \} else

cerr << \--读取文档树的属性,并直接修改。

DSRDocument document(DSRTypes::DT_KeyObjectDoc); /* ... */

document.getTree().addContentItem(DSRTypes::RT_isRoot, DSRTypes::VT_Container);

DSRCodedEntryValue *codePtr = document.getTree().getCurrentContentItem().getConceptNamePtr(); if (codePtr != NULL)

codePtr->setCode(\/* ... */

document.getTree().addContentItem(DSRTypes::RT_contains, DSRTypes::VT_Image); DSRImageReferenceValue *imagePtr =

document.getTree().getCurrentContentItem().getImageReferencePtr(); if (imagePtr != NULL) {

imagePtr->setValue(DSRImageReferenceValue(UID_UltrasoundMultiframeImageStorage, /* image UID */));

imagePtr->setPresentationState(DSRCompositeReferenceValue(UID_GrayscaleSoftcopyPresentationStateStorage, /* GSPS UID */));

imagePtr->getFrameList().addItem(2);

imagePtr->getFrameList().addItem(5); } /* ... */

十一、dcmtls程序包

dcmtls是网络库的安全扩展。This module contains classes that implement DICOM network communication tunneled through a Transport Layer Security (TLS) connection, conforming to the DICOM \external OpenSSL library. 主要接口:

--DcmTLSTransportLayer: factory class which creates secure TLS transport layer connections and maintains the parameters common to all TLS transport connections in one application (e.g. the pool of trusted certificates, the key and certificate to be used for authentication and the list of ciphersuite to be used for association negotiation.)。在tlslayer.h文件中定义。

--DcmTLSConnection: this class represents a TLS (Transport Layer Security) V1 based secure transport connection. 举例:

--TLS的关联请求应用

T_ASC_Network *net; // network initialization code not shown, T_ASC_Parameters *params; // we just assume these pointers to be valid // create TLS object that initializes the random generator through a file // \DcmTLSTransportLayer *tLayer = new DcmTLSTransportLayer( DICOM_APPLICATION_REQUESTOR, \

if (TCS_ok != tLayer->setPrivateKeyFile(\{

cerr << \return; }

if (TCS_ok != tLayer->setCertificateFile(\{

cerr << \return; }

// enable the TLS_RSA_WITH_3DES_EDE_CBC_SHA ciphersuite tLayer->setCipherSuites(SSL3_TXT_RSA_DES_192_CBC3_SHA);

搜索更多关于: dcmtk程序包简介 的文档
dcmtk程序包简介.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3xkyn3wonn1emx02t1ol_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top