Covid-19 : la cinquième vague est-elle vraiment différente des précédentes ? – Le Monde

Si, pour l’instant, le nombre de patients admis en soins critiques est relativement limité en France, la dynamique de l’épidémie fait craindre une saturation du système de soin déjà fragilisé par deux ans de crise sanitaire.

Deux infirmières conduisent un patient infecté par le Covid-19 jusqu’au scanner pour une radio des poumons, au poste de soins du service de réanimation médicale de l’hôpital Louis-Pasteur à Colmar, dans le Haut-Rhin, le 1er décembre 2021.

L’épidémie de Covid-19 flambe à nouveau en France, comme dans une grande partie de l’Europe. Lors d’une conférence de presse conjointe, lundi 6 décembre, le premier ministre et le ministre de la santé ont alerté sur cette situation périlleuse et sur une possible congestion des hôpitaux, déjà éprouvés par près de deux ans de crise sanitaire. Toutefois, ont martelé Jean Castex et Olivier Véran, la vaccination d’une grande partie de la population (plus de 88 % des Français de plus de 12 ans ont reçu au moins deux doses de vaccin) change nettement la donne par rapport aux précédentes vagues qui ont frappé le pays.

« Cette situation nous appelle à la lucidité et à la vigilance, sans céder pour autant à je ne sais quel affolement, car, si le nombre de cas est à nouveau très élevé, la situation n’est pas la même qu’il y a un an. (…) Sans la vaccination, nos hôpitaux seraient déjà à des niveaux de saturation équivalents à ce que nous avions lors de la première vague », a résumé M. Castex.

Qu’en est-il réellement ? Peut-on vraiment comparer cette vague à celles qui ont déferlé sur la France en mars et en octobre 2020, puis en mars et en août 2021 ? Cette comparaison a-t-elle d’ailleurs un sens tant les paramètres – saisons, respect des gestes barrières, variants, restrictions en vigueur, etc. – évoluent au gré du temps ?

  • Un nombre de cas quotidien à un très haut niveau

Avec 45 043 nouvelles contaminations au 6 décembre – en moyenne par jour sur les sept jours précédents –, cette cinquième vague a d’ores et déjà dépassé les pics des deux précédentes vagues épidémiques (autour de 24 000 cas à la mi-août et de 35 000 au début d’avril) ; elle se rapproche du pic de novembre 2020 – 47 000 cas quotidiens au début du deuxième confinement.

Ce niveau élevé de circulation du virus se traduit par un taux d’incidence de 445 cas pour 100 000 habitants au niveau national au 4 décembre (contre 502 cas pour 100 000 habitants au début de novembre 2020).

