Testez votre IMC et recevez des conseils personnalisés

Veuillez remplir les informations suivantes pour obtenir votre IMC immédiatement.

IMC Intégratif — Analyse & Protocole
Étape 2 sur 3 — Vos coordonnées

Complétez votre fiche patient

Complétez ce court formulaire pour accéder à votre analyse personnalisée.

Données biométriques
2
Vos coordonnées
3
Résultats & Protocole

IMC Intégratif — Analyse & Protocole personnalisé

Médecine intégrative · Nutrition · Protocoles · Recettes · Suivi graphique

Données biométriques

✓ Vos informations ont bien été prises en compte

IMC calculé
kg/m²
Catégorie OMS
Écart objectif
IMC objectif
kg/m²
Métabolisme basal
kcal/jour
TDEE
kcal/jour
Progression vers l'objectif
Suivi graphique du poids
Protocole & Recommandations
Outil à visée informative — ne remplace pas un professionnel de santé · OMS · ANSES · HAS · PREDIMED
`; const pw=window.open('','_blank','width=960,height=760'); if(!pw){alert("Popup bloquée.");return;} pw.document.open();pw.document.write(doc);pw.document.close(); pw.onload=()=>{pw.focus();pw.print();}; setTimeout(()=>{if(pw&&!pw.closed){pw.focus();pw.print();}},900); }/* ══ Utilitaires ══ */ function stab(id,btn){ const map={proto:'tp',nutri:'tn',rec:'tr',men:'tm',sci:'ts'}; Object.values(map).forEach(v=>document.getElementById(v).classList.remove('on')); document.querySelectorAll('.tb').forEach(b=>b.classList.remove('on')); document.getElementById(map[id]).classList.add('on');btn.classList.add('on'); } function imcCat(v){ if(v<16.5)return{c:'Dénutrition sévère',col:'#ff6b6b',r:'< 16.5',risk:'Très élevé'}; if(v<18.5)return{c:'Insuffisance pondérale',col:'#ff9944',r:'16.5–18.4',risk:'Élevé'}; if(v<25)return{c:'Poids normal',col:'#4cdd88',r:'18.5–24.9',risk:'Faible'}; if(v<30)return{c:'Surpoids',col:'#f5c842',r:'25–29.9',risk:'Modéré'}; if(v<35)return{c:'Obésité modérée (I)',col:'#ff7733',r:'30–34.9',risk:'Élevé'}; if(v<40)return{c:'Obésité sévère (II)',col:'#ff5050',r:'35–39.9',risk:'Très élevé'}; return{c:'Obésité morbide (III)',col:'#cc2222',r:'≥ 40',risk:'Extrême'}; } function drawGauge(imc){ ['cbg','cnd','clb'].forEach(id=>{document.getElementById(id).innerHTML='';}); const svg=document.getElementById('cdran'),cx=230,cy=210,ro=170,ri=115; const zones=[{l:'Dénutrition',mn:10,mx:16.5,cl:'#b03030'},{l:'Maigreur',mn:16.5,mx:18.5,cl:'#c97020'},{l:'Normal',mn:18.5,mx:25,cl:'#2e8b50'},{l:'Surpoids',mn:25,mx:30,cl:'#c8a000'},{l:'Obés. I',mn:30,mx:35,cl:'#c05010'},{l:'Obés. II',mn:35,mx:40,cl:'#b02020'},{l:'Obés. III',mn:40,mx:50,cl:'#7a1515'}]; const IMN=10,IMX=50,ia=v=>{const q=(Math.min(Math.max(v,IMN),IMX)-IMN)/(IMX-IMN);return Math.PI+q*Math.PI;},pt=(a,r)=>[cx+r*Math.cos(a),cy+r*Math.sin(a)]; const arc=(a1,a2,R,r2)=>{const[x1,y1]=pt(a1,R),[x2,y2]=pt(a2,R),[x3,y3]=pt(a2,r2),[x4,y4]=pt(a1,r2);const lg=(a2-a1)>Math.PI?1:0;return`M${x1.toFixed(1)},${y1.toFixed(1)} A${R},${R} 0 ${lg},1 ${x2.toFixed(1)},${y2.toFixed(1)} L${x3.toFixed(1)},${y3.toFixed(1)} A${r2},${r2} 0 ${lg},0 ${x4.toFixed(1)},${y4.toFixed(1)} Z`;}; const mkEl=(tag,at)=>{const e=document.createElementNS('http://www.w3.org/2000/svg',tag);Object.entries(at).forEach(([k,v])=>e.setAttribute(k,v));return e;}; const mkT=(txt,x,y,fs,fw,fill,fi)=>{const e=document.createElementNS('http://www.w3.org/2000/svg','text');[['x',x.toFixed(1)],['y',y.toFixed(1)],['text-anchor','middle'],['dominant-baseline','middle'],['font-size',String(fs)],['font-weight',String(fw)],['fill',fill],['font-family','Segoe UI,system-ui,sans-serif']].forEach(([k,v])=>e.setAttribute(k,v));if(fi)e.setAttribute('filter',fi);e.textContent=txt;return e;}; const od=svg.querySelector('defs');if(od)od.remove(); const defs=document.createElementNS('http://www.w3.org/2000/svg','defs'); defs.innerHTML=``; svg.insertBefore(defs,svg.firstChild); const bg=document.getElementById('cbg'),nd=document.getElementById('cnd'),lb=document.getElementById('clb'); bg.appendChild(mkEl('path',{d:arc(Math.PI,2*Math.PI,ro+1,ri-1),fill:'#060f1e'})); zones.forEach(z=>{bg.appendChild(mkEl('path',{d:arc(ia(z.mn),ia(z.mx),ro,ri),fill:z.cl,opacity:'0.95'}));}); [16.5,18.5,25,30,35,40].forEach(v=>{const a=ia(v),[x1,y1]=pt(a,ri),[x2,y2]=pt(a,ro);bg.appendChild(mkEl('line',{x1:x1.toFixed(1),y1:y1.toFixed(1),x2:x2.toFixed(1),y2:y2.toFixed(1),stroke:'rgba(0,0,0,0.6)','stroke-width':'1.5'}));}); zones.forEach(z=>{const a1=ia(z.mn),a2=ia(z.mx),ma=(a1+a2)/2,mr=(ro+ri)/2;const[tx,ty]=[cx+mr*Math.cos(ma),cy+mr*Math.sin(ma)];bg.appendChild(mkT(z.l,tx,ty,11,700,'#fff','url(#sh)'));}); [16.5,18.5,25,30,35,40].forEach(v=>{const a=ia(v),[x1,y1]=pt(a,ro+2),[x2,y2]=pt(a,ro+13);lb.appendChild(mkEl('line',{x1:x1.toFixed(1),y1:y1.toFixed(1),x2:x2.toFixed(1),y2:y2.toFixed(1),stroke:'#ffffffd9','stroke-width':'1.2'}));const[lx,ly]=pt(a,ro+25);lb.appendChild(mkT(v,lx,ly,10.5,600,'#ffffffd9'));}); nd.appendChild(mkEl('circle',{cx,cy,r:String(ri-3),fill:'#070d1a',opacity:'0.95'})); nd.appendChild(mkEl('circle',{cx,cy,r:String(ri-2),fill:'none',stroke:'rgba(245,200,66,.2)','stroke-width':'1'})); const cat=imcCat(imc),na=ia(imc),[nx,ny]=pt(na,ro-8),[blx,bly]=pt(na+Math.PI/2,13),[brx,bry]=pt(na-Math.PI/2,13); nd.appendChild(mkEl('polygon',{points:`${nx.toFixed(1)},${ny.toFixed(1)} ${blx.toFixed(1)},${bly.toFixed(1)} ${cx},${cy} ${brx.toFixed(1)},${bry.toFixed(1)}`,fill:cat.col,filter:'url(#sh2)'})); nd.appendChild(mkEl('circle',{cx,cy,r:'14',fill:cat.col,stroke:'#070d1a','stroke-width':'2.5',filter:'url(#sh2)'})); nd.appendChild(mkEl('circle',{cx,cy,r:'6',fill:'#070d1a'}));nd.appendChild(mkEl('circle',{cx,cy,r:'3',fill:cat.col})); nd.appendChild(mkT(imc.toFixed(1),cx,cy+32,28,700,cat.col,'url(#sh2)')); nd.appendChild(mkT('kg / m²',cx,cy+52,10,400,'#ffffffd9')); nd.appendChild(mkT(cat.c,cx,cy+68,11,700,cat.col,'url(#sh)')); } function initChart(){ if(sch)sch.destroy(); const ctx=document.getElementById('sc').getContext('2d'); const lbs=pts.map(d=>d.dt),vals=pts.map(d=>d.p); const ds=[{label:'Poids',data:vals,borderColor:'#f5c842',backgroundColor:'rgba(245,200,66,.06)',pointBackgroundColor:'#f5c842',pointBorderColor:'#070d1a',pointBorderWidth:2,pointRadius:5,tension:0.35,fill:true}]; if(ST.obj&&!isNaN(ST.obj))ds.push({label:'Objectif',data:Array(Math.max(vals.length,2)).fill(ST.obj),borderColor:'#4caf7d',borderDash:[6,3],pointRadius:0,fill:false,borderWidth:1.5}); sch=new Chart(ctx,{type:'line',data:{labels:lbs,datasets:ds},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{y:{grid:{color:'rgba(255,255,255,0.04)'},ticks:{color:'#ffffffd9',font:{size:11}},border:{color:'rgba(255,255,255,0.07)'}},x:{grid:{display:false},ticks:{color:'#ffffffd9',font:{size:11},maxRotation:40},border:{color:'rgba(255,255,255,0.07)'}}}}}); } function addPt(){ const p=parseFloat(document.getElementById('sp').value),d=document.getElementById('sd').value||new Date().toISOString().slice(0,10); if(!p||isNaN(p)){alert('Entrez un poids valide.');return;} pts=pts.filter(x=>x.dt!==d);pts.push({dt:d,p});pts.sort((a,b)=>a.dt.localeCompare(b.dt)); document.getElementById('sp').value='';initChart(); } function resetPts(){pts=ST.p?[{dt:new Date().toISOString().slice(0,10),p:ST.p}]:[];initChart();} function buildProto(){ const{imc,tdee,gol,p,sex,morph,tt,th}=ST; const cal={perte:Math.round(tdee-500),maintien:Math.round(tdee),prise:Math.round(tdee+300),sante:Math.round(tdee-200)}[gol]; const prot=Math.round(p*(gol==='prise'?2.0:gol==='perte'?1.8:1.6)); const lip=Math.round(cal*0.30/9),glu=Math.round((cal-prot*4-lip*9)/4); const pd={perte:{titre:'Perte de poids — Déficit progressif',items:[`Apport : ${cal} kcal/j (déficit ~500 kcal/j)`,`Protéines : ${prot} g/j (1.8 g/kg)`,`Glucides cycliques : +30% entraînement / −20% repos`,`Chrononutrition : fenêtre 10–12h`,`Hydratation : ${(Math.round(p*35/100)/10).toFixed(1)} L/j`,`LISS 3×45 min/sem + HIIT 1×/sem · Muscu 2–3×/sem`],suivi:'Pesée 1×/sem. Réévaluation 4 sem. Objectif −0,5 kg/sem.'},maintien:{titre:'Maintien — Équilibre durable',items:[`Apport : ${cal} kcal/j`,`Macros : P ${prot}g / L ${lip}g / G ${glu}g`,`Régime méditerranéen (PREDIMED 2018)`,`Activité : 150–300 min/sem (OMS 2020)`,`Sommeil 7–9h · Cohérence cardiaque 3×5 min/j`,`Bilan annuel : glycémie, lipides, Vit D`],suivi:'Pesée 1×/mois. Oscillation < ±2 kg.'},prise:{titre:'Prise de masse — Surplus contrôlé',items:[`Surplus : ${cal} kcal/j (+300 kcal/j)`,`Protéines : ${prot} g/j — 4–5 prises/j`,`Glucides anaboliques autour des séances`,`Résistance 4×/sem · Surcharge progressive`,`Sommeil 8–9h · Créatine 3–5 g/j (niv.A)`,`Bioimpédancemétrie 1×/trimestre`],suivi:'+0,5–1 kg/mois. Réduire si prise graisseuse.'},sante:{titre:'Santé optimisée — Médecine intégrative',items:[`Apport : ${cal} kcal/j`,`ω-3/ω-6 < 1:4 · Mg, Zn, Vit D3+K2, B12`,`JI 16:8 si glycémie stable (Levine 2019)`,`Activité mixte : endurance + renforcement`,`Réduction exposome (plastiques, PE)`,`Bilan : microbiote, TSH, cortisol, CRP-us`],suivi:'Bilan trimestriel marqueurs biologiques.'}}; const d=pd[gol]; let h=`

