📄 dcmqrdbi.h
字号:
* which the SOP instance UID for the next DICOM object to be transferred is copied. * @param imageFileName pointer to string of at least MAXPATHLEN+1 characters into * which the file path for the next DICOM object to be transferred is copied. * @param numberOfRemainingSubOperations On return, this parameter will contain * the number of suboperations still remaining for the request * (this number is needed by move responses with PENDING status). * @param status pointer to DB status object in which a DIMSE status code * suitable for use with the C-MOVE-RSP message is set. Status will be * PENDING if more MOVE responses will be generated or SUCCESS if no more * MOVE responses will be generated (SUCCESS indicates the completion of * a operation), or another status code upon failure. * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. */ OFCondition nextMoveResponse( char *SOPClassUID, char *SOPInstanceUID, char *imageFileName, unsigned short *numberOfRemainingSubOperations, DcmQueryRetrieveDatabaseStatus *status); /** cancel the ongoing MOVE request, stop and reset every running operation * associated with this request, delete existing temporary files. * @param status pointer to DB status object in which a DIMSE status code * suitable for use with the C-MOVE-RSP message is set. * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. */ OFCondition cancelMoveRequest(DcmQueryRetrieveDatabaseStatus *status); /** Prune invalid records from the database. * Records referring to non-existant image files are invalid. */ OFCondition pruneInvalidRecords(); // methods not inherited from the base class /** return current debug level */ int getDebugLevel() const; /** enable/disable the DB quota system (default: enabled) which causes images * to be deleted if certain boundaries (number of studies, bytes per study) are exceeded. */ void enableQuotaSystem(OFBool enable); /** dump database index file to stdout. * @param storeArea name of storage area, must not be NULL */ static void printIndexFile (char *storeArea); /** deletes the given file only if the quota mechanism is enabled. * The image is not de-registered from the database by this routine. * @param imgFile file name (path) to the file to be deleted. * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. */ OFCondition deleteImageFile(char* imgFile); /** create lock on database * @param exclusive exclusive/shared lock flag * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_lock(OFBool exclusive); /** release lock on database */ OFCondition DB_unlock(); /** Get next Index record that is in use (i.e. references a non-empty a filename) * @param idx pointer to index number, updated upon successful return * @param idxRec pointer to index record structure * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_IdxGetNext(int *idx, IdxRecord *idxRec); /** seek to beginning of image records in index file * @param idx initialized to -1 * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_IdxInitLoop(int *idx); /** read index record at given index * @param idx index * @param idxRec pointer to index record * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_IdxRead(int idx, IdxRecord *idxRec); /** get study descriptor record from start of index file * @param pStudyDesc pointer to study record descriptor structure * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_GetStudyDesc(StudyDescRecord *pStudyDesc); /** write study descriptor record to start of index file * @param pStudyDesc pointer to study record descriptor structure * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_StudyDescChange(StudyDescRecord *pStudyDesc); /** deactivate index record at given index by setting an empty filename * @param idx index * @return EC_Normal upon success, an error code otherwise */ OFCondition DB_IdxRemove(int idx); /** clear the "is new" flag for the instance with the given index * @param idx index * @return EC_Normal upon success, an error code otherwise */ OFCondition instanceReviewed(int idx); /// return name of storage area const char *getStorageArea() const; /// return path to index file const char *getIndexFilename() const; private: OFCondition removeDuplicateImage( const char *SOPInstanceUID, const char *StudyInstanceUID, StudyDescRecord *pStudyDesc, const char *newImageFileName); int deleteOldestStudy(StudyDescRecord *pStudyDesc); OFCondition deleteOldestImages(StudyDescRecord *pStudyDesc, int StudyNum, char *StudyUID, long RequiredSize); int matchDate (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); int matchTime (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); int matchUID (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); int matchStrings (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); int matchOther (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); int dbmatch (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); void makeResponseList(DB_Private_Handle *phandle, IdxRecord *idxRec); int matchStudyUIDInStudyDesc (StudyDescRecord *pStudyDesc, char *StudyUID, int maxStudiesAllowed); OFCondition checkupinStudyDesc(StudyDescRecord *pStudyDesc, char *StudyUID, long imageSize); void dbdebug(int level, const char* format, ...) const; OFCondition hierarchicalCompare ( DB_Private_Handle *phandle, IdxRecord *idxRec, DB_LEVEL level, DB_LEVEL infLevel, int *match); OFCondition testFindRequestList ( DB_ElementList *findRequestList, DB_LEVEL queryLevel, DB_LEVEL infLevel, DB_LEVEL lowestLevel); OFCondition testMoveRequestList ( DB_ElementList *findRequestList, DB_LEVEL queryLevel, DB_LEVEL infLevel, DB_LEVEL lowestLevel); /// database handle DB_Private_Handle *handle; /// flag indicating whether or not the quota system is enabled OFBool quotaSystemEnabled; /// flag indicating whether or not the check function for FIND requests is enabled OFBool doCheckFindIdentifier; /// flag indicating whether or not the check function for MOVE requests is enabled OFBool doCheckMoveIdentifier; /// helper object for file name creation OFFilenameCreator fnamecreator; /// current debug level int debugLevel;};/** Index database factory class. Instances of this class are able to create database * handles for a given called application entity title. */class DcmQueryRetrieveIndexDatabaseHandleFactory: public DcmQueryRetrieveDatabaseHandleFactory{public: /** constructor * @param config system configuration object, must not be NULL. */ DcmQueryRetrieveIndexDatabaseHandleFactory(const DcmQueryRetrieveConfig *config); /// destructor virtual ~DcmQueryRetrieveIndexDatabaseHandleFactory(); /** this method creates a new database handle instance on the heap and returns * a pointer to it, along with a result that indicates if the instance was * successfully initialized, i.e. connected to the database * @param callingAETitle calling aetitle * @param calledAETitle called aetitle * @param result result returned in this variable * @return pointer to database object, must not be NULL if result is EC_Normal. */ virtual DcmQueryRetrieveDatabaseHandle *createDBHandle( const char *callingAETitle, const char *calledAETitle, OFCondition& result) const;private: /// pointer to system configuration const DcmQueryRetrieveConfig *config_;};#endif/* * CVS Log * $Log: dcmqrdbi.h,v $ * Revision 1.4 2005/12/08 16:04:22 meichel * Changed include path schema for all DCMTK header files * * Revision 1.3 2005/04/22 15:36:34 meichel * Passing calling aetitle to DcmQueryRetrieveDatabaseHandleFactory::createDBHandle * to allow configuration retrieval based on calling aetitle. * * Revision 1.2 2005/04/04 10:04:45 meichel * Added public declarations for index file functions that are * used from module dcmpstat * * Revision 1.1 2005/03/30 13:34:50 meichel * Initial release of module dcmqrdb that will replace module imagectn. * It provides a clear interface between the Q/R DICOM front-end and the * database back-end. The imagectn code has been re-factored into a minimal * class structure. * * */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -