76
Laurent MUTHELET 2Gr1 Rapport de Stage : Refonte du système de publication et de diffusion d’informations au CHS du Vinatier Maître de stage professionnel : M. Emmanuel COUX Maître de stage pédagogique : M. Jean-Philippe FARRUGIA année 2006-2007

Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

  • Upload
    buihanh

  • View
    235

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent MUTHELET 2Gr1

Rapport de Stage :

Refonte du système de publication et de

diffusion d’informations au CHS du Vinatier

Maître de stage professionnel : M. Emmanuel COUX Maître de stage pédagogique : M. Jean-Philippe FARRUGIA année 2006-2007

Page 2: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

REMERCIEMENTS

Je tiens ici à remercier tout particulièrement M. COUX Emmanuel, responsable du

service informatique du Centre Hospitalier Spécialisé Le Vinatier, pour avoir bien voulu me

faire confiance et m’accueillir pendant ces 10 semaines au sein de son équipe.

Je veux aussi remercier tous les membres du service pour leur formidable accueil, leur

disponibilité, leur dynamisme ainsi que leur soutien :

� Thierry DECHENAUD

� Xavier TERRA

� Abderrahim EL AZZOUZI

� Hélène CHEYNET

� Annie MIOQUE

� Bruno IVARS

� Olivier JOVET

� Frédéric JEANPRETRE

� Franck DEAL

� Alain MOISSONNIER

� Patrick CLARES

� Rachida BOUDEBZA

Enfin, je ne pourrais pas continuer sans remercier M. FARRUGIA pour sa gentillesse et pour

avoir accepté de me suivre pendant ce stage.

Page 3: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

SOMMAIRE

INTRODUCTION..................................................................................................................................................1

1. PRESENTATION DE L'ENTREPRISE .........................................................................................................2

1.1. HISTORIQUE.................................................................................................................................................3

1.2. ACTIVITE ......................................................................................................................................................4

1.2.1. Organigramme général.......................................................................................................................5

1.3. LE SERVICE INFORMATIQUE .........................................................................................................................8

1.3.1. Histoire ...............................................................................................................................................8 1.3.2. Organisation interne...........................................................................................................................9 1.3.3. Le matériel ........................................................................................................................................10

1.3.3.1. Le réseau du Vinatier.................................................................................................................................10

2. LE TRAVAIL EFFECTUE.............................................................................................................................12

2.1. PRESENTATION DU TRAVAIL.......................................................................................................................13

2.2. ETUDE PREALABLE DE L'EXISTANT........................................................................................................13

2.2.1. Etude du disque partagé ...................................................................................................................13 2.2.2. Etude la diffusion de mail .................................................................................................................14 2.2.3. Etude de l'Intranet ............................................................................................................................14

2.2.3.1. Initiation et apprentissage ..........................................................................................................................15

2.2.4. Recherche de solutions .....................................................................................................................16 2.2.5. Etude du système de gestion des formulaires....................................................................................19

2.2.5.1. Schéma récapitulatif ..................................................................................................................................21

2.3. REALISATION DU PROJET............................................................................................................................22

2.3.1. Refonte de l'Intranet..........................................................................................................................22

2.3.1.1. Description et fonctionnement du framework............................................................................................22 2.3.1.2. Problèmes rencontrés.................................................................................................................................28

2.3.2. Création des formulaires ..................................................................................................................28

2.3.2.1. Description du système actuel ...................................................................................................................28 2.3.2.2. Explications du changement de langage ....................................................................................................29 2.3.2.3. Explications de la gestion des demandes ...................................................................................................33 2.3.2.4. Difficultés rencontrées...............................................................................................................................36

3. LE BILAN.........................................................................................................................................................38

3.1. CRITIQUE DU TRAVAIL EFFECTUE...............................................................................................................39

3.2. L'AVENIR DU PROGRAMME.........................................................................................................................40

3.3. BILAN PROFESSIONNEL...............................................................................................................................41

3.4. BILAN PERSONNEL......................................................................................................................................42

CONCLUSION ....................................................................................................................................................43

LEXIQUE .............................................................................................................................................................44

ANNEXES ............................................................................................................................................................46

Page 4: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 1

Introduction

Comme prévu dans la formation dispensée par l’I.U.T., un stage de 10 semaines

minimum, obligatoire, marque la fin des études universitaires. Etant donné son importance, il

est nécessaire de bien choisir l’entreprise ou l’organisme devant nous accueillir.

Pour cela, différents critères peuvent rentrer en jeu. Bien évidemment, et en premier

lieu, il y a le sujet du stage proposé par l’entreprise, motivant ou non l’étudiant. Cet aspect est

plus que primordial puisqu’il conditionne en grande partie notre capacité d’implication dans

le travail, notre satisfaction à le réaliser et notre faculté d’intégration dans une équipe.

D’autres critères comme la situation géographique, l’importance de la rémunération, le cadre

de travail influencent également notre choix.

En ce qui me concerne, j’ai choisi de rejoindre le Centre Hospitalier Le Vinatier

principalement pour deux raisons :

1. Le sujet du stage, qui, lors de mon entretien avec M. COUX, m’a semblé

très enthousiasmant : Refonte partielle du système de publication et diffusion de l’information dans l’hôpital avec gestion de formulaires.

2. Le cadre de travail, à savoir le département informatique du Centre

Hospitalier du Vinatier, une équipe jeune, sympathique et dynamique.

Le but de cette modification est de réorganiser de manière plus classifiée les différents

moyens de répandre l’information dans l’hôpital.

De mon côté, j’espérais énormément de ce stage surtout sur un point : avoir une vraie

expérience du monde du travail. Cela sous-entend pour moi : avoir une idée des compétences

requises et recherchées par les entreprises et évaluer les différences entre le rythme de travail

universitaire et professionnel.

C’est en effet le genre de choses que l’on ne peut apprendre sur les bancs d’une école.

Page 5: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 2

I/Présentation de l’entreprise

Page 6: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 3

1.1. Historique

Quelques 20 ans après la loi d'assistance aux malades mentaux de 1858 décrétant que

"chaque département est tenu d'avoir un établissement public, spécialement destiné à recevoir

et soigner les aliénés", le Conseil Général du Rhône décide la

création de "l'Asile d'Aliénés de Bron", destiné à recevoir les

malades mentaux jusque-là placés à l'Antiquaille.

Cent hectares de terrain dont le Mas des Tours sont

progressivement acquis pour la construction de l'asile sur la

petite commune de Bron, loin de la ville et de la société.

L'architecte départemental Antonin Louvier, par ailleurs concepteur d'une partie de la

Préfecture du Rhône, de la prison St Paul et d'établissements scolaires, est chargé du projet. Il

s'inspire des thèses architecturales d'Esquirol, selon lesquelles l'asile a pour but de rassembler,

d'isoler, de protéger et de traiter les aliénés : "L'asile est source de guérison".

Proche de celles d'autres asiles, notamment de Ville-Evrard en région parisienne et de

St-Egrève en Isère, la construction de l'asile se veut pavillonnaire.

La chapelle marque la séparation des quartiers hommes

(au sud) et femmes (au nord). Pour chaque sexe sont prévus

neuf "quartiers de classement", attribués aux différentes

catégories de malades : tranquilles et semi-tranquilles,

épileptiques, agités, etc.

Au-delà des bâtiments habités, s'étendent les terres cultivées, la ferme des hommes, la

ferme des femmes, les ateliers, granges et porcherie, où peuvent travailler certains malades.

L'asile peut ainsi développer une instance agricole et vivre en autarcie.

L'établissement ouvre ses portes en 1876, et devient en 1937 l'Hôpital psychiatrique

départemental du Vinatier. Conçu au départ pour 600 malades, des agrandissements s'avèrent

rapidement nécessaires.

Au lendemain de la guerre, le Vinatier connaît de profondes transformations tant dans le

confort et la modernisation des services, que dans sa vocation médicale, avec notamment

l'arrivée des neuroleptiques dans les années 50, le développement des sociothérapies, et la

professionnalisation des soignants.

Puis c'est la prise en charge de la maladie mentale qui connaît une grande mutation avec la

Page 7: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 4

mise en place du secteur organisant les soins selon l'appartenance géographique et donnant

des alternatives à l'hospitalisation, avec notamment l'ouverture progressive en ville de

structures de type dispensaires, devenues centres médico-psychologiques. Des Centres de

jour, des Centres d'Accueil Thérapeutiques à Temps Partiel (C.A.T.T.P.) complètent ce

dispositif.

Aujourd'hui le Centre Hospitalier Le Vinatier est doté d'un

parc magnifique, héritage du passé agricole de l'établissement, et sa

vocation psychiatrique s'est développée bien au-delà des murs

d'enceinte, au plus près des malades et de leur environnement, en

concertation avec des partenaires politiques et sociaux.

1.2. Activité

Deuxième plus grand hôpital psychiatrique français, le Centre Hospitalier bénéficie

d’une implantation principale à BRON (Rhône) et s’étend sur près de 60 sites répartis dans le

Grand Lyon. Il emploie près de 2800 personnes et plus de 25 000 personnes y consultent

chaque année.

Il reçoit tout habitant des secteurs psychiatriques du département du Rhône dont il a la charge,

qui, à un moment donné de son existence a besoin d'un soutien ou d'une prise en charge

psychiatrique. Il est en charge d’une vaste zone couvrant le département du Rhône.

Il est implanté sur la commune de Bron. Il compte 1 033 lits d’hospitalisation

complète, et 280 places d’hospitalisation partielle. On les retrouve dans différents secteurs,

couvrant toutes les tranches d’âges et toutes les pathologies :

� Service de psychiatrie pénitentiaire,

� Service de psychiatrie générale adulte,

� Service de psychogériatrie,

� Service de psychiatrie infanto-juvénile,

� Service des arriérés profonds.

Page 8: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 5

1.2.1. Organigramme général

Source : http://www.ch-le-vinatier.fr/Mieuxconna%c3%aetreleCentreHospitalier

/Lorganigramme/tabid/65/Default.aspx

Le Vinatier dispose aussi de centres de consultation Médico-Psychologique et de prise en

charge en hôpitaux de jour, à l’extérieur de l’établissement :

� Pour les adultes, 16 Centres Médico-Psychologiques et 4 Centres d’Accueil

Thérapeutique à temps partiel (C.A.T.T.P.) sont pratiquement implantés sur la totalité

de l’agglomération lyonnaise, soit 17 communes.

� Pour les enfants, 17 Centres Médico-Psychologiques et 9 Centres d’Accueil

Thérapeutique à temps partiel sont répartis sur Lyon et les 17 communes de l’Est

Lyonnais.

Le Vinatier dispose également d’un matériel médical aussi énorme que perfectionné et de

diverses structures à caractère social qui s’avèrent indispensables :

Page 9: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 6

� Des services et matériels médico-techniques :

� Un service de radiologie,

� Un service d’ophtalmologie,

� Un service de soins dentaires,

� Une pharmacie,

� Un laboratoire d’analyses médicales.

� Un appareil à électroencéphalogramme (E.E.G.),

� Un appareil à électrocardiogramme (E.C.G.).

� Des services logistiques assurent le confort des patients et des prestations pour le

personnel de l’établissement (restaurant du personnel…).

� Des services techniques sont chargés de l’entretien permanent des locaux et des

installations ainsi que du parc qui environne les pavillons d’hospitalisation et les

différents bâtiments.

� Des services administratifs gèrent l’établissement et mettent en œuvre sa politique

