Skip to content

mapper

mapper

Metadata mapping to acquisition parameters.

This module provides mapping from various metadata sources (BIDS sidecar, vendor metadata, DICOM) to osipy AcquisitionParams.

MetadataMapper

MetadataMapper(
    modality, interactive=True, use_defaults=True
)

Maps metadata from various sources to AcquisitionParams.

This class implements a priority chain for metadata extraction: 1. BIDS sidecar JSON (highest priority) 2. Vendor-specific DICOM tags 3. Standard DICOM tags 4. User prompts (if interactive) 5. Default values (lowest priority)

Examples:

>>> from osipy.common.types import Modality
>>> mapper = MetadataMapper(Modality.ASL)
>>> params = mapper.map_to_acquisition_params(
...     vendor_metadata=vendor_meta,
...     bids_sidecar=sidecar_json,
... )
>>> print(params.labeling_type)
LabelingType.PCASL

Initialize the mapper.

PARAMETER DESCRIPTION
modality

Perfusion imaging modality.

TYPE: Modality

interactive

Whether to prompt for missing required parameters.

TYPE: bool DEFAULT: True

use_defaults

Whether to use default values for missing parameters.

TYPE: bool DEFAULT: True

map_to_acquisition_params

map_to_acquisition_params(
    vendor_metadata=None,
    bids_sidecar=None,
    dicom_metadata=None,
    user_overrides=None,
)

Map metadata to modality-specific AcquisitionParams.

PARAMETER DESCRIPTION
vendor_metadata

Vendor-specific metadata from DICOM parsing.

TYPE: VendorMetadata | None DEFAULT: None

bids_sidecar

BIDS sidecar JSON content.

TYPE: dict[str, Any] | None DEFAULT: None

dicom_metadata

Standard DICOM metadata.

TYPE: dict[str, Any] | None DEFAULT: None

user_overrides

User-specified parameter overrides (highest priority).

TYPE: dict[str, Any] | None DEFAULT: None

RETURNS DESCRIPTION
AnyAcquisitionParams

Modality-specific acquisition parameters.

RAISES DESCRIPTION
MetadataError

If required parameters are missing and interactive=False.