pourbaix / omg-web Goto Github PK
View Code? Open in Web Editor NEWThis project forked from vvandenschrieck/omg-web
OMG project V3 for my TFE
This project forked from vvandenschrieck/omg-web
OMG project V3 for my TFE
En tant qu’utilisateur possédant un compte, je souhaite avoir un système d’import automatisé, afin de me faciliter la tâche pour importer des données sur le patient.
Actuellement les utilisateurs sont obligés d’importer eux-mêmes les fichiers au format CSV. Il serait plus pratique que l’application fasse cela automatiquement en contactant l’API du cloud Carelink.
Pour l’ajout de données automatisées, il faut une possibilité pour l’utilisateur d’entrer ses données de compte CareLink. Pour cela, une section « Automatic Import » sera ajoutée sur la page « Import data ». Elle permettra donc d’introduire l’utilisateur et le mot de passe du compte.
Une fois les données introduites, elles seront envoyées au backend pour être testées et stockées en DB.
Il est important de préciser qu’il y a deux cas d’utilisation pour ces données :
L’utilisateur aura également accès à une section « aide » en cliquant sur le point d’interrogation. On lui explique comment les données sont traitées et comment l’import automatique fonctionne.
Pour cette fonctionnalité, plusieurs points techniques sont requis:
Modification des date et heures en UTC0 pour la détection de tags dans l'import manuel
Pour faciliter la réalisation de cette US: Ajout de la détection des tags dans l'import automatisé#29, il serait plus simple de passer tous le fonctionnement de la détection des tags avec l'import manuel en UTC0 au niveau de la base de données. Cela inclus de stocker les detection ranges en UTC0 ainsi que les tags.
Depuis l'interface frontend, l'utilisateur devrait pouvoir supprimer toutes les données qu'il souhaite.
Données à pouvoir supprimer:
En tant qu’utilisateur connecté, je voudrais avoir la possibilité d’afficher le taux de glycémie en fonction de plusieurs tags avec des conditions.
Actuellement sur le graphique des glycémies, on n’a que la possibilité d’afficher un tag à la fois. L’idée serait ici de pouvoir afficher le graphique sous diverses conditions. L’utilisateur peut alors voir des évènements qui mélangent plusieurs tags. Par exemple on pourrait montrer les évènements avec le tag « Souper » et « Lasagne » par exemple. Ou alors « lasagne » ou « brocoli » ou « macaroni ». L’idée principale est donc de pouvoir combiner des tags pour l’affichage au niveau du graphique. L’utilisateur pourra choisir quels tags sont impliqués et s’ils doivent tous être présents (ET) ou si uniquement un doit être présent (OU) pour présenter la donnée sur le graphique.
Ce jeu de condition pourra être améliorer dans le futur pour permettre de nouvelles combinaisons.
En tant qu’utilisateur connecté, je souhaite avoir, en me rendant sur l’onglet «charts », un graphe qui s’affiche même si je n’ai pas sélectionné de tags.
Pour cette fonctionnalité, il faut trouver quelque chose à afficher dès que l’utilisateur va dans l’onglet « charts ». On pourrait afficher un graphique résumer du taux de glycémie sur les 7 derniers jours par exemple. On pourrait même faire paramétrer le graphique qui s’affiche par défaut (7 derniers jours, aujourd’hui, etc).
Imaginons que je vais souvent dans cette section pour consulter un tag en particulier. Et bien avec le graphique par défaut, il me serai possible de le configurer pour ne pas devoir à chaque fois choisir ce tag. Par conséquent, dès que je me rends sur la page, le graphique s’affiche avec le tag configuré.
On aurait donc accès à une zone pour configurer ce « Default Chart » et y indiquer :
Comme pour l’affichage quotidien sur la page d’accueil (US n°6), les données de personnalisation seront stockées en « Local Storage ».
En tant qu’utilisateur connecté, quand je crée un tag manuellement et que je rentre son nom, je veux avoir une auto-complétion qui m’est proposée par rapport aux tags que j’ai déjà créés.
Ceci permettra d’éviter que l’utilisateur fasse des fautes de frappe lorsqu’il entre le nom du tag et pourra aussi lui faire gagner un peu de temps.
Pour le moment, quand l’utilisateur crée un tag manuellement, il a la possibilité de choisir un nom de tag déjà existant dans une liste. L’idée serait de fournir une auto-complétion de ce que l’utilisateur tape dans le champ nom en fonction des noms de tags déjà existants.
En tant qu’utilisateur connecté, je souhaite pouvoir indiquer au système des données qui seraient invalides afin qu’elles ne faussent pas les résultats futurs.
L’utilisateur pourra indiquer une plage horaire pour laquelle il pense que les données sont erronées du à quelques problèmes que ce soit (capteur défectueux, cathéter défectueux, etc). Pour définir cette plage on pourrait passer par un système de tags ou demander à l’utilisateur de sélectionner la plage horaire dans un calendrier et les données d’une date à une autre ne seront plus exploitées.
Dans l’onglet « Data », une section « Set invalid data range » permettra aux utilisateurs d’indiquer les périodes où les données ne seraient pas valides dû à quelques raisons que ce soit. Cela sera fait en donnant le type de données concerné (insuline ou glucose) ainsi que la date et l’heure de début et de fin de la période de non-validité.
Ces données seront par la suite indiquées comme invalides dans la base de données.
Tester les différentes fonction utilitaire du backend dont principalement les fonctions de conversion de date pour le décalage horaire.
Lors de sa première visite sur le site, l'utilisateur devrai accéder à une charte détaillant les traitements effectués sur les données récoltées. Il devra, pour utiliser le site, accepter cette charte.
En tant qu’utilisateur connecté, je souhaiterais avoir la possibilité d’enregistrer des tags dits répétitifs, afin de pouvoir marquer les activités périodiques.
Les utilisateurs auront la possibilité de créer des tags dis « répétitifs ». Ces derniers seront utilisés pour indiquer des évènements/tâches effectuées de manière quotidienne ou du moins régulière, par exemple une séance de sport, en général un évènement répétitif dans le quotidien de la personne. L’utilisateur aura la possibilité d’indiquer le nom de son tag ainsi que l’heure à laquelle le tag devient effectif. Il pourra également indiquer si son tag doit être pris en compte tous les jours, tous les 2 jours ou une fois par semaine (si oui il donne le jour), etc.
Ces tags devront également être validés par les utilisateurs tout comme les tags de détections. Pour cela, nous allons séparer la page « pending tags » en 2 sections pour éviter de les confondre. La première sera nommée « tag detection » et la seconde « repeting tag » :
En temps qu'utilisateur, je souhaite pouvoir avancer ou reculer dans le temps quand je suis sur le graphique de la page d'accueil ou dans les statistiques.
La cliente souhaiterait pouvoir reculer ou avancer dans le temps avec un pas d'un jour pour aller voir les données à des moments précis. Ceci devrai être possible à la fois sur le graphique de la page d'accueil mais aussi dans la page de statistiques.
=> Fournir des tests pour les fonctions utilitaires utilisées pour calculer les différentes statistiques en frontend.
Fonction a tester:
Dans le graphique de la page d'accueil, on voudrait avoir la possibilité de voir les différents tags configurés par l'utilisateur.
Tout d'abord, nous voudrions juste montrer tout les tags, il sera ensuite possible de configurer ceux que l'on veut afficher.
Le but est que lest tests soient exécutés à chaque push sur la branche principale
Différentes étapes de réalisation:
En tant qu’utilisateur connecté, je veux pouvoir observer la variation du débit basal en fonction du moment de la journée.
Le débit basal peut effectivement être irrégulier en fonction du moment de la journée, ceci dépend de plusieurs facteurs (hormones, période de sport, période de stress, etc).
On pourrait avoir un graphique qui nous montre comment il varie en fonction de la journée en faisant une moyenne sur un moi, une semaine, etc, en fonction des besoins de l’utilisateur et de ce qu’il précise.
En tant qu’utilisateur connecté, je souhaite avoir accès à un résumé qui indique l’impact des resucrages effectués.
Un resucrage c’est une quantité de glucides et donc de sucre (d’où le mot resucrage) qui est injectée au patient lors d’une phase hypoglycémique dû notamment à un trop gros taux d’insuline.
Pour déterminer l’impact, on va donc mesurer le taux de glycémie avant et après le resucrage pour voir si on a injecté une dose correcte.
Un résumer de l’impact des resucrages indiquera pour chaque semaine, le nombre de resucrages total, le nombre de bon et de mauvais resucrage. La qualité des resucrages (bon ou mauvais) sera déterminée par les données que l’utilisateur entrera dans le système. Pour cela il peut cliquer sur le bouton « add sugar administration data » et indiquer la date et l’heure de l’injection et la quantité de glucose injectée. En fonction de ces informations, on va pouvoir aller chercher les données de glycémie qui succèdent et donc dire si l’injection a été correcte ou non.
On pourrait également fonctionner avec un algorithme qui détecterait les hypoglycémie en fonction de certains facteurs (taux de glycémie et durée) et les enregistrerait dans la DB (Théoriquement une hypo = un resucrage).
L'objectif est de remettre en place le script qui était utilisé pour l'intégration continue dans GitHub Actions pour le frontend
Étapes:
When autoImporting data from the API, we want that the detection ranges work just like with manual import.
In manual import, the detection of tags is made in the frontend, but in this case we have to do it in the backend because it is were the auto import takes place.
En tant qu’utilisateur connecté je souhaite avoir un moyen de vérifier les tags pour lesquels il n’y a pas de taux de glycémie associé afin de de vérifier si j’ai bien uploadé les données nécessaires
Si l’import automatique n’est pas encore mis en place, il se pourrait que certains tags ne soient pas associés à des données. Pour corriger cela, il faudrait un petit utilitaire pour que l’utilisateur puisse les voir.
En se rendant dans la section « Manage » et plus précisément dans l’onglet « Tags », l’utilisateur pourra obtenir l’information
Il aura également la possibilité de supprimer les tags sans données.
En tant qu’utilisateur connecté, je souhaite avoir accès à des données statistiques qui me donneraient des valeurs moyennes et leur évolution dans le temps.
On pourrait avoir plusieurs valeurs moyennes comme:
En temps qu'utilisateur, je souhaite que le processus de détection des tags soi appliquée à chaque import automatique dans l'application.
Que ce soit à la connexion dans l'application ou avec le CRON job, on souhaite effectuer une détection des tags lors de l'import automatique de données. Cette détection prendrait en compte les "detection ranges" déjà créées ainsi que les données d'insulines injectées dans la DB par l'import auto.
Comme appliqué avec l'import manuel, il faut détecter le premier bolus de repas dans la tranche horaire et créer un tag y correspondant.
Le but principal de cette tâche technique consiste à sécuriser l'application et le VPS en accordances avec les différents risques mis aux jours lors de l'analyse.
Voici la liste des éléments à mettre en place pour sécuriser le VPS:
Voici la liste des éléments à mettre en place pour sécuriser l'application:
L'objectif est de produire un maximum de tests pour les routes de l'API existantes dans l'application
Routes à tester:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.