00001 /* 00002 Copyright (C) 1993, 1994, RSNA and Washington University 00003 00004 The software and supporting documentation for the Radiological 00005 Society of North America (RSNA) 1993, 1994 Digital Imaging and 00006 Communications in Medicine (DICOM) Demonstration were developed 00007 at the 00008 Electronic Radiology Laboratory 00009 Mallinckrodt Institute of Radiology 00010 Washington University School of Medicine 00011 510 S. Kingshighway Blvd. 00012 St. Louis, MO 63110 00013 as part of the 1993, 1994 DICOM Central Test Node project for, and 00014 under contract with, the Radiological Society of North America. 00015 00016 THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR 00017 WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS 00018 PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR 00019 USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY 00020 SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF 00021 THE SOFTWARE IS WITH THE USER. 00022 00023 Copyright of the software and supporting documentation is 00024 jointly owned by RSNA and Washington University, and free access 00025 is hereby granted as a license to use this software, copy this 00026 software and prepare derivative works based upon this software. 00027 However, any distribution of this software source code or 00028 supporting documentation or derivative works (source code and 00029 supporting documentation) must include the three paragraphs of 00030 the copyright notice. 00031 */ 00032 /* Copyright marker. Copyright will be inserted above. Do not remove */ 00033 /* 00034 ** @$=@$=@$= 00035 */ 00036 /* 00037 ** DICOM 93 00038 ** Electronic Radiology Laboratory 00039 ** Mallinckrodt Institute of Radiology 00040 ** Washington University School of Medicine 00041 ** 00042 ** Module Name(s): 00043 ** Author, Date: Stephen M. Moore, xx-May-92 00044 ** Intent: 00045 ** This header contains private typedefs for the DICOM Upper Layer 00046 ** (DUL) protocol package. This is to be used to compile the DUL 00047 ** package and is not intended to be seen by the applications programmer. 00048 ** Files at the package level should include this file to get the 00049 ** proper typedefs and include the public file "dulprotocol.h" to 00050 ** get the public definitions and function prototypes. I have omitted 00051 ** the public definitions and prototypes on purpose so that they 00052 ** exist in only one location. 00053 ** 00054 ** Last Update: $Author: joergr $, $Date: 2010-10-14 13:19:29 $ 00055 ** Revision: $Revision: 1.10 $ 00056 ** Status: $State: Exp $ 00057 */ 00058 00059 #ifndef DULPRIVATE_H 00060 #define DULPRIVATE_H 00061 00062 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00063 00064 00065 #define PRV_DEFAULTTIMEOUT -1 00066 #define PRV_LISTENBACKLOG 50 00067 00068 OFCondition DUL_InitializeFSM(void); 00069 OFCondition 00070 PRV_StateMachine(PRIVATE_NETWORKKEY ** network, 00071 PRIVATE_ASSOCIATIONKEY ** association, int event, int state, 00072 void *params); 00073 00074 OFCondition 00075 constructAssociatePDU(DUL_ASSOCIATESERVICEPARAMETERS * items, 00076 unsigned char type, PRV_ASSOCIATEPDU * pdu); 00077 OFCondition 00078 constructAssociateRejectPDU(unsigned char result, 00079 unsigned char source, unsigned char reason, 00080 DUL_REJECTRELEASEABORTPDU * pdu); 00081 OFCondition constructReleaseRQPDU(DUL_REJECTRELEASEABORTPDU * pdu, unsigned long mode); 00082 OFCondition constructReleaseRPPDU(DUL_REJECTRELEASEABORTPDU * pdu); 00083 OFCondition 00084 constructAbortPDU(unsigned char src, unsigned char reason, 00085 DUL_REJECTRELEASEABORTPDU * pdu, unsigned long mode); 00086 OFCondition 00087 constructDataPDU(void *buf, unsigned long length, DUL_DATAPDV type, 00088 DUL_PRESENTATIONCONTEXTID ctxID, OFBool last, DUL_DATAPDU * pdu); 00089 OFCondition 00090 streamAssociatePDU(PRV_ASSOCIATEPDU * assoc, unsigned char *b, 00091 unsigned long maxLength, unsigned long *rtnLen); 00092 OFCondition 00093 streamRejectReleaseAbortPDU(DUL_REJECTRELEASEABORTPDU * pdu, 00094 unsigned char *b, unsigned long maxLength, unsigned long *rtnLen); 00095 OFCondition 00096 streamDataPDUHead(DUL_DATAPDU * pdu, unsigned char *buf, 00097 unsigned long maxLength, unsigned long *rtnLen); 00098 OFCondition 00099 parseAssociate(unsigned char *buf, unsigned long len, 00100 PRV_ASSOCIATEPDU * pdu); 00101 OFCondition 00102 PRV_NextPDUType(PRIVATE_ASSOCIATIONKEY ** association, 00103 DUL_BLOCKOPTIONS block, int timeout, unsigned char *type); 00104 00105 #endif 00106 00107 /* 00108 ** CVS Log 00109 ** $Log: dulpriv.h,v $ 00110 ** Revision 1.10 2010-10-14 13:19:29 joergr 00111 ** Updated copyright header. Added reference to COPYRIGHT file. 00112 ** 00113 ** Revision 1.9 2009-11-18 11:53:59 uli 00114 ** Switched to logging mechanism provided by the "new" oflog module. 00115 ** 00116 ** Revision 1.8 2005-12-08 15:48:09 meichel 00117 ** Updated Makefiles to correctly install header files 00118 ** 00119 ** Revision 1.7 2004/02/25 12:31:17 meichel 00120 ** Added global option flag for compatibility with very old DCMTK releases in the 00121 ** DICOM upper layer and ACSE code. Default is automatic handling, which should 00122 ** work in most cases. 00123 ** 00124 ** Revision 1.6 2001/10/12 10:18:41 meichel 00125 ** Replaced the CONDITION types, constants and functions in the dcmnet module 00126 ** by an OFCondition based implementation which eliminates the global condition 00127 ** stack. This is a major change, caveat emptor! 00128 ** 00129 ** Revision 1.5 2001/09/26 12:29:04 meichel 00130 ** Implemented changes in dcmnet required by the adaptation of dcmdata 00131 ** to class OFCondition. Removed some unused code. 00132 ** 00133 ** Revision 1.4 2000/03/03 14:11:26 meichel 00134 ** Implemented library support for redirecting error messages into memory 00135 ** instead of printing them to stdout/stderr for GUI applications. 00136 ** 00137 ** Revision 1.3 1997/07/21 08:47:25 andreas 00138 ** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL) 00139 ** with one unique boolean type OFBool. 00140 ** 00141 ** Revision 1.2 1997/01/13 15:53:13 hewett 00142 ** Added missing function prototypes (required for CodeWarrior 10). 00143 ** 00144 ** Revision 1.1.1.1 1996/03/26 18:38:46 hewett 00145 ** Initial Release. 00146 ** 00147 ** 00148 */