‘) .style(‘display’, ‘block’) .style(‘left’, function() { var graph_pc = d3.mouse(svg_GFra[conteneur].node())[0] / box_width[conteneur], box_px = graph_pc * graph_width[conteneur] + diff_left[conteneur], box_pc = box_px / box_width[conteneur] * 100; return “calc(” + box_pc + “% + 0px)”; }) .style(‘top’, function() { var top = 100 – (moy_tt / max[serie] * 100); return “calc(” + top + “% – 130px)”; }); tooltip[conteneur].append(‘div’) .attr(“class”, ‘chiffre_tt’) .html(function() { return chiffre_tt + type; }) tooltip[conteneur].append(‘div’) .attr(“class”, ‘moy_tt’) .html(function() { return ‘Moy. 7 derniers jours : ‘ + milliers(moy_tt) + ”; }) tooltip[conteneur].append(“div”).attr(“class”, “arrow”) barres_GFra[conteneur].selectAll(“.barre”) .filter(e => e.date == d.date) .classed(“selectionne”, true); }) .on(“mouseout”, function() { tooltip[conteneur].style(“display”, “none”) barres_GFra[conteneur].selectAll(“.barre”) .classed(“selectionne”, false); }) /* height_GFra = width_GFra * ((mobileDec_GFra) ? .6 : .35); height_GFra_morts = width_GFra * ((mobileDec_GFra) ? .6 : .35);*/ } /* on lance une première fois */ function changerDonnees(valeurSwitch) { dureeTrans = 500; dureedelay = 200; if (valeurSwitch != valeurSwitchGlobale) { if (valeurSwitch == “quoti”) { /* les axes */ y_GFra[“graphique_GFra_cas”] = d3.scaleLinear().range([height_GFra, 0]) .domain([0, d3.max(data_totale_GFra, d => d.cas_nouveaux)]); y_GFra[“graphique_GFra_morts”] = d3.scaleLinear().range([height_GFra_morts, 0]) .domain([0, d3.max(data_totale_GFra, d => d.deces_nouveaux)]); /* les lignes */ var ligne_cas = d3.line() .curve(d3.curveBasis) .x(d => x_GFra[“graphique_GFra_cas”](d.date)) .y(d => y_GFra[“graphique_GFra_cas”](d.cas_jour)) .defined(d => d.cas_jour), ligne_morts = d3.line() .curve(d3.curveBasis) .x(d => x_GFra[“graphique_GFra_morts”](d.date)) /*.y(d => y_GFra[“graphique_GFra_morts”](d.deces_jour))*/ .y(function(d, i) { return y_GFra[“graphique_GFra_morts”](d.deces_jour) }); lignes_GFra[“graphique_GFra_cas”].selectAll(“.ligne.rouge”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“d”, ligne_cas); lignes_GFra[“graphique_GFra_morts”].selectAll(“.ligne.noir”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“d”, ligne_morts); /* les barres */ barres_GFra[“graphique_GFra_cas”].selectAll(“.barre.rouge”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.cas_nouveaux)) .attr(“height”, d => height_GFra – y_GFra[“graphique_GFra_cas”](d.cas_nouveaux)) .attr(“data-date”, d => d.dateold) .attr(“data-chiffre”, d => d.cas_nouveaux) .attr(“data-moy”, d => d.cas_jour) .attr(“data-tt”, d => ” nouveaux cas”); barres_GFra[“graphique_GFra_morts”].selectAll(“.barre.noir”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.deces_nouveaux)) .attr(“height”, d => height_GFra_morts – y_GFra[“graphique_GFra_morts”](d.deces_nouveaux)) .attr(“data-date”, d => d.dateold) .attr(“data-chiffre”, d => d.deces_nouveaux) .attr(“data-moy”, d => d.deces_jour) .attr(“data-tt”, d => ” morts”); /* les cercles */ annotations_GFra[“graphique_GFra_morts”].selectAll(“circle.cercle.noir”).each(function(d, i) { d3.select(this) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“cy”, (d, i) => y_GFra[“graphique_GFra_morts”](d.deces_jour)) }) annotations_GFra[“graphique_GFra_cas”].selectAll(“circle.cercle.rouge”).each(function(d, i) { d3.select(this) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“cx”, function(d) { return (d3.select(this).attr(“data-place”) == “premier” ? x_GFra[“graphique_GFra_cas”](d.date) : x_GFra[“graphique_GFra_cas”](date_retard)) }) .attr(“cy”, (d, i) => y_GFra[“graphique_GFra_cas”](d.cas_jour)) }) /* le texte yay */ annotations_GFra[“graphique_GFra_morts”].selectAll(“text.desktop.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.deces_jour) + 4) .text(d => milliers(d.deces_jour) + ” morts”) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.desktop.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.cas_jour) + 4) .text(d => milliers(d.cas_jour) + ” cas”) annotations_GFra[“graphique_GFra_morts”].selectAll(“text.mobile.haut.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.deces_jour) + 4) .text(d => milliers(d.deces_jour)) annotations_GFra[“graphique_GFra_morts”].selectAll(“text.mobile.bas.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.deces_jour) + 24) .text(d => “morts”) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.mobile.haut.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.cas_jour) + 4) .text(d => milliers(d.cas_jour)) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.mobile.bas.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.cas_jour) + 24) .text(d => “cas”) /* les tooltips */ pardessus[“graphique_GFra_morts”].selectAll(“.transparente”) .on(“mouseover”, function(d, i) { var date = clean_date(d.dateold, false, true), chiffre_tt = d[corres_barres[“morts,quotidien”]], moy_tt = d[corres_moy[“morts,quotidien”]], type = corres_tt[“morts,quotidien”]; if (chiffre_tt == “null”) { chiffre_tt = 0; } tooltip[“graphique_GFra_morts”].html(“

” + date + ‘

‘) .style(‘display’, ‘block’) .style(‘left’, function() { var graph_pc = d3.mouse(svg_GFra[“graphique_GFra_morts”].node())[0] / box_width[“graphique_GFra_morts”], box_px = graph_pc * graph_width[“graphique_GFra_morts”] + diff_left[“graphique_GFra_morts”], box_pc = box_px / box_width[“graphique_GFra_morts”] * 100; return “calc(” + box_pc + “% – 0px)”; }) // .style(‘top’, function() { // var top = 100 – (moy_tt / max[“morts,quotidien”] * 100); // var offset = (100 – top) / 100 * 70; // return “calc(” + top + “% – 120px)”; // }); tooltip[“graphique_GFra_morts”].append(‘div’) .attr(“class”, ‘chiffre_tt’) .html(function() { return esp(chiffre_tt) + type; }) tooltip[“graphique_GFra_morts”].append(‘div’) .attr(“class”, ‘moy_tt’) .html(function() { return ‘Moy. 7 derniers jours : ‘ + esp(moy_tt) + ”; }) tooltip[“graphique_GFra_morts”].append(“div”).attr(“class”, “arrow”) barres_GFra[“graphique_GFra_morts”].selectAll(“.barre”) .filter(e => e.date == d.date) .classed(“selectionne”, true); }) .on(“mouseout”, function() { tooltip[“graphique_GFra_morts”].style(“display”, “none”) barres_GFra[“graphique_GFra_morts”].selectAll(“.barre”) .classed(“selectionne”, false); }); pardessus[“graphique_GFra_cas”].selectAll(“.transparente”) .on(“mouseover”, function(d, i) { var date = clean_date(d.dateold, false, true), chiffre_tt = d[corres_barres[“cas,quotidien”]], moy_tt = d[corres_moy[“cas,quotidien”]], type = corres_tt[“cas,quotidien”]; if (chiffre_tt == “null”) { chiffre_tt = 0; } tooltip[“graphique_GFra_cas”].html(“

” + date + ‘

‘) .style(‘display’, ‘block’) .style(‘left’, function() { var graph_pc = d3.mouse(svg_GFra[“graphique_GFra_cas”].node())[0] / box_width[“graphique_GFra_cas”], box_px = graph_pc * graph_width[“graphique_GFra_cas”] + diff_left[“graphique_GFra_cas”], box_pc = box_px / box_width[“graphique_GFra_cas”] * 100; return “calc(” + box_pc + “% – 0px)”; }) .style(‘top’, function() { var top = 100 – (moy_tt / max[“cas,quotidien”] * 100); var offset = (100 – top) / 100 * 70; return “calc(” + top + “% – 110px)”; }); tooltip[“graphique_GFra_cas”].append(‘div’) .attr(“class”, ‘chiffre_tt’) .html(function() { return esp(chiffre_tt) + type; }) tooltip[“graphique_GFra_morts”].append(‘div’) .attr(“class”, ‘moy_tt’) .html(function() { return ‘Moy. 7 derniers jours : ‘ + esp(moy_tt) + ”; }) tooltip[“graphique_GFra_cas”].append(“div”).attr(“class”, “arrow”) barres_GFra[“graphique_GFra_cas”].selectAll(“.barre”) .filter(e => e.date == d.date) .classed(“selectionne”, true); }) .on(“mouseout”, function() { tooltip[“graphique_GFra_cas”].style(“display”, “none”) barres_GFra[“graphique_GFra_cas”].selectAll(“.barre”) .classed(“selectionne”, false); }); setTimeout(function() { /* les axes */ axes_GFra[“graphique_GFra_cas”].select(“.axes.y”) .transition().duration(dureeTrans).ease(easing) .call(d3.axisLeft(y_GFra[“graphique_GFra_cas”]).ticks(5).tickSizeOuter(0) .tickFormat(function(d, i) { if (d > 0) { if (d 0) { if (d d.serie_cas)]); y_GFra[“graphique_GFra_morts”] = d3.scaleLinear().range([height_GFra_morts, 0]) .domain([0, d3.max(data_totale_GFra, d => d.serie_deces)]); /* les lignes */ var ligne_cas = d3.line() .curve(d3.curveBasis) .x(d => x_GFra[“graphique_GFra_cas”](d.date)) .y(d => y_GFra[“graphique_GFra_cas”](d.serie_cas)) .defined(d => d.serie_cas), ligne_morts = d3.line() .curve(d3.curveBasis) .x(d => x_GFra[“graphique_GFra_morts”](d.date)) .y(d => y_GFra[“graphique_GFra_morts”](d.serie_deces)); lignes_GFra[“graphique_GFra_cas”].selectAll(“.ligne.rouge”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“d”, ligne_cas); lignes_GFra[“graphique_GFra_morts”].selectAll(“.ligne.noir”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“d”, ligne_morts); /* les barres */ barres_GFra[“graphique_GFra_cas”].selectAll(“.barre.rouge”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.serie_cas)) .attr(“height”, d => height_GFra – y_GFra[“graphique_GFra_cas”](d.serie_cas)) .attr(“data-date”, d => d.dateold) .attr(“data-chiffre”, d => d.serie_cas) .attr(“data-tt”, d => ” cas confirmés”); barres_GFra[“graphique_GFra_morts”].selectAll(“.barre.noir”) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.serie_deces)) .attr(“height”, d => height_GFra_morts – y_GFra[“graphique_GFra_morts”](d.serie_deces)) .attr(“data-date”, d => d.dateold) .attr(“data-chiffre”, d => d.serie_deces) .attr(“data-tt”, d => ” morts”); /* les cercles */ annotations_GFra[“graphique_GFra_morts”].selectAll(“circle.cercle.noir”).each(function(d, i) { d3.select(this) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“cx”, d => x_GFra[“graphique_GFra_morts”](d.date)) .attr(“cy”, (d, i) => y_GFra[“graphique_GFra_morts”](d.serie_deces)) }) annotations_GFra[“graphique_GFra_cas”].selectAll(“circle.cercle.rouge”).each(function(d, i) { d3.select(this) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“cx”, function(d) { return (d3.select(this).attr(“data-place”) == “premier” ? x_GFra[“graphique_GFra_cas”](d.date) : x_GFra[“graphique_GFra_cas”](date_dernier)) }) .attr(“cy”, (d, i) => y_GFra[“graphique_GFra_cas”](d.serie_cas)) }) /* le texte youhou */ annotations_GFra[“graphique_GFra_morts”].selectAll(“text.desktop.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.serie_deces) + 4) .text(d => milliers(d.serie_deces) + ” morts”) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.desktop.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.serie_cas) + 4) .text(d => milliers(cas_dernier) + ” cas”) annotations_GFra[“graphique_GFra_morts”].selectAll(“text.mobile.haut.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.serie_deces) + 4) .text(d => milliers(d.serie_deces)) annotations_GFra[“graphique_GFra_morts”].selectAll(“text.mobile.bas.noir”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra_morts) .transition().duration(dureeTrans).ease(easing).attr(“delay”, dureedelay) .attr(“y”, d => y_GFra[“graphique_GFra_morts”](d.serie_deces) + 24) .text(d => “morts”) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.mobile.haut.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.serie_cas) + 4) .text(d => milliers(cas_dernier)) annotations_GFra[“graphique_GFra_cas”].selectAll(“text.mobile.bas.rouge”) .transition().duration(dureeTrans).ease(easing) .attr(“y”, -height_GFra) .transition().duration(dureeTrans).ease(easing) .attr(“y”, d => y_GFra[“graphique_GFra_cas”](d.serie_cas) + 24) .text(d => “cas”) /* les tooltips */ pardessus[“graphique_GFra_morts”].selectAll(“.transparente”) .on(“mouseover”, function(d, i) { var date = clean_date(d.dateold, false, true), chiffre_tt = d[corres_barres[“morts,cumulé”]], moy_tt = d[corres_moy[“morts,cumulé”]], type = corres_tt[“morts,cumulé”]; if (chiffre_tt == “null”) chiffre_tt = 0; tooltip[“graphique_GFra_morts”].html(“

” + date + ‘

‘) .style(‘display’, ‘block’) .style(‘left’, function() { var graph_pc = d3.mouse(svg_GFra[“graphique_GFra_morts”].node())[0] / box_width[“graphique_GFra_morts”], box_px = graph_pc * graph_width[“graphique_GFra_morts”] + diff_left[“graphique_GFra_morts”], box_pc = box_px / box_width[“graphique_GFra_morts”] * 100; return “calc(” + box_pc + “% – 0px)”; }) .style(‘top’, function() { var top = 100 – (chiffre_tt / max[“morts,cumulé”] * 100); var offset = (100 – top) / 100 * 70; return “calc(” + top + “% – ” + (120 – offset) + “px)”; }); tooltip[“graphique_GFra_morts”].append(‘div’) .attr(“class”, ‘chiffre_tt’) .html(function() { return esp(chiffre_tt) + type; }) // tooltip[“graphique_GFra_morts”].append(‘div’) // .attr(“class”, ‘moy_tt’) // .html(function() { // return ‘Moy. 7 derniers jours : ‘ + milliers(moy_tt) + ”; // }) tooltip[“graphique_GFra_morts”].append(“div”).attr(“class”, “arrow”) barres_GFra[“graphique_GFra_morts”].selectAll(“.barre”) .filter(e => e.date == d.date) .classed(“selectionne”, true); }) .on(“mouseout”, function() { tooltip[“graphique_GFra_morts”].style(“display”, “none”) barres_GFra[“graphique_GFra_morts”].selectAll(“.barre”) .classed(“selectionne”, false); }); pardessus[“graphique_GFra_cas”].selectAll(“.transparente”) .on(“mouseover”, function(d, i) { var date = clean_date(d.dateold, false, true), chiffre_tt = d[corres_barres[“cas,cumulé”]], moy_tt = d[corres_moy[“cas,cumulé”]], type = corres_tt[“cas,cumulé”]; if (chiffre_tt == “null”) chiffre_tt = 0; tooltip[“graphique_GFra_cas”].html(“

” + date + ‘

‘) .style(‘display’, ‘block’) .style(‘left’, function() { var graph_pc = d3.mouse(svg_GFra[“graphique_GFra_cas”].node())[0] / box_width[“graphique_GFra_cas”], box_px = graph_pc * graph_width[“graphique_GFra_cas”] + diff_left[“graphique_GFra_cas”], box_pc = box_px / box_width[“graphique_GFra_cas”] * 100; return “calc(” + box_pc + “% – 0px)”; }) .style(‘top’, function() { var top = 100 – (chiffre_tt / max[“cas,cumulé”] * 100); var offset = (100 – top) / 100 * 70; return “calc(” + top + “% – ” + (120 – offset) + “px)”; }); tooltip[“graphique_GFra_cas”].append(‘div’) .attr(“class”, ‘chiffre_tt’) .html(function() { return esp(chiffre_tt) + type; }) tooltip[“graphique_GFra_cas”].append(“div”).attr(“class”, “arrow”) barres_GFra[“graphique_GFra_cas”].selectAll(“.barre”) .filter(e => e.date == d.date) .classed(“selectionne”, true); }) .on(“mouseout”, function() { tooltip[“graphique_GFra_cas”].style(“display”, “none”) barres_GFra[“graphique_GFra_cas”].selectAll(“.barre”) .classed(“selectionne”, false); }); /* on attend un poil pour changer les axes */ setTimeout(function() { axes_GFra[“graphique_GFra_cas”].select(“.axes.y”) .transition().duration(dureeTrans).ease(easing) .call(d3.axisLeft(y_GFra[“graphique_GFra_cas”]).ticks(5).tickSizeOuter(0) .tickFormat(function(d, i) { if (d > 0) { if (d 0) { if (d er” : parseInt(tab[0])) + ” ” + mois[parseInt(tab[1])] + (year ? annee : “”); } else { var mois = [“”, “jan.”, “fév.”, “mars”, “avr.”, “mai”, “juin”, “juil.”, “août”, “sept.”, “oct.”, “nov.”, “déc.”]; return (parseInt(tab[0]) == 1 ? parseInt(tab[0]) + “er” : parseInt(tab[0])) + ” ” + mois[parseInt(tab[1])] + (year ? annee : “”); } } function esp(nStr) { nStr += ”; x = nStr.split(‘.’); x1 = x[0]; x2 = x.length > 1 ? ‘.’ + x[1] : ”; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, ‘$1’ + ‘ ‘ + ‘$2’); } return x1 + x2; } function post19mai(date) { var post = false; var jour = parseInt(date.split(“/”)[0]), mois = parseInt(date.split(“/”)[1]), annee = parseInt(date.split(“/”)[2]); if (annee == 20 && mois == 5 && jour >= 19) post = true; else if (annee == 20 && mois > 5) post = true; else if (annee > 20) post = true; return post; } function formatDate(date) { dateTempFra = date.split(“-“); return dateTempFra[2] + “/” + dateTempFra[1] + “/” + dateTempFra[0].slice(2, 4); } function date(n, short, only, lastYear) { const options = { weekday: ‘long’, year: ‘numeric’, month: short == true ? “short” : ‘long’, day: ‘numeric’ }; var txt = n.toLocaleDateString(undefined, options).split(” “); let year_str = short == true ? txt[3].substring(2) : txt[3]; if (only == true) return txt[3] else if (n.getMonth() + 1 == 1 && lastYear 2020) return txt[2].replace(“janv.”, “jan.”) + ” ” + year_str; else return txt[2] }
});

Comparer les vagues est un exercice difficile, notamment parce qu’elles n’ont pas été causées par les mêmes variants, n’ont pas lieu aux mêmes saisons, etc. L’épidémiologiste Mircea Sofonea, chercheur au sein du laboratoire maladies infectieuses et vecteurs de l’université de Montpellier, avance comme causes de cette cinquième vague « le relâchement des gestes barrières, la saison hivernale et les journées plus courtes qui poussent les gens à rester à l’intérieur ou encore l’efficacité vaccinale en baisse au cours du temps ». Surtout, le variant Delta, nettement plus contagieux que les souches qui l’ont précédé, est désormais responsable de la quasi-totalité des infections en France.

Pour Daniel Lévy-Bruhl, responsable de l’unité infections respiratoires et vaccination de Santé publique France, « le variant Delta a changé la donne de manière générale, mais plus spécifiquement en ce qui concerne la part des enfants. La vaccination a, en effet, permis de contrôler les effets de ce variant chez les adultes, mais pas chez les enfants, trop jeunes pour être vaccinés. On ne peut donc plus parler de la faible contribution des enfants à la circulation virale ». En effet, l’incidence est deux fois plus forte chez les enfants de 6 à 10 ans (978 cas pour 100 000 au 4 décembre – en moyenne par jour sur les sept jours précédents) que dans l’ensemble de la population (444 contaminations pour 100 000 habitants), bien que le taux de dépistage de cette classe d’âge soit trois fois plus élevé que pour l’ensemble de la population (18 810, contre 6 936, pour 100 000 habitants).

  • Un dépistage important

Le nombre de cas détectés dépend directement de la politique de tests en vigueur. « Plus on va tester, plus on va générer du positif et mesurer des asymptomatiques », résume M. Lévy-Bruhl. Au début de la pandémie, par exemple, au printemps 2020, le dépistage était très réduit. Alors que plus de 7 000 personnes étaient en réanimation, le nombre de cas détectés était particulièrement bas, les tests étant essentiellement pratiqués sur les cas graves.

Aujourd’hui, plus de 700 000 tests sont pratiqués quotidiennement. Comme on dépiste à grande échelle, y compris chez des personnes peu symptomatiques ou asymptomatiques, il est donc logique que le nombre de cas soit très élevé, tout comme le taux d’incidence.

Le taux de positivité (nombre de cas rapporté au nombre de tests) subit, logiquement, une inflexion à la baisse : il n’atteint pas les niveaux des vagues précédentes. Il y a aujourd’hui 6,4 % de tests positifs, contre près de 16 % en novembre 2020 et plus de 9 % en avril. Il était de 4 % cet été, au moment où le passe sanitaire est entré en vigueur et où le nombre de tests avait atteint son maximum.

  • Des hospitalisations contenues… pour le moment

A l’heure actuelle, le nombre d’hospitalisations, notamment en soins critiques, reste à un niveau contenu par rapport aux vagues précédentes. On note pourtant une progression constante du nombre de patients en soins critiques. Un peu plus de 2 400 personnes sont aujourd’hui soignées dans des unités de soins critiques : selon les modélisations de l’Institut Pasteur, elles pourraient être 3 000 dans deux semaines.

” htContexte += “

” + dicoTypo[key][1].replace(“||”, dicoTypo[key][2] + ” “) + “

” htContexte += “

” $(“#d_” + key + ” .lecontexte”).html(htContexte) /* on range les div */ $(‘#d_’ + key + ‘ .lesgraphes div.quart’).sort(function(a, b) { return $(b).data(‘dernier’) – $(a).data(‘dernier’); }).appendTo(‘#d_’ + key + ‘ .lesgraphes’); }) /* on supprime les div qui sont vides, mais aussi le menu du haut */ $(“#contenanttotal .lesgraphes”).each(function(i, d) { combienDeDiv = $(this).children().length identification = $(this).parent().attr(“id”).split(“_”)[1] if (combienDeDiv === 0) { $(this).parent().remove() $(‘li[data-ancre=’ + identification + ‘]’).remove(); } }) } /* l’événement pour remettre la recherche à zéro */ $(document).on(‘input’, ‘.clearable’, function() { $(this)[tog(this.value)](‘x’); }).on(‘mousemove’, ‘.x’, function(e) { $(this)[tog(this.offsetWidth – 18 = x.length) currentFocus = 0; if (currentFocus ” + arr[i].substr(0, val.length) + “”; b.innerHTML += arr[i].substr(val.length); b.innerHTML += ““; b.addEventListener(“click”, function(e) { inp.value = this.getElementsByTagName(“input”)[0].value; /* ici je lance la fonction de création du graphique */ afficherOuBienDept(inp.value) closeAllLists(); }); a.appendChild(b); } } }); inp.addEventListener(“keydown”, function(e) { var x = document.getElementById(this.id + “autocomplete-list”); if (x) x = x.getElementsByTagName(“div”); if (e.keyCode == 40) { currentFocus++; addActive(x); } else if (e.keyCode == 38) { currentFocus–; addActive(x); } else if (e.keyCode == 13) { e.preventDefault(); if (currentFocus > -1) { if (x) x[currentFocus].click(); } } }); } completerAutomatiquement(document.getElementById(“recherchedept”), rechercheDansLesDept); });

Pour Daniel Lévy-Bruhl, « en matière d’incidence, c’est une vague importante. En matière d’hospitalisation, c’est, à ce stade, une vague beaucoup moins importante que celle à laquelle on aurait pu s’attendre en se basant sur les données d’incidence ». Il précise : « Il y a une dissociation entre la dynamique épidémique liée aux nouvelles infections et la dynamique épidémique liée aux nouvelles hospitalisations, et c’est bien entendu la vaccination qui en est à l’origine. Quand on regarde les courbes, on voit qu’on est au-delà du pic de ce qu’on a appelé la quatrième vague, au-delà du pic de ce qu’on a appelé la troisième vague et très proches du pic de la deuxième vague (à l’automne 2020), avec des capacités de tests déjà importantes à l’époque. En revanche, l’image n’est pas du tout la même quand on regarde la courbe des hospitalisations : on se retrouve à peu près au même niveau que la quatrième vague, qui était une petite vague cet été, et très au-dessous de ce qu’on a observé lors des deuxième et troisième vagues. »

Si l’on superpose les courbes d’incidence et d’hospitalisation de l’actuelle vague à celles de la vague qui a frappé le pays à l’automne 2020, on constate qu’à incidence égale le nombre d’hospitalisations est moindre.

” texteGraphe += “

Le “+ dateLisible_vague_5 +”, il y avait ” + milliers(derniersCas) + ” cas et ” + milliers(derniersHosps) + ” hospitalisation” + ((derniersHosps >= 2) ? “s” : “”) texteGraphe += “ en moyenne, contre “+ milliers(casVague2)+” cas et ” + milliers(hospsVague2) + ” hospitalisation” + ((derniersHosps >= 2) ? “s” : “”) + “ au même stade de la deuxième vague, soit le ” + dateLisible_vague_2 + “.” texteGraphe += “

” texteGraphe += “” texteGraphe += “” texteGraphe += “

La comparaison dans le temps de ces deux vagues a été calibrée de sorte à ce que la distance entre les deux courbes (en nombre de cas) soit la plus faible. L’origine temporelle arbitraire de la vague actuelle (J0) a été fixée au 23 octobre 2021, correspondant au 14 septembre 2020 pour la deuxième vague. ” + “Par ailleurs, les autres vagues ne sont pas aussi similaires à la vague actuelle (toujours en nombre de cas).

” $(cible).html(texteGraphe); /* on crée le SVG */ svg = d3.select(cible + ” .legraphe”) .append(“svg”) .attr(“width”, “100%”) .attr(“viewBox”, “0 0 ” + (width + margin.left + margin.right) + ” ” + (height + margin.top + margin.bottom)) .append(“g”) .attr(“transform”, “translate(” + margin.left + “,” + margin.top + “)”); var rectfond = svg.append(“g”), axes = svg.append(“g”).attr(“class”, “axes”), cas_1 = svg.append(“g”).attr(“class”, “aires”), hosps_1 = svg.append(“g”).attr(“class”, “aires”), cas_2 = svg.append(“g”).attr(“class”, “aires”), hosps_2 = svg.append(“g”).attr(“class”, “aires”), annotations = svg.append(“g”).attr(“class”, “annotations”); /* les aires et les courbes */ cas_1.append(“path”) .data([dataLigne]) .attr(“class”, “d_ligne cas cas_1”) .attr(“stroke-linecap”, “round”) .attr(“d”, ligne_cas1); cas_1.selectAll(“.bubulle.cas”) .data(dataLigne) .enter() .filter((d, i) => (i == 0 || i == dataLigne.length – 1)) .append(“circle”) .attr(“class”, “bubulle cas cas_1”) .attr(“cx”, d => x(d.jour)) .attr(“cy”, d => y_cas(d.casmoy_vague2)) .attr(“r”, radius); cas_2.append(“path”) .data([dataLigneVague5]) .attr(“class”, “d_ligne cas cas_2”) .attr(“stroke-linecap”, “round”) .attr(“d”, ligne_cas2); cas_2.selectAll(“.bubulle.cas”) .data(dataLigneVague5) .enter() .filter((d, i) => (i == 0 || i == dataLigneVague5.length – 1)) .append(“circle”) .attr(“class”, “bubulle cas cas_2”) .attr(“cx”, d => x(d.jour)) .attr(“cy”, d => y_cas(d.casmoy_vague5)) .attr(“r”, radius); hosps_1.append(“path”) .data([dataLigne]) .attr(“class”, “d_ligne morts morts_1”) .attr(“stroke-linecap”, “round”) .attr(“d”, ligne_hosps_1); hosps_1.selectAll(“.bubulle.morts”) .data(dataLigne) .enter() .filter((d, i) => (i == 0 || i == dataLigne.length – 1)) .append(“circle”) .attr(“class”, “bubulle morts morts_1”) .attr(“cx”, d => x(d.jour)) .attr(“cy”, d => y_hosps(d.hospsmoy_vague2)) .attr(“r”, radius); hosps_2.append(“path”) .data([dataLigneVague5]) .attr(“class”, “d_ligne morts morts_2”) .attr(“stroke-linecap”, “round”) .attr(“d”, ligne_hosps_2); hosps_2.selectAll(“.bubulle.morts”) .data(dataLigneVague5) .enter() .filter((d, i) => (i == 0 || i == dataLigneVague5.length – 1)) .append(“circle”) .attr(“class”, “bubulle morts morts_2”) .attr(“cx”, d => x(d.jour)) .attr(“cy”, d => y_hosps(d.hospsmoy_vague5)) .attr(“r”, radius); /* la grille horizontale */ function make_y_cas_gridlines() { return d3.axisLeft(y_cas) .tickValues(valeursTicks) } function make_y_morts_gridlines() { return d3.axisLeft(y_hosps) .tickValues(valeursTickHosps) } svg.append(“g”) .attr(“class”, “grid”) .call(make_y_cas_gridlines() .tickSizeOuter(0) .tickSize(-width – 10) .tickFormat(“”) ); svg.append(“g”) // .attr(“transform”, “translate(0,” + ((demiHauteur)) + “)”) .attr(“class”, “grid”) .call(make_y_morts_gridlines() .tickSizeOuter(0) .tickSize(-width – 10) .tickFormat(“”) ); /* l’axe des abscisses */ axes.append(“g”) .attr(“transform”, “translate(0,” + ((demiHauteur) + 4) + “)”) .attr(“class”, “axes x passelect”) .call(d3.axisTop(x).tickSizeOuter(0).tickValues(jourTicks).tickSize(8).tickFormat(function(d, i) { return “J” + (d>0? “+”:””) + d })); axes.append(“text”) .attr(“transform”, “translate(“+ (width + margin.left) + “,” + (demiHauteur – 30) + “)”) .attr(“text-anchor”, “end”) .attr(“style”, “fill:#6c6c6c; font-size:12px”) .text(“Nombre de cas”); axes.append(“text”) .attr(“transform”, “translate(“+ (width + margin.left) + “,” + (demiHauteur + 30) + “)”) .attr(“text-anchor”, “end”) .attr(“style”, “fill:#6c6c6c; font-size:12px”) .attr(“class”, “axis_title”) .text(“Nombre d’hospitalisations”); /* l’axe des ordonnées */ axes.append(“g”) .attr(“class”, “axes y cas passelect”) .attr(“transform”, “translate(10,-8)”) .call(d3.axisLeft(y_cas).tickValues(valeursTicks).tickSizeOuter(0) .tickFormat(function(d, i) { monTick = milliers(d) if (d == valeursTicks[valeursTicks.length – 1]) { monTick += ” cas” /* pour 100 000 hab.*/ } if (d > 0 && String(d).indexOf(“.”) == -1) { return monTick } })); /* celui du bas, avec les morts */ axes.append(“g”) .attr(“class”, “axes y morts passelect”) .attr(“transform”, “translate(10,” + (-8) + “)”) .call(d3.axisLeft(y_hosps).tickValues(valeursTickHosps).tickSizeOuter(0) .tickFormat(function(d, i) { monTick = milliers(d) if (d == valeursTickHosps[valeursTickHosps.length – 1]) { monTick += ” hospitalisations” /* pour 1 million d’hab.*/ } if (d > 0 && String(d).indexOf(“.”) == -1) { return monTick } })); } /* ici on lance la première fois ↓↓↓ */ lancerLaBoucle(); /* et si on redimensionne */ window.onresize = lancerLaBoucle; });

  • Ce qu’a changé la vaccination

« Si on n’avait pas la vaccination aujourd’hui, avec le niveau d’incidence auquel nous sommes, nous ne ferions pas face », note Daniel Lévy-Bruhl. En effet, parmi les personnes hospitalisées, celles qui ne sont pas vaccinées sont 11 fois plus nombreuses en soins critiques que celles qui ont reçu au moins deux doses, selon les données compilées par la direction de la recherche, des études, de l’évaluation et des statistiques. Autrement dit, s’il y avait la même proportion de personnes vaccinées que de personnes non vaccinées admises en soins critiques, il y aurait environ 500 admissions quotidiennes, contre 100 enregistrées en moyenne sur la période considérée, du 15 au 21 novembre.

Comment les admissions en soins critiques évolueront-elles ? « Le vaccin protège à 85 % contre le risque d’hospitalisation, ce qui laisse toujours un faible risque d’aller à l’hôpital en cas d’infection. Appliqué au pays entier et avec les non-vaccinés, cela représente encore beaucoup de monde. Il y a donc un risque de saturation des services hospitaliers en période de vague épidémique. D’où la recommandation de la troisième dose et – surtout – de continuer à mobiliser les personnes non vaccinées. Car les non-vaccinés seront infectés ! La question n’est pas “si”, mais “quand et sous quelle forme” », résume Judith Mueller, médecin épidémiologiste, professeure à l’Ecole des hautes études en santé publique.

  • Le R effectif très haut n’incite pas à l’optimisme

Pour anticiper la dynamique de l’épidémie, un outil utilisé par les épidémiologistes est le R effectif (abrégé « Re », taux de reproduction effectif du virus). On estime qu’un individu porteur du virus contaminait à son tour, en moyenne, à la fin de novembre, 1,35 personne. « Cet indicateur a une validité de deux semaines, il permet de prévoir avec dix jours d’avance ce qui va se passer à l’hôpital, en somme », explique Mircea Sofonea, qui ajoute : « La durée de la période pendant laquelle le taux de reproduction est supérieur à 1 est un bon prédicteur de la tension hospitalière à venir. Quand il s’agit d’un jour ou deux, l’impact sur l’hôpital n’est pas conséquent. Si, en revanche, ce nombre est consolidé sur une semaine, on peut commencer à prévenir les hôpitaux que les admissions vont fortement augmenter. »

C’est précisément ce qui se joue en ce moment, selon l’épidémiologiste. Si la troisième dose est essentielle pour faire baisser le Re et aura des effets à moyen terme, tout comme de nouvelles mesures « non pharmaceutiques », sa généralisation arrive probablement trop tard pour éviter une saturation des services hospitaliers au moment des fêtes, dans à peine deux semaines.

Re à partir des cas : ${cas}

Re à partir des hospitalisations : ${hosp}

Re à partir des admissions en soins critiques : ${crit}

Re à partir des morts : ${mort}

`; tooltipr.html(myHtml) .style(‘display’, ‘block’) .style(‘left’, function() { if (d3.event.pageX

En se basant sur les projections de l’Institut Pasteur, le pic d’hospitalisation devrait être atteint en janvier 2022. « Ce pic peut varier et dépend bien sûr de nombreux éléments (si les gens viennent faire leur troisième dose dès cinq mois ou attendent sept mois, comment le télétravail est vraiment suivi, l’effet vacances…). Mais la vraie question, selon moi, est : comment vont les hôpitaux ? C’est une quatrième vague d’ampleur qui s’annonce pour eux – celle de l’été ayant été assez mineure –, alors que leurs effectifs sont réduits, et la fatigue très grande », redoute Mme Mueller.

Pour faire face à cette pression grandissante, les plans blancs ont été déclenchés dans les hôpitaux de nombreuses régions de France, alors que le variant Omicron se répand avec son lot d’incertitudes, tant sur son possible échappement aux vaccins que sur la virulence qui demeure incertaine. « Les cas observés pour le moment ne s’avèrent pas plus sévères », observe Mme Mueller.

Dans la même rubrique

Source

Share your thoughts