Skip to content

Configuration

The validate() and validateDataset() functions accept a ValidateOptions object as their second argument. This allows fine-grained control over validation behavior.

ValidateOptions interface

typescript
interface ValidateOptions {
  checks?: {
    vr?: boolean
    vm?: boolean
    iod?: boolean
  }
  sopClassUID?: string
  verbosity?: 'errors-only' | 'normal' | 'verbose'
}

checks — Validation category control

The checks object lets you enable or disable each validation category individually. All fields are optional and default to true (enabled).

checks.vr

PropertyValue
Typeboolean
Defaulttrue

Controls VR (Value Representation) format validation. When true, validates that each VR (AE, DA, UI, etc.) conforms to the DICOM standard format.

checks.vm

PropertyValue
Typeboolean
Defaulttrue

Controls VM (Value Multiplicity) constraint validation. When true, validates that the number of values for each tag conforms to the defined VM constraint (e.g., 1, 1-n, 2-2n).

checks.iod

PropertyValue
Typeboolean
Defaulttrue

Controls IOD (Information Object Definition) structure validation. When true, validates module composition based on SOP Class and detects missing required attributes (Type 1/Type 2).

sopClassUID

PropertyValue
Typestring
Defaultundefined (auto-detected)

Explicitly specifies the SOP Class UID to use for validation. Normally the SOP Class UID is auto-detected from tag (0008,0016) in the DICOM dataset. When this option is set, auto-detection is skipped and IOD validation is performed based on the specified UID.

Useful for testing or when you want to force validation against a specific SOP Class.

verbosity

PropertyValue
Type'errors-only' | 'normal' | 'verbose'
Default'normal'

Controls the filtering level of validation results.

ValueIncluded results
'errors-only'errors only
'normal'errors + warnings
'verbose'errors + warnings + infos

Use 'errors-only' to focus on critical issues. Use 'verbose' to include informational notices such as private tag skipping and retired tag usage.

Examples

Default configuration

typescript
import { validate } from 'dicom-validator-ts'

// No options — all checks enabled, verbosity is 'normal'
const result = await validate('path/to/dicom-file.dcm')

Disable VR checks only

typescript
import { validate } from 'dicom-validator-ts'

const result = await validate('path/to/dicom-file.dcm', {
  checks: {
    vr: false, // Disable VR format checks
    // vm: true (default)
    // iod: true (default)
  },
})

Run IOD structure checks only

typescript
import { validate } from 'dicom-validator-ts'

const result = await validate('path/to/dicom-file.dcm', {
  checks: {
    vr: false,
    vm: false,
    iod: true,
  },
})

Explicitly specify SOP Class UID

typescript
import { validate } from 'dicom-validator-ts'

// Force validation as CT Image Storage
const result = await validate('path/to/dicom-file.dcm', {
  sopClassUID: '1.2.840.10008.5.1.4.1.1.2',
})

Switching verbosity

typescript
import { validate } from 'dicom-validator-ts'

// Show errors only (exclude warnings and infos)
const errorsOnly = await validate('path/to/dicom-file.dcm', {
  verbosity: 'errors-only',
})

// Show all results (including info level)
const verbose = await validate('path/to/dicom-file.dcm', {
  verbosity: 'verbose',
})

Combining multiple options

typescript
import { validate } from 'dicom-validator-ts'

const result = await validate('path/to/dicom-file.dcm', {
  checks: {
    vr: true,
    vm: true,
    iod: false, // Skip IOD checks
  },
  sopClassUID: '1.2.840.10008.5.1.4.1.1.2',
  verbosity: 'errors-only',
})

if (!result.passed) {
  console.log(`${result.summary.errors} error(s) found`)
  for (const finding of result.findings) {
    console.log(`  [${finding.severity}] ${finding.rule}: ${finding.message}`)
  }
}

v0.2.0