Documentation de l`application

Transcription

Documentation de l`application
Application de lecture de carte SESAM-Vitale Jeebop
Présentation
Le module de lecture de carte SESAM-Vitale Jeebop est une application Java Web Start, c'est à dire
une application Java qui se télécharge et s'installe sur le poste client en cliquant simplement sur un
lien externe de type JNLP. Lors du premier clic sur le lien, l'application JWS s'installe, lors des clics
suivants, elle se lance (du cache du navigateur). Les données SESAM-Vitale lues sont transmises de
façon sécurisée vers un serveur HTTPS paramétrable (pré-renseigné). Cette application existe pour
les systèmes Windows et Mac OS X.
A l'installation, cette application installe les librairies CPS nécessaires à la lecture de la carte
SESAM-Vitale, puis ouvre un dialogue de configuration permettant à l'utilisateur (le professionnel
de santé en l’occurrence) de renseigner un certain nombre de paramètres (nom, prénom, identifiant
etc...). Ces paramètres sont envoyés au serveur HTTPS en même temps que les données de la carte
SESAM-Vitale.
Il est également possible de faire passer à l'application des paramètres par la page JNLP.
Utilisation
Au lancement de l'application, la fenêtre suivante apparaît :
En cliquant sur le bouton Config, le dialogue suivant apparaît :
URL serveur est l'adresse où sont envoyées les données lues de la carte SESAM-Vitale. La valeur
est renseignée par le serveur d'où l'application a été téléchargée.
Si cet URL est protégé par une authentification, il faut renseigner le Nom d'utilisateur et le Mot de
passe ici.
Les données Nom, Prénom, Identifiant interne et Code établissement sont des données permettant
au serveur d'identifier d'où vient l'appel. Elles sont transmises au serveur.
Une fois tous les paramètres correctement renseignés, il faut tester la connexion en cliquant sur le
bouton Tester ; le dialogue suivant apparaît alors :
Notez que le texte affiché (HTML) provient du serveur contacté.
Lorsqu'on clique sur le bouton Lecture, la carte SESAM-Vitale insérée dans le lecteur est lue.
Si l'option « Utiliser la carte CPS » est cochée, un dialogue demandant la saisie du code porteur est
présenté.
Si le code saisi est vide, l'opération est annulée. Dans le cas contraire, le code est enregistré dans
l'application, et s'il est vérifié ne sera plus demandé. A la fin de la lecture de la carte Vitale, les
personnes en carte sont affichées :
Les touches flèche haut et bas permettent de se déplacer dans la liste, la touche Escape à la même
action que le bouton Fermer, la touche Enter à la même action que le bouton Envoyer.
Un clic sur l'icône Information en haut à droite permet d'afficher un dialogue contenant des
informations sur le logiciel.
La première personne en carte (le porteur de carte) est toujours sélectionné par défaut.
Si l'option -sb est passée au JNLP (voir plus bas Options du fichier JNLP) un bouton Sauver
apparaît, qui permet de sauver les informations de la carte en local dans un fichier XML.
Si l'option -hs est passée au JNLP (voir plus bas Options du fichier JNLP) le bouton Envoyer n'est
pas affiché, l'application ne permet alors seulement que de sauver les données de la carte en local.
En cliquant sur le bouton Envoyer, les données de la carte SESAM-Vitale sont envoyées au serveur.
En retour, le dialogue suivant s'affiche :
Notez qu'ici encore il s'agit du message renvoyé par le serveur qui s'affiche.
Mode One screen
En passant à l'application (par le fichier JNLP) le paramètre -1s, l'application s'exécute en mode one
screen, c'est à dire qu'à son lancement, le premier écran est sauté, l'application lit directement la
carte SESAM-Vitale présente dans le lecteur (et qui doit donc être introduite avant le lancement de
l'application). Le premier écran qui s'affiche est donc la liste des personnes en carte. Le bouton
« Envoyer » procède à l'envoi des données, puis le programme se termine sans afficher la réponse
du serveur. En cas d'erreur, un dialogue est affiché et l'application se termine sur clic du bouton OK.
Mode Two screen
En passant à l'application le paramètre -2s, l'application s'exécute en mode two screen, c'est à dire
qu'à son lancement, le premier écran est sauté, l'application lit directement la carte SESAM-Vitale
présente dans le lecteur (et qui doit donc être introduite avant le lancement de l'application). Le
premier écran qui s'affiche est donc la liste des personnes en carte. Le bouton « Envoyer » procède à
l'envoi des données, puis le programme affiche la réponse du serveur. En cas d'erreur, un dialogue
est affiché et l'application se termine sur clic du bouton OK.
Technique
Les données sont envoyées au serveur HTTPS sous forme d'un message XML contenant un objet
<header>, et un objet <testConnection> s'il s'agit d'un test de connexion, ou <vitaleData> s'il s'agit
d'un envoi de données.
En-tête
L'en-tête transmise est de la forme :
<header>
<system>
<os>
<name>Windows 7</name>
<arch>amd64</arch>
<version>6.1</version>
</os>
<java>
<jvm-name>Java HotSpot(TM) 64-Bit Server VM</jvm-name>
<version>1.7.0_03</version>
<home>C:\Program Files\Java\jre7</home>
</java>
<home>D:\SESAM-VITALE</home>
</system>
<nom>Livingstone</nom>
<prenom>David</prenom>
<identifiant>0506123J</identifiant>
<etablissement>WRP</etablissement>
</header>
L'élément <system> permet d'obtenir des informations sur la partie installée. L'option -sys doit être
passé à l'application pour que cet élément soit ajouté au <header> (voir plus bas Options du fichier
JNLP)
Données transmises
Les données transmises sont de la forme :
<choixPersonneEnCarte>1</choixPersonneEnCarte>
<inscVitale>
<element>
<nomUsuel>DUPONT</nomUsuel>
<nomPatronymique>TATAYER</nomPatronymique>
<prenomUsuel>JEAN</prenomUsuel>
<dateNaissance>500801</dateNaissance>
<nir>1500815051040 18</nir>
<insc>1541187387477485562488</insc>
</element>
</inscVitale>
<vitaleData><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?
><t_AsnDonneesVitale><listeBenef><element><ident><nomUsuel>DUPONT</nomUsuel><nom
Patronymique>TATAYER
</nomPatronymique><prenomUsuel>JEAN</prenomUsuel><naissance><dateEnCarte>500801<
/dateEnCarte></naissance><nir>1500815051040 18</nir><adresse><ligne1>APPARTEMENT
1 BATIMENT GRAVIER</ligne1><ligne2>RESIDENCE DES PLATANES</ligne2><ligne3>CHEMIN
DES BOIS DE LA FORET DOC</ligne3><ligne4>PLUCVAILLON</ligne4><ligne5>72650 LA
CHAPELLE SAINT
AUBIN</ligne5></adresse><rangDeNaissance>1</rangDeNaissance></ident><amo><qualBe
nef>0</qualBenef><codeRegime>10</codeRegime><caisse>000</caisse><centreGestion>0
009</centreGestion><codeGestion>10</codeGestion><centreCarte>0000</centreCarte><
listePeriodesDroits><element><debut>15081990</debut></element></listePeriodesDro
its><service><codeService>00</codeService></service><medecinTraitant>I
…
</tech></t_AsnDonneesVitale>
]]></vitaleData>
•
•
•
L'élément <choixPersonneEnCarte> correspond à la personne en carte choisie.
L'élément <vitaleData> correspond à la totalité des informations lues de la carte SESAMVitale telles que décrites par le XSD cvitale.xsd.
L'élément <inscVitale> correspond aux données lue de la carte SESAM-Vitale qui ont
servie à calculer l'INSC (et qu'on retrouve évidemment dans l'élément <vitaleData>)
Options du fichier JNLP
•
•
•
•
•
•
•
-license <license> : la licence fournie par Wraptor Laboratories. Sans ce paramètre,
l'application ne pourra fonctionner.
-url <url> : l'URL du serveur où doivent être envoyées les données lues de la carte. Du
type : https://nom_machine:8043/chemin/servlet. Notez que si la licence concerne un seul
serveur, le nom de la machine sera remplacé par le serveur correspondant.
-home <dir> : permet de forcer l'installation du programme dans le dossier spécifié
-nc : ne propose pas d'installer les CryptoLibs lors de l'installation
-title <titre> : permet de redéfinir le titre de la fenêtre de l'application.
-1s : passe l'application en mode one screen
-2s : passe en mode two screen
-cps : coche par défaut la case « Utiliser la carte CPS »
-sb : affiche le bouton permettant de sauver en local les données lues de la carte Vitale
-localDir : permet de définir le répertoire local où seront sauvés les fichiers
-localFilename : permet de définir le nom de fichier unique où seront sauvés les données.
-svo : Sauve dans le fichier uniquement les données de la carte Vitale (tag XML
<t_AsnDonneesVitale>)
-hs : cache le bouton « Envoyer »
-hc : cache le bouton de configuration (si les modes one screen ou two screen ne sont pas
activés)
-sys : ajoute des informations relatives à la plate-forme dans le ficher XML envoyé
-st : cache le bouton de configuration, mais affiche à la place le bouton de test
-uninstall : désinstalle l'application
-p <libellé=valeur> : permet de passer des paramètres à l'application qui seront transmis
lors de l'envoi au serveur, dans le header du flux XML
•
•
•
•
•
•
•
•
•
•
•
Ces options doivent être passées à l'application par la page JNLP. Voici un exemple de fichier
JNLP :
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.6+"
codebase="http://www.jeebop.com/sesam-vitale/"
href="/sesam-vitale/windows.jnlp">
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" java-vm-args="-Xnoclassgc"/>
<jar href="lib/jeebop-vitale-win.jar"/>
</resources>
<application-desc main-class="jeebop.tools.VitaleReader">
<argument>-license</argument>
<argument>xxxyyyzzz</argument>
<argument>-url</argument>
<argument>https://localhost:8043/sesam-vitale/xml</argument>
<argument>-2s</argument>
<argument>-p</argument>
<argument>tokenid=76543298</argument>
</application-desc>
<information>
<title>Jeebop Vitale Reader for Windows</title>
<vendor>Wraptor Laboratories</vendor>
<description>Lit les cartes SESAM-Vitale et les transmet à un serveur
sécurisé</description>
<description kind="short">Lecteur de carte Jeebop SESAM-Vitale</description>
<icon kind="splash" href="images/splash.jpg"/>
<offline-allowed/>
<shortcut online="false">
<desktop/>
<menu submenu="Wraptor Laboratories"/>
</shortcut>
</information>
</jnlp>
Servlet de traitement
Si les données sont à envoyer à un serveur Jeebop, il faut mettre en place l'application WEB
(servlet) de réception des données. Les applications web sont situées dans
repository/tomcat/webapps. Vous pouvez définir par exemple une application sesam-vitale qui
permettra d'accéder aux pages JNLP, ainsi que de définir le servlet de traitement des données.
La livraison Jeebop contient une classe servlet de traitement qui sauve les données reçus dans un
fichier au format XML, dans un dossier paramétrable par les paramètres du servlet.
Exemple de fichier de configuration du servlet (web.xml) :
<web-app>
<display-name>Reception de donnees SESAM-Vitale</display-name>
<servlet>
<servlet-name>SesamVitaleServlet</servlet-name>
<servlet-class>jeebop.tools.SesamVitaleServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>charset</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>saveFile</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>formatXml</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>saveTwoFiles</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>saveDir</param-name>
<param-value>${jeebop.home}${/}SVDATA</param-value>
</init-param>
<init-param>
<param-name>nomSite</param-name>
<param-value>Jeebop SESAM-Vitale</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SesamVitaleServlet</servlet-name>
<url-pattern>/xml/*</url-pattern>
</servlet-mapping>
</web-app>
Les paramètres supportés sont :
• charset (String, par défaut "UTF-8") : le jeux de caractères utilisé
• ack (String) : nom d'un fichier contenant les informations à renvoyer à l'application
• saveFile (boolean, par défaut true) : si true, les données transmises sont sauvées dans un
fichier
• formatXml (boolean, par défaut true) : si saveFile à true, la chaine XML reçue est formattée
• saveTwoFiles (boolean, par défaut false) : si mis à troue, deux fichiers seront créés :
data_xxx.xml (contenant l'en-tête et le choix de la personne en carte) et
VITALEdata_xxx.xml (contenant les données de la carte Vitale, formatées)
• saveDir (String, par défaut "${jeebop.home}${/}SVDATA") : si saveFile à true, le nom du
dossier dans lequel sont écrit les fichiers XML reçus
• debug (boolean) : permet de positionner des traces dans le servlet
• nomSite (String, par défaut "Jeebop") : nom du site de l'application
• pong (boolean) : si true, les données transmises sont renvoyées à l'application (mode de test)