Zope et CPS
par
popularité : 1%
Zope et CPS, des outils simples à installer et qui rendent de grands services en milieu hospitalier. Voici un exemple de mise en place de ces applications pour la gestion documentaire participative dans un hÎpital.
Après s’être implantés de manière exponentielle dans les fonctions publiques d’état et territoriale, Zope et CPS (ou Collaborative Portal Server) pourraient bien suivre le même chemin dans la fonction publique hospitalière, enfin cela dépendra de nous !
Un petit retour d’expérience vaut souvent mieux qu’un long discours...
Travaillant par convention quelques jours par mois pour un petit hôpital n’ayant aucun informaticien, (je suis informaticien dans un gros hôpital, détaché à la direction de la qualité), j’ai été amené à proposer aux administrateurs un intranet "clé en mains", s’appuyant sur Zope + CPS. Le but de la manoeuvre est simple : le personnel de l’hôpital devait développer l’intranet sans avoir systématiquement recours à moi.
Pourquoi Zope et CPS ?
Voilà maintenant plus de deux ans que j’ai découvert Zope, après avoir été confronté aux problèmes des solutions Linux-Apache-Mysql-PHP (ou LAMP). Loin de moi l’idée de dénigrer LAMP (j’ai d’ailleurs travaillé assez longtemps sur ce type de solutions), ni de "troller" inutilement sur le pour ou contre LAMP. Je cherche seulement à vous faire partager ma passion pour Zope, et de vous montrer ce que Zope peut apporter à nos hôpitaux en terme de productivité.
Au fait Zope qu’est-ce que c’est ?
Certains d’entre nous n’ont peut-être pas encore entendu parler de Zope ou ont du mal à le définir. Zope, c’est d’abord un serveur d’objets léger (un ORB light - Object Request Broker), qui sert à mettre en place rapidement des applications Web structurées. Ces applications seront développées de préférence en python (langage très utilisé dans le monde médical) mais pourront utiliser n’importe quel autre langage de programmation. Là on retrouve un peu la philosophie d’Apache mais avec les possibilités Objet. Chacune de nos applications est un objet au sens Zope et outre les capacités objet classiques, Zope intègre l’acquisition que je ne vais pas décrire ici mais qui vous permettra de créer très simplement des "objets réutilisables". Zope, c’est une base de données objet intégrée très puissante avec un moteur de recherche de très haut niveau. Zope, c’est un gestionnaire de sécurité très complet, soit en natif, soit en intégrant un annuaire LDAP, ActiveDirectory sous Windows ou tout autre annuaire. Zope, c’est aussi la possibilité de vous connecter à n’importe quelle base de données du marché et ce de manière transparente (Zope se comporte un peu comme un middleware). Zope résiste aux montées en charge grâce à ses fonctions de type cluster. Zope c’est 800 produits libres existants dans de nombreux domaines, il suffit d’aller "faire son marché" sur http://www.zope.org. Zope intègre tous les normes récentes du net (XML, XML-RPC, Dublin-Core...).
Ayant pratiqué PHP et Zope, j’aurai tendance à dire que, pour programmer la même chose, Zope me prends 2 fois moins de temps en développement et 4 fois moins en maintenance. Mais je vois déjà la levée de boucliers des adeptes LAMP qui n’ont pas encore fait le grand saut vers Zope, alors je ne le dirai pas... ;-)
Zope peut s’apprendre seul, en 2 mois, grâce à l’importante documentation disponible et à l’aide que l’on peut trouver notamment sur le site http://www.zopera.org. Bien sûr, en 2 mois on est assez efficace pour développer sa première application mais la pratique nous en apprend toujours plus...
Et CPS alors ?
CPS est un objet métier de type gestion de contenu vous permettant de mettre en place un serveur collaboratif et de déléguer l’ensemble de la gestion de ce site à des non informaticiens. Avec CPS votre intranet sera mis en place en 2 jours et pourra être alimenté dès lors. CPS intègre un annuaire très complet avec gestion de groupe (bien sûr vous pouvez le relier à votre annuaire LDAP si vous en avez un), un Workflow de publication puissant et un moteur de recherche performant. Vous intégrez des documents Word, Excel, Powerpoint, PDF, OpenOffice.org, RTF... au sein de votre intranet. CPS vous permettra de faire une recherche textuelle à l’intérieur de ces documents et même d’afficher directement leur contenu sans avoir à ouvrir un quelconque outil de prévisualisation.
Revenons maintenant au retour d’expérience.
Pourquoi un intranet collaboratif ?
Nos hôpitaux sont de plus en plus confrontés au besoin de disposer d’une gestion documentaire participative. Dans mon cas, la demande émanant de l’administration de l’hôpital était la mise en ligne de toutes les informations internes, les procédures qualité bien sûr, les informations de la communication, de la DRH, du CGOS... Mais également de créer des espaces d’informations réservés (comptes rendus CTE, CHSCT, CME...).
A ces besoins classiques s’ajoute une volonté de dématérialiser certaines demandes (bons de travaux, demandes de repas, autres demandes...) sans avoir à remettre en cause le circuit existant par l’achat d’un logiciel, de haut niveau certes, mais bien trop complet et contraignant.
Une première présentation de CPS a convaincu les médecins et les membres du groupe action qualité du bien fondé du choix de CPS. Un serveur spécifique a été acheté pour la mise en place de l’intranet : serveur Intel, 2 disques SCSI de 30 Go, 512 Mo mémoire vive, aucun OS (2000 euros).
La mise en place du serveur
Le matériel reçu, l’installation commence :
Installation de Linux (Debian) ;
Mise en mirroir de la partition réservée aux données ;
Mise en place des sauvegardes (un serveur de sauvegardes sous NT existant dans l’hôpital j’ai choisi de l’utiliser en installant Samba sous Linux).
Au total : 1 journée.
Installation de Zope + CPS ;
Premiers paramétrages de CPS ;
Mise en place d’un serveur Apache en mode proxy.
Au total : 1 journée.
En 2 journées l’intranet fonctionne.
Une journée de formation des utilisateurs à CPS et l’intranet est prêt à démarrer.
Un peu de travail sur l’annuaire de CPS (l’hôpital en question n’ayant pas d’annuaire, j’ai choisi l’annuaire CPS plutôt que d’installer un serveur OpenLDAP plus long à installer et à maintenir), la structure est maintenant fonctionnelle.
En ce qui concerne la dématérialisation des différentes demandes, j’ai choisi de développer ponctuellement les formulaires en dehors de CPS. Si CPS est tout à fait adapté à la gestion de contenu, le choix d’une base de données relationnelle s’avère à mon avis plus approprié pour des applications nécéssitant par la suite des traitements statistiques.
Ma première application a été le portage d’un bon papier de demande de travaux (tel qu’il existe) vers Zope. Ce portage a été validé par le responsable des services techniques. La réalisation grâce à Zope et sa gestion de sécurité intégré a pris moins de 2 jours. La création du formulaire et de ses traitements a été réalisée avec un outil maison (vitefait2 que vous pouvez librement télécharger et utiliser).
La petite application rapidement développée s’appuie sur l’annuaire et sur Gadfly intégré à Zope, elle a été laissée en tests au responsable des services techniques pour avis. Il me restait à installer une base relationnelle digne de ce nom, Gadfly restant très limité. L’installation de Postgresql, son intégration à Zope, la mise en place des sauvegardes de base m’ont pris moins d’une journée. Quant au portage de l’application de Gadfly vers Postgresql pour ma demande de formulaire, 5 minutes ont suffit.
Conclusions
Voilà en quelques lignes un exemple de mise en place de Zope qui pourrait être transposé dans de nombreux hôpitaux, notamment pour l’intranet et la mise en place de toutes les demandes périphériques. Pour toutes ces demandes ponctuelles, Zope propose une réponse très rapide sans avoir à gérer par la suite un code difficilement maintenable.
Netographie
Zope à Lille Metropole ;
Les Logiciels Libres dans les hôpitaux ;
La ville de Lyon et Zope ;
Zope pour les sites gouvernementaux ou territoriaux ;
Knoppix et une démo de Zope + CPS.
Commentaires