générale au sein de la politique nationale de santé publique.

� Un service de gérance de tutelle dont le but est de gérer les biens des personnes, qui

pour une durée indéterminée se trouvent dans l’impossibilité d’agir par elles-mêmes.

Le Vinatier dispose en son sein, d’écoles de formation professionnelle :

� Institut de Formation en Soins Infirmiers (I .F.S.I.) agréé par le Ministère des

Affaires Sociales et de la Solidarité Nationale. Cet institut a pour mission

principale d’assurer, à l’issue d’un concours, la formation initiale (3 ans) pour

l’obtention du Diplôme d’Etat Infirmier.

� Un Institut de Formation des Cadres Infirmiers délivrant le certificat de Cadres

Infirmiers (ou Cadres de Santé).

Parmi les services généraux et sociaux mis à disposition du personnel hospitalier il existe :

� Une crèche hospitalière dénommée “Les Diablotins” d’une capacité d’accueil de 80

enfants. Implantée au cœur d’un parc boisé, la crèche bénéficie d’un espace aménagé

et de personnel qualifié.

� Un service social.

Page 10: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 7

� Une trésorerie (Recette) disponible dans l’enceinte de l'hôpital. Le budget

d’exploitation du Vinatier est de l’ordre de 60 millions d’euros.

Plan de l’hôpital : (le service informatique se trouve au bâtiment n°411)

1.3. Le service informatique

Ce service veille au respect de la stratégie de l’évolution du système et du matériel

informatique. Il se charge non seulement du bon fonctionnement du Système Central :

AS400 (IBM) mais aussi des applications qui sont attachées à ce gros système telles que :

� Gestion des patients

� Gestion de la file active

� Gestion économique et financière

� Gestion du personnel

Page 11: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 8

Il doit savoir résoudre les difficultés rencontrées lors de l’utilisation et lancer certains

traitements.

1.3.1. Histoire

Créé en 1987, le service informatique est issu d'un schéma directeur élaboré la même

année. Initialement situé au sous-sol du bâtiment administratif, il a été transféré au bâtiment

411 (anciennement bâtiment 35) au centre de l'hôpital, en décembre 1988. Il est toujours situé

au même endroit aujourd’hui.

A sa création, le personnel était composé de trois personnes. Aujourd'hui, il compte

dix agents permanents, chacun ayant un domaine de spécialité au sein du service (cf. ci-

dessus)

Les chefs de services :

1987- Juin 1990 Monsieur Merlin, ingénieur informaticien, démissionnaire.

Juillet 1990-Février 1991 Monsieur Bentoumi, assure l’intérim du poste de chef de

service.

Février 91 – Avril 91 Monsieur Schegerin, ingénieur, démissionnaire.

Juillet 91 – Décembre 92 Monsieur Burignat, ingénieur informaticien, licencié.

Décembre 92 - Mai 96 Monsieur Bentoumi, assure l’intérim comme chef de service.

Mai 96 – Juillet 2003 Monsieur Pontiès, ingénieur informaticien.

Juillet 2003 à aujourd’hui Monsieur Coux, ingénieur informaticien

Page 12: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 9

1.3.2. Organigramme interne

Systémes, Réseaux et Télécoms :

• Hélène CHEYNET : gère et supervise l’infrastructure du réseau

• Bruno IVARS : responsable du parc micro-informatique

• Olivier JOVET : responsable supervision (contrôle et optimise les sauvegardes des

différents systèmes)

• Frédéric JEANPRETRE : responsable de la téléphonie

Exploitation et assistance aux utilisateurs : • Alain MOISSONIER : analyste d’exploitation et technicien de maintenance

informatique

• Patrick CLARES : analyste d’exploitation et technicien de maintenance informatique

Administratif et secrétariat Franck DEAL

Correspondant informatique médicale et qualité

Laurent BEAUMONT

* Etudie la faisabilité des solutions logicie lles et leurs conséquences organisationnelles au niveau des unités de soin.* Définit avec les util isateurs les modifications ou évolutions logicie lles nécessaires pour mieux répondre aux besoins.* Effectue lors de la mise en place d'applications médicales le test des produits ainsi que leur paramétrage.* Participe à la formation et à l 'assistance des util isateurs.

* Assure la gestion des commandes, le suivi des réceptions et les relations avec les fournisseurs.* Valide les factures et garantit leur paiement en relation avec les services financiers. * Emet les documents administratifs nécessaires au fonctionement du service.* Organise les formations micro-informatiques en lien avec les formateurs extérieurs.* Archive sous forme numérique l 'ensemble des documents * Participe à là l 'assistance des util isateurs.

* Participe à l 'élaboration du projet de système d'information et est responsable de sa réalisation.* Dirige et coordonne l 'ensemble des activités de la Direction du S ystème d'Information (Exploitation, S écurité, Développements, Assistance aux util isateurs, Informatique, Téléphonie, Réseaux...)* Assure en lien avec le DIM et les services de soin la mise en place, le bon fonctionnement et l 'évolution des applications médicales. * Elabore puis éxécute les budgets d'investissement et d'exploitation en matière d'informatique et de téléphonie.* Conduit les procédures d'achat et assure la mise en place des projets.* Assure la gestion du personnel de la Direction du S ystème d'Information.

Direction du Système d'information

DirectionEmmanuel COUX

Systèmes, Réseaux et Télécoms

Hélène CHEYNET

Exploitation et Assistance aux utilisateur

Etudes et Applications

Emmanuel COUX

Page 13: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 10

Etudes et Applications : • Emmanuel COUX : responsable des applications stratégiques

• Annie MIOQUE : responsable des applications administratives

• Thierry DECHENAUD : responsable des applications médicales

• Xavier TERRA : gérant des applications métier

1.3.3. Le matériel

1.3.3.1. Le réseau du Vinatier

RTC

RTC

Centre Hospitalier le Vinatier - Plan réseau

��

�� �

��

��������

��������������

� Portable

PC de bureau

AS400

Ordinateur PC1

Imprimante partagéeentre PC1 et PC2 Ordinateur PC2

Interfaces applicatives(EAI)

Résultat de biologie

Bases de données(SQL Server 2005) etapplications

Intranet Dossier Patient

Boîtier RASCISCO

FilesCluster Windows 2003

Parc Informatique:

- 1 000 PC- 5 Serveurs 2003- 2 Serveurs UNIX- 1 AS 400

Préscriptionsmédicamenteuses

S5Serveur 2003Serveurs 2000Serveurs 2003

S26Serveur 2003 SRI

Serveur UNIXSG2

Serveur UNIX

Données médicalesDonnéesadministratives

Firewall

Bases de données(Oracle) et applications

Internet

• L’AS/400 : L’AS/400 est une mainframe* sur laquelle le logiciel SANTE 400 est implanté. C’est un

logiciel qui permet aux utilisateurs d’effectuer leurs travaux.

• Armoire électrique contenant les commutateurs et le câblage réseau : Il existe une armoire qui contient divers câbles (RJ45) liés aux commutateurs et aux divers

Hubs* qui interconnectent les câbles des différents postes.

Les mots marqués d’un * sont détaillés dans le lexique

Page 14: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 11

• Les imprimantes : Il existe un gigantesque parc d’imprimantes : 520 en tout, de marque, de genre, de

technologies différentes ce qui posait de nombreux problèmes de maintenance et

d’installation aux membres du service informatique. Actuellement, c’est une société

extérieure qui gère les pannes des imprimantes de l’hôpital.

Page 15: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 12

II/Le travail effectué

Page 16: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 13

2.1. Présentation du travail

Tout d’abord, j’ai contacté M. COUX par mail pour savoir s’il était intéressé par le

recrutement d’un stagiaire durant la période du 2 Avril au 8 Juin 2007.

Sa réponse étant positive, il m’a demandé de venir le rencontrer pour fixer l’objectif de ce

stage. Ainsi, j’ai su que je serai chargé de refondre une partie de l’intranet du Vinatier au

niveau de l’organisation des directions dans le but d’améliorer la diffusion et la publication

d’informations dans l’hôpital ainsi que la modification de formulaires pour des demandes

d’interventions techniques.

2.2. Etude préalable de l’existant

Avant de pouvoir effectuer des recherches sur des frameworks* pouvant apporter des

solutions aux différents problèmes soulevés par la publication d’informations, il faut

commencer par une étude de l’existant. Ainsi, dans l’hôpital, on distingue 3 formes de

diffusion et de publication d’informations :

- grâce à un disque partagé

- par mail

- par l’intranet

2.2.1. Etude du disque partagé

Le disque partagé est tout simplement un disque dur de 600 Go (dont 400 Go utilisés)

accessible à tous mais possédant des droits propres à chacun sur certains dossiers. Ce disque

contient beaucoup de documents (ordonnances, cours, bons de commandes …) utilisés par les

médecins, les infirmières et la direction. A long terme, le service informatique voudrait le

supprimer pour transférer tous ces documents sur l’intranet car ce disque comporte des

documents n’ayant aucun rapport avec l’hôpital, et d’autres, inutiles par leur ancienneté.

Page 17: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 14

Contenu du disque G:\ (TOUS) :

2.2.2. Etude de la diffusion de mails

Au niveau des mails, le système ressemble globalement à celui de l’IUT puisque si

une personne veut avertir l’hôpital d’une information générale, elle doit envoyer le mail à M.

COUX qui le transmet ainsi à tout le Vinatier (nom de diffusion : _TOUS). La personne ne

peut envoyer le mail directement à _TOUS car avec cette solution, les boîtes mail seraient

envahies d’informations inutiles.

2.2.3. Etude de l’intranet

Cet outil est en fait le système principal pour la publication de l’information dans

l’hôpital. En effet, il comporte plusieurs parties, toutes contenant des données appartenant au

Vinatier.

Pour ma part, je me suis occupé de trois parties qui demandaient les trois travaux suivants :

� Modifications légères au niveau du pôle de prestation de service

Page 18: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 15

� Trouver et appliquer une solution pour la réorganisation des documents dans

l’organisation des directions

� Restructurer la gestion des formulaires au niveau des demandes d’interventions

techniques

Page d’accueil de l’intranet :

source : http://www.chv.intra/

2.2.3.1. Initiation et apprentissage

La première partie a pour but de m’initier aux propriétés de l’intranet en faisant les

modifications correspondantes aux plaintes des utilisateurs à différents niveaux et à apprendre

la syntaxe du langage ASP*. En effet, l’intranet de l’hôpital utilise beaucoup de codes ASP à

cause de l’utilisation de requêtes LDAP* permettant d’associer toutes les données d’un

utilisateur (adresse mail, nom de machine …) à son login. Ainsi, les quelques modifications à

effectuer ont pour but de remplacer les « frames » par des « div » afin d’éviter l’affichage de

ScrollBar* lors des redimensionnements de fenêtres, de créer de nouveaux onglets plus

intuitifs et d’instaurer une page de contact pour l’envoi de mails. Cette dernière modification

Page 19: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 16

m’a beaucoup aidé pour la suite de mon travail puisque j’ai pu connaître la structure du LDAP

tout en utilisant le code ASP.

2.2.4. Recherche de solutions

Avant tout changement, il faut comprendre les systèmes mis en place avec les défauts

que les collègues m’avaient soulevés et que je pouvais trouver.

Aussi, j’ai observé l’arbre de l’organisation des directions avec les fichiers qu’il contient et

j’ai réfléchi à une solution permettant d’avoir le plus d’informations possible sur les fichiers

