MSS
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:
- mailiz: https://mailiz.mssante.fr/
- Apicrypt (en cours de développement): https://www.apicrypt.org/inscription
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
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é