Micro Application 14 : MedicSolutions, une application médicale multi-utilisateur en noSql.

medicsolutions

Introduction :


Un exercice de création d’application médicale avec un mapping sur le corps humain en guise de filtrage AngularJs.

Stockage en ligne sur Firebase.

C’est du NoSql.

Synopsys :


 Log in : a@a.fr Mot de passe : aaaaaaaa

Le personnel hospitalier débordé a besoin de connaitre les médicaments suggérés en fonction de symptômes ou des endroits ou le mal perdure.

Il peut ainsi suggérer par email le médicament à prendre au patient, ou les commander pour lui.

Il peut trier en temps réel les médicaments selon :

  • Leur puissance
  • Les effets secondaires plus ou moins fort.

Ils peuvent aussi modifier toutes les données.
Il s’identifie dans l’application et retrouve les prescriptions qu’il a réalisé par dates.
Ils peuvent aussi générer des prescriptions dans l’application, avec le look officiel( Surimpression des données sur un scan de prescription vierge.)

Descriptif :


  • Type : Micro- Application Web de type Saas, compatible avec téléphones android 5 pouces.
  • Responsive : Oui.
  • Langage : AngularJs, Framework foundation Responsive, Html 5.0, Css3.0
  • Bibliothèques : AngularFire, Foundation.
  • Modules : angular-notifier
  • Format d’échanges de Données : JSON
  • Routing angularJs : Non (Des modales)
  • Back-end : noSql FIREBASE en ligne
  • Difficulté : ++++0/+++++
  • Test avec jasmine : Non.
  • Durée de codage : Entre 1 mois et 2 mois.
  • UML 2.0 : non.
  • Webstorage(stockage des données dans le navigateur) : Non
  • Gestion de la concurence : Firebase s’en charge
  • Webservice : non.
  • Authentification : Oui sur firebase
  • Minification Grunt : non.
  • Nodes.Js : non.
  • MongoDb/Nosql : Firebase
  • Ambition Commerciale : non.
  • Etude de Marché, Barrières commerciales  : non.
  • Arborescence de l’appli : 
    • CSS
    • CONTROLEURS
    • VUES
    • DIRECTIVES
    • FACTORY
    • UPLOADS
    • IMG-APPS
    • LIBRAIRIES

Journal :


Jour 12 : 3h30 de code:

  • Possibilité d’imprimer sa prescription avec le scan vierge d’une prescription officielle, les données sont injectée sur l’image
  • Suppression d’un medoc de prescription
  • Séquences de contrôle avant impression d’une prescription

demo1

Jour 11 : 4h30 de code:

  • Avancée globale sur la gestion des prescriptions, création d’une tab
  • Expérimentations  de la gestion des childs sur firebase…
  • Ajout d’un module Table responsive de chez Foundation

Jour 10 : 2h30 de code :

  • Controle de doublon lors de l’ajout d’un médoc, on ne peut plus ajouter 2 fois le même.
  • Ré-indentation totale du code, suppression des erreurs.

jour 9: 4h00 de code :

  • Ajout de la possibilité de supprimer les maladies, et symptômes.  N’influe pas sur les médicaments préexistants, c’est un autre bloc, des autres modèles de données.
  • Ajout de la famille de maladie.
  • Premières améliorations d’une prescription (Ajout du nombre et de la quantité)
  • Premier essai d’une liste de medics en one time binding.

En projet : 

  • Les prescriptions devront apparaitrent dans un calendrier.
  • Prise de rendez vous dans un calendrier.
  • Ajouter une photo à un utilisateur pour qu’il puisse noter les medocs

jour 8: 3h30 de code :

  • Ajout du module Angular-notifier, déclenché lors de l’ajout d’un medic à la prescription.
  • Avancée dans l’enregistrement des prescriptions, le système multi utilisateur est ok, il ne reste plus qu’à améliorer l’interface et à gérer(inventer) le système de  datation.
  • Minification du code du controleur avec  http://jscompress.com = Ok !

En projet :

  • Possibilité d’ajouter le nb de médics à prescrire + la durée.
  • Possibilité de modifier complétement une prescription.

Jour 7 : 2h45 de code

  • Continuation du système de prescriptions, ça marche bien. En fonction de l’uid utlisateur, j’ai mon node qui affiche bien mes différentes Prescriptions (P1, P2…) et les noms des médicaments:
  • node
  • Il ne me reste plus qu’à lister les prescriptions dans un select ce qui est un peu plus dur à faire car je ne maitrise pas encore  cette syntaxe Firebase. Au final, on arrive à un truc qui va être vraiment sympa, Multi Utilisateur,  sans compter que mes prochaines apps seront faites plus rapidement, vu que j’aurais compris le truc. Si on se loggue avec b@b.fr, on obtient pas les prescriptions de a@a.fr, parce qu’il ont n’ont pas le même UID firebase.
  • Firebase couplé à Angular 1.x est vraiment un truc fantastique, rapide et très puissant, ça me fait penser au futur . J’espère pouvoir faire pleins d’autres apps avec ça. La prog objet en temps réel, sans les inconvénients, tout semble facile, logique.
  • AngularJS est bien plus facile à comprendre que React ou AngularJs 2.0(que je n’aime pas.)