existants et de connaître rapidement le sujet de chaque fichier tout en gérant des droits

différents en fonction de l’utilisateur pour l’ajout et la modification de fichiers dans l’arbre.

De plus, il me parait plus logique d’avoir des fichiers seulement aux nœuds de l’arbre ne

contenant pas de fils.

Ainsi, avec ces différentes idées, j’ai cherché des frameworks open-source* permettant de

résoudre ces problèmes et étant les plus conviviaux aux yeux de l’utilisateur. Après ces

recherches, je me suis arrêté au framework DotNetNuke* qui m’a semblé remplir pleinement

ce que j’attendais. Les renseignements trouvés sur chaque framework sont dans l’Annexe I.

Bien sûr, dans toute solution trouvée, la sécurité reste un facteur très important même si dans

ce cas, ce ne sera pas le point prépondérant. En effet, le réseau de l’hôpital est très bien

protégé car il n’existe qu’une seule ligne en relation avec l’extérieur contrôlée par un puissant

pare-feu. Ainsi, les seuls risques probables de virus dans l’hôpital peuvent survenir par

l’installation personnelle de fichiers sur une machine même si la plupart des ordinateurs ont

des droits d’accès qui interdisent l’installation de programmes.

Page 20: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 17

Page contenant l’organisation des directions avec les fichiers propres à chaque département :

source : http://www.chv.intra/nds/

Grâce à DotNetNuke, j’ai approfondi mon initiation au code ASP car ce framework utilise la

plate-forme .NET* dans laquelle le code ASP est prédominant.

Page 21: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 18

Page d’accueil du nouveau Intranet utilisant DotNetNuke :

source : http://www.chv.intra:83/Accueil/tabid/83/Default.aspx#

Page 22: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 19

2.2.5. Etude du système de gestion des formulaires

Enfin, la majeure partie du travail est la gestion de formulaires pour les demandes

d’intervention. En effet, cette phase est la plus importante de mon stage. Pour bien

comprendre le système, voici un exemple :

Supposons qu’un utilisateur ait un problème sur son ordinateur tel que le logiciel Word ne se

lance plus. Pour remédier à ceci, il ne peut le réinstaller lui-même car il ne possède pas les

droits suffisants sur sa machine. Ainsi, il accède à l’intranet de l’hôpital et se rend à la page

« demande d’intervention informatique ». Cette page contient un formulaire contenant les

données de l’utilisateur connecté (login, nom de machine, adresse mail) et différents champs

sur la panne :

source : http://www.chv.intra/formulaires/intervention_info-tel/

Page 23: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 20

Une fois ce formulaire rempli et envoyé, le demandeur reçoit un mail contenant son

formulaire et lui indiquant que sa demande a bien été envoyée et qu’elle est en attente de

validation dans la liste des formulaires à gérer. Ensuite, M. COUX accède au formulaire de la

personne sur la page « gestion de formulaires » accessible seulement par les informaticiens du

Vinatier :

source : http://www.chv.intra/gestion%5Fformulaires/

A côté de chaque formulaire, une ComboBox* contenant différents statuts permet de valider

ou non la demande par le chef du département informatique. A chaque changement d’état, un

mail est envoyé au demandeur pour l’avertir de l’avancement de la résolution de son

problème. Lorsque la validation du formulaire est acquise, c’est au tour d’un agent du service

informatique de s’occuper de la panne. Une fois la panne résolue, le formulaire est archivé.

Page 24: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 21

2.2.4.1. Schéma récapitulatif

Une fois le mécanisme bien compris, Thierry DECHENAUD m’a expliqué les différentes

failles de ce système et ce qu’il fallait modifier.

Premièrement, il voulait que je trouve une solution pour que chaque champ du formulaire soit

vérifié au moment où l’utilisateur le remplit.

Deuxièmement, il fallait que la solution trouvée soit compatible avec une base SQL Server.

Troisièmement, les formulaires devaient être conviviaux et intuitifs aux utilisateurs.

Finalement, j’avais une assez grande liberté de choix.

Page 25: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 22

La première idée qui m’est venue est d’utiliser le framework Dojo que je connais puisque je

l’avais utilisé lors de mon projet tuteuré fait à l’IUT. Ainsi, j’ai élaboré un exemple de

formulaire lié à une base SQL Server utilisant du code ASP pour accéder aux données de

l’utilisateur connecté et du framework Dojo pour la vérification en temps réel du remplissage

des champs. J’ai ensuite montré l’esquisse à M. DECHENAUD, très intéressé par le résultat.

Vous verrez par la suite que cette dernière solution n’a finalement pas été retenue.

2.3. Réalisation du projet

2.3.1. Refonte de l’Intranet

2.2.3.1. Description et fonctionnement du framework

Comme dit précédemment, j’ai utilisé le framework DotNetNuke pour la refonte de

l’Intranet de l’hôpital dont les caractéristiques suivantes sont très avantageuses :

- toutes les données sont stockées dans une base ce qui permet de visualiser

facilement le journal de Logs et de modifier certains paramètres sans rentrer

dans le code

- modification de l’aspect de la page sans rentrer dans le code (seulement

changer le css…)

- gestion des droits de modification des modules en fonction des utilisateurs

- grande variété de modules

- traduction des modules en français assez simple

Tout d’abord, pour utiliser ce framework, j’ai commencé par rechercher sur Internet la

dernière version téléchargeable et à l’installer sur ma machine. Pour être honnête,

l’installation n’a pas été des plus simples car il existe plusieurs façons de l’installer et j’ai dû

m’y prendre à plusieurs reprises pour avoir un résultat convaincant.

Voici les étapes globales de l’installation du framework (voir l’installation détaillée en

Annexe II) :

- création de la base de données sous SQL Server

- téléchargement, décompression et gestion de la sécurité du framework

- configuration de IIS*

Page 26: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 23

Une fois DotNetNuke installé et qu’on se rend à l’adresse http://localhost/dotnetnuke, on

aperçoit la page d’accueil par défaut :

Une fois l’installation acquise avec la liaison à la base SQL Server, j’ai commencé à

« bidouiller » un peu la page de présentation pour comprendre le fonctionnement du produit.

Ensuite, j’ai commencé à installer les modules correspondant à mes attentes :

- le module Document permet d’ajouter et de modifier des documents sur l’Intranet en

fonction des droits de l’utilisateur :

Page 27: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 24

source : http://www.chv.intra:83/InformationsG%c3a9n%c3%a9rales/Structures/tabid/79/

Default.aspx

- le module SiteMap (voir page d’accueil p.18) permet de créer un arbre contenant toutes les

pages de l’Intranet (reprenant une hiérarchie créée préalablement par une stagiaire pour

remplacer l’arborescence existante dans l’Organisation des Directions)

- le module Report expose le résultat d’une requête SQL

- le module IFrame permet d’afficher une page extérieure dans l’Intranet (pour les formulaires

par exemple) :

Page 28: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 25

source : http://www.chv.intra:83/InformatiqueetT%c3%a9l%c3%a9phonie/

Demandedinterventioninfoout%c3%a9l/tabid/190/Default.aspx

- le module Events (sera utilisé pour avertir les agents la date et le lieu d’une conférence,

formation…) est un agenda qui liste les évènements à venir avec leur date et permet

d’exporter ces évènements sur l’ordinateur distant au format .vcs, ce qui signifie que

l’évènement sera directement inséré dans Outlook, logiciel très utilisé par l’hôpital.

- le module Announcements (sera utilisé pour remplacer l’envoi de mails à _TOUS et pour

informer des dernières publications de documents mis sur l’Intranet � suppression du disque

G) permet de publier de l’information sous forme de brèves.

Bien sûr, chaque module est modifiable et adaptable en vue de l’utilisation du développeur.

Par exemple, pour le module Announcements, j’ai modifié une partie de code permettant ainsi

de voir ou de cacher le contenu du mail simplement en cliquant sur « en savoir plus » (voir

page d’accueil p.18)

Aussi, pour le module SiteMap, Thierry DECHENAUD m’a demandé de recréer l’arbre avec

le même design que celui du site du Vinatier (site créé à partir de DotNetNuke) :

Page 29: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 26

source : http://www.ch-le-vinatier.fr

L’avantage majeur de DotNetNuke dans notre cas est en fait la possibilité à l’utilisateur de

gérer lui-même ses documents. Par exemple, pour la mise en ligne de certains cours destinés

aux étudiantes infirmières, le professeur se rend sur la page étant destinée aux cours et vu que

ce dernier a les droits requis de modification sur les documents de cette page, il a juste à

cliquer sur « Ajouter un document », l’affichage de l’Intranet passe en mode

« administrateur » et ainsi, il peut ajouter son document :

Page 30: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 27

Page en mode « admin » pour ajouter un document :

Pas de source car l’application n’est pas totalement finie

Il en est de même pour les autres agents du Vinatier ayant une ou plusieurs pages consacrées à

leur service. De plus, les personnes ayant un compte « Super-utilisateur » (en principe les

agents du service informatique seulement !) peuvent modifier la totalité de l’Intranet

(suppression de pages, ajout de modules…) tout en restant dans l’interface de l’Intranet en

mode « administrateur » et donc sans avoir besoin de toucher le code des fichiers source :

Page 31: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 28

source : http://www.chv.intra:83/Admin/LogViewer/tabid/49/Default.aspx

2.3.1.2. Problèmes rencontrés

L’utilisation d’un framework est assurément très pratique mais elle possède un gros

désavantage. En effet, lorsque le développeur veut modifier une partie du site, il faut tout

d’abord savoir où se trouve le code lié à cette partie. Pour moi, cela a été une véritable

barrière au début car je ne comprenais pas du tout comment fonctionnait le framework. Puis,

au fil des recherches et des essais de modification, j’ai compris l’esprit de développement

utilisé et qu’en fait toutes les données pouvaient être modifiées directement dans la base. Ce

type de problème m’a notamment bloqué un certain moment sur la création de l’arbre que je

devais rendre intuitif et convivial aux yeux de l’utilisateur (séparateurs, icônes, …).

Le deuxième problème du même type était de changer l’interface

Lorsque ma présentation était claire, j’ai présenté mon travail à M. COUX et j’ai commencé à

m’occuper des formulaires.

2.3.2. Création des formulaires

2.3.2.1. Description du système actuel

Pour cette partie, il m’a été demandé de changer de langage en passant du langage

ASP au langage VB.NET. Avant d’expliquer le fonctionnement du langage VB.NET,

décrivons le système de l’ASP.

Page 32: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 29

Par exemple, pour le formulaire de demande d’intervention d’imprimante, on peut remarquer

que dès le chargement de la page (voir capture d’écran suivante), le formulaire affiche les

informations de l’utilisateur telles que son login, son numéro de poste, son CR (« Centre de

Responsabilité »), son UF (« Unité Fonctionnelle ») et son adresse e-mail. Tous ces

paramètres sont fournis grâce au code ASP étant situé dans le fichier source

(intervention_imprimante.asp) et dans deux fichiers nommés unik.asp et multi.asp, utilisés par

d’autres formulaires. Avec ce système, lorsque l’utilisateur remplit et valide son formulaire, le

fichier exécuté du côté client (fichier de format .asp permettant de visualiser le formulaire)

fait appel au fichier qui s’exécute du côté serveur (fichier de format .rec.asp permettant de

fournir le travail en relation avec la base de données).

Ce dernier, nommé intervention_imprimante.rec.asp, récupère ainsi les données du formulaire

déclarées grâce au code html (voir code source en Annexe III) et les insère dans la base de

