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 internalrefid(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
refidand wants the concept details. - Mentions DedaLexicon, TermViewer, terminologie Dedalus, or the
termviewer.dedalus.comURL.
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 tologin.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.commeans you are not authenticated. - Shared authenticated browser. If a shared/authenticated browser page on
termviewer.dedalus.comis available, run the search there and read the results (the app calls/config/searchunder 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;0for 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; eachdescrip[0]has a value_and a$.typeofConcept Definition,Concept Definition - Validation Status, orCategory.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:$.typeinDefinition,Validation status,Validated by,DO NOT USE.- A final
languageGrpwithtype: "UID"holds the concept UID in itsterm.
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,AIsourceLanguage = All languages
- Narrow
origin(e.g.ORBIS) orsourceLanguage(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-Typeistext/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/htmlcontent type. - Handle auth gracefully — a redirect to
login.microsoftonline.commeans 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)vsFrench (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.