Extraction Des données de Symfony 3
Objectifs
L’extraction des données d’établissement (liste patients, prescription, réseaux de soin …) depuis MyEureka Symfony 3 client par client sous format des fichiers CSV spécifique afin d’être réintégré dans la nouvelle version de MyEureka Symfony 6.
Solution technique
Une procédure d’extraction de données à travers des scripts a été développée afin de préparer des fichiers CSV pour chaque client.
Dépôt et structure des fichiers SQL
Pour garder le code source du projet un dépôt Git distant a été mis en place pour améliorer les requêtes SQL selon le besoin.
Le répertoire est composé de plusieurs sous répertoires ainsi que des fichiers de script SQL selon besoin.
Chaque script permet de générer l’export des données sous format CSV.
Mode opérationnel
Après avoir établi une connexion à votre source des données (BDD) vous pouvez exécuter les scripts.
Cliquez avec le bouton droit sur une SELECT d’un script.
Sélectionnez "Exécuter vers un fichier" :
Pour chaque exécution de script, vous devez spécifier la ou les valeurs des paramètres avant d'exécuter l'instruction.
La plupart du temps il s'agit du nom de l'établissement concerné.
Une fois le script est exécuté vous aurez la possibilité de choisir le format de fichier de sortie (pour nous c’est format CSV)
ainsi que son emplacement (sur le serveur de partage) dans ce dossier :
S:\S24.Documentations\003EUREKA WEB\0 MyEureka S4\Migration Symfony 3 vers Symfony 6\Clients
Pour certains script, il préférable de travailler avec une base de données locale afin d’éviter des problèmes de version PostgreSQL.
Certains scripts nécessitent une version plus récente de PostgreSQL.
Exemple de scripts
| Fichier requête | Fichier de sortie | Description |
|---|---|---|
| Patient.sql | patients.csv | Exporter la liste des patients par établissement cible |
| professional_patient_preference.sql | patient_preferences_production.csv | Exporter la liste des préférences pour chaque patient pour un établissement cible |
| professional_patient_prescriptions.sql | prescriptions_status_dispensee_other_informations.csv | Exporter la liste des informations qui concernent les prescriptions des patients pour un établissement cible |
| professional_patient_preference_pri nt.sql | preference_impression.csv | Exporter les préférences d’impression des patients pour un établissement cible |
| professional_patient_care_network.sql | Pro_RDS.csv | Exporter les réseaux de soin des patients pour un établissement cible |
| professional_patient_prescriptions_ prescrpteur.sql | professionnal_precripteur.csv | Exporter les informations qui concernent le prescripteur d’une prescription des patients pour un établissement cible |
| professional_patient_prescriptions_s tatus_dispense.sql | presceiption_status_dispensee.csv | Exporter les prescriptions avec la liste des médicaments d’un patient pour un établissement cible |
Installation locale de MyEureka Symfony 3
Récemment, une commande Symfony a été ajoutée au projet MyEureka Symfony 3 pour extraire les prescriptions (ou traitements manuels) puis une autre sur le projet Symfony 6 pour importer ceux-ci.
Voir ce document sur leur utilisation
S:\S19.Dev_Web\MyEureka Symfony5\Docs\Migration de données sf3-sf6\Documentation technique - MyEureka export sf3-sf6.pdf
Afin de pouvoir ajouter de nouvelles fonctionnalités à cet outil, il vous faudra alors installer ce projet localement.
Pour une raison inconnue, la connexion avec un outil de base de données (Heidi, PgAdmin4 etc..) directe au serveur de BDD du projet MyEureka Symfony 3 est impossible.
Etape 1 : Se procurer un dump de la production
Pour obtenir un dump récent de celle-ci, il faut alors contacter le responsable réseau (Maxime Groux début 2024) qui se connectera en SSH au serveur 192.168.20.21 et effectuera la commande suivante :
sudo -u postgres pg_dump -d sf_myeureka_prod_pg > /home/myeureka_1_prod_YYYYMMDD.sql
Notre utilisateur "dev" n'a pas les droits pour lancer sudo, voilà pourquoi il faut contacter cette personne
Ensuite, avec FileZilla ou equivalent, se connecter en S/FTP et aller télécharger ce fichier .sql situé dans /home
Etape 2 : Importer la base de données
Il faut alors ensuite importer le fichier .sql dans une base de données PostgreSQL locale via un outil (Heidi, PgAdmin4 etc…)
Il faut aussi activer un module pour pouvoir utiliser la fonction crosstab, lancer la requete SQL :
CREATE EXTENSION IF NOT EXISTS tablefunc;
A partir d'ici il est possible de lancer les requêtes d'extraction directement dans votre outil d'administration de BDD.
Etape 3 : Installation de MyEureka Symfony 3
- Passer Php version 7.4.26 : https://windows.php.net/downloads/releases/archives/php-7.4.26-Win32-vc15-x86.zip
- Activer les extensions suivantes dans php.ini : curl gd2 mbstring openssl pdo_pgsql soap
- Passer/Installer Composer local en version 1 :
composer self-update --1 - Désactiver la sécurité TLS de Composer :
composer config -g -- disable-tls true - Créer le dossier
data/à la racine du projet (pour les résultats de l'export) - Copier le fichier
parameters_prod_eureka.ymlenparameters_dev_eureka.ymlet entrer les paramètres pour votre environnement local, ex:
database_host: 127.0.0.1
database_name: VOTRE_NOM_DE_BDD
database_user: postgres
database_password: admin