[non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Cette catégorie regroupe les demandes d'aide à l'utilisation du logiciel MedshakeEHR.
marsante
Messages : 175
Inscription : 25 juil. 2020, 18:42

[non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par marsante »

Bonjour à tous,

Lors de l'activation de clicrdv dans la configuration, onglet Agenda, agendaservice, en mettant la valeur clicRDV, la page paramètre utilisateur devient blanche ou affiche une erreur 500 suivant les navigateurs. Il suffit d'enlever la valeur clicRDV pour revenir à la normale.
Reproduis sur ce type de machine virtuelle https://github.com/marsante/MedShakeEHR-vagrant, sur une machine physique également, de la version 6.5 à la version 7.0.

La machine virtuelle de test officielle ne présente pas ce bug, ce qui me fait penser que c'est peut être un bug d'interface chaise clavier :?

Exemple d'un log apache associé

Code : Tout sélectionner

[Wed Dec 23 11:26:10.395073 2020] [php7:error] [pid 1135] [client 55.55.55.1:52672] PHP Fatal error:  Uncaught Exception: Le type de donn\xc3\xa9e n'a pas pu \xc3\xaatre extrait de la base de donn\xc3\xa9es par son name : clicRdvUserId in /opt/ehr/class/msForm.php:960\nStack trace:\n#0 /opt/ehr/class/msForm.php(699): msForm->_formExtractTypeByName('clicRdvUserId')\n#1 /opt/ehr/class/msForm.php(658): msForm->_formBuilderBloc(Array, 1, 1, Array)\n#2 /opt/ehr/class/msForm.php(580): msForm->_formBuilderRow(Array, 1, Array)\n#3 /opt/ehr/class/msForm.php(354): msForm->_formBuilder(Array)\n#4 /opt/ehr/controlers/user/userParameters.php(132): msForm->getForm()\n#5 /opt/ehr/public_html/index.php(140): include('/opt/ehr/contro...')\n#6 {main}\n  thrown in /opt/ehr/class/msForm.php on line 960, referer: https://msehr.local/configuration/configuration-globale/

Est ce que quelqu'un aurait une piste ?

Passez de bonnes fêtes de fin d'année

Dernière modification par marsante le 24 déc. 2020, 11:26, modifié 1 fois.
marsante
Messages : 175
Inscription : 25 juil. 2020, 18:42

Re: Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par marsante »

J'ai trouvé, finalement en comparant le code de création du formulaire dans la machine fonctionnelle et la machine non fonctionnelle + la timeline des commits, je me suis rendu compte que du code avait été supprimé du sqlInstall.sql lors de la 4.0.0-2. Du coup j'ai fait une pull request avec le sqlInstall.sql corrigé et un sqlupgrade pour apporter la correction aux versions ultérieures. J'ai testé en installation et en mise à jour de 7.0.0 à 7.0.1 ça fonctionne de mon côté.

Passez de bonnes fêtes

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

Re: [Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par Bertrand »

Salut !

Je t'ai répondu malheureusement tardivement dans ton pull request. Ce que tu as produit est une régression car le retrait du code était logique (tout ce qui est configuration est maintenant passé dans la table configuration et les données de type user ne doivent plus exister).
Bref, je vais me pencher sur la question, mais sans compte clicRDV, test surement pas complet !

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/

marsante
Messages : 175
Inscription : 25 juil. 2020, 18:42

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par marsante »

Oupsssssss j'ai vu ça :? . J'annule ma pull request du coup. Je n'ai pas encore reçu ma clef api du coup je n'ai pas pu tester en réel.

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

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par Bertrand »

Aaarrrghhhh ... tu étais dans le vrai ...
Je suis dessus ... Je vais corriger.

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: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par Bertrand »

Voilà, c'est fait : 7.1.1 pour régler tout ça !
Merci et désolé pour t'avoir répondu n'importe quoi ... :-(

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/

marsante
Messages : 175
Inscription : 25 juil. 2020, 18:42

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par marsante »

:D j'ai vu la réponse sur github j'ai bien rigolé. Alors Ok à un mot prêt j'étais dans le vrai, mais je n'aurai jamais trouvé ce mot :lol: parce que je ne comprends pas grand-chose encore au PHP (c'était par rapport à ces paramètres-là dans les controllers ['user']['id'] qui viennent chercher l'user par l'id et du coup l'id admin dans ce cas de figure ou rien à voir ?). J'en étais au point où j'avais réinstallé la version 4.0 pour comprendre étape par étape où était le bug, donc j'étais parti trèèèèèèèèèèèèès loin, surtout merci à toi ;) .

Avec ton patch, mais également avec l'ancien mien j'arrive au stade suivant : avec ou sans api, la connexion au compte et la récupération des noms de consultations de clicrdv se fait pour les synchro à celles de medshakeehr. Sauf qu'après, zéro synchro des consultations dans un sens ou dans l'autre dans les agendas. Je vais décrire étape par étape ce que j'ai fait, car ça vient peut-être d'un mauvais paramétrage de ma part.

Etape 1 je rajoute le paramètre clicRDV à agendaService dans configuration > paramètres globaux > agenda
Etape 2 dans configuration > paramètres globaux > clicrdv, soit je ne rajoute rien, soit je rajoute la clef api, soit je rajoute clef api, user et mdp de clicrdv, ça ne change pas grand-chose au comportement
Etape 3 dans les paramètres utilisateurs, je rentre mon mdp (quand le user est déjà configuré en global), ou mon user et mon mdp, puis je remplis le bon groupe et le bon agenda medshakeehr arrive à se synchro pour tous les détecter, je fais les correspondances de consultations, pareil medshakeehr arrive à détecter les bons noms de consultation, puis je clique sur valider et ça me renvoie vers la page /user/ajax/userParametersClicRdv/ avec le json suivant :

Code : Tout sélectionner

status	"success".
Etape 4 je rafraichis la page, ça me réaffiche le même message. Je reviens sur la page d'accueil, vais sur la page agenda, crée une consultation test, clique sur le bouton de synchro. Rien ne se passe ni dans un sens ni dans l'autre
Etape 5 j'active la tache cron des fois que le bug ne soit que sur l'interface, rien non plus ni du côté de medshakeehr ou de clicrdv.

Si ce n'est pas un bug d'interface chaise clavier de ma part j'irai voir du côté de controller/user/ajax/userParametersClicRdv/ du coup quand j'aurai le temps. Mais bon je risque encore de repartir dans le passé. :lol:
Avatar de l’utilisateur
Bertrand
Messages : 177
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par Bertrand »

Aarrff ... je n'ai jamais vu fonctionner la synchro car elle a été développée par Fr33z00 pour ses propres besoins.
Je n'ai donc pas grande idée de son fonctionnement :-(

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/

fr33z00
Messages : 1
Inscription : 26 janv. 2021, 20:08

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par fr33z00 »

Bonjour.
Je suis le coupable de ce module :-) Par contre ça remonte un peu, et la raison qui m'a fait le développer s'est envolée vers d'autres cieux, donc je n'ai plus tout à fait ça en tête.
Je vais néanmoins essayer d'aider (en me replongeant un peu dans le code), d'autant que le résultat affiché (le JSON "success") me rappelle vaguement quelque chose.

En premier élément de réponse, il doit être plus simple de débuguer le truc en ligne de commande. Il doit être possible de prendre la ligne qui se trouve dans le fichier cron pour la lancer manuellement.
Je me plonge bientôt dans le code.
marsante
Messages : 175
Inscription : 25 juil. 2020, 18:42

Re: [non vraiment ;-) Résolu] Problème paramètre utilisateur lors de l'activation de clicrdv

Message non lu par marsante »

Oups, je n'avais pas reçu la notif, merci bcp on progresse :) :

en exécutant le cron en ligne de commande (faut que j'ai le réflexe d'exécuter le php :? ) :

Code : Tout sélectionner

PHP Warning:  require(vendor/autoload.php): failed to open stream: No such file or directory in /opt/ehr/cron/clicRDV.php on line 47

Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in /opt/ehr/cron/clicRDV.php on line 47
PHP Fatal error:  require(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /opt/ehr/cron/clicRDV.php on line 47

Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /opt/ehr/cron/clicRDV.php on line 47
Malgré le path configuré dans le htaccess et dans le fichier dans le dossier public.

Je modifie

Code : Tout sélectionner

 $homepath=getcwd().'/';
par ça :

Code : Tout sélectionner

$homepath=getenv("MEDSHAKEEHRPATH");
même erreur.

J'exporte manuellement avec ce que je mets comme racine habituellement /opt/ehr j'obtiens cette fois ci le même message avec /opt/ehrvendors/...

Je réexporte manuellement cette fois ci /opt/ehr/

ça fonctionne (à recommencer à chaque reboot par contre)

On passe à l'erreur suivante :

Code : Tout sélectionner

PHP Warning:  array_key_exists() expects parameter 2 to be array, bool given in /opt/ehr/class/msClicRDV.php on line 305

Warning: array_key_exists() expects parameter 2 to be array, bool given in /opt/ehr/class/msClicRDV.php on line 305

qui concerne cette ligne là :

Code : Tout sélectionner

 if (!array_key_exists('clicRdvUserId', $params) or !$params['clicRdvUserId']) {
                return false;
            }
Vu ma nullité en php je vais essayer de creuser, mais sans garantie :D j'imagine qu'il existe une fonction comme en python pour visualiser le type de la variable

Merci pour les contributions fr33z00, le module chiro et le self-installer m'ont bcp aidé. En parlant de coupable d'ailleurs, aurais-tu une astuce pour générer les coordonnées des cercles sur le svg chiro, j'imagine qu'on peut le faire autrement qu'à la main, sinon encore plus merci d'avoir crée l'existant ;)
Répondre