${d.titre}

    ${d.items.map(i=>`
  • ${i}
  • `).join('')}

${d.suivi}

`; if(morph||(!isNaN(tt)&&tt>0)){const mL={petite:'Petite (gracile)',moyenne:'Moyenne',grosse:'Robuste / athlétique'};const mA={petite:'IMC idéal −1–2 pts vs OMS',moyenne:'Références OMS standard',grosse:'IMC idéal +1–3 pts vs OMS'};const sm=sex==='F'?80:94,se=sex==='F'?88:102;let tl='',rl='';if(!isNaN(tt)&&tt>0){const ts=tt>=se?'⛔ Élevé':tt>=sm?'⚠ Modéré':'✓ Faible';tl=`
  • Tour de taille : ${tt} cm → ${ts}
  • `;}if(!isNaN(tt)&&tt>0&&!isNaN(th)&&th>0){const rth=(tt/th).toFixed(2),rm=sex==='F'?0.85:0.90;rl=`
  • Ratio T/H : ${rth} → ${parseFloat(rth)>rm?'⚠ Élevé':'✓ Normal ≤'+rm}
  • `;}h+=`

    Analyse morphologique

      ${morph?`
    • Ossature : ${mL[morph]} — ${mA[morph]}
    • `:''}${tl}${rl}
    `;} if(imc>=30)h+=`

    ⚠ Accompagnement médical

    IMC ≥ 30 : suivi spécialisé conseillé (HAS 2023).

    `; document.getElementById('tp').innerHTML=h; document.getElementById('tn').innerHTML=`

    Macronutriments

    Protéines
    ${prot}g
    ${(prot/p).toFixed(1)} g/kg
    Lipides
    ${lip}g
    30% kcal
    Glucides
    ${glu}g
    reste cal.

    Total : ${cal} kcal/j · Fibres : 25–35 g/j

    `; let rh='
    '; [{n:'Bowl quinoa–saumon',t:'20 min',k:'480 kcal',m:'P:42g L:18g G:35g',d:'Quinoa 80g, saumon 130g, avocat, épinards, vinaigrette citron.'},{n:'Omelette épinards–feta',t:'10 min',k:'310 kcal',m:'P:28g L:20g G:4g',d:"3 œufs, épinards 80g, feta 30g."},{n:'Soupe miso–tofu',t:'15 min',k:'220 kcal',m:'P:18g L:8g G:20g',d:'Dashi, miso blanc, tofu 100g, wakamé.'},{n:'Curry lentilles corail',t:'25 min',k:'380 kcal',m:'P:22g L:10g G:50g',d:'Lentilles corail, lait de coco, curcuma, gingembre.'},{n:'Smoothie récupération',t:'5 min',k:'350 kcal',m:'P:30g L:8g G:40g',d:"Banane, whey 30g, lait d'amande, chia."},{n:'Salade niçoise',t:'15 min',k:'420 kcal',m:'P:35g L:22g G:18g',d:'Thon, haricots verts, tomates, olives, œuf dur.'}].forEach(r=>{rh+=`

    ${r.n}

    ⏱ ${r.t}🔥 ${r.k}${r.m}

    ${r.d}

    `;}); document.getElementById('tr').innerHTML=rh+'
    '; const md={perte:[{h:'7h00',l:'Petit-déj.',c:'Fromage blanc 0% + myrtilles + avoine · ≈280 kcal'},{h:'10h00',l:'Collation',c:'1 pomme + 15g amandes · ≈130 kcal'},{h:'12h30',l:'Déjeuner',c:'Poulet 120g + riz complet + légumes rôtis · ≈450 kcal'},{h:'16h00',l:'Collation',c:'Yaourt grec + 1 kiwi · ≈130 kcal'},{h:'19h30',l:'Dîner',c:'Poisson vapeur + légumes verts + miso · ≈280 kcal'}],maintien:[{h:'7h30',l:'Petit-déj.',c:'2 œufs + pain complet + ½ avocat · ≈380 kcal'},{h:'10h30',l:'Collation',c:'Fruit + 20g noix · ≈180 kcal'},{h:'12h30',l:'Déjeuner',c:'Bowl quinoa + saumon 130g + crudités · ≈520 kcal'},{h:'16h30',l:'Collation',c:'Smoothie amande + banane + whey · ≈250 kcal'},{h:'19h30',l:'Dîner',c:'Curry lentilles + riz basmati + salade · ≈420 kcal'}],prise:[{h:'7h00',l:'Petit-déj.',c:"4 œufs + avoine 80g + banane + beurre amande · ≈680 kcal"},{h:'10h00',l:'Collation',c:'Whey 30g + lait 300ml + 1 fruit · ≈380 kcal'},{h:'12h30',l:'Déjeuner',c:'Poulet 180g + patate douce 200g · ≈620 kcal'},{h:'15h30',l:'Pré-training',c:'Riz 80g + thon 100g · ≈420 kcal'},{h:'18h30',l:'Post-train.',c:'Whey 40g + banane · ≈320 kcal'},{h:'20h30',l:'Dîner',c:'Viande 150g + légumineuses · ≈450 kcal'}],sante:[{h:'8h00',l:'Petit-déj.',c:'Smoothie vert épinards + pomme + gingembre · ≈280 kcal'},{h:'11h00',l:'Collation',c:'Thé matcha + oléagineux 25g · ≈170 kcal'},{h:'13h00',l:'Déjeuner',c:'Miso + légumes wok + tofu + quinoa 60g · ≈430 kcal'},{h:'16h00',l:'Collation',c:'Infusion curcuma + fruit + chocolat ≥85% · ≈130 kcal'},{h:'19h00',l:'Dîner',c:'Sardines + légumes vapeur + quinoa · ≈380 kcal'}]}; const dm2=md[gol]||md.maintien;const gl={perte:'perte de poids',maintien:'maintien',prise:'prise de masse',sante:'santé optimisée'}; let mh=`
    Menu type${gl[gol]} · ~${cal} kcal
    `; dm2.forEach(r=>{mh+=`
    ${r.h}
    ${r.l}
    ${r.c}
    `;}); document.getElementById('tm').innerHTML=mh; document.getElementById('ts').innerHTML=`

    Références

    • OMS (2004) — Classification IMC
    • Mifflin & St Jeor (1990) — Métabolisme basal
    • ANSES (2019) — Protéines 0.83–2.0 g/kg
    • Levine & Kroemer (2019) — Autophagy. Cell 176(1)
    • Lanhers (2017) — Créatine. Eur J Sport Sci
    • OMS (2020) — Physical activity guidelines
    • HAS (2023) — Obésité adulte
    • PREDIMED (2018) — NEJM 378(25)
    `; }