Documentation Application métier PDS78 - Fédération PDS-78

Transcription

Documentation Application métier PDS78 - Fédération PDS-78
Application logicielle métier
PDS-78
Docteur Dominique POUSSARD
Août 2007
Application logicielle métier PDS78 - Dr Dominique POUSSARD
Choix technologiques préalables
La mise à disposition d’un système informatique performant pour l’activité de PDS des médecins
libéraux exerçant au sein des MMG représentait un challenge : les informations et leur gestion
devaient être accessibles simplement, sans installation logicielle sur plusieurs centaines de postes de
médecins participant à la PDS sur le territoire des Yvelines.
Chaque médecin devait pouvoir déposer ses propres informations et consulter l’ensemble des
informations communes en temps réel, tant au sein des MMG que de leurs cabinets personnels ou de
leur domicile. Le développement d’une solution basée sur Internet était donc le meilleur choix.
Conception, fonctionnalités
La phase de conception, que j’ai menée de Mars à Juin 2003 pour la seule MMG de Montigny, m’a
permis de définir les fonctionnalités essentielles de l’application métier :



Information au sein d’une zone Internet publique, destinée au public, aux collectivités locales,
aux institutionnels et aux professionnels de santé : présentation de l'action et des intervenants de
la Permanence des Soins sur le territoire des communes de Guyancourt, Montigny et Voisins le
Bretonneux et mode d'emploi concis du recours aux soins en MMG.
Accès sécurisé à la zone Internet professionnelle par identifiant et mot de passe personnel et
confidentiel, changé régulièrement par l’usager. Cette zone, réservée aux médecins participants
et aux personnes habilitées, ouvre sur de nombreuses fonctionnalités :
 gestion simplifiée des choix de gardes,
 gestion du tableau de gardes,
 gestion automatique et suivi des indemnisations de garde,
 suivi personnel d'activité de garde : actes, honoraires, indemnités,
 recueil des données et rédaction des observations des actes réalisés en MMG avec envoi
automatique d'email à destination du médecin traitant du patient et du médecin effecteur
pour archivage médico-légal personnel,
 consultation des observations exhaustive des actes effectués en MMG par date,
 statistiques graphiques en temps réel de l'activité médicale en MMG :
 provenance des patients,
 mode d'accès,
 démographie,
 motifs de consultation,
 pathologies diagnostiquées,
 devenir des patients...
 statistiques graphiques globales de gardes,
 statistiques sur les médecins participants,
 annuaire des médecins participants,
 forum d'échange,
 consultation en ligne des documents de formation issus des sessions de FMC organisées
mensuellement par l'AM3V,
 consultation en ligne des dossiers FAQSV et des documents de synthèse publiés par
l'AM3V,
 annuaire des professionnels et institutions.
 pages d'informations diverses : vie de l’association, EPU…
 commande et suivi des divers imprimés utilisés en MMG,
 gestion du digicode d'accès à la MMG et communication automatique par mail à la
régulation,
 gestion des adhésions à l'association et des cotisations,
 gestion des droits d'accès aux pages professionnelles,
 suivi de fréquentation du site...
Sécurisation des données personnelles par cryptage des données, anonymisation des données
patients, protection de l’accès par identifiant/mot de passe personnels et confidentiels gérés par
l’usager.
2
Application logicielle métier PDS78 - Dr Dominique POUSSARD

logiciel serveur d'emails assurant l'envoi de rappels de gardes automatiques à destination du
médecin participant, 7 jours, puis la veille de la garde, assurant également les tâches de
maintenance et de sauvegarde automatiques quotidiennes de la base de données sur support
externe.
Outils de développement
La richesse des fonctionnalités retenues dans la phase de conception et la brièveté des délais de
production nécessitait des outils performants, faciles à mettre en œuvre et bien maîtrisés. Les coûts
étaient réduits par ma possession des licences de nombre des outils.
Les outils retenus furent donc :









