Gestion du Contexte

Gestion du contexte d’appel

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": {
        ...
    }
}'