ePrescription

Mise en œuvre de l’Ordonnance numérique

La DevBox-santé ePresc permet de simplifier l’intégration des téléservices d’ordonnance numérique: https://industriels.sesam-vitale.fr/group/e-prescription

Tout d’abord, en s’appuyant sur les différents mode d’authentification sécurisée de la DevBox-Santé

Mais aussi en présentant les différents téléservices sous la forme d’une API cliente simplifiée et accessible en java ou en REST dont le modèle (en cours de finalisation) est disponible sur le projet open-source : https://bitbucket.org/devbox-sante/devbox-sante-apis/src/master/e-presc-api/

En java :

/**
 * EprescClient est le client des différents WebServices de l'ordonnance
 * numérique.
 *
 */
public interface EPrescriptionClient {

    /**
     * SEL-SFG-023 : EF_EP02.02,  EF_EP403.02
     */
    String generateIdentifiantUnique();

    /**
     * SEL_MP_040 : Enregistrer une e-prescription
     */
    Ep4Response creerEPrescription(Ep4Request requete);

    /**
     * SEL_MP_032 : Consulter une e-prescription
     */
    Ep3Response consulterEPrescription(Ep3Request requete);

    /**
     * SEL_MP_031 : rechercher les e-prescriptions
     */
    Ep2Response rechercherEPrescriptions(Ep2Request requete);

    /**
     * SEL_MP_029 : ligne Transmettre les données d'exécution des e-prescriptions
     */
    Ep1Response transmettreExecutionEPrescription(Ep1Request requete);

    /**
     * SEL_MP_029 : ligne Transmettre les données d'exécution des e-prescriptions
     */
    Ep6Response facturerEPrescription(Ep6Request requete);

    byte[] generateCode2D(EpCode2D codeInfo);
}

En REST :

epresc_swagger

Présentation du modèle

Elle prend en charge la validation des différents champs requis du modèle, en utilisant intensément le framework de validation de Jakarta et cela en fonction du contexte des différents appels :

Comme par exemple :

public class EpPatient {

    /**
     * EF_EP04.01   (EF_INS25_01)
     *
     *
     */
    @NotEmpty(groups = {
            RequiredFor.WS_EP4_CreerEPrescription.Request.class,
            RequiredFor.EP05_Code2D.class,
            ...
    })
    @Size(max = 100)
    private String nomFamille;

Elle vous simplifie la gestion des différentes lignes de prescription en utilisant un modéle d’héritage approprié :

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "eprescType", defaultImpl = Medicament.class)
@JsonSubTypes({
    @JsonSubTypes.Type(value = Medicament.class, name = "medicament"),
    @JsonSubTypes.Type(value = DispositifMedical.class, name = "dispositifMedical"),
    @JsonSubTypes.Type(value = ActeKinesitherapie.class, name = "acteKinesitherapie"),
    @JsonSubTypes.Type(value = ActeBiologieMedicale.class, name = "acteBiologieMedicale"),
    @JsonSubTypes.Type(value = ActeInfirmier.class, name = "acteInfirmier"),
    @JsonSubTypes.Type(value = ActePedicurie.class, name = "actePedicurie"),
    @JsonSubTypes.Type(value = ActeOrthophonie.class, name = "acteOrthophonie"),
    @JsonSubTypes.Type(value = ActeOrthoptie.class, name = "acteOrthoptie"),})
public abstract class EpLigne {
    ...

La terminologie du modéle utilise autant que se peut le MOS (Modéle des Objets de Santé) et celle utilisée dans les différents guide d’intégrations. Même les règles sont reprises lors de la validation du modèle :


    @AssertTrue(message = 
         RequiredFor.WS_EP3_ConsulterEPrescription.Request.EF_EP3_E303_03.REGLE)
    private boolean EF_EP3_E303_03_checked() {
        return  context.getIdentifiantFacturation() != null
                || (professionnel.getStructure() != null 
                && IdNatChecker.FOR_STRUCTURE_FINESS.check(professionnel.getStructure().getFiness()));
                
    }
    ...
    interface EF_EP3_E303_03 {
        String LIBELLE = "Numéro du PS";
        String REGLE = LIBELLE + """
                Numéro AM ou FINESS du Professionnel de Santé émetteur du message de consultation de 
                la e-prescription. Un des deux numéros (AM ou FINESS) doit être renseigné :
                """;
    }

Code 2D

Vous pouvez également générer à partir du modèle le code2D de la prescription.


public interface EPrescriptionClient {
    byte[] generateCode2D(EpCode2D codeInfo);

public class EpCode2D {
    
    @NotNull
    private String identifiant;
    
    @NotNull   @Valid
    private EpPatient patient;
    
    @Valid
    private Professionnel prescripteur;
    
    private String rppsRemplacant;
}

Code 2D

Impression prescription

Impression_prescription

Ce document de prescription peut être envoyé dans le DMP grace au composant DevBox-Santé DMP.