données.

2.3.2.2. Explication du changement de langage

Après avoir compris ce système, le résultat devait en être le même tout en améliorant

quelques détails de mise en forme et surtout en utilisant le VB.NET, code plus moderne et

mieux organisé. En VB.NET, nous avons le même style de structure puisque il y a un fichier

exécuté côté client (intervention_imprimante.aspx) qui fait appel à un fichier exécuté du côté

serveur (intervention_imprimante.vb.asp).

Nouveau formulaire de demande d’intervention d’imprimante :

source : http://www.chv.intra:83/InformatiqueetT%c3%a9l%c3%a9phonie/

Demandedinterventionimprimante/tabid/188/Default.aspx

Page 33: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 30

Par contre, la différence se situe au niveau des données insérées lors du chargement de la

page. En effet, le VB.NET permet d’exécuter des requêtes SQL et LDAP respectivement vers

une base de données et vers un Active Directory :

Cela simplifie l’organisation au niveau du code puisque le fichier exécuté du côté client n’a

pas besoin de faire appel au code ASP mais ne gère que l’interface du formulaire.

‘Récupèration du login de l’utilisateur connecté strUserName = Mid(Request.ServerVariables( "LOGON_USER"), 5)

login.Text = strUserName

‘Récupèration du nom du poste de l’utilisateur conn ecté poste = Request.ServerVariables( "REMOTE_HOST") micro.Text = poste ‘Ouverture de la connexion vers l’Active Directory objConnection = CreateObject( "ADODB.Connection" )

‘Pour cause de sécurité, les champs « user » et « p assword » ne sont pas données ici ("XXX") objConnection.Open( "Provider=ADsDSOObject" , "XXX" , "XXX" )

objCommand = CreateObject( "ADODB.Command") objCommand.ActiveConnection = objConnec tion objCommand.Properties( "Page Size" ) = 5000

‘Requête LDAP perm ettant de récupérer les informations concernant l’utilisateur connecté objCommand.CommandText = "<LDAP://OU=CHV,dc=chv,dc=intra>;(&(objectCategory= User)(samAccountName=" & strUserName & "));samAccountName,cn,ADsPath;subtree"

objRecordSet = objCommand.Execute ‘Insertion des données dans les contrôles du formul aire If objRecordset.RecordCount = 0 Then sCN = "" Else strADsPath = objRecordset.Fields( "ADsPath" ).value get_mail = GetObject(strADsPath).ma il nom0 = GetObject(strADsPath).name nom1 = Mid(nom0, 4) desc = GetObject(strADsPath).descri ption End If email.Text = get_mail

Page 34: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 31

‘Création du mail au format HTML

Dim email As New MailMessage() Dim utilisateur, password, serveur As String ‘Récupèration des chaines de caractères dans le fic hier web.config utilisateur = ConfigurationSettings.App Settings( "SmtpUtilisateur" ) password = ConfigurationSettings.AppSet tings( "SmtpPassword" ) serveur = ConfigurationSettings.AppSett ings( "SmtpServeur" ) ‘Remplissage des différents champs du mail email.From = email_rec email.To = "[email protected]" email.Subject = "Demande d'intervention d'imprimante" email.BodyFormat = MailFormat.Html email.Body = "<html>" & _ "<head>" & _ "<meta http-equiv=""Content-Language"" content=""fr"">" & _ "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1252"">" & _ "</head>" & _ "<body>" & _ resum & _ ‘Résumé créé auparavant (voir Annexe II) "</body>" & _ "</html>" ‘Configuration des champs de paramètrage du mail

SmtpMail.SmtpServer = serveur email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" , "0" ) email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendusername" , utilisateur) email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sendpassword" , password)

Try ‘Envoi du mail SmtpMail.Send(email) Catch ex As Exception response.write(Ex.tostring()) End Try

Dans le fichier exécuté côté serveur, on trouve le code VB.NET remplissant les champs

automatiquement, le système de récupération des données avec leurs enregistrements dans

une table lors de la validation du formulaire et l’envoi du mail au demandeur contenant un

résumé de ses informations enregistrées avec un lien vers une page extérieure lui rappelant ce

même résumé complété de l’état d’avancement de la gestion de ce formulaire :

Page 35: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 32

Ce mail comporte un résumé des données que l’agent a fourni lors du remplissage du

formulaire ainsi qu’un lien vers une page ASPX contenant ce même résumé avec l’état du

déroulement de la réparation.

Mail de confirmation d’envoi du formulaire :

Page 36: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 33

Page reprenant les informations du formulaire avec l’état actuel de la demande :

Pas de source car l’application n’est pas totalement finie (localhost)

2.3.2.3. Explication de la gestion des demandes

Maintenant, entamons la partie la plus complexe de mon stage : la gestion des

formulaires avec les fichiers gestion.aspx et gestion.aspx.vb.

Page 37: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 34

Page affichant tous les formulaires du même type de demande (demande pour imprimantes dans ce cas) en cours de traitement :

Pas de source car l’application n’est pas totalement finie (localhost) Ces fichiers permettent de visualiser les demandes d’intervention des utilisateurs du domaine

concerné (intervention pour imprimantes, téléphones…). On peut remarquer qu’à côté de

chaque demande, il y a un bouton ouvrant une fenêtre qui affiche l’historique des

changements d’états pour la demande concernée et une ComboBox permettant de changer

l’état du traitement de la demande. Cette liste déroulante n’est pas statique et se remplit

« intelligemment ». En effet, lorsque la demande vient d’être envoyée, la liste déroulante ne

comporte que les attributs « Valider » et « Refuser ». Puis, si cette demande est validée, la

liste déroulante comportera alors d’autres attributs tels que « Mettre en planification »,

« Clore la demande » …

Page 38: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 35

Page des historiques des changements d’état pour la demande n° 383 :

Pas de source car l’application n’est pas totalement finie (localhost) A chaque changement d’état, un mail est envoyé au demandeur pour l’informer du traitement

en cours.

Page 39: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 36

Mail de changement d’état :

Enfin, l’avantage de ce système pour la gestion, la consultation des résumés des formulaires et

de l’historique des changements d’états est le suivant : les fichiers gestion.aspx,

gestion.aspx.vb, consult.aspx, consult.aspx.vb, historique.aspx, historique.aspx.vb

fonctionnent avec n’importe quel type de formulaire. En effet, les formulaires de demande de

transport sanitaire, logistique ou de demande d’intervention téléphonique auront recours par la

suite aux fichiers cités précédemment.

2.3.2.4. Difficultés rencontrées

Je n’ai pas rencontré de réelles difficultés qui auraient pu me pénaliser

considérablement dans mon travail.

Bien sûr, il est arrivé à plusieurs reprises que je ne puisse pas créer la fonction que je

désirais ou que je ne parvienne pas à obtenir le résultat que je souhaitais du premier coup.

Page 40: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 37

De manière générale, ces difficultés étaient toujours liées à la syntaxe utilisée dans le

langage VB.NET ou à certaines fonctions prédéfinies dont la compréhension du

fonctionnement utilisé n’était pas toujours trivial.

Quoiqu’il en soit, cela n’a jamais duré très longtemps. Si je ne trouvais pas de solution

moi-même, je me tournais alors vers les sites d’aide à la programmation ou si la difficulté

était trop pointue, je faisais appel à Thierry DECHENAUD qui a toujours été disponible

lorsque je le désirais.

Page 41: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 38

III/Le bilan

Page 42: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 39

3.1. Critique du travail effectué Le rêve de tout développeur qui se respecte, est de réaliser, au moins une fois dans sa

vie, le programme PARFAIT. Quelle satisfaction de pouvoir se dire : « Absolument tout

fonctionne exactement comme prévu, jamais aucune erreur ne pourra se produire, l’interface

est agréable et conviviale ; tout est parfait ! »

Malheureusement pour moi, cette heure n’est pas encore arrivée ce qui reste tout à fait

normal à mon niveau.

Je ne juge donc pas mon travail exempt de tout défaut.

Un exemple tout simple, est l’utilisation des chaînes de connexion lorsque je veux me

connecter à ma base de données SQLServer ou à l’Active Directory. Au début, je tapais ma

ligne de connexion à chaque fois que j’en avais besoin. Puis, lassé de retaper cette chaîne de

connexion et surtout par mesure d’améliorer la qualité du code, j’ai décidé de créer un fichier

XML* dans lequel j’ai inséré ma ligne de connexion. Ensuite, en montrant l’évolution de mon

travail à Thierry DECHENAUD, celui-ci me demanda si Microsoft (créateur du langage ASP)

n’avait pas pensé à instaurer un fichier de configuration propre au code ASP. Etant un peu

naïf, je lui répondis négativement.

N’étant pas certain de ma réponse, je me suis mis à rechercher sur Internet si ce que

m’avait demandé Thierry était réellement impossible. Finalement, j’ai effectivement trouvé

que la création d’un fichier portant le nom web.config permettait de stocker toutes les chaînes

de caractères que le programmeur désirait et ceci sans avoir besoin d’import du fichier. Ainsi,

je me suis rendu compte que l’expérience d’une personne qui est dans le métier depuis

plusieurs années est prépondérante dans l’esprit de la programmation.

Page 43: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 40

3.2. L’avenir du programme

A l’heure où j’écris ces lignes, l’application n’est pas encore utilisée par l’hôpital. En

effet, seules les personnes du service informatique sont au courant de la refonte de l’Intranet

et des formulaires. Par contre, l’intranet est malgré tout visible par n’importe quel agent du

Vinatier à l’adresse http://www.chv.intra:83/. L’application pourra être mise en production

dès lors que M. COUX en aura informé les directeurs des autres services avec leur accord.

Toutefois, aussi réduite soit elle, celle-ci est pour moi très importante. Il est en effet

essentiel de pouvoir connaître le sentiment des premiers utilisateurs en situation réelle. Grâce

à leurs critiques et aux suggestions qu’ils ont pu me faire, j’ai pu ainsi apporter des

améliorations non négligeables à l’Intranet, comme la modification du module permettant

l’affichage des mails grâce au clic sur « En savoir plus … ».

Globalement, j’ai toujours essayé de répondre à leurs demandes le plus rapidement et

le plus efficacement possible, et je suis très heureux qu’ils aient pu exprimer ces besoins

durant ma présence dans le service.

Enfin, et pour mon plus grand bonheur, l’Intranet que j’ai recréé est appelé à être

utilisé par tout l’hôpital très prochainement.

Page 44: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 41

3.3. Bilan professionnel

Ce stage aura été ma première vraie expérience professionnelle.

Certes, je n’ai pas connu les délais et le stress que l’on peut connaître lorsque que l’on

exerce son métier dans une entreprise de type S.S.I.I.

Mais, j’ai beaucoup appris sur le milieu professionnel lui-même. J’ai ainsi découvert la

façon dont on y travaille, ce que l’on exige de chacun, le rythme de travail, les contraintes de

l’entreprise ou le genre de moyens (humains, matériels et financiers) dont elle peut disposer.

Ensuite, et surtout, il y a le contact humain. Même si j’ai travaillé relativement seul sur

cette application, j’ai quand même ressenti l’immense plaisir de faire partie intégrante d’une

équipe et de partager avec elle des moments privilégiés. Encore une fois, je voudrais la

remercier pour le formidable accueil qu’elle m’a réservé.

Enfin, du point de vue des compétences, j’ai pu mettre en pratique l’enseignement

