Gestion du Contexte
Toutes transactions vers le DMP se fait en précisant un DMPCContext
et une requête spécifique en argument d’une méthode du DMPCClient
.
Le DMPCContext
contient les informations permettant de définir :
- L’auteur de la transaction,
- Le code de confidentialité de la transaction (connexion secrète, invisible aux représentants légaux du patient).
À ce DMPCContext
est associé un autre argument dépendant de la transaction réalisée.
En authentification directe (depus version 3.1)
En authentification directe, l’utilisateur personnel de santé est authentifié par sa carte CPS/CPE, ces informations sont récupérées lors de la lecture de la carte CPS.
Cas particulier des cartes CPE non nominatives, où le nom du service est demandé : context.author.service.nom
(cf. authentification indirecte)
En authentification indirecte (depuis version 1.0)
En authentification indirecte, seule la structure de santé (par son certificat serveur) est authentifiée.
L’auteur de la requête, c’est à dire le personnel de santé utilisateur (DMPCPersonnelSante
), doit donc être authentifié soit localement soit par son rpps/adeli.
L’information du service au sein d’un établissement doit être donné (aucune vérification mais doit être présent).
Exemple Java :
DMPCContext context = new DMPCContext();
DMPCPersonnelSante ps = new DMPCPersonnelSante();
// ps.setInternalId("1234567890");
ps.setRpps("899700433153");
ps.setNom("MEDECIN RPPS 123");
ps.setPrenom("Virginie");
ps.setRole("10"); // Médecin dans la nomenclature DMPCCode.JeuxValeursDMP.SUBJECT_ROLE
ps.setSpecialite("G15_10/SM30"); // G15_10/SM30 Néphrologie dans la nomenclature DMPCCode.JeuxValeursDMP.AUTHOR_SPECIALITY
ps.setSecteurActivite("SA01"); // Etablissement public de santé dans la nomenclature DMPCCode.JeuxValeursDMP.HEALTH_CARE_FACILITY_TYPE_CODE
ps.getService().setNom("Service néprhologie"); // nom du service au sein d'un établissement.
context.setAuthor(ps);
Exemple curl :
curl --request POST '/dmp/tdxxxx' \
--data-raw '{
"context": {
"author" : {
"rpps" : "899700433156",
"nom" : "MEDECIN RPPS0043315",
"prenom" : "VIRGINIE",
"role" : "10",
"specialite" : "G15_10/SM26",
"secteurActivite" : "SA07",
"service" : {
"nom" : "Service pédiatrie"
}
},
"modeAcces": {
"acces": "NORMAL"
}
},
"request": {
...
}
}'