MSS

Intégrer les différentes Messageries Sécurisées de Santé

MS-SANTE-API

L’API public

l’API est 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.

Utilisation

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

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

Pré-requis

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

Authentification

Mailiz

2 modes d’authentification sont disponibles:

  • par carte CPS (nécéssite l’installation du module cps de DevBox-Santé) :
authentificationWithCps() 
  • par carte OTP, cette othentification 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 context est automatiquement géré dans la session, le service retourne alors la liste des emails de l'utilisateur

Apicrypt

un mode d’authentification avec le compagnon :

authentificationWithApiCrypt( username, password, )

Services

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

curl  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 document 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.

Au préalable il faut se crééer un compte sur mailiz formation : https://mailiz.formation.mssante.fr/

Puis accéder à l’environnement de démonstration : https://mss-demo.devbox-sante.fr

Dont la documentation est accessible : https://mss-demo.devbox-sante.fr/swagger-ui.html


Howtos

Architecture interne des différents composants

Pour les intéressés, l’architecture interne des différents composants

Versions

Les différentes versions de la DevBox-Santé MS-Santé