acquis pendant ces deux ans à l’I.U.T. Cela concerne autant les techniques de gestion de bases

de données relationnelles que les méthodes de programmation pures et dures. Le bilan est

plutôt positif.

J’étais déjà très satisfait de la formation que j’avais reçue à l’I.U.T., mais ce stage m’a

permis de constater à quel point elle peut se révéler utile et efficace.

Page 45: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 42

3.4. Bilan personnel

Quand j’ai présenté la première version « définitive » de l’Intranet, M. COUX, qui

suivait son développement, m’a pleinement exprimé sa satisfaction, et j’en fus très heureux.

J’ai eu vraiment le sentiment d’avoir donner quelque chose, d’avoir participer à la « culture de

l’entreprise ».

J’ai essayé tout au long de ce stage de remplir tous les objectifs qui m’avaient été

assignés, et c’est avec plaisir, que je pense les avoir atteints aujourd’hui.

Pour moi le plus important était que les utilisateurs soient complètement satisfaits et

enthousiasmés par le travail que je leur avais fourni.

Page 46: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 43

Conclusion

Cette confrontation avec le milieu du travail m'a apporté de nouvelles connaissances

d'autant plus que mon stage s'est effectué dans le monde hospitalier, secteur qui m’intéresse

tout particulièrement. Durant cette période, on m'a placé dans un grand bureau où j'étais à

l'aise pour travailler et me consacrer pleinement à projet.

Ce stage a été une expérience satisfaisante car il m’a permis d’acquérir des

connaissances supplémentaires en informatique. En effet, j’ai appris plusieurs langages de

