Aller au contenu principal

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" :

drawing

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é.

drawing

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.

Nota Bene

Certains scripts nécessitent une version plus récente de PostgreSQL.

Exemple de scripts

Fichier requêteFichier de sortieDescription
Patient.sqlpatients.csvExporter la liste des patients par établissement cible
professional_patient_preference.sqlpatient_preferences_production.csvExporter la liste des préférences pour chaque patient pour un établissement cible
professional_patient_prescriptions.sqlprescriptions_status_dispensee_other_informations.csvExporter la liste des informations qui concernent les prescriptions des patients pour un établissement cible
professional_patient_preference_pri nt.sqlpreference_impression.csvExporter les préférences d’impression des patients pour un établissement cible
professional_patient_care_network.sqlPro_RDS.csvExporter les réseaux de soin des patients pour un établissement cible
professional_patient_prescriptions_ prescrpteur.sqlprofessionnal_precripteur.csvExporter les informations qui concernent le prescripteur d’une prescription des patients pour un établissement cible
professional_patient_prescriptions_s tatus_dispense.sqlpresceiption_status_dispensee.csvExporter 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
info

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.yml en parameters_dev_eureka.yml et 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