base de données client-serveur Firebird ® 1.5 open source (Interbase),
requêtes SQL à la base de données,
programmation de la DLL ISAPI et de l'EXE sous Delphi 7® Entreprise de Borland,
composants internet Delphi 7® :
o Atozed Intraweb®,
o TMS-Software® pour Intraweb,
o Indy®,
o dP-software®,
logos 3D sous Ulead Cool 3D® 3.0,
images sous Macromedia Fireworks® MX 2004,
animations sous Macromedia Flash® MX 2004 pro,
pages statiques sous Macromedia Dreamweaver® MX 2004,
serveur internet Microsoft IIS® 6.0,
Développement
L’application métier a été développée de Juillet à Novembre 2003.
La définition et l’organisation de la base de données client-serveur SQL a été la première étape.
La programmation visuelle objet sous Delphi 7 appuyée sur les composants Intraweb a beaucoup
simplifié le développement des deux logiciels :


Une DLL ISAPI (A***_ISAPI.dll) compilée à partir :
o d’un module server controller Intraweb centralisant les accès users et gérant les pools
mémoire des users connectés,
o d’un data module gérant l’accès à la base de données et les requêtes SQL au travers
de composants BDE et Interbase Delphi,
o d’autant de modules sources que de pages web. Les pages statiques utilisent la
technologie des templates alors que les pages dynamiques comportent une quantité
variable de code et s’appuient sur les composants Intraweb,
o de modules de code utilitaire.
Un EXE (RappelGardes.exe) compilé à partir :
o d’un module principal pour la fenêtre Windows principale et ses fonctionnalités,
o d’un data module pour l’accès à la base de données et les requêtes SQL.
Aucune difficulté particulière n’a été rencontrée dans le développement hormis une certaine instabilité
des composants Intraweb obligeant à installer régulièrement des versions mises à jour sur la machine
de production (instabilité qui perdure puisqu’il m’a fallu récemment revenir à la version 8.0.22 après
installation des versions 9.0.15 puis 9.0.16).
3
Application logicielle métier PDS78 - Dr Dominique POUSSARD
Déploiement
L’application métier a été déployée en béta test en Novembre 2003 sous Microsoft IIS 6.0 sur une
machine basique sous Windows XP Pro reliée à Internet par liaison câble grand public 1 Mo à mon
domicile en DNS dynamique gratuit (dynu.com).
Les 40 médecins de la MMG de Montigny (sauf un réfractaire à l’informatique) ont participé au béta
test après une soirée de formation aux différentes fonctionnalités.
Les dysfonctionnements relevés et signalés furent corrigés, pour la plupart dans les 24h.
Les médecins se sont appropriés très facilement et rapidement l’application. Choix de garde et saisie
des actes ont été réalisés à la MMG de Montigny d’emblée, dès Novembre 2003, grâce à l’application
métier. A ce jour (Septembre 2007), le site de la MMG de Montigny a reçu 16.700 connexions à la
zone professionnelle et délivré 53.500 pages web.
L’hébergement à mon domicile et à mes frais a été abandonné après 6 mois de tests en vraie
grandeur grâce à la location d’un serveur dédié AMD Sempron 2400+®, 512Mo de mémoire vive,
sous Microsoft Windows Server 2003®, et l’achat du nom de domaine pds78.org auprès du
fournisseur d'hébergement et d'accès au backbone Internet AMEN® (amen.fr).
L’accès au serveur pose encore parfois quelques problèmes aux utilisateurs de façon tout à fait
aléatoire et non reproductible sans qu’il me soit possible de savoir s’il s’agit d’un problème côté client,
serveur ou Internet. Il arrive aussi de façon aléatoire que le délai de timeout soit raccourci sur le site.
Evolution
La MMG des Mureaux, puis la MMG Mobile ont adopté l’application PDS78, puis depuis la création de
la Fédération PDS78, la MMG de Mantes et la Point de garde de Rambouillet.
Bien qu’ayant le projet de regrouper l’ensemble dans une seule application et une seule base de
données, j’ai choisi de développer des applications séparées. Cette option permettait un
développement plus rapide et fiable sans perturber l’existant.
Pour l’heure, la MMG des Mureaux utilise la fonctionnalité gardes. Depuis près de 3 ans, elle est
utilisée systématiquement sans problème et à la satisfaction de tous. Les médecins pourraient utiliser
l’ensemble des fonctions depuis plus d’un an. Une formation serait souhaitable.
La MMG Mobile utilise les fonctionnalités gardes et actes mais cette dernière est utilisée en différé,
les actes étant saisis par la secrétaire.
La MMG de Mantes utilise depuis huit mois l’application. Beaucoup semblent peu motivés par la tenue
des observations patients, sans doute par une information insuffisante.
Le point de garde de Rambouillet a fait sa demande d’utilisation en Juillet 2007, le développement de
l’application spécifique est en cours.
La naissance de la Fédération PDS 78 a amené la nécessité d’une information départementale
disponible au travers d’un site Internet spécifique, public et statique.
La navigation dans les différents modules a été réorganisé autour d’une page portail qu’il faut
maintenant repenser afin de faciliter l’accès à l’information recherchée par les usagers du site.
Enfin, un nouveau logiciel est en développement, permettant aux personnels de la Fédération, une
gestion facilitée : informations communales, annuaire des pharmacies du département et tableau de
garde, etc., l’ensemble en lien avec les bases de données accessibles depuis le site Internet.
4
Application logicielle métier PDS78 - Dr Dominique POUSSARD
Plan du Site Internet PDS-78 / AM3V
5
Application logicielle métier PDS78 - Dr Dominique POUSSARD
Site PDS-78 / AM3V - Accueil public (Intraweb + template)
Site PDS-78 / AM3V - Saisie des actes (Intraweb)
6
Application logicielle métier PDS78 - Dr Dominique POUSSARD
Site PDS-78 / AM3V - Accueil professionnel (Intraweb)
Site PDS-78 / AM3V - Statistiques sur connexions (Intraweb + TeeChart)
7
Application logicielle métier PDS78 - Dr Dominique POUSSARD
library AM3V_ISAPI;
uses
ISAPIApp,
IWInitISAPI,
ServerController in 'ServerController.pas' {IWServerController: TIWServerControllerBase},
DatamoduleUnit in 'DatamoduleUnit.pas' {DataModule1: TDataModule},
IWUAccueil in 'IWUAccueil.pas' {FormAccueil: TIWAppForm},
IWUBureau in 'IWUBureau.pas' {FormBureau: TIWAppForm},
IWUChoixGardes in 'IWUChoixGardes.pas' {FormChoixGardes: TIWAppForm},
IWUFormations in 'IWUFormations.pas' {FormFormations: TIWAppForm},
IWUGardesLibres in 'IWUGardesLibres.pas' {FormGardesLibres: TIWAppForm},
IWUMesCoordonnees in 'IWUMesCoordonnees.pas' {FormMesCoordonnees: TIWAppForm},
IWUMesGardes in 'IWUMesGardes.pas' {FormMesGardes: TIWAppForm},
IWUMissions in 'IWUMissions.pas' {FormMissions: TIWAppForm},
IWUSoireesFMC in 'IWUSoireesFMC.pas' {FormSoireesFMC: TIWAppForm},
IWUStatuts in 'IWUStatuts.pas' {FormStatuts: TIWAppForm},
IWUTableauGardes in 'IWUTableauGardes.pas' {FormTableauGardes: TIWAppForm},
IWUUneCoordonnee in 'IWUUneCoordonnee.pas' {IWFormUneCoordonnee: TIWAppForm},
JoursFeries in 'JoursFeries.pas',
IWUChercheGarde in 'IWUChercheGarde.pas' {FormChercheGarde: TIWAppForm},
IWUStatGardes1 in 'IWUStatGardes1.pas' {FormStatGardes1: TIWAppForm},
IWUGardesPrefs in 'IWUGardesPrefs.pas' {FormGardesPrefs: TIWAppForm},
IWUPrepaGardes in 'IWUPrepaGardes.pas' {FormPrepaGardes: TIWAppForm},
IWUSaisieActes in 'IWUSaisieActes.pas' {FormSaisieActes: TIWAppForm},
IWUIdentification in 'IWUIdentification.pas' {FormIdentification: TIWAppForm},
IWUMaisonMedicale in 'IWUMaisonMedicale.pas' {FormMaisonMedicale: TIWAppForm},
IWUAccueilPublic in 'IWUAccueilPublic.pas' {FormAccueilPublic: TIWAppForm},
IWUEnCasdUrgence in 'IWUEnCasdUrgence.pas' {FormEnCasdUrgence: TIWAppForm},
IWUConseilsPratiques in 'IWUConseilsPratiques.pas' {FormConseilsPratiques: TIWAppForm},
IWUsInscrire in 'IWUsInscrire.pas' {FormsInscrire: TIWAppForm},
IWUStatsMedecins in 'IWUStatsMedecins.pas' {FormStatsMedecins: TIWAppForm},
IWUAssemblee in 'IWUAssemblee.pas' {FormAssemblee: TIWAppForm},
IWUPlanDuSite in 'IWUPlanDuSite.pas' {FormPlanDuSite: TIWAppForm},
IWUFonctionnementMM in 'IWUFonctionnementMM.pas' {FormPratiqueGarde: TIWAppForm},
IWUCahierLiaison in 'IWUCahierLiaison.pas' {FormCahierLiaison: TIWAppForm},
UIWComptesRendusEPU in 'UIWComptesRendusEPU.pas' {FormComptesRendusEPU: TIWAppForm},
IWUStatsConnexions in 'IWUStatsConnexions.pas' {FormStatsConnexions: TIWAppForm},
IWUMessages in 'IWUMessages.pas' {FormMessage: TIWAppForm},
IWUCotisations in 'IWUCotisations.pas' {FormCotisations: TIWAppForm},
IWUStatGardes2 in 'IWUStatGardes2.pas' {FormStatGardes2: TIWAppForm},
IWUStatGardes3 in 'IWUStatGardes3.pas' {FormStatGardes3: TIWAppForm},
IWUStatGardes4 in 'IWUStatGardes4.pas' {FormStatGardes4: TIWAppForm},
IWUChercheActes in 'IWUChercheActes.pas' {FormChercheActes: TIWAppForm},
IWUStatActes1 in 'IWUStatActes1.pas' {FormStatActes1: TIWAppForm},
IWUStatActes2 in 'IWUStatActes2.pas' {FormStatActes2: TIWAppForm},
IWUAdressesUtiles in 'IWUAdressesUtiles.pas' {FormAdressesUtiles: TIWAppForm},
IWUStatActes3 in 'IWUStatActes3.pas' {FormStatActes3: TIWAppForm},
IWUStatActes4 in 'IWUStatActes4.pas' {FormStatActes4: TIWAppForm},
IWUStatActes5 in 'IWUStatActes5.pas' {FormStatActes5: TIWAppForm},
IWUActesToExcel in 'IWUActesToExcel.pas' {FormSendExcel: TIWAppForm},
IWUDigicode in 'IWUDigicode.pas' {FormDigicode: TIWAppForm},
IWUReapprovision in 'IWUReapprovision.pas' {FormReapprovision: TIWAppForm},
IWUSuiviConnexion in 'IWUSuiviConnexion.pas' {FormSuiviConnexion: TIWAppForm},
IWUGestionDesDroits in 'IWUGestionDesDroits.pas' {FormGestionDesDroits: TIWAppForm},
IWUIndemnisations in 'IWUIndemnisations.pas' {FormIndemnisation: TIWAppForm},
IWUDoublementGarde in 'IWUDoublementGarde.pas' {FormDoublementGarde: TIWAppForm},
IWUSiteCharges in 'IWUSiteCharges.pas' {FormSiteCharges: TIWAppForm},
IWLicenseKey in 'IWLicenseKey.pas';
{$R *.RES}
exports
GetExtensionVersion,
HttpExtensionProc,
TerminateExtension;
begin
IWRun;
end.
Site PDS-78 - Code source du projet AM3V_ISAPI.dll (liste des modules sources)
8