DYT/Tool/3rdParty_x64/include/dcmtk/dcmwlm/wltypdef.h
2024-11-22 23:19:31 +08:00

129 lines
3.4 KiB
C

/*
*
* Copyright (C) 1996-2014, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmwlm
*
* Author: Thomas Wilkens
*
* Purpose: Type definitions and macros for dcmwlm project.
*
*/
#ifndef WlmTypeDefinitions_h
#define WlmTypeDefinitions_h
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctagkey.h"
#include "dcmtk/dcmnet/dicom.h" /* for DIC_AE and DIC_NODENAME */
#include "dcmtk/dcmwlm/wldefine.h"
// include this file in doxygen documentation
/** @file wltypdef.h
* @brief type definitions and macros for the dcmwlm module
*/
/// Data source status types
enum WlmDataSourceStatusType
{
WLM_REFUSED_OUT_OF_RESOURCES = 0xa700,
WLM_FAILED_IDENTIFIER_DOES_NOT_MATCH_SOP_CLASS = 0xa900,
WLM_FAILED_UNABLE_TO_PROCESS = 0xc000,
WLM_CANCEL = 0xfe00,
WLM_SUCCESS = 0x0000,
WLM_PENDING = 0xff00,
WLM_PENDING_WARNING = 0xff01
};
/// Data source types
enum WlmDataSourceType
{
DATA_SOURCE_IS_DATABASE,
DATA_SOURCE_IS_DATA_FILES,
DATA_SOURCE_IS_PKI_FILE
};
/// Database types
enum WlmDatabaseType
{
WLM_DATABASE_TYPE_UNKNOWN,
WLM_DATABASE_ORACLE
};
/// Returned Character Set types
enum WlmReturnedCharacterSetType
{
RETURN_NO_CHARACTER_SET,
RETURN_CHARACTER_SET_ISO_IR_100,
RETURN_CHARACTER_SET_FROM_FILE
};
/// name of lockfile for worklist management based on file system
#define LOCKFILENAME "lockfile"
/// structure for non-single process mode
struct DCMTK_DCMWLM_EXPORT WlmProcessSlotType
{
/// name of peer
DIC_NODENAME peerName;
/// calling AE title
DIC_AE callingAETitle;
/// called AE title
DIC_AE calledAETitle;
/// process id
int processId;
/// start time
time_t startTime;
/// indicator if process has storage ability
OFBool hasStorageAbility;
};
/// Reason for refusing association types
enum WlmRefuseReasonType
{
WLM_TOO_MANY_ASSOCIATIONS,
WLM_CANNOT_FORK,
WLM_BAD_APP_CONTEXT,
WLM_BAD_AE_SERVICE,
WLM_FORCED,
WLM_NO_IC_UID
};
/// const objects for error objects
makeOFConditionConst(WLM_EC_InsufficientPortPrivileges, OFM_dcmwlm, 1, OF_error, "Insufficient privileges to listen to port.");
makeOFConditionConst(WLM_EC_InitializationOfNetworkConnectionFailed, OFM_dcmwlm, 2, OF_error, "Initialization of network connection failed.");
makeOFConditionConst(WLM_EC_TerminationOfNetworkConnectionFailed, OFM_dcmwlm, 3, OF_error, "Termination of network connection failed.");
makeOFConditionConst(WLM_EC_DatabaseStatementConfigFilesNotExistent, OFM_dcmwlm, 4, OF_error, "Database statement configuration files not existent.");
makeOFConditionConst(WLM_EC_CannotConnectToDataSource, OFM_dcmwlm, 5, OF_error, "Cannot connect to data source.");
/// number of currently supported matching key attributes
#define NUMBER_OF_SUPPORTED_MATCHING_KEY_ATTRIBUTES 17
/// structure for handling arbitrary types of superior sequences in query result datasets
struct DCMTK_DCMWLM_EXPORT WlmSuperiorSequenceInfoType
{
WlmSuperiorSequenceInfoType() : sequenceTag(), numOfItems(0), currentItem(0)
{ }
/// pointer to sequence element
DcmTagKey sequenceTag;
/// number of items within this sequence element
unsigned long numOfItems;
/// currently processed item
unsigned long currentItem;
};
#endif