| name | dedalexicon-terminology |
| description | Interroge la base de connaissances terminologique interne Dedalus (DedaLexicon TermViewer) pour obtenir la terminologie multilingue officielle, les définitions, les catégories, les termes déconseillés (DO NOT USE) et les UID des concepts métier ERP/santé (ORBIS, DIIT, QARA, etc.). À utiliser quand l'utilisateur demande le terme correct pour un concept, la traduction validée d'un terme métier (EN/FR/DE/NL/IT/ES/PT/NO), la définition d'un terme ORBIS/Dedalus, ou veut aligner du code, une UI ou de la documentation sur le langage ubiquitaire officiel Dedalus. |
| version | 1.0.0 |
| license | Proprietary |
| metadata | {"author":"dedalus-erp-pas","source":"DedaLexicon TermViewer","source-url":"https://termviewer.dedalus.com","api-base":"https://termviewer.dedalus.com","application-version":"2.5"} |
| allowed-tools | WebFetch, Bash |
DedaLexicon TermViewer -- Terminology Lookup Skill
This skill gives you access to DedaLexicon TermViewer, the internal Dedalus
terminology knowledge base. Your role is to query the terminology REST API
(or, when it is unreachable, guide the user) to return the official, validated
multilingual terminology for Dedalus ERP / healthcare concepts.
Use it to make sure code identifiers, UI labels, documentation, and translations
use the correct, validated business term (ubiquitous language) rather than an
ad-hoc guess.
What is DedaLexicon TermViewer
A multilingual clinical / ERP termbase (TBX-style) maintained by Dedalus. Each
concept has:
- A concept definition (English) and a category (e.g.
Patient Administration,
ERP, Finance, Medical Treatment, Basic Tools).
- One term per language with, optionally, a language-specific definition,
a validation status, the validator name, and DO NOT USE synonyms
(terms that exist but must not be used).
- An origin (product/source):
ORBIS, DIIT, QARA, Dedalus specific, AI.
- A stable UID (e.g.
20210811_00996) and an internal refid (e.g. ID_ORBIS_994).
Supported languages: English, French (France + Luxembourg), German,
Dutch (Belgium), Italian, Spanish, Portuguese, Norwegian.
The web UI lives at https://termviewer.dedalus.com/?q=<term> and is backed by
a small REST API documented below.
When to use this skill
Activate when the user:
- Asks "what is the correct/official term for X" (in code, UI, or docs).
- Asks for the validated translation of a business term across languages
(EN / FR / DE / NL / IT / ES / PT / NO).
- Asks for the definition of an ORBIS / Dedalus / healthcare concept
(e.g. "venue", "admission", "revenue distribution", "sojourn").
- Wants to align code, a UI label, or documentation with the official Dedalus
ubiquitous language.
- Asks which synonym is deprecated / must not be used ("DO NOT USE").
- Provides a UID or
refid and wants the concept details.
- Mentions DedaLexicon, TermViewer, terminologie Dedalus, or the
termviewer.dedalus.com URL.
Access & authentication
IMPORTANT: TermViewer is behind Microsoft Entra ID SSO (SAML) and the
corporate Zscaler network. It is only reachable from an authenticated
session inside the Dedalus corporate network. A plain curl / WebFetch from
outside will be redirected to login.microsoftonline.com (HTTP 303) and
return the login page, not data.
Choose the first strategy that works in your environment:
- Authenticated corporate session (preferred). If you are running inside the
corporate network with a valid session (browser cookies, SSO token), call the
REST API directly (see below). A successful call returns a JSON array; a
redirect to
login.microsoftonline.com means you are not authenticated.
- Shared authenticated browser. If a shared/authenticated browser page on
termviewer.dedalus.com is available, run the search there and read the
results (the app calls /config/search under the hood).
- User-assisted fallback. If the API is unreachable, ask the user to open
https://termviewer.dedalus.com/?q=<term> and paste the result, or to copy the
JSON from /config/search?q=<term> in their authenticated browser. Never
fabricate terminology — see the rules below.
REST API
Base URL: https://termviewer.dedalus.com
1. Search terms
GET /config/search?q={term}&origin={origins}&sourceLanguage={language}
| Param | Required | Description |
|---|
q | yes | The term or fragment to search, in any language (e.g. venue, admission). Avoid an empty q — it returns the entire termbase (~10,500 concepts). |
origin | no | Comma-separated list from the origins below. URL-encode spaces (Dedalus%20specific). Omit to search all origins. An unknown origin simply yields no matches (HTTP 200, empty array). |
sourceLanguage | yes | One of the languages below, or All%20languages. Required — a missing or invalid value returns HTTP 500. |
Valid origin values: DIIT, ORBIS, QARA, Dedalus specific, AI
(also retrievable live via GET /origins).
Valid sourceLanguage values: All languages, English, French, German,
Dutch, Italian, Spanish, Portuguese, Norwegian.
Response: a JSON array of matches, ranked by score (higher = better).
The HTTP Content-Type is text/html but the body is JSON — parse it as JSON.
See reference/api.md for the full schema and a ready-to-use parser.
Example (broadest search for "venue"):
GET https://termviewer.dedalus.com/config/search?q=venue&origin=DIIT,ORBIS,QARA,Dedalus%20specific,AI&sourceLanguage=All%20languages
curl example (only works from an authenticated corporate session):
curl -sS --cookie "$TERMVIEWER_COOKIES" \
"https://termviewer.dedalus.com/config/search?q=venue&origin=DIIT,ORBIS,QARA,Dedalus%20specific,AI&sourceLanguage=All%20languages"
2. List origins
GET /origins -> {"origins":["DIIT","ORBIS","QARA","Dedalus specific","AI"]}
3. App config
GET /assets/config/appConfig-prod.json -> { applicationTitle, applicationVersion, backendUrl }
Response schema (essentials)
Each array element:
score — relevance (float; 0 for exact metadata matches, higher for scored hits).
refid — internal id, e.g. ID_ORBIS_994.
matchData.metadata.<term> — which field/language matched.
entry — the concept:
concept[0] — concept id.
descripGrp[] — concept-level descriptors; each descrip[0] has a value _
and a $.type of Concept Definition, Concept Definition - Validation Status,
or Category.
languageGrp[] — one group per language:
language[0].$.type — human label (e.g. French (France)); .$.lang — code (FR-FR).
termGrp[0].term[0] — the term in that language.
termGrp[0].descripGrp[] — per-term descriptors: $.type in
Definition, Validation status, Validated by, DO NOT USE.
- A final
languageGrp with type: "UID" holds the concept UID in its term.
origin — e.g. ORBIS.
Full annotated schema, a real example, and a Python flattener: reference/api.md.
Workflow
Step 1: Build the query
- Take the user's term. Default to the broadest search unless they specify a
language or origin:
origin = DIIT,ORBIS,QARA,Dedalus specific,AI
sourceLanguage = All languages
- Narrow
origin (e.g. ORBIS) or sourceLanguage (e.g. French) when the user
asks for a specific product or language.
Step 2: Call the API
- Fetch
GET /config/search?... using the access strategy that works (see above).
- Parse the body as JSON even though
Content-Type is text/html.
- If you get the Microsoft login page / a 303 redirect, you are not authenticated —
fall back to the user-assisted strategy.
Step 3: Present the result
For each relevant concept, present a compact, readable summary:
### {English term} — {Category} · origin: {origin} · UID: {uid}
> {Concept definition (EN)}
| Language | Term | Definition | Do not use |
|----------|------|------------|------------|
| English | visit | ... | case |
| French (France) | venue | Tout contact d'un patient avec une UF... | |
| French (Luxembourg) | visite | | venue |
| German (Germany) | Besuch | Ein Besuch ist jedweder Kontakt... | |
| Dutch (Belgium) | bezoek | | |
- Always surface DO NOT USE terms explicitly — they are the most actionable
output (they tell the user what not to write).
- Mention the validation status when the user needs an authoritative term
(
VALIDATED / INTERNALLY VALIDATED / NOT VALIDATED).
- When several concepts match, lead with the highest-
score / exact match and list
the others briefly.
Step 4: Apply to the task
If the user is naming a variable, label, or writing docs, recommend the
validated term for the target language and warn about any DO NOT USE synonym.
Examples
Example 1 — Correct term across languages
User: What's the official Dedalus term for "venue" and its translations?
→ GET /config/search?q=venue&origin=DIIT,ORBIS,QARA,Dedalus%20specific,AI&sourceLanguage=All%20languages
→ Concept "visit" (ORBIS, Patient Administration, UID 20210811_00996):
EN visit · FR-FR venue · FR-LU visite (DO NOT USE: venue) · DE Besuch · NL bezoek
→ Note: in French (Luxembourg), "venue" is DEPRECATED — use "visite".
Example 2 — Definition of an ORBIS concept
User: What does "admission" mean in ORBIS?
→ GET /config/search?q=admission&origin=ORBIS&sourceLanguage=English
→ "Movement that characterizes the start of a case (treatment and/or hospital stay)…"
Example 3 — Aligning a UI label
User: I'm labelling a button for the French UI, concept "revenue distribution".
→ GET /config/search?q=revenue%20distribution&origin=ORBIS&sourceLanguage=English
→ FR-FR validated term: "ventilation des honoraires" (DO NOT USE: profit distribution).
Important rules
- Never invent terminology. Only report terms, definitions, and UIDs that come
back from TermViewer. If the API is unreachable and the user cannot provide the
data, say so explicitly — do not guess a translation.
- Always quote the UID and origin when presenting a concept, so the user can
trace it back in the TermViewer UI (
?q=<term>).
- Prioritise DO NOT USE and validation status — these are the highest-value
signals for choosing the right term.
- Parse the response as JSON despite the
text/html content type.
- Handle auth gracefully — a redirect to
login.microsoftonline.com means the
session is not authenticated; switch to the user-assisted fallback rather than
reporting an error.
- Respect the source language the user targets (e.g.
French (France) vs
French (Luxembourg) can differ — Luxembourg deprecates "venue", France uses it).
- Cross-reference
ubiquitous-language — when building a domain glossary, feed
the validated TermViewer terms into that skill instead of paraphrasing.