id: TEDY.17.2 template: tool-feature module: tedy state: Built traces-from: [] source-refs:
- reference-editor/app/src/app/integration/import/file-import/value-set/value-set-file-import.component.ts
- reference-editor/app/src/app/resources/_lib/value-set/services/value-set-file-import.service.ts
- reference-editor/app/src/app/integration/import/file-import/file-analysis.service.ts
- terminology-server/fileimporter/valueset/ValueSetFileImportController.java author: TEDY bootstrap created: 2026-08-09 updated: 2026-08-09
TEDY.17.2 – Value Set File Import
Feature grouping
Child of TEDY.17 – File & Source Import (Common Spec). Siblings: TEDY.17.1 CS, TEDY.17.3 MS, TEDY.17.4 External.
Description
Import Value Set members from a csv / tsv file (or URL). Simpler than the CS
importer: after analyze the user maps only two columns — concept code
(required) and display (optional) — into the version’s rule set, then processes.
Only a dryRun (validate vs. import) toggle; no clean/replace.
Screen flow
Progressive-disclosure form; card + breadcrumb (Import → Value Set).
- Destination Value Set — existing (search) or new (id, title multi-language required, URI required, description).
- Version — existing draft version select, or new: semantic version, status (publication-status), release date.
- Rule set — existing rule select (
codeSystem | version), or new: code-system search + code-system-version select. Concepts radio:allvsexact(default exact). Analyze + mapping appear only forexact. - Source + Analyze (when
exact) — source type radio link | file; format radiocsv | tsv; URL or file input; Analyze. - Column mapping (after analyze) — two selects over detected columns:
code(concept code, required) anddisplay(optional). - Footer —
dryRunradio (import-data vs validate-data), Process.
Request DTO (/file-importer/value-set/process)
multipart request JSON:
link,type(csv|tsv; server also acceptsjson|fsh)valueSet { id, uri?, name?, oid?, title?, description? }(uri/… for a new VS)version { number, status, releaseDate, rule { id?, codeSystem?, codeSystemVersionId? } }mapping { code, display }dryRun,importClass?
(UI-only, not on the wire: concepts all|exact, sourceType, file.)
Defaults
type = csv, sourceType = file, dryRun = true, concepts = exact; new version
status = draft.
Testing
Per TEDY.17 → Testing. VS-specific units: the
process request builder — mapping { code, display } (code required), the
version.rule shape (existing id vs new codeSystem+codeSystemVersionId), and
that the UI-only concepts/sourceType flags gate analyze/mapping but are not
required on the wire; reuse the shared useImportJob tests. Component smoke: the
code/display selects populate from analyzed columns and Process is gated on
code.
Acceptance
- For an existing VS draft version + a rule, analyze a csv, map code (+display), dry-run → JobLog, real run → members added under the version’s rule set.
- New VS-import unit tests green (
nx test). - Create-new VS + version + rule inline, then import.
tscclean; en/et/ru i18n in sync; verified againsthtx.helex.dev/lmb.