Skip to content

Commit

Permalink
Mise en place de la comparaison entre deux inventaires
Browse files Browse the repository at this point in the history
  • Loading branch information
NerOcrO committed May 16, 2024
1 parent 9ac2968 commit 6ba698d
Show file tree
Hide file tree
Showing 23 changed files with 1,527 additions and 138 deletions.
2 changes: 1 addition & 1 deletion public/img/logo-ministere.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/app/(connecte)/(both)/inventaire/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ type PageProps = Readonly<{
searchParams?: SearchParams
}>

export default async function Page({ searchParams }: PageProps): Promise<ReactElement> {
export default async function PageInventaire({ searchParams }: PageProps): Promise<ReactElement> {
if (searchParams?.nomEtablissement === undefined || searchParams.nomInventaire === undefined) {
notFound()
}
Expand Down
75 changes: 75 additions & 0 deletions src/app/(connecte)/(utilisateur)/tableau-comparatif/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { Metadata } from 'next'
import { notFound } from 'next/navigation'
import { ReactElement } from 'react'

import { getProfilAtih } from '../../../../authentification'
import Breadcrumb from '../../../../components/sharedComponents/Breadcrumb'
import TableauComparatif from '../../../../components/TableauComparatif/TableauComparatif'
import { tableauComparatifPresenter } from '../../../../presenters/tableauComparatifPresenter'
import { recupererLesIndicateursImpactsEquipementsRepository } from '../../../../repositories/indicateursRepository'
import { recupererLesModelesRepository } from '../../../../repositories/modelesRepository'

const title = 'Tableau comparatif'
export const metadata: Metadata = {
title,
}

type PageProps = Readonly<{
searchParams?: Readonly<{
inventaireCompare?: string
inventaireReference?: string
}>
}>

export default async function PageTableauComparatif({ searchParams }: PageProps): Promise<ReactElement> {
if (searchParams?.inventaireCompare === undefined || searchParams.inventaireReference === undefined) {
notFound()
}

const profil = await getProfilAtih()

if (profil.isAdmin) {
notFound()
}

const indicateursImpactsEquipementsCompareModel = await recupererLesIndicateursImpactsEquipementsRepository(
profil.nomEtablissement,
searchParams.inventaireCompare
)

if (indicateursImpactsEquipementsCompareModel.length === 0) {
notFound()
}

const indicateursImpactsEquipementsReferenceModel = await recupererLesIndicateursImpactsEquipementsRepository(
profil.nomEtablissement,
searchParams.inventaireReference
)

if (indicateursImpactsEquipementsReferenceModel.length === 0) {
notFound()
}

const modelesCompareModel = await recupererLesModelesRepository(profil.nomEtablissement, searchParams.inventaireCompare)
const modelesReferenceModel = await recupererLesModelesRepository(profil.nomEtablissement, searchParams.inventaireReference)

return (
<>
<Breadcrumb label={title} />
<TableauComparatif
presenterCompare={tableauComparatifPresenter(
indicateursImpactsEquipementsCompareModel,
modelesCompareModel,
profil.nomEtablissement,
searchParams.inventaireCompare
)}
presenterReference={tableauComparatifPresenter(
indicateursImpactsEquipementsReferenceModel,
modelesReferenceModel,
profil.nomEtablissement,
searchParams.inventaireReference
)}
/>
</>
)
}
291 changes: 288 additions & 3 deletions src/components/Cgu/Cgu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,293 @@ import { ReactElement } from 'react'

export default function Cgu(): ReactElement {
return (
<h1>
A rédiger
</h1>
<>
<h1>
Conditions Générales d’Utilisation Service de calcul d’impact environnemental du système d’information de santé, EvalCarbone SIH
</h1>
<h2>
Article 1. Objet
</h2>
<p>
Le service de calcul EvalCarbone SIH désigne la plateforme qui permet aux établissements sanitaires
et médico-sociaux de mesurer l’impact environnemental de leur système d’information, ci-dessous dénommé « le Service ».
<br />
Le système d’information, objet de l’évaluation par le Service, est dénommée ci-dessous par le terme “SIH” (Système d’information hospitalier).
<br />
Le terme “Utilisateurs” désigne les personnels en établissements de santé ou médico-social titulaires d’un compte leur permettant d’accéder au Service.
<br />
Le Ministère du travail de la santé et des solidarités assume la qualité d’éditeur du Service (ci-après « l’Editeur »),
au sens de la Loi n° 2004-575 du 21 juin 2004 pour la Confiance dans l’Economie Numérique modifiée,
pour les Contenus qu’elle détermine et à l’exclusion du Contenu fourni par le Partenaire Editeur.
<br />
L’Agence du Numérique en Santé assure la mise en œuvre du Service (ci-après l’Opérateur »).
<br />
Les présentes Conditions ont pour objet de :
</p>
<div className="wysiwyg mb-2">
<ul>
<li>
déterminer les conditions d’utilisation du Service ;
</li>
<li>
définir les obligations de l’Editeur, de l’Opérateur et des Utilisateurs dans le but de garantir la préservation des systèmes et des données ;
</li>
<li>
informer les Utilisateurs des traitements de données à caractère personnel réalisés pour leur permettre d’accéder au Service.
</li>
</ul>
</div>
<h2>
Article 2. Accès au Service
</h2>
<h3>
2.2 Prérequis : création de compte dans le fournisseur d’identité ATIH
</h3>
<p>
L’accès au Service en tant qu’Utilisateur nécessite la création d’un compte auprès du fournisseur d’identité de l’ATIH
(Agence technique de l’information hospitalière), désigné ci-après « Fournisseur d’identité ».
<br />
Le Fournisseur d’identité permet aux Utilisateurs de créer un compte pour accéder aux services numériques proposés par l’ATIH
en utilisant des identifiants uniques (nom d’utilisateur et mot de passe).
<br />
Une fois qu’il s’est authentifié auprès du Fournisseur d’Identité et après en avoir pris connaissance des CGU,
l’Utilisateur peut utiliser le Service dans le respect des présentes Conditions.
</p>
<h2>
Article 3. Fonctionnement du Service
</h2>
<h3>
3.1 Prérequis : acceptation des présentes Conditions
</h3>
<p>
L’accès, la navigation ou l’utilisation du Service vaut acceptation des présentes Conditions.
<br />
Ces Conditions sont susceptibles d’être modifiées à tout moment par l’Editeur.
</p>
<h3>
3.2 Fonctionnalités du Service
</h3>
<p>
Le Service propose les fonctionnalités suivantes :
</p>
<div className="wysiwyg mb-2">
<ul>
<li>
Renseignement d’inventaires matériels répertoriant les équipements informatiques détenus ou utilisés par l’établissement.
</li>
<li>
Calcul des indicateurs d’impact environnemental des équipement inventoriés.
</li>
<li>
Consultation des indicateurs d’impact environnemental.
</li>
<li>
Accès à la documentation pour comprendre les résultats et aux questions fréquentes (FAQ) expliquant le fonctionnement et l’utilisation du Service.
</li>
</ul>
</div>
<h2>
Article 4. Obligations des Utilisateurs
</h2>
<p>
Sauf mention contraire, expressément signalée lors de l’octroi de l’accès au Service, les identifiants de connexion sont délivrés
à titre personnel et confidentiel. Toute utilisation du Service se fait sous la responsabilité de l’Utilisateur titulaire du compte.
<br />
L’Utilisateur reconnait agir au nom et pour le compte de l’établissement auquel il est rattaché. Il s’engage à utiliser
le Service de bonne foi et uniquement en vue d’obtenir l’impact environnemental du système d’information de l’établissement
auquel il est rattaché. L’Utilisateur est responsable de tout litige ou contentieux lié à une utilisation du Service non conforme
aux dispositions des présentes CGU.
<br />
L’Utilisateur est responsable de la préservation de la sécurité et de la confidentialité de ses moyens d’authentification personnels.
L’Utilisateur s’engage à informer sans délai l’Editeur de toute modification de sa situation professionnelle déclarée
au moment de l’octroi des identifiants de connexion.
<br />
L’Editeur ne saurait être tenu responsable d’un accès par un tiers, suite à une usurpation des moyens d’authentification de l’Utilisateur.
L’Utilisateur qui aurait connaissance d’un risque lié à l’utilisation de ses moyens d’authentification s’engage à en informer
sans délai l’Editeur, afin que celui-ci puisse prendre toute mesure nécessaire, notamment de bloquer l’accès à son compte personnel
jusqu’à délivrance de nouveaux moyens d’authentification.
</p>
<h2>
Article 5. Confidentialité des indicateurs d’impact environnemental fournis par le Service
</h2>
<p>
Les indicateurs produits par le Service ne sont pas rendus publics et sont uniquement accessibles par l’Editeur et l’Opérateur,
en leur qualité d’administrateurs.
</p>
<h2>
Article 6. Protection des données à caractère personnel
</h2>
<h3>
6.1 Responsabilité et finalité du traitement
</h3>
<p>
La mise en œuvre du Service entraine un traitement de données à caractère personnel encadré par la loi n°78-17 du 6 janvier 1978,
modifiée, relative à l’informatique, aux fichiers et aux libertés et le Règlement (UE) 2016/679 du Parlement européen et
du Conseil du 27 avril 2016 relatif à la protection des personnes physiques à l’égard du traitement des données à caractère personnel
et à la libre circulation de ces données (« RGPD »).
<br />
Ce traitement est mis en œuvre sous la responsabilité de l’Editeur, représenté par la Délégation ministérielle au numérique en santé (DNS).
<br />
L’Opérateur est le sous-traitant au sens de l’article 28 du RGPD.
<br />
Ce traitement est fondé sur une mission d’intérêt public au sens de l’article 6 du RGPD.
</p>
<h3>
6.2 Catégories des données
</h3>
<p>
Les catégories des données collectées et traitées par les Fournisseurs d’identité sont les données d’identification nécessaires
à la création du compte de l’Utilisateur et à son accès au Service (nom, prénom, adresse mail professionnelle).
Voir les mentions
{' '}
<a
href="https://sap.atih.sante.fr/plage2018/mentionsCNIL.html"
rel="external noopener noreferrer"
target="_blank"
>
Protection des données personnelles
</a>
{' '}
du Fournisseur d’identité.
<br />
Ces données à caractère personnel collectées par le Fournisseur d’identité ne sont pas récupérées par le Service.
<br />
Hors Fournisseur d’identité, aucune donnée à caractère personnel n’est collectée ou traitée par le Service.
</p>
<h3>
6.3 Destinataires des données
</h3>
<p>
Hors Fournisseur d’identité, aucune donnée à caractère personnel n’est collectée ou traitée par le Service.
</p>
<h3>
6.4 Durée de conservation des données
</h3>
<p>
Hors Fournisseur d’identité, aucune donnée à caractère personnel n’est collectée ou traitée par le Service.
</p>
<h3>
6.5 Cookies
</h3>
<p>
Le Service est conçu pour être particulièrement attentif aux besoins des Utilisateurs. À cet égard, il y est fait usage de cookies.
<br />
Le dépôt de cookies, réalisé dans le cadre de l’utilisation du Service, permet d’enregistrer des informations relatives
à la navigation du terminal de l’Utilisateur qui pourront être lues lors de ses visites ultérieures.
<br />
Les informations collectées sont à l’usage exclusif de l’Editeur et l’Opérateur ou de ses prestataires techniques,
et ne sont en aucun cas cédées à des tiers.
<br />
Les cookies déposés par le Service sont les suivants :
</p>
<table className="table table-bordered">
<thead>
<tr>
<th scope="col">
Intitulé des cookies
</th>
<th scope="col">
Type
</th>
<th scope="col">
Finalité
</th>
<th scope="col">
Durée de conservation
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
next-auth.callback-url
</td>
<td>
Fonctionnement du site
</td>
<td>
Authentification
</td>
<td>
Jusqu’à expiration de la session Utilisateur
</td>
</tr>
<tr>
<td>
next-auth.csrf-token
</td>
<td>
Fonctionnement du site
</td>
<td>
Authentification
</td>
<td>
Jusqu’à expiration de la session Utilisateur
</td>
</tr>
<tr>
<td>
next-auth.session-token
</td>
<td>
Fonctionnement du site
</td>
<td>
Mémoriser des informations liées à la session de l’utilisateur
</td>
<td>
Un mois
</td>
</tr>
</tbody>
</table>
<h3>
6.6 Droit des personnes concernées
</h3>
<p>
Chaque Utilisateur est informé qu’il bénéficie, conformément au RGDP et à la Loi Informatique et Libertés modifiée,
d’un droit d’opposition, d’accès, de rectification, d’effacement, de limitation du traitement et de portabilité.
<br />
Ces droits peuvent être exercés auprès de l’Opérateur par messagerie électronique, à l’adresse suivante :
{' '}
<a
className="external-link"
href="mailto:dpo@esante.gouv.fr"
>
dpo@esante.gouv.fr
</a>
.
<br />
Si la personne concernée estime que ses droits n’ont pas été respectés,
elle a la possibilité de saisir la Commission Nationale de l’Informatique et des Libertés (CNIL) d’une réclamation :
{' '}
<a
className="external-link"
href="https://www.cnil.fr/fr/plaintes/CNIL"
>
https://www.cnil.fr/fr/plaintes/CNIL
</a>
{' '}
— Service des plaintes — 3 place Fontenoy — TSA 80715 - 75334 PARIS CEDEX 07.
</p>
<h2>
Article 7. Propriété intellectuelle
</h2>
<p>
Pour tous les contenus, textes et logos présentés sur le Service, tous droits d’auteur des œuvres sont réservés.
Sauf autorisation formelle écrite préalable, la reproduction ainsi que toute utilisation des œuvres,
autres que la consultation individuelle et privée sont interdites.
<br />
Le Service réutilise le code du produit NumEcoEval mis à disposition en open source par le Ministère de la Transition Ecologique
et les facteurs d’impact du « Starter kit » publiés par la société Résilio.
</p>
<h3>
Article 8. Loi applicable et tribunaux compétents
</h3>
<p>
Les présentes Conditions sont régies par la loi française. Tout litige résultant de leur application relèvera de la compétence des tribunaux français.
</p>
</>
)
}
2 changes: 0 additions & 2 deletions src/components/IndicateursCles/IndicateursCles.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ describe('page des indicateurs clés', () => {
// GIVEN
jeSuisUnUtilisateur()

vi.spyOn(repositoryIndicateurs, 'recupererLesIndicateursImpactsEquipementsRepository').mockResolvedValueOnce([indicateurImpactEquipementModelFactory()])

const queryParams = {
searchParams: {
nomEtablissement: 'Hopital de Bordeaux$$00000001J',
Expand Down
Loading

0 comments on commit 6ba698d

Please sign in to comment.