Contexte et contraintes

Un CHU (Centre Hospitalier Universitaire) cumule toutes les contraintes d'un environnement IT sécurisé : EDR Cortex XDR actif sur tous les postes, réseau cloisonné, données de santé soumises à HDS (Hébergement de Données de Santé), systèmes applicatifs propriétaires (MAGH2, HOSPILOG, PASTEL, Chronotime), et bases Oracle sans accès direct depuis les postes standard.

AutomationSequence V8 a été déployé à la DSN (Direction des Systèmes Numériques) pour automatiser trois processus mensuels précédemment réalisés manuellement par les techniciens : export PMSI, rapprochement comptable MAGH2/Oracle, et audit des présences Chronotime.

En milieu hospitalier, une automatisation non auditée est une automatisation refusée. Le journal HMAC d'AutomationSequence V8 a été l'argument décisif pour l'accord de la RSSI.

Systèmes d'information concernés

  • MAGH2 — système de gestion administrative et financière. Base Oracle propriétaire, connexion via tnsnames.ora spécifique.
  • HOSPILOG — logistique hospitalière. Exports via répertoire réseau partagé (fichiers CSV horodatés).
  • PASTEL — gestion des ressources humaines. API REST interne avec authentification Basic sur HTTPS.
  • Chronotime Workplace — gestion des temps de présence. Export via SQL Server et interface web scraping.
  • Oracle DWH — entrepôt de données hospitalier. Requêtes PL/SQL complexes avec vues PMSI.

Séquence 1 : export PMSI mensuel

Le PMSI (Programme de Médicalisation des Systèmes d'Information) requiert un export mensuel formaté. Auparavant : 3h de travail manuel, risque d'erreur de calcul.

# export_pmsi_mensuel.asenc (séquence chiffrée)
[
  {
    "type": "oracle_connect",
    "dsn_vault_key": "ORACLE_DWH_DSN",
    "output_var": "conn_dwh"
  },
  {
    "type": "oracle_query",
    "connection": "{{conn_dwh}}",
    "query": "SELECT * FROM V_PMSI_RSA WHERE mois_sort = :mois",
    "bind": {"mois": "{{date_YYYYMM}}"},
    "output_var": "rsa_data"
  },
  {
    "type": "llm_analyze",
    "model": "llama3:8b",
    "prompt": "Vérifie la cohérence de ces données PMSI. Signale les anomalies (GHM manquant, durée séjour aberrante, DP invalide). Données : {{rsa_data|sample:50}}",
    "output_var": "pmsi_anomalies"
  },
  {
    "type": "file_write_csv",
    "data": "{{rsa_data}}",
    "path": "\\srv-pmsi\exports\RSA_{{date_YYYYMM}}.csv"
  },
  {
    "type": "smtp_send",
    "to": "drg@chu-exemple.fr",
    "subject": "Export PMSI {{date_YYYYMM}} — {{rsa_data|length}} RSA",
    "body": "Export disponible sur \\srv-pmsi\exports\. Anomalies détectées : {{pmsi_anomalies}}"
  }
]

Résultat : 3h → 8 minutes, zéro erreur de calcul, rapport d'anomalies IA automatique.

Séquence 2 : rapprochement MAGH2/Oracle

Le rapprochement mensuel entre les dépenses MAGH2 et les engagements Oracle DWH nécessitait deux exports manuels et un tableur Excel complexe. La séquence V8 :

  1. Connecte MAGH2 via Oracle (tnsnames spécifique DSN_MAGH2).
  2. Connecte le DWH Oracle (DSN_DWH).
  3. Exécute les deux requêtes en parallèle (oracle_query_async).
  4. Joint les deux datasets en mémoire Python.
  5. Identifie les écarts supérieurs à un seuil configurable.
  6. Génère un rapport Excel formaté avec couleurs et totaux.
  7. Envoie le rapport par SMTP avec pièce jointe.

Résultat : 4h → 12 minutes, détection automatique des écarts, historique conservé 7 ans dans SQLite (conformité comptable).

Séquence 3 : audit Chronotime

Chronotime expose les données de présence via SQL Server. La séquence consolide les présences mensuelles par service et détecte les anomalies :

{
  "type": "sqlserver_query",
  "dsn_vault_key": "CHRONOTIME_DSN",
  "query": "SELECT agent_id, service, SUM(duree_min)/60.0 as heures FROM presences WHERE mois = :mois GROUP BY agent_id, service",
  "bind": {"mois": "{{date_YYYYMM}}"},
  "output_var": "presences"
}

Conformité HDS

Trois exigences HDS couvertes nativement par AutomationSequence V8 :

  • Traçabilité des accès aux données — chaque action Oracle/SQL Server est enregistrée dans le journal HMAC immuable avec timestamp, utilisateur, requête hashée et résultat.
  • Chiffrement des données au repos — les séquences .asenc chiffrent les credentials et la logique de traitement. Aucune donnée patient en clair dans les fichiers de configuration.
  • Cloisonnement des accès — le vault utilise des comptes Oracle dédiés par séquence, avec uniquement les droits SELECT nécessaires. Pas de compte DBA dans les séquences automatisées.

Chiffres clés après 8 mois

  • Temps économisé : ~7h/mois pour 3 techniciens → 40 minutes/mois total.
  • Erreurs de traitement : 0 depuis la mise en production (vs 2-3/mois avec le processus manuel).
  • Alertes Cortex XDR : 2 faux positifs au démarrage (résolus par whitelisting sur hash SHA-256), 0 depuis.
  • Anomalies détectées par IA : 14 en 8 mois (dont 9 erreurs de saisie et 5 anomalies réelles signalées au DIM).
  • Audit RSSI : journal HMAC accepté comme preuve de traçabilité conforme HDS.

Conclusion

Le SI hospitalier est l'un des environnements les plus exigeants pour l'automatisation : EDR actif, données sensibles, systèmes propriétaires, conformité HDS obligatoire. AutomationSequence V8 répond à ces contraintes par conception — pas par contournement. Le journal HMAC, le chiffrement des séquences, la compatibilité EDR et les connecteurs Oracle/SQL Server natifs en font l'outil adapté à ce contexte. Le retour sur investissement est mesurable dès le premier mois.

⚙️
PRODUIT LIÉ
AutomationSequence V8.0
← Article précédent Retour au blog →