{"id":274,"date":"2026-09-30T00:10:08","date_gmt":"2026-09-29T22:10:08","guid":{"rendered":"https:\/\/x9n9ya14k8.onrocket.site\/tools\/bijwerkingen-weeklog\/"},"modified":"2026-09-30T01:17:40","modified_gmt":"2026-09-29T23:17:40","slug":"bijwerkingen-weeklog","status":"publish","type":"page","link":"https:\/\/recalora.com\/nl\/tools\/bijwerkingen-weeklog\/","title":{"rendered":"Bijwerkingen-weeklog"},"content":{"rendered":"\n<style>\n\/* TOOL-SKELETON v1 - merk-config: Recalora (zie _TOOL-SKELETON-README.md) *\/\n:root{\n  --brand:#1A2E4D; --brand-soft:#E9EDF4; --accent:#B87333; --accent-deep:#8E561F;\n  --success:#5C6B47; --bg:#F8F6F1; --bg-deep:#F0EBE0; --sand:#EFE7D8; --amber-bg:#F5E5C9;\n  --danger:#8C2D2D; --ink:#141821; --muted:#4A4A4A; --line:#D8D4CE; --radius:8px;\n  --serif:\"Charter\",\"Bitstream Charter\",Cambria,Georgia,serif; --sans:\"Atkinson Hyperlegible\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\n}\n*{box-sizing:border-box;margin:0;padding:0;}\nbody{background:linear-gradient(180deg,rgba(26,46,77,.035) 0,rgba(26,46,77,0) 220px),repeating-linear-gradient(0deg,transparent 0 31px,rgba(26,46,77,.028) 31px 32px),var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;padding:36px 16px 70px;}\n.tool{max-width:720px;margin:0 auto;}\n.kicker{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:2.2px;text-transform:uppercase;color:var(--accent);font-weight:700;}\n.kicker::before{content:'';width:34px;height:2px;background:var(--accent);}\n.kicker::after{content:'';flex:1;height:1px;background:var(--line);}\nh1{font-family:var(--serif);font-size:32px;line-height:1.2;color:var(--brand);margin:12px 0;letter-spacing:-.3px;}\n.lede{color:var(--muted);font-size:16.5px;max-width:62ch;margin-bottom:24px;}\nh2{font-family:var(--serif);font-size:22px;color:var(--brand);margin:0 0 14px;}\nh3{font-family:var(--serif);font-size:17.5px;color:var(--brand);margin:20px 0 8px;}\n.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:20px;box-shadow:0 1px 3px rgba(20,24,33,.05),0 8px 28px rgba(20,24,33,.06);}\n.card.tool-form{border-top:4px solid var(--brand);}\n.daytabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;}\n.daytab{border:1.5px solid var(--line);border-radius:var(--radius);padding:8px 12px;cursor:pointer;background:#fff;text-align:center;min-width:80px;font-size:13.5px;color:var(--muted);transition:all .12s;}\n.daytab b{display:block;font-size:14.5px;color:var(--ink);}\n.daytab.sel{border-color:var(--brand);background:var(--brand);color:#C9D3E2;}\n.daytab.sel b{color:#fff;}\n.daytab .st{display:block;font-size:11px;margin-top:2px;}\n.daytab .st.done{color:var(--success);font-weight:700;}\n.daytab.sel .st.done{color:#C9DCC0;}\n.field{margin-bottom:20px;}\n.field>label{display:block;font-weight:700;margin-bottom:8px;font-size:15.5px;}\n.field .hint{font-weight:400;color:var(--muted);font-size:13px;}\n.scale{display:flex;gap:5px;flex-wrap:wrap;}\n.scale label{border:1.5px solid var(--line);border-radius:var(--radius);min-width:44px;text-align:center;padding:9px 6px;cursor:pointer;background:#fff;font-weight:600;font-size:14px;color:var(--muted);transition:all .1s;}\n.scale label:hover{border-color:var(--brand);}\n.scale input{display:none;}\n.scale label:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff;}\n.chips{display:flex;gap:8px;flex-wrap:wrap;}\n.chips label{border:1.5px solid var(--line);border-radius:99px;padding:8px 16px;cursor:pointer;background:#fff;font-size:14px;transition:all .12s;}\n.chips label:hover{border-color:var(--brand);}\n.chips input{display:none;}\n.chips label:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;}\ntextarea{width:100%;border:1.5px solid var(--line);border-radius:var(--radius);padding:11px 13px;font-size:15px;font-family:var(--sans);min-height:52px;resize:vertical;background:var(--bg);}\ntextarea:focus{outline:none;border-color:var(--brand);background:#fff;}\n.btnrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px;}\n.cta{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-deep) 100%);color:#F8F6F1;border:none;border-radius:var(--radius);padding:14px 26px;font-size:16.5px;font-weight:700;cursor:pointer;font-family:var(--sans);box-shadow:0 4px 14px rgba(184,115,51,.35);transition:transform .12s;}\n.cta:hover{transform:translateY(-1px);}\n.cta:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}\n.btn2{background:#fff;color:var(--brand);border:1.5px solid var(--brand);border-radius:var(--radius);padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s;}\n.btn2:hover{background:var(--brand);color:#fff;}\n.btn3{background:none;border:none;color:var(--muted);font-size:13.5px;cursor:pointer;text-decoration:underline;}\n.savemsg{font-size:13.5px;color:var(--success);font-weight:700;opacity:0;transition:opacity .3s;}\n.savemsg.show{opacity:1;}\n.savemsg.warn{color:var(--danger);}\n.tablewrap{overflow-x:auto;max-width:100%;}\n#rTable td:last-child{overflow-wrap:anywhere;min-width:140px;}\n.callout ul.rf{margin:6px 0 6px 20px;}\n.callout ul.rf li{margin-bottom:4px;}\n#result{display:none;}\n.result-hero{position:relative;overflow:hidden;background:linear-gradient(150deg,#223A5E 0%,var(--brand) 45%,#12233D 100%);color:#F8F6F1;border-radius:12px;padding:30px 26px;margin-bottom:18px;box-shadow:0 10px 34px rgba(26,46,77,.35);}\n.result-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),#D9A05B,var(--accent));}\n.result-hero .cap{font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:.8;}\n.result-hero .big{font-family:var(--serif);font-size:36px;font-weight:700;line-height:1.15;margin:6px 0 2px;}\n.result-hero .sub{font-size:15.5px;opacity:.9;max-width:56ch;}\n.callout{border-radius:0 var(--radius) var(--radius) 0;padding:15px 19px;margin:16px 0;font-size:15px;}\n.callout.insight{background:var(--bg-deep);border-left:4px solid var(--brand);}\n.callout.takeaway{background:var(--sand);border-left:4px solid var(--accent);}\n.callout.warn{background:var(--amber-bg);border-left:4px solid #C68B3C;}\n.callout.danger{background:#F8E9E7;border-left:4px solid var(--danger);}\n.callout b.cl{display:block;font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:5px;color:var(--accent-deep);}\n.callout.danger b.cl{color:var(--danger);}\ntable{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0 4px;}\nth{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);border-bottom:2px solid var(--brand);padding:8px;}\ntd{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;}\ntbody tr:nth-child(even) td{background:var(--bg);}\n.disclaimer{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:18px;line-height:1.6;}\ndetails.methode{margin-top:20px;}\ndetails.methode summary{font-family:var(--serif);font-size:18px;color:var(--brand);cursor:pointer;font-weight:700;padding:6px 0;}\n.methode-body{font-size:14.5px;color:var(--muted);padding-top:8px;}\n.methode-body ol{margin:8px 0 8px 22px;}\n#capture{display:none;background:var(--brand-soft);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-top:16px;}\n#capture form{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}\n#capture input[type=email]{flex:1;min-width:220px;border:1.5px solid var(--line);border-radius:var(--radius);padding:11px 12px;font-size:15px;}\n#capture .cta{padding:11px 22px;font-size:15px;}\n#capture .privacy{font-size:12.5px;color:var(--muted);margin-top:8px;}\n@media print{\n  body{background:#fff;padding:0;font-size:12.5px;}\n  .no-print,.tool-form,details.methode,#capture,.lede,.kicker{display:none !important;}\n  .tablewrap{overflow:visible !important;}\n  .card{border:none;box-shadow:none;padding:6px 0;}\n  .result-hero{background:#fff;color:var(--brand);border:2px solid var(--brand);box-shadow:none;}\n  .print-only{display:block !important;}\n}\n.print-only{display:none;font-size:12.5px;color:var(--muted);margin-top:14px;}\n<\/style>\n\n<div class=\"tool\">\n\n  <div class=\"kicker\">Recalora \u00b7 Gratis tool<\/div>\n  <h1>Bijwerkingen-weeklog<\/h1>\n  <p class=\"lede\">Bijwerkingen van GLP-1-medicatie volgen vaak een patroon: sterker rond de injectiedag, heftiger tijdens dosisverhogingen, en meestal afnemend over weken. Wie een week bijhoudt, praat concreter met de voorschrijver &#8211; en ziet zelf of het de goede kant op gaat. Alles blijft op je eigen apparaat.<\/p>\n\n  <div class=\"card tool-form\">\n    <h2>Vul per dag in <span style=\"font-size:13px;color:var(--muted);font-weight:400;font-family:var(--sans)\">&#8211; hoeft niet in \u00e9\u00e9n keer<\/span><\/h2>\n    <div class=\"daytabs\" id=\"daytabs\"><\/div>\n\n    <div class=\"field\"><label>Was dit je injectiedag?<\/label>\n      <div class=\"chips\" id=\"scInject\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Misselijkheid vandaag <span class=\"hint\">(0 = geen &#8211; 3 = sterk)<\/span><\/label>\n      <div class=\"scale\" id=\"scNausea\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Andere maag-darm-klachten <span class=\"hint\">(meerdere mogelijk)<\/span><\/label>\n      <div class=\"chips\" id=\"scGi\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Eetlust <span class=\"hint\">(1 = vrijwel geen &#8211; 5 = normaal)<\/span><\/label>\n      <div class=\"scale\" id=\"scAppetite\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Energie <span class=\"hint\">(1 = uitgeput &#8211; 5 = goed)<\/span><\/label>\n      <div class=\"scale\" id=\"scEnergy\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Gelukt om te drinken en eiwit te eten?<\/label>\n      <div class=\"chips\" id=\"scCare\"><\/div>\n    <\/div>\n    <div class=\"field\"><label>Notitie <span class=\"hint\">(optioneel &#8211; bv. &#8220;dosis verhoogd&#8221;)<\/span><\/label>\n      <textarea id=\"note\" maxlength=\"200\"><\/textarea>\n    <\/div>\n\n    <div class=\"btnrow\">\n      <button class=\"cta\" onclick=\"saveDay()\">Bewaar dag <span id=\"saveDayNr\"><\/span><\/button>\n      <span class=\"savemsg\" id=\"savemsg\">\u2713 Opgeslagen op dit apparaat<\/span>\n    <\/div>\n    <div class=\"btnrow\" style=\"margin-top:18px;justify-content:space-between;\">\n      <button class=\"cta\" id=\"analyseBtn\" style=\"background:linear-gradient(135deg,var(--brand),#12233D);box-shadow:0 4px 14px rgba(26,46,77,.35)\" onclick=\"analyse()\">Toon mijn weekoverzicht<\/button>\n      <button class=\"btn3\" onclick=\"resetWeek()\">nieuwe week starten (wist alles)<\/button>\n    <\/div>\n    <p id=\"analyseHint\" style=\"font-size:13.5px;color:var(--muted);margin-top:8px;\"><\/p>\n  <\/div>\n\n  <div id=\"result\">\n    <div class=\"result-hero\">\n      <div class=\"cap\">Jouw week met GLP-1<\/div>\n      <div class=\"big\" id=\"rTitle\">&#8211;<\/div>\n      <div class=\"sub\" id=\"rSub\"><\/div>\n    <\/div>\n    <div class=\"card\">\n      <h3>Wat valt op?<\/h3>\n      <div id=\"rPatterns\"><\/div>\n\n      <h3>Dagoverzicht<\/h3>\n      <div class=\"tablewrap\"><table id=\"rTable\"><thead><tr><th>Dag<\/th><th>Injectie<\/th><th>Misselijk<\/th><th>Eetlust<\/th><th>Energie<\/th><th>Klachten &amp; notitie<\/th><\/tr><\/thead><tbody><\/tbody><\/table><\/div>\n\n      <div class=\"callout danger\">\n        <b class=\"cl\">\u2691 Wanneer direct contact opnemen<\/b>\n        Neem <b>dezelfde dag nog<\/b> contact op met je (huis)arts bij:\n        <ul class=\"rf\">\n          <li>Aanhoudende, hevige buikpijn hoog in je buik die naar je rug uitstraalt, met misselijkheid of braken.<\/li>\n          <li>Pijn rechtsboven in je buik, geel worden van huid of oogwit, of opvallend lichte of ontkleurde ontlasting.<\/li>\n          <li>Tekenen van ernstige uitdroging: aanhoudend braken of diarree, nauwelijks kunnen drinken of plassen, donkere urine, duizelig bij opstaan, of verwardheid.<\/li>\n          <li>Tekenen van een te lage bloedsuiker: trillen, zweten, hartkloppingen, duizeligheid, verwardheid, plotselinge honger of wazig zien. Alleen bij gelijktijdig gebruik van insuline of een sulfonylureumderivaat.<\/li>\n        <\/ul>\n        Dit weeklog is dan niet het juiste instrument.\n      <\/div>\n\n      <div class=\"callout takeaway\">\n        <b class=\"cl\">Praktische conclusie<\/b>\n        Print dit overzicht en neem het mee naar je voorschrijver &#8211; zeker v\u00f3\u00f3r een geplande dosisverhoging. Een concreet weekbeeld helpt bij de afweging: doorgaan, langzamer optitreren of tijdelijk terug in dosis. Dat is een besluit van je arts, maar jouw log maakt het gesprek beter.\n      <\/div>\n\n      <div class=\"actions no-print btnrow\">\n        <button class=\"btn2\" onclick=\"window.print()\">\ud83d\udcc4 Print voor je voorschrijver \/ bewaar als PDF<\/button>\n        <button class=\"btn2\" onclick=\"document.getElementById('result').style.display='none';window.scrollTo({top:0,behavior:'smooth'})\">\u2191 Terug naar invullen<\/button>\n      <\/div>\n\n      <div id=\"capture\">\n        <h3>Meer rust in de opbouwfase?<\/h3>\n        <p style=\"font-size:14.5px\">Ontvang het gratis 5-dagen e-mailprogramma <b>&#8220;Grip op je GLP-1-opbouwfase&#8221;<\/b> &#8211; misselijkheid dempen met voedingskeuzes, eiwit binnenkrijgen bij weinig eetlust, en wanneer je w\u00e9l aan de bel trekt.<\/p>\n        <form id=\"captureForm\" method=\"post\" target=\"_blank\">\n          <input type=\"email\" name=\"email\" placeholder=\"je e-mailadres\" required>\n          <button class=\"cta\" type=\"submit\">Stuur mij het programma<\/button>\n        <\/form>\n        <div class=\"privacy\">Je log-gegevens worden <b>niet<\/b> meegestuurd of opgeslagen &#8211; alleen je e-mailadres, met dubbele bevestiging.<\/div>\n      <\/div>\n\n      <div class=\"print-only\" id=\"printMeta\"><\/div>\n\n      <div class=\"disclaimer\">\n        <b>Belangrijk.<\/b> Dit weeklog is een educatief hulpmiddel en geen medisch advies. Verander nooit zelf je dosering en stop niet op eigen initiatief &#8211; bespreek je log met je voorschrijver. GLP-1-medicijnen zijn uitsluitend op recept verkrijgbaar. Meld bijwerkingen ook bij je apotheker; die kan ze registreren bij Bijwerkingencentrum Lareb. Je gegevens staan uitsluitend in deze browser op dit apparaat.\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <details class=\"methode\">\n    <summary>Waarom dit werkt (methodiek &amp; bronnen)<\/summary>\n    <div class=\"methode-body\">\n      <ol>\n        <li><b>Bijwerkingen-patroon.<\/b> Maag-darm-klachten zijn de meest gemelde bijwerkingen van GLP-1-receptor-agonisten en zijn doorgaans het sterkst na dosisverhoging en rond de injectiedag, met afname over de tijd (EMA-productinformatie; STEP- en SURMOUNT-studies).<\/li>\n        <li><b>Zelfmonitoring.<\/b> Een gestructureerd log vermindert recall-bias en geeft de voorschrijver bruikbare informatie voor titratie-besluiten.<\/li>\n        <li><b>Eetlust &amp; eiwit.<\/b> Bij sterk onderdrukte eetlust schiet eiwit- en vochtinname er vaak bij in &#8211; het log volgt beide, omdat ze spierbehoud en klachten be\u00efnvloeden.<\/li>\n        <li><b>Rode vlaggen.<\/b> De alarmsignalen volgen de EMA-productinformatie (o.a. pancreatitis- en galsteen-signalen) en NHG-adviezen over uitdroging.<\/li>\n      <\/ol>\n      <p><b>Bronnen:<\/b> EMA-productinformatie (actueel via ema.europa.eu) \u00b7 Wilding JPH et al., NEJM 2021 (STEP-1) \u00b7 Jastreboff AM et al., NEJM 2022 (SURMOUNT-1) \u00b7 Bijwerkingencentrum Lareb (lareb.nl).<\/p>\n      <p style=\"margin-top:10px\">Laatst bijgewerkt: juli 2026 \u00b7 Recalora-redactie (research-synthese; geen klinisch advies).<\/p>\n    <\/div>\n  <\/details>\n\n  <div style=\"margin-top:34px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;\" class=\"no-print\">\n    <span style=\"font-family:var(--serif);font-weight:700;font-size:17px;color:var(--brand);\">Recalora<span style=\"color:var(--accent)\">.<\/span><\/span>\n    <span style=\"font-size:12.5px;color:var(--muted);\">Metabole herijking &#8211; wat de wetenschap zegt over GLP-1 \u00b7 recalora.com<\/span>\n  <\/div>\n<\/div>\n\n<script>\n\/* CONFIG - merk- en inhoudsspecifiek (skeleton-principe) *\/\nconst CONFIG = {\n  brand:'recalora', newsletterAction:'', storageKey:'recalora-bijwerkingenlog-v1',\n  days:7, minDaysForAnalysis:3,\n  gi:['Zuurbranden \/ boeren','Verstopping','Diarree','Opgeblazen gevoel','Buikpijn','Geen'],\n  care:['Beide gelukt','Alleen drinken gelukt','Alleen eiwit gelukt','Geen van beide'],\n};\n\/* Het log hangt aan de kalenderdatum in lokale tijd (niet UTC). De tabs tonen altijd de laatste 7 kalenderdagen\n   tot en met vandaag; \"vandaag\" staat op Dag 7. Oudere dagen blijven bewaard tot \"nieuwe week starten\".\n   Opgeslagen gegevens worden bij het laden gecontroleerd; onleesbare of verouderde onderdelen worden overgeslagen. *\/\nconst EPS = 1e-9;\nfunction localISO(d){ return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0'); }\nfunction isoDate(iso){ const p = iso.split('-').map(Number); return new Date(p[0], p[1]-1, p[2], 12); }\nfunction windowDates(){ const t = new Date(), out = []; for(let i=CONFIG.days-1;i>=0;i--){ out.push(localISO(new Date(t.getFullYear(), t.getMonth(), t.getDate()-i, 12))); } return out; }\nlet damaged = false;\nlet store = load();\nlet win = windowDates();\nlet selDate = win[CONFIG.days-1];\n\nfunction isInt(v,a,b){ return Number.isInteger(v) && v>=a && v<=b; }\nfunction validDay(k){ if(!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(k)) return false; const d = isoDate(k); return !isNaN(d) &#038;&#038; localISO(d) === k; }\nfunction clean(d){\n  if(!d || typeof d !== 'object' || !isInt(d.nausea,0,3) || !isInt(d.appetite,1,5) || !isInt(d.energy,1,5)) return null;\n  const gi = Array.isArray(d.gi) ? d.gi.filter(g => isInt(g,0,CONFIG.gi.length-1)) : [];\n  const care = isInt(d.care,0,CONFIG.care.length-1) ? d.care : null;\n  if((d.inject !== undefined && d.inject !== 0 && d.inject !== 1) || (d.care != null && care === null)\n     || (d.gi !== undefined && (!Array.isArray(d.gi) || gi.length !== d.gi.length)) || (d.note !== undefined && typeof d.note !== 'string')) damaged = true;\n  return {inject: d.inject === 1 ? 1 : 0, nausea: d.nausea, appetite: d.appetite, energy: d.energy, care,\n          gi: [...new Set(gi)], note: typeof d.note === 'string' ? d.note.slice(0,200) : ''};\n}\nfunction load(){\n  let raw = null;\n  try{ raw = localStorage.getItem(CONFIG.storageKey); }catch(_){ return {days:{}}; }\n  if(raw === null) return {days:{}};\n  let s = null;\n  try{ s = JSON.parse(raw); }catch(_){ damaged = true; return {days:{}}; }\n  if(!s || typeof s !== 'object' || Array.isArray(s) || s.started !== undefined || !s.days || typeof s.days !== 'object' || Array.isArray(s.days)){ damaged = true; return {days:{}}; }\n  const days = {};\n  for(const [k,v] of Object.entries(s.days)){\n    const c = validDay(k) ? clean(v) : null;\n    if(c){ days[k] = c; } else { damaged = true; }\n  }\n  return {days};\n}\n\/* \"Opgeslagen\" alleen als schrijven lukt \u00e9n teruglezen klopt. *\/\nfunction persist(){\n  try{ const v = JSON.stringify(store); localStorage.setItem(CONFIG.storageKey, v); return localStorage.getItem(CONFIG.storageKey) === v; }catch(_){ return false; }\n}\nfunction showMsg(txt, warn){\n  const m = document.getElementById('savemsg'); m.textContent = txt; m.classList.toggle('warn', !!warn); m.classList.add('show');\n  clearTimeout(showMsg.t); if(!warn) showMsg.t = setTimeout(()=>m.classList.remove('show'), 2000);\n}\nfunction fmtDay(iso){ return isoDate(iso).toLocaleDateString('nl-NL',{weekday:'short',day:'numeric',month:'short'}); }\n\nfunction buildScales(){\n  document.getElementById('scInject').innerHTML = ['Ja','Nee'].map((l,i)=>`<label><input type=\"radio\" name=\"inject\" value=\"${i===0?1:0}\">${l}<\/label>`).join('');\n  document.getElementById('scNausea').innerHTML = ['0 geen','1 licht','2 duidelijk','3 sterk'].map((l,v)=>`<label><input type=\"radio\" name=\"nausea\" value=\"${v}\">${l}<\/label>`).join('');\n  document.getElementById('scGi').innerHTML = CONFIG.gi.map((g,i)=>`<label><input type=\"checkbox\" name=\"gi\" value=\"${i}\">${g}<\/label>`).join('');\n  document.getElementById('scAppetite').innerHTML = [1,2,3,4,5].map(v=>`<label><input type=\"radio\" name=\"appetite\" value=\"${v}\">${v}<\/label>`).join('');\n  document.getElementById('scEnergy').innerHTML = [1,2,3,4,5].map(v=>`<label><input type=\"radio\" name=\"energy\" value=\"${v}\">${v}<\/label>`).join('');\n  document.getElementById('scCare').innerHTML = CONFIG.care.map((c,i)=>`<label><input type=\"radio\" name=\"care\" value=\"${i}\">${c}<\/label>`).join('');\n}\nfunction buildTabs(){\n  win = windowDates();\n  if(win.indexOf(selDate) < 0) selDate = win[CONFIG.days-1];\n  const today = win[CONFIG.days-1];\n  document.getElementById('daytabs').innerHTML = win.map((iso,i)=>{\n    const done = !!store.days[iso];\n    return `<div class=\"daytab ${iso===selDate?'sel':''}\" onclick=\"pickDay(${i})\"><b>Dag ${i+1}${iso===today?' \u00b7 vandaag':''}<\/b>${fmtDay(iso)}<span class=\"st ${done?'done':''}\">${done?'\u2713 ingevuld':'nog leeg'}<\/span><\/div>`;\n  }).join('');\n  document.getElementById('saveDayNr').textContent = win.indexOf(selDate)+1;\n  const n = win.filter(iso => store.days[iso]).length;\n  document.getElementById('analyseBtn').disabled = n < CONFIG.minDaysForAnalysis;\n  document.getElementById('analyseHint').textContent = n < CONFIG.minDaysForAnalysis\n    ? `Weekoverzicht beschikbaar vanaf ${CONFIG.minDaysForAnalysis} ingevulde dagen (nu: ${n}).`\n    : `${n} van ${CONFIG.days} dagen ingevuld.`;\n}\nfunction pickDay(i){ selDate = win[i]; fillForm(); buildTabs(); }\nfunction setRadio(name,val){ document.querySelectorAll(`input[name=\"${name}\"]`).forEach(r=>r.checked=(val!=null&&String(r.value)===String(val))); }\nfunction getRadio(name){ const el=document.querySelector(`input[name=\"${name}\"]:checked`); return el?parseInt(el.value,10):null; }\nfunction fillForm(){\n  const d = store.days[selDate]||{};\n  setRadio('inject',d.inject); setRadio('nausea',d.nausea); setRadio('appetite',d.appetite); setRadio('energy',d.energy); setRadio('care',d.care);\n  document.querySelectorAll('input[name=gi]').forEach(c=>c.checked=(d.gi||[]).includes(parseInt(c.value,10)));\n  document.getElementById('note').value = d.note||'';\n}\nfunction saveDay(){\n  const nausea=getRadio('nausea'), appetite=getRadio('appetite'), energy=getRadio('energy');\n  if(nausea==null||appetite==null||energy==null){ alert('Vul minimaal misselijkheid, eetlust en energie in.'); return; }\n  const existed = !!store.days[selDate];\n  store.days[selDate]={ inject:getRadio('inject')??0, nausea, appetite, energy, care:getRadio('care'),\n    gi:[...document.querySelectorAll('input[name=gi]:checked')].map(c=>parseInt(c.value,10)),\n    note:document.getElementById('note').value.trim() };\n  const saved = persist();\n  showMsg(saved ? (existed ? '\u2713 Bijgewerkt op dit apparaat (deze dag was al ingevuld)' : '\u2713 Opgeslagen op dit apparaat')\n                : 'Niet opgeslagen: deze browser bewaart je invoer niet. Je invoer bestaat alleen zolang deze pagina open staat - print je overzicht voordat je de pagina sluit.', !saved);\n  document.getElementById('result').style.display='none';\n  fillForm(); buildTabs();\n}\nfunction resetWeek(){\n  if(!confirm('Weet je het zeker? Dit wist alle ingevulde dagen definitief van dit apparaat.')) return;\n  try{ localStorage.removeItem(CONFIG.storageKey); }catch(_){}\n  store = {days:{}}; damaged = false; selDate = windowDates()[CONFIG.days-1]; fillForm(); buildTabs();\n  document.getElementById('savemsg').classList.remove('show');\n  document.getElementById('result').style.display='none';\n}\nfunction avg(a){ return a.length? a.reduce((x,y)=>x+y,0)\/a.length : null; }\nfunction f1(x){ return x==null?'-':(Math.round(x*10+EPS)\/10).toLocaleString('nl-NL'); }\nfunction esc(s){ return String(s).replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;'); }\n\nfunction analyse(){\n  const entries = win.map((iso,i)=>store.days[iso] ? {i, iso, ...store.days[iso]} : null).filter(Boolean);\n  if(entries.length < CONFIG.minDaysForAnalysis) return;\n  const avgN = avg(entries.map(e=>e.nausea));\n  document.getElementById('rTitle').textContent = `Gemiddelde misselijkheid: ${f1(avgN)} \/ 3`;\n  document.getElementById('rSub').textContent = `${entries.length} dagen bijgehouden \u00b7 eetlust gemiddeld ${f1(avg(entries.map(e=>e.appetite)))} \/ 5 \u00b7 energie gemiddeld ${f1(avg(entries.map(e=>e.energy)))} \/ 5.`;\n\n  const patterns=[];\n  \/* injectiedag-effect: misselijkheid op injectiedag + dag erna vs overige dagen (drempels met kleine marge tegen afrondingsverlies) *\/\n  const injDays = entries.filter(e=>e.inject===1).map(e=>e.i);\n  const nearInj = entries.filter(e=>injDays.some(j=>e.i===j||e.i===j+1));\n  const farInj  = entries.filter(e=>!injDays.some(j=>e.i===j||e.i===j+1));\n  if(nearInj.length && farInj.length){\n    const d = avg(nearInj.map(e=>e.nausea)) - avg(farInj.map(e=>e.nausea));\n    if(d>=0.8-EPS) patterns.push(`<b>Injectiedag-patroon.<\/b> Rond je injectiedag was je misselijkheid gemiddeld <b>${f1(d)} punt hoger<\/b> dan op andere dagen. Dat is een bekend en meestal tijdelijk patroon - nuttig om te weten voor het plannen van je injectiedag (bv. avond of rustige dag).`);\n  }\n  const firstHalf = entries.slice(0,Math.ceil(entries.length\/2)), secondHalf = entries.slice(Math.ceil(entries.length\/2));\n  if(secondHalf.length>=2){\n    const d = avg(secondHalf.map(e=>e.nausea)) - avg(firstHalf.map(e=>e.nausea));\n    if(d<=-0.5+EPS) patterns.push(`<b>Het beweegt de goede kant op.<\/b> In de tweede helft van je week nam misselijkheid af (${f1(avg(firstHalf.map(e=>e.nausea)))} \u2192 ${f1(avg(secondHalf.map(e=>e.nausea)))}). Gewenning over dagen tot weken is het verwachte beloop.`);\n    if(d>=0.7-EPS) patterns.push(`<b>Klachten namen toe<\/b> in de tweede helft van je week (${f1(avg(firstHalf.map(e=>e.nausea)))} \u2192 ${f1(avg(secondHalf.map(e=>e.nausea)))}). Zeker na een recente dosisverhoging: bespreek dit met je voorschrijver v\u00f3\u00f3r de volgende stap.`);\n  }\n  const lowIntake = entries.filter(e=>e.care===3).length;\n  if(lowIntake>=2) patterns.push(`<b>Aandachtspunt: drinken en eiwit.<\/b> Op ${lowIntake} dagen lukte drinken \u00e9n eiwit niet. Bij weinig eetlust is dit de eerste prioriteit - kleine porties, vloeibaar eiwit (kwark, shake) en verspreid drinken.`);\n  const giCount={};\n  for(const e of entries) for(const g of (e.gi||[])) if(g!==5) giCount[g]=(giCount[g]||0)+1;\n  const topGi = Object.entries(giCount).sort((a,b)=>b[1]-a[1]).slice(0,2).filter(([,n])=>n>=3);\n  if(topGi.length) patterns.push(`<b>Terugkerend:<\/b> ${topGi.map(([g,n])=>`${CONFIG.gi[g].toLowerCase()} (${n} dagen)`).join(', ')}. Vermeld dit expliciet bij je voorschrijver of apotheker - voor de meeste van deze klachten bestaan praktische aanpassingen.`);\n  if(!patterns.length) patterns.push(`Geen uitgesproken patroon in deze ${entries.length} dagen - dat is op zichzelf goed nieuws. Houd bij een dosisverhoging opnieuw een week bij.`);\n  document.getElementById('rPatterns').innerHTML = patterns.map(p=>`<div class=\"callout warn\" style=\"margin:10px 0\">${p}<\/div>`).join('');\n\n  document.querySelector('#rTable tbody').innerHTML = entries.map(e=>`\n    <tr><td style=\"white-space:nowrap\">${fmtDay(e.iso)}<\/td><td>${e.inject===1?'\ud83d\udc89':''}<\/td>\n    <td><b style=\"color:var(--accent-deep)\">${e.nausea}<\/b>\/3<\/td><td>${e.appetite}\/5<\/td><td>${e.energy}\/5<\/td>\n    <td style=\"font-size:13px;color:var(--muted)\">${(e.gi||[]).filter(g=>g!==5).map(g=>CONFIG.gi[g]).join(', ')}${e.care!=null?` \u00b7 ${CONFIG.care[e.care].toLowerCase()}`:''}${e.note?` \u00b7 <i>${esc(e.note)}<\/i>`:''}<\/td><\/tr>`).join('');\n\n  document.getElementById('printMeta').textContent = `Weeklog gegenereerd op ${new Date().toLocaleDateString('nl-NL',{day:'numeric',month:'long',year:'numeric'})} met het Recalora bijwerkingen-weeklog \u00b7 recalora.com \u00b7 Educatief hulpmiddel, geen medisch advies. Week gestart: ${isoDate(win[0]).toLocaleDateString('nl-NL')}.`;\n  if(CONFIG.newsletterAction){ document.getElementById('captureForm').action=CONFIG.newsletterAction; document.getElementById('capture').style.display='block'; }\n  document.getElementById('result').style.display='block';\n  document.getElementById('result').scrollIntoView({behavior:'smooth'});\n}\nbuildScales(); fillForm(); buildTabs();\nif(damaged){ showMsg('Een deel van de eerder opgeslagen gegevens was onleesbaar en is overgeslagen.', true); }\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Recalora \u00b7 Gratis tool Bijwerkingen-weeklog Bijwerkingen van GLP-1-medicatie volgen vaak een patroon: sterker rond de injectiedag, heftiger tijdens dosisverhogingen, en meestal afnemend over weken. Wie een week bijhoudt, praat concreter met de voorschrijver &#8211; en ziet zelf of het de goede kant op gaat. Alles blijft op je eigen apparaat. Vul per dag in &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":271,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_fable_quick_answer":"","_fable_evidence_tier":"","_fable_faq":"","_fable_sources":"","_fable_reviewed":"","_fable_area":"","_fable_hub_category":"","_fable_pillar":"","_fable_content":"","_fable_eyebrow":"","_fable_jsonld":"[{\"@context\": \"https:\/\/schema.org\", \"@type\": \"WebApplication\", \"name\": \"Bijwerkingen-weeklog\", \"applicationCategory\": \"HealthApplication\", \"operatingSystem\": \"Web\", \"offers\": {\"@type\": \"Offer\", \"price\": \"0\", \"priceCurrency\": \"EUR\"}, \"publisher\": {\"@type\": \"Organization\", \"name\": \"Recalora\", \"url\": \"https:\/\/recalora.com\"}, \"description\": \"Educatief 7-dagen-logboek voor bijwerkingen, eetlust en energie tijdens gebruik van je medicatie. Gegevens blijven op het eigen apparaat. Geen medisch advies.\"}]","footnotes":""},"class_list":["post-274","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/pages\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/comments?post=274"}],"version-history":[{"count":1,"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/pages\/274\/revisions"}],"predecessor-version":[{"id":921,"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/pages\/274\/revisions\/921"}],"up":[{"embeddable":true,"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/pages\/271"}],"wp:attachment":[{"href":"https:\/\/recalora.com\/nl\/wp-json\/wp\/v2\/media?parent=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}