Connecteur MS-SANTE

Bienvenue sur la plateforme de démo du connecteur ms-santé de la DevBox-Santé

Illustration

Utilisation

2 modes d’intégration sont proposées :

  • Embarqué : Intégration direct cette API avec son implémentation dans un projet java 11 avec spring.
  • REST : Déploiement d’une application spring boot (jar exécutable intégrant un serveur Tomcat) offrant ces mêmes services en REST.

La plateforme de démo utilise le mode REST

L’API public

l’API est public et hébergée sur bitbucket : https://bitbucket.com/devbox-sante/ms-sante-api

Cette API définie les services disponibles et le modèle d’objet.

Pré-requis

Pour pouvoir utiliser le connecteur MS-Santé, il faut au préalable créer un compte selon l’opérateur choisi:

Authentification

2 modes d’authentification sont disponibles:

  • par carte CPS (nécessite l’installation du module cps de DevBox-Santé) :
    authentificationWithCps()

  • par carte OTP, cette authentification s’effectue en 2 étapes :


    otpParameters = {
        otpCanalType: SMS | Mail, // canal pour recevoir l'otp
        otpCanalPwd: password,
        otpIdNat: idNat //(0+adeli ou 8+rpps)
    }

    AuthorizationContext context = authentificationWithOtpStep1(otpParameters); 

    context = authentificationWithOtpStep2(context, otp) 

dans le cas de service REST, le contexte est automatiquement géré dans la session, le service retourne alors la liste des emails de l’utilisateur

Services

Les services suivants sont disponibles en mode embarqué,
ils ont tous leur équivalent en REST avec l’email passé en paramètre cf. swagger ).

ex :  GET https://mss-demo.devbox-sante.fr/mssante/folders?email=xxxxxx@medecin.formation.mssante.fr



    // Récupères les adresses mail du PS
    List<String> getEmails() throws MssException;

    // Récupération des dossiers (en cours, brouillon, ...)
    List<Folder> getFolders(String email, Integer parentFolderId) throws MssException;

    // Création d'un dossier
    Folder createFolder(String email, String folderName, Integer parentFolderId) throws MssException;

    // Renommage d'un dossier
    void renameFolder(String email, Integer folderId, String newName) throws MssException;

    // Déplacement d'un dossier
    void moveFolder(String email, Integer folderId, Integer destinationFolderId) throws MssException;

    // Suppression d'un dossier
    void deleteFolder(String email, Integer folderId) throws MssException;

    // Mise en corbeille d'un dossier
    void moveFolderToTrash(String email, Integer folderId) throws MssException;

    // Suppression des messages d'un dossier
    void cleanFolder(String email, Integer folderId) throws MssException;

    // Récupération des messages
    List<Message> searchMessages(String email, MessageSearchCriteria criteria) throws MssException;

    // Récupération des messages
    List<Message> searchFullTextMessages(String email, MessageSearchCriteriaFullText criteria) throws MssException;

    // Récupération d'une pièce jointe
    byte[] getAttachment(String email, Integer messageId, Integer part) throws MssException;

    // Récupération d'une pièce jointe
    String uploadAttachment(String email, String mimeType, String filename, byte[] file) throws MssException;

    // Récupération d'une pièce jointe
    MessageInfo saveDraft(String email, Message message) throws MssException;

    // Suppression d'un message
    void deleteMessage(String email, Integer messageId) throws MssException;

    // Envoi d'un message
    MessageInfo sendMessage(String email, Message message) throws MssException;

    // Suppression d'une pièce jointe
    void removeAttachment(String email, Integer messageId, Integer part) throws MssException;

    // Mise à jour du statut de message
    void updateMessagesStatus(String email, List<Integer> messageIds, MessageStatus status) throws MssException;

    // Déplacement de message
    void moveMessages(String email, List<Integer> messageIds, Integer folderId) throws MssException;

    // Recherche d'un professionnel
    List<User> findUsers(UserCriteria criteria) throws MssException;

    // Liste des codes d'une nomenclature
    List<Code> getNomenclature(Nomenclatures nomenclature) throws MssException;


Documentation

La documentation officielle est disponible sur https://mailiz.mssante.fr/is/doc-technique

Il est recommandé pour les logiciels souhaitant envoyer des pièces jointes de lire les documents suivants:

  • Echange de documents de santé via MSSanté : guide de normalisation à destination des éditeurs de clients de messagerie MSSanté (V1.2 - 21/12/2018)
  • Guide éditeur de mise en oeuvre de la MSSanté et de l’alimentation du DMP dans un logiciel de professionnel de santé (V1.0.0 - mars 2016)
  • Echange de compte rendu d’examens de biologie via MSSanté : guide de transition vers le format XDM (V1.0.0 - 27 /04/2017)

Tests

une environnement de démo est disponible pour les tests.

Sur cet environnement, seul l’authentification otp fonctionne.

L’interface web proposée est en cours de développement et est uniquement fournie à titre d’exemple pour l’utilisation des services.
Son code est disponible sur demande.

Au préalable pour utiliser la plateforme de test il faut se créer un compte sur mailiz formation : https://mailiz.formation.mssante.fr/

Interface web : https://mss-demo.devbox-sante.fr/index.html (authentification par otp sur le canal mail)

Swagger : https://mss-demo.devbox-sante.fr/swagger-ui.html