En projet :

  • Possibilité de dupliquer les filtres AngularJs  « Symptômes » pour faire des recherches croisées…
  • Création d’un fichier JSON simulant 1500 médicaments avec https://www.mockaroo.com… Car malheureusement je pense qu’il faudra réecrire le code ou alors faire du one time binding pour la liste de médicaments, question de performances…
  • Création d’une liste de medocs (Moins embétant que des fiches à lire parfois)
  • Dans l’idéal, les variables des noms des médicaments seront injectées dans une prescrption au format PDF avec les coordonées du Médecin, le look devra être exactement celui d’une véritable prescription.

Jour 6 : 4h de code:

  • Refonte des Css
  • Ajout d’un loader sur le log-in
  • Ajout d’un menu déroulant
  • Ajout d’icône
  • gestion du bug sur les boutons avec Jquery

En projet : Ajout d’étoiles et d’appréciations sur les objets

Jour 5 : 3h30 de code:

  • Ajout de la modale de gestion des données du compte en fonction du login.
  • Pratique du développement par UID firebase = ça marche bien.
  • Hiding des élèments de menu lors de la phase de login, avec ng-show.

En projet : Enregistrer les prescriptions au format tableau de Json dans Firebase, sous chaque UID de l’utilisateur dans le Modèles « Prescriptions ».

Jour 4 : 4h30 de code:

  • Ajout de la modale de login
  • La sécurité ne va pas pour l’instant puisqu’en changeant le code Js, on peut se logger anonymement et tout supprimer, les droits firebase sont a étudier, et il n’y a pas beaucoup d’exemples faciles.
  • La gestion des prescriptions est pas simple à organiser en Json sur Firebase, surtout à cause de l’id utilisateur, mais j’ai déjà commencé à le faire. Une prescription étant elle même un tableau d’objets, c’est pas simple à associer à l’id utilisateur quand on ne l’a jamais fait.

Jour 3 : 2h30 de code :

  • Foundation 6.2 css pas compatible encore avec angular-fondation, du coup j’ai du bricoler avec jquery pour gérer les tabs et le focus et c’est pas terrible du tout mais cela fonctionne relativement.

Jour 2 : 4h de code

  • Ajout de la pagination, contrôle que les filtrages fonctionnent encore = ok.
  • Ajout de l’édition d’un médicament (Problème avec les onglets impossible à focuser, à rêgler demain avec  https://pineconellc.github.io/angular-foundation/)

En projet :

  • Création d’une Prescription avec possibilité d’impression et d’envoi par Email.
  • Ajout d’une promise lorsque le chargement de la BDD Firebase plante.(Touche F5)
  • Ajout d’un Calendrier pour les rendez-vous.
  • Possibilité de modifier une maladie et un symptôme, Ajout de remarques, et visualisation onhover de cela lors du passage sur un médicament.
  • Réduction des 4 boutons d’un médicament en petits icones
  • Une version sera pour moins de 500 médicaments, une autre pour plus de 500 médicaments car cela impose une réécriture du code Firebase/AngularJs du filtrage !

Jour 2 : 4h de code

  • Passage sur Firebase des modèles de données.
  • Possibilité d’ajouter une maladie et un symptôme.
  • Possibilité de rêgler la puissance et les effets secondaires en temps réel, enregistrement en temps réel dans la BDD
  • Le filtrage reste pour l’instant dans le navigateur, mais après il sera sur Firebase, en partie.

En projet : 

  • Authentification utilisateur.
  • Edition d’un médicament.
  • Transmettre une demande à un médecin
  • Infinite scroll ou pagination, cela dépendra.
  • Finition du filtrage par corps humain.

Jour 1 : 6h de code :

  • Mise en place du design avec le framework responsive Foundation et un template
  • Création du controleur
  • Création du modèle de données Json de démo
  • Création de l’onglet Ajout d’un médicament
  • Début de filtrage par mapping sur le corps humain
  • Tri par puissance des médicaments et effets secondaires.

La programmation n’utilisera pas d’identifiants, hormi ceux générés par Firebase. En effet, les filtrages et tri angular n’ont pas besoin des IDS.

Le code :


  • Le controleur de la vue principale : app.js
Publicités