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: meichel $, $Date: 2005/12/08 15:48:09 $ 00055 ** Source File: $RCSfile: dulpriv.h,v $ 00056 ** Revision: $Revision: 1.8 $ 00057 ** Status: $State: Exp $ 00058 */ 00059 00060 #ifndef DULPRIVATE_H 00061 #define DULPRIVATE_H 00062 00063 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00064 00065 00066 #define PRV_DEFAULTTIMEOUT -1 00067 #define PRV_LISTENBACKLOG 50 00068 00069 #define DEBUG_DEVICE COUT 00070 00071 OFCondition DUL_InitializeFSM(void); 00072 OFCondition 00073 PRV_StateMachine(PRIVATE_NETWORKKEY ** network, 00074 PRIVATE_ASSOCIATIONKEY ** association, int event, int state, 00075 void *params); 00076 00077 OFCondition 00078 constructAssociatePDU(DUL_ASSOCIATESERVICEPARAMETERS * items, 00079 unsigned char type, PRV_ASSOCIATEPDU * pdu); 00080 OFCondition 00081 constructAssociateRejectPDU(unsigned char result, 00082 unsigned char source, unsigned char reason, 00083 DUL_REJECTRELEASEABORTPDU * pdu); 00084 OFCondition constructReleaseRQPDU(DUL_REJECTRELEASEABORTPDU * pdu, unsigned long mode); 00085 OFCondition constructReleaseRPPDU(DUL_REJECTRELEASEABORTPDU * pdu); 00086 OFCondition 00087 constructAbortPDU(unsigned char src, unsigned char reason, 00088 DUL_REJECTRELEASEABORTPDU * pdu, unsigned long mode); 00089 OFCondition 00090 constructDataPDU(void *buf, unsigned long length, DUL_DATAPDV type, 00091 DUL_PRESENTATIONCONTEXTID ctxID, OFBool last, DUL_DATAPDU * pdu); 00092 OFCondition 00093 streamAssociatePDU(PRV_ASSOCIATEPDU * assoc, unsigned char *b, 00094 unsigned long maxLength, unsigned long *rtnLen); 00095 OFCondition 00096 streamRejectReleaseAbortPDU(DUL_REJECTRELEASEABORTPDU * pdu, 00097 unsigned char *b, unsigned long maxLength, unsigned long *rtnLen); 00098 OFCondition 00099 streamDataPDUHead(DUL_DATAPDU * pdu, unsigned char *buf, 00100 unsigned long maxLength, unsigned long *rtnLen); 00101 OFCondition 00102 parseAssociate(unsigned char *buf, unsigned long len, 00103 PRV_ASSOCIATEPDU * pdu); 00104 OFCondition 00105 PRV_NextPDUType(PRIVATE_ASSOCIATIONKEY ** association, 00106 DUL_BLOCKOPTIONS block, int timeout, unsigned char *type); 00107 00108 void fsmDebug(OFBool flag); 00109 void constructDebug(OFBool flag); 00110 void parseDebug(OFBool flag); 00111 00112 #endif 00113 00114 /* 00115 ** CVS Log 00116 ** $Log: dulpriv.h,v $ 00117 ** Revision 1.8 2005/12/08 15:48:09 meichel 00118 ** Updated Makefiles to correctly install header files 00119 ** 00120 ** Revision 1.7 2004/02/25 12:31:17 meichel 00121 ** Added global option flag for compatibility with very old DCMTK releases in the 00122 ** DICOM upper layer and ACSE code. Default is automatic handling, which should 00123 ** work in most cases. 00124 ** 00125 ** Revision 1.6 2001/10/12 10:18:41 meichel 00126 ** Replaced the CONDITION types, constants and functions in the dcmnet module 00127 ** by an OFCondition based implementation which eliminates the global condition 00128 ** stack. This is a major change, caveat emptor! 00129 ** 00130 ** Revision 1.5 2001/09/26 12:29:04 meichel 00131 ** Implemented changes in dcmnet required by the adaptation of dcmdata 00132 ** to class OFCondition. Removed some unused code. 00133 ** 00134 ** Revision 1.4 2000/03/03 14:11:26 meichel 00135 ** Implemented library support for redirecting error messages into memory 00136 ** instead of printing them to stdout/stderr for GUI applications. 00137 ** 00138 ** Revision 1.3 1997/07/21 08:47:25 andreas 00139 ** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL) 00140 ** with one unique boolean type OFBool. 00141 ** 00142 ** Revision 1.2 1997/01/13 15:53:13 hewett 00143 ** Added missing function prototypes (required for CodeWarrior 10). 00144 ** 00145 ** Revision 1.1.1.1 1996/03/26 18:38:46 hewett 00146 ** Initial Release. 00147 ** 00148 ** 00149 */