com.pixelmed.validate

## Class DicomSRValidator

- java.lang.Object
- - com.pixelmed.validate.DicomSRValidator

    public class DicomSRValidator
    extends java.lang.Object

The `DicomSRValidator` class is for validating SR instances against the standard IOD for the corresponding SOP Class.

Typically used by reading the list of attributes that comprise an object, validating them and displaying the resulting string results to the user on the standard output, in a dialog box or whatever. The basic implementation of the `main` method (that may be useful as a command line utility in its own right) is as follows:

            AttributeList list = new AttributeList();
            list.read(arg[0],null,true,true);
            DicomSRValidator validator = new DicomSRValidator();
            System.err.print(validator.validate(list));

See Also:
  `AttributeList`

### Constructor Summary

Constructors
Constructor and Description
`DicomSRValidator()` Create an instance of validator.

### Method Summary

Methods
`static void` `main(java.lang.String[] arg)` Read the DICOM file specified on the command line and validate it against the standard IOD for the appropriate storage SOP Class.
`void` `setOptionDescribeChecking(boolean option)` Whether or not to describe the details of the validation procedure step by step.
`void` `setOptionMatchCaseOfCodeMeaning(boolean option)` Whether or not to match the case of code meanings when validating them against the expected values in context groups and templates.
`java.lang.String` `validate(AttributeList list)` Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.
`java.lang.String` `validate(AttributeList list, boolean describe, boolean matchCase)` Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.
`java.lang.String` `validate(java.lang.String filename)` Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.
`java.lang.String` `validate(java.lang.String filename, boolean describe, boolean matchCase)` Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.
`protected java.lang.String` `validateFirstPass(org.w3c.dom.Document inputDocument)` Perform the first pass of the validation.
`protected java.lang.String` `validateSecondPass(org.w3c.dom.Document inputDocument, java.lang.String firstOutputString)` Perform the second pass of the validation.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DicomSRValidator

    public DicomSRValidator()
                     throws javax.xml.transform.TransformerConfigurationException

Create an instance of validator.

Once created, a validator may be reused for as many validations as desired.

Throws:
  `javax.xml.transform.TransformerConfigurationException`

### Method Detail

#### setOptionDescribeChecking

    public void setOptionDescribeChecking(boolean option)

Whether or not to describe the details of the validation procedure step by step.

Default after construction is not to.

Parameters:
  `option` - true if the steps are to be described

#### setOptionMatchCaseOfCodeMeaning

    public void setOptionMatchCaseOfCodeMeaning(boolean option)

Whether or not to match the case of code meanings when validating them against the expected values in context groups and templates.

Default after construction is true, i.e., to be case sensitive.

Parameters:
  `option` - true if matching is to be case sensitive

#### validateFirstPass

    protected java.lang.String validateFirstPass(org.w3c.dom.Document inputDocument)
                                          throws javax.xml.parsers.ParserConfigurationException,
                                                 javax.xml.transform.TransformerException,
                                                 java.io.UnsupportedEncodingException

Perform the first pass of the validation.

Checks the document against the stylesheet and tracks which nodes matched templates.

Parameters:
  `inputDocument` - the XML representation of the DICOM SR instance to be validated
Returns:
  a string describing the results of the first pass of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`

#### validateSecondPass

    protected java.lang.String validateSecondPass(org.w3c.dom.Document inputDocument,
                                      java.lang.String firstOutputString)
                                           throws javax.xml.parsers.ParserConfigurationException,
                                                  javax.xml.transform.TransformerException,
                                                  java.io.UnsupportedEncodingException,
                                                  java.io.IOException

Perform the second pass of the validation.

Checks for unused content items.

Parameters:
  `inputDocument` - the XML representation of the DICOM SR instance to be validated
  `firstOutputString` - the list of attributes comprising the DICOM SR instance to be validated
Returns:
  a string describing the results of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`
  `java.io.IOException`

#### validate

    public java.lang.String validate(AttributeList list,
                            boolean describe,
                            boolean matchCase)
                              throws javax.xml.parsers.ParserConfigurationException,
                                     javax.xml.transform.TransformerException,
                                     java.io.UnsupportedEncodingException,
                                     java.io.IOException

Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.

Parameters:
  `list` - the list of attributes comprising the DICOM SR instance to be validated
  `describe` - whether or not to describe the details of the validation procedure step by step
  `matchCase` - whether or not to match the case of code meanings when validating them against the expected values in context groups and templates
Returns:
  a string describing the results of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`
  `java.io.IOException`

#### validate

    public java.lang.String validate(AttributeList list)
                              throws javax.xml.parsers.ParserConfigurationException,
                                     javax.xml.transform.TransformerException,
                                     java.io.UnsupportedEncodingException,
                                     java.io.IOException

Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.

Does not describe the details of the validation procedure step by step, and does match the case of code meanings when validating them against the expected values in context groups and templates.

Parameters:
  `list` - the list of attributes comprising the DICOM SR instance to be validated
Returns:
  a string describing the results of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`
  `java.io.IOException`

#### validate

    public java.lang.String validate(java.lang.String filename,
                            boolean describe,
                            boolean matchCase)
                              throws javax.xml.parsers.ParserConfigurationException,
                                     javax.xml.transform.TransformerException,
                                     java.io.UnsupportedEncodingException,
                                     java.io.IOException,
                                     DicomException

Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.

Parameters:
  `filename` - the DICOM SR instance to be validated
  `describe` - whether or not to describe the details of the validation procedure step by step
  `matchCase` - whether or not to match the case of code meanings when validating them against the expected values in context groups and templates
Returns:
  a string describing the results of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`
  `java.io.IOException`
  `DicomException`

#### validate

    public java.lang.String validate(java.lang.String filename)
                              throws javax.xml.parsers.ParserConfigurationException,
                                     javax.xml.transform.TransformerException,
                                     java.io.UnsupportedEncodingException,
                                     java.io.IOException,
                                     DicomException

Validate a DICOM SR instance against the standard IOD for the appropriate SOP Class and templates.

Does not describe the details of the validation procedure step by step, and does match the case of code meanings when validating them against the expected values in context groups and templates.

Parameters:
  `filename` - the DICOM SR instance to be validated
Returns:
  a string describing the results of the validation
Throws:
  `javax.xml.parsers.ParserConfigurationException`
  `javax.xml.transform.TransformerException`
  `java.io.UnsupportedEncodingException`
  `java.io.IOException`
  `DicomException`

#### main

    public static void main(java.lang.String[] arg)

Read the DICOM file specified on the command line and validate it against the standard IOD for the appropriate storage SOP Class.

The result of the validation is printed to the standard output.

Parameters:
  `arg` - optionally -describe, optionally -donotmatchcase, then the name of the file containing the DICOM SR instance to be validated