{"id":29047,"date":"2026-10-26T14:07:58","date_gmt":"2026-10-26T14:07:58","guid":{"rendered":"https:\/\/coulinmedical.com\/?page_id=29047"},"modified":"2026-10-30T10:21:56","modified_gmt":"2026-10-30T10:21:56","slug":"auto-diagnostic-genou-hanche","status":"publish","type":"page","link":"https:\/\/coulinmedical.com\/en\/auto-diagnostic-genou-hanche\/","title":{"rendered":"SELF-DIAGNOSTIC"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29047\" class=\"elementor elementor-29047\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89fae12 e-grid e-con-boxed e-con e-parent\" data-id=\"89fae12\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a02d24 elementor-widget elementor-widget-heading\" data-id=\"8a02d24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">AUTO-DIAGNOSTIC DE LA HANCHE ET DU GENOU<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0bff3bd e-con-full e-flex e-con e-parent\" data-id=\"0bff3bd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3708bee e-con-full e-flex e-con e-child\" data-id=\"3708bee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b40e411 e-con-full e-flex e-con e-child\" data-id=\"b40e411\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1821fd3 e-con-full e-flex e-con e-child\" data-id=\"1821fd3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35604d2 elementor-widget elementor-widget-heading\" data-id=\"35604d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">16 questions pour orienter vos douleurs li\u00e9es \u00e0 la hanche <br>ou au genou.<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a26bcc elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"4a26bcc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-83c1c7f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"83c1c7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>R\u00e9pondez \u00e0 quelques questions sur votre douleur au genou ou \u00e0 la hanche. Vous obtenez les trois pistes diagnostiques les plus probables, les traitements habituellement envisag\u00e9s et les premiers gestes \u00e0 adopter.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-be03cc8 e-flex e-con-boxed e-con e-parent\" data-id=\"be03cc8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b6ae565 elementor-widget elementor-widget-html\" data-id=\"b6ae565\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\n     PARTIE 1 \u2014 STYLES CSS\n     ============================================================ -->\n<style>\n#dg-app *, #dg-app *::before, #dg-app *::after { box-sizing: border-box; margin: 0; padding: 0; }\n#dg-app { background:transparent; padding:48px 40px; font-family:'Arboria',Arial,sans-serif; max-width:780px; margin:0 auto; }\n#dg-app .dg-prog-meta { display:flex; justify-content:space-between; font-size:0.65rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#b1bdb1; margin-bottom:10px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-prog-wrap { height:5px; background:rgba(177,189,177,0.35); border-radius:3px; margin-bottom:44px; }\n#dg-app .dg-prog-fill { height:100%; background:#9aab99; border-radius:3px; transition:width 0.4s ease; }\n#dg-app .dg-qtext { font-size:1.3rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:28px; line-height:1.5; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-qhint { font-size:0.75rem; color:#b1bdb1; font-style:italic; margin-top:-18px; margin-bottom:20px; text-transform:none; letter-spacing:0; font-weight:400; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-options { display:flex; flex-direction:column; gap:10px; }\n#dg-app .dg-opt { display:flex; align-items:center; gap:16px; padding:17px 22px; border:1px solid #b1bdb1; border-radius:10px; background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:border-color 0.2s, box-shadow 0.2s, background-color 0.2s, transform 0.2s ease; }\n#dg-app .dg-opt:hover { border-color:#9aab99; background-color:rgba(177,189,177,0.35); box-shadow:0 6px 18px rgba(177,189,177,0.2); transform:translateY(-4px); }\n#dg-app .dg-opt.selected { border-color:#9aab99; background-color:rgba(177,189,177,0.14); box-shadow:0 2px 12px rgba(177,189,177,0.18); }\n#dg-app .dg-radio { width:18px; height:18px; border-radius:50%; border:1.5px solid #ccc; flex-shrink:0; display:flex; align-items:center; justify-content:center; }\n#dg-app .dg-opt.selected .dg-radio { border-color:#b1bdb1; }\n#dg-app .dg-radio-dot { width:9px; height:9px; border-radius:50%; background:#b1bdb1; display:none; }\n#dg-app .dg-opt.selected .dg-radio-dot { display:block; }\n#dg-app .dg-opt-t { font-size:0.88rem; color:#2a2a2a; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-opt.selected .dg-opt-t { font-weight:700; }\n#dg-app .dg-nav-sep { border:none; border-top:1px solid #b1bdb1; margin:44px 0 0; }\n#dg-app .dg-nav { display:flex; justify-content:space-between; align-items:center; padding:16px 0; }\n#dg-app .dg-btn-prev { transition:color 0.2s; }\n#dg-app .dg-btn-prev:hover { color:#b1bdb1 !important; cursor:pointer; }\n#dg-app .dg-btn-prev:hover .dg-cb { border-color:#b1bdb1 !important; }\n#dg-app .dg-btn-prev:hover svg { stroke:#b1bdb1 !important; }\n#dg-app .dg-nav-last { display:none; }\n#dg-app #dg-render { position:relative; }\n#dg-app #dg-anim-region { position:relative; overflow:hidden; }\n@keyframes dgSlideInRight  { from{opacity:0;transform:translateX(90px) scale(0.97)}  to{opacity:1;transform:translateX(0) scale(1)} }\n@keyframes dgSlideInLeft   { from{opacity:0;transform:translateX(-90px) scale(0.97)} to{opacity:1;transform:translateX(0) scale(1)} }\n@keyframes dgSlideOutLeft  { from{opacity:1;transform:translateX(0) scale(1)}  to{opacity:0;transform:translateX(-90px) scale(0.97)} }\n@keyframes dgSlideOutRight { from{opacity:1;transform:translateX(0) scale(1)}  to{opacity:0;transform:translateX(90px) scale(0.97)} }\n#dg-app .dg-q-wrap { animation-duration:0.42s; animation-timing-function:cubic-bezier(0.16,1,0.3,1); animation-fill-mode:both; }\n#dg-app .dg-q-wrap.enter-next  { animation-name:dgSlideInRight; }\n#dg-app .dg-q-wrap.enter-prev  { animation-name:dgSlideInLeft; }\n#dg-app .dg-q-wrap.exit-next   { animation-name:dgSlideOutLeft;  position:absolute;top:0;left:0;right:0; pointer-events:none; }\n#dg-app .dg-q-wrap.exit-prev   { animation-name:dgSlideOutRight; position:absolute;top:0;left:0;right:0; pointer-events:none; }\n#dg-app .dg-res { animation:dgUp 0.35s ease both; }\n@keyframes dgUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }\n#dg-app .dg-res-title { font-size:1.3rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:28px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-diag { display:flex; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid #dde3da; }\n#dg-app .dg-diag:first-of-type { border-top:1px solid #dde3da; }\n#dg-app .dg-d-num { font-size:1.8rem; font-weight:700; min-width:32px; color:#b1bdb1; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-diag.r1 .dg-d-num { color:#b1bdb1; }\n#dg-app .dg-d-body { flex:1; min-width:0; }\n#dg-app .dg-d-name { font-size:0.95rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:5px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-desc { font-size:0.75rem; color:#aaa; line-height:1.55; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-right { width:70px; flex-shrink:0; text-align:right; }\n#dg-app .dg-d-pct { font-size:0.65rem; color:#aaa; margin-bottom:5px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-d-bar-bg { background:#dde3da; height:3px; border-radius:2px; }\n#dg-app .dg-d-bar { height:100%; border-radius:2px; transition:width 1s ease 0.3s; }\n#dg-app .dg-diag.r1 .dg-d-bar { background:#b1bdb1; }\n#dg-app .dg-diag.r2 .dg-d-bar { background:#555; }\n#dg-app .dg-diag.r3 .dg-d-bar { background:#ccc; }\n\n\/* ---- BLOC TRAITEMENTS PAR DIAGNOSTIC ---- *\/\n#dg-app .dg-traitements-block { margin-top:32px; padding:28px 32px; background:#f7f8f6; border:1px solid #e3e6e1; border-radius:10px; border-left:4px solid #9aab99; }\n#dg-app .dg-traitements-title { font-size:0.85rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:20px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-trait-item { margin-bottom:14px; padding:18px 20px; background:rgba(177,189,177,0.1); border-radius:8px; }\n#dg-app .dg-trait-item:last-child { margin-bottom:0; }\n#dg-app .dg-trait-diag-name { font-size:0.85rem; font-weight:700; color:#5f7a5e; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:12px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-trait-cols { display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }\n#dg-app .dg-trait-col-title { font-size:0.7rem; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:6px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-trait-list { list-style:none; display:flex; flex-direction:column; gap:4px; }\n#dg-app .dg-trait-list li { font-size:0.75rem; color:#666; line-height:1.5; font-family:'Arboria',Arial,sans-serif; padding-left:12px; position:relative; }\n#dg-app .dg-trait-list li::before { content:'\u2192'; position:absolute; left:0; color:#9aab99; font-size:0.7rem; }\n\n\/* ---- BLOC GESTES ---- *\/\n#dg-app .dg-gestes-block { margin-top:32px; padding:28px 32px; background:#f7f8f6; border:1px solid #e3e6e1; border-radius:10px; border-top:2px solid #9aab99; }\n#dg-app .dg-gestes-label { font-size:0.85rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:20px; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-gestes-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; }\n#dg-app .dg-geste { display:flex; align-items:flex-start; gap:10px; }\n#dg-app .dg-geste-dot { width:5px; height:5px; border-radius:50%; background:#9aab99; flex-shrink:0; margin-top:6px; }\n#dg-app .dg-geste-t { font-size:0.75rem; color:#777; line-height:1.55; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-disc { margin-top:24px; padding:14px 18px; background:#eef1ec; border:1px solid #c9d2c5; border-radius:8px; font-size:0.75rem; color:#3c4a3c; line-height:1.7; font-family:'Arboria',Arial,sans-serif; font-style:italic; }\n\n\/* ---- \u00c9CRAN DE S\u00c9LECTION D'ARTICULATION ---- *\/\n#dg-app .dg-sel-title { font-size:1.3rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#1a1a1a; margin-bottom:32px; line-height:1.5; font-family:'Arboria',Arial,sans-serif; text-align:center; }\n#dg-app .dg-sel-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n#dg-app .dg-sel-card { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:44px 20px; border:1px solid #b1bdb1; border-radius:14px; cursor:pointer; text-align:center; transition:border-color 0.2s, box-shadow 0.2s, background-color 0.2s, transform 0.2s ease; position:relative; overflow:hidden; }\n#dg-app .dg-sel-card:hover { border-color:#9aab99; background-color:rgba(177,189,177,0.35); box-shadow:0 6px 18px rgba(177,189,177,0.2); transform:translateY(-4px); }\n#dg-app .dg-sel-name { font-size:0.95rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#1a1a1a; font-family:'Arboria',Arial,sans-serif; }\n#dg-app .dg-sel-sub { font-size:0.72rem; color:#aaa; font-family:'Arboria',Arial,sans-serif; line-height:1.5; }\n#dg-app .dg-change-area { display:inline-flex; align-items:center; gap:6px; cursor:pointer; margin-bottom:24px; font-family:'Arboria',Arial,sans-serif; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#b1bdb1; }\n#dg-app .dg-change-area:hover { color:#b1bdb1; }\n\n@media(max-width:768px){\n  #dg-app { padding:32px 20px; }\n  #dg-app .dg-qtext { font-size:1rem !important; }\n  #dg-app .dg-opt { padding:14px 16px; }\n  #dg-app .dg-opt-t { font-size:0.85rem; }\n  #dg-app .dg-gestes-grid { grid-template-columns:1fr; }\n  #dg-app .dg-gestes-block { padding:20px 18px; }\n  #dg-app .dg-traitements-block { padding:20px 18px; }\n  #dg-app .dg-trait-cols { grid-template-columns:1fr; }\n  #dg-app .dg-d-right { width:50px; }\n  #dg-app .dg-nav-desktop-last { display:none !important; }\n  #dg-app .dg-nav-last { display:flex; flex-direction:column; padding:16px 0; gap:0; }\n  #dg-app .dg-dl-btn { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; padding:18px 24px; margin-bottom:16px; background:#b1bdb1; border-radius:12px; cursor:pointer; font-family:'Arboria',Arial,sans-serif; font-size:14px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#fff; transition:opacity 0.2s; }\n  #dg-app .dg-dl-btn.disabled { opacity:0.35; pointer-events:none; }\n  #dg-app .dg-dl-btn:active { opacity:0.8; }\n  #dg-app .dg-nav-row { display:flex; justify-content:flex-start; align-items:center; }\n  #dg-app .dg-sel-card { padding:28px 16px; }\n}\n@media(max-width:480px){\n  #dg-app { padding:24px 16px; }\n  #dg-app .dg-qtext { font-size:0.85rem !important; letter-spacing:0.06em !important; }\n  #dg-app .dg-opt { padding:12px 14px; }\n  #dg-app .dg-opt-t { font-size:0.8rem; }\n  #dg-app .dg-prog-meta { font-size:0.6rem; }\n  #dg-app .dg-diag { flex-wrap:wrap; gap:12px; }\n  #dg-app .dg-d-right { width:100%; text-align:left; }\n  #dg-app .dg-gestes-block { padding:16px 14px; }\n  #dg-app .dg-dl-btn { font-size:12px; padding:16px 18px; }\n  #dg-app .dg-sel-grid { grid-template-columns:1fr; }\n}\n<\/style>\n\n<!-- ============================================================\n     PARTIE 2 \u2014 LIBRAIRIES EXTERNES\n     ============================================================ -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n\n<!-- ============================================================\n     PARTIE 3 \u2014 HTML\n     ============================================================ -->\n<div id=\"dg-app\"><div id=\"dg-render\"><\/div><\/div>\n\n<!-- ============================================================\n     PARTIE 4 \u2014 JAVASCRIPT\n     ============================================================ -->\n<script>\n(function(){\n\nconst LANG=(document.documentElement.lang||'').startsWith('en')||window.location.pathname.indexOf('\/en')===0?'en':'fr';\n\nconst T={\n  fr:{\n    btnPrev:'Pr\u00e9c\u00e9dent', btnNext:'Suivant',\n    btnDownload:'T\u00e9l\u00e9charger mon diagnostic',\n    btnRdv:'Prendre rendez-vous', btnRestart:'\u21ba Recommencer',\n    btnChangeArea:'\u2190 Changer d\\'articulation',\n    selTitle:'Quelle articulation vous fait souffrir ?',\n    selGenouSub:'Face avant, face lat\u00e9rale, arri\u00e8re du genou',\n    selHancheSub:'Aine, fesse, grand trochanter',\n    resTitle:'R\u00e9sultats du diagnostic',\n    gestesLabel:'Premiers gestes \u00e0 adopter',\n    traitementsLabel:'Recommandations & traitements possibles',\n    disc:'\u2695 Aide-m\u00e9moire clinique uniquement. Tout diagnostic doit \u00eatre confirm\u00e9 par un m\u00e9decin ou un professionnel de sant\u00e9 avant tout traitement.',\n    pdfConfidential:'Document confidentiel',\n    pdfFooter:'Document indicatif \u2014 diagnostic a confirmer par un medecin ou professionnel de sante.',\n    pdfS1:'REPONSES DU PATIENT', pdfS2:'RESULTATS DU DIAGNOSTIC', pdfS3:'PREMIERS GESTES A ADOPTER', pdfS4:'RECOMMANDATIONS & TRAITEMENTS',\n    pdfRank:['1er diagnostic','2eme diagnostic','3eme diagnostic'],\n    pdfPage:(p,t)=>`Page ${p} \/ ${t}`,\n    noAnswer:'Non renseigne',\n    colConserv:'Traitements conservateurs',\n    colChir:'Traitements chirurgicaux',\n  },\n  en:{\n    btnPrev:'Previous', btnNext:'Next',\n    btnDownload:'Download my diagnosis',\n    btnRdv:'Book an appointment', btnRestart:'\u21ba Start over',\n    btnChangeArea:'\u2190 Change joint',\n    selTitle:'Which joint is causing you pain?',\n    selGenouSub:'Front, side, or back of the knee',\n    selHancheSub:'Groin, buttock, outer hip',\n    resTitle:'Diagnostic results',\n    gestesLabel:'First steps to take',\n    traitementsLabel:'Recommendations & possible treatments',\n    disc:'\u2695 Clinical reference only. All diagnoses must be confirmed by a doctor or healthcare professional before any treatment.',\n    pdfConfidential:'Confidential document',\n    pdfFooter:'Indicative document \u2014 diagnosis to be confirmed by a doctor or healthcare professional.',\n    pdfS1:'PATIENT RESPONSES', pdfS2:'DIAGNOSTIC RESULTS', pdfS3:'FIRST STEPS TO TAKE', pdfS4:'RECOMMENDATIONS & TREATMENTS',\n    pdfRank:['1st diagnosis','2nd diagnosis','3rd diagnosis'],\n    pdfPage:(p,t)=>`Page ${p} \/ ${t}`,\n    noAnswer:'Not answered',\n    colConserv:'Conservative treatments',\n    colChir:'Surgical treatments',\n  }\n};\nconst L=T[LANG];\n\n\/* ================================================================\n   MODULE GENOU\n   ================================================================ *\/\nconst Q_GENOU_FR=[\n  {t:\"Y a-t-il eu un traumatisme r\u00e9cent (< 6 semaines) ?\",h:null,o:[\"Oui, traumatisme aigu direct (chute, choc)\",\"Oui, traumatisme indirect (torsion, r\u00e9ception saut)\",\"Micro-traumatismes r\u00e9p\u00e9t\u00e9s (sport, travail)\",\"Non, douleur spontan\u00e9e sans traumatisme\"]},\n  {t:\"Quel est l'\u00e2ge du patient ?\",h:null,o:[\"16\u201325 ans\",\"26\u201340 ans\",\"41\u201360 ans\",\"> 60 ans\"]},\n  {t:\"O\u00f9 se situe la douleur principalement ?\",h:null,o:[\"Face ant\u00e9rieure (devant la rotule \/ tendon rotulien)\",\"Face m\u00e9diale (int\u00e9rieur du genou)\",\"Face lat\u00e9rale (ext\u00e9rieur du genou)\",\"Face post\u00e9rieure (creux poplit\u00e9)\",\"Diffuse \/ tout le genou\"]},\n  {t:\"Comment la douleur s'est-elle install\u00e9e ?\",h:null,o:[\"Brutalement en quelques secondes (accident)\",\"Progressivement sur plusieurs jours\/semaines\",\"Insidieusement depuis plusieurs mois\/ann\u00e9es\",\"Par \u00e9pisodes r\u00e9cidivants\"]},\n  {t:\"Existe-t-il un gonflement du genou ?\",h:\"\u00c9panchement articulaire \/ h\u00e9marthrose\",o:[\"Oui, gonflement imm\u00e9diat < 2h apr\u00e8s traumatisme\",\"Oui, gonflement diff\u00e9r\u00e9 12\u201324h apr\u00e8s effort\",\"Gonflement chronique intermittent\",\"Non, pas de gonflement\"]},\n  {t:\"Ressentez-vous une instabilit\u00e9 \/ d\u00e9robement ?\",h:\"Sensation que le genou 'l\u00e2che'\",o:[\"Oui, genou qui part en avant\",\"Oui, instabilit\u00e9 lat\u00e9rale (c\u00f4t\u00e9)\",\"Oui, rotule qui 'saute' \/ se d\u00e9boite\",\"Non, aucune instabilit\u00e9\"]},\n  {t:\"Y a-t-il un blocage ou limitation d'extension ?\",h:null,o:[\"Oui, blocage complet impossible \u00e0 corriger\",\"Oui, extension incompl\u00e8te mais r\u00e9ductible\",\"Limitation par douleur uniquement\",\"Non, mobilit\u00e9 compl\u00e8te\"]},\n  {t:\"Des bruits articulaires sont-ils pr\u00e9sents ?\",h:null,o:[\"Craquement douloureux (clic m\u00e9niscal)\",\"Cr\u00e9pitement \u00e0 la mobilisation (grincement)\",\"Claquement au moment du traumatisme\",\"Aucun bruit particulier\"]},\n  {t:\"Dans quelle activit\u00e9 la douleur est-elle maximale ?\",h:null,o:[\"Descente des escaliers \/ accroupissement\",\"Course \u00e0 pied, surtout apr\u00e8s 20\u201330 min\",\"Sauts \/ impulsions r\u00e9p\u00e9t\u00e9es\",\"Marche simple \/ station debout prolong\u00e9e\",\"Au repos ou la nuit\"]},\n  {t:\"Quelle est la nature de la douleur ?\",h:null,o:[\"Douleur m\u00e9canique (s'am\u00e9liore au repos)\",\"Douleur inflammatoire (pire au repos \/ d\u00e9rouillage matinal)\",\"Douleur aigu\u00eb intense et constante\",\"Br\u00fblure \/ douleur profonde osseuse\"]},\n  {t:\"Y a-t-il des signes inflammatoires locaux ?\",h:\"Rougeur, chaleur, tum\u00e9faction\",o:[\"Oui, rougeur + chaleur + fi\u00e8vre (>38\u00b0C)\",\"Oui, chaleur locale sans fi\u00e8vre\",\"Tum\u00e9faction ant\u00e9rieure isol\u00e9e (devant la rotule)\",\"Non, aucun signe local\"]},\n  {t:\"Quel est le contexte sportif \/ professionnel ?\",h:null,o:[\"Sport pivot-contact (ski, foot, tennis, rugby)\",\"Course \u00e0 pied \/ v\u00e9lo \/ sports \u00e0 endurance (> 30 km\/sem)\",\"Travail \u00e0 genoux (carreleur, ma\u00e7on, jardinier)\",\"S\u00e9dentaire \/ pas de sport particulier\"]},\n  {t:\"\u00c0 quelle fr\u00e9quence pratiquez-vous une activit\u00e9 sportive ?\",h:null,o:[\"Plus de 3 fois par semaine\",\"1 \u00e0 3 fois par semaine\",\"Occasionnellement (quelques fois par mois)\",\"Jamais ou presque jamais\"]},\n  {t:\"La douleur est-elle bilat\u00e9rale ou asym\u00e9trique ?\",h:null,o:[\"Un seul genou, post-traumatique\",\"Un seul genou, spontan\u00e9\",\"Les deux genoux (bilat\u00e9ral)\",\"Plusieurs articulations atteintes\"]},\n  {t:\"Ant\u00e9c\u00e9dents m\u00e9dicaux pertinents ?\",h:null,o:[\"Corticoth\u00e9rapie prolong\u00e9e \/ immunod\u00e9pression\",\"Pathologie rhumatismale connue (PR, spondylarthrite)\",\"Chirurgie ou injection r\u00e9cente du genou\",\"Aucun ant\u00e9c\u00e9dent notable\"]},\n  {t:\"Tub\u00e9rosit\u00e9 tibiale ant\u00e9rieure \u00e0 la palpation ?\",h:\"Point osseux sous la rotule\",o:[\"Douloureuse chez un adolescent en croissance\",\"Douleur du tendon rotulien (corps du tendon)\",\"Douleur de la pointe de la rotule\",\"Pas de douleur \u00e0 la palpation de cette zone\"]}\n];\n\nconst Q_GENOU_EN=[\n  {t:\"Was there a recent trauma (< 6 weeks)?\",h:null,o:[\"Yes, direct acute trauma (fall, impact)\",\"Yes, indirect trauma (twisting, landing)\",\"Repeated micro-traumas (sport, work)\",\"No, spontaneous pain without trauma\"]},\n  {t:\"What is the patient's age?\",h:null,o:[\"16\u201325 years\",\"26\u201340 years\",\"41\u201360 years\",\"> 60 years\"]},\n  {t:\"Where is the pain mainly located?\",h:null,o:[\"Anterior (front of kneecap \/ patellar tendon)\",\"Medial (inside of the knee)\",\"Lateral (outside of the knee)\",\"Posterior (back of the knee)\",\"Diffuse \/ whole knee\"]},\n  {t:\"How did the pain develop?\",h:null,o:[\"Suddenly within seconds (accident)\",\"Gradually over several days\/weeks\",\"Insidiously over several months\/years\",\"In recurring episodes\"]},\n  {t:\"Is there knee swelling?\",h:\"Joint effusion \/ haemarthrosis\",o:[\"Yes, immediate swelling < 2h after trauma\",\"Yes, delayed swelling 12\u201324h after exercise\",\"Chronic intermittent swelling\",\"No swelling\"]},\n  {t:\"Do you feel instability \/ giving way?\",h:\"Feeling that the knee 'gives out'\",o:[\"Yes, knee gives way forward\",\"Yes, lateral instability (side)\",\"Yes, kneecap slipping \/ dislocating\",\"No instability\"]},\n  {t:\"Is there locking or limited extension?\",h:null,o:[\"Yes, complete locking impossible to correct\",\"Yes, incomplete extension but reducible\",\"Limited by pain only\",\"No, full mobility\"]},\n  {t:\"Are joint sounds present?\",h:null,o:[\"Painful clicking (meniscal click)\",\"Crepitus during movement (grinding)\",\"Snap at time of trauma\",\"No particular sounds\"]},\n  {t:\"During which activity is pain worst?\",h:null,o:[\"Going downstairs \/ squatting\",\"Running, especially after 20\u201330 min\",\"Jumping \/ repeated impacts\",\"Simple walking \/ prolonged standing\",\"At rest or at night\"]},\n  {t:\"What is the nature of the pain?\",h:null,o:[\"Mechanical pain (improves with rest)\",\"Inflammatory pain (worse at rest \/ morning stiffness)\",\"Intense constant acute pain\",\"Burning \/ deep bone pain\"]},\n  {t:\"Are there local inflammatory signs?\",h:\"Redness, warmth, swelling\",o:[\"Yes, redness + warmth + fever (>38\u00b0C)\",\"Yes, local warmth without fever\",\"Isolated anterior swelling (front of kneecap)\",\"No local signs\"]},\n  {t:\"What is the sporting \/ professional context?\",h:null,o:[\"Pivot-contact sport (skiing, football, tennis, rugby)\",\"Running \/ cycling \/ endurance sports (> 30 km\/week)\",\"Kneeling work (tiler, mason, gardener)\",\"Sedentary \/ no particular sport\"]},\n  {t:\"How often do you play sport?\",h:null,o:[\"More than 3 times a week\",\"1 to 3 times a week\",\"Occasionally (a few times a month)\",\"Never or almost never\"]},\n  {t:\"Is the pain bilateral or asymmetrical?\",h:null,o:[\"One knee only, post-traumatic\",\"One knee only, spontaneous\",\"Both knees (bilateral)\",\"Multiple joints affected\"]},\n  {t:\"Relevant medical history?\",h:null,o:[\"Prolonged corticosteroid therapy \/ immunosuppression\",\"Known rheumatic condition (RA, spondylarthritis)\",\"Recent knee surgery or injection\",\"No notable medical history\"]},\n  {t:\"Anterior tibial tuberosity on palpation?\",h:\"Bony prominence below kneecap\",o:[\"Painful in a growing adolescent\",\"Patellar tendon pain (tendon body)\",\"Pain at the tip of the kneecap\",\"No pain on palpation of this area\"]}\n];\n\nconst D_GENOU_FR={\n  \"Gonarthrose\":\"D\u00e9g\u00e9n\u00e9rescence progressive du cartilage articulaire. Traitement conservateur en 1\u00e8re ligne (physio, antalgiques, infiltrations), chirurgie (PTG) si stade avanc\u00e9.\",\n  \"Syndrome f\u00e9moro-patellaire\":\"D\u00e9saxation ou hyperpression rotulienne entra\u00eenant une douleur ant\u00e9rieure. Renforcement du vaste m\u00e9dial, travail proprioceptif.\",\n  \"Rupture m\u00e9niscale\":\"L\u00e9sion du m\u00e9nisque m\u00e9dial ou lat\u00e9ral. IRM indispensable. Traitement conservateur ou arthroscopique selon le type.\",\n  \"Entorse LCM\":\"L\u00e9sion du ligament collat\u00e9ral m\u00e9dial par valgus forc\u00e9. Traitement fonctionnel, orth\u00e8se, r\u00e9cup\u00e9ration 4\u20138 semaines.\",\n  \"Syndrome bandelette ilio-tibiale\":\"Friction de la bandelette sur le condyle lat\u00e9ral. Pathologie du coureur. Repos, \u00e9tirements, correction biom\u00e9canique.\",\n  \"Tendinopathie rotulienne\":\"Genou du sauteur. D\u00e9g\u00e9n\u00e9rescence du tendon patellaire. Traitement : excentrique, ondes de choc, PRP.\",\n  \"Rupture LCA\":\"Rupture du ligament crois\u00e9 ant\u00e9rieur, souvent sport pivot-contact. IRM confirmatoire. Chirurgie si patient actif.\",\n  \"Kyste de Baker\":\"Distension du r\u00e9cessus post\u00e9rieur, secondaire \u00e0 une pathologie intra-articulaire. Traiter la cause avant le kyste.\",\n  \"Bursite pr\u00e9rotulienne\":\"Inflammation de la bourse s\u00e9reuse pr\u00e9rotulienne. Contexte de travail \u00e0 genoux. Repos, AINS, aspiration si n\u00e9cessaire.\",\n  \"Luxation de rotule\":\"D\u00e9bo\u00eetement f\u00e9moropatellaire, souvent chez l'adolescente hyperlaxe. Radio post-r\u00e9duction indispensable.\",\n  \"Osgood-Schlatter\":\"Apophysite de la tub\u00e9rosit\u00e9 tibiale ant\u00e9rieure chez l'adolescent sportif. Repos relatif, auto-r\u00e9solution \u00e0 la fin de la croissance.\",\n  \"Fracture plateau tibial\":\"Fracture articulaire par compression axiale. Scanner indispensable. Chirurgie si d\u00e9placement > 2 mm.\",\n  \"Arthrite inflammatoire\":\"PR, spondylarthrite, arthrite r\u00e9actionnelle. Bilan biologique et rhumatologique n\u00e9cessaire. Traitement de fond sp\u00e9cifique.\",\n  \"Arthrite septique\":\"URGENCE. Ponction articulaire diagnostique et th\u00e9rapeutique imm\u00e9diate. Antibioth\u00e9rapie IV.\",\n  \"SONK \/ Ost\u00e9on\u00e9crose\":\"Infarctus osseux du condyle f\u00e9moral m\u00e9dial. IRM pr\u00e9coce. Terrain : sujet \u00e2g\u00e9, corticoth\u00e9rapie.\"\n};\n\nconst D_GENOU_EN={\n  \"Gonarthrose\":\"Progressive degeneration of joint cartilage. Conservative first-line treatment (physio, analgesics, injections), surgery (TKR) if advanced.\",\n  \"Syndrome f\u00e9moro-patellaire\":\"Patellar misalignment causing anterior pain. Strengthen vastus medialis, proprioceptive training.\",\n  \"Rupture m\u00e9niscale\":\"Medial or lateral meniscus tear. MRI essential. Conservative or arthroscopic treatment depending on type.\",\n  \"Entorse LCM\":\"Medial collateral ligament injury from forced valgus. Functional treatment, brace, recovery 4\u20138 weeks.\",\n  \"Syndrome bandelette ilio-tibiale\":\"IT band friction on lateral condyle. Runner's knee. Rest, stretching, biomechanical correction.\",\n  \"Tendinopathie rotulienne\":\"Jumper's knee. Patellar tendon degeneration. Treatment: eccentric exercises, shockwave, PRP.\",\n  \"Rupture LCA\":\"Anterior cruciate ligament rupture, often pivot-contact sport. Confirmatory MRI. Surgery for active patients.\",\n  \"Kyste de Baker\":\"Posterior recess distension, secondary to intra-articular pathology. Treat the cause before the cyst.\",\n  \"Bursite pr\u00e9rotulienne\":\"Pre-patellar bursa inflammation. Kneeling work context. Rest, NSAIDs, aspiration if needed.\",\n  \"Luxation de rotule\":\"Patellar dislocation, often in hyperlax adolescent girls. Post-reduction X-ray essential.\",\n  \"Osgood-Schlatter\":\"Anterior tibial tuberosity apophysitis in athletic adolescents. Relative rest, self-resolves at end of growth.\",\n  \"Fracture plateau tibial\":\"Articular fracture by axial compression. CT scan essential. Surgery if displacement > 2 mm.\",\n  \"Arthrite inflammatoire\":\"RA, spondylarthritis, reactive arthritis. Blood tests and rheumatology referral needed. Specific treatment.\",\n  \"Arthrite septique\":\"EMERGENCY. Immediate diagnostic and therapeutic joint aspiration. IV antibiotics.\",\n  \"SONK \/ Ost\u00e9on\u00e9crose\":\"Femoral condyle bone infarct. Early MRI. Profile: elderly, corticosteroids. Treatment: offloading, surgery.\"\n};\n\nconst TRAITEMENTS_GENOU_FR={\n  \"Gonarthrose\":{conserv:[\"Physioth\u00e9rapie de renforcement musculaire\",\"Antalgiques et anti-inflammatoires\",\"Infiltrations de cortisone ou d'acide hyaluronique\",\"Perte de poids, activit\u00e9 adapt\u00e9e (natation, v\u00e9lo)\",\"Semelles orthop\u00e9diques\"],chir:[\"Ost\u00e9otomie tibiale de valgisation (sujets jeunes)\",\"Proth\u00e8se totale de genou (PTG)\",\"Proth\u00e8se unicompartimentale\"]},\n  \"Syndrome f\u00e9moro-patellaire\":{conserv:[\"Physioth\u00e9rapie : renforcement vaste m\u00e9dial\",\"\u00c9tirements du quadriceps et ischio-jambiers\",\"Semelles orthop\u00e9diques, genouill\u00e8re rotulienne\",\"\u00c9viter la flexion profonde et la descente des escaliers\"],chir:[\"Rarement n\u00e9cessaire\",\"R\u00e9alignement rotulien si d\u00e9saxation s\u00e9v\u00e8re\"]},\n  \"Rupture m\u00e9niscale\":{conserv:[\"Repos, glace, antalgiques en phase aigu\u00eb\",\"Physioth\u00e9rapie de stabilisation\",\"IRM pour confirmer le diagnostic\"],chir:[\"M\u00e9niscectomie arthroscopique partielle\",\"Suture m\u00e9niscale (si l\u00e9sion p\u00e9riph\u00e9rique r\u00e9cente)\"]},\n  \"Entorse LCM\":{conserv:[\"Repos relatif, gla\u00e7age 15 min \/ 3x par jour\",\"Orth\u00e8se de d\u00e9charge, b\u00e9quilles si n\u00e9cessaire\",\"Physioth\u00e9rapie proprioceptive\",\"AINS sur courte dur\u00e9e\"],chir:[\"Rarement indiqu\u00e9e\",\"Reconstruction ligamentaire si laxit\u00e9 chronique s\u00e9v\u00e8re\"]},\n  \"Syndrome bandelette ilio-tibiale\":{conserv:[\"Arr\u00eat temporaire de la course \u00e0 pied\",\"\u00c9tirements sp\u00e9cifiques de la bandelette\",\"Physioth\u00e9rapie, ondes de choc\",\"Correction des erreurs d'entra\u00eenement\"],chir:[\"Exceptionnellement : lib\u00e9ration chirurgicale de la bandelette\"]},\n  \"Tendinopathie rotulienne\":{conserv:[\"Exercices excentriques du quadriceps\",\"Ondes de choc extracorporelles\",\"Injection de PRP (plasma riche en plaquettes)\",\"Physioth\u00e9rapie, r\u00e9duction de charge\"],chir:[\"T\u00e9notomie percutan\u00e9e\",\"R\u00e9section chirurgicale de la zone d\u00e9g\u00e9n\u00e9r\u00e9e\"]},\n  \"Rupture LCA\":{conserv:[\"R\u00e9\u00e9ducation musculaire intensive (si patient peu actif)\",\"Orth\u00e8se stabilisatrice de genou\",\"\u00c9viter les sports pivot-contact\"],chir:[\"Ligamentoplastie LCA (DIDT, KJ, allogreffe)\",\"Recommand\u00e9e chez le patient actif et sportif\"]},\n  \"Kyste de Baker\":{conserv:[\"Traiter la cause intra-articulaire sous-jacente\",\"Glace, repos, antalgiques\",\"Ponction aspiration si volumineuse\"],chir:[\"Ex\u00e9r\u00e8se chirurgicale si r\u00e9cidive ou compression vasculaire\",\"Traitement arthroscopique de la cause\"]},\n  \"Bursite pr\u00e9rotulienne\":{conserv:[\"Repos, \u00e9viter l'appui sur le genou\",\"Glace, AINS\",\"Aspiration de la bourse si volumineuse\",\"Protection par genouill\u00e8re rembourr\u00e9e\"],chir:[\"Bursectomie chirurgicale en cas de r\u00e9cidive ou d'infection\"]},\n  \"Luxation de rotule\":{conserv:[\"R\u00e9duction en urgence, immobilisation\",\"Physioth\u00e9rapie de stabilisation rotulienne\",\"Orth\u00e8se rotulienne de maintien\"],chir:[\"Reconstruction du MPFL (ligament patello-f\u00e9moral m\u00e9dial)\",\"Tibial tubercle transfer (Trillat-Elmslie) si d\u00e9saxation osseuse\"]},\n  \"Osgood-Schlatter\":{conserv:[\"Repos sportif relatif\",\"Glace apr\u00e8s l'effort\",\"\u00c9tirements du quadriceps\",\"Auto-r\u00e9solution \u00e0 la fin de la croissance\"],chir:[\"Exceptionnellement : ablation du fragment osseux r\u00e9siduel chez l'adulte\"]},\n  \"Fracture plateau tibial\":{conserv:[\"Immobilisation pl\u00e2tr\u00e9e si non d\u00e9plac\u00e9e\",\"D\u00e9charge aux b\u00e9quilles 6\u20138 semaines\",\"Physioth\u00e9rapie progressive\"],chir:[\"Ost\u00e9osynth\u00e8se par vis et plaque si d\u00e9placement > 2 mm\",\"Greffe osseuse si enfoncement important\"]},\n  \"Arthrite inflammatoire\":{conserv:[\"Traitement de fond (m\u00e9thotrexate, bioth\u00e9rapie)\",\"Infiltrations cortison\u00e9es\",\"Physioth\u00e9rapie douce\",\"Suivi rhumatologique r\u00e9gulier\"],chir:[\"Synovectomie arthroscopique\",\"Proth\u00e8se articulaire si destruction avanc\u00e9e\"]},\n  \"Arthrite septique\":{conserv:[\"URGENCE : hospitalisation imm\u00e9diate\",\"Antibioth\u00e9rapie IV adapt\u00e9e\",\"Ponction articulaire r\u00e9p\u00e9t\u00e9e\"],chir:[\"Lavage arthroscopique articulaire\",\"Arthrotomie de drainage si n\u00e9cessaire\"]},\n  \"SONK \/ Ost\u00e9on\u00e9crose\":{conserv:[\"D\u00e9charge totale aux b\u00e9quilles\",\"Antalgiques, anti-inflammatoires\",\"IRM de contr\u00f4le r\u00e9guli\u00e8re\"],chir:[\"Ost\u00e9otomie de d\u00e9charge\",\"Proth\u00e8se unicompartimentale ou totale selon l'\u00e9tendue\"]}\n};\n\nconst TRAITEMENTS_GENOU_EN={\n  \"Gonarthrose\":{conserv:[\"Physiotherapy: muscle strengthening\",\"Analgesics and anti-inflammatory drugs\",\"Cortisone or hyaluronic acid injections\",\"Weight loss, adapted activity (swimming, cycling)\",\"Orthopaedic insoles\"],chir:[\"High tibial osteotomy (younger patients)\",\"Total knee replacement (TKR)\",\"Unicompartmental knee replacement\"]},\n  \"Syndrome f\u00e9moro-patellaire\":{conserv:[\"Physiotherapy: vastus medialis strengthening\",\"Quadriceps and hamstring stretching\",\"Orthopaedic insoles, patellar brace\",\"Avoid deep flexion and going downstairs\"],chir:[\"Rarely necessary\",\"Patellar realignment if severe misalignment\"]},\n  \"Rupture m\u00e9niscale\":{conserv:[\"Rest, ice, analgesics in acute phase\",\"Stabilisation physiotherapy\",\"MRI to confirm diagnosis\"],chir:[\"Partial arthroscopic meniscectomy\",\"Meniscal repair (if recent peripheral tear)\"]},\n  \"Entorse LCM\":{conserv:[\"Relative rest, icing 15 min \/ 3x daily\",\"Unloading brace, crutches if needed\",\"Proprioceptive physiotherapy\",\"NSAIDs short-term\"],chir:[\"Rarely indicated\",\"Ligament reconstruction if severe chronic laxity\"]},\n  \"Syndrome bandelette ilio-tibiale\":{conserv:[\"Temporary running cessation\",\"IT band specific stretching\",\"Physiotherapy, shockwave therapy\",\"Correction of training errors\"],chir:[\"Exceptionally: surgical IT band release\"]},\n  \"Tendinopathie rotulienne\":{conserv:[\"Eccentric quadriceps exercises\",\"Extracorporeal shockwave therapy\",\"PRP injection (platelet-rich plasma)\",\"Physiotherapy, load reduction\"],chir:[\"Percutaneous tenotomy\",\"Surgical resection of degenerated area\"]},\n  \"Rupture LCA\":{conserv:[\"Intensive muscle rehabilitation (sedentary patients)\",\"Stabilising knee brace\",\"Avoid pivot-contact sports\"],chir:[\"ACL reconstruction (hamstring, patellar tendon, allograft)\",\"Recommended for active and athletic patients\"]},\n  \"Kyste de Baker\":{conserv:[\"Treat underlying intra-articular cause\",\"Ice, rest, analgesics\",\"Aspiration if large\"],chir:[\"Surgical excision if recurrence or vascular compression\",\"Arthroscopic treatment of the cause\"]},\n  \"Bursite pr\u00e9rotulienne\":{conserv:[\"Rest, avoid kneeling\",\"Ice, NSAIDs\",\"Bursa aspiration if large\",\"Padded knee protection\"],chir:[\"Surgical bursectomy in case of recurrence or infection\"]},\n  \"Luxation de rotule\":{conserv:[\"Emergency reduction, immobilisation\",\"Patellar stabilisation physiotherapy\",\"Patellar support brace\"],chir:[\"MPFL reconstruction (medial patellofemoral ligament)\",\"Tibial tubercle transfer if bony misalignment\"]},\n  \"Osgood-Schlatter\":{conserv:[\"Relative sporting rest\",\"Ice after exercise\",\"Quadriceps stretching\",\"Self-resolves at end of growth\"],chir:[\"Exceptionally: removal of residual bony fragment in adults\"]},\n  \"Fracture plateau tibial\":{conserv:[\"Plaster cast if undisplaced\",\"Non-weight bearing with crutches 6\u20138 weeks\",\"Progressive physiotherapy\"],chir:[\"Screw and plate fixation if displacement > 2 mm\",\"Bone graft if significant depression\"]},\n  \"Arthrite inflammatoire\":{conserv:[\"Disease-modifying drugs (methotrexate, biologics)\",\"Corticosteroid injections\",\"Gentle physiotherapy\",\"Regular rheumatology follow-up\"],chir:[\"Arthroscopic synovectomy\",\"Joint replacement if advanced destruction\"]},\n  \"Arthrite septique\":{conserv:[\"EMERGENCY: immediate hospitalisation\",\"Adapted IV antibiotics\",\"Repeated joint aspiration\"],chir:[\"Arthroscopic joint washout\",\"Arthrotomy drainage if necessary\"]},\n  \"SONK \/ Ost\u00e9on\u00e9crose\":{conserv:[\"Full non-weight bearing on crutches\",\"Analgesics, anti-inflammatory drugs\",\"Regular MRI monitoring\"],chir:[\"Unloading osteotomy\",\"Unicompartmental or total knee replacement depending on extent\"]}\n};\n\nconst NAMES_GENOU_FR={\n  \"Gonarthrose\":\"Gonarthrose\",\"Syndrome f\u00e9moro-patellaire\":\"Syndrome f\u00e9moro-patellaire\",\n  \"Rupture m\u00e9niscale\":\"Rupture m\u00e9niscale\",\"Entorse LCM\":\"Entorse LCM\",\n  \"Syndrome bandelette ilio-tibiale\":\"Syndrome bandelette ilio-tibiale\",\n  \"Tendinopathie rotulienne\":\"Tendinopathie rotulienne\",\"Rupture LCA\":\"Rupture LCA\",\n  \"Kyste de Baker\":\"Kyste de Baker\",\"Bursite pr\u00e9rotulienne\":\"Bursite pr\u00e9rotulienne\",\n  \"Luxation de rotule\":\"Luxation de rotule\",\"Osgood-Schlatter\":\"Osgood-Schlatter\",\n  \"Fracture plateau tibial\":\"Fracture plateau tibial\",\"Arthrite inflammatoire\":\"Arthrite inflammatoire\",\n  \"Arthrite septique\":\"Arthrite septique\",\"SONK \/ Ost\u00e9on\u00e9crose\":\"SONK \/ Ost\u00e9on\u00e9crose\"\n};\nconst NAMES_GENOU_EN={\n  \"Gonarthrose\":\"Gonarthrosis\",\"Syndrome f\u00e9moro-patellaire\":\"Patellofemoral Syndrome\",\n  \"Rupture m\u00e9niscale\":\"Meniscal Tear\",\"Entorse LCM\":\"MCL Sprain\",\n  \"Syndrome bandelette ilio-tibiale\":\"IT Band Syndrome\",\n  \"Tendinopathie rotulienne\":\"Patellar Tendinopathy\",\"Rupture LCA\":\"ACL Rupture\",\n  \"Kyste de Baker\":\"Baker's Cyst\",\"Bursite pr\u00e9rotulienne\":\"Pre-patellar Bursitis\",\n  \"Luxation de rotule\":\"Patellar Dislocation\",\"Osgood-Schlatter\":\"Osgood-Schlatter Disease\",\n  \"Fracture plateau tibial\":\"Tibial Plateau Fracture\",\"Arthrite inflammatoire\":\"Inflammatory Arthritis\",\n  \"Arthrite septique\":\"Septic Arthritis\",\"SONK \/ Ost\u00e9on\u00e9crose\":\"SONK \/ Osteonecrosis\"\n};\n\nconst GESTES_GENOU_FR=[\"Mettre le genou au repos et r\u00e9duire les activit\u00e9s douloureuses\",\"Appliquer de la glace 15 min, 2 \u00e0 3 fois par jour sur la zone douloureuse\",\"\u00c9viter les mouvements en torsion, les sauts et les flexions profondes\",\"Sur\u00e9lever le membre inf\u00e9rieur si un gonflement est pr\u00e9sent\",\"Prendre un antalgique de palier 1 (parac\u00e9tamol) si la douleur est g\u00eanante\",\"Consulter rapidement un m\u00e9decin du sport ou un physioth\u00e9rapeute\"];\nconst GESTES_GENOU_EN=[\"Rest the knee and reduce painful activities\",\"Apply ice for 15 min, 2 to 3 times a day on the painful area\",\"Avoid twisting movements, jumping and deep bending\",\"Elevate the lower limb if swelling is present\",\"Take a first-line painkiller (paracetamol) if pain is bothersome\",\"Consult a sports doctor or physiotherapist promptly\"];\n\nconst S_GENOU={\n  0:{0:{\"Fracture plateau tibial\":3,\"Rupture LCA\":2,\"Entorse LCM\":2,\"Luxation de rotule\":1},1:{\"Rupture LCA\":4,\"Rupture m\u00e9niscale\":3,\"Entorse LCM\":3,\"Luxation de rotule\":2},2:{\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Bursite pr\u00e9rotulienne\":2},3:{\"Gonarthrose\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Kyste de Baker\":2,\"Arthrite inflammatoire\":2,\"Arthrite septique\":1,\"SONK \/ Ost\u00e9on\u00e9crose\":1}},\n  1:{0:{\"Rupture LCA\":3,\"Rupture m\u00e9niscale\":2,\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2},1:{\"Rupture LCA\":3,\"Rupture m\u00e9niscale\":2,\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2},2:{\"Gonarthrose\":2,\"Rupture m\u00e9niscale\":2,\"Entorse LCM\":2,\"Arthrite inflammatoire\":2},3:{\"Gonarthrose\":5,\"SONK \/ Ost\u00e9on\u00e9crose\":4,\"Fracture plateau tibial\":2,\"Kyste de Baker\":2}},\n  2:{0:{\"Syndrome f\u00e9moro-patellaire\":4,\"Tendinopathie rotulienne\":4,\"Osgood-Schlatter\":3,\"Bursite pr\u00e9rotulienne\":3,\"Luxation de rotule\":2},1:{\"Entorse LCM\":4,\"Rupture m\u00e9niscale\":3,\"Gonarthrose\":2},2:{\"Syndrome bandelette ilio-tibiale\":5,\"Entorse LCM\":1,\"Rupture LCA\":1},3:{\"Kyste de Baker\":5},4:{\"Gonarthrose\":3,\"Arthrite septique\":3,\"Arthrite inflammatoire\":3,\"Fracture plateau tibial\":2}},\n  3:{0:{\"Rupture LCA\":4,\"Fracture plateau tibial\":4,\"Entorse LCM\":3,\"Luxation de rotule\":3},1:{\"Rupture m\u00e9niscale\":3,\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Arthrite septique\":2},2:{\"Gonarthrose\":5,\"SONK \/ Ost\u00e9on\u00e9crose\":3,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Rupture m\u00e9niscale\":3,\"Kyste de Baker\":2,\"Arthrite inflammatoire\":2}},\n  4:{0:{\"Rupture LCA\":5,\"Fracture plateau tibial\":4,\"Arthrite septique\":2},1:{\"Rupture m\u00e9niscale\":4,\"Gonarthrose\":2,\"Arthrite inflammatoire\":2},2:{\"Gonarthrose\":3,\"Arthrite inflammatoire\":3,\"Kyste de Baker\":3},3:{\"Syndrome f\u00e9moro-patellaire\":2,\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Osgood-Schlatter\":2}},\n  5:{0:{\"Rupture LCA\":5},1:{\"Entorse LCM\":4,\"Fracture plateau tibial\":2},2:{\"Luxation de rotule\":6,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Gonarthrose\":2,\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Osgood-Schlatter\":2}},\n  6:{0:{\"Rupture m\u00e9niscale\":5},1:{\"Rupture m\u00e9niscale\":3,\"Gonarthrose\":2},2:{\"Gonarthrose\":2,\"Syndrome f\u00e9moro-patellaire\":2,\"Arthrite septique\":2},3:{\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Entorse LCM\":2}},\n  7:{0:{\"Rupture m\u00e9niscale\":5},1:{\"Gonarthrose\":4,\"Syndrome f\u00e9moro-patellaire\":3},2:{\"Rupture LCA\":4,\"Luxation de rotule\":3,\"Fracture plateau tibial\":2},3:{\"Entorse LCM\":2,\"Tendinopathie rotulienne\":2,\"Bursite pr\u00e9rotulienne\":2}},\n  8:{0:{\"Syndrome f\u00e9moro-patellaire\":5,\"Gonarthrose\":3,\"Bursite pr\u00e9rotulienne\":2},1:{\"Syndrome bandelette ilio-tibiale\":6,\"Tendinopathie rotulienne\":2},2:{\"Tendinopathie rotulienne\":5,\"Osgood-Schlatter\":3},3:{\"Gonarthrose\":4,\"Arthrite inflammatoire\":2},4:{\"SONK \/ Ost\u00e9on\u00e9crose\":4,\"Arthrite septique\":4,\"Arthrite inflammatoire\":3}},\n  9:{0:{\"Gonarthrose\":4,\"Rupture m\u00e9niscale\":3,\"Syndrome bandelette ilio-tibiale\":3},1:{\"Arthrite inflammatoire\":5,\"Arthrite septique\":3},2:{\"Fracture plateau tibial\":4,\"Arthrite septique\":4,\"Rupture LCA\":3},3:{\"SONK \/ Ost\u00e9on\u00e9crose\":5,\"Fracture plateau tibial\":3}},\n  10:{0:{\"Arthrite septique\":7,\"Arthrite inflammatoire\":3},1:{\"Arthrite inflammatoire\":4,\"Gonarthrose\":2,\"Kyste de Baker\":2},2:{\"Bursite pr\u00e9rotulienne\":6,\"Osgood-Schlatter\":2},3:{\"Rupture m\u00e9niscale\":2,\"Syndrome f\u00e9moro-patellaire\":2,\"Entorse LCM\":2,\"Syndrome bandelette ilio-tibiale\":2}},\n  11:{0:{\"Rupture LCA\":5,\"Rupture m\u00e9niscale\":3,\"Entorse LCM\":3},1:{\"Syndrome bandelette ilio-tibiale\":6,\"Tendinopathie rotulienne\":3},2:{\"Bursite pr\u00e9rotulienne\":6},3:{\"Gonarthrose\":3,\"SONK \/ Ost\u00e9on\u00e9crose\":2}},\n  12:{0:{\"Tendinopathie rotulienne\":3,\"Syndrome bandelette ilio-tibiale\":3,\"Syndrome f\u00e9moro-patellaire\":2,\"Rupture LCA\":1,\"Rupture m\u00e9niscale\":1},1:{\"Syndrome f\u00e9moro-patellaire\":2,\"Tendinopathie rotulienne\":2,\"Syndrome bandelette ilio-tibiale\":2,\"Rupture m\u00e9niscale\":1,\"Rupture LCA\":1},2:{\"Rupture m\u00e9niscale\":1,\"Entorse LCM\":1,\"Gonarthrose\":1},3:{\"Gonarthrose\":3,\"Kyste de Baker\":2,\"Arthrite inflammatoire\":1,\"SONK \/ Ost\u00e9on\u00e9crose\":1}},\n  13:{0:{\"Rupture LCA\":3,\"Entorse LCM\":3,\"Fracture plateau tibial\":3},1:{\"Gonarthrose\":3,\"Kyste de Baker\":2,\"SONK \/ Ost\u00e9on\u00e9crose\":2},2:{\"Gonarthrose\":3,\"Syndrome f\u00e9moro-patellaire\":2},3:{\"Arthrite inflammatoire\":5}},\n  14:{0:{\"SONK \/ Ost\u00e9on\u00e9crose\":5,\"Arthrite septique\":3,\"Fracture plateau tibial\":2},1:{\"Arthrite inflammatoire\":6},2:{\"Arthrite septique\":5,\"Kyste de Baker\":2},3:{\"Gonarthrose\":2,\"Rupture LCA\":2,\"Syndrome f\u00e9moro-patellaire\":2}},\n  15:{0:{\"Osgood-Schlatter\":8},1:{\"Tendinopathie rotulienne\":6},2:{\"Syndrome f\u00e9moro-patellaire\":4,\"Luxation de rotule\":2},3:{\"Gonarthrose\":2,\"Rupture LCA\":2,\"Entorse LCM\":2}}\n};\n\n\/* ================================================================\n   MODULE HANCHE\n   ================================================================ *\/\nconst Q_HANCHE_FR=[\n  {t:\"Y a-t-il eu un traumatisme r\u00e9cent (< 6 semaines) ?\",h:null,o:[\"Oui, traumatisme aigu direct (chute, choc)\",\"Oui, traumatisme indirect (torsion, faux mouvement)\",\"Micro-traumatismes r\u00e9p\u00e9t\u00e9s (sport, course)\",\"Non, douleur spontan\u00e9e sans traumatisme\"]},\n  {t:\"Quel est l'\u00e2ge du patient ?\",h:null,o:[\"16\u201325 ans\",\"26\u201340 ans\",\"41\u201365 ans\",\"> 65 ans\"]},\n  {t:\"O\u00f9 se situe la douleur principalement ?\",h:null,o:[\"Aine \/ face ant\u00e9rieure (pli de l'aine)\",\"Face lat\u00e9rale (grand trochanter)\",\"Face post\u00e9rieure (fessier)\",\"Face interne (adducteurs \/ pubis)\",\"Diffuse, irradiant vers la cuisse ou le genou\"]},\n  {t:\"Comment la douleur s'est-elle install\u00e9e ?\",h:null,o:[\"Brutalement (accident, chute)\",\"Progressivement sur plusieurs jours\/semaines\",\"Insidieusement depuis plusieurs mois\/ann\u00e9es\",\"Par \u00e9pisodes r\u00e9cidivants\"]},\n  {t:\"Douleur ou sensibilit\u00e9 au niveau du grand trochanter ?\",h:\"Bosse osseuse sur le c\u00f4t\u00e9 de la hanche\",o:[\"Oui, douleur vive \u00e0 la pression ou couch\u00e9 sur le c\u00f4t\u00e9\",\"Oui, sensation de ressaut\/claquement lat\u00e9ral\",\"Douleur diffuse sans point pr\u00e9cis\",\"Non, aucune sensibilit\u00e9\"]},\n  {t:\"Ressentez-vous un ressaut ou un claquement de la hanche ?\",h:null,o:[\"Oui, ressaut externe, lat\u00e9ral et audible\",\"Oui, ressaut interne, dans l'aine \u00e0 l'extension\",\"Craquement sans ressaut franc\",\"Non\"]},\n  {t:\"Y a-t-il un blocage ou une limitation de mouvement (rotation, flexion) ?\",h:null,o:[\"Oui, blocage complet, incapacit\u00e9 totale \u00e0 charger\",\"Oui, limitation surtout en rotation interne\",\"Limitation par la douleur uniquement\",\"Non, mobilit\u00e9 compl\u00e8te\"]},\n  {t:\"Boitez-vous ou avez-vous une difficult\u00e9 \u00e0 la marche ?\",h:null,o:[\"Oui, impossible de prendre appui\",\"Oui, boiterie franche mais appui possible\",\"L\u00e9g\u00e8re g\u00eane \u00e0 la marche prolong\u00e9e\",\"Non\"]},\n  {t:\"Dans quelle activit\u00e9 la douleur est-elle maximale ?\",h:null,o:[\"Position assise prolong\u00e9e \/ en voiture\",\"Mont\u00e9e des escaliers \/ course \u00e0 pied\",\"Couch\u00e9 sur le c\u00f4t\u00e9, la nuit\",\"Sprint \/ changement de direction \/ coup de pied\",\"Au repos ou constante\"]},\n  {t:\"Quelle est la nature de la douleur ?\",h:null,o:[\"Douleur m\u00e9canique (s'am\u00e9liore au repos)\",\"Douleur inflammatoire (pire au repos \/ d\u00e9rouillage matinal > 30 min)\",\"Douleur aigu\u00eb intense et constante\",\"Br\u00fblure \/ douleur profonde osseuse\"]},\n  {t:\"Y a-t-il des signes inflammatoires ou g\u00e9n\u00e9raux (fi\u00e8vre) ?\",h:null,o:[\"Oui, fi\u00e8vre, douleur intense et refus d'appui (enfant)\",\"Oui, fi\u00e8vre > 38\u00b0C chez l'adulte\",\"Non, aucun signe g\u00e9n\u00e9ral\"]},\n  {t:\"Quel est le contexte sportif ou professionnel ?\",h:null,o:[\"Sport de sprint \/ pivot \/ frappe (football, athl\u00e9tisme)\",\"Course \u00e0 pied d'endurance (> 30 km\/semaine)\",\"Sport en flexion r\u00e9p\u00e9t\u00e9e de hanche (danse, gymnastique, v\u00e9lo)\",\"S\u00e9dentaire \/ pas de sport particulier\"]},\n  {t:\"\u00c0 quelle fr\u00e9quence pratiquez-vous une activit\u00e9 sportive ?\",h:null,o:[\"Plus de 3 fois par semaine\",\"1 \u00e0 3 fois par semaine\",\"Occasionnellement (quelques fois par mois)\",\"Jamais ou presque jamais\"]},\n  {t:\"La douleur est-elle bilat\u00e9rale ou asym\u00e9trique ?\",h:null,o:[\"Une seule hanche, post-traumatique\",\"Une seule hanche, spontan\u00e9e\",\"Les deux hanches (bilat\u00e9ral)\",\"Plusieurs articulations atteintes\"]},\n  {t:\"Ant\u00e9c\u00e9dents m\u00e9dicaux pertinents ?\",h:null,o:[\"Corticoth\u00e9rapie prolong\u00e9e \/ alcool \/ immunod\u00e9pression\",\"Pathologie rhumatismale connue (PR, spondylarthrite)\",\"Chirurgie ou infiltration r\u00e9cente de la hanche\",\"Dysplasie de hanche connue depuis l'enfance\",\"Aucun ant\u00e9c\u00e9dent notable\"]},\n  {t:\"Chez l'enfant ou l'adolescent : douleur au genou sans cause retrouv\u00e9e au genou ?\",h:\"Douleur projet\u00e9e depuis la hanche\",o:[\"Oui, chez un enfant 4\u201310 ans avec boiterie\",\"Oui, chez un adolescent en surpoids ou en croissance rapide\",\"Non, non applicable (patient adulte)\"]}\n];\n\nconst Q_HANCHE_EN=[\n  {t:\"Was there a recent trauma (< 6 weeks)?\",h:null,o:[\"Yes, direct acute trauma (fall, impact)\",\"Yes, indirect trauma (twisting, awkward movement)\",\"Repeated micro-traumas (sport, running)\",\"No, spontaneous pain without trauma\"]},\n  {t:\"What is the patient's age?\",h:null,o:[\"16\u201325 years\",\"26\u201340 years\",\"41\u201365 years\",\"> 65 years\"]},\n  {t:\"Where is the pain mainly located?\",h:null,o:[\"Groin \/ anterior (front crease of the hip)\",\"Lateral (greater trochanter)\",\"Posterior (buttock)\",\"Medial (adductors \/ pubis)\",\"Diffuse, radiating to thigh or knee\"]},\n  {t:\"How did the pain develop?\",h:null,o:[\"Suddenly (accident, fall)\",\"Gradually over several days\/weeks\",\"Insidiously over several months\/years\",\"In recurring episodes\"]},\n  {t:\"Pain or tenderness at the greater trochanter?\",h:\"Bony bump on the side of the hip\",o:[\"Yes, sharp pain on pressure or lying on that side\",\"Yes, snapping\/clicking sensation laterally\",\"Diffuse pain without a precise point\",\"No tenderness\"]},\n  {t:\"Do you feel a snap or click in the hip?\",h:null,o:[\"Yes, external snap, lateral and audible\",\"Yes, internal snap, in the groin on extension\",\"Clicking without a true snap\",\"No\"]},\n  {t:\"Is there locking or limited movement (rotation, flexion)?\",h:null,o:[\"Yes, complete locking, total inability to bear weight\",\"Yes, mainly limited internal rotation\",\"Limited by pain only\",\"No, full mobility\"]},\n  {t:\"Do you limp or have difficulty walking?\",h:null,o:[\"Yes, unable to bear weight\",\"Yes, clear limp but weight-bearing possible\",\"Slight discomfort on prolonged walking\",\"No\"]},\n  {t:\"During which activity is pain worst?\",h:null,o:[\"Prolonged sitting \/ in the car\",\"Climbing stairs \/ running\",\"Lying on the side at night\",\"Sprinting \/ change of direction \/ kicking\",\"At rest or constant\"]},\n  {t:\"What is the nature of the pain?\",h:null,o:[\"Mechanical pain (improves with rest)\",\"Inflammatory pain (worse at rest \/ morning stiffness > 30 min)\",\"Intense constant acute pain\",\"Burning \/ deep bone pain\"]},\n  {t:\"Are there inflammatory or general signs (fever)?\",h:null,o:[\"Yes, fever, intense pain and refusal to bear weight (child)\",\"Yes, fever > 38\u00b0C in an adult\",\"No general signs\"]},\n  {t:\"What is the sporting \/ professional context?\",h:null,o:[\"Sprint \/ pivot \/ kicking sport (football, athletics)\",\"Endurance running (> 30 km\/week)\",\"Sport with repeated hip flexion (dance, gymnastics, cycling)\",\"Sedentary \/ no particular sport\"]},\n  {t:\"How often do you play sport?\",h:null,o:[\"More than 3 times a week\",\"1 to 3 times a week\",\"Occasionally (a few times a month)\",\"Never or almost never\"]},\n  {t:\"Is the pain bilateral or asymmetrical?\",h:null,o:[\"One hip only, post-traumatic\",\"One hip only, spontaneous\",\"Both hips (bilateral)\",\"Multiple joints affected\"]},\n  {t:\"Relevant medical history?\",h:null,o:[\"Prolonged corticosteroid therapy \/ alcohol \/ immunosuppression\",\"Known rheumatic condition (RA, spondylarthritis)\",\"Recent hip surgery or injection\",\"Known hip dysplasia since childhood\",\"No notable medical history\"]},\n  {t:\"In a child or teenager: knee pain with no cause found at the knee?\",h:\"Pain referred from the hip\",o:[\"Yes, in a child 4\u201310 years with a limp\",\"Yes, in an overweight or fast-growing adolescent\",\"No, not applicable (adult patient)\"]}\n];\n\nconst D_HANCHE_FR={\n  \"Coxarthrose\":\"D\u00e9g\u00e9n\u00e9rescence progressive du cartilage de la hanche. Traitement conservateur en 1\u00e8re ligne (physio, antalgiques, infiltrations), proth\u00e8se totale de hanche si stade avanc\u00e9.\",\n  \"Conflit f\u00e9moro-ac\u00e9tabulaire\":\"Contact anormal entre le col f\u00e9moral et le rebord ac\u00e9tabulaire (came ou pince). Cause fr\u00e9quente de douleur inguinale chez le sportif jeune.\",\n  \"D\u00e9chirure du labrum\":\"L\u00e9sion du bourrelet cartilagineux ac\u00e9tabulaire. IRM arthro n\u00e9cessaire. Traitement conservateur ou r\u00e9paration arthroscopique.\",\n  \"Dysplasie de hanche\":\"Couverture insuffisante de la t\u00eate f\u00e9morale par le cotyle. Peut \u00e9voluer vers une coxarthrose pr\u00e9coce si non trait\u00e9e.\",\n  \"Tendinopathie moyen fessier\":\"Syndrome trochant\u00e9rien, atteinte du tendon du moyen\/petit fessier. Fr\u00e9quent chez la femme de 40 \u00e0 60 ans.\",\n  \"Ressaut externe\":\"Friction de la bandelette ilio-tibiale sur le grand trochanter. Ressaut audible et parfois douloureux \u00e0 la marche.\",\n  \"Syndrome du psoas\":\"Ressaut interne du tendon ilio-psoas sur l'\u00e9minence ilio-pectin\u00e9e. Fr\u00e9quent chez les danseurs et gymnastes.\",\n  \"Pubalgie\":\"Tendinopathie des adducteurs ou atteinte de la symphyse pubienne. Fr\u00e9quente chez les footballeurs.\",\n  \"Fracture du col f\u00e9moral\":\"Fracture par chute chez le sujet \u00e2g\u00e9, souvent sur terrain ost\u00e9oporotique. Chirurgie en urgence.\",\n  \"Fracture de fatigue\":\"Fracture de stress du col f\u00e9moral chez le sportif d'endurance. D\u00e9charge stricte imp\u00e9rative.\",\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":\"Infarctus osseux de la t\u00eate f\u00e9morale. Terrain : corticoth\u00e9rapie, alcool. IRM pr\u00e9coce indispensable.\",\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":\"Glissement de l'\u00e9piphyse f\u00e9morale chez l'adolescent en croissance, souvent en surpoids. URGENCE orthop\u00e9dique.\",\n  \"Legg-Calv\u00e9-Perthes\":\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale chez l'enfant de 4 \u00e0 10 ans. Suivi orthop\u00e9dique prolong\u00e9.\",\n  \"Arthrite inflammatoire de hanche\":\"PR, spondylarthrite ou arthrite r\u00e9actionnelle. Bilan biologique et rhumatologique n\u00e9cessaire.\",\n  \"Arthrite septique de hanche\":\"URGENCE. Infection articulaire, risque de destruction rapide du cartilage. Prise en charge chirurgicale imm\u00e9diate.\"\n};\n\nconst D_HANCHE_EN={\n  \"Coxarthrose\":\"Progressive degeneration of hip cartilage. Conservative first-line treatment (physio, analgesics, injections), total hip replacement if advanced.\",\n  \"Conflit f\u00e9moro-ac\u00e9tabulaire\":\"Abnormal contact between the femoral neck and acetabular rim (cam or pincer). Common cause of groin pain in young athletes.\",\n  \"D\u00e9chirure du labrum\":\"Tear of the acetabular cartilage rim. MRI arthrogram required. Conservative or arthroscopic repair.\",\n  \"Dysplasie de hanche\":\"Insufficient coverage of the femoral head by the acetabulum. Can progress to early osteoarthritis if untreated.\",\n  \"Tendinopathie moyen fessier\":\"Greater trochanteric pain syndrome, gluteus medius\/minimus tendon involvement. Common in women aged 40\u201360.\",\n  \"Ressaut externe\":\"IT band friction over the greater trochanter. Audible and sometimes painful snap while walking.\",\n  \"Syndrome du psoas\":\"Internal snapping of the iliopsoas tendon over the iliopectineal eminence. Common in dancers and gymnasts.\",\n  \"Pubalgie\":\"Adductor tendinopathy or pubic symphysis involvement. Common in footballers.\",\n  \"Fracture du col f\u00e9moral\":\"Fall-related fracture in the elderly, often osteoporotic bone. Emergency surgery.\",\n  \"Fracture de fatigue\":\"Femoral neck stress fracture in endurance athletes. Strict non-weight bearing essential.\",\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":\"Femoral head bone infarct. Profile: corticosteroids, alcohol. Early MRI essential.\",\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":\"Slipped capital femoral epiphysis in growing, often overweight adolescents. Orthopaedic EMERGENCY.\",\n  \"Legg-Calv\u00e9-Perthes\":\"Femoral head osteonecrosis in children aged 4\u201310. Prolonged orthopaedic follow-up.\",\n  \"Arthrite inflammatoire de hanche\":\"RA, spondylarthritis or reactive arthritis. Blood tests and rheumatology referral needed.\",\n  \"Arthrite septique de hanche\":\"EMERGENCY. Joint infection, risk of rapid cartilage destruction. Immediate surgical management.\"\n};\n\nconst TRAITEMENTS_HANCHE_FR={\n  \"Coxarthrose\":{conserv:[\"Physioth\u00e9rapie de renforcement musculaire\",\"Antalgiques et anti-inflammatoires\",\"Infiltrations de cortisone ou d'acide hyaluronique\",\"Perte de poids, activit\u00e9 adapt\u00e9e (natation, v\u00e9lo)\",\"Canne si besoin\"],chir:[\"Proth\u00e8se totale de hanche (PTH)\",\"Ost\u00e9otomie chez le sujet jeune\"]},\n  \"Conflit f\u00e9moro-ac\u00e9tabulaire\":{conserv:[\"Physioth\u00e9rapie de mobilit\u00e9 et de renforcement\",\"Modification des activit\u00e9s en flexion profonde\",\"AINS en pouss\u00e9e\",\"Infiltration diagnostique et th\u00e9rapeutique\"],chir:[\"Arthroscopie de hanche (r\u00e9section came\/pince, r\u00e9paration du labrum)\",\"Chirurgie ouverte si forme s\u00e9v\u00e8re\"]},\n  \"D\u00e9chirure du labrum\":{conserv:[\"Repos relatif, physioth\u00e9rapie\",\"AINS en phase aigu\u00eb\",\"Infiltration sous contr\u00f4le radiologique\"],chir:[\"R\u00e9paration ou d\u00e9bridement arthroscopique du labrum\"]},\n  \"Dysplasie de hanche\":{conserv:[\"Renforcement musculaire p\u00e9riarticulaire\",\"Suivi radiologique r\u00e9gulier\",\"Adaptation des activit\u00e9s \u00e0 impact\"],chir:[\"Ost\u00e9otomie p\u00e9riac\u00e9tabulaire (jeune adulte)\",\"Proth\u00e8se totale de hanche si arthrose \u00e9volu\u00e9e\"]},\n  \"Tendinopathie moyen fessier\":{conserv:[\"Exercices excentriques du moyen fessier\",\"Ondes de choc extracorporelles\",\"Infiltration de cortisone p\u00e9ritendineuse\",\"\u00c9viter le d\u00e9cubitus direct sur la hanche douloureuse\"],chir:[\"R\u00e9paration chirurgicale si rupture confirm\u00e9e \u00e0 l'IRM\"]},\n  \"Ressaut externe\":{conserv:[\"\u00c9tirements de la bandelette ilio-tibiale\",\"Physioth\u00e9rapie\",\"Modification du geste sportif\"],chir:[\"Exceptionnellement : lib\u00e9ration chirurgicale de la bandelette\"]},\n  \"Syndrome du psoas\":{conserv:[\"\u00c9tirements du psoas-iliaque\",\"Physioth\u00e9rapie\",\"Infiltration \u00e9choguid\u00e9e si r\u00e9sistant\"],chir:[\"T\u00e9notomie du psoas en cas d'\u00e9chec du traitement conservateur\"]},\n  \"Pubalgie\":{conserv:[\"R\u00e9\u00e9ducation sp\u00e9cifique des adducteurs et de la sangle abdominale\",\"Repos sportif progressif\",\"AINS en phase aigu\u00eb\"],chir:[\"Cure chirurgicale si \u00e9chec du traitement conservateur prolong\u00e9\"]},\n  \"Fracture du col f\u00e9moral\":{conserv:[\"Rarement indiqu\u00e9 (sujet tr\u00e8s fragile, non op\u00e9rable)\"],chir:[\"Ost\u00e9osynth\u00e8se par vis (fracture non d\u00e9plac\u00e9e)\",\"Proth\u00e8se de hanche (fracture d\u00e9plac\u00e9e)\"]},\n  \"Fracture de fatigue\":{conserv:[\"D\u00e9charge stricte aux b\u00e9quilles\",\"Arr\u00eat total de l'activit\u00e9 sportive\",\"Suivi IRM r\u00e9gulier\"],chir:[\"Vissage pr\u00e9ventif si trait \u00e0 risque de d\u00e9placement\"]},\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":{conserv:[\"D\u00e9charge partielle\",\"Antalgiques\",\"Surveillance IRM rapproch\u00e9e\"],chir:[\"Forage d\u00e9compressif (stade pr\u00e9coce)\",\"Proth\u00e8se totale de hanche (stade avanc\u00e9)\"]},\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":{conserv:[\"D\u00e9charge imm\u00e9diate et stricte en urgence\",\"Aucune manipulation\"],chir:[\"Fixation percutan\u00e9e par vis en urgence (syst\u00e9matique)\"]},\n  \"Legg-Calv\u00e9-Perthes\":{conserv:[\"Mise en d\u00e9charge selon le stade\",\"Physioth\u00e9rapie de mobilit\u00e9\",\"Suivi orthop\u00e9dique p\u00e9diatrique prolong\u00e9\"],chir:[\"Ost\u00e9otomie de recentrage si mauvaise couverture de la t\u00eate\"]},\n  \"Arthrite inflammatoire de hanche\":{conserv:[\"Traitement de fond (m\u00e9thotrexate, bioth\u00e9rapie)\",\"Infiltrations cortison\u00e9es\",\"Physioth\u00e9rapie douce\",\"Suivi rhumatologique r\u00e9gulier\"],chir:[\"Proth\u00e8se totale de hanche si destruction articulaire avanc\u00e9e\"]},\n  \"Arthrite septique de hanche\":{conserv:[\"URGENCE : hospitalisation imm\u00e9diate\",\"Antibioth\u00e9rapie IV adapt\u00e9e\"],chir:[\"Lavage articulaire chirurgical ou arthroscopique en urgence\"]}\n};\n\nconst TRAITEMENTS_HANCHE_EN={\n  \"Coxarthrose\":{conserv:[\"Muscle-strengthening physiotherapy\",\"Analgesics and anti-inflammatory drugs\",\"Cortisone or hyaluronic acid injections\",\"Weight loss, adapted activity (swimming, cycling)\",\"Cane if needed\"],chir:[\"Total hip replacement (THR)\",\"Osteotomy in younger patients\"]},\n  \"Conflit f\u00e9moro-ac\u00e9tabulaire\":{conserv:[\"Mobility and strengthening physiotherapy\",\"Modify deep-flexion activities\",\"NSAIDs during flare-ups\",\"Diagnostic and therapeutic injection\"],chir:[\"Hip arthroscopy (cam\/pincer resection, labral repair)\",\"Open surgery for severe forms\"]},\n  \"D\u00e9chirure du labrum\":{conserv:[\"Relative rest, physiotherapy\",\"NSAIDs in acute phase\",\"Image-guided injection\"],chir:[\"Arthroscopic labral repair or debridement\"]},\n  \"Dysplasie de hanche\":{conserv:[\"Periarticular muscle strengthening\",\"Regular radiological follow-up\",\"Adapt high-impact activities\"],chir:[\"Periacetabular osteotomy (young adult)\",\"Total hip replacement if advanced arthritis\"]},\n  \"Tendinopathie moyen fessier\":{conserv:[\"Eccentric gluteus medius exercises\",\"Extracorporeal shockwave therapy\",\"Peritendinous cortisone injection\",\"Avoid lying directly on the painful hip\"],chir:[\"Surgical repair if rupture confirmed on MRI\"]},\n  \"Ressaut externe\":{conserv:[\"IT band stretching\",\"Physiotherapy\",\"Modify sporting technique\"],chir:[\"Exceptionally: surgical IT band release\"]},\n  \"Syndrome du psoas\":{conserv:[\"Iliopsoas stretching\",\"Physiotherapy\",\"Image-guided injection if resistant\"],chir:[\"Psoas tenotomy if conservative treatment fails\"]},\n  \"Pubalgie\":{conserv:[\"Specific adductor and core rehabilitation\",\"Progressive return to sport\",\"NSAIDs in acute phase\"],chir:[\"Surgical repair if prolonged conservative treatment fails\"]},\n  \"Fracture du col f\u00e9moral\":{conserv:[\"Rarely indicated (very frail, inoperable patient)\"],chir:[\"Screw fixation (undisplaced fracture)\",\"Hip replacement (displaced fracture)\"]},\n  \"Fracture de fatigue\":{conserv:[\"Strict non-weight bearing on crutches\",\"Complete cessation of sport\",\"Regular MRI follow-up\"],chir:[\"Preventive screw fixation if high-risk fracture line\"]},\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":{conserv:[\"Partial weight bearing\",\"Analgesics\",\"Close MRI monitoring\"],chir:[\"Core decompression (early stage)\",\"Total hip replacement (advanced stage)\"]},\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":{conserv:[\"Immediate strict non-weight bearing\",\"No manipulation\"],chir:[\"Emergency percutaneous screw fixation (systematic)\"]},\n  \"Legg-Calv\u00e9-Perthes\":{conserv:[\"Weight-bearing restriction per stage\",\"Mobility physiotherapy\",\"Prolonged paediatric orthopaedic follow-up\"],chir:[\"Containment osteotomy if poor femoral head coverage\"]},\n  \"Arthrite inflammatoire de hanche\":{conserv:[\"Disease-modifying drugs (methotrexate, biologics)\",\"Corticosteroid injections\",\"Gentle physiotherapy\",\"Regular rheumatology follow-up\"],chir:[\"Total hip replacement if advanced joint destruction\"]},\n  \"Arthrite septique de hanche\":{conserv:[\"EMERGENCY: immediate hospitalisation\",\"Adapted IV antibiotics\"],chir:[\"Emergency surgical or arthroscopic joint washout\"]}\n};\n\nconst NAMES_HANCHE_FR={\n  \"Coxarthrose\":\"Coxarthrose\",\"Conflit f\u00e9moro-ac\u00e9tabulaire\":\"Conflit f\u00e9moro-ac\u00e9tabulaire\",\n  \"D\u00e9chirure du labrum\":\"D\u00e9chirure du labrum\",\"Dysplasie de hanche\":\"Dysplasie de hanche\",\n  \"Tendinopathie moyen fessier\":\"Tendinopathie moyen fessier\",\"Ressaut externe\":\"Ressaut externe\",\n  \"Syndrome du psoas\":\"Syndrome du psoas\",\"Pubalgie\":\"Pubalgie\",\n  \"Fracture du col f\u00e9moral\":\"Fracture du col f\u00e9moral\",\"Fracture de fatigue\":\"Fracture de fatigue\",\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\",\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\",\n  \"Legg-Calv\u00e9-Perthes\":\"Legg-Calv\u00e9-Perthes\",\n  \"Arthrite inflammatoire de hanche\":\"Arthrite inflammatoire de hanche\",\n  \"Arthrite septique de hanche\":\"Arthrite septique de hanche\"\n};\nconst NAMES_HANCHE_EN={\n  \"Coxarthrose\":\"Hip Osteoarthritis\",\"Conflit f\u00e9moro-ac\u00e9tabulaire\":\"Femoroacetabular Impingement\",\n  \"D\u00e9chirure du labrum\":\"Labral Tear\",\"Dysplasie de hanche\":\"Hip Dysplasia\",\n  \"Tendinopathie moyen fessier\":\"Gluteal Tendinopathy\",\"Ressaut externe\":\"External Snapping Hip\",\n  \"Syndrome du psoas\":\"Internal Snapping Hip (Psoas)\",\"Pubalgie\":\"Athletic Pubalgia\",\n  \"Fracture du col f\u00e9moral\":\"Femoral Neck Fracture\",\"Fracture de fatigue\":\"Stress Fracture\",\n  \"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":\"Femoral Head Osteonecrosis\",\n  \"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":\"Slipped Capital Femoral Epiphysis\",\n  \"Legg-Calv\u00e9-Perthes\":\"Legg-Calv\u00e9-Perthes Disease\",\n  \"Arthrite inflammatoire de hanche\":\"Inflammatory Hip Arthritis\",\n  \"Arthrite septique de hanche\":\"Septic Hip Arthritis\"\n};\n\nconst GESTES_HANCHE_FR=[\"Mettre la hanche au repos et \u00e9viter les activit\u00e9s douloureuses\",\"Appliquer de la glace 15 min, 2 \u00e0 3 fois par jour sur la zone douloureuse\",\"\u00c9viter les positions en flexion profonde prolong\u00e9e et le croisement des jambes\",\"\u00c9viter l'appui direct sur le c\u00f4t\u00e9 douloureux la nuit\",\"Prendre un antalgique de palier 1 (parac\u00e9tamol) si la douleur est g\u00eanante\",\"Consulter rapidement un m\u00e9decin du sport ou un physioth\u00e9rapeute\"];\nconst GESTES_HANCHE_EN=[\"Rest the hip and avoid painful activities\",\"Apply ice for 15 min, 2 to 3 times a day on the painful area\",\"Avoid prolonged deep hip flexion and crossing the legs\",\"Avoid lying directly on the painful side at night\",\"Take a first-line painkiller (paracetamol) if pain is bothersome\",\"Consult a sports doctor or physiotherapist promptly\"];\n\nconst S_HANCHE={\n  0:{0:{\"Fracture du col f\u00e9moral\":4,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":1,\"Dysplasie de hanche\":1},1:{\"D\u00e9chirure du labrum\":3,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2,\"Pubalgie\":2},2:{\"Fracture de fatigue\":3,\"Tendinopathie moyen fessier\":2,\"Pubalgie\":2,\"Syndrome du psoas\":2},3:{\"Coxarthrose\":3,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2,\"Arthrite inflammatoire de hanche\":2,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":1}},\n  1:{0:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"D\u00e9chirure du labrum\":3,\"Pubalgie\":3,\"Tendinopathie moyen fessier\":2,\"Ressaut externe\":2,\"Syndrome du psoas\":2},1:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"D\u00e9chirure du labrum\":3,\"Pubalgie\":3,\"Tendinopathie moyen fessier\":2,\"Ressaut externe\":2,\"Syndrome du psoas\":2},2:{\"Coxarthrose\":2,\"Tendinopathie moyen fessier\":2,\"Dysplasie de hanche\":1,\"Arthrite inflammatoire de hanche\":2},3:{\"Coxarthrose\":4,\"Fracture du col f\u00e9moral\":3,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2}},\n  2:{0:{\"Coxarthrose\":3,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":4,\"D\u00e9chirure du labrum\":4,\"Dysplasie de hanche\":2},1:{\"Tendinopathie moyen fessier\":5,\"Ressaut externe\":4},2:{\"Syndrome du psoas\":1,\"Arthrite inflammatoire de hanche\":2,\"Coxarthrose\":1},3:{\"Pubalgie\":5},4:{\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":3,\"Legg-Calv\u00e9-Perthes\":3,\"Coxarthrose\":2}},\n  3:{0:{\"Fracture du col f\u00e9moral\":4,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":2,\"D\u00e9chirure du labrum\":2},1:{\"Fracture de fatigue\":3,\"Tendinopathie moyen fessier\":2,\"Pubalgie\":2},2:{\"Coxarthrose\":4,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2,\"Dysplasie de hanche\":2},3:{\"Ressaut externe\":3,\"Syndrome du psoas\":3,\"Tendinopathie moyen fessier\":2}},\n  4:{0:{\"Tendinopathie moyen fessier\":5,\"Ressaut externe\":2},1:{\"Ressaut externe\":5,\"Tendinopathie moyen fessier\":2},2:{\"Coxarthrose\":2,\"Arthrite inflammatoire de hanche\":2},3:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":1,\"D\u00e9chirure du labrum\":1,\"Pubalgie\":1}},\n  5:{0:{\"Ressaut externe\":6},1:{\"Syndrome du psoas\":6},2:{\"D\u00e9chirure du labrum\":3,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2},3:{\"Coxarthrose\":1}},\n  6:{0:{\"Fracture du col f\u00e9moral\":4,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":3,\"Arthrite septique de hanche\":3},1:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":4,\"Coxarthrose\":3,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":2},2:{\"Tendinopathie moyen fessier\":2,\"Pubalgie\":2,\"D\u00e9chirure du labrum\":2},3:{\"Ressaut externe\":2,\"Syndrome du psoas\":2}},\n  7:{0:{\"Fracture du col f\u00e9moral\":5,\"Arthrite septique de hanche\":4,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":3},1:{\"Legg-Calv\u00e9-Perthes\":4,\"Coxarthrose\":2,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":2},2:{\"Coxarthrose\":2,\"Tendinopathie moyen fessier\":2,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":1},3:{\"Pubalgie\":1,\"Ressaut externe\":1}},\n  8:{0:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"D\u00e9chirure du labrum\":2,\"Syndrome du psoas\":2},1:{\"Tendinopathie moyen fessier\":3,\"Fracture de fatigue\":2,\"Coxarthrose\":2},2:{\"Tendinopathie moyen fessier\":4,\"Ressaut externe\":2},3:{\"Pubalgie\":4,\"Fracture de fatigue\":2,\"D\u00e9chirure du labrum\":2},4:{\"Fracture du col f\u00e9moral\":2,\"Arthrite septique de hanche\":3,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2,\"Arthrite inflammatoire de hanche\":2}},\n  9:{0:{\"Coxarthrose\":3,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2,\"Tendinopathie moyen fessier\":2},1:{\"Arthrite inflammatoire de hanche\":5,\"Coxarthrose\":1},2:{\"Fracture du col f\u00e9moral\":3,\"Arthrite septique de hanche\":3,\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":2},3:{\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":4,\"Fracture de fatigue\":2}},\n  10:{0:{\"Arthrite septique de hanche\":5,\"Legg-Calv\u00e9-Perthes\":1},1:{\"Arthrite septique de hanche\":5,\"Arthrite inflammatoire de hanche\":2},2:{\"Coxarthrose\":1,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":1}},\n  11:{0:{\"Pubalgie\":4,\"D\u00e9chirure du labrum\":2,\"Fracture de fatigue\":2},1:{\"Fracture de fatigue\":4,\"Tendinopathie moyen fessier\":2},2:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"Syndrome du psoas\":3,\"D\u00e9chirure du labrum\":2},3:{\"Coxarthrose\":2,\"Arthrite inflammatoire de hanche\":1}},\n  12:{0:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":3,\"Pubalgie\":3,\"D\u00e9chirure du labrum\":2,\"Fracture de fatigue\":2,\"Tendinopathie moyen fessier\":2,\"Syndrome du psoas\":2},1:{\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2,\"Tendinopathie moyen fessier\":2,\"Pubalgie\":2,\"Syndrome du psoas\":1},2:{\"Tendinopathie moyen fessier\":1,\"Ressaut externe\":1,\"Coxarthrose\":1},3:{\"Coxarthrose\":3,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":1,\"Arthrite inflammatoire de hanche\":1,\"Dysplasie de hanche\":1}},\n  13:{0:{\"Fracture du col f\u00e9moral\":2,\"Fracture de fatigue\":2,\"D\u00e9chirure du labrum\":2},1:{\"Coxarthrose\":2,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2},2:{\"Dysplasie de hanche\":3,\"Arthrite inflammatoire de hanche\":3,\"Coxarthrose\":2},3:{\"Arthrite inflammatoire de hanche\":5}},\n  14:{0:{\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":6,\"Arthrite septique de hanche\":2},1:{\"Arthrite inflammatoire de hanche\":6},2:{\"Arthrite septique de hanche\":4,\"Ost\u00e9on\u00e9crose de la t\u00eate f\u00e9morale\":2},3:{\"Dysplasie de hanche\":6,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":2},4:{\"Coxarthrose\":1}},\n  15:{0:{\"Legg-Calv\u00e9-Perthes\":6},1:{\"\u00c9piphysiolyse f\u00e9morale sup\u00e9rieure\":6},2:{\"Coxarthrose\":1,\"Conflit f\u00e9moro-ac\u00e9tabulaire\":1}}\n};\n\n\/* ================================================================\n   ASSEMBLAGE DES MODULES\n   ================================================================ *\/\nconst MODULES={\n  genou:{\n    id:'genou',\n    Q:LANG==='en'?Q_GENOU_EN:Q_GENOU_FR,\n    D:LANG==='en'?D_GENOU_EN:D_GENOU_FR,\n    TRAITEMENTS:LANG==='en'?TRAITEMENTS_GENOU_EN:TRAITEMENTS_GENOU_FR,\n    NAMES:LANG==='en'?NAMES_GENOU_EN:NAMES_GENOU_FR,\n    GESTES:LANG==='en'?GESTES_GENOU_EN:GESTES_GENOU_FR,\n    S:S_GENOU,\n    pdfTitle:LANG==='en'?'KNEE PAIN DIAGNOSIS':'DIAGNOSTIC DOULEUR AU GENOU',\n    pdfFile:'diagnostic-genou-coulinmedical.pdf',\n    rdvUrl:'https:\/\/coulinmedical.com\/prendre-rendez-vous\/',\n    selLabel:LANG==='en'?'Knee':'Genou',\n    selSub:L.selGenouSub\n  },\n  hanche:{\n    id:'hanche',\n    Q:LANG==='en'?Q_HANCHE_EN:Q_HANCHE_FR,\n    D:LANG==='en'?D_HANCHE_EN:D_HANCHE_FR,\n    TRAITEMENTS:LANG==='en'?TRAITEMENTS_HANCHE_EN:TRAITEMENTS_HANCHE_FR,\n    NAMES:LANG==='en'?NAMES_HANCHE_EN:NAMES_HANCHE_FR,\n    GESTES:LANG==='en'?GESTES_HANCHE_EN:GESTES_HANCHE_FR,\n    S:S_HANCHE,\n    pdfTitle:LANG==='en'?'HIP PAIN DIAGNOSIS':'DIAGNOSTIC DOULEUR A LA HANCHE',\n    pdfFile:'diagnostic-hanche-coulinmedical.pdf',\n    rdvUrl:'https:\/\/coulinmedical.com\/prendre-rendez-vous\/',\n    selLabel:LANG==='en'?'Hip':'Hanche',\n    selSub:L.selHancheSub\n  }\n};\n\n\/* ---- STYLES NAVIGATION ---- *\/\nconst R='#b1bdb1';\nconst NB=(d)=>`display:flex;align-items:center;gap:14px;cursor:${d?'default':'pointer'};font-family:'Arboria',Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#b1bdb1;${d?'opacity:0.3;pointer-events:none':''}`;\nconst NN=(d)=>`display:flex;align-items:center;gap:14px;cursor:${d?'default':'pointer'};font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:${R};${d?'opacity:0.3;pointer-events:none':''}`;\nconst CB=`width:35px;height:35px;min-width:35px;border-radius:50%;border:1.5px solid #b1bdb1;display:flex;align-items:center;justify-content:center;flex-shrink:0;`;\nconst CN=`width:35px;height:35px;min-width:35px;border-radius:50%;border:1.5px solid ${R};display:flex;align-items:center;justify-content:center;flex-shrink:0;`;\nconst SB=`<svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#b1bdb1\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>`;\nconst SN=`<svg width=\"23\" height=\"23\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"${R}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>`;\nconst SDLICO=`<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>`;\n\n\/* ---- \u00c9TAT ---- *\/\nlet curMode=null;\nlet Q,D,TRAITEMENTS,NAMES,GESTES,S;\nlet cur=0, ans={};\nlet _transitioning=false;\nconst el=()=>document.getElementById('dg-render');\nconst esc=s=>s.replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;');\n\n\/* ---- PR\u00c9CHARGEMENT LOGO ---- *\/\nwindow._dgLogo='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAADnCAYAAADSMxt4AAAACXBIWXMAAAsSAAALEgHS3X78AAAWC0lEQVR4nO3d71XbyNvG8SvP2bcSOWogTgXwqwBvBbAV4K0gpIKYCtapAFNBSAVxKlioYE0D2iAVwPNCt4OXhcUzGmlG8vdzDiecRCOPidGl+as3Dw8PAgAgpP+LXQEAwPgQLgCA4AgXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAIDjCBYNUV+XbuirnsesB4Hm\/xK4A4KquyreSVpIO66qcZHkxi1sjAE\/RcsEQXUs6tO\/P6qpcRqwLgGcQLhgUC5LjJ39NwACJIVwwGHVVnks6e+GfCRggIW8eHh5i1wF4VV2VU0nfdjj0ijEYID7CBcmzAfy1pIMdixAwQGR0i2EIlto9WCS6yIDoaLkgaXVVnkr64ln8IsuLecDq\/FRX5ZGkt5Kmz\/zzD0k3kn5keXHTxesDqSNckCyP7rBtt5KmWV78CFSXI0mnasLk6Wy113xXsy7nmrDBviBckKy6KheSPngUvZd0lOXFuuXrTyTN7Otdm3NtuZO0kLQMFXxAiggXJMku7H95FL1X02LxbiHYa8\/18rTnEO7VhMyCkMEYMaCPVC09y523DJa5mvGSLoNFarr6Pkla2\/odYFRouSA5DmtanvKegmxjKks9bivTt++SZm278oBU0HJBiuYeZe4kebUA6qqcyTbC9CkfyLGkGwtWYPAIFyTFxjtcZ2NJzV2\/89iFdYNdym9GWmgHkr5Z2AGDRrggNXOPMl+zvFi5FrKFlp88Xq9rl7a+BxgswgXJsHUtPhdV5+4wa7F0PWjv61ZNNx0wWIQLUnIq9+6pC9dBcOt2SrHFIgVe\/AnEQrggJT6tloXLwTYrzKlMjwgWjAaPOUYSrEvsxLHYlcuF2F5jqTCD9\/dquq5u1GxRs7a\/n9jXVG4TEwgWjArhglT4tFrmjsefq\/104+9qVtVf73KwdcHN9N9BQ7BgdFhEiSTUVXktt5bLbZYXRw7nn8hvO5mfr6dm9f\/Kp7CtX1nq33uUESwYJcZckIqp4\/Gu4yZzx+O3XWR5ceQbLJJkZY8kXW39NcGC0aLlguhskP1Px2Lvd50l1rLV8nuWF0vPss+yrrJzESwYMcZckIKp4\/G3jtOP547n3wgeLJJk5wx+XiAldIshBTuPnZidBtO3+EwWuOgiWIB9QbggBRPH41e7HmjbqLhOPf7e1eORgX1BuCAFrhtVujyvpZftZAD8E+GCqGxho4s7x0HwqeP5r3jOPdAe4YLYXMdb1rseaLPEnq4reU2qW8MAg0K4YGhWDsdOHM99R6sFCINwQWyTDs89dTx+1UEdgL1EuCC2iePx6w7qsEGrBQiEcMHQrDs8N+ECBEK4YMymsSsA7CvCBQAQHOGCMaObC4iEcMHQuCy6dN1xeOJ4PIAXEC6IzTUAXBddpnJuYK8QLoity66rlePx0w7qAOwlwgVD49K6WDue+9C2jAHQEuGC2NaOx092PdAeKHbveP654\/EAnkG4ICrHJ0pK0qHj8SvH409pvQDtES5Iwa3LwXVVTh0Od31q5YHYGRlojXBBCtaOx7uMu7iGiySd1FU58ygHwBAuSIHrjLHprgfag8WuHM8vSYu6KpmaDHgiXJCClePxJ47HLx2Pl5rusVUXAVNX5SktI4wd4YLosrxYuZapq\/LU8fzfXV9DjwEz8yj7rLoqzyV9kXRJwGDMCBekwvXiP3M8fu54\/MaBmiC4bjOLrK7KSV2VK0l\/bP01AYPRIlyQCteB95O6KnfeZ8xaLz5jLz9fT9JNXZULl5Cpq\/KorsqlpL8kHT9zCAGDUXrz8PAQuw6AbGzjT8diF1lezB1e462amWkHjq\/znFs1Y0Ur\/Xt\/tImaGW2nkt7teL7fs7xYBqgXkATCBcmoq3Kt3S\/GknSX5cXE8TWmkr65lOkRAYPRoFsMKXFdvPjOtUvJuscuHF+nL3SRYTRouSAZNpbxl2OxO0lHtp7F5bWWks4cX6svtGAweLRckAzbZ+yrY7F3ks49XmumdgP8Xbp03OIGSA7hgtT47Ot17jNNOOGAufJZ+wOkhHBBUuyieudY7EB+q\/A3AZPSGMzvVidg0AgXpGjuUebYVr87s+nMv8n92S8h3Un6H2MtGAsG9JEkj2nJG\/\/L8sLr0cm2Dmah\/gf6P0uau05KAFJGuCBJtnfYF4+iXrPHnrz2VE3r6bkV9SF9lzTzeGAakDzCBcmyvbh8LvC3kqZtWwIWMjOFbcncq9nqZuHbwgKGgHBBsjy3hNm4CjUwbt1lp\/Y1lfv2MZtAWUm6pvsL+4BwQdLqqpxL+uRZPFjAbLPQm+jxiZhHkjabaP7Q48PPbiTddNHtVVfljMF\/pIxwQfLqqryRdOhZvJOAiWlrd4HRvTeMB+GC5LXsHpMCjcGk4JltawgYJIl1LkieDXx\/bHGKQ3X0yOK+1FX51lpwTycXnFngAEkhXDAIWV4s1G6rlk3AzMLUqD82a22tl7sGCRgkh24xDIbN2lrJf\/xl46ua9SVJd5PZ+51L+rBjEbrIkAzCBYMS8GmS92pWxftslNk5W0S6kPsuBQQMkkC4YHBs7GSlMI8rvlMTMssA52ot0O4ABAyiI1wwSIEDRoocMtZSOVe4LWc+Z3nhtZEnEALhgsHqIGCkprtsKWnZ9fYs9gyamX35bNL5X3iaJaIiXDBoHQXMxp0et21ZhZgAYN1em21k2k5MeM69mjU97FuGqAgXDJ61AK7VzcV6262ayQQ39ufa\/n692eLFJhxs1tNsvp\/Yn13Xj2BBMggXjIJd1JeSTiJXJZbR7EKAcSBcMCotN7ocKgbvkRzCBaNj4xpLhR8kT829msWg17ErAjzF9i8YnSwvVmrGOD5HrkqXvkqaECxIFS0XjJq1YhbqfjC9L3eSzgkVpI5wwV6wDSsX6mbKch\/u1dR\/waA9hoBwwd6wGWXn9jWUkCFUMEiEC\/aStWTmSnfQ\/05NqCwJFQwR4YK9ZmMyMzWr5lNozVxJumZMBUNHuADGNo\/cbM3SV4vmXo9bzFzTSsFYEC7AM2zPsiM1QRNy65ZbNdvH3KjZr4ytWjBKhAuwIwuczX5hb+2vt7\/ftnry\/Q+CBPuEcAEABMcKfQBAcIQLACA4wgUAEBzhAgAIjnABAARHuAAAgiNcAADBES4AgOAIFwBAcIQLACA4wgUAEBzhAgAIjnABAARHuAAAgiNcAADBES4AgOAIFwBAcIQLACA4wgUAEBzhAgAIjnABAARHuAAAgiNcAADBES4AgOAIFwBAcIQLACC4X2JXILS6KqeSjiRN7E\/Z9+\/s+ztJa\/v+xr6\/yfJi1U8Nw6qr8q2a9zlV8z4n9k9Hkg62Dv1uf\/5Q875v1LzvdQ\/VBLBn3jw8PMSuQyt2cT21r5OWp\/sq6VrSdZYXP9rWrSt1VR5Jmql5z+\/+++hX3evxPV+3PFcwdVXOJX1yKZPlxZtuatOwG5dvjsUusryYB3jtuRx\/HpJ+HepNkxT\/PddV6XpxDPJ\/\/ZrYP5ddDbZbrK7KaV2VS0l\/S7pU+2CRneNS0t91VS7tIp6Euirf1lU5r6tyLelPSR\/UPlikpnVzJulLXZU\/7H1PApwX2Def7AYEGmC4WKis1NxBnnX4UmeS\/qyrchUzZCxUlmpC9JPCBMpLNkHzl73vaYevBYzRtfWm7L3BhMvWRfabpOMeX\/pYTcgs+v7QWPN3rW5D9CXHkr5ZS4ZfFmA3B5KWsSuRgkGES12Vp4p3kd34IOmmj7v5uiqP6qq8UdNSOXjt+I6dSVrb\/wGA153UVXkeuxKxJR8udVUuJH1R\/Ius1HRJfbMWRSfqqpxJWkk67Oo1PByoGZNZxq4IMBB\/pDRmG0Oy4WLdYCs1LYbUfOriQmvnvFQaQfqcs7oqb+gmA3ay113KSYaL\/Yes1O\/Yiqsz67oKwoIlZrffrg4lrfb5lwbY0aGkeexKxJJcuGwFS0rdQi8JEi4DCpYNAgbYzYd9Ha9MLlzULOgbQrBcZXkxa3sSG1MaUrBsHKq5CQDw3\/Zy7VhS27\/YhTZkV9i9Hrd4WdvfTfS4NYzv2EaoYJmpmzGl7S1utoXuZjysq3IZ4mcBjNhmevI0bjX6lUy4WNMxxIX2u5r\/yNVr+2bZ3cSpmq1Udm0thQqWiaRF2\/OYn1u4qHnfL25dYzNYppLOFWZB5lldlUltHQMk6Liuynkf28OkIoluMeu7X7Y8zZWk91leTLO8WO6yIWOWF+ssLxZZXhxJ+lWPmzu++BoB79KXaj8r7F7ShaRJlhezLC9e3RMty4sbe88T7faed7HXs2KAHe3V9jBJhIvaXWhv1WzKNmuzw2+WF6ssL6ZqLrh3zxwSLFisO6xtF9VXNaEy991kc+s9f1QTVL4OFK4VBozZ3tyIRQ8XS3LfTSevJE1D7vZp5zpSc\/H++ToBg+Wt2l+If8\/y4jTUzs1ZXizUdJXdtjjN2T7dlQGe3mlPtoeJHi7ynwd+Ya2V4FvjZ3nxI8uLUzXhFbIrTGrGOtp0h\/2e5cUyUF1+yvLiRu0DZh6kMsC4nVjvxahFDRe70\/XpHvrYx8CYhdcs8Gnb7DnUSbBsWFBP9Xy34C6O933LC2BHi7H\/rsRuucw8ylxZN87g2N2Kb6vlostg2bCAabPoa+837AN2MPrdk6OFi409uC4evNWwL14zz3K3fU5htC6yC8\/ip\/syYAm0dGhr+0YpZstl5lHmPOXHD\/8Xu+D6zhCbBazKTizMfLrHDtSu5QPsk9FuDxMzXKaOx18N+Xng8r\/gXllLIoa5Z7lpwDoAYzfK6ckxw8V1+vG8i0r0aOpZLlqz2cZ4fFovo7wTA17xXX6zLQ\/U7K4xKlHCxWM9xPc2CyQTMfUocxux1bLh86E\/2MeN+gD5jwkfj+3plbFaLq5T8JZdVKJnPvt4pXA341uHUU+zBJ5jXfefPYuP6umVQwmXVReV6EuLleurgNXw0mKcazS\/JICjufy3U7oey\/hLrHCZOBx7N4IuMa8PS0ITGHw2txzFLwjgyma0zjyLv9NI9umLvYhyF+vYFQjA5y7ed5V8F9YeZWi5YG\/ZIyi+vnrg887GsD3MELrFYg9ox7KOXYEt69gVAAZoJv\/uscXQJ8XECheXLVAGuWgSwH5r2T02+OnJQ+gWA4BBatk9dlhX5TxgdXoVK1xcmoqTrioBAD2YyX8M9dNQpyfHCheXcZRJV5VIXEofqEnsCgBDFWCn8WWgqvRqCN1iKV1kfa08yhwkNN994lFmXydiAP\/ScqfxQXaPDaHlss9biaQSrD67OTMRA9hiO437rBmTmu6xSbjadC9WuKwdjx\/0RogtFkNGf99D2l2gRV2BvpzKf3ryMmA9OjeElosU4XkmHRjq7sK+dViHrAQwBi2nJx8PaXFllHDxuJM\/HOqMiS0rjzLvErgbn3mUGcOWPc9JZQwMA2bTk303t1xoIJ\/DmAP6rnO\/511Uokcrz3LzgHVwYndJLgteN1Zha7Kzrm9AfM7P2BP+JcuLc\/k\/+2UWtjbdiBkurqtPTxK4i2\/Dd7XtcYz3bTPV5p7FQ6wsXnuU6Tpcph5lmDWHl8zkN\/7ic8PXuyGFizTgx4FaX6vvSt0Yu6Sey+8ZNPfW7G9r7VGmszEq+9wxaw7B2PTkUT0gbFu0cLGL7ZVjsXca2IyJJ5ae5Q7rquwtYKyl9MmzeKj9kHzu+A\/qquwqYLzOm8CTRJEwe5S463VwEGIvolx6lDmpq9KnXHR2R++7DcSHPmaK2Fz6NgExD1EPu\/nw+Vl1dSc49yjj06eO\/XOutB6xEUTUcLFZYz6Lis76CJi6KpcdvM68RdnLLgPGun6u5d+n+zXwLLGVR5ngzyK31dE+XYSrkPXAOAXYHiZJsVsukv\/F9qyuyk4eCVpX5du6KleSzhQ4yKwZ3OYu5TL0xVOSbKr3WtJhi9OErpdvC2oeaup6Il2EGDnrPv0Yux4hRQ8Xa7349jmeSLoJOZvK+uzX+ufgbeiWUtuL8B8WrJMQlbE78z\/VbhbKVei1LdaN6DubZtX2c2GtRN+AuEvoMdUYgCwvFvLfHiY50cPFnMt\/S4R3kr7VVdnqYlJX5dRaK1\/0\/EU2WMDYRbPth2gTrHPf1ltdlbO6KtfyvzPfuFd3Yx2+F\/cDNZ+LhevPx1quS0mX8g\/cpWc57Lc228MkJYlwabklwsaxmovJTV2V57t0i9RVeWQXn7Wkb3p9qmnIFkyID9GBmmD421oys9daMxaim\/d8Kb+xhKdm9n\/YhXnL8h8krW387PSloLFAObX\/37\/VdIn6ulec6eMYuDGNv\/wSuwIbWV5c11X5Wc3FoI1DSX9IUl2V0mMLYa1m24TNxcVnzYLUBIyyvJj5V7H5EFm3y5c259lyYl+qq\/Je\/57K+1btxlNe8jnQupZnZXmxrqvySu0u9gdW\/kx69udzpLAL0xYdhq2Lb\/Y7ENP3LC+msSsxJFlerAJdC6NKJlykZksEu\/M+CXja4yd\/hhAqYK7rqvwoC8OADhT2\/b7kq21j0bVzNXdzoQKgy58PrRa0ZtfCqbq5IexFEt1iT8w0jPUBQbrIbBBviIuobtXTHkfWChjKSuYuuwixXwY9\/pJcuNgv5lTDCJggrAU0pIC5lTTt8yI6kJXMnXYRYr\/Y7MtZ5Gp4Sy5cpH8ETMoXk6u23WLb7Fy+j0Ht01f1HCwb9jNKdarmVU9dhNgjdrOS8nXwRUmGi9QETMIX3I8hg2XDHoP6m9JtCl9keXEaudvnVOkFTNAbDeAJ3+35o0o2XDbsgvur0th7507S\/2ycpBN2p3KktC6gd5J+tf+LqOymY6p07uY+EyzoUqClGr1LPlykn6v4j+T\/9LYQLiQd9bHLbZYXa7uAflT8VsxnNe97Fbke\/2AX9JitvHtJv9EVhj4McXuYQYSL9POO9VzSe\/V7V38l6X2WF\/O+u4OshTRRE2x9X0Q37\/s81dlP1sqbqP9WzGdJEwbv0Se7Hvg+E6p3gwmXja27+vdqLipdXHTv1VxA3md5MYv5PHgL1bmai+hHddv3msz73tXW2FyXnwfpnz+bZAMXozdT\/N6MnSS1iNLFZpqebedxal9T+S+0u1ezj9V1inekdjFbSFrY1jab99x2kdWdmve9SvF976qDz4OU+GcC+8d29jhVs11V0t48PDzErkNQduE9UnOnf6TH7V6e+qFmC5C1mgvruofqdcJW8m7e6\/SVw2\/UvPeVpJux34E7fB6kx8\/EjZqfzbrr+gFjNbpwAQDEN7gxFwBA+ggXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAIDjCBQAQHOECAAiOcAEABEe4AACCI1wAAMERLgCA4AgXAEBwhAsAILj\/BzGT04M766irAAAAAElFTkSuQmCC';\nwindow._dgLogoRatio=407\/231;\n\n\/* ---- S\u00c9LECTION DU MODULE ---- *\/\nwindow.dgSelect=function(modId){\n  const mod=MODULES[modId];\n  curMode=modId;\n  Q=mod.Q; D=mod.D; TRAITEMENTS=mod.TRAITEMENTS; NAMES=mod.NAMES; GESTES=mod.GESTES; S=mod.S;\n  cur=0; ans={};\n  render('next');\n};\n\nfunction buildSelectorAnim(){\n  return '<div class=\"dg-sel-title\">'+L.selTitle+'<\/div>'\n    +'<div class=\"dg-sel-grid\">'\n    +'<div class=\"dg-sel-card\" onclick=\"dgSelect(\\'genou\\')\">'\n    +'<div class=\"dg-sel-name\">'+MODULES.genou.selLabel+'<\/div>'\n    +'<div class=\"dg-sel-sub\">'+MODULES.genou.selSub+'<\/div>'\n    +'<\/div>'\n    +'<div class=\"dg-sel-card\" onclick=\"dgSelect(\\'hanche\\')\">'\n    +'<div class=\"dg-sel-name\">'+MODULES.hanche.selLabel+'<\/div>'\n    +'<div class=\"dg-sel-sub\">'+MODULES.hanche.selSub+'<\/div>'\n    +'<\/div>'\n    +'<\/div>';\n}\n\n\/* ---- RENDU ---- *\/\nfunction render(dir){\n  if(curMode!==null && cur>=Q.length){ renderR(); return; }\n  renderScreen(dir);\n}\n\nfunction buildQTop(qi){\n  const pct=Math.round((qi\/Q.length)*100);\n  return '<div class=\"dg-change-area\" onclick=\"dgChangeArea()\">'+L.btnChangeArea+'<\/div>'\n    +'<div class=\"dg-prog-meta\"><span>Question '+(qi+1)+' \/ '+Q.length+'<\/span><span>'+pct+'%<\/span><\/div>'\n    +'<div class=\"dg-prog-wrap\"><div class=\"dg-prog-fill\" style=\"width:'+pct+'%\"><\/div><\/div>';\n}\n\nfunction buildQAnim(qi){\n  const q=Q[qi],sel=ans[qi];\n  return '<div class=\"dg-qtext\">'+esc(q.t)+'<\/div>'\n    +(q.h?'<div class=\"dg-qhint\">'+esc(q.h)+'<\/div>':'')\n    +'<div class=\"dg-options\">'\n    +q.o.map(function(o,i){\n      return '<div class=\"dg-opt'+(sel===i?' selected':'')+'\" onclick=\"dgS('+qi+','+i+')\">'\n        +'<div class=\"dg-radio\"><div class=\"dg-radio-dot\"><\/div><\/div>'\n        +'<span class=\"dg-opt-t\">'+esc(o)+'<\/span><\/div>';\n    }).join('')\n    +'<\/div>';\n}\n\nfunction buildQNav(qi){\n  const sel=ans[qi],last=qi===Q.length-1;\n  const nb=qi===0;\n  return last\n    ?'<hr class=\"dg-nav-sep\"><div class=\"dg-nav dg-nav-desktop-last\">'\n      +'<div class=\"dg-btn-prev\" onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div class=\"dg-cb\" style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div>'\n      +'<div onclick=\"dgPDFandNext()\" style=\"'+NN(sel===undefined)+'\">'+L.btnDownload+'<div style=\"'+CN+'\">'+SN+'<\/div><\/div>'\n      +'<\/div>'\n      +'<div class=\"dg-nav-last\">'\n      +'<div class=\"dg-dl-btn'+(sel===undefined?' disabled':'')+'\" onclick=\"dgPDFandNext()\">'+SDLICO+L.btnDownload+'<\/div>'\n      +'<div class=\"dg-nav-row\"><div class=\"dg-btn-prev\" onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div class=\"dg-cb\" style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div><\/div>'\n      +'<\/div>'\n    :'<hr class=\"dg-nav-sep\"><div class=\"dg-nav\">'\n      +'<div class=\"dg-btn-prev\" onclick=\"dgB()\" style=\"'+NB(nb)+'\"><div class=\"dg-cb\" style=\"'+CB+'\">'+SB+'<\/div>'+L.btnPrev+'<\/div>'\n      +'<div onclick=\"dgN()\" style=\"'+NN(sel===undefined)+'\">'+L.btnNext+'<div style=\"'+CN+'\">'+SN+'<\/div><\/div>'\n      +'<\/div>';\n}\n\nfunction buildChromeTop(){ return curMode===null ? '' : buildQTop(cur); }\nfunction buildChromeNav(){ return curMode===null ? '' : buildQNav(cur); }\nfunction buildAnimContent(){ return curMode===null ? buildSelectorAnim() : buildQAnim(cur); }\n\nfunction renderScreen(dir){\n  const container=el();\n  if(!dir){\n    container.innerHTML='<div id=\"dg-q-top\">'+buildChromeTop()+'<\/div>'\n      +'<div id=\"dg-anim-region\"><div class=\"dg-q-wrap\">'+buildAnimContent()+'<\/div><\/div>'\n      +'<div id=\"dg-q-nav\">'+buildChromeNav()+'<\/div>';\n    return;\n  }\n  if(_transitioning) return;\n  _transitioning=true;\n\n  const topEl=container.querySelector('#dg-q-top');\n  if(topEl) topEl.innerHTML=buildChromeTop();\n  const navEl=container.querySelector('#dg-q-nav');\n  if(navEl) navEl.innerHTML=buildChromeNav();\n\n  const animRegion=container.querySelector('#dg-anim-region');\n  const old=animRegion.querySelector('.dg-q-wrap');\n  if(old) old.classList.add(dir==='next'?'exit-next':'exit-prev');\n  const next=document.createElement('div');\n  next.className='dg-q-wrap '+(dir==='next'?'enter-next':'enter-prev');\n  next.innerHTML=buildAnimContent();\n  animRegion.appendChild(next);\n  setTimeout(function(){ if(old) old.remove(); _transitioning=false; }, 420);\n}\n\nfunction renderR(){\n  const scores={};\n  Object.keys(D).forEach(d=>scores[d]=0);\n  for(let i=0;i<Q.length;i++){\n    const a=ans[i]; if(a===undefined) continue;\n    const s=S[i]; if(!s||!s[a]) continue;\n    for(const [d,p] of Object.entries(s[a])) if(scores[d]!==undefined) scores[d]+=p;\n  }\n  const top=Object.entries(scores).sort((a,b)=>b[1]-a[1]).slice(0,3);\n  const max=top[0][1]||1;\n  const rc=['r1','r2','r3'];\n\n  const ranks=[];\n  top.forEach(([,s],i)=>{\n    if(i===0){ ranks.push(1); return; }\n    ranks.push(top[i-1][1]===s ? ranks[i-1] : i+1);\n  });\n\n  const traitementsHTML=top.map(([n],i)=>{\n    const tr=TRAITEMENTS[n];\n    if(!tr) return '';\n    const conservHTML=tr.conserv.map(t=>`<li>${esc(t)}<\/li>`).join('');\n    const chirHTML=tr.chir.map(t=>`<li>${esc(t)}<\/li>`).join('');\n    return `<div class=\"dg-trait-item\">\n      <div class=\"dg-trait-diag-name\">${ranks[i]}. ${esc(NAMES[n]||n)}<\/div>\n      <div class=\"dg-trait-cols\">\n        <div>\n          <div class=\"dg-trait-col-title\">${esc(L.colConserv)}<\/div>\n          <ul class=\"dg-trait-list\">${conservHTML}<\/ul>\n        <\/div>\n        <div>\n          <div class=\"dg-trait-col-title\">${esc(L.colChir)}<\/div>\n          <ul class=\"dg-trait-list\">${chirHTML}<\/ul>\n        <\/div>\n      <\/div>\n    <\/div>`;\n  }).join('');\n\n  el().innerHTML=`\n    <div class=\"dg-res\">\n      <div class=\"dg-change-area\" onclick=\"dgChangeArea()\">${L.btnChangeArea}<\/div>\n      <div class=\"dg-res-title\">${L.resTitle}<\/div>\n      ${top.map(([n,s],i)=>{\n        const p=Math.round((s\/max)*100);\n        return `<div class=\"dg-diag ${rc[i]}\">\n          <div class=\"dg-d-num\">${ranks[i]}<\/div>\n          <div class=\"dg-d-body\">\n            <div class=\"dg-d-name\">${esc(NAMES[n]||n)}<\/div>\n            <div class=\"dg-d-desc\">${esc(D[n])}<\/div>\n          <\/div>\n          <div class=\"dg-d-right\">\n            <div class=\"dg-d-pct\">${p}%<\/div>\n            <div class=\"dg-d-bar-bg\"><div class=\"dg-d-bar\" style=\"width:${p}%\"><\/div><\/div>\n          <\/div>\n        <\/div>`;\n      }).join('')}\n      <div class=\"dg-traitements-block\">\n        <div class=\"dg-traitements-title\">${esc(L.traitementsLabel)}<\/div>\n        ${traitementsHTML}\n      <\/div>\n      <div class=\"dg-gestes-block\">\n        <div class=\"dg-gestes-label\">${L.gestesLabel}<\/div>\n        <div class=\"dg-gestes-grid\">${GESTES.map(g=>`<div class=\"dg-geste\"><div class=\"dg-geste-dot\"><\/div><span class=\"dg-geste-t\">${esc(g)}<\/span><\/div>`).join('')}<\/div>\n      <\/div>\n      <div class=\"dg-disc\">${L.disc}<\/div>\n      <div style=\"display:flex;justify-content:center;align-items:center;gap:18px;margin-top:26px;flex-wrap:wrap;\">\n        <a href=\"${MODULES[curMode].rdvUrl}\"\n           onclick=\"if(typeof gtag==='function'){gtag('event','rdv_button_clicked',{event_category:'Diagnostic '+'${curMode}',event_label:'Prendre RDV'});}\"\n           style=\"display:inline-flex;align-items:center;gap:10px;padding:10px 26px;background:#b1bdb1;color:#fff;font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:7px;\">${L.btnRdv}<\/a>\n        <div onclick=\"dgR()\" style=\"display:inline-flex;align-items:center;cursor:pointer;padding:4px 0;background:transparent;color:#b1bdb1;font-family:'Arboria',Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;border:none;text-decoration:underline;text-underline-offset:4px;\">${L.btnRestart}<\/div>\n      <\/div>\n    <\/div>`;\n}\n\nwindow.dgPDFandNext=function(){\n  if(ans[cur]===undefined) return;\n  generatePDF();\n  cur++;\n  render('next');\n};\n\nfunction calcScores(){\n  const scores={};\n  Object.keys(D).forEach(d=>scores[d]=0);\n  for(let i=0;i<Q.length;i++){\n    const a=ans[i]; if(a===undefined) continue;\n    const s=S[i]; if(!s||!s[a]) continue;\n    for(const [d,p] of Object.entries(s[a])) if(scores[d]!==undefined) scores[d]+=p;\n  }\n  return scores;\n}\n\n\/* ================================================================\n   G\u00c9N\u00c9RATION PDF\n   ================================================================ *\/\nfunction generatePDF(){\n  if(!window.jspdf){ alert(LANG==='en'?\"PDF library not loaded. Please reload the page.\":\"La librairie PDF ne s'est pas chargee. Rechargez la page.\"); return; }\n  const {jsPDF}=window.jspdf;\n  const mod=MODULES[curMode];\n  const scores=calcScores();\n  const top=Object.entries(scores).sort((a,b)=>b[1]-a[1]).slice(0,3);\n  const max=top[0][1]||1;\n  const doc=new jsPDF({orientation:'portrait',unit:'mm',format:'a4'});\n\n  \/* ---- RANGS EX-AEQUO ---- *\/\n  const pdfRanks=[];\n  top.forEach(([,s],i)=>{\n    if(i===0){ pdfRanks.push(1); return; }\n    pdfRanks.push(top[i-1][1]===s ? pdfRanks[i-1] : i+1);\n  });\n\n  const W=210, M=20;\n  const RED=[177,189,177];\n  const BEIGE=[247,248,246];\n  const LIGHT=[221,227,218];\n  const FOOTER_Y=281;\n  const CONTENT_BOTTOM=FOOTER_Y-4;\n\n  \/* ---- Variables bloc gestes ---- *\/\n  const cw=(W-M*2-12)\/2;\n  const ROW_H=12;\n  const gDotX1=M+5,  gTxtX1=M+12;\n  const gDotX2=M+5+cw+8, gTxtX2=M+12+cw+8;\n  const gTxtW=cw-12;\n  const boxH=Math.ceil(GESTES.length\/2)*ROW_H+14;\n\n  let y=0;\n\n  \/* ---- NETTOYAGE CARACT\u00c8RES ---- *\/\n  function clean(s){\n    return (s||'')\n      .replace(\/\\r?\\n\/g,' ').trim()\n      .replace(\/\\u2013|\\u2014\/g,'-').replace(\/\\u2019|\\u2018\/g,\"'\")\n      .replace(\/\\u00e9|\\u00e8|\\u00ea|\\u00eb\/g,'e').replace(\/\\u00e0|\\u00e2|\\u00e4\/g,'a')\n      .replace(\/\\u00f4|\\u00f6\/g,'o').replace(\/\\u00fb|\\u00f9|\\u00fc\/g,'u')\n      .replace(\/\\u00ee|\\u00ef\/g,'i').replace(\/\\u00e7\/g,'c')\n      .replace(\/\\u00c9|\\u00c8|\\u00ca\/g,'E').replace(\/\\u00c0|\\u00c2\/g,'A')\n      .replace(\/\\u00d4\/g,'O').replace(\/\\u00ce\/g,'I').replace(\/\\u00c7\/g,'C')\n      .replace(\/[^\\x00-\\x7E]\/g,'');\n  }\n\n  \/* ---- HEADER ---- *\/\n  function addHeader(){\n    doc.setFillColor(...RED);\n    doc.rect(0,0,W,26,'F');\n    if(window._dgLogo){\n      const lH=17, lW=lH*window._dgLogoRatio;\n      doc.addImage(window._dgLogo,'PNG',M,4.5,lW,lH);\n    }\n    doc.setTextColor(255,255,255);\n    doc.setFontSize(10.5); doc.setFont('helvetica','bold');\n    doc.text(clean(mod.pdfTitle), W\/2, 12, {align:'center'});\n    doc.setFontSize(7); doc.setFont('helvetica','normal');\n    doc.text('coulinmedical.com', W\/2, 18.5, {align:'center'});\n    doc.setFontSize(7.5);\n    doc.text(new Date().toLocaleDateString(LANG==='en'?'en-GB':'fr-FR'), W-M, 12, {align:'right'});\n    doc.text(clean(L.pdfConfidential), W-M, 18.5, {align:'right'});\n  }\n\n  \/* ---- FOOTER \u2014 disclaimer gras bordeaux centr\u00e9 ---- *\/\n  function addFooter(p,total){\n    doc.setFillColor(...BEIGE);\n    doc.rect(0, FOOTER_Y, W, 16, 'F');\n    doc.setDrawColor(...RED);\n    doc.setLineWidth(0.6);\n    doc.line(0, FOOTER_Y, W, FOOTER_Y);\n    doc.setTextColor(...RED);\n    doc.setFontSize(7.5);\n    doc.setFont('helvetica','bold');\n    doc.text(clean(L.pdfFooter), W\/2, FOOTER_Y+6, {align:'center'});\n    doc.setTextColor(160,152,144);\n    doc.setFontSize(7);\n    doc.setFont('helvetica','normal');\n    doc.text(L.pdfPage(p,total), W-M, FOOTER_Y+11, {align:'right'});\n  }\n\n  \/* ---- EN-T\u00caTE DE SECTION centr\u00e9 verticalement ---- *\/\n  function sectionHeader(num, title, yPos){\n    const bandH=18;\n    doc.setFillColor(...BEIGE);\n    doc.rect(0, yPos, W, bandH, 'F');\n    const cy=yPos + bandH\/2;\n    doc.setFillColor(...RED);\n    doc.circle(M+5, cy, 5.5, 'F');\n    const baseline=cy+1.8;\n    doc.setTextColor(255,255,255);\n    doc.setFontSize(9); doc.setFont('helvetica','bold');\n    doc.text(String(num), M+5, baseline, {align:'center'});\n    doc.setTextColor(...RED);\n    doc.setFontSize(9); doc.setFont('helvetica','bold');\n    doc.text(clean(title), M+15, baseline);\n    const lx=M+15+doc.getTextWidth(clean(title))+5;\n    doc.setDrawColor(...RED);\n    doc.setLineWidth(0.4);\n    doc.line(lx, cy, W-M, cy);\n    return yPos+bandH;\n  }\n\n  \/* ================================================================\n     PAGE 1 \u2014 R\u00c9SULTATS DIAGNOSTIQUES\n     ================================================================ *\/\n  addHeader();\n  y=32;\n  y=sectionHeader(1, L.pdfS2, y);\n  y+=6;\n\n  top.forEach(([name,score],i)=>{\n    const pct=Math.round((score\/max)*100);\n    const displayName=NAMES[name]||name;\n    const descLines=doc.splitTextToSize(clean(D[name]||''), W-M*2-28);\n    const blockH=descLines.length*4.2+28;\n\n    if(i===0){\n      doc.setFillColor(238,241,236);\n      doc.rect(M-2, y-2, W-M*2+4, blockH+4, 'F');\n    }\n\n    const rankColors=[[...RED],[45,45,45],[160,160,160]];\n    doc.setTextColor(...rankColors[i]);\n    doc.setFontSize(28); doc.setFont('helvetica','bold');\n    doc.text(String(pdfRanks[i]), M+5, y+18);\n\n    doc.setFontSize(6.5); doc.setFont('helvetica','bold');\n    doc.text(clean(L.pdfRank[pdfRanks[i]-1]).toUpperCase(), M+17, y+5);\n\n    doc.setFontSize(11.5); doc.setTextColor(18,18,18);\n    doc.setFont('helvetica','bold');\n    doc.text(clean(displayName), M+17, y+12.5);\n\n    doc.setFontSize(7.5); doc.setFont('helvetica','normal');\n    doc.setTextColor(140,140,140);\n    doc.text(descLines, M+17, y+19);\n\n    doc.setFontSize(24); doc.setFont('helvetica','bold');\n    doc.setTextColor(i===0?200:214, i===0?211:216, i===0?199:210);\n    doc.text(pct+'%', W-M, y+14, {align:'right'});\n\n    const bx=M+17, by=y+blockH-4, bw=W-M*2-22, bh=2.5;\n    doc.setFillColor(...LIGHT);\n    doc.rect(bx, by, bw, bh, 'F');\n    doc.setFillColor(...rankColors[i]);\n    doc.rect(bx, by, bw*pct\/100, bh, 'F');\n\n    y+=blockH+5;\n    doc.setDrawColor(...LIGHT);\n    doc.setLineWidth(0.2);\n    doc.line(M, y, W-M, y);\n    y+=6;\n  });\n\n  \/* ================================================================\n     PAGE 2 \u2014 RECOMMANDATIONS & TRAITEMENTS\n     ================================================================ *\/\n  doc.addPage(); addHeader();\n  y=32;\n  y=sectionHeader(2, L.pdfS4, y);\n  y+=6;\n\n  top.forEach(([name],diagIdx)=>{\n    const tr=TRAITEMENTS[name];\n    if(!tr) return;\n    const displayName=clean(NAMES[name]||name);\n\n    if(y+8>CONTENT_BOTTOM){ doc.addPage(); addHeader(); y=32; }\n    doc.setFillColor(...RED);\n    doc.rect(M, y, 3, 8, 'F');\n    doc.setTextColor(...RED);\n    doc.setFontSize(8.5); doc.setFont('helvetica','bold');\n    doc.text(pdfRanks[diagIdx]+'. '+displayName, M+7, y+5.8);\n    y+=12;\n\n    const colW=(W-M*2-10)\/2;\n    const colX1=M, colX2=M+colW+10;\n    const colTitle1=clean(L.colConserv).toUpperCase();\n    const colTitle2=clean(L.colChir).toUpperCase();\n\n    const lines1=tr.conserv.map(t=>doc.splitTextToSize(clean(t), colW-8));\n    const lines2=tr.chir.map(t=>doc.splitTextToSize(clean(t), colW-8));\n    const h1=lines1.reduce((a,l)=>a+l.length*4.2+3,0)+8;\n    const h2=lines2.reduce((a,l)=>a+l.length*4.2+3,0)+8;\n    const blockH=Math.max(h1,h2)+4;\n\n    if(y+blockH+4>CONTENT_BOTTOM){ doc.addPage(); addHeader(); y=32; }\n\n    doc.setFillColor(247,248,246);\n    doc.rect(M, y, W-M*2, blockH, 'F');\n\n    doc.setTextColor(...RED);\n    doc.setFontSize(6.5); doc.setFont('helvetica','bold');\n    doc.text(colTitle1, colX1+4, y+5);\n    doc.setDrawColor(...RED); doc.setLineWidth(0.2);\n    doc.line(colX1+4, y+6.5, colX1+colW-2, y+6.5);\n\n    doc.text(colTitle2, colX2+4, y+5);\n    doc.line(colX2+4, y+6.5, colX2+colW-2, y+6.5);\n\n    let ry1=y+10, ry2=y+10;\n\n    lines1.forEach(lArr=>{\n      doc.setFillColor(...RED);\n      doc.circle(colX1+5, ry1+1.5, 1.5, 'F');\n      doc.setTextColor(55,55,55);\n      doc.setFontSize(7); doc.setFont('helvetica','normal');\n      doc.text(lArr, colX1+9, ry1+2);\n      ry1+=lArr.length*4.2+3;\n    });\n\n    lines2.forEach(lArr=>{\n      doc.setFillColor(...RED);\n      doc.circle(colX2+5, ry2+1.5, 1.5, 'F');\n      doc.setTextColor(55,55,55);\n      doc.setFontSize(7); doc.setFont('helvetica','normal');\n      doc.text(lArr, colX2+9, ry2+2);\n      ry2+=lArr.length*4.2+3;\n    });\n\n    y+=blockH+4;\n    doc.setDrawColor(...LIGHT); doc.setLineWidth(0.2);\n    doc.line(M, y, W-M, y);\n    y+=8;\n  });\n\n  \/* ================================================================\n     PAGE 3 \u2014 PREMIERS GESTES A ADOPTER\n     ================================================================ *\/\n  doc.addPage(); addHeader();\n  y=32;\n  y=sectionHeader(3, L.pdfS3, y);\n  y+=5;\n\n  doc.setDrawColor(...LIGHT);\n  doc.setLineWidth(0.35);\n  doc.rect(M, y, W-M*2, boxH, 'S');\n  doc.setFillColor(...RED);\n  doc.rect(M, y, W-M*2, 2.5, 'F');\n  y+=10;\n\n  GESTES.forEach((g,i)=>{\n    const col=i<3?0:1, row=i%3;\n    const dotX=col===0?gDotX1:gDotX2;\n    const txtX=col===0?gTxtX1:gTxtX2;\n    const cy=y+row*ROW_H;\n    doc.setFillColor(...RED);\n    doc.circle(dotX, cy+1.5, 1.8, 'F');\n    doc.setTextColor(65,65,65);\n    doc.setFontSize(7.5); doc.setFont('helvetica','normal');\n    doc.text(doc.splitTextToSize(clean(g), gTxtW), txtX, cy+2.5);\n  });\n  y+=boxH+8;\n\n  \/* ================================================================\n     REPONSES DU PATIENT\n     ================================================================ *\/\n  if(y+18+10>CONTENT_BOTTOM){ doc.addPage(); addHeader(); y=32; }\n  y=sectionHeader(4, L.pdfS1, y);\n  y+=5;\n\n  const DOT_X=M+4, TXT_X=M+12, TXT_W=W-M-TXT_X-6;\n\n  Q.forEach((q,i)=>{\n    const rep=ans[i]!==undefined?clean(q.o[ans[i]]):clean(L.noAnswer);\n    const qLines=doc.splitTextToSize(clean('Q'+(i+1)+'. '+q.t), W-M*2);\n    const rLines=doc.splitTextToSize(rep, TXT_W);\n    const qH=qLines.length*3.8+3;\n    const rH=rLines.length*4.2+2;\n\n    if(y+qH+rH+4>CONTENT_BOTTOM){ doc.addPage(); addHeader(); y=32; }\n\n    doc.setFillColor(247,248,246);\n    doc.rect(M, y, W-M*2, qH, 'F');\n    doc.setTextColor(...RED);\n    doc.setFontSize(7); doc.setFont('helvetica','bold');\n    doc.text(qLines, M+3, y+3.5);\n    y+=qH+2;\n\n    doc.setFillColor(...RED);\n    doc.circle(DOT_X, y+2.5, 1.5, 'F');\n    doc.setTextColor(45,45,45);\n    doc.setFontSize(7.5); doc.setFont('helvetica','normal');\n    doc.text(rLines, TXT_X, y+3.5);\n    y+=rH+2;\n\n    doc.setDrawColor(...LIGHT); doc.setLineWidth(0.2);\n    doc.line(M, y, W-M, y);\n    y+=4;\n  });\n\n  \/* ---- FOOTERS SUR TOUTES LES PAGES ---- *\/\n  const total=doc.getNumberOfPages();\n  for(let p=1;p<=total;p++){\n    doc.setPage(p);\n    addFooter(p,total);\n  }\n\n  if(typeof gtag==='function'){\n    gtag('event','diagnostic_pdf_downloaded',{event_category:'Diagnostic '+curMode,event_label:'PDF Telecharge'});\n  }\n\n  \/* ---- T\u00c9L\u00c9CHARGEMENT ---- *\/\n  const isIOS=\/iPad|iPhone|iPod\/.test(navigator.userAgent);\n  if(isIOS){\n    const blob=doc.output('blob');\n    window.open(URL.createObjectURL(blob),'_blank');\n  } else {\n    doc.save(mod.pdfFile);\n  }\n}\n\n\/* ---- FONCTIONS GLOBALES ---- *\/\nwindow.dgS=function(qi,i){\n  ans[qi]=i;\n  const isLast=qi===Q.length-1;\n  if(isLast){\n    render('next');\n  } else {\n    cur=qi+1;\n    render('next');\n  }\n};\nwindow.dgN=function(){if(ans[cur]!==undefined){cur++;render('next');}};\nwindow.dgB=function(){if(cur>0){cur--;render('prev');} else {curMode=null; render('prev');}};\nwindow.dgR=function(){curMode=null;cur=0;ans={};el().innerHTML='';render(null);};\nwindow.dgChangeArea=function(){curMode=null;cur=0;ans={};render('prev');};\nrender();\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-322a2cf8 e-con-full e-flex e-con e-parent\" data-id=\"322a2cf8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-7d415af e-con-full e-flex e-con e-child\" data-id=\"7d415af\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3fe6d89 elementor-widget elementor-widget-heading\" data-id=\"3fe6d89\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c0 QUI S'ADRESSE CET OUTIL ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c703a4 elementor-widget elementor-widget-text-editor\" data-id=\"7c703a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Vous ressentez une douleur au genou ou \u00e0 la hanche, apr\u00e8s un traumatisme ou de mani\u00e8re progressive, et vous souhaitez mieux comprendre ce qui pourrait en \u00eatre la cause avant de consulter.<\/p><p>L&rsquo;autodiagnostic s&rsquo;appuie sur les crit\u00e8res utilis\u00e9s en consultation : localisation de la douleur, mode d&rsquo;apparition, gonflement, instabilit\u00e9, contexte sportif ou professionnel. Il vous aide \u00e0 pr\u00e9parer votre rendez-vous et \u00e0 d\u00e9crire pr\u00e9cis\u00e9ment vos sympt\u00f4mes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dd8b6fc e-con-full e-flex e-con e-child\" data-id=\"dd8b6fc\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58cffae elementor-widget elementor-widget-text-editor\" data-id=\"58cffae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>\u26a0 Cet outil ne remplace pas un examen m\u00e9dical. Les r\u00e9sultats sont indicatifs et doivent \u00eatre confirm\u00e9s par un m\u00e9decin. En cas de fi\u00e8vre, d&rsquo;une articulation rouge et chaude, ou d&rsquo;impossibilit\u00e9 de poser le pied, consultez sans attendre.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6909ee4a e-con-full e-flex e-con e-child\" data-id=\"6909ee4a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33e6ba83 elementor-cta--layout-image-left elementor-cta--mobile-layout-image-above elementor-cta--valign-middle elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"33e6ba83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/coulinmedical.com\/wp-content\/uploads\/2026\/10\/modeles-squelettiques-genou-hanche-bureau-1200x800.webp);\" role=\"img\" aria-label=\"Mod\u00e8les anatomiques du genou et de la hanche pos\u00e9s sur un bureau pour l&#039;auto-diagnostic\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2dd4307 e-flex e-con-boxed e-con e-parent\" data-id=\"2dd4307\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e79be1 elementor-widget elementor-widget-heading\" data-id=\"3e79be1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"> CE QUE CONTIENT VOTRE R\u00c9SULTAT<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a6e0dd elementor-widget elementor-widget-html\" data-id=\"0a6e0dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\n     BLOC \u00ab CE QUE CONTIENT VOTRE R\u00c9SULTAT \u00bb \u2014 coulinmedical.com\n     Version 4 colonnes c\u00f4te \u00e0 c\u00f4te.\n     \u00c0 coller dans un widget HTML Elementor.\n     CSS scop\u00e9 sous #cm-resultat : n'affecte rien d'autre sur la page.\n     Typo : Arboria (d\u00e9j\u00e0 install\u00e9e via Elementor Custom Fonts).\n     ============================================================ -->\n<style>\n#cm-resultat, #cm-resultat *, #cm-resultat *::before, #cm-resultat *::after { box-sizing: border-box; }\n#cm-resultat { width: 100%; max-width: 1180px; margin: 0 auto; padding: 30px 24px 0; font-family: 'Arboria', Arial, sans-serif; }\n#cm-resultat .cm-res-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #dde3da; border-bottom: 1px solid #dde3da; }\n#cm-resultat .cm-res-item { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; padding: 36px 24px; text-align: center; border-left: 1px solid #dde3da; }\n#cm-resultat .cm-res-item:first-child { border-left: none; }\n#cm-resultat .cm-res-num { font-family: 'Arboria', Arial, sans-serif; font-size: 13px; font-weight: 700; color: #5f7a5e; }\n#cm-resultat .cm-res-body { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }\n#cm-resultat .cm-res-name { margin: 0; padding: 0; font-family: 'Arboria', Arial, sans-serif; font-size: 12px; line-height: 1.4; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #1a1a1a; overflow-wrap: break-word; }\n#cm-resultat .cm-res-desc { margin: 0; padding: 0; font-family: 'Arboria', Arial, sans-serif; font-size: 15px; line-height: 1.7; font-weight: 300; color: #555555; overflow-wrap: break-word; }\n\n\/* Tablette : 2 x 2 *\/\n@media (max-width: 1024px) {\n  #cm-resultat .cm-res-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n  #cm-resultat .cm-res-item { padding: 30px 24px; }\n  #cm-resultat .cm-res-item:nth-child(odd) { border-left: none; }\n  #cm-resultat .cm-res-item:nth-child(n+3) { border-top: 1px solid #dde3da; }\n}\n\n\/* T\u00e9l\u00e9phone : 1 colonne *\/\n@media (max-width: 600px) {\n  #cm-resultat { padding: 20px 28px 0; }\n  #cm-resultat .cm-res-list { grid-template-columns: minmax(0, 1fr); }\n  #cm-resultat .cm-res-item { padding: 22px 0; border-left: none; }\n  #cm-resultat .cm-res-item:nth-child(n+2) { border-top: 1px solid #dde3da; }\n  #cm-resultat .cm-res-name { font-size: 11px; letter-spacing: 0.06em; }\n  #cm-resultat .cm-res-desc { font-size: 14px; line-height: 1.6; }\n}\n<\/style>\n\n<section id=\"cm-resultat\">\n  <ul class=\"cm-res-list\">\n    <li class=\"cm-res-item\">\n      <span class=\"cm-res-num\">01<\/span>\n      <div class=\"cm-res-body\">\n        <h3 class=\"cm-res-name\">Trois pistes diagnostiques<\/h3>\n        <p class=\"cm-res-desc\">Class\u00e9es par probabilit\u00e9, chacune avec une courte explication.<\/p>\n      <\/div>\n    <\/li>\n    <li class=\"cm-res-item\">\n      <span class=\"cm-res-num\">02<\/span>\n      <div class=\"cm-res-body\">\n        <h3 class=\"cm-res-name\">Traitements possibles<\/h3>\n        <p class=\"cm-res-desc\">Les options conservatrices et chirurgicales habituellement envisag\u00e9es pour chaque piste.<\/p>\n      <\/div>\n    <\/li>\n    <li class=\"cm-res-item\">\n      <span class=\"cm-res-num\">03<\/span>\n      <div class=\"cm-res-body\">\n        <h3 class=\"cm-res-name\">Premiers gestes \u00e0 adopter<\/h3>\n        <p class=\"cm-res-desc\">Repos, glace, positions \u00e0 \u00e9viter : ce que vous pouvez faire en attendant la consultation.<\/p>\n      <\/div>\n    <\/li>\n    <li class=\"cm-res-item\">\n      <span class=\"cm-res-num\">04<\/span>\n      <div class=\"cm-res-body\">\n        <h3 class=\"cm-res-name\">Un PDF pour votre m\u00e9decin<\/h3>\n        <p class=\"cm-res-desc\">R\u00e9sultats, recommandations et l'ensemble de vos r\u00e9ponses, pr\u00eats \u00e0 \u00eatre pr\u00e9sent\u00e9s en consultation.<\/p>\n      <\/div>\n    <\/li>\n  <\/ul>\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fd8a935 e-flex e-con-boxed e-con e-parent\" data-id=\"fd8a935\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-948d0d9 elementor-widget elementor-widget-heading\" data-id=\"948d0d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">QUESTIONS FR\u00c9QUENTES<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a62849 elementor-widget elementor-widget-html\" data-id=\"4a62849\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\n     FAQ \u2014 PAGE AUTODIAGNOSTIC \u2014 coulinmedical.com\n     \u00c0 coller dans un widget HTML Elementor.\n     CSS scop\u00e9 sous #faq-autodiagnostic : n'affecte rien d'autre.\n     Typo : Arboria (Elementor Custom Fonts).\n     ============================================================ -->\n<style>\n#faq-autodiagnostic {\n  --coulin-green: #A8B5A8;\n  --coulin-green-light: rgba(168, 181, 168, 0.45);\n  --coulin-orange: #E58A2B;\n  --coulin-black: #111111;\n\n  position: relative;\n  max-width: 90%;\n  margin: 0 auto;\n  display: flex;\n  align-items: flex-start;\n}\n\n#faq-autodiagnostic *,\n#faq-autodiagnostic *::before,\n#faq-autodiagnostic *::after {\n  box-sizing: border-box;\n}\n\n\/* ---- Colonnes ---- *\/\n#faq-autodiagnostic .faq-col {\n  flex: 1;\n  min-width: 0;\n  display: flex;\n  flex-direction: column;\n  border: 1px solid var(--coulin-green);\n  font-family: \"Arboria\", sans-serif;\n}\n\n#faq-autodiagnostic .faq-col:first-child {\n  border-radius: 12px 0 0 12px;\n  border-right: none;\n  margin-right: 1px;\n}\n\n#faq-autodiagnostic .faq-col:last-child {\n  border-radius: 0 12px 12px 0;\n  border-left: none;\n  margin-left: 1px;\n}\n\n\/* S\u00e9parateur central *\/\n#faq-autodiagnostic::after {\n  content: \"\";\n  position: absolute;\n  left: calc(50% - 0.5px);\n  top: 0;\n  bottom: 0;\n  width: 1px;\n  background: var(--coulin-green);\n  pointer-events: none;\n}\n\n\/* ---- Items ---- *\/\n#faq-autodiagnostic .faq-item {\n  border-bottom: 1px solid var(--coulin-green-light);\n  color: var(--coulin-black);\n}\n\n#faq-autodiagnostic .faq-col .faq-item:last-child {\n  border-bottom: none;\n}\n\n#faq-autodiagnostic .faq-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  width: 100%;\n  min-height: 90px;\n  margin: 0;\n  padding: 26px 22px;\n  gap: 14px;\n  border: none;\n  border-radius: 0;\n  background: transparent;\n  color: var(--coulin-black);\n  text-align: left;\n  cursor: pointer;\n  transition: color 0.2s ease;\n}\n\n#faq-autodiagnostic .faq-header:hover,\n#faq-autodiagnostic .faq-header:focus,\n#faq-autodiagnostic .faq-item.open .faq-header {\n  background: transparent;\n  color: var(--coulin-orange);\n}\n\n#faq-autodiagnostic .faq-header:hover .faq-btn,\n#faq-autodiagnostic .faq-item.open .faq-btn {\n  border-color: var(--coulin-orange);\n  color: var(--coulin-orange);\n}\n\n#faq-autodiagnostic .faq-q {\n  display: block;\n  flex: 1 1 auto;\n  min-width: 0;\n  font-family: \"Arboria\", sans-serif;\n  font-size: 13px;\n  font-weight: 400;\n  line-height: 1.45;\n  letter-spacing: 0.04em;\n  text-transform: uppercase;\n  white-space: normal;\n  overflow-wrap: break-word;\n}\n\n\/* ---- Bouton + ---- *\/\n#faq-autodiagnostic .faq-btn {\n  flex: 0 0 30px;\n  width: 30px;\n  min-width: 30px;\n  height: 30px;\n  min-height: 30px;\n  padding: 0;\n  aspect-ratio: 1 \/ 1;\n  border: 1px solid var(--coulin-green);\n  border-radius: 50%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--coulin-orange);\n  font-size: 20px;\n  font-weight: 300;\n  line-height: 1;\n  background: transparent;\n  transition:\n    border-color 0.2s ease,\n    color 0.2s ease,\n    transform 0.3s ease;\n}\n\n#faq-autodiagnostic .faq-item.open .faq-btn {\n  transform: rotate(45deg);\n}\n\n\/* ---- R\u00e9ponses ---- *\/\n#faq-autodiagnostic .faq-body {\n  max-height: 0;\n  overflow: hidden;\n  padding: 0 22px;\n  color: var(--coulin-black);\n  font-family: \"Arboria\", sans-serif;\n  font-size: 14px;\n  font-weight: 300;\n  line-height: 1.7;\n  transition:\n    max-height 0.35s ease,\n    padding 0.3s ease;\n}\n\n#faq-autodiagnostic .faq-item.open .faq-body {\n  max-height: 600px;\n  padding: 0 22px 22px;\n}\n\n\/* ---- Mobile ---- *\/\n@media (max-width: 640px) {\n  #faq-autodiagnostic {\n    max-width: calc(100% - 40px);\n    flex-direction: column;\n  }\n\n  #faq-autodiagnostic::after {\n    display: none;\n  }\n\n  #faq-autodiagnostic .faq-col {\n    width: 100%;\n  }\n\n  #faq-autodiagnostic .faq-col:first-child {\n    margin-right: 0;\n    border-right: 1px solid var(--coulin-green);\n    border-bottom: none;\n    border-radius: 12px 12px 0 0;\n  }\n\n  #faq-autodiagnostic .faq-col:last-child {\n    margin-left: 0;\n    border-top: 1px solid var(--coulin-green);\n    border-left: 1px solid var(--coulin-green);\n    border-radius: 0 0 12px 12px;\n  }\n\n  #faq-autodiagnostic .faq-header {\n    min-height: auto;\n    padding: 22px 18px;\n  }\n\n  #faq-autodiagnostic .faq-q {\n    font-size: 12px;\n  }\n\n  #faq-autodiagnostic .faq-body {\n    padding: 0 18px;\n    font-size: 15px;\n  }\n\n  #faq-autodiagnostic .faq-item.open .faq-body {\n    padding: 0 18px 20px;\n  }\n}\n<\/style>\n\n<div class=\"faq-outer\" id=\"faq-autodiagnostic\">\n\n  <!-- Colonne gauche -->\n  <div class=\"faq-col\">\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-1\">\n        <span class=\"faq-q\">L\u2019autodiagnostic remplace-t-il une consultation ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-1\">\n        Non. Il vous oriente vers les causes les plus probables \u00e0 partir de\n        vos r\u00e9ponses, mais seul un examen clinique, compl\u00e9t\u00e9 si besoin par une\n        imagerie, permet de poser un diagnostic et de choisir un traitement.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-2\">\n        <span class=\"faq-q\">Comment les r\u00e9sultats sont-ils \u00e9tablis ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-2\">\n        Chaque r\u00e9ponse renforce certaines pathologies selon les crit\u00e8res\n        utilis\u00e9s en consultation : localisation, mode d\u2019apparition,\n        gonflement, instabilit\u00e9, \u00e2ge, activit\u00e9. Les trois pistes les plus\n        coh\u00e9rentes sont affich\u00e9es. Le pourcentage compare chaque piste \u00e0 la\n        premi\u00e8re : ce n\u2019est pas une probabilit\u00e9 m\u00e9dicale.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-3\">\n        <span class=\"faq-q\">Mes r\u00e9ponses sont-elles enregistr\u00e9es ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-3\">\n        Non. Le questionnaire et le PDF sont g\u00e9n\u00e9r\u00e9s directement dans votre\n        navigateur : vos r\u00e9ponses ne sont ni envoy\u00e9es ni conserv\u00e9es par le\n        cabinet. Seules des statistiques de fr\u00e9quentation sont mesur\u00e9es,\n        sans aucune de vos r\u00e9ponses.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-4\">\n        <span class=\"faq-q\">Combien de temps faut-il ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-4\">\n        Comptez quelques minutes : seize questions \u00e0 choix unique. Vous pouvez\n        revenir en arri\u00e8re \u00e0 tout moment pour modifier une r\u00e9ponse.\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n  <!-- Colonne droite -->\n  <div class=\"faq-col\">\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-5\">\n        <span class=\"faq-q\">Que faire du PDF t\u00e9l\u00e9charg\u00e9 ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-5\">\n        Apportez-le \u00e0 votre consultation. Il r\u00e9capitule vos r\u00e9ponses, les\n        pistes \u00e9voqu\u00e9es et les premiers gestes conseill\u00e9s, ce qui aide le\n        m\u00e9decin \u00e0 cibler son examen.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-6\">\n        <span class=\"faq-q\">Que faire si le r\u00e9sultat \u00e9voque une urgence ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-6\">\n        Si le r\u00e9sultat mentionne une arthrite septique, une fracture ou une\n        \u00e9piphysiolyse, ou si vous avez de la fi\u00e8vre, une articulation rouge\n        et chaude ou ne pouvez pas poser le pied, rendez-vous aux urgences\n        sans attendre un rendez-vous.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-7\">\n        <span class=\"faq-q\">Et si le r\u00e9sultat ne correspond pas \u00e0 ce que je ressens ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-7\">\n        C\u2019est possible : certaines douleurs associent plusieurs causes ou se\n        pr\u00e9sentent de fa\u00e7on atypique. Le r\u00e9sultat reste une orientation.\n        Si vos sympt\u00f4mes persistent ou vous inqui\u00e8tent, une consultation\n        permettra de faire le point avec un examen clinique.\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\">\n      <button class=\"faq-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"faq-ad-8\">\n        <span class=\"faq-q\">Puis-je refaire le test ?<\/span>\n        <span class=\"faq-btn\" aria-hidden=\"true\">+<\/span>\n      <\/button>\n      <div class=\"faq-body\" id=\"faq-ad-8\">\n        Oui, autant de fois que vous le souhaitez : pour l\u2019autre\n        articulation, ou si vos sympt\u00f4mes \u00e9voluent avant votre consultation.\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var faq = document.getElementById(\"faq-autodiagnostic\");\n  if (!faq) return;\n\n  var items = faq.querySelectorAll(\".faq-item\");\n\n  items.forEach(function (item) {\n    var header = item.querySelector(\".faq-header\");\n\n    header.addEventListener(\"click\", function () {\n      var isOpen = item.classList.contains(\"open\");\n\n      items.forEach(function (other) {\n        other.classList.remove(\"open\");\n        var h = other.querySelector(\".faq-header\");\n        if (h) h.setAttribute(\"aria-expanded\", \"false\");\n      });\n\n      if (!isOpen) {\n        item.classList.add(\"open\");\n        header.setAttribute(\"aria-expanded\", \"true\");\n      }\n    });\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-292b64d e-flex e-con-boxed e-con e-parent\" data-id=\"292b64d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e83f078 elementor-widget elementor-widget-heading\" data-id=\"e83f078\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">VOS DOULEURS NE PEUVENT PLUS ATTENDRE ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e989aed elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e989aed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-142cc59 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"142cc59\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Le test vous a permis de mieux cerner vos sympt\u00f4mes. Une consultation sp\u00e9cialis\u00e9e est toutefois n\u00e9cessaire pour confirmer leur origine et choisir le traitement le mieux adapt\u00e9.<\/p><p style=\"text-align: center;\">Le Dr Coulin vous re\u00e7oit \u00e0 Gen\u00e8ve pour \u00e9valuer votre situation et d\u00e9finir avec vous une prise en charge personnalis\u00e9e d\u00e8s la premi\u00e8re consultation. Sp\u00e9cialis\u00e9 en chirurgie orthop\u00e9dique de la hanche et du genou, il vous accompagne \u00e0 chaque \u00e9tape de votre parcours.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58b95f elementor-align-justify elementor-mobile-align-justify elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-widget elementor-widget-button\" data-id=\"b58b95f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/coulinmedical.com\/prendre-rendez-vous\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">PRENDRE RDV<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>AUTO-DIAGNOSTIC DE LA HANCHE ET DU GENOU 16 questions pour orienter vos douleurs li\u00e9es \u00e0 la hanche ou au genou. R\u00e9pondez \u00e0 quelques questions sur votre douleur au genou ou \u00e0 la hanche. Vous obtenez les trois pistes diagnostiques les plus probables, les traitements habituellement envisag\u00e9s et les premiers gestes \u00e0 adopter. \u00c0 QUI S&rsquo;ADRESSE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-29047","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/pages\/29047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/comments?post=29047"}],"version-history":[{"count":16,"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/pages\/29047\/revisions"}],"predecessor-version":[{"id":29602,"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/pages\/29047\/revisions\/29602"}],"wp:attachment":[{"href":"https:\/\/coulinmedical.com\/en\/wp-json\/wp\/v2\/media?parent=29047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}