LDicomNet: SendNReportRequest

# include“ltdic.h”

L_INTLDicomNet::SendNReportRequest(nPresentationID, nMessageID, pszClass, pszInstance, nEvent, pDS)

发送一个N-EVENT-REPORT-REQ发送给连接的对等成员的消息。该函数可在pac成像工具包。

参数

L_UCHARnPresentationID

表示ID。表示ID提供有关数据的类类型和传输数据时使用的传输语法的信息。

L_UINT16nMessageID

消息ID。连接的成员发送的每条消息都应该有唯一的ID。由于连接的成员可以发送多条消息,因此此ID允许该成员识别特定请求何时完成。

L_TCHAR* pszClass

受请求影响的类。这将是一个SOP类或SOP元类。

L_TCHAR* pszInstance

类的实例。例如,一个服务器可能有三个核医学类实例。该值标识具有特定实例的数据。

L_UINT16nEvent

要为其生成报告的应用程序特定的事件。

LDicomDS* pDS

特定于应用程序的数据集,包含与操作相关的信息。

返回

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

评论

调用此函数将生成对LDicomNet: OnReceiveNReportRequest在SCP上。SCP应该通过调用进行响应LDicomNet: SendNReportResponse哪个将生成对的调用LDicomNet: OnReceiveNReportResponse

生成一个报告,让连接到服务器的所有对等体知道发生了什么事件。这个事件可能是增加一个新的病人,删除一个病人,增加一个新的研究,等等。指定发生事件的nEvent值由服务器决定。要找出使用的值,必须与创建服务器的组织联系。在创建服务器时,这些值及其对应的含义由创建服务器的值决定。

必需的dll和库

平台

Win32, x64

另请参阅

功能

主题

例子

这个示例向所有客户端发送N-Event Report消息,让他们知道一个新患者已经创建
在这个例子中:

  1. LMyDicomNet是一个派生自LDicomNet的类
  2. LMyDicomNet有以下成员变量:
    m_nClientOrServer:可以是(STATUS_NONE, STATUS_SERVER, STATUS_CLIENT)
    将LMyDicomNet对象标识为服务器或客户端
    m_nDataCommand:可以(COMMAND_C_MOVE,COMMAND_C_GET)
    设置,以便服务器知道C-Store响应是如何生成的
  3. m_pDicomNet指向一个有效的LMyDicomNet对象
    LMyDicomNet * m_pDicomNet

  4. 客户端和服务器之间存在连接

  5. 客户端和服务器之间存在关联
    LMyDicomNet *m_pDicomNet示例L_INT nRet;CString strMsg = TEXT(“\ n N-Event报告”);//选择一个类strClassUID = UID_US_IMAGE_STORAGE;//选择实例strInstance = TEXT(“1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1”);//创建数据集LDicomDS DicomDS;DicomDS。InitDS (CLASS_UNKNOWN 0);//添加所需的元素/ / TAG_SPECIFIC_CHARACTER_SETpDICOMTAG = LDicomTag::查找(TAG_SPECIFIC_CHARACTER_SET);pDICOMELEMENT pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_SPECIFIC_CHARACTER_SET,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);/ / TAG_INSTANCE_CREATION_DATEpDicomTag = LDicomTag::Find(TAG_INSTANCE_CREATION_DATE);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_INSTANCE_CREATION_DATE,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);VALUEDATE VALUEDATE;valueDate。nYear = 1999;valueDate。nMonth = 12;valueDate。nDay = 31;DicomDS。SetDateValue(pElement, &valueDate, 1);/ / TAG_INSTANCE_CREATION_TIMEpDicomTag = LDicomTag::Find(TAG_INSTANCE_CREATION_TIME);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_INSTANCE_CREATION_TIME,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);VALUETIME VALUETIME;valueTime。nFractions = 0;valueTime。nHours = 12;valueTime。nMinutes = 30;valueTime。nSeconds = 10;DicomDS。SetTimeValue(pElement, &valueTime, 1);/ / TAG_INSTANCE_CREATOR_UIDpDicomTag = LDicomTag::Find(tag_instance_create_uid);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_INSTANCE_CREATOR_UID,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);DicomDS。SetStringValue (pElement文本(“9.9.9999.9”),1、DICOM_CHARACTER_SET_DEFAULT);/ / TAG_PATIENT_NAMEpDicomTag = LDicomTag::Find(TAG_PATIENT_NAME);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_PATIENT_NAME,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);DicomDS。SetStringValue (pElement文本(“dummy_patient_name”),1、DICOM_CHARACTER_SET_DEFAULT);//添加我们想要返回的可选字段/ / TAG_PATIENT_IDpDicomTag = LDicomTag::Find(TAG_PATIENT_ID);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_PATIENT_ID,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);DicomDS。SetStringValue (pElement文本(“dummy_patient_id”),1、DICOM_CHARACTER_SET_DEFAULT);/ / TAG_PATIENT_BIRTH_DATEpDicomTag = LDicomTag::Find(TAG_PATIENT_BIRTH_DATE);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_PATIENT_BIRTH_DATE,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);DicomDS。SetDateValue(pElement, &valueDate, 1);/ / TAG_PATIENT_SEXpDicomTag = LDicomTag::Find(TAG_PATIENT_SEX);pElement = DicomDS。InsertElement (空,/ / pDICOMELEMENT pNeighbor假的,/ / L_BOOL bChildTAG_PATIENT_SEX,/ / L_UINT32 nTagpDicomTag - >极,/ / L_UINT16极假的,/ / L_BOOL bSequence,0/ / L_UINT32 nIndex);DicomDS。SetConvertValue (pElement文本(“M”), 1);//遍历所有客户端(L_UINT32我= 0;我< m_pDicomNet - > GetClientCount ();我+ +)LDicomNet *pDicomNetClient = m_pDicomNet->GetClient(i);//获取客户端的关联对象LDicomAssociate *pDicomAssociate = pDicomNetClient->GetAssociate();//关联中是否支持类?L_UCHAR nPresentationID = pDicomAssociate->FindAbstract((L_TCHAR *)(LPCTSTR)strClassUID);//nPresentationID必须是奇数——0表示失败如果(nPresentationID = = 0)装运箱strTmp;strTmp。(文本格式("抽象语法[%s]不包含在关联中"), strClassUID);strMsg = strMsg + strTmp;其他的//发送N-Report请求消息L_UINT16 uUniqueID = 99;L_UINT16 nEvent = 1;nRet = pDicomNetClient - > SendNReportRequest (nPresentationID,uUniqueID,(L_TCHAR *) (LPCTSTR) strClassUID,(L_TCHAR *) (LPCTSTR) strInstance,nEvent,&DicomDS);如果(nRet > 0)返回nRet;AfxMessageBox (strMsg);返回DICOM_SUCCESS;
LEADTOOLS DICOM c++类库帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。