Introduction
      This schema defines the run-time preference settings for 
      Oracle Multimedia DICOM features.
    Structure Overview
      Question mark "?" means optional items.
      Plus "+" means one or more items.
      Asterisk "*" means zero or more items.
      DICOM_RUNTIME_PREFERENCES
        DOCUMENT_HEADER?
          DOCUMENT_CHANGE_LOG*
              DOCUMENT_MODIFIER
              DOCUMENT_MODIFICATION_DATE
              DOCUMENT_VERSION?
              MODIFICATION_COMMENT?
              BASE_DOCUMENT?
              BASE_DOCUMENT_RELEASE_DATE?
              BASE_DOCUMENT_DESCRIPTION?
        PREFERENCE_DEF+
          PARAMETER
          DESCRIPTION
          VALUE
        The allowed values for the PARAMETER element of a 
        PREFERENCE_DEF entry and its corresponding 
        VALUE element are as follows:
        
        PARAMETER: XML_SKIP_ATTR
        VALUE: an integer type (default 512,  128~ 32767)
        DESCRIPTION: When encoding a DICOM attribute into XML, skip 
               attributes whose (child) XML element sizes (in bytes) are 
               larger than XML_SKIP_ATTR.
               If an attribute is of simple type, this limit applies to the
               whole attribute.
               If the attribute type is SQ, this limit applies to its child 
               items.
               For example, if an attribute is of type SQ and it contains  
               child items of type OB, the limit applies to 
               each child instance of type OB. 
               The smallest value allowed for this parameter is 128.
        
        PARAMETER: AVG_ATTR_NUM
        VALUE: an integer type (default 200, 20~2000)
        DESCRIPTION: The average number of root-level attributes per 
        DICOM object. This is a hint to the DICOM implementation.
        Finding the optimal value for a database helps improve storage 
        efficiency and performance. Too large a value may lead to wasted
        memory, and too small a value may lead to poor performance. An
        ideal value is one where most (suggested 95%) DICOM images
        have less than $VALUE number of attributes.
        The smallest value allowed for this parameter is 20.
        The largest number allowed for this parameter is 
        the total number of not retired standard attributes defined.
        
        PARAMETER: CONFORMANCE_LEVEL
        VALUE: enum { leastConform, ignoreException(default), mostConform}
        DESCRIPTION: 
        The option "leastConform" means that all functions try to 
        maximize the processing of a DICOM object and ignore
        any errors and exceptions.
        "ignoreException" means that all functions ignore the
        types of exceptions given in the parameter "IGNORED_EXP_LIST".
        The default set of ignored exceptions includes: MISSING_ATTR, 
        INVALID_LENGTH, MISSING_MAGIC, MISSING_HEADER, INVALID_VR, 
        INVALID_VM, and PARSE_ERR.
        "mostConform" means that all functions throw an exception
        if a DICOM object contains nonconformant content. This does
        not include backward compatibility cases allowed by 
        the DICOM standard.
        Note: By choosing an option other than "mostConform",
        you risk accepting invalid DICOM objects, possibly getting
        incorrect results. In this case, Oracle recommends setting the
        LOGGING_LEVEL parameter to "warning" or a more detailed level, 
        and then examining the log file for possible errors.
        
        PARAMETER: IGNORED_EXP_LIST
        VALUE: EmptySpace-separated exception names from the 
        following list:
                {MISSING_MAGIC, MISSING_HEADER, MISSING_ATTR,
                FAULTY_VALUE, INVALID_LENGTH, 
                INVALID_VM, INVALID_VR, UNSUPPORT_VALUE,
                UNDEFINED_VALUE, NOT_AN_IMAGE, PARSE_ERR}
                
        Default: {MISSING_ATTR INVALID_LENGTH MISSING_MAGIC
                 MISSING_HEADER INVALID_VR INVALID_VM PARSE_ERR}.
        DESCRIPTION: This parameter is only effective when the value of
        the CONFORMANCE_LEVEL parameter is "ignoreException". If
        this is the case, the exceptions in the ignore exception list are
        ignored at run time. However, if the LOGGING_LEVEL parameter
        is set to "warning" or a more detailed level, the exception is 
        logged. The program continues and skips the part 
        of the DICOM object that has triggered an exception.
        These exceptions are defined as follows:
        MISSING_MAGIC: a DICOM object does not contain the file 
            magic number "DICM".
        MISSING_HEADER: a DICOM object does not have the file
            meta header (not conformant to the DICOM standard part 10).
        MISSING_ATTR: a DICOM object does not have the mandatory
            attributes (type 1) required by the DICOM standard.
        FAULTY_VALUE: a DICOM object has attribute values 
            that lead to parsing errors.
        INVALID_LENGTH: a DICOM object contains a length value that 
          is not consistent with the DICOM encoding rules or a length 
          that is not permitted by the DICOM data dictionary.
        INVALID_VM: an attribute of a DICOM object has an invalid Value 
            Multiplicity value (not consistent with the dictionary definition).
        INVALID_VR: an attribute of a DICOM object has an invalid Value
            Representation value, which can either conflict with the data
            dictionary or has not been defined by the data dictionary.
        UNSUPPORTED_VALUE: a DICOM object contains attribute
            values that are outside of the supported range; 
            for example, an unsupported pixel representation value.
        UNDEFINED_VALUE: a DICOM object contains attribute
            values that are not defined by the data model; for example,
            an undefined transfer syntax UID, an undefined SOP
            class UID, and so on.
        NOT_AN_IMAGE: When an image content processing function
            is invoked on a DICOM object, if the object's SOP class UID is
            defined but its classification is not "storageClass", or its
            content type is not "image", an exception is thrown. It may
            mean that the UID definition document is not up-to-date. An 
            administrator can update the document to define the
            SOP class UID as a "storageClass" of "image" type.
        PARSE_ERR: When a DICOM object contains invalid data, a parse exception
           is thrown. This exception is ignored, and the parsing process
           continues.  
        
        PARAMETER: OUTPUT_RAW_VALUE
        VALUE: an integer value (default to 0, no output) (-1 ~ 32767)
        DESCRIPTION: What to output in an XML metadata document
        when the parsing of a DICOM object fails. The base64 encoding 
        of the attribute's byte value can be returned in the rawValue 
        attribute of a DICOM XML element. The VALUE element specifies
        the maximal length allowed for the rawValue attribute. 
        If $VALUE == -1, (not recommended), the entire attribute up to 32k
        is saved in the rawValue attribute in base64 encoding.
        If $VALUE == 0, an empty string is saved in the rawValue 
        attribute (recommended for production systems).
        If $VALUE == N > 0, only the first N bytes of the attribute are
        saved in the rawValue attribute.
        A nonzero value for this parameter is useful for debugging 
        purposes. For a production system, do NOT pick a value
        larger than 64. The value -1 should never be used outside of
        a development environment.
        
        PARAMETER: LOGGING_LEVEL
        VALUE: enum {debug, conformance, warning(default), error, none }
        DESCRIPTION:   The logging level, if ordered by the level of 
        detail from the most to the least is: "debug", "conformance", 
        "warning", "error", and "none".
         "debug" means extensive logging of all steps; it should 
        only be used for debugging purposes. 
         "conformance" means to log all nonstandard conformance 
        problems that are discovered. In general, nonconformance is very 
        common for a DICOM object repository containing DICOM 
        objects from different sources, for example, a hospital or an imaging 
        center. This logging level may lead to large log files for 
        most scenarios, and lower performance. 
         "warning" means to log all recoverable messages that require 
        operator attention. For example, if a user invokes an 
        image processing function on a DICOM object and 
        Oracle does not recognize this DICOM object as an image, 
        a warning message is logged stating that this DICOM object 
        is not defined as an image. The processing of the image 
        content may continue if the CONFORMANCE_LEVEL
        parameter is set to ignore "NOT_AN_IMAGE" exception. 
        "error" means to log only irrecoverable messages. 
        "none" means that logging is disabled. 
        Note: Do not use the "debug" option for a deployed system. 
        It adds significant overhead and slows down all 
        DICOM related functions.
        
        PARAMETER: VALIDATE_METADATA
        VALUE: Boolean{true, false(default)}
        DESCRIPTION: The DICOM function extractMetadata takes a 
        mapping document as an input parameter. A mapping document
        contains a namespace parameter (which can be empty). If an
        XML schema is registered at this namespace, and the value of
        the VALIDATE_METADATA parameter is true, the extractMetadata
        function validates the resulting XML document against the
        designated schema.
        If the value of this parameter is false, the resulting XML document
        is not validated.
        
        PARAMETER: EXP_IF_NULL_ATTR_IN_CONSTRAINT
        VALUE: Boolean{true(default), false}
        DESCRIPTION: A DICOM object may not contain certain attributes
        that are used in a constraint predicate. The object may
        contain an attribute, but its value is empty. Both cases
        result to a null value attribute. So a constraint
        predicate involving this attribute has a null 
        parameter value such as (null== MY_VALUE). 
        If this preference parameter is set to true,
        an exception is thrown if the first occurrence of a 
        a null-value attribute is not guarded by the "notEmpty" 
        Boolean function. If this parameter is set to false, 
        no exception is thrown and the predicate evaluates to 
        false. To avoid confusion, it is always better to guard an 
        attribute with "notEmpty" Boolean functions before using
        the attribute value in a predicate.
         
        PARAMETER: MAX_RECURSION_DEPTH
        VALUE: an integer type (default 16, 1 ~ 32767)
        DESCRIPTION: This parameter restricts the number of levels of 
        recursions when evaluating a recursive constraint on a DICOM
        object. If the recursion level exceeds this number, an exception
        is thrown. 
         
        PARAMETER: MANDATE_ATTR_TAGS_IN_STL 
        VALUE: Boolean{false(default), true}
        DESCRIPTION: This parameter is used to enforce that all tags 
        used by the constraint and mapping documents must be listed in the
        STORED_TAG_LIST(STL) document. This rule is not enforced by default.
        If this preference parameter is set to true, the rule is enforced. 
        If an existing STL document does not satisfy this rule,
        the preference value cannot be set to true until the
        STL document is deleted. 
        PARAMETER: SQ_WRITE_LEN
        VALUE: boolean{true(default), false}
        DESCRIPTION: This parameter determines how the DICOM
        sequence (SQ) types are encoded by the DICOM function writeMetadata().
        If the value of this parameter is true, the SQ types are encoded
        with explicit length and without item or sequence delimitors.
        This is the default behavior and allows DICOM viewers to skip
        the sequence attributes easily.
        If the value of this parameter is false, the SQ types are encoded
        with variable (or undefined) length and terminated with
        sequence delimitors. This allows backward compatibility with some
        older DICOM viewers and Dicom applications as they only support
        undefined length for SQ types.
        PARAMETER: SPECIFIC_CHARACTER_SET
        VALUE: enum {ASCII(default), ISO_IR 100, ISO_IR 101, ISO_IR 109, 
                     ISO_IR 110, ISO_IR 144, ISO_IR 127, ISO_IR 126,
                     ISO_IR 138, ISO_IR 148, ISO_IR 13, ISO_IR 166,
                     ISO_IR 192, GB18030}
        DESCRIPTION: This parameter determines how data elements with value
        representations of SH (Short String), LO (Long String), ST (Short Text)
        LT (Long Text), PN (Person Name) or UT (Unlimited Text) are decoded
        when the Specific Character Set (0008,0005) Attribute is missing.
        The DICOM standard states that the default character set 
        (ISO-IR 6, or ASCII) shall be used for decoding when the Specific
        Character Set (0008,0005) Attribute is not specified. This parameter
        allows an application to specify a different character set to 
        use in these cases.
        PARAMETER: BINARY_SKIP_INVALID_ATTR
        VALUE: boolean{false(default), true}
        DESCRIPTION: It is possible that a DICOM object contains one or more
        attribute values that do not conform to the DICOM specification. In the 
        event that such an attribute is present in a DICOM object, this 
        parameter determines whether or not to "skip" (i.e. not include) the 
        value of that attribute in the binary output when making a copy of the
        object in question. The default behavior, specified by setting this
        parameter to "false", is to not skip these values and to include them
        as-is in the coresponding output. When an attribute is skipped, its
        value is included in the output truncated to length 0.
 
  
  
  
    
      
        
        
          
            
                  Each PREFERENCE_DEF entry describes one parameter
                  that a repository administrator may modify to adjust the
                  run-time behavior of the DICOM functionality.