DEPRECATED - SOAP Proxy

Les transactionts du DMP en mode SOAP simplifié
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