DEPRECATED - SOAP Proxy
Attention : ce mode d’intégration est déprécié. Il est encore supporté sur des anciennes versions.
L’architecture du proxy WS peut être représentée par ce schéma :
!include https://bitbucket.org/devbox-sante/plantuml/raw/current/themes/theme-devbox-sante.puml
node "Systeme Information Hospitalier / Logiciel de Gestion de Cabinet" {
component "LogicielIntegrateur" as LogicielIntegrateur
component "JVM SpringBoot" {
component "DevBox-santé" as DMPC_Proxy DEVBOX_COLOR {
component "DevBox-Santé DMP" as DMPC_API DMP_COLOR
}
}
}
Actor PersonnelSante
Cloud "**DMP**" as DMP
LogicielIntegrateur -r-> DMPC_Proxy : WS simplifie
PersonnelSante -down-> LogicielIntegrateur
DMPC_API -r-> DMP : WS securise conforme aux transactions du guide d'integration.
Serveur Proxy
le proxy WS est un programme java qui reçoit les requetes simples et les retransmet au DMP dans le bon formalisme et dans le respect des différentes transactions, il interprète les réponses du serveur DMP et les retourne au client initial dans un formalisme simplifié.
Pour démarrer le serveur, depuis une ligne de commande exécuter :
java -Dspring.config.location=application.yml -jar dmpc-proxy-ws.jar
Au lancement du serveur est chargé un fichier de configuration application.yml
permettant de
charger différents KeyStore les informations concernant le LPS et le serveur DMP.
Il est initialisé par défaut sur un environnement de test.
Une fois démarré, le serveur est accessible à l’url suivante : http://127.0.0.1:9999/dmpcProxy
Pour obtenir, le schéma wsdl, il suffit de suffixer l’url par “?wsdl” : http://127.0.0.1:9999/dmpcProxy?wsdl
Le Client
Le code ci dessous est donnée à titre d’exemple de client en Java utilisant CXF, il montre l’usage possible des différents web services fournis.
// Création du client WS
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setServiceClass(DMPCProxy.class);
factory.setAddress("http://127.0.0.1:9999/dmpcProxy");
DMPCProxy proxyService = (DMPCProxy) factory.create();
// Création du contexte qui sera utilisé tout le long de la conversation avec le proxy.
DMPCContext context = new DMPCContext("user", "password");
DMPCAuthor author = new DMPCAuthor("internalId", "Durand", "Pierre");
context.setAuthor(author);
author.setRole(proxyService.getCodesFor(ASIPJeuxValeurs.SUBJECT_ROLE).get(3).getCode()); // Médecin
author.setSpecialite(proxyService.getCodesFor(ASIPJeuxValeurs.AUTHOR_SPECIALITY).get(33).getCode()); // G15_10/SM30 Néphrologie
// secteurActivite est obtenu aupres de l'annuaire gip-cps plus d'infos sur documentation configurationServeurProxy
author.setSecteurActivite(proxyService.getCodesFor(ASIPJeuxValeurs.HEALTH_CARE_FACILITY_TYPE_CODE).get(40).getCode()); // ici c'est SA41