One installation = one client: a single set of definitions on the Tags page that applies to the entire database. A workspace does not have its own separate tag list. Do not touch Custom Strings in Configuration — those are labels for standard columns.

There is no separate Component entity: component fields already live on Study. TagScope.Component is only a UI layout concept (left column of the editor); the values are stored in StudyTag.

Data model

Extraction and overlay

Import. Only when creating the entity — like standard fields.

Reading files. Study update overlays all Study.Tags (both scopes); series update overlays Series.Tags (explicit VR, incl. private tags). Download / Q/R / ReadFile will pick up edits.

Editor. Save into StudyTag / SeriesTag. Empty text, cleared date/number → delete the row; do not write "". Files on disk are not rewritten.

Do not extend Worklist / Order.

REST API

Existing DTOs get one new field Tags: a dictionary tag number → value, as additional fields next to standard ones.

Key is the DICOM/DICONDE number (uint; in JSON object keys — 8 hex digits, like in the UI). Value is not a string, but typed by VR: