Evolution vers la V8.0.0

Les sujets de cette catégorie concernent le développement du logiciel MedshakeEHR.
Avatar de l’utilisateur
Bertrand
Messages : 177
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Evolution vers la V8.0.0

Message non lu par Bertrand »

Salut à tous.

J'ai des heures à tuer. Je me suis mis en tête (ou plutôt, on m'a fait comprendre que ça serait une évolution indispensable) de basculer toutes les requêtes SQL de l'EHR en requêtes préparées.
C'est l'objet de la branche v8 du repo.
C'est la plupart du temps une occupation de zombi, ça tombe pas mal, mais il y a quelques challenges quand même au passage.

J'ai donc basculé la gestion des requêtes de mysqli à PDO.
L'idée était de pouvoir utiliser les requêtes préparées avec des marqueurs nommés, ce que ne permet pas mysqli.
J'ai trouvé une méthode qui permet de conserver une compatibilité totale avec les méthodes de le class msSQL de la v7.
Les marqueurs nommés sont simplement passés en tableau dans un dernier nouveau paramètre optionnel.

Si vous avez la curiosité de regarder, vous verrez que chaque fichier qui comporte des requêtes SQL possède, s'il a été déjà revu, sous le crédit author / contrib une ligne SQLPREPOK en commentaire. Une façon de s'y retrouver, même si j'ai commencé à descendre de façon systématique l'arborescence de controlers/. (Je suis déjà passé sur quelques class également).

Voilà, si j'arrive au bout du truc un jour, ça sera une grosse dette technique épongée.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Bertrand
Messages : 177
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Evolution

Message non lu par Bertrand »

Bon, je crois que tout le code de la base est ok, requêtes préparées partout !
Il reste les modules, mais a priori rien d'extraordinaire de ce côté là par rapport à ce qui vient d'être fait.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Bertrand
Messages : 177
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: Evolution vers la V8.0.0

Message non lu par Bertrand »

Voilà, on est Ok aussi pour le module gynéco et les requêtes préparées, poussé dans une branche de dev "pourV8".

J'ai poussé une autre grande évolution : la gestion des fichiers YAML par les fonctions natives de PHP.
Cela permettra de laisser de côté une vielle dépendance "mustangostang / spyc".
La problématique est que cette dépendance était très très souple dans l'interprétation d'une source comme étant du YAML valide.
J'ai donc mis en place une grande lessiveuse ici :
https://github.com/MedShake/MedShakeEHR ... 0_post.php
L'idée, c'est de lire tout ce qui est yaml avec spyc et de le réenregistrer aussi sec avec les fonctions natives. On parle de fichiers ou de champs dans la bdd.
Il y a d'ailleurs des problématiques de sqlInsert qui m'ont obligé à corriger des tables dont certaines colonnes ont des valeurs par défaut non définies.
Cela va se passer juste avant dans le update sql :
https://github.com/MedShake/MedShakeEHR ... v8.0.0.sql

Dans ce fichier vous verrez que j'en profite aussi pour migrer les tables vers InnoDB qui est le défaut depuis un moment et je passe le charset à la valeur par défaut également.
J'avoue que ChatGPT m'a donné un sacré coup de main sur la boucle du début de fichier...
(Par contre aucune des solutions n'étaient fonctionnelles pour corriger cette problématique de valeur par défaut non définie, pour passer à NULL dans ce cas.)

Si vous voyez d'autres choses à purger, à mettre à jour tant qu'on y est ...

A suivre !

B.

OS : le "nouveau YAML" qui se retrouve en base va respecter la syntaxe officielle : vous verrez donc --- en tête de fichier sur la 1re ligne et ... en fin sur la dernière. Cela sera strictement normal. Je me suis posé la question de retirer à l'édition, mais comme il es tbien documenté que ces champs sont en YAML, autant ne pas créer de problématiques secondaires amha.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Répondre