Skip to content

Explore IODs, modules, and attributes

Use graph queries when a registry lookup is not enough. The PS3.3/PS3.4 graph connects SOP Classes to IODs, IODs to modules, and modules to attribute-use and macro-include rows.

Build a knowledge base containing at least PS3.3, PS3.4, and PS3.6 for the selected concrete edition.

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb lookup iod 'CT Image' \
--edition "$EDITION"

The response identifies the imported IOD record and its source reference.

Start from a SOP Class when that is the identifier you have:

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb lookup sop-class 'CT Image Storage' \
--edition "$EDITION"

The SOP Class response includes linked IOD records when the imported graph resolves them.

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb iod modules 'CT Image' \
--edition "$EDITION"

Inspect each module-use row for:

  • module identity;
  • usage or requirement information;
  • source references;
  • warnings or unresolved relationships.

The result preserves individual rows rather than flattening every module into one unqualified list.

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb module attributes Patient \
--edition "$EDITION"

The default result preserves macro include rows. This makes the imported structure visible and avoids silently duplicating included attributes.

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb module attributes Patient \
--expand-macros \
--edition "$EDITION"

Expansion inlines imported attributes from resolved macro includes after the include row. Inspect warnings for unresolved includes and keep source references when presenting expanded results.

After locating an attribute-use row, ask the contextual resolver for the bounded effective type:

Terminal window
EDITION=2025e # Replace with your concrete edition.
uv run dicom-kb resolve attribute-context Modality \
--iod 'CT Image' \
--edition "$EDITION"

This step combines the data element, graph path, applicable attribute-use rows, condition text, and explicit override phrases. Read Attribute-context resolution before turning the result into a requirement statement.

Treating a data-dictionary row as an IOD requirement

Section titled “Treating a data-dictionary row as an IOD requirement”

PS3.6 identifies the data element. Requiredness comes from PS3.3 usage context. Use graph and contextual tools.

A module can be mandatory, conditional, or user optional. Preserve the imported use row and its source reference.

Macro expansion is a convenience view. Keep include-row and source-reference information so a reader can reconstruct where each attribute came from.

Assuming one SOP Class always maps to one resolved IOD

Section titled “Assuming one SOP Class always maps to one resolved IOD”

The resolver preserves linked records and ambiguity. Do not select a candidate by name similarity outside the returned graph.