programmation (le VB sous la plate-forme .NET, l’ASP et à moindre mesure le C#) que je ne

connaissais pas auparavant et plusieurs éléments informatiques tels que l’Active Directory et

cet impressionnant framework de DotNetNuke. De plus, j’ai découvert le monde

professionnel et j’ai pu observer tous les évènements qui peuvent s’y produire au quotidien.

Page 47: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 44

Lexique

Mainframe : environnement informatique composé d'un système central et de stations

clientes.

Hubs : boîtier permettant à la manière d'une multiprise évoluée de multiplier les ports d'un

réseau Ethernet ou d'une chaîne USB.

.NET (prononcez «dotnet») : standard proposé par la société Microsoft, pour le

développement d'applications d'entreprises multi-niveaux, basées sur des composants.

Microsoft .NET constitue ainsi la réponse de Microsoft à la plate-forme J2EE de Sun.

Framework : désigne un ensemble structuré d'API, organisé au sein d'un environnement

d'exécution.

ASP : technologie web dynamique nécessitant pour fonctionner une plate-forme Windows

avec IIS (Internet Information Services) installé. ASP n'est en réalité qu'une structure

composée d'objets accessibles par deux langages principaux : le VBScript et le JScript.

ScrollBar (ascenceur en français) : élément de base des interfaces graphiques (un widget dans

le jargon informatique) qui permet de faire défiler un texte, une image ou n'importe quel autre

élément graphique qui a des dimensions trop grandes pour pouvoir être vu dans son intégralité

sur un écran d'ordinateur, une fenêtre ou une zone d'affichage qui lui a été réservée.

ComboBox : élément d'interface graphique qui réunit une zone d'édition de texte et une liste

déroulante. Elle est couramment utilisée par des sites Web et des logiciels.

Open-source (Code source libre ou Code source accessible en français) : s'applique aux

logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative

tels que la libre redistribution, un code source disponible ainsi que les travaux dérivés

possibles.

DotNetNuke : Framework Open Source permettant de créer et maintenir des applications

Web professionnelles.

Dojo : outil DHTML open-source écrit en JavaScript. Il vise à résoudre quelques problèmes

historiques avec DHTML qui a empêché l'adoption de masse du développement dynamique

d'applications Web.

Page 48: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 45

Active Directory : annuaire au sens informatique et technique chargé de répertorier tout ce

qui touche au réseau comme le nom des utilisateurs, des imprimantes, des serveurs, des

dossiers partagés, etc

XML (Extensible Markup Language « langage de balisage extensible ») : facilite l'échange

automatisé de contenus entre systèmes d'informations hétérogènes (interopérabilité),

notamment sur Internet.

EAI (Entreprise Application Integration) : architecture intergicielle permettant à des

applications hétérogènes de gérer leurs échanges. On la place dans la catégorie des

technologies informatiques d'intégration métier (Business Integration) et d'urbanisation. Sa

particularité est d'échanger les données en temps réel.

Page 49: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique – Page 46

Annexes

Page 50: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

ANNEXE I

Différentes solutions de frameworks

Avantages

Inconvénients

SPIP (portail PHP)

http://www.spip.net/ fr_article464.html

- convivial et ergonomique -utilisation simple pour les mises à jour - ne restreint pas les possibilités graphiques et navigationnelles du site - un moteur de recherche et d’indexation intégré - livré avec un format d’interface de navigation complet

- adaptation requise car complexe - pas de catalogue de bibliothèque

PHP-Nuke (portail PHP)

http://www.typo3.fr/ index.php?id=comparatif

- nombre élevé de modules : newsletter, encyclopédie, FAQ, éphémérides, top10, sondages... - gère le multi langage (front-office) - présence d’un forum dès l’installation - adaptation facile - gestion des droits d’accès très fine

- air de déjà vu car c’est un framework ancien - graphismes médiocres donc peu convivial - pas de système de cache d’où une vitesse de chargement de pages moyenne - fonctionnalités de workflow assez limités

phpGroupWare (portail PHP)

http://www-igm.univ-mlv.fr/~dr/XPOSE2003/

phpgroupware

- fonctionnement par plugins - modules : gestionnaire d'applications, client mail (POP3, IMAP...), chats, forums, notes, agendas, calendriers, préférences (configuration), FTP, NNTP, CVS - fournit des APIs complètes - convivial - facilité de gestion des droits d’accès

- perpétuelle effervescence et s'enrichit régulièrement de nouvelles fonctionnalités - lent - lourd

Page 51: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Avantages

Inconvénients

SPIP-Agora

(Portail PHP) http://fr.wikipedia

.org/wiki/ Agora_%28logici

el_libre%29

- enrichissement de la gestion de contenu, la gestion documentaire, la chaîne de validation et la gestion des profils - gestion de « mots-clés » en arborescence et gestion plus souple du workflow - connexion à plusieurs bases de données (MySQL, Oracle…) - modules complémentaires : sondages, lettres de diffusion, moteur de recherche de documents, statistiques de type marqueurs, personnalisation de la navigation, gestion fine des droits d’accès... - solution multi-plate forme - standards informatiques du moment

- lourdeur et complexité - évolutions du produit liées au dynamisme de la communauté - pas ou peu d’assistance technique - moins de rigueur que dans un logiciel commercial (qualité du code)

Rainbow Portal (Portail

DotNET) http://www.clever

-age.com/veille/pu

blications/ fiches-

produits/rainbow-portal.html

- simple d’accès et intuitif - simplicité des créations de pages et de la gestion de contenu - modules nombreux : articles, sondages, discussion, planification de tâches… - hiérarchisation illimitée (choix de la page mère) - publication entièrement dynamique - possibilité de limiter l’accès à certaines ressources aux personnes enregistrées - workflow de validation en 2 états : ajout du contenu � validation ou rejet de l’administrateur - fonctionnalité de recherche disponible (plein texte possible par module ou bien sur tous les contenus du site) basé sur les rôles et permissions - interface claire, conviviale

- ne fonctionne que dans un environnement Windows / MSSQL - modules pas toujours complets - aucun outil de collaboration (utilisation possible du module de discussion ou de planification de tâches) - pas de tri de recherche possible - pas de récupération d’erreur (restauration) - pas de fonctionnalités avancées (création de CSS) - pas de tableau de bord, pas de statistiques - version 2 en cours de développement

Umbraco (Portail

DotNET) http://www.dotnet

guru.org/ modules.php?op=modload&name= News&file=articl

e& sid=885&mode= thread&order=0

&thold=0

- très convivial - multilangage peut être créé en utilisant XML - workflow supporté : possibilité d’avoir différentes permissions an fonction de l’utilisateur - utilise essentiellement SQL Server comme BDD

- utilisable pour de petits besoins… - peu d’informations

Page 52: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Avantages

Inconvénients

DotNETNuke (Portail

DotNET) http://www.bsi.fr/Internet/HébergementDotNetNuke/tabid/76/articleType/ArticleView/ar

ticleId/9/10-bonnes-raisons-de-lutiliser-.aspx

- chartes graphiques homogènes, élégantes, créatives - modules prêts à l’emploi, à placer sur le site à l’endroit voulu : liens vers les sites favoris, questions fréquemment posées, nous écrire, votez, s’inscrire, iframes (permet d’intégrer une page déjà existante sur internet dans le site), syndication d’informations RSS, requêtes SQL, choix de la langue… - réglage fin des droits d’accès en lecture ou en écriture sur le site, par une identification des utilisateurs et leur regroupement en ‘rôles’. L’attribution de rôle permet de rendre ou de masquer des branches entières du site. Il permet également un réglage fin au niveau d’un simple module de texte (par exemple, telle personne peut être responsable du contenu d’un emplacement unique dans tout le site). - le module de téléchargement permet un classement arborescent de documents à consulter ou télécharger. Couplé aux puissantes fonctions d’identification et de partage de rôle, cette utilisation offre l’équivalent de logiciels coûteux du marché. L’intranet n’est pas séparé de l’espace public. Il est simplement accessible par les visiteurs autorisés, et invisible pour les autres. - facilité de développer ses propres modules - base de données : SQLServer - liberté laissée au développeur pour adapter ce portail

- assez difficile à différencier des autres sites fonctionnant avec le même framework : même en personnalisant un peu le design, on aperçoit au premier coup d'oeil la présence du Nuke like derrière

Page 53: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

ANNEXE II

Installation de DotNetNuke (nécessaire au service informatique de l'hôpital)

1. Pré-requis MS-Visual Studio 2005, MS-SQL Server 2005 et MS-IIS (Internet Information Services) doivent être installés sur la même machine. De ce fait, la version 2 framework .Net devrait aussi être installée. Vous pouvez généralement obtenir des versions de développement avec un abonnement MSDN. Notez que cette installation peut également se faire avec MS-Visual Web Developer et MS-SQL Server 2005 Express, deux outils gratuits (mais pas libres) de Microsoft.

2. Téléchargement Avant de pouvoir télécharger DotNetNuke, il faut s'enregistrer sur le site web : http://dotnetnuke.com/. Allez plutôt sur leur page sur SourceForge (http://sourceforge.net/projects/dnn), cliquez sur le bouton "Download", descendez dans la page jusqu'à "File Release" et choisissez le Starter Kit de la dernière version en cours. Un dernier clic sur un des miroirs (HEAnet et OVH.com fonctionnent bien) et vous voilà en train de télécharger DotNetNuke (un peu moins de 5Mo).

3. Installation du Starter Kit Si ce n'est pas déjà fait, rendez-vous dans la console de gestion d'Internet Information Services et démarrez votre site web. Rendez-vous dans le répertoire où vous avez téléchargé votre fichier et lancez-le (double-clic dessus, dans l'Explorateur). Dans la première fenêtre, le programme vous demande le contenu à installer. Laissez toutes les options cochées et cliquez sur le bouton "Next".

Page 54: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Vous allez recevoir une fenêtre vous indiquant que l'installateur ne trouve pas de signature. Cette signature sert à vérifier que l'application n'a pas été corrompue par une personne malveillante. Le seul moyen de continuer est de cliquer sur "Oui" (pour quand même installer le logiciel).

Ensuite, l'installateur vous dit qu'il suffit de cliquer sur le bouton "Finish" pour terminer l'installation. Faites-le.

Après un temps relativement court (cela dépend de la puissance de votre machine), l'installation dit qu'elle a fini. Il ne vous reste plus qu'à cliquer sur le bouton "Close".

Page 55: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

4. Créer la première application DotNetNuke Afin de créer votre première application DotNetNuke, lancez MS-Visual Studio 2005. Dans le menu File, choisissez l'option "New ..." puis "Web Site...".

Vérifiez bien que, dans le bas de la boîte de dialogue, le langage soit bien Visual Basic (sinon, vous ne verrez pas la suite !). Sélectionnez l'item "DotNetNuke Web Application ..." dans la section des templates personnels. Comme cette première application ne servira qu'à vous familiariser avec DotNetNuke, vous pouvez simplement la laisser dans http://localhost/ . Veillez simplement à lui donner un nom évocateur (ici : DNN1). Cliquez sur le bouton "OK" et laissez votre ordinateur travailler pendant quelque temps.

Page 56: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

A la fin de l'installation, votre écran devrait ressembler à celui-ci :

Il reste encore beaucoup de choses à faire : gérer la connexion au serveur MS-SQL Server 2005, configurer les accès et permissions, choisir un template (du site) et, finalement, installer DotNetNuke.

5. Configuration du serveur SQL Par défaut avec ce Starter Kit, c'est l'utilisation de SQL Server 2005 Express qui est définie. Heureusement, l'équipe de DotNetNuke a tout prévu et ils ont écrit une page pour la configuration de MS-SQL Server 2005 (non-Express) : http://localhost/DNN1/Documents/SQLServer2005Config .html (remplacer "DNN1" par le nom de votre projet). Lancez le SQL Server Management Studio. Dans l'explorateur d'objets (à gauche, normalement), sélectionnez l'item "Databases" dans le serveur SQL que vous voulez employer. Faites un clic droit sur "Databases" et

Page 57: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

choisissez "New Database...". Dans la boîte de dialogue qui apparaît, donnez simplement un nom à votre base de données (ici : DNN1 pour faire simple). Cliquez finalement sur le bouton OK.

La partie dans MS-SQL Server 2005 est terminée. Maintenant, il faut adapter la chaîne de connexion dans l'application. Retournons dans MS-Visual Studio 2005. Dans l'explorateur de solution (normalement, en haut à droite), double-cliquez sur web.config dessus pour l'éditer. Dans la section "connectionStrings", la chaîne de connexion pour SQL Server 2005 (non-Express) est mise en commentaire.

Il faut supprimer (ou mettre en commentaire) le bloc contenant la chaîne pour Express et laisser (non commentée) le bloc contenant la chaîne pour SQL Server 2005. En l'adaptant, la chaîne devient connectionString="Server=COMPAQ;Database=DNN1;uid=u tilisateurdnn1;pwd=utilisateurdnn1;" (adaptez si vous n'avez pas les mêmes noms).

Page 58: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Notez qu'il y a une seconde chaîne de connexion à modifier, juste après ...

Ce qui donne, en reprenant les deux modifications : <connectionStrings> <add name="SiteSqlServer" connectionString="Server=COMPAQ;Database=DNN1;uid=u tilisateurdnn1;pwd=utilisateurdnn1;" providerName="System.Data.SqlClient" / > </connectionStrings> <appSettings> <add key="SiteSqlServer" value="Server=COMPAQ;Database=DNN1;uid=utilisateurd nn1;pwd=utilisateurdnn1;" /> <add key="InstallTemplate" value="DotNetNuke.insta ll.config" />

6. Configuration d'IIS Normalement, il ne faut rien faire pour configurer IIS. Néanmoins, il faut vérifier certaines choses ... Dans IIS, faites un clic droit sur le répertoire contenant DotNetNuke (DNN1 ici) et choisissez Propriétés. Dans l'onglet "Directory", donnez un nom à votre application (cliquez sur le bouton Apply). Et, dans l'onglet "ASP.Net", vérifiez bien que la version d'ASP.Net est bien supérieure à 2. Cliquez sur le bouton OK pour fermer les propriétés.

Page 59: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Normalement, il n'y a pas besoin de configurer les permissions sur le système de fichier.

7. C'est (presque) fini ! Ouf ! C'est fini. Maintenant, soit vous restez dans MS-Visual Studio 2005 et vous pouvez cliquer sur Ctrl + F5 pour installer DotNetNuke. Soit vous ouvrez un navigateur web et vous vous connectez à l'URL: http://localhost/DNN1. Si tout va bien, toute une série de lignes vont s'afficher. Laissez défiler. Tout en bas, à la fin, vous devriez avoir une phrase qui dit "Click Here To Access Your Portal". Cliquez dessus ! Voilà !

Page 60: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

Page 61: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

ANNEXE III

Codes sources principaux (les commentaires sont en vert ) : Fichier intervention_imprimante.aspx.vb (exécuté cô té serveur) Le type de code suivant utilisé pour une demande d’ intervention d’imprimante est repété pour tous les autres formulaires comme pour une demande d’intervention technique, informatique et téléphonique et même pou r des demandes autres comme les transports sanitaires et logistiques ‘Import des librairies Imports System.All Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Data.OleDb Imports System.DirectoryServices Imports System.DirectoryServices.DirectoryEntry Imports System.Web.Mail Partial Class intervention_imprimante Inherits System.Web.UI.Page ‘Variables globales Private sep, posSeparateur, StrUserName, poste, objConnect ion, objCommand, objRecordSet, sCN, strADsPath, cr2, cr3 , obj, desc0, get_mail, desc, titre, prenom, nom, nom0, nom1, dbconn, sql, sql3, dr3, dr, sql2, dr2, i, cr1, log, ufloc ‘Fonction permettant d’extraire une chaîne de carac tères jusqu’à un séparateur, les deux étant passés en paramètre Function LeftExtract( ByVal chaine, ByVal separateur) sep = len(separateur) - 1 If inStr(chaine, separateur) = 0 Then LeftExtract = "-1" Else posSeparateur = inStr(chaine, separateu r) LeftExtract = Left(chaine, (posSeparate ur - sep - 1)) End If End Function Public nom_connexion As New SqlConnection ‘Fonction s’exécutant lors de l’initialisation de l a page Private Sub Page_Init( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init Try ‘Récupération des informations de l’utilisateur dan s l’Active Directory grâce à son login placé dans la variable strUsername strUserName = Mid(Request.ServerVariabl es( "LOGON_USER"), 5) login.Text = strUserName poste = Request.ServerVariables( "REMOTE_HOST") micro.Text = poste objConnection = CreateObject( "ADODB.Connection" )

Page 62: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

‘Pour cause de sécurité, les champs « user » et « p assword » sont pas données ici ("XXX")

objConnection.Open( "Provider=ADsDSOObject" , "CHV\Administrateur" , "@chvsrv@" )

objCommand = CreateObject( "ADODB.Command") objCommand.ActiveConnection = objConnec tion objCommand.Properties( "Page Size" ) = 5000 objCommand.CommandText = "<LDAP://OU=CHV,dc=chv,dc=intra>;(&(objectCategory= User)(samAccountName=" & strUserName & "));samAccountName,cn,ADsPath;subtree" objRecordSet = objCommand.Execute If objRecordset.RecordCount = 0 Then sCN = "" Else strADsPath = objRecordset.Fields( "ADsPath" ).value get_mail = GetObject(strADsPath).ma il nom0 = GetObject(strADsPath).name nom1 = Mid(nom0, 4) desc = GetObject(strADsPath).descri ption End If email.Text = get_mail Catch ex As Exception response.write(Ex.tostring()) response.write(ex.Message) End Try log = Mid(strUserName, 2, 1) ‘Réception des autres données stockées en base corr espondantes à l’utilisateur nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString1" ) nom_connexion.Open() sql2 = "SELECT titre, cur_name, nom, prenom from AGENTS5 w here code='" + strUserName + "'" Dim dbcomm As New SqlCommand(sql2, nom_connexion) dr2 = dbcomm.ExecuteReader() nom_emp.Text = nom1 While dr2.Read titre = dr2.getValue(0) nom = dr2.getValue(2) prenom = dr2.getValue(3) nom_emp.Text = Trim(dr2.getValue(0) + d r2.getValue(1)) End While dr2.Close() nom_connexion.Close() ‘Remplissage de la ComboBox CR en fonction des CR d e l’utilisateur si il est en base de données, sinon grâce à l’Activ e Directory If log = "0" Or log = "1" Or log = "2" Or log = "3" Or log = "4" Or log = "5" Or log = "6" Or log = "7" Or log = "8" Or log = "9" Then nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString1" ) nom_connexion.Open() sql3 = "SELECT CR1,CR2,CR3,CR4,CR5,CR_NAME1,CR_NAME2,CR_NAME3,CR_NAME4,CR_NAME5 from AGENTS5 where code='" + strUserName + "'" Dim dbcomm2 As New SqlCommand(sql3, nom_connexion) dr3 = dbcomm2.ExecuteReader()

Page 63: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

cr.Items.Add( "(Sélectionnez)" ) While dr3.Read If Not dr3.GetValue(0) Is DBNull.value Then cr.Items.Add(dr3.GetValue(0) + " : " + dr3.GetValue(5)) End If If Not dr3.GetValue(1) Is DBNull.value Then cr.Items.Add(dr3.GetValue(1) + " : " + dr3.GetValue(6)) End If If Not dr3.GetValue(2) Is DBNull.value Then cr.Items.Add(dr3.GetValue(2) + " : " + dr3.GetValue(7)) End If If Not dr3.GetValue(3) Is DBNull.value Then cr.Items.Add(dr3.GetValue(3) + " : " + dr3.GetValue(8)) End If If Not dr3.GetValue(4) Is DBNull.value Then cr.Items.Add(dr3.GetValue(4) + " : " + dr3.GetValue(9)) End If End While dr3.close() uf.Items.Add( "(Sélectionnez)" ) nom_connexion.Close() Else desc0 = Mid(desc, 2, 1) If desc0 = "0" Or desc0 = "1" Or desc0 = "2" Or desc0 = "3" Or desc0 = "4" Or desc0 = "5" Or desc0 = "6" Or desc0 = "7" Or desc0 = "8" Or desc0 = "9" Then nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString1" ) nom_connexion.Open() sql2 = "SELECT CR1,CR2,CR3,CR4,CR5 from AGENTS5 where code='" + desc + "'" Dim dbcomm3 As New SqlCommand(sql2, nom_connexion) dr2 = dbcomm3.ExecuteReader() cr.Items.Add( "(Sélectionnez)" ) While dr2.Read If dr2.GetValue(0) Is DBNull.value Then cr.Items.Add( "Pas de CR" ) Else cr.Items.Add(dr2.GetValue(0 )) End If If Not dr2.GetValue(1) Is DBNull.value Then cr.Items.Add(dr2.GetValue(1 )) End If If Not dr2.GetValue(2) Is DBNull.value Then cr.Items.Add(dr2.GetValue(2 )) End If If Not dr2.GetValue(3) Is DBNull.value Then cr.Items.Add(dr2.GetValue(3 )) End If If Not dr2.GetValue(4) Is DBNull.value Then cr.Items.Add(dr2.GetValue(4 )) End If End While dr2.close() uf.Items.Add( "(Sélectionnez)" ) nom_connexion.Close() Else cr.Items.Add( "Vous n'êtes affecté à aucun CR, veuillez contacter le service informatique" ) End If

Page 64: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

End If End Sub ‘Fonction exécutée à chaque rafraîchissement de la page permettant, dès que l’utilisateur sélectionne un CR de remplir la C omboBox UF en fonction du CR sélectionné Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ufloc = uf.SelectedValue uf.Items.Clear() cr1 = cr.SelectedValue cr2 = Mid(cr1, 1, 1) cr3 = LeftExtract(cr1, " " ) If cr2 = "0" Or cr2 = "1" Or cr2 = "2" Or cr2 = "3" Or cr2 = "4" Or cr2 = "5" Or cr2 = "6" Or cr2 = "7" Or cr2 = "8" Or cr2 = "9" Then nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString1" ) nom_connexion.Open() sql = "SELECT * from CR_UF where CR = '" + cr3 + "' order by UF" Dim dbcomm2 As New SqlCommand(sql, nom_connexion) dr = dbcomm2.ExecuteReader() uf.Items.Add( "(Sélectionnez)" ) While dr.Read ' ajout de la donnée au ComboBox uf uf.Items.Add(dr.GetValue(0) & " : " & dr.GetValue(2)) End While dr.Close() nom_connexion.Close() Else uf.Items.Add( "(Sélectionnez)" ) End If End Sub Protected Sub Button1_Click( ByVal sender As Object , _ ByVal e As System.EventArgs)

‘Réception des données du formulaire, insérées par l’utilisateur Dim etat, id, res, resum, tel_rec, log_rec, nom_rec, n omdem_rec,

prenom_rec, loc_rec, cr_rec, uf_rec, micro_rec, mar que_rec, modele_rec, codeimp_rec, desc_rec, cat_rec, email_rec, date_rec , u_utilisateur, u_poste date_rec = now() tel_rec = tel.text.toString() log_rec = login.text.toString() nom_rec = Trim(nom) prenom_rec = Trim(prenom) nomdem_rec = Trim(nom_emp.text.toString()) micro_rec = micro.text.toString() cr_rec = cr.SelectedValue uf_rec = ufloc loc_rec = localisation.text.toString() marque_rec = marque.SelectedValue modele_rec = modele.text.toString() codeimp_rec = code_imprimante.text.toString ()

Page 65: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

desc_rec = description.text.toString() cat_rec = categorie.SelectedValue email_rec = email.text.toString() u_utilisateur = strUserName u_poste = poste etat = "non validé" ‘Création du résumé pour l’afficher lors de la cons ultation du formulaire, celui-ci sera stocké en base res = "<table align=center><tr><td align=right><a name=te xt style=""font-family:Arial,Helvetica, sans-serif !important;font- size: 11;font-weight: bold;"">Login de connexion : </a></td><td align=lef t><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;color:red;font-weight: bold;"">" & log_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Nom prénom du demandeur : < /a></td><td align=left><a name=text style=""font-family:Arial,H elvetica, sans-serif !important;font-size: 11;color:red;font-weight: bol d;"">" & nomdem_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">CR : </a></td><td align=lef t><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;color:red;font-weight: bold;"">" & cr_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">UF : </a></td><td align=lef t><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;color:red;font-weight: bold;"">" & uf_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">N° micro demandeur : </a></ td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">" & micro_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Téléphone : </a></td><td al ign=left><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;color:red;font-weight: bold;"">" & tel_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">E-mail : </a></td><td align =left><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;color:red;font-weight: bold;"">" & email_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Bâtiment, étage : </a></td> <td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">" & loc_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Marque de l''imprimante : < /a></td><td align=left><a name=text style=""font-family:Arial,H elvetica, sans-serif !important;font-size: 11;color:red;font-weight: bol d;"">" & marque_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Modèle de l''imprimante : < /a></td><td align=left><a name=text style=""font-family:Arial,H elvetica, sans-serif !important;font-size: 11;color:red;font-weight: bol d;"">" & modele_rec res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size:

Page 66: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

11;font-weight: bold;"">Code de l''imprimante : </a ></td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">" & codeimp_rec If cat_rec = "B" Then res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Catégorie de problème : </a ></td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">bourrage ou problème de prise papier" End If If cat_rec = "M" Then res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Catégorie de problème : </a ></td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">mauvaise qu alité d''impression" End If If cat_rec = "E" Then res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Catégorie de problème : </a ></td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">éditions bl oquées dans le gestionnaire d''impression" End If If cat_rec = "A" Then res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Catégorie de problème : </a ></td><td align=left><a name=text style=""font-family:Arial,Helvetica, sans -serif !important;font-size: 11;color:red;font-weight: bold;"">autre" End If res = res & "</a></td></tr><tr><td align=right><a name=text style=""font-family:Arial,Helvetica, sans-serif !im portant;font-size: 11;font-weight: bold;"">Description de la panne : < /a></td><td align=left><a name=text style=""font-family:Arial,H elvetica, sans-serif !important;font-size: 11;color:red;font-weight: bol d;"">" & desc_rec & "</td></tr></table></b>" ‘Vérifie que l’utilisateur a bien sélectionné un él ément dans les ComboBox. Si non, affichage d’un message d’erreur, si oui, insertion des données dans la base avec envoi du mail contenant l e résumé des informations saisies et un lien vers ce formulaire. Ce lien prend en paramètres le numéro du formulaire créé et le nom d e la table dans laquelle les informations du formulaire ont été insérées If uf_rec = "(Sélectionnez)" Or cr_rec = "(Sélectionnez)" Or marque_rec = "(Sélectionnez)" Then Response.write( "<script language=javascript> alert('Veuillez sélectionner un élément dans les listes déroulantes ')</script>" ) Else nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString2" ) nom_connexion.Open() sql = "INSERT INTO intervention_imprimante (date, CR, UF, nom, prenom,nom_demandeur, micro, tel, localisation, mar que, modele, code_imprimante, categorie, description, u_mail, u_ utilisateur, u_poste, last_mod, resume) " sql = sql + " VALUES('" + date_rec + "','" + cr_rec + "','" + uf_rec + "','" + nom_rec + "','" + prenom_rec + "','" + nomdem_rec + "','"

Page 67: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

+ micro_rec + "','" + tel_rec + "','" + loc_rec + "','" + marque_rec + "','" + modele_rec + "','" + codeimp_rec + "','" + cat_rec + "','" + desc_rec + "','" + email_rec + "','" + u_utilisateur + "','" + u_poste + "','" + etat + "', '" + res + "')" sql = sql + " SELECT @@IDENTITY as bid" Dim dbcomm2 As New SqlCommand(sql, nom_connexion) dr = dbcomm2.ExecuteReader() If dr.read Then id = dr.getValue(0).toString() validation.text = "Votre demande a bien été enregistrée" End If dr.Close()

sql = "SELECT resume from intervention_imprimante where i d = " + id

Dim dbcomm3 As New SqlCommand(sql, nom_connexion) dr = dbcomm3.ExecuteReader() If dr.read Then Dim r1 = dr.getvalue(0) End If dr.Close() nom_connexion.Close() resum = "<b> Bonjour,<br><br> Votre demande a bien été enregistrée. Le service informatique vous tiendra a u courant du déroulement de la réparation.<br><br>Cordialement,<br><br></b>< i>Le service informatique</i><br><br><br>" resum = resum & r1 resum = resum & "<br><br><tr><td><br><br></td></tr><tr><td align=center><font face=arial color=blue><b>Veuille z retrouver votre formulaire </a><a href='http://localhost/pole.new/t est/consult.aspx?login=" & id & "&table=intervention_imprimante' >ici</a>.</td></tr ></table></b>" Dim email As New MailMessage() Dim utilisateur, password, serveur As String utilisateur = ConfigurationSettings.AppSettings( "SmtpUtilisateur" ) password = ConfigurationSettings.AppSet tings( "SmtpPassword" ) serveur = ConfigurationSettings.AppSett ings( "SmtpServeur" ) email.From = email_rec email.To = "[email protected]" email.Subject = "Demande d'intervention d'imprimante" email.BodyFormat = MailFormat.Html email.Body = "<html>" & _ "<head>" & _ "<meta http-equiv=""Content-Language"" content=""fr"">" & _ "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1252"">" & _ "</head>" & _ "<body>" & _ resum & _ "</body>" & _ "</html>" SmtpMail.SmtpServer = serveur

Page 68: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/smt pauthenticate" , "0" ) email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sen dusername", utilisateur) email.Fields.Add( "http://schemas.microsoft.com/cdo/configuration/sen dpassword" , password) Try SmtpMail.Send(email) Catch ex As Exception response.write(Ex.tostring()) End Try End If End Sub End Class ‘Appel au fichier exécuté du côté serveur <%@ Page Language ="VB" CodeFile ="intervention_imprimante.aspx.vb" Inherits ="intervention_imprimante" AutoEventWireup ="false" debug ="true" %> <html > <head > <meta http-equiv ="Content-Language" content ="fr"> <meta http-equiv ="Content-Type" content ="text/html; charset=windows-1252"> <title >formulaire d'intervention imprimante </ title > <script language ="JavaScript"> ‘Fonction permettant d’afficher la date et l’heure au moment de la saisie function f1() { var d = new Date(); jour =d.getDate(); mois =d.getMonth(); annee =d.getFullYear(); heure =d.getHours(); minute =d.getMinutes(); sec =d.getSeconds(); sec0= "" ; min0= "" ; heure0= "" ; mois0= "" ; jour0= "" ; annee0= "" ; if (sec<10) sec0= "0" ; if (minute<10) min0= "0" ; if (heure<10) heure0= "0" ; if (mois<10) mois0= "0" ; if (jour<10) jour0= "0" ; sec0+=sec; min0+=minute; heure0+=heure; mois0+=mois;

