Skip to content

Commit

Permalink
fix(dashboard): statistiques des consultations: les chiffres des type…
Browse files Browse the repository at this point in the history
…s de consultation se basaient sur le total général des consultations, désormais ils se basent sur le total des consultations de chaque type
  • Loading branch information
Arnaud AMBROSELLI committed Oct 3, 2023
1 parent a83adb0 commit b93a88f
Showing 1 changed file with 41 additions and 20 deletions.
61 changes: 41 additions & 20 deletions dashboard/src/scenes/stats/Consultations.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,61 @@ const ConsultationsStats = ({ consultations, personsWithConsultations, filterBas
return `Filtrer par personnes suivies (${personsWithConsultations} personnes concernées par le filtre actuel) :`;
}, [filterPersons, personsWithConsultations]);

const consultationsByType = useMemo(() => {
const _consultationsByType = {};
for (const consultationSetting of organisation.consultations) {
_consultationsByType[consultationSetting.name] = [];
}
for (const consultation of consultations) {
if (!_consultationsByType[consultation.type]) _consultationsByType[consultation.type] = [];
_consultationsByType[consultation.type].push(consultation);
}
return _consultationsByType;
}, [consultations, organisation.consultations]);

return (
<>
<h3 className="tw-my-5 tw-text-xl">Statistiques des consultations</h3>
<div className="tw-flex tw-basis-full tw-items-center">
<Filters title={filterTitle} base={filterBase} filters={filterPersons} onChange={setFilterPersons} />
</div>
<div className="tw-mb-5 tw-flex tw-justify-center">
<Block
data={consultations}
title="Nombre de consultations"
help={`Nombre de consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
<details open>
<summary className="tw-my-8 tw-mx-0">
<h4 className="tw-inline tw-text-xl tw-text-black75">Global</h4>
</summary>
<div className="tw-mb-5 tw-flex tw-justify-center">
<Block
data={consultations}
title="Nombre de consultations"
help={`Nombre de consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
/>
</div>
<CustomResponsivePie
title="Consultations par type"
data={getPieData(consultations, 'type')}
help={`Répartition par type des consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
/>
</div>
<CustomResponsivePie
title="Consultations par type"
data={getPieData(consultations, 'type')}
help={`Répartition par type des consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
/>
<CustomResponsivePie
title="Consultations par statut"
data={getPieData(consultations, 'status')}
help={`Répartition par statut des consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
/>
<CustomResponsivePie
title="Consultations par statut"
data={getPieData(consultations, 'status')}
help={`Répartition par statut des consultations réalisées dans la période définie.\n\nSi aucune période n'est définie, on considère l'ensemble des consultations.`}
/>
</details>
{organisation.consultations.map((c) => {
return (
<div key={c.name}>
<h4 className="tw-my-8 tw-mx-0 tw-text-xl tw-text-black75">Statistiques des consultations de type « {c.name} »</h4>
<details key={c.name}>
<summary className="tw-my-8 tw-mx-0">
<h4 className="tw-inline tw-text-xl tw-text-black75">
Statistiques des consultations de type « {c.name} » ({consultationsByType[c.name]?.length ?? 0})
</h4>
</summary>
<CustomFieldsStats
data={consultations}
data={consultationsByType[c.name]}
customFields={c.fields}
help={(label) => `${label.capitalize()} des consultations réalisées dans la période définie.`}
totalTitleForMultiChoice={<span className="tw-font-bold">Nombre de consultations concernées</span>}
/>
</div>
</details>
);
})}
</>
Expand Down

0 comments on commit b93a88f

Please sign in to comment.