Files
triqura-ecd/docs/datamodel/entiteitenkaarten/ehr-referral-terminology.html
colinislit 2a1278936b docs(datamodel): FCO-IM feitenronde instroom, besluitenlog + herstructurering
Voegt de discovery- en besluitvormingsronde van 18-19 juli toe (besluitenlog,
begrippenlijst, feitenmodel-instroom met scenariotoetsen, terminologie- en
leveranciersonderzoek) en synchroniseert feitenmodel-instroom.md met de
screening=acceptatie-beslissing (§5). Herstructureert docs/datamodel/ naar
submappen per documentsoort (besluiten/sessielogs/feitenmodellen/deelmodellen/
onderzoek/entiteitenkaarten) zodat toekomstige besluitenlogs en feitenrondes
per deelgebied een vaste plek krijgen.
2026-07-19 11:07:21 +02:00

819 lines
23 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<title>Engelstalige EHR-termen voor GGZ-instroom</title>
<style>
:root {
--bg: #f5f7f6;
--surface: #ffffff;
--surface-subtle: #edf3f1;
--text: #172420;
--muted: #5b6d68;
--line: #dce3e0;
--accent: #0f766e;
--accent-strong: #0b5c56;
--accent-soft: #e1f0ee;
--success: #166534;
--success-soft: #e7f6eb;
--warning: #9a4d08;
--warning-soft: #fceedc;
--danger: #a12c2c;
--danger-soft: #fce8e8;
--code-bg: #e9efed;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #0d1512;
--surface: #12201c;
--surface-subtle: #172923;
--text: #e6eeeb;
--muted: #96a9a4;
--line: #2a3b36;
--accent: #35d6c4;
--accent-strong: #6ee7d9;
--accent-soft: #163430;
--success: #72d58a;
--success-soft: #173322;
--warning: #f0a94e;
--warning-soft: #2a1f10;
--danger: #f18a8a;
--danger-soft: #341a1a;
--code-bg: #1c2d28;
}
}
:root[data-theme="light"] {
--bg: #f5f7f6;
--surface: #ffffff;
--surface-subtle: #edf3f1;
--text: #172420;
--muted: #5b6d68;
--line: #dce3e0;
--accent: #0f766e;
--accent-strong: #0b5c56;
--accent-soft: #e1f0ee;
--success: #166534;
--success-soft: #e7f6eb;
--warning: #9a4d08;
--warning-soft: #fceedc;
--danger: #a12c2c;
--danger-soft: #fce8e8;
--code-bg: #e9efed;
}
:root[data-theme="dark"] {
--bg: #0d1512;
--surface: #12201c;
--surface-subtle: #172923;
--text: #e6eeeb;
--muted: #96a9a4;
--line: #2a3b36;
--accent: #35d6c4;
--accent-strong: #6ee7d9;
--accent-soft: #163430;
--success: #72d58a;
--success-soft: #173322;
--warning: #f0a94e;
--warning-soft: #2a1f10;
--danger: #f18a8a;
--danger-soft: #341a1a;
--code-bg: #1c2d28;
}
* {
box-sizing: border-box;
}
html {
background: var(--bg);
color: var(--text);
scroll-behavior: smooth;
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.55;
}
a {
color: var(--accent-strong);
text-underline-offset: 0.2em;
}
a:hover {
text-decoration-thickness: 2px;
}
code {
padding: 0.12em 0.38em;
border-radius: 5px;
background: var(--code-bg);
color: var(--accent-strong);
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.9em;
}
.page {
width: min(1180px, calc(100% - 2rem));
margin: 0 auto;
padding: 2rem 0 5rem;
}
.toolbar {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
margin-bottom: 3rem;
color: var(--muted);
font-size: 0.82rem;
}
.toolbar-actions {
display: flex;
align-items: center;
gap: 0.75rem;
}
.button {
appearance: none;
border: 1px solid var(--line);
border-radius: 7px;
background: var(--surface);
color: var(--text);
padding: 0.45rem 0.75rem;
font: inherit;
cursor: pointer;
}
.button:hover {
border-color: var(--accent);
}
header {
margin-bottom: 2rem;
}
.eyebrow {
margin: 0 0 0.65rem;
color: var(--accent-strong);
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
h1,
h2,
h3 {
color: var(--text);
line-height: 1.2;
text-wrap: balance;
}
h1 {
max-width: 22ch;
margin: 0 0 0.7rem;
font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
font-size: clamp(2rem, 5vw, 3.7rem);
font-weight: 600;
letter-spacing: -0.025em;
}
h2 {
margin: 0 0 1rem;
font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
font-size: clamp(1.4rem, 2.4vw, 2rem);
font-weight: 600;
}
h3 {
margin: 0;
font-size: 1rem;
}
.subtitle {
max-width: 68ch;
margin: 0;
color: var(--muted);
font-size: 1.05rem;
}
section {
margin-top: 3.5rem;
}
.callout {
margin-top: 2rem;
padding: 1.15rem 1.25rem;
border: 1px solid color-mix(in srgb, var(--success) 36%, var(--line));
border-radius: 10px;
background: var(--success-soft);
}
.callout.warning {
border-color: color-mix(in srgb, var(--warning) 36%, var(--line));
background: var(--warning-soft);
}
.callout h2,
.callout h3 {
margin-bottom: 0.45rem;
color: inherit;
}
.callout p {
max-width: 80ch;
margin: 0;
}
.concept-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem;
}
.concept-card {
display: flex;
flex-direction: column;
min-height: 230px;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--surface);
overflow: hidden;
}
.concept-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.75rem;
padding: 0.75rem 1rem;
border-bottom: 1px solid var(--line);
}
.concept-body {
display: flex;
flex: 1;
flex-direction: column;
gap: 0.9rem;
padding: 1rem;
}
.concept-body p {
margin: 0;
}
.concept-body .note {
margin-top: auto;
color: var(--muted);
font-size: 0.86rem;
}
.pill {
display: inline-flex;
align-items: center;
border-radius: 999px;
background: var(--surface-subtle);
color: var(--muted);
padding: 0.18rem 0.55rem;
font-size: 0.72rem;
white-space: nowrap;
}
.model-flow {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 0.55rem;
margin-top: 1.2rem;
}
.flow-step {
position: relative;
padding: 0.75rem 0.8rem;
border-radius: 8px;
background: var(--accent-soft);
color: var(--accent-strong);
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.78rem;
text-align: center;
}
.flow-step:not(:last-child)::after {
position: absolute;
top: 50%;
right: -0.48rem;
z-index: 1;
content: "";
transform: translateY(-52%);
color: var(--muted);
font-family: sans-serif;
font-size: 1.2rem;
}
.caption {
margin: 0.75rem 0 0;
color: var(--muted);
font-size: 0.82rem;
}
.table-shell {
overflow-x: auto;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--surface);
}
table {
width: 100%;
min-width: 780px;
border-collapse: collapse;
font-size: 0.9rem;
}
th,
td {
padding: 0.8rem 0.9rem;
border-bottom: 1px solid var(--line);
text-align: left;
vertical-align: top;
}
th {
background: var(--surface-subtle);
color: var(--muted);
font-size: 0.74rem;
font-weight: 700;
letter-spacing: 0.045em;
text-transform: uppercase;
}
tbody tr:last-child td {
border-bottom: 0;
}
tbody tr:nth-child(even) {
background: color-mix(in srgb, var(--surface-subtle) 45%, transparent);
}
.rating {
display: inline-block;
min-width: 4.5rem;
border-radius: 999px;
padding: 0.15rem 0.5rem;
font-size: 0.75rem;
font-weight: 700;
text-align: center;
}
.rating.strong {
background: var(--success-soft);
color: var(--success);
}
.rating.moderate {
background: var(--accent-soft);
color: var(--accent-strong);
}
.rating.weak {
background: var(--warning-soft);
color: var(--warning);
}
.rating.reject {
background: var(--danger-soft);
color: var(--danger);
}
.two-column {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
align-items: start;
}
.avoid-list {
display: grid;
gap: 0.65rem;
margin: 0;
padding: 0;
list-style: none;
}
.avoid-list li {
padding-bottom: 0.65rem;
border-bottom: 1px solid var(--line);
}
.panel {
padding: 1.25rem;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--surface);
}
.panel h3 {
margin-bottom: 0.65rem;
}
.panel p {
margin: 0 0 0.8rem;
}
.panel p:last-child {
margin-bottom: 0;
}
.source-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem 1.5rem;
padding: 0;
list-style: none;
}
.source-grid a {
display: block;
padding: 0.5rem 0;
border-bottom: 1px solid var(--line);
}
footer {
margin-top: 4rem;
padding-top: 1.25rem;
border-top: 1px solid var(--line);
color: var(--muted);
font-size: 0.8rem;
}
@media (max-width: 840px) {
.concept-grid,
.two-column {
grid-template-columns: 1fr;
}
.model-flow {
grid-template-columns: 1fr;
}
.flow-step:not(:last-child)::after {
top: auto;
right: 50%;
bottom: -0.72rem;
transform: translateX(50%) rotate(90deg);
}
}
@media (max-width: 620px) {
.page {
width: min(100% - 1.25rem, 1180px);
padding-top: 1rem;
}
.toolbar {
align-items: flex-start;
flex-direction: column;
margin-bottom: 2rem;
}
.source-grid {
grid-template-columns: 1fr;
}
}
@media print {
:root {
--bg: #ffffff;
--surface: #ffffff;
--surface-subtle: #f3f5f4;
--text: #111111;
--muted: #444444;
--line: #cccccc;
--accent: #0f766e;
--accent-strong: #0b5c56;
--accent-soft: #edf7f5;
--success: #166534;
--success-soft: #eef8f0;
--warning: #814005;
--warning-soft: #fff6e8;
--danger: #8a2424;
--danger-soft: #fff0f0;
--code-bg: #eeeeee;
}
.toolbar-actions {
display: none;
}
.page {
width: 100%;
padding: 0;
}
section,
.concept-card,
.panel,
.callout {
break-inside: avoid;
}
}
</style>
</head>
<body>
<main class="page">
<nav class="toolbar" aria-label="Documentacties">
<span>Lokaal onderzoeksartefact · 18 juli 2026</span>
<div class="toolbar-actions">
<a href="onderzoek-engelstalige-epd-terminologie.md">Onderzoeksrapport</a>
<button class="button" id="theme-toggle" type="button" aria-label="Wissel licht en donker thema">
Licht/donker
</button>
</div>
</nav>
<header>
<p class="eyebrow">EHR terminology review</p>
<h1>Engelstalige EHR-termen voor GGZ-instroom</h1>
<p class="subtitle">
Vergelijking van Epic, Oracle Health, athenahealth, Netsmart, NextGen,
HL7 FHIR, ONC/360X en NHS, aangescherpt voor een primair ambulante GGZ-context.
</p>
</header>
<aside class="callout">
<h2>Aanbevolen richting</h2>
<p>
Gebruik <code>referral</code> als eersteklas lifecycle-object voor het beheerde
aanmeldingstraject en <code>referral_submission</code> voor iedere afzonderlijke
ontvangst of aanvulling. Een mogelijk <code>referral_request</code> blijft een
apart te valideren concept voor het inhoudelijke verzoek of de formele verwijzing.
</p>
</aside>
<section aria-labelledby="core-model-title">
<h2 id="core-model-title">Voorgesteld kernmodel</h2>
<div class="concept-grid">
<article class="concept-card">
<div class="concept-header">
<h3>Referral Request</h3>
<span class="pill">verzoek · open</span>
</div>
<div class="concept-body">
<p><code>referral_request</code></p>
<p>
Het inhoudelijke verzoek om zorg of beoordeling, geïnitieerd door een
professional, organisatie, cliënt of vertegenwoordiger.
</p>
<p class="note">
Mogelijke Engelse tegenhanger van de formele VERWIJZING. Eerst bepalen
of dit een eigen identiteit nodig heeft.
</p>
</div>
</article>
<article class="concept-card">
<div class="concept-header">
<h3>Referral Submission</h3>
<span class="pill">ontvangst</span>
</div>
<div class="concept-body">
<p><code>referral_submission</code></p>
<p>
Eén ontvangen indiening of aanvulling, met eigen kanaal, bron, tijdstip,
documenten en oorspronkelijke inhoud.
</p>
<p class="note">
Voorkeursnaam voor AANMELDSIGNAAL. Een lokale technische term, geen
universele EHR-standaard.
</p>
</div>
</article>
<article class="concept-card">
<div class="concept-header">
<h3>Referral</h3>
<span class="pill">workflow</span>
</div>
<div class="concept-body">
<p><code>referral</code></p>
<p>
Het beheerde instroomobject dat submissions en eventuele requests
beoordeelt, aanvult, trieert en afsluit.
</p>
<p class="note">
Voorkeursnaam voor AANMELDINGSTRAJECT. Sluit aan op Epic, Oracle en
behavioral-healthleverancier Netsmart.
</p>
</div>
</article>
</div>
<div class="model-flow" aria-label="Voorgestelde instroomketen">
<div class="flow-step">referral_submission</div>
<div class="flow-step">referral</div>
<div class="flow-step">acceptance_decision</div>
<div class="flow-step">clinical_care_episode</div>
<div class="flow-step">clinical_intake</div>
</div>
<p class="caption">
De zorgsetting is een afzonderlijk tijdgebonden kenmerk. De keten heet dus
niet admission of pre-admission; de meeste GGZ-behandeling is ambulant.
</p>
</section>
<section aria-labelledby="options-title">
<h2 id="options-title">Beoordeling van naamparen</h2>
<div class="table-shell">
<table>
<thead>
<tr>
<th>Naamparen</th>
<th>Oordeel</th>
<th>Sterk punt</th>
<th>Belangrijk risico</th>
</tr>
</thead>
<tbody>
<tr>
<td>Referral Submission / Referral</td>
<td><span class="rating strong">Voorkeur</span></td>
<td>Idiomatic in referral management en behavioral health</td>
<td>Referral moet expliciet als ontvangende lifecycle worden gedefinieerd</td>
</tr>
<tr>
<td>Referral Submission / Referral Case</td>
<td><span class="rating moderate">Sterk</span></td>
<td>Scheidt ontvangst en workflow zeer expliciet</td>
<td>Case kan elders juridisch, financieel of klinisch iets anders betekenen</td>
</tr>
<tr>
<td>Care Access Submission / Care Access Case</td>
<td><span class="rating moderate">Redelijk</span></td>
<td>Inclusief voor zelfaanmelding en niet-formele bronnen</td>
<td>Access kan als dossier-, systeem- of autorisatietoegang worden gelezen</td>
</tr>
<tr>
<td>Referral Submission / Referral Intake Case</td>
<td><span class="rating weak">Zwak</span></td>
<td>Sluit aan op behavioral-healthtaal als referral intake</td>
<td>Botst met Triqura's afzonderlijke klinische intake</td>
</tr>
<tr>
<td>Inbound Care Submission / Access Assessment Case</td>
<td><span class="rating reject">Afwijzen</span></td>
<td>Domeinneutraal</td>
<td>Abstract en niet herkenbaar in onderzochte EHR-documentatie</td>
</tr>
</tbody>
</table>
</div>
</section>
<section aria-labelledby="evidence-title">
<h2 id="evidence-title">Wat markt en standaarden feitelijk gebruiken</h2>
<div class="table-shell">
<table>
<thead>
<tr>
<th>Bron</th>
<th>Gepubliceerde term</th>
<th>Betekenis</th>
<th>Gevolg voor Triqura</th>
</tr>
</thead>
<tbody>
<tr>
<td>Epic</td>
<td>Referral</td>
<td>Lifecycle-object met incoming/outgoing class, status, triage en historie</td>
<td>Ondersteunt <code>referral</code> als beheerd instroomobject</td>
</tr>
<tr>
<td>Oracle Health</td>
<td>Referral / Referral Order</td>
<td>Order is verzoek; Referral Management beheert status, bijlagen en tijdlijn</td>
<td>Scheidt request en beheerde referral</td>
</tr>
<tr>
<td>Netsmart</td>
<td>Incoming Referral / Referral Manager / Referral Packet</td>
<td>Behavioral-healthinstroom uit meerdere kanalen; acceptatie naar pre-admit</td>
<td>Referraltaal past bij de GGZ, maar pre-admit niet als generieke kernterm</td>
</tr>
<tr>
<td>HL7 FHIR</td>
<td>ServiceRequest / Task / EpisodeOfCare / Encounter</td>
<td>Verzoek, workflowtaak, verantwoordelijkheid en contact zijn aparte concepten</td>
<td>Lokale objecten niet naar één FHIR-resource forceren</td>
</tr>
<tr>
<td>ONC/360X</td>
<td>Referral Request / Referral Order / Referral Identifier</td>
<td>Closed-loop workflow met persistente identifier tot afsluiting</td>
<td>Request en workflow moeten herkenbaar maar niet samengevouwen zijn</td>
</tr>
<tr>
<td>NHS</td>
<td>Referral Request / Patient Pathway</td>
<td>Referral Request omvat self-referral; Patient Pathway is veel breder</td>
<td>Ondersteunt een apart request, maar niet Patient Pathway voor deze fase</td>
</tr>
</tbody>
</table>
</div>
</section>
<section class="two-column" aria-label="Terminologierisico's en modelcorrectie">
<div>
<h2>Termen om te vermijden</h2>
<ul class="avoid-list">
<li><code>signal</code> — klinkt als alert of klinisch vroegsignaal.</li>
<li><code>admission</code> — suggereert opname of reeds verleende toegang.</li>
<li><code>pre_admission</code> — is opnamegericht en niet passend als ambulante standaard.</li>
<li><code>encounter</code> — is een feitelijk contact, geen instroomworkflow.</li>
<li><code>episode_of_care</code> — impliceert organisatorische verantwoordelijkheid.</li>
<li><code>patient_pathway</code> — is breder en langduriger dan beoordeling vóór acceptatie.</li>
<li><code>referral_intake_case</code> — botst met de afzonderlijke klinische intake.</li>
</ul>
</div>
<article class="panel">
<h3>Belangrijkste modelcorrectie</h3>
<p>
Het huidige AANMELDSIGNAAL bevat zowel een transportfeit als inhoud van
een zorgverzoek. Engelstalige EHR-terminologie maakt zichtbaar dat dit
twee betekenissen kunnen zijn.
</p>
<p>
Een huisartsbrief, later ontvangen diagnostiek en een telefoontje kunnen
drie submissions binnen één referral zijn, zonder dat drie nieuwe
zorgverzoeken of trajecten ontstaan.
</p>
<p>
Of het inhoudelijke verzoek daarom een eigen <code>referral_request</code>
nodig heeft, wordt in de FCO-IM-feitenronde bepaald.
</p>
</article>
</section>
<section aria-labelledby="sources-title">
<h2 id="sources-title">Primaire bronnen</h2>
<ul class="source-grid">
<li><a href="https://open.epic.com/EHITables/GetTable/REFERRAL.htm">Epic REFERRAL</a></li>
<li><a href="https://open.epic.com/EHITables/GetTable/REFERRAL_2.htm">Epic referral triage</a></li>
<li><a href="https://docs.oracle.com/en/industries/health/oracle-health-ehr/ehrfg/referrals.html">Oracle Health Referrals</a></li>
<li><a href="https://www.ntst.com/carefabric/population-health-management/referral-management">Netsmart Referral Manager</a></li>
<li><a href="https://hl7.org/fhir/R5/servicerequest.html">HL7 FHIR ServiceRequest</a></li>
<li><a href="https://hl7.org/fhir/R5/episodeofcare.html">HL7 FHIR EpisodeOfCare</a></li>
<li><a href="https://oncprojectracking.healthit.gov/wiki/spaces/TechLab360X/pages/18776120/360X+Home">ONC 360X</a></li>
<li><a href="https://www.datadictionary.nhs.uk/classes/patient_pathway.html">NHS Patient Pathway</a></li>
</ul>
</section>
<aside class="callout warning">
<h2>Nog één open begrippenvraag</h2>
<p>
<code>referral_submission</code> en <code>referral</code> zijn de huidige
voorkeursrichting. De bestaande begrippenlijst is nog niet aangepast omdat
eerst moet worden vastgesteld of de Nederlandse VERWIJZING volledig
samenvalt met een zelfstandig <code>referral_request</code>.
</p>
</aside>
<footer>
Zelfstandig HTML-artefact. Geen externe scripts, fonts of stylesheets.
Bronlinks vereisen internet; alle onderzoeksinhoud is lokaal beschikbaar.
</footer>
</main>
<script>
(() => {
const root = document.documentElement;
const toggle = document.getElementById("theme-toggle");
const storedTheme = localStorage.getItem("ehr-referral-theme");
if (storedTheme === "light" || storedTheme === "dark") {
root.dataset.theme = storedTheme;
}
toggle.addEventListener("click", () => {
const systemDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
const current = root.dataset.theme || (systemDark ? "dark" : "light");
const next = current === "dark" ? "light" : "dark";
root.dataset.theme = next;
localStorage.setItem("ehr-referral-theme", next);
});
})();
</script>
</body>
</html>