Page 69: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

jour0+=jour; document.myForm.date_insert.value=jour0+ '/' +mois0+ '/' +annee; document.myForm.heure_insert.value=heure0+ ':' +min0+ ':' +sec0; pa = setTimeout( "f1()" ,1000); } </ script > <style > #text { font-family : Arial,Helvetica, sans-serif !important ; font-size : 11; font-weight : bold ;} #text_titre { font-family : Arial,Helvetica, sans-serif !important ; font-size : 14; font-weight : bold ;} span.invalid , span.missing { display : inline ; font-weight : bold ; font-style : italic ; font-family : Arial, Verdana, sans-serif ; color : #f66 ; font-size : 0.9em ;} .noticeMessage { display : block ; float : right ; font-weight : normal ; font-family : Arial, Verdana, sans-serif ; color : #663 ; font-size : 0.9em ;} </ style > </ head > ‘Contenu du formulaire : les balises asp sont les c ontrôles dont les valeurs insérées sont récupérées grâce au fichier e xécuté du côté serveur. Par exemple, la balise <asp:TextBox… correspond à < input type="text"… en HTML. De plus, les balises du type <asp:RequiredFie lValidator… ou <asp:RegularExpressionValidator… permettent de cont rôler au moment de la saisie si le champ est correctement rempli. En fait , l’utilisation de Dojo pour le contrôle de saisie à été annulée puisque ce s dernières balises ASP donnent le même résultat avec l’avantage de rester dans le même type de code <body bgcolor ="transparent" leftmargin ="0" topmargin ="0" marginwidth ="0" marginheight ="0" bgproperties ="fixed" text ="black" onLoad ="f1()" onUnload ="clearTimeout(pa)"> <font face ="Arial,Helvetica, sans-serif" size ="1"> <form method ="post" name="myForm" id ="myForm" runat ="server"> <table border ="0" width ="100%"> <tr > <td colspan ="4" align ="right"> <a name=text id =text> Demande effectuée le <asp : TextBox ID ="date_insert" name="date_insert" Runat ="server" style ="text-align:right; width:5.5em;" readonly ="true" />< br > à <asp : TextBox ID ="heure_insert" name="heure_insert" Runat ="server" style ="text-align:right; width:5.5em;" readonly ="true"/> </ a> </ td >

Page 70: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

</ tr > <tr > <td align ="right">< a name=text id =text> Login de connexion : </ a></ td > <td > <asp : TextBox ID ="login" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="login" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > </ td > <td >&nbsp; </ td > <td >&nbsp; </ td > </ tr > <tr > <td align ="right">< a name=text id =text> Nom Prénom du demandeur : </ a></ td > <td > <asp : TextBox ID ="nom_emp" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="nom_emp" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator ></ td > <td >&nbsp; </ td > <td >&nbsp; </ td > </ tr > <tr > <td valign ="middle">< div align ="right">< a name=text id =text> CR : </ a></ div ></ td > <td > <asp : DropDownList id ="cr" runat ="server" AutoPostBack ="True"> </ asp : DropDownList ></ td > <td valign ="middle">< div align ="right">< a name=text id =text> UF : </ a></ div ></ td > <td > <asp : DropDownList id ="uf" runat ="server"> </ asp : DropDownList > </ td > </ tr > <tr > <td > <div align ="right">< a name=text id =text> N° micro-ordinateur : </ a></ div > </ td > <td > <asp : TextBox ID ="micro" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="micro" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server>

Page 71: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

* </ asp : RequiredFieldValidator > </ td > <td colspan ="2" id ="text"> exemple : M001, P001...ce n° est inscrit sur l'unité centrale </ td > <td >&nbsp; </ td > <td >&nbsp; </ td > </ tr > <tr > <td valign ="middle">< div align ="right">< a name=text id =text> Tel : </ a></ div ></ td > <td > <asp : TextBox ID ="tel" Runat ="server" maxlength ="10" /> <asp : RequiredFieldValidator ControlToValidate ="tel" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > <asp : RegularExpressionValidator ControlToValidate ="tel" Display ="Dynamic" ValidationExpression ="^\d{10}$" Font-Name ="Arial" Font-Size ="11" runat =server> Numéro de téléphone non valide, veuil lez entrer un numéro à 10 chiffres </ asp : RegularExpressionValidator > <td valign ="middle">< div align ="right">< a name=text id =text> Bâtiment, Etage : </ a></ div ></ td > <td > <asp : TextBox ID ="localisation" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="localisation" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > </ td > </ tr > <tr > <td valign ="middle">< div align ="right">< a name=text id =text> Marque : </ a></ div ></ td > <td > <asp : DropDownList id ="marque" runat ="server"> <asp : ListItem value ="(Sélectionnez)"> (Sélectionnez) </ asp : ListItem > <asp : ListItem value ="Lexmark"> Lexmark </ asp : ListItem > <asp : ListItem value ="Hewlett-Parckard"> Hewlett-Parckard </ asp : ListItem > <asp : ListItem value ="Samsung"> Samsung</ asp : ListItem > <asp : ListItem value ="Epson"> Epson </ asp : ListItem > </ asp : DropDownList > </ td > <td valign ="middle">< div align ="right">< a name=text id =text> Modèle de l'imprimante : </ a></ div ></ td > <td >

Page 72: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

<asp : TextBox ID ="modele" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="modele" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > </ td > </ tr > <tr > <td valign ="middle">< div align ="right">< a name=text id =text> Code de l'imprimante réseau : </ a></ div ></ td > <td > <asp : TextBox ID ="code_imprimante" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="code_imprimante" Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > </ td > </ tr > <tr > <td valign ="top" colspan ="4" align ="center">< p>&nbsp; </ p><p><strong ><a id ="text_titre"> CHOISIR LA CATEGORIE DE PROBLEME * : </ a></ strong > <table > <tr ><td > <asp : RadioButtonList id ="categorie" runat ="server" RepeatDirection ="Vertical"> <asp : ListItem value ="B">< a name=text id =text> &nbsp; Bourrage ou problème de prise papier </ a></ asp : ListItem > <asp : ListItem value ="M">< a name=text id =text> &nbsp; Mauvaise qualité d'impression </ a></ asp : ListItem > <asp : ListItem value ="E">< a name=text id =text> &nbsp; Editions bloquées dans le gestionnaire d'impression </ a></ asp : ListItem > <asp : ListItem value ="A">< a name=text id =text> &nbsp; Autre </ a></ asp : ListItem > </ asp : RadioButtonList > </ td ></ tr > </ table > </ p> </ td > </ tr > <tr > <td valign ="top" colspan ="4" align ="center"> <p>&nbsp; </ p> <p><strong ><a id ="text_titre"> DESCRIPTION DE LA DEMANDE OU DE LA PANNE * : </ strong > <br > <asp : TextBox ID ="description" TextMode ="multiline" columns ="70" rows ="6" Runat ="server" /></ a> </ p> </ td > </ tr > <tr > <td valign ="middle" colspan ="4" align ="center">< a name=text id =text> Entrez votre E-mail : </ a>

Page 73: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

<asp : TextBox ID ="email" size ="40" Runat ="server" /> <asp : RequiredFieldValidator ControlToValidate ="email" ErrorMessage ="Adresse électronique. " Display ="Dynamic" Font-Name ="Verdana" Font-Size ="12" runat =server> * </ asp : RequiredFieldValidator > </ td > </ tr > <tr > <td valign ="middle" colspan ="4" align ="center"> <asp : RegularExpressionValidator ControlToValidate ="email" ErrorMessage ="Adresse électronique. " Display ="Dynamic" ValidationExpression ="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Font-Name ="Arial" Font-Size ="11" runat =server> Adresse électronique non valide. Elle doit être au format email@hôte.domaine. </ asp : RegularExpressionValidator > </ td > </ tr > </ table > <table align ="center"> <tr > <td style ="width: 7em;"> <asp : button id ="Button1" runat ="server" onclick ="Button1_Click" Text ="Valider"/> </ td > <td align ="center" style ="width: 7em;"> <input type ="submit" value ="Rétablir" onclick ="top.window.location='http://M226/pole.new/test/in tervention_imprimante.aspx'" </ td > </ tr > <tr ><td ><br ><br ></ td ></ tr > <tr > <td valign ="middle" colspan ="4" align ="center"> <ASP: Label id ="validation" runat ="server" style ="color:red;" /> </ td > </ tr > </ table > </ form > </ body > </ html >

Fichier web.config ‘Contient les chaînes de caractères pour les connex ions aux différents serveurs et les titres, affichés lors de la consult ation, en fonction du type de formulaire demandé par l’utilisateur. Pour cause de sécurité, les champs « user » et « password » ne sont pas données ici ("XXX") <?xml version =" 1.0 " encoding =" utf-8 " ?> <configuration >

Page 74: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

<appSettings > <add key =" ConnectionString1 " value =" database=DI;server=S5;user=XXX;pwd=XXX " /> <add key =" ConnectionString2 " value =" database=intra_formulaires;server=S5;user=XXX;pwd=X XX" /> <add key =" SmtpServeur " value =" mail.chv.intra " /> <add key =" SmtpUtilisateur " value ="" /> <add key =" SmtpPassword " value ="" /> <add key =" intervention_imprimante " value =" Demande d'intervention d'imprimante du " /> <add key =" transport_sanitaire " value =" Formulaire de transport sanitaire du " /> </ appSettings > </ configuration > Fichier consult.aspx.vb (exécuté côté serveur) ‘Import des librairies Imports System.All Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Data.OleDb Imports System.DirectoryServices Imports System.DirectoryServices.DirectoryEntry Imports System.Web.Mail Partial Class consult Inherits System.Web.UI.Page Public nom_connexion As New SqlConnection Private Sub Page_Init( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ‘Vérifie que le n° de login et le nom de la table i nsérés dans le lien du mail ne sont pas nuls et affiche l’état d’a vancement du formulaire, le résumé et la date de saisie du formulaire corres pondant If request( "login" ) <> "" And request( "table" ) <> "" Then Dim login, sql2, dr2, table login = request( "login" ) table = request( "table" ) nom_connexion.ConnectionString = ConfigurationSettings.AppSettings( "ConnectionString2" ) nom_connexion.Open() sql2 = "SELECT last_mod, resume, date from " + table + " where id='" + login + "'" Dim dbcomm As New SqlCommand(sql2, nom_connexion) dr2 = dbcomm.ExecuteReader() If dr2.read Then titre_resum.text = ConfigurationSet tings.AppSettings(table) + dr2.getvalue(2) resum.text = dr2.getvalue(1) If dr2.getvalue(0) Is DBNull.Value Then avancement.text = "non validé" Else avancement.text = dr2.getvalue( 0) End If

Page 75: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

End If dr2.close() nom_connexion.close() End If End Sub End Class Fichier consult.aspx (exécuté côté client) Il est utilisé pour tous les formulaires (comme le fichier consult.aspx.vb bien sûr !). Il permet d’afficher les informations d’un formulaire de n’importe quel type (demande d’intervention d’imprimante, de trans port sanitaire, logistique…) ‘Appel au fichier exécuté du côté serveur <%@ Page Language ="VB" CodeFile ="consult.aspx.vb" Inherits ="consult" AutoEventWireup ="false" debug ="true" %> <html > <head > <meta http-equiv ="Content-Language" content ="fr"> <meta http-equiv ="Content-Type" content ="text/html; charset=windows-1252"> <title >formulaire d'intervention imprimante </ title > <html > ‘Corps de la page affichant un tableau contenant le titre du formulaire, son résumé et l’état de la demande <body background-color ="#fefefe"> <img src ="pole2.gif" width ="20%" height ="12%">< br ><br ><br > <center > <table border ="1"> <tr > < td ><br > < asp : Label id ="titre_resum" runat ="server" style ="font-family:arial; font-size:25; font-weight:bold; color:blue;"/>< br ><br > </ td > </ tr > <tr > < td ><br > < asp : Label id ="resum" runat ="server" style ="font-family:arial; font-size:15; "/>< br > </ td > </ tr > <tr > < td ><br > < font face ="arial" size ="3" color ="orange">< b>Etat de l'avancement de la réparation : </ font > < asp : Label id ="avancement" runat ="server" /></ b><br > </ td > </ tr > </ table > </ body > </ html >

Page 76: Rapport de Stage : Refonte du système de publication et de …laurentmuthelet.free.fr/pres/doc/vinatier.pdf · Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion

Laurent Muthelet - Juin 2007 - Rapport de stage – Gestion de la diffusion d’informations

Centre Hospitalier Spécialisé Le Vinatier - Service Informatique

ANNEXE IV

Adresses utiles Centre Hospitalier Spécialisé Le Vinatier : http://www.ch-le-vinatier.fr

I.U.T. A Lyon I : http://iuta.univ-lyon1.fr/

DotNetNuke : http://www.dotnetnuke.com

http://www.dotnetnuke.fr

http://www.sourceforge.net

Langages de programmation :

http://www.bitme.org

http://www.w3school.com

http://www.asp-php.net

http://www.developpez.com