📄 dimse.h
字号:
typedef void (*DIMSE_FindUserCallback)( /* in */ void *callbackData, T_DIMSE_C_FindRQ *request, /* original find request */ int responseCount, T_DIMSE_C_FindRSP *response, /* pending response received */ DcmDataset *responseIdentifiers /* pending response identifiers */ );OFConditionDIMSE_findUser( /* in */ T_ASC_Association *assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_FindRQ *request, DcmDataset *requestIdentifiers, DIMSE_FindUserCallback callback, void *callbackData, /* blocking info for response */ T_DIMSE_BlockingMode blockMode, int timeout, /* out */ T_DIMSE_C_FindRSP *response, DcmDataset **statusDetail);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);OFConditionDIMSE_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); OFConditionDIMSE_sendFindResponse(T_ASC_Association * assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_FindRQ *request, T_DIMSE_C_FindRSP *response, DcmDataset *responseIdentifiers, DcmDataset *statusDetail);/* * Query/Retrieve Service Class (MOVE) */typedef void (*DIMSE_MoveUserCallback)( /* in */ void *callbackData, T_DIMSE_C_MoveRQ *request, int responseCount, T_DIMSE_C_MoveRSP *response);typedef void (*DIMSE_SubOpProviderCallback)(void *subOpCallbackData, T_ASC_Network *net, T_ASC_Association **subOpAssoc);OFConditionDIMSE_moveUser( /* in */ T_ASC_Association *assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_MoveRQ *request, DcmDataset *requestIdentifiers, DIMSE_MoveUserCallback callback, void *callbackData, /* blocking info for response */ T_DIMSE_BlockingMode blockMode, int timeout, /* sub-operation provider callback */ T_ASC_Network *net, DIMSE_SubOpProviderCallback subOpCallback, void *subOpCallbackData, /* out */ T_DIMSE_C_MoveRSP *response, DcmDataset **statusDetail, DcmDataset **responseIdentifers, OFBool ignorePendingDatasets = OFFalse); typedef void (*DIMSE_MoveProviderCallback)( /* in */ void *callbackData, OFBool cancelled, T_DIMSE_C_MoveRQ *request, DcmDataset *requestIdentifiers, int responseCount, /* out */ T_DIMSE_C_MoveRSP *response, DcmDataset **statusDetail, DcmDataset **responseIdentifiers);OFConditionDIMSE_moveProvider( /* in */ T_ASC_Association *assoc, T_ASC_PresentationContextID presIdCmd, T_DIMSE_C_MoveRQ *request, DIMSE_MoveProviderCallback callback, void *callbackData, /* blocking info for data set */ T_DIMSE_BlockingMode blockMode, int timeout);OFConditionDIMSE_sendMoveResponse(T_ASC_Association * assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_MoveRQ *request, T_DIMSE_C_MoveRSP *response, DcmDataset *rspIds, DcmDataset *statusDetail);/* * Query/Retrieve Service Class (GET) */typedef void (*DIMSE_GetUserCallback)( /* in */ void *callbackData, T_DIMSE_C_GetRQ *request, int responseCount, T_DIMSE_C_GetRSP *response);typedef void (*DIMSE_SubOpProviderCallback)(void *subOpCallbackData, T_ASC_Network *net, T_ASC_Association **subOpAssoc);OFConditionDIMSE_getUser( /* in */ T_ASC_Association *assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_GetRQ *request, DcmDataset *requestIdentifiers, DIMSE_GetUserCallback callback, void *callbackData, /* blocking info for response */ T_DIMSE_BlockingMode blockMode, int timeout, /* sub-operation provider callback */ T_ASC_Network *net, DIMSE_SubOpProviderCallback subOpCallback, void *subOpCallbackData, /* out */ T_DIMSE_C_GetRSP *response, DcmDataset **statusDetail, DcmDataset **responseIdentifers); typedef void (*DIMSE_GetProviderCallback)( /* in */ void *callbackData, OFBool cancelled, T_DIMSE_C_GetRQ *request, DcmDataset *requestIdentifiers, int responseCount, /* out */ T_DIMSE_C_GetRSP *response, DcmDataset **statusDetail, DcmDataset **responseIdentifiers);OFConditionDIMSE_getProvider( /* in */ T_ASC_Association *assoc, T_ASC_PresentationContextID presIdCmd, T_DIMSE_C_GetRQ *request, DIMSE_GetProviderCallback callback, void *callbackData, /* blocking info for data set */ T_DIMSE_BlockingMode blockMode, int timeout);OFConditionDIMSE_sendGetResponse(T_ASC_Association * assoc, T_ASC_PresentationContextID presID, T_DIMSE_C_GetRQ *request, T_DIMSE_C_GetRSP *response, DcmDataset *rspIds, DcmDataset *statusDetail);/* * Query/Retrieve Service Class (CANCEL) */ OFConditionDIMSE_sendCancelRequest(T_ASC_Association * assoc, T_ASC_PresentationContextID presId, DIC_US msgId);OFConditionDIMSE_checkForCancelRQ(T_ASC_Association * assoc, T_ASC_PresentationContextID presId, DIC_US msgId);/**** * * Low Level DIMSE Messaging * With the exception of DIMSE_receiveCommand, * the following function are only intended for use if you * wish to implement an alternative interface to the * higher level routines provided above. * Service call providers will have to use DIMSE_receiveCommand * before calling the appropriate provider routine declared above. * */typedef void (*DIMSE_ProgressCallback)(void *callbackContext, unsigned long byteCount);OFCondition DIMSE_sendMessageUsingFileData(T_ASC_Association *association, T_ASC_PresentationContextID presID, T_DIMSE_Message *msg, DcmDataset *statusDetail, const char* dataFileName, DIMSE_ProgressCallback callback, void *callbackContext, DcmDataset **commandSet=NULL);OFCondition DIMSE_sendMessageUsingMemoryData(T_ASC_Association *association, T_ASC_PresentationContextID presID, T_DIMSE_Message *msg, DcmDataset *statusDetail, DcmDataset *dataObject, DIMSE_ProgressCallback callback, void *callbackContext, DcmDataset **commandSet=NULL);OFConditionDIMSE_receiveCommand(T_ASC_Association *association, T_DIMSE_BlockingMode blocking, int timeout, T_ASC_PresentationContextID *presID, T_DIMSE_Message *msg, DcmDataset **statusDetail, DcmDataset **commandSet=NULL);OFConditionDIMSE_receiveDataSetInMemory(T_ASC_Association *association, T_DIMSE_BlockingMode blocking, int timeout, T_ASC_PresentationContextID *presID, DcmDataset **dataObject, DIMSE_ProgressCallback callback, void *callbackContext);OFConditionDIMSE_createFilestream( /* in */ const char *filename, const T_DIMSE_C_StoreRQ *request, const T_ASC_Association *assoc, T_ASC_PresentationContextID presIdCmd, int writeMetaheader, /* out */ DcmOutputFileStream **filestream);OFConditionDIMSE_receiveDataSetInFile(T_ASC_Association *assoc, T_DIMSE_BlockingMode blocking, int timeout, T_ASC_PresentationContextID *presID, DcmOutputStream *filestream, DIMSE_ProgressCallback callback, void *callbackData);OFCondition DIMSE_ignoreDataSet( T_ASC_Association * assoc, T_DIMSE_BlockingMode blocking, int timeout, DIC_UL * bytesRead, DIC_UL * pdvCount);/* * Misc functions */void DIMSE_debug(int level); /* set debug level */void DIMSE_warning(T_ASC_Association *assoc, const char *format, ...);/* Debugging functions for printing contents of a command structure */void DIMSE_printCommand(FILE *f, T_DIMSE_Message *msg);void DIMSE_printCEchoRQ(FILE * f, T_DIMSE_C_EchoRQ * req);void DIMSE_printCEchoRSP(FILE * f, T_DIMSE_C_EchoRSP * rsp);void DIMSE_printCStoreRQ(FILE * f, T_DIMSE_C_StoreRQ * req);void DIMSE_printCStoreRSP(FILE * f, T_DIMSE_C_StoreRSP * rsp);void DIMSE_printCGetRQ(FILE * f, T_DIMSE_C_GetRQ * req);void DIMSE_printCGetRSP(FILE * f, T_DIMSE_C_GetRSP * rsp);void DIMSE_printCMoveRQ(FILE * f, T_DIMSE_C_MoveRQ * req);void DIMSE_printCMoveRSP(FILE * f, T_DIMSE_C_MoveRSP * rsp);void DIMSE_printCFindRQ(FILE * f, T_DIMSE_C_FindRQ * req);void DIMSE_printCFindRSP(FILE * f, T_DIMSE_C_FindRSP * rsp);void DIMSE_printCCancelRQ(FILE * f, T_DIMSE_C_CancelRQ * req);void DIMSE_printNEventReportRQ(FILE * f, T_DIMSE_N_EventReportRQ * req);void DIMSE_printNEventReportRSP(FILE * f, T_DIMSE_N_EventReportRSP * rsp);void DIMSE_printNGetRQ(FILE * f, T_DIMSE_N_GetRQ * req);void DIMSE_printNGetRSP(FILE * f, T_DIMSE_N_GetRSP * rsp);void DIMSE_printNSetRQ(FILE * f, T_DIMSE_N_SetRQ * req);void DIMSE_printNSetRSP(FILE * f, T_DIMSE_N_SetRSP * rsp);void DIMSE_printNActionRQ(FILE * f, T_DIMSE_N_ActionRQ * req);void DIMSE_printNActionRSP(FILE * f, T_DIMSE_N_ActionRSP * rsp);void DIMSE_printNCreateRQ(FILE * f, T_DIMSE_N_CreateRQ * req);void DIMSE_printNCreateRSP(FILE * f, T_DIMSE_N_CreateRSP * rsp);void DIMSE_printNDeleteRQ(FILE * f, T_DIMSE_N_DeleteRQ * req);void DIMSE_printNDeleteRSP(FILE * f, T_DIMSE_N_DeleteRSP * rsp);void DIMSE_printMessage(ostream& outstream, T_DIMSE_Message &msg, DcmItem *dataset=NULL);#endif/*** CVS Log** $Log: dimse.h,v $** Revision 1.17 2005/12/08 16:02:21 meichel** Changed include path schema for all DCMTK header files**** Revision 1.16 2005/11/22 16:44:44 meichel** Added option to movescu that allows graceful handling of Move SCPs** that send illegal datasets following pending C-MOVE-RSP messages.**** Revision 1.15 2005/02/22 09:40:55 meichel** Fixed two bugs in "bit-preserving" Store SCP code. Errors while creating or** writing the DICOM file (e.g. file system full) now result in a DIMSE error** response (out of resources) being sent back to the SCU.**** Revision 1.14 2003/08/27 15:03:33 meichel** Changed anonymous struct typedefs into struct declarations**** Revision 1.13 2002/09/10 16:00:47 meichel** Added global flag dcmMaxOutgoingPDUSize that allows to restrict the maximum** size of outgoiung P-DATA PDUs to a value less than the maximum supported by** the remote application entity or this library. May be useful if there is an** interaction between PDU size and other network layers, e. g. TLS, IP or** below.**** Revision 1.12 2002/08/27 17:00:59 meichel** Initial release of new DICOM I/O stream classes that add support for stream** compression (deflated little endian explicit VR transfer syntax)**** Revision 1.11 2001/10/12 10:18:26 meichel** Replaced the CONDITION types, constants and functions in the dcmnet module** by an OFCondition based implementation which eliminates the global condition** stack. This is a major change, caveat emptor!**** Revision 1.10 2000/12/15 13:28:16 meichel** Global flag to enable/disable workaround code for some buggy Store SCUs** in DIMSE_storeProvider(). If enabled, an illegal space-padding in the** Affected SOP Instance UID field of the C-STORE-RQ message is retained** in the corresponding C-STORE-RSP message.**** Revision 1.9 2000/06/07 08:57:52 meichel** dcmnet DIMSE routines now allow to retrieve raw command sets as DcmDataset** objects, e.g. for logging purposes. Added enhanced message dump functions.**** Revision 1.8 2000/01/31 17:14:17 meichel** ntroduced new flag g_dimse_save_dimse_data. If enabled, all DIMSE messages** and data sets sent or received are stored in files.** This facilitates debugging of DIMSE problems.**** Revision 1.7 1999/04/19 08:36:48 meichel** Added support for C-FIND-CANCEL/C-MOVE-CANCEL in DIMSE_storeUser().**** Revision 1.6 1998/08/10 08:53:40 meichel** renamed member variable in DIMSE structures from "Status" to** "DimseStatus". This is required if dcmnet is used together with** <X11/Xlib.h> where Status is #define'd as int.**** Revision 1.5 1998/06/29 12:14:26 meichel** Removed some name clashes (e.g. local variable with same** name as class member) to improve maintainability.** Applied some code purifications proposed by the gcc 2.8.1 -Weffc++ option.**** Revision 1.4 1997/07/21 08:40:10 andreas** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL)** with one unique boolean type OFBool.**** Revision 1.3 1997/05/23 10:47:06 meichel** Major rewrite of storescp application. See CHANGES for details.** Changes required to interfaces of some DIMSE functions.**** Revision 1.2 1996/04/25 16:06:28 hewett** Replaced declarations of DIC_UL with unsigned long.**** Revision 1.1.1.1 1996/03/26 18:38:45 hewett** Initial Release.*****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -