Principe
Plutôt que d’importer les fichiers de données manuellement via l’interface web de PMSIpilot, la fonctionnalité “HUB” permet aux utilisateurs de déposer directement des fichiers dans un répertoire spécifique pour les voir intégrés automatiquement par le système. Les intégrations ont lieu deux fois par jour, à midi et à minuit.
La seule contrainte est de bien renommer les fichiers déposés en respectant une nomenclature spécifique, afin que l’application soit capable de correctement intégrer chaque type de fichier (RHS, FICHCOMP, RUM, etc).
Astuce : pour plus d’informations sur la nomenclature, voir le chapitre 4 de ce document.
Information
Chaque jour, à midi et à minuit, le serveur regarde si de nouveaux fichiers sont présents dans son répertoire /var/pmsipilot/hub/pmsipilot/incoming/. Si c’est le cas, et qu’un fichier témoin est également présent (cf. chapitre 4.4), le système lance l’import en base de données.
Une fois importés, les fichiers “disparaissent” (ils sont plus exactement déplacés automatiquement du répertoire incoming vers le répertoire ok ou ko selon le succès de l’importation).
Différentes implémentations techniques sont possibles et sont exposées dans le prochain paragraphe.
Important : quelle que soit la solution retenue dans le prochain chapitre, il faut dans tous les cas qu’un fichier témoin soit ajouté automatiquement à la fin de chaque transfert. Il est donc important de bien mettre en œuvre ce qui est également décrit au chapitre 4.4 “Fichier(s) témoin(s) de transfert des fichiers à importer”.
Solutions techniques
1. Prérequis : compte utilisateur pour la connexion
Les traitements étant exécutés par l’utilisateur système « pmsiadmin », les fichiers devront lui appartenir. Voici les informations pour s’identifier avec cet utilisateur système :
login : pmsiadmin mot de passe : Contacter le support technique
Attention !
En aucun cas ce mot de passe système ne doit être modifié.
2.Transfert automatisé vers PMSIPilot
Cette méthode est à prioriser par rapport à celle du paragraphe 2.3. En effet, c’est la méthode qui représente le moins de risque car elle ne modifie aucun élément de configuration sur le serveur PMSIPilot. Le schéma de principe est le suivant :
Une tâche jouée de façon récurrente sur le serveur de fichiers permet de transférer régulièrement les fichiers vers le bon répertoire du serveur PMSIPilot. Techniquement, cela peut être réalisé via les commandes scp, rsync ou sftp comme expliqué ci-après.
2.1 SCP / rsync
La solution est qu’un serveur tiers transfère le fichier par la commande scp. Cette commande récupérera l’ensemble des fichiers .txt disponibles dans le dossier de sauvegarde.
Transférer tous les fichiers:
scp /emplacement/du/serveur.tiers/*.txt
pmsiadmin@ip.serveur.pmsipilot:/var/pmsipilot/hub/pmsipilot/incoming/
Transférer uniquement les derniers fichiers :
commande rsync + clé d'identification dsa ou rsa
Il est possible de ne transférer que les derniers fichiers en utilisant la commande « rsync« . Dans ce cadre, l’utilisation d’une clef d’identification de type dsa ou rsa permettra de s’affranchir de la saisie du mot de passe pour l’utilisateur.
Liens complémentaires : Man Page SCP et Man Page rsync
2.2 SFTP
sftp pmsiadmin@ip.serveur.pmsipilot
cd /var/pmsipilot/hub/pmsipilot/incoming/
put fichier.txt
Le fonctionnement est identique à celui de FTP en ligne de commande.
Lien complémentaire : Man Page SFTP
2.3 Autres modes (Samba, FTP)
La configuration d’autres services comme un serveur FTP ou un partage réseaux SAMBA nécessiterait l’installation de nombreux paquets qui ne seraient pas automatiquement mis à jour par Ospi. Nous déconseillons donc cette méthode pour des raisons de sécurité, et parce que cela pourrait aussi avoir un impact sur le bon déroulement des mises à jour de l’application.
Les parties clientes nécessaires au fonctionnement inverse sont quant à elles bien installées (cf. paragraphe suivant).
3. Transfert automatisé depuis PMSIpilot
Cette méthode n’est à utiliser que si celle du paragraphe précédent est plus difficile à mettre en œuvre. Le schéma de principe est le suivant :
Attention !
Toutes les commandes évoquées dans ce chapitre sont à exécuter avec l'utilisateur “pmsiadmin” (cf. section 2.1).
Si vous les placiez au sein de tâches exécutées par « root », nous vous invitons à modifier les droits sur les fichiers récupérés pour qu'il appartiennent bien à “pmsiadmin”. Sans cela, le script d’import automatique n’aurait pas les droits nécessaires pour lire les fichiers récupérés.
3.1 SCP
Comme dans la partie précédente nous pouvons nous servir de la commande scp pour pousser le fichier depuis un autre serveur Linux :
scp votre-user@ip.votre.serveur:/votre/chemin/sur/serveur/distant/*.txt /var/pmsipilot/hub/pmsipilot/incoming/
3.2 FTP / SFTP
Nous pouvons aussi nous connecter en FTP (ou SFTP).
sftp user@ip.votre.serveur
cd /var/pmsipilot/hub/pmsipilot/incoming/
get votrefichier.txt
Lien complémentaire : Man Page FTP
3.3 Samba Client
Bien qu’un peu plus complexe à lancer, cela permet de se connecter facilement à un partage Windows (ou Samba) grâce à «smbclient». Pour voir les services disponibles sur une machine de votre réseau depuis le serveur PMSIpilot vous pouvez utiliser la commande ci-dessous :
Se connecter à un partage Windows (ou Samba):
commande smbclient
Voir les services disponibles sur une machine de votre réseau :
smbclient -L votre-serveur-distant
Lancer une connexion à travers une interface similaire à celle de FTP ou SFTP :
smbclient \\\\votre-serveur-distant\\Votre-partage -U<user>%<password> -c "get mon-fichier.txt"
Liens complémentaires : Man Page smbclient et Tutoriel français utilisation Samba et smbclient (Point 7)
3.4 Planification de la tâche récurrente sur le serveur
Les commandes présentées précédemment peuvent être planifiées régulièrement. Il faut pour cela créer un nouveau fichier *.cron dans le répertoire /etc/cron.d/ et planifier la commande en suivant la syntaxe des fichiers cron.
Syntaxe des fichiers cron : https://doc.ubuntu-fr.org/cron
4. Spécificités des traitements d’import de fichiers
4.1 SSR
Les contrôles sur le fichier RHS sont désactivés pour autoriser plus de souplesse à l’importation. La désactivation des contrôles permet d’importer le fichier de RHS, cependant certains séjours ou RHS pourront être exclus des statistiques de certaines pages en cas d’information manquante ou non valide. Il s’agit d’une importation « non restrictive » comme GENRHA, les lignes en doubles ne sont par contre pas autorisées et bloquerons la procédure.
4.2 Suppression préalable à la détection d’erreurs dans le(s) fichier(s) à importer
La détection d’erreurs (mauvaise période par exemple) sur un fichier est réalisée à l’importation uniquement. Le traitement automatique étant réalisé dans l’ordre suivant :
Suppression des données sur la période et établissement donnés
Importation des données sur la période et établissement donnés
Il est important d’éviter les erreurs bloquantes à l’importation (mauvaise période, mauvais format, lignes dédoublées) afin que les données ne soient pas inutilement supprimées au préalable.
Information
Le processus d'importation automatique se lance automatiquement à 12h00 et à 00h00 chaque jour.
Arborescence des répertoires de dépôt sur le serveur PMSIpilot
Répertoire de dépôt des fichiers
/var/pmsipilot/hub/pmsipilot/incoming/
Répertoire de stockage des fichiers importés
/var/pmsipilot/hub/pmsipilot/ok/
Répertoire de stockage des fichiers non-importés
En cas d’erreurs survenues à l’importation, les fichiers en causes sont stockés dans ce répertoire :
/var/pmsipilot/hub/pmsipilot/ko/
Purge des archives
Les fichiers sont stockés dans un format compressé. Ils sont nettoyés de façon automatique suivant deux critères :
Leur durée de stockage dépasse 1 an
La place occupée par ces fichiers dépasse 5 Go
Conventions de nommage des fichiers
1. Fichier(s) PMSI
Les conventions de nommage des fichiers PMSI sont décrites dans le document “Dépôt automatique de fichiers de données – Guide utilisateurs”
2. Fichier(s) témoin(s) de transfert des fichiers à importer
2.1 Principe
Le(s) fichier(s) témoin de transfert permettent de s’assurer que les fichiers de données PMSI à importer ont été complètement transférés.
Le but des fichiers témoins est d’éviter tout import de fichiers PMSI dans la plate-forme PMSIpilot si les fichiers sont encore en cours de transfert réseau.
2.2 Nommage et contenu des fichiers témoins
Une fois les fichiers de données PMSI déposés sur le serveur PMSIpilot, il est obligatoire de déposer un fichier témoin par champ existant.
Astuce : la liste des champs est disponible dans le paragraphe 4.1
Un fichier témoin est un fichier vide et respectant une des règles de nommage suivantes :
Champ | Nommage du fichier témoin | Description |
mco | mco_hub.ok | Garantie le transfert complet du fichier de RUM et/ou fichier(s) complémentaire(s) MCO |
ssr | ssr_hub.ok | Garantie le transfert complet du fichier de RHS et/ou fichier(s) complémentaire(s) SSR |
ext | ext_hub.ok | Garantie le transfert complet du fichier de RSF-ACE et/ou fichier(s) complémentaire(s) Externe |
had | had_hub.ok | Garantie le transfert complet du fichier de RPSS et/ou fichier(s) complémentaire(s) HAD |
psy | psy_hub.ok | Garantie le transfert complet du fichier de RPS ou de RAA |
2.3 Solution technique
Le fichier témoin doit donc être créé automatiquement par le système après chaque transfert de fichiers. Sous Unix il peut être créé simplement grâce à la commande ci-dessous dans le cas d’un import MCO par exemple :
touch mco_hub.ok
La tâche d’import automatique doit donc impérativement exécuter une telle commande une fois le transfert des fichiers réalisé.
2.4 Cas d’utilisation : états du répertoire de transfert
Etape 1 : Transfert en cours de fichiers SSR
/var/pmsipilot/hub/pmsipilot/incoming/ssr_rhs_2009_A4_0 /var/pmsipilot/hub/pmsipilot/incoming/(
Etape 2 : Transfert terminé de fichiers SSR
/var/pmsipilot/hub/pmsipilot/incoming/ssr_rhs_2009_A4_0
/var/pmsipilot/hub/pmsipilot/incoming/ssr_ano_2009_A4_0
/var/pmsipilot/hub/pmsipilot/incoming/ssr_rhs_2010_A4_0
/var/pmsipilot/hub/pmsipilot/incoming/ssr_hub.ok
Etape 3 : Import
Le fichier témoin SSR étant présent, l’importation automatique des fichiers nommés ssr_* sera autorisée au moment où le système essaiera d’importer en base de données les fichiers présents dans le répertoire incoming.
Tant que le fichier témoin SSR, n’est pas présent les fichiers nommés ssr_* ne sont pas traités et en cas de transfert d’un/de nouveau(x) fichier(s) nommé(s) de manière identique à un/des fichier(s) déjà présent(s) dans le répertoire, le(s) fichier(s) existant(s) sera/seront écrasé(s).
Etape 4 : Suppression du fichier témoin
Le fichier témoin est supprimé après importation de l’ensemble des fichiers SSR.