⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wlds.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * *  Copyright (C) 1996-2005, OFFIS * *  This software and supporting documentation were developed by * *    Kuratorium OFFIS e.V. *    Healthcare Information and Communication Systems *    Escherweg 2 *    D-26121 Oldenburg, Germany * *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * *  Module:  dcmwlm * *  Author:  Thomas Wilkens * *  Purpose: (Partially) abstract class for connecting to an arbitrary data source. * *  Last Update:      $Author: meichel $ *  Update Date:      $Date: 2005/12/08 16:05:40 $ *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmwlm/include/dcmtk/dcmwlm/wlds.h,v $ *  CVS/RCS Revision: $Revision: 1.23 $ *  Status:           $State: Exp $ * *  CVS/RCS Log at end of file * */#ifndef WlmDataSource_h#define WlmDataSource_h#include "dcmtk/config/osconfig.h"class DcmDataset;class DcmList;class DcmAttributeTag;class DcmLongString;class DcmTagKey;class DcmElement;class OFConsole;class OFCondition;class DcmSequenceOfItems;/** This class encapsulates data structures and operations for connecting to an arbitrary *  data source in the framework of the DICOM basic worklist management service. */class WlmDataSource{  protected:    /// indicates if the application shall fail on an invalid C-Find RQ message    OFBool failOnInvalidQuery;    /// called AE title    char *calledApplicationEntityTitle;    /// indicates if the application is run in verbose mode or not    OFBool verbose;    /// indicates if the application is run in debug mode or not    OFBool debug;    /// the search mask which is contained in the C-Find RQ message    DcmDataset *identifiers;    /// list of error elements    DcmAttributeTag *errorElements;    /// list of offending elements    DcmAttributeTag *offendingElements;    /// error comment    DcmLongString *errorComment;    /// indicates if we encountered an unsupported optional key attribute in the search mask    OFBool foundUnsupportedOptionalKey;    /// indicates if a read lock was set on the data source    OFBool readLockSetOnDataSource;    /// stream logging information will be dumped to    OFConsole *logStream;    /// indicates if the expansion of empty sequence attributes shall take place or not    OFBool noSequenceExpansion;    /// returned character set type    WlmReturnedCharacterSetType returnedCharacterSet;    /// array of matching datasets    DcmDataset **matchingDatasets;    /// number of array fields    unsigned long numOfMatchingDatasets;    /// potentially specified specific character set (in search mask)    OFString specificCharacterSet;    /// information about superior sequence elements; necessary for inserting values into resultDataset    WlmSuperiorSequenceInfoType *superiorSequenceArray;    /// number of elements in above array    unsigned long numOfSuperiorSequences;      /** This function checks if the search mask has a correct format. It returns OFTrue if this       *  is the case, OFFalse if this is not the case.       *  @param searchMask Contains the search mask.       *  @return OFTrue, in case the search mask has a correct format, OFFalse otherwise.       */    OFBool CheckSearchMask( DcmDataset *searchMask );      /** This function checks if a non-sequence element in the search mask has a correct format.       *  Note that if the current element is an unsupported element, the entire element will be re-       *  moved from the search mask, since unsupported elements shall not be returned to the caller.       *  @param searchMask                       Pointer to the search mask.       *  @param invalidMatchingKeyAttributeCount Counter that counts invalid elements in the search mask.       *  @param element                          Pointer to the currently processed element.       *  @param supSequenceElement               Pointer to the superordinate sequence element of which       *                                          the currently processed element is an attribute.       */    void CheckNonSequenceElementInSearchMask( DcmDataset *searchMask, int &invalidMatchingKeyAttributeCount, DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL );      /** This function checks if a sequence element in the search mask has a correct format.       *  Note that if the current element is an unsupported element, the entire element will be re-       *  moved from the search mask, since unsupported elements shall not be returned to the caller.       *  Moreover, in case the sequence element in the search mask is supported but empty, this       *  function will expand the sequence element by inserting all required attributes into that sequence.       *  @param searchMask                       Pointer to the search mask.       *  @param invalidMatchingKeyAttributeCount Counter that counts invalid elements in the search mask.       *  @param element                          Pointer to the currently processed element.       *  @param supSequenceElement               Pointer to the superordinate sequence element of which       *                                          the currently processed element is an attribute.       */    void CheckSequenceElementInSearchMask( DcmDataset *searchMask, int &invalidMatchingKeyAttributeCount, DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL );      /** According to the 2001 DICOM standard (part 4, section C.2.2.2.6), if a search mask       *  contains a sequence attribute which contains no item or a single empty item, all       *  attributes from that particular sequence are in fact queried and shall be returned       *  by the SCP. This implementation accounts for this specification by inserting a       *  corresponding single item with all required attributes into such emtpy sequences.       *  This function performs the insertion of the required item and attributes.       *  @param element Pointer to the currently processed element.       */    void ExpandEmptySequenceInSearchMask( DcmElement *&element );      /** This function checks if the given element refers to an attribute which is a supported       *  matching key attribute. If this is the case OFTrue is returned, else OFFalse.       *  Currently, the following attributes are supported as matching keys:       *    DCM_ScheduledProcedureStepSequence                    (0040,0100)  SQ  R  1       *     > DCM_ScheduledStationAETitle                        (0040,0001)  AE  R  1       *     > DCM_ScheduledProcedureStepStartDate                (0040,0002)  DA  R  1       *     > DCM_ScheduledProcedureStepStartTime                (0040,0003)  TM  R  1       *     > DCM_Modality                                       (0008,0060)  CS  R  1       *     > DCM_ScheduledPerformingPhysiciansName              (0040,0006)  PN  R  2       *    DCM_PatientsName                                      (0010,0010)  PN  R  1       *    DCM_PatientID                                         (0010,0020)  LO  R  1       *    DCM_AccessionNumber                                   (0008,0050)  SH  O  2       *    DCM_RequestedProcedureID                              (0040,1001)  SH  O  1       *    DCM_ReferringPhysiciansName                           (0008,0090)  PN  O  2       *    DCM_PatientsSex                                       (0010,0040)  CS  O  2       *    DCM_RequestingPhysician                               (0032,1032)  PN  O  2       *    DCM_AdmissionID                                       (0038,0010)  LO  O  2       *    DCM_RequestedProcedurePriority                        (0040,1003)  SH  O  2       *    DCM_PatientsBirthDate                                 (0010,0030)  DA  O  2       *  @param element            Pointer to the element which shall be checked.       *  @param supSequenceElement Pointer to the superordinate sequence element of which       *                            the currently processed element is an attribute, or NULL if       *                            the currently processed element does not belong to any sequence.       *  @return OFTrue, in case the given tag is a supported matching key attribute, OFFalse otherwise.       */    OFBool IsSupportedMatchingKeyAttribute( DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL );      /** This function checks if the given element refers to an attribute which is a supported       *  return key attribute. If this is the case OFTrue is returned, else OFFalse.       *  Currently, the following attributes are supported as return keys:       *    DCM_SpecificCharacterSet                              (0008,0005)  CS  O  1       *    DCM_ScheduledProcedureStepSequence                    (0040,0100)  SQ  R  1       *     > DCM_ScheduledStationAETitle                        (0040,0001)  AE  R  1       *     > DCM_ScheduledProcedureStepStartDate                (0040,0002)  DA  R  1       *     > DCM_ScheduledProcedureStepStartTime                (0040,0003)  TM  R  1       *     > DCM_Modality                                       (0008,0060)  CS  R  1       *     > DCM_ScheduledPerformingPhysiciansName              (0040,0006)  PN  R  2       *     > DCM_ScheduledProcedureStepDescription              (0040,0007)  LO  O  1       *     > DCM_ScheduledStationName                           (0040,0010)  SH  O  2       *     > DCM_ScheduledProcedureStepLocation                 (0040,0011)  SH  O  2       *     > DCM_PreMedication                                  (0040,0012)  LO  O  2       *     > DCM_ScheduledProcedureStepID                       (0040,0009)  SH  O  1       *     > DCM_RequestedContrastAgent                         (0032,1070)  LO  O  2       *     > DCM_CommentsOnTheScheduledProcedureStep            (0040,0400)  LT  O  3  (from the Scheduled Procedure Step Module)       *     > DCM_ScheduledProcedureStepStatus                   (0040,0020)  CS  O  3       *     > DCM_ScheduledProcedureStepEndDate                  (0040,0004)  DA  O  3  (from the Scheduled Procedure Step Module)       *     > DCM_ScheduledProcedureStepEndTime                  (0040,0005)  TM  O  3  (from the Scheduled Procedure Step Module)       *     > DCM_ScheduledProtocolCodeSequence                  (0040,0008)  SQ  O  1C       *     >  > DCM_CodeValue                                   (0008,0100)  SH  O  1C       *     >  > DCM_CodingSchemeVersion                         (0008,0103)  SH  O  3       *     >  > DCM_CodingSchemeDesignator                      (0008,0102)  SH  O  1C       *     >  > DCM_CodeMeaning                                 (0008,0104)  LO  O  3       *    DCM_RequestedProcedureID                              (0040,1001)  SH  O  1       *    DCM_RequestedProcedureDescription                     (0032,1060)  LO  O  1       *    DCM_StudyInstanceUID                                  (0020,000d)  UI  O  1       *    DCM_ReferencedStudySequence                           (0008,1110)  SQ  O  2       *     > DCM_ReferencedSOPClassUID                          (0008,1150)  UI  O  1       *     > DCM_ReferencedSOPInstanceUID                       (0008,1155)  UI  O  1       *    DCM_RequestedProcedurePriority                        (0040,1003)  SH  O  2       *    DCM_PatientTransportArrangements                      (0040,1004)  LO  O  2       *    DCM_AccessionNumber                                   (0008,0050)  SH  O  2       *    DCM_RequestingPhysician                               (0032,1032)  PN  O  2       *    DCM_ReferringPhysiciansName                           (0008,0090)  PN  O  2       *    DCM_AdmissionID                                       (0038,0010)  LO  O  2       *    DCM_CurrentPatientLocation                            (0038,0300)  LO  O  2       *    DCM_ReferencedPatientSequence                         (0008,1120)  SQ  O  2       *     > DCM_ReferencedSOPClassUID                          (0008,1150)  UI  O  2       *     > DCM_ReferencedSOPInstanceUID                       (0008,1155)  UI  O  2       *    DCM_PatientsName                                      (0010,0010)  PN  R  1       *    DCM_PatientID                                         (0010,0020)  LO  R  1       *    DCM_PatientsBirthDate                                 (0010,0030)  DA  O  2       *    DCM_PatientsSex                                       (0010,0040)  CS  O  2       *    DCM_PatientsWeight                                    (0010,1030)  DS  O  2       *    DCM_ConfidentialityConstraintOnPatientDataDescription (0040,3001)  LO  O  2       *    DCM_PatientState                                      (0038,0500)  LO  O  2       *    DCM_PregnancyStatus                                   (0010,21c0)  US  O  2       *    DCM_MedicalAlerts                                     (0010,2000)  LO  O  2       *    DCM_ContrastAllergies                                 (0010,2110)  LO  O  2       *    DCM_SpecialNeeds                                      (0038,0050)  LO  O  2       *    DCM_NamesOfIntendedRecipientsOfResults                (0040,1010)  PN  O  3  (from the Requested Procedure Module)       *    DCM_InstitutionName                                   (0008,0080)  LO  O  3  (from the Visit Identification Module)       *    DCM_AdmittingDiagnosesDescription                     (0008,1080)  LO  O  3  (from the Visit Admission Module)       *    DCM_OtherPatientIDs                                   (0010,1000)  LO  O  3  (from the Patient Identification Module)       *    DCM_PatientsSize                                      (0010,1020)  DS  O  3  (from the Patient Demographic Module)       *    DCM_EthnicGroup                                       (0010,2160)  SH  O  3  (from the Patient Demographic Module)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -