Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


id: TEDY.17.3 template: tool-feature module: tedy state: Built traces-from: [] source-refs:

  • reference-editor/app/src/app/integration/import/file-import/concept-map/concept-map-file-import.component.ts
  • reference-editor/app/src/app/resources/_lib/map-set/services/map-set-file-import.service.ts
  • reference-editor/app/src/app/resources/_lib/map-set/model/map-set-version.ts (MapSetScope)
  • reference-editor/app/src/app/resources/_lib/map-set/containers/map-set-scope-form.component
  • terminology-server/fileimporter/mapset/MapSetFileImportController.java author: TEDY bootstrap created: 2026-08-09 updated: 2026-08-09

TEDY.17.3 – Map Set File Import

Feature grouping

Child of TEDY.17 – File & Source Import (Common Spec). Siblings: TEDY.17.1 CS, TEDY.17.2 VS, TEDY.17.4 External.

Description

Import Map Set associations from a CSV that follows a fixed downloadable template — so there is no analyze step and no column-mapping UI. Instead the importer exposes a scope editor (source/target definitions) and two clean-run options. Source and target Value Sets “should be created beforehand.”

Screen flow

Card + breadcrumb (Import → Concept Map); file-only (no link/file toggle).

  1. Destination Map Set — existing (search) or new (id, title multi-language, URI, description).
  2. Version
    • existing draft version select, plus two MS-only clean radios: cleanRun (delete existing associations / hold) and cleanAssociationRun (overlapping associations: ignore / keep-both);
    • or new version: semantic version, status, release date, scope editor.
  3. File — a Download template link (GET /file-importer/map-set/csv-templatemapset-template.csv) and a file input.
  4. FooterProcess (no dryRun).

Scope editor (MapSetScope)

Per side (source / target): a 3-way sourceType/targetType radio — code-system | value-set | external-canonical-uri:

  • code-system → an editable table of { codeSystem, codeSystemVersion } rows (sourceCodeSystems / targetCodeSystems, each a { id, version, uri } reference).
  • value-set → value-set search + version select (sourceValueSet / targetValueSet).
  • external-canonical-uri → a URI input.

Equivalence (and source/target codes) are columns in the CSV template, not UI fields.

Request DTO (/file-importer/map-set/process)

multipart request JSON:

  • type, url (note: url, not link)
  • mapSet { id, title?, uri?, description? }
  • mapSetVersion { status, version, releaseDate, scope: MapSetScope }
  • cleanRun, cleanAssociationRun

Defaults

fileType = csv, cleanRun = false, cleanAssociationRun = false; new version status = draft, scope = {}.

Notes / difference from CS·VS

No /analyze round-trip, no dryRun, no column mapping — the CSV template dictates the columns (source/target code, equivalence, …). The scope editor is the added complexity (an editable-table + resource searches). (An association importer — interactive source/target/order mapping with separators, /file-importer/association/* — exists in the reference editor and is out of scope for v1; note for later.)

Testing

Per TEDY.17 → Testing. MS-specific units: the process request builder uses url (not link) and carries cleanRun / cleanAssociationRun; MapSetScope serialization per side (code-system/value-set/external-canonical-uri → the right sourceCodeSystems/sourceValueSet/URI shape); reuse the shared useImportJob tests. No analyze/mapping to test. Component smoke: the scope editor’s 3-way radio switches the sub-form and the template-download link fires.

Acceptance

  • Download the template; upload a filled CSV against an existing MS draft version with a defined scope → associations imported (JobLog).
  • New MS-import unit tests green (nx test).
  • Create-new MS + version + scope inline, then import.
  • tsc clean; en/et/ru i18n in sync; verified against htx.helex.dev/lmb.