Version : 3.0
Introduction
Synapse développe une solution d'aide à la prescription, incluant les fonctionnalités suivantes :
- autocomplétion des spécialités médicamenteuses, molécules actives ou classes thérapeutiques
- analyse des interactions médicamenteuses de l’ordonnance avec représentation en chord diagram
- analyse des effets indésirables présents dans l’ordonnance et recoupement avec la saisie d’un symptôme
- liste des critères Stopp détectés sur l’ordonnance
Ces fonctionnalités sont mises à disposition au travers d'APIs et/ou widgets pour être intégrés dans une application web.
Demo
Les différents widgets sont testables sur une interface de démo:
Page de démo
Authentification
Principe
L’authentification auprès du back-end Synapse se fait à l’aide de jetons JWT
Avant appel d’API ou initialisation d’un widget Synapse, le back-end du site client génère un jeton JWT signé. La génération se fait à partir d’un couple de clefs asymétriques RSA (R256) dont la clef publique est partagée avec le back-end de Synapse lors de la mise en place du service.
La durée de vie (TTL) de chaque token généré est limité à 1 heure de sorte à réduire l’exposition non souhaitée en dehors du contexte de l'application client.
Un token signé sera transmis à chaque appel de l’API de l’autocomplétion à travers l’en-tête :
Authorization: Bearer
Un token signé sera transmis à la création de chaque instance de widget.
Procédure de mise en place du système d’authentification
Le back-end client génère un couple de clefs asymétriques RSA (R256) de 2048 bits.
Pour générer un couple de clefs asymétriques :
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
Le client envoie la clé publique (public_key.pem) au format PEM à Synapse.
Synapse transmet en retour une clé d’issuer (issuer_key) au client. Cette clé sera insérée dans les claims des jetons JWT.
Utilisation du système d’authentification
Pour générer un jeton JWT avec un back-end Node.js :
const fs = require('fs');
const jwt = require('jsonwebtoken');
// Chargement de la clef privée
const private_key = fs.readFileSync('private_key.pem');
// Définition des claims
const payload = {
iss: <issuer_key>,
exp: (new Date().getTime() / 1000) + 3600,
user_id: <user_id>,
};
const options = {
algorithm: 'RS256',
};
// Génération du token
const token = jwt.sign(payload, private_key, options);
Le back-end du client génère un token JWT à partir de la clef privée (private_key.pem) en utilisant l’algorithme R256.
Ce jeton doit inclure les claims suivants :
Claim | Description |
---|---|
iss | Clé d'issuer : identifiant du client auprès de Synapse |
exp | Expiration time : date d'expiration du token au format spécifié dans la RFC 7519. La durée d'expiration doit être inférieure à 1 heure. |
user_id | Identifiant utilisateur : hash d'un identifiant de l'utilisateur de l'application client |
Le token généré est utilisable pour appel aux APIs ou l'initialisation des widgets.
Dans le cas d’une session longue, le token d’un widget peut expirer en cours d’utilisation du widget.
La callback de widget onTokenExpiration
est alors appelée. Elle permet de réaliser un nouvelle demande de token au back-end de l'application client.
APIs
Numéro de version de base de données Thériaque
Récupérer le numéro de version de la base Thériaque
const version = Synapse.TheriaqueVersion;
Les données des services Synapse sont en parties bassées sur la base de données Thériaque, sa version est disponible depuis le namespace Synapse. d
Autocompletion
En cherchant 2 molécules à partir de la chaîne de caractères “ibu” :
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "ibu",
"type": "pharmaceutical-ingredient",
"size": 2
}'
La réponse obtenue est :
[
{
"entity": {
"label": "ibuprofene",
"type": "pharmaceutical-ingredient",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/a296a3f7964b5aa84e42b85549d60eb3b54cf858"
},
"score": 41.16
},
{
"entity": {
"label": "ibuprofene (lysinate d')",
"type": "pharmaceutical-ingredient",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/890232a27d7c4398ee1138205f17a87e25dc13fc"
},
"score": 36.33
}
]
En cherchant 1 spécialité médicamenteuse contenant la molécule “ébastine” :
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "ébastine",
"type": "branded-drug",
"size": 1,
"field": "moieties"
}'
La réponse obtenue est :
[
{
"entity": {
"label": "KESTINLYO 10 mg, lyophilisat oral",
"cis": "64579019",
"dci_label": "ébastine",
"moieties": [
{
"label": "ébastine",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/69d8226331044441a0a3e378d1d6b36886fed6ee"
}
],
"type": "branded-drug",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/64579019"
},
"score": 93.673416
}
]
L’API d’autocomplétion permet la recherche d'entités médicamenteuses (spécialité, médicament virtuel, molécule, classe thérapeutique ou accessoire médical) à partir d’une chaîne de caractères. La recherche se fait sur le label de l'entité.
Dans le cas de spécialités médicamenteuses, la recherche peut également se faire sur les labels des substances actives du médicament.
Requête HTTP
POST https://api.synapse-medicine.com/prescription-autocomplete/v1/autocomplete
Body
Parametre | Requis | Type | Description |
---|---|---|---|
text | true | string | Chaîne de caractères à autocompléter |
type | true | EntityType | Type d’entités recherchées |
size | true | int | Nombre maximal d’entités à retourner |
lang | false | Locale | Base médicamenteuse de recherche Default fr-FR |
field | false | enum | Champs à autocompléter. Les valeurs possibles sont : - label (défaut) - moieties (pour type='branded-drug' uniquement) |
Réponse
Liste d'objets au format suivant :
Champ | Type | Description |
---|---|---|
entity | Entity | Entité thérapeutique |
score | float | Score de pertinence de l'entité thérapeutique |
En cherchant les médicaments virtuels contenant l'ingrédient paracetamol
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "paracetamol",
"type": "clinical-drug",
"size": 1
}'
La réponse obtenue est :
[
{
"entity": {
"uri": "http://bdpm.graph.synapse-medicine.com#ClinicalDrug/2837093fea7844a195c722ea493ab4bed5ec3a30",
"type": "clinical-drug",
"label": "paracétamol, caféine, 500 mg, comprimé",
"form": ["comprimé"],
"label_dose": "500 mg",
"label_form": "comprimé",
"administration_routes": ["orale"],
"medicabase_id": ["MV00001060"],
"ingredients": [
{
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46",
"dose": "500 mg"
},
{
"label": "caféine",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e145899caa2397319916163da67073029c8376f8",
"dose": "50 mg"
}
],
"moieties": [
{
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46",
"dose": "500 mg"
},
{
"label": "caféine",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e145899caa2397319916163da67073029c8376f8",
"dose": "50 mg"
}
]
},
"score": 79.42602
}
]
En cherchant les spécialités contenant doliprane
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "doliprane",
"type": "branded-drug",
"size": 1
}'
La réponse obtenue est :
[
{
"entity": {
"label": "DOLIPRANE 1000 mg, comprimé",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/60234100",
"type": "branded-drug",
"cis": "60234100",
"drug_id": "60234100",
"rcp_id": "60234100",
"shortname": "DOLIPRANE",
"brandname": "DOLIPRANE",
"label_dose": "1000 mg",
"label_form": "comprimé",
"clinical_drug_label": "paracétamol 1000 mg, comprimé",
"form": ["comprimé"],
"is_originator": false,
"is_generic": false,
"is_atu": false,
"amm_date": "09/07/2002",
"amm_status": "Autorisation active",
"appearance_frequency": "0.09028116",
"administration_route": "orale",
"administration_routes": ["orale"],
"ingredients": [
{
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46",
"dose": "1 g"
}
],
"moieties": [
{
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46",
"dose": "1 g"
}
],
"moieties_label": "paracétamol",
"num_ingredients": 1,
"packagings": [
{
"label": "DOLIPRANE 1000 mg, comprimé, plaquette(s) thermoformée(s) PVC-aluminium de 8 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400935955838",
"cip13": "3400935955838"
},
{
"label": "DOLIPRANE 1000 mg, comprimé, plaquette(s) thermoformée(s) PVC-aluminium de 100 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400956369553",
"cip13": "3400956369553"
}
],
"prescription_conditions": [],
"atc": ["{\"code\": \"N02BE01\", \"label\": \"PARACETAMOL\"}"],
"rcp_available": true,
"laboratory": "OPELLA HEALTHCARE FRANCE",
"fr_equivalent_drugs": [],
"is_homeopathy": false,
"is_originator_informal": true,
"commercialization_status": "Commercialisée",
"ucd": "3400892390918",
"schema_constraints_respected": true
},
"score": 199.00273
}
]
En cherchant les spécialités contenant akynzeo
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "akynzeo",
"type": "branded-drug",
"size": 1
}'
La réponse obtenue est :
[
{
"entity": {
"label": "AKYNZEO 300 mg/0,5 mg, gélule",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/67693946",
"type": "branded-drug",
"cis": "67693946",
"drug_id": "67693946",
"rcp_id": "67693946",
"shortname": "AKYNZEO",
"brandname": "AKYNZEO",
"label_dose": "300 mg/0.5 mg",
"label_form": "gélule",
"clinical_drug_label": "palonosétron, nétupitant, 300 mg/0.5 mg, gélule",
"form": ["gélule"],
"is_originator": false,
"is_generic": false,
"is_atu": false,
"amm_date": "27/05/2015",
"amm_status": "Autorisation active",
"administration_route": "orale",
"administration_routes": ["orale"],
"ingredients": [
{
"label": "palonosétron (chlorhydrate de)",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/93c8816e7ad20a95ed5c7b39877bc444bbe8c54b",
"dose": "560 ug"
},
{
"label": "nétupitant",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/f5e23a2fa0a01e095bca6a9d6db2617d19332f9a",
"dose": "300 mg"
}
],
"moieties": [
{
"label": "palonosétron",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/1808b8b51d76ca8eeebd197fb64aebdf788fc4a9",
"dose": "500 ug"
},
{
"label": "nétupitant",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/f5e23a2fa0a01e095bca6a9d6db2617d19332f9a",
"dose": "300 mg"
}
],
"moieties_label": "palonosétron / nétupitant",
"num_ingredients": 2,
"packagings": [
{
"label": "AKYNZEO 300 mg/0,5 mg, gélule, plaquette(s) aluminium de 1 gélule(s)",
"uri": "http://frnorm.graph.synapse-medicine.com#PackagedBrandedDrug/3400930038628",
"is_exceptional_drug": "true",
"cip13": "3400930038628"
}
],
"prescription_conditions": [
{
"label": "liste I",
"category": "PRESCRIPTION MEDICALE",
"subcategory": "Médicaments soumis à prescription médicale, sur liste I"
}
],
"atc": ["{\"code\": \"A04AA55\", \"label\": \"PALONOSETRON EN ASSOCIATION\"}"],
"rcp_available": true,
"laboratory": "HELSINN BIREX PHARMACEUTICALS",
"fr_equivalent_drugs": [],
"is_originator_informal": true,
"is_homeopathy": false,
"ucd": "3400894239437",
"commercialization_status": "Commercialisée",
"schema_constraints_respected": true
},
"score": 167.90274
}
]
En cherchant les spécialités contenant glimepiride
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "glimepiride",
"type": "branded-drug",
"size": 1
}'
La réponse obtenue est :
[
{
"entity": {
"cis": "63475277",
"drug_id": "63475277",
"shortname": "GLIMEPIRIDE",
"brandname": "GLIMEPIRIDE BGR",
"label_dose": "4 mg",
"label_form": "comprimé",
"clinical_drug_label": "glimépiride 4 mg, comprimé",
"form": ["comprimé"],
"is_originator": false,
"is_generic": true,
"is_atu": false,
"amm_date": "31/01/2006",
"amm_status": "Autorisation active",
"appearance_frequency": "4.516454E-4",
"administration_route": "orale",
"administration_routes": ["orale"],
"ingredients": [
{
"label": "glimépiride",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e48d5c4ca7709bb7896747d353faf303679e0361",
"dose": "4 mg"
}
],
"moieties": [
{
"label": "glimépiride",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e48d5c4ca7709bb7896747d353faf303679e0361",
"dose": "4 mg"
}
],
"moieties_label": "glimépiride",
"num_ingredients": 1,
"packagings": [
{
"label": "GLIMEPIRIDE BGR 4 mg, comprimé, plaquette(s) PVC-Aluminium de 30 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400937190688",
"package_nb_units": "30",
"cip13": "3400937190688",
"is_exceptional_drug": "false",
"reimbursement_rate": "0.65"
},
{
"label": "GLIMEPIRIDE BGR 4 mg, comprimé, plaquette(s) PVC-Aluminium de 90 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400937190978",
"package_nb_units": "90",
"cip13": "3400937190978",
"is_exceptional_drug": "false",
"reimbursement_rate": "0.65"
}
],
"prescription_conditions": [
{
"label": "liste I",
"category": "PRESCRIPTION MEDICALE",
"subcategory": "Médicaments soumis à prescription médicale, sur liste I"
}
],
"atc": ["{\"code\": \"A10BB12\", \"label\": \"GLIMEPIRIDE\"}"],
"rcp_available": true,
"laboratory": "BIOGARAN",
"fr_equivalent_drugs": [],
"label": "GLIMEPIRIDE BGR 4 mg, comprimé",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/63475277",
"type": "branded-drug",
"is_reimbursed": true,
"ucd": "3400892854878",
"reimbursement_rate": 0.65,
"rcp_id": "63475277",
"commercialization_status": "Commercialisée",
"is_originator_informal": false,
"is_homeopathy": false,
"schema_constraints_respected": true
},
"score": 118.82535
}
]
En cherchant les spécialités contenant glimepiride
curl -X POST t(:apiBaseUrl)/prescription-autocomplete/v1/autocomplete \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"text": "glimepiride",
"type": "branded-drug",
"size": 1
}'
La réponse obtenue est :
[
{
"entity": {
"cis": "63475277",
"drug_id": "63475277",
"shortname": "GLIMEPIRIDE",
"brandname": "GLIMEPIRIDE BGR",
"label_dose": "4 mg",
"label_form": "comprimé",
"clinical_drug_label": "glimépiride 4 mg, comprimé",
"form": ["comprimé"],
"is_originator": false,
"is_generic": true,
"is_atu": false,
"amm_date": "31/01/2006",
"amm_status": "Autorisation active",
"appearance_frequency": "4.516454E-4",
"administration_route": "orale",
"administration_routes": ["orale"],
"ingredients": [
{
"label": "glimépiride",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e48d5c4ca7709bb7896747d353faf303679e0361",
"dose": "4 mg"
}
],
"moieties": [
{
"label": "glimépiride",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/e48d5c4ca7709bb7896747d353faf303679e0361",
"dose": "4 mg"
}
],
"moieties_label": "glimépiride",
"num_ingredients": 1,
"packagings": [
{
"label": "GLIMEPIRIDE BGR 4 mg, comprimé, plaquette(s) PVC-Aluminium de 30 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400937190688",
"package_nb_units": "30",
"cip13": "3400937190688",
"is_exceptional_drug": "false",
"reimbursement_rate": "0.65"
},
{
"label": "GLIMEPIRIDE BGR 4 mg, comprimé, plaquette(s) PVC-Aluminium de 90 comprimé(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400937190978",
"package_nb_units": "90",
"cip13": "3400937190978",
"is_exceptional_drug": "false",
"reimbursement_rate": "0.65"
}
],
"prescription_conditions": [
{
"label": "liste I",
"category": "PRESCRIPTION MEDICALE",
"subcategory": "Médicaments soumis à prescription médicale, sur liste I"
}
],
"atc": ["{\"code\": \"A10BB12\", \"label\": \"GLIMEPIRIDE\"}"],
"rcp_available": true,
"laboratory": "BIOGARAN",
"fr_equivalent_drugs": [],
"label": "GLIMEPIRIDE BGR 4 mg, comprimé",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/63475277",
"type": "branded-drug",
"is_reimbursed": true,
"ucd": "3400892854878",
"reimbursement_rate": 0.65,
"rcp_id": "63475277",
"commercialization_status": "Commercialisée",
"is_originator_informal": false,
"is_homeopathy": false,
"schema_constraints_respected": true
},
"score": 118.82535
}
]
Information sur une spécialité médicamenteuse
Récupération de la spécialité médicamenteuse ayant pour code CIS 69309629 :
curl -X GET t(:apiBaseUrl)/drug-information/v2/branded-drug/fr/69309629 \
-H 'Authorization: Bearer <token>'
La réponse obtenue est :
{
"label": "DOLIPRANE 1000 mg, gélule",
"cis": "69309629",
"ingredients": [
{
"dose": "1000 mg",
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46"
}
],
"moieties": [
{
"dose": "1000 mg",
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46"
}
],
"type": "branded-drug",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/69309629"
}
L'API d'information sur les spécialités médicamenteuses permet de récupérer une spécialité à partir de son code CIS.
Requête HTTP
GET https://api.synapse-medicine.com/drug-information/v2/branded-drug/fr/{cis}
Parametre | Type | Description |
---|---|---|
cis | string | Code CIS de la spécialité médicamenteuse souhaitée |
Réponse
La réponse est un document de type Entity correspondant à la spécialité médicamenseuse demandée.
Widgets
Setup
Exemple de header pour chargement des widgets Synapse :
<head>
<meta charset="UTF-8" />
<script type="text/javascript" src="https://v3-0-widget.synapse-medicine.com/bundle.js"></script>
</head>
L'utilisation des widgets se fait par chargement d'une librairie Synapse depuis le navigateur sur le site web client :
<script type="text/javascript" src="https://v3-0-widget.synapse-medicine.com/bundle.js"></script>
Cette librairie donne accès au namespace Synapse, regroupant les classes suivantes :
AutocompleteWidget
MedicalResourceAutocompleteWidget
AllergyAutocompleteWidget
PathologyAutocompleteWidget
(Deprecated)PathologyAutocompleteWidgetV2
PrescriptionSummaryWidget
AdverseEffectWidget
GroundsWidget
InteractionWidget
PosologyFormWidget
NextPosologyFormWidget
PosologyCheckerWidget
(EU only)PatientProfileWidget
StartStoppWidget
StartWidget
(US Only)MonographyWidget
PrescriptionWidget
QuickExtractWidget
(EU Only)
Chaque widget est instancié côté client par :
const widget = new Synapse.XxxWidget()
Certains widgets comme le profil patient ou l'autocompletion de médicaments permettent la récupération de données alimentant les autres widgets. La transmission de données entre widgets se fait au travers de callbacks.
Locale
La langue d'analyse des widgets se configure grâce à la fonction setLang
du namespace Synapse.
Parametre | Requis | Type | Description |
---|---|---|---|
locale | Oui | Locale | Langue d'analyse et d'affichage des widgets (Exemple: 'fr-FR'). |
Définition de la langue
Synapse.setLang(local); // fr-FR | en-US | en-GB | es-ES | de-DE | it-IT
zIndex
Certains widgets affichent des éléments à la racine du DOM (dropdown, tooltips etc...), de manière à simplifier la gestion de la superposition. Dans le cas où il serait nécessaire de contrôler l'empilement de nos widget (par exemple si vous les affichez dans une modale), il est possible de leur transmettre une valeur de d'empilement z-index.
Parametre | Requis | Type | Description |
---|---|---|---|
zIndex | Non | number | Valeur numérique d'empilement (z-index css) |
Définition de l'empilement
// zIndex can be set on init...
const widget = new Synapse.MyWidget(JWT);
widget.init(element, data, { zIndex });
// ...or updated later
widget.update(data, { zIndex });
Context
Le contexte des widgets se configure grâce aux fonctions initContext
et endContext
du namespace Synapse.
initContext(patientId, prescriptionId)
Fonction d'initialisation du contexte, s'il n'y a pas de prescriptionId renseigné en paramètre, alors cette fonction en génère un et le retourne.
Parametre | Requis | Type | Description |
---|---|---|---|
patientId | Non | string | Id unique pour un patient. Il faut que cette donnée soit chiffrée pour ne pas que ce soit une donnée sensible |
prescriptionId | Non | string | Id unique pour une prescription |
endContext()
Fonction de finalisation du contexte, à positionner au moment de la 'validation' de la prescription.
Parametre | Requis | Type | Description |
---|
Configuration du Contexte
Synapse.initContext({
patientId: 'fakePatientId_1234567890'
prescriptionId: 'fakePrescriptionId_1234567890' // optional
});
Synapse.endContext();
AutocompleteWidget
Widget embarquant une barre de recherche et l'api autocomplete.
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
const autocompleteWidget = new Synapse.AutocompleteWidget(JWT);
const dataAutocomplete = {
autocompleteApi: [
Synapse.AutocompleteApi.TherapeuticEntityAutocomplete, //by default
Synapse.AutocompleteApi.MedicalDeviceAutocomplete,
],
};
autocompleteWidget.init(document.getElementById('autocomplete-container'), dataAutocomplete);
Mise à jour du widget pour changer les suggestions proposées.
autocompleteWidget.update(dataAutocomplete);
Récupération des entités sélectionnées.
var entities = [];
autocompleteWidget.setCallback('onSelectEntity', (entity) => {
entities.push(entity);
});
Mise à jour du jeton JWT :
autocompleteWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
autocompleteWidget.setToken(newToken);
});
init(element, dataAutocomplete)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataAutocomplete | Oui | - | Object | Données d'initialisation |
dataAutocomplete.autocompleteApi | Non | [Synapse.AutocompleteApi.TherapeuticEntityAutocomplete] |
AutocompleteApi[] | Api à fournir au widget pour récupérer les entités des différentes bases de données. |
update(dataAutocomplete)
Mise à jour du widget.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataAutocomplete | Oui | - | Object | Données d'initialisation |
dataAutocomplete.autocompleteApi | Non | [Synapse.AutocompleteApi.TherapeuticEntityAutocomplete] |
AutocompleteApi[] | Api à fournir au widget pour récupérer les entités des différentes bases de données. |
setCallback("onSelectEntity", callback)
Callback de récupération des entités sélectionnées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction à appeler prenant en paramètre entity de type Entity. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
MedicalResourceAutocompleteWidget
Widget embarquant une barre de recherche et l'api autocomplete et pouvant etre paramétré.
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
const medicalResourceAutocompleteWidget = new Synapse.MedicalResourceAutocompleteWidget(JWT);
const entityTypes = /* EntityTypes[] / ;
const enableFavorite = / boolean / ;
const favorites = / Entity[] */ ;
const dataAutocomplete = {
entityTypes: [
Synapse.MedicalResourceEntityType.BRANDED_DRUGS,
Synapse.MedicalResourceEntityType.CLINICAL_DRUGS,
Synapse.MedicalResourceEntityType.MEDICAL_ACCESSORIES,
],
enableFavorite,
favorites
};
medicalResourceAutocompleteWidget.init(document.getElementById('medical-resource-autocomplete-container'), dataAutocomplete);
Mise à jour du widget pour changer les suggestions proposées.
medicalResourceAutocompleteWidget.update(dataAutocomplete);
Évènement de clic sur le bouton de validation de la posologie :
var entities = [];
medicalResourceAutocompleteWidget.setCallback('onSelectEntity', (entity) => {
if (entity) {
// Save entity
}
});
Évènements de clic sur le bouton de favoris :
medicalResourceAutocompleteWidget.setCallback('onAddFavorite', (favoriteEntity) => {
if (favoriteEntity) {
// Push favoriteEntity to favorites list
}
});
medicalResourceAutocompleteWidget.setCallback('onDeleteFavorite', (favoriteEntityId) => {
if (favoriteEntityId) {
// Delete the favorite Entity from favorites list with a filter on uri
}
});
Mise à jour du jeton JWT :
medicalResourceAutocompleteWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
medicalResourceAutocomplete.setToken(newToken);
});
init(element, dataAutocomplete)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataAutocomplete | Oui | - | Object | Données d'initialisation |
dataAutocomplete.entityTypes | Non | [Synapse.MedicalResourceEntityType.BRANDED_DRUGS, Synapse.MedicalResourceEntityType.PHARMACEUTICAL_INGREDIENTS, Synapse.MedicalResourceEntityType.MEDICAL_ACCESSORIES] |
MedicalResourceEntityType[] | Type d'entités à fournir au widget pour récupérer les entités des différentes bases de données |
dataAutocomplete.enableFavorite | Non | false | boolean | Boolean spécifiant si l'option d'affichage et gestion des favoris est activée. |
dataAutocomplete.favorites | Non | null | Entity[] | Tableau d'entités favorites. |
update(dataAutocomplete)
Mise à jour du widget.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataAutocomplete | Oui | - | Object | Données d'initialisation |
dataAutocomplete.entityTypes | Non | [Synapse.MedicalResourceEntityType.BRANDED_DRUGS, Synapse.MedicalResourceEntityType.PHARMACEUTICAL_INGREDIENTS, Synapse.MedicalResourceEntityType.MEDICAL_ACCESSORIES] |
MedicalResourceEntityType[] | Type d'entités à fournir au widget pour récupérer les entités des différentes bases de données |
dataAutocomplete.enableFavorite | Non | false | boolean | Boolean spécifiant si l'option d'affichage et gestion des favoris est activée. |
dataAutocomplete.favorites | Non | null | Entity[] | Tableau d'entités favorites. |
setCallback("onSelectEntity", callback)
Callback de récupération des entités sélectionnées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur l'entité, où : data.entity de type Entity est l’entité selectionnée. |
setCallback("onAddFavorite", callback)
Callback d'ajout de favoris.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur le bouton de favoris (⭐) lorsque l’entité n’est pas déjà renseignée comme favoris. Elle renvoie en paramètre favoriteEntity de type Entity, qui est l’entité selectionnée comme favoris. |
setCallback("onDeleteFavorite", callback)
Callback de suppression de favoris.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur le bouton de favoris (⭐) lorsque l’entité est déjà renseignée comme favoris. Elle renvoie en paramètre favoriteEntity de type Entity, qui est l’entité supprimée des favoris. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
AllergyAutocompleteWidget
Widget embarquant une barre de recherche d'allergies. Attention ce widget ne prend en charge que les entités thérapeutique (Entity) de types : pharmaceutical-ingredient
, therapeutic-class
, excipient
et brandname-drug
.
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
const allergyAutocomplete = new Synapse.AllergyAutocompleteWidget(JWT);
allergyAutocomplete.init(document.getElementById('autocomplete-container'), {
allergies: [
{
label: "amoxicilline",
type: "pharmaceutical-ingredient",
uri: "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/27ca510d1b49ac3dc05fa7342008af76490df196"
// ... other fields
}
],
disabled: false, // deprecated, please use disableInput
disableInput: false,
disableSelectedAllergies: false,
enableBrandNameDrugs: false,
});
Mise à jour du widget pour changer les suggestions proposées.
allergyAutocomplete.update({
disabled: false, // deprecated, please use disableInput
disableInput: false,
disableSelectedAllergies: false,
enableBrandNameDrugs: false,
});
Récupération des entités sélectionnées.
var yourAllergies = [];
allergyAutocomplete.setCallback('onSelectAllergy', (allergy) => {
yourAllergies.push(allergy);
});
translation missing: fr_FR.autocompleteWidgetUpdateOnDeleteEntity
var yourAllergies = [{label: "amoxicilline", type: "pharmaceutical-ingredient", uri: "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/27ca510d1b49ac3dc05fa7342008af76490df196"}];
allergyAutocomplete.setCallback('onDeleteAllergy', (allergy) => {
yourAllergies = yourAllergies.filter(currentAllergy => currentAllergy.uri !== allergy.uri);
});
Mise à jour du jeton JWT :
allergyAutocomplete.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
allergyAutocomplete.setToken(newToken);
});
init(element)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
data | Oui | - | object | Données d'initialisation |
data.allergies | Non | [] |
array | Liste des allergies définies à l'initialisation. Tableau de Entity |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input (déprécié, merci d'utiliser disableInput ). |
data.disableInput | Non | false |
boolean | Activer ou désactiver l'input. |
data.disableSelectedAllergies | Non | false |
boolean | Activer ou désactiver la liste des allergies sélectionnées. |
data.enableBrandNameDrugs | Non | false |
boolean | Activer ou désactiver la recherche d'alleries par médicament. |
update(data)
Mise à jour du widget.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
data | Oui | - | Object | Données d'initialisation |
data.allergies | Non | [] |
array | Liste des allergies définies à l'initialisation. Tableau de Entity |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input (déprécié, merci d'utiliser disableInput ). |
data.disableInput | Non | false |
boolean | Activer ou désactiver l'input. |
data.disableSelectedAllergies | Non | false |
boolean | Activer ou désactiver la liste des allergies sélectionnées. |
data.enableBrandNameDrugs | Non | false |
boolean | Activer ou désactiver la recherche d'alleries par médicament. |
setCallback("onSelectAllergy", callback)
Callback de récupération des allergies sélectionnées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Non | function | Fonction (callback) appelée lorsque une allergie est sélectionnée. Elle retourne un paramètre allergy de type Entity. |
setCallback("onDeleteAllergy", callback)
Callback de récupération des allergies retirées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Non | function | Fonction (callback) appelée lorsque une allergie est retirée de la liste. Elle retourne un paramètre allergy de type Entity. Nécessite de désactiver le paramètre disableSelectedAllergies . |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
PathologyAutocompleteWidget DEPRECATED
Widget embarquant une barre de recherche de pathologie.
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
const pathologyAutocomplete = new Synapse.PathologyAutocompleteWidget(JWT);
pathologyAutocomplete.init(document.getElementById('autocomplete-container'), {
disabled: false,
});
Mise à jour du widget pour changer les suggestions proposées.
pathologyAutocomplete.update({
disabled: false,
});
Récupération des entités sélectionnées.
var pathologies = [];
pathologyAutocomplete.setCallback('onSelectPathology', function (pathology) {
pathologies.push(pathology);
});
Mise à jour du jeton JWT :
pathologyAutocomplete.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
pathologyAutocomplete.setToken(newToken);
});
init(element)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
data | Oui | - | object | Données d'initialisation |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input |
update(data)
Mise à jour du widget.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
data | Oui | - | Object | Données d'initialisation |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input |
setCallback("onSelectPathology", callback)
Callback de récupération des entités sélectionnées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction à appeler prenant en paramètre pathology de type Pathology. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
PathologyAutocompleteWidgetV2
Widget de recherche de pathologie (version 2). Ce widget contient :
- une barre de recherche de pathologies
- une gestion des terminologies utilisées pour la recherche
- la possibilité d'afficher les pathologies sélectionnées et / ou enregistrées
- une gestion de pathologies favorites
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
let pathologies = [
{ identifier: { code: 'A692', display: 'Maladie de Lyme', system: 'cim-10' } },
{ identifier: { code: 'D73', display: 'Maladies de la rate', system: 'cim-10' } },
];
let terminologies = [
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.ICD10, active: true, available: true },
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.CISP, active: true, available: true },
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.DRC, active: false, available: true },
];
const pathologyAutocomplete = new Synapse.PathologyAutocompleteWidget(JWT);
pathologyAutocomplete.init(document.getElementById('autocomplete-container'), {
pathologies,
terminologies,
disabled: false,
disableSelectedPathologies: false,
});
Mise à jour du widget pour changer les paramètres du widget, masquer la liste des pathologies et ajouter des favoris.
let favorites = [{ identifier: { code: 'J65', display: 'Asthme', system: 'cim-10' } }];
pathologyAutocomplete.update({
pathologies,
favorites,
terminologies,
enableFavorite: true,
disableSelectedPathologies: true,
});
Récupération d'une pathologie sélectionnée.
pathologyAutocomplete.setCallback('onSelectPathology', function (pathology) {
pathologies.push(pathology);
});
Récupération d'une pathologie supprimée.
pathologyAutocomplete.setCallback('onDeletePathology', function (identifier) {
pathologies = pathologies.filter((pathology) => JSON.stringify(pathology.identifier) !== JSON.stringify(identifier));
});
Récupération d'une pathologie ajoutée en favoris.
pathologyAutocomplete.setCallback('onAddFavorite', function (pathology) {
favorites.push(pathology);
});
Récupération d'une pathologie supprimée des favoris.
pathologyAutocomplete.setCallback('onDeleteFavorite', function (identifier) {
favorites = favorites.filter((favorite) => JSON.stringify(favorite.identifier) !== JSON.stringify(identifier));
});
Récupération des terminologies lors d'un changement.
// Option 1: Update the status of a specific terminology when it is switched
pathologyAutocomplete.setCallback('onUpdateTerminologies', function (terminology, active) {
terminologies = terminologies.map((terminologyObject) =>
terminologyObject.terminology === terminology ? { ...terminologyObject, active } : terminologyObject
);
});
// Option 2: Update the status of all terminologies with new values
pathologyAutocomplete.setCallback('onUpdateTerminologies', function (terminology, active, terminologies) {
terminologies = terminologies;
});
Mise à jour du jeton JWT :
pathologyAutocomplete.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
pathologyAutocomplete.setToken(newToken);
});
init(element)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
data | Oui | - | object | Données d'initialisation |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input |
data.pathologies | Non | [] |
PathologyV2[] | Pathologies affichées par le widget si le paramètre disableSelectedPathologies n'est pas activé. |
data.favorites | Non | [] |
PathologyV2[] | Pathologies a présenter comme favorites par le widget si le paramètre enableFavorite est activé. |
data.terminologies | Non | [ { terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.ICD10, active: true, available: true }, { terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.CISP, active: true, available: true }, { terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.DRC, active: false, available: true } ] | TerminologyOption[] | Terminologies utilisées pour rechercher la maladie, par défaut toutes les terminologies sont disponibles et actives. |
data.enableFavorite | Non | false |
boolean | Activer ou désactiver la fonctionnalité de favoris |
data.disableSelectedPathologies | Non | false |
boolean | Activer ou désactiver l'affichage des pathologies sélectionnées |
update(data)
Fonction de mise à jour du widget pour changer les paramètres du widget, modification des suggestions proposées, ajout de favoris, ajout de pathologies enregistrées, paramètres d'affichages ...
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
data | Oui | - | object | Données d'initialisation |
data.disabled | Non | false |
boolean | Activer ou désactiver l'input |
data.pathologies | Non | [] |
PathologyV2[] | Pathologies affichées par le widget si le paramètre disableSelectedPathologies n'est pas activé. |
data.favorites | Non | [] |
PathologyV2[] | Pathologies a présenter comme favorites par le widget si le paramètre enableFavorite est activé. |
data.terminologies | Non | [{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.ICD10, active: true, available: true }, { terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.CISP, active: true, available: true }, { terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.DRC, active: false, available: true }] | TerminologyOption[] | Terminologies utilisées pour rechercher la maladie, par défaut toutes les terminologies sont disponibles et actives. |
data.enableFavorite | Non | false |
boolean | Activer ou désactiver la fonctionnalité de favoris |
data.disableSelectedPathologies | Non | false |
boolean | Activer ou désactiver l'affichage des pathologies sélectionnées |
setCallback("onSelectPathology", callback)
Callback de Récupération des pathologies sélectionnées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction à appeler prenant en paramètre pathology de type Pathology. |
setCallback("onDeletePathology", callback)
Callback de Récupération des pathologies supprimées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction de rappel à appeler en utilisant le paramètre identifier , type Identifier |
setCallback("onAddFavorite", callback)
Callback de Récupération des pathologies ajoutées en favoris.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction de rappel à appeler en utilisant le paramètre pathology , type Pathology |
setCallback("onDeleteFavorite", callback)
Callback de Récupération des pathologies supprimées des favoris.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction de rappel à appeler en utilisant le paramètre identifier , type Identifier |
setCallback("onUpdateTerminologies", callback)
Callback de Récupération des terminologies lors d'un changement.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction de rappel à appeler en utilisant les paramètres terminology, active, terminologies de type TerminologyOption, string , [TerminologyOption] |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
PrescriptionSummaryWidget
Ce widget n'a pas de fonctionnalité propre, il agrège et synthétise les alertes remontées par les widgets connectés : GroundsWidget, InteractionWidget, StartStoppWidget et PosologyCheckerWidget.Il permet de visualiser les alertes par niveaux de criticité et d'accéder aux widgets concernés.
INFO
La diffusion des alertes se fait au sein des widgets connectés, seuls ces widgets initialisés pourront communiquer avec le PrescriptionSummaryWidget. Tout le long d'une analyse, vous devez maintenir la synchronisation entre les widgets connectés et le PrescriptionSummaryWidget, à l'aide de la méthode update
propre à chaque widget.
L'initialisation de PrescriptionSummaryWidget ne requière pas forcément la présence des widgets connectés, en leur absence, totale ou partielle, il ne pourra simplement pas afficher d'alertes. En d'autres termes, il n’affichera que les alertes des widgets effectivement présents à ses côtés.
Initialisation du widget :
const JWT = "insert your token here";
const prescriptionSummaryWidget = new Synapse.PrescriptionSummaryWidget(JWT);
const entities = [/* list of drugs */];
const profileData= /* data returned by patient profile widget */ ;
const data = {
"entities": entities,
"profile": profileData.profile,
};
prescriptionSummaryWidget.init(document.getElementById("prescription-summary-container"), data);
Mise à jour du widget lors de l'ajout de nouveaux médicaments :
const otherEntities = [
/* another list of drugs */
];
data.entities = otherEntities;
prescriptionSummaryWidget.update(data);
Mise à jour du widget à partir de nouvelles données d'ordonnance ou de profil.
data.profile.pregnant = true;
prescriptionSummaryWidget.update(data);
Ouvrir l'analyse
prescriptionSummaryWidget.setCallback('onOpenAnalysis', function (module) {
console.log('Open module: ', module);
});
Mise à jour du jeton JWT :
prescriptionSummaryWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
prescriptionSummaryWidget.setToken(newToken);
});
init(element, data)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
data | Oui | - | Object | Données d'initialisation |
data.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
data.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Valeur initiale du profil patient |
data.hidePotentialRisks | Non | false |
boolean | Masquer les risques potentiels |
data.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
data.displayOpenAnalysisButton | Non | true |
boolean | Permet d'afficher ou non le bouton Ouvrir les Analyses. Valeur par défaut true |
update(data)
Mise à jour du widget à partir de nouvelles données d'ordonnance ou de profil.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
data | Oui | - | Object | Données d'initialisation |
data.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
data.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Profil clinique du patient |
data.hidePotentialRisks | Non | false |
boolean | Masquer les risques potentiels |
data.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
data.displayOpenAnalysisButton | Non | true |
boolean | Permet d'afficher ou non le bouton Ouvrir les Analyses. Valeur par défaut true |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onOpenAnalysis", callback)
Définit la callback appelée lors de l'ouverture d'une analyse
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'ouverture d'une analyse |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT. Cette callback est mutualisée entre tous les widgets.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
AdverseEffectWidget
Ce widget extrait l'ensemble des effets indésirables d'une ordonnance par fréquence. Il permet la recherche d'un effet indésirable specifique.
Initialisation du widget à partir de premiers résultats d'autocomplétion :
const JWT = 'insert your token here';
const entities = [
/* list of drugs */
];
const adverseEffectWidget = new Synapse.AdverseEffectWidget(JWT);
const dataAdverseEffect = { entities: entities };
adverseEffectWidget.init(document.getElementById('adverse-effet-container'), dataAdverseEffect);
Mise à jour du widget lors de l'ajout de nouveaux médicaments :
const otherEntities = [
/* another list of drugs */
];
dataAdverseEffect.entities = otherEntities;
adverseEffectWidget.update(dataAdverseEffect);
Remontée de l'information de la présence de résultats et du niveau maximal d'alerte
adverseEffectWidget.setCallback('hasResults', function (hasResults) {
console.log(hasResults);
});
Mise à jour du jeton JWT :
adverseEffectWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
adverseEffectWidget.setToken(newToken);
});
init(element, dataAdverseEffect)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Type | Description |
---|---|---|---|
element | Oui | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataAdverseEffect | Oui | Object | Données d'initialisation |
dataAdverseEffect.entities | Oui | Entity[] | Liste des médicaments de l'ordonnance à analyser |
update(dataAdverseEffect)
Mise à jour du widget à partir de nouvelles données d’ordonnance.
Parametre | Requis | Type | Description |
---|---|---|---|
dataAdverseEffect | Oui | Object | Données d'initialisation |
dataAdverseEffect.entities | Oui | Entity[] | Liste des médicaments de l'ordonnance à analyser |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("hasResults", callback)
Permet au widget de remonter l'information de la présence de résultat (retours des requêtes faites par le widget au service Synapse).
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction prenant 1 paramètre de type boolean (true|false). Elle sera appelée quand la requête du widget aura aboutie. |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
GroundsWidget
Ce widget remonte des alertes de vigilance ou de contre-indication sur l'ordonnance liées au profil clinique du patient.
Initialisation du widget :
const JWT = 'insert your token here';
const groundsWidget = new Synapse.GroundsWidget(JWT);
const entities = [
/* list of drugs /
];
const dataProfile = {}; / data returned by patient profile widget */
const groundsSamAlertsToHide = [
{ code: "2022_0472", version: 1 }
];
let groundsFilter = {
[Synapse.GroundsWidget.GroundsFilter.DOPING]: { available: true, active: false },
[Synapse.GroundsWidget.GroundsFilter.DRIVING]: { available: true, active: false },
[Synapse.GroundsWidget.GroundsFilter.SAM_ALERT]: { available: true, active: true },
}
const dataGrounds = {
entities: entities,
profile: dataProfile.profile,
filter: groundsFilter
samAlertsToHide: groundsSamAlertsToHide
};
groundsWidget.init(document.getElementById('grounds-container'), dataGrounds);
Mise à jour du widget lorsque les propriétés changent:
const otherEntities = [
/* another list of drugs */
];
const otherGroundsSamAlertsToHide = [
{ code: "2022_0472", version: 1 }
{ code: "2022_0471", version: 1 },
];
const otherGroundsFilter = {
[Synapse.GroundsWidget.GroundsFilter.DOPING]: { available: true, active: true },
[Synapse.GroundsWidget.GroundsFilter.DRIVING]: { available: true, active: true },
[Synapse.GroundsWidget.GroundsFilter.SAM_ALERT]: { available: true, active: true },
}
dataGrounds.entities = otherEntities;
dataGrounds.samAlertsToHide = otherGroundsSamAlertsToHide;
dataGrounds.filter = otherGroundsFilter
groundsWidget.update(dataGrounds);
Mise à jour du widget à partir de nouvelles données d'ordonnance ou de profil.
dataGrounds.profile.pregnant = true;
groundsWidget.update(dataGrounds);
Ajout d'une alerte à la liste lorsque l'utilisateur masque une alerte
groundsWidget.setCallback('onHideSamAlert', (samAlert) => {
groundsSamAlertsToHide.push(obj);
});
Mise à jour des paramètres de filtre lorsque l'utilisateur les modifie
grounds.setCallback('onUpdateFilter', (updatedFilter) => {
groundsFilter = updatedFilter;
});
Vidage du tableau lorsque l'utilisateur réinitialise toutes les alertes masquées
grounds.setCallback('onResetHiddenSamAlerts', () => {
groundsSamAlertsToHide = [];
});
Remontée de l'information de la présence de résultats et du niveau maximal d'alerte
groundsWidget.setCallback('hasResults', function (hasResults, maxLevel) {
console.log(hasResults);
console.log(maxLevel);
});
Récupération de l'erreur et de son type.
groundsWidget.setCallback('hasError', function (errorMessage, errorType) {
console.log(errorMessage);
console.log(errorType);
});
Mise à jour du jeton JWT :
groundsWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
groundsWidget.setToken(newToken);
});
init(element, dataGrounds)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataGrounds | Oui | - | Object | Données d'initialisation |
dataGrounds.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataGrounds.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Valeur initiale du profil patient |
dataGrounds.filter | Non | { [Synapse.GroundsWidget.GroundsFilter.DOPING]: {available: true, active: false}, [Synapse.GroundsWidget.GroundsFilter.DRIVING]: {available: true, active: false}, [Synapse.GroundsWidget.GroundsFilter.SAM_ALERT]: {available: true, active: true}, } | Object | Valeur initiale du filtre |
dataGrounds.samAlertsToHide | Non | [] | SamAlert[] | Valeur initiale des alertes SAM à masquer |
dataGrounds.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
update(dataGrounds)
Mise à jour du widget à partir de nouvelles données d'ordonnance ou de profil.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataGrounds | Oui | - | Object | Données d'initialisation |
dataGrounds.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataGrounds.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Valeur mise à jour du profil patient |
dataGrounds.filter | Non | { [Synapse.GroundsWidget.GroundsFilter.DOPING]: {available: true, active: false}, [Synapse.GroundsWidget.GroundsFilter.DRIVING]: {available: true, active: false}, [Synapse.GroundsWidget.GroundsFilter.SAM_ALERT]: {available: true, active: true}, } | Object | Valeur mise à jour du filtre (si la valeur n'est pas renseignée la valeur locale du composant est utilisée) |
dataGrounds.samAlertsToHide | Non | [] | SamAlert[] | Valeur mise à jour des alertes SAM à masquer (si la valeur n'est pas renseignée la valeur locale du composant est utilisée) |
dataGrounds.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onHideSamAlert", callback)
Parametre | Requis | Type | Description |
---|---|---|---|
callback | false | function | Fonction à appeler lorsque l'utilisateur masque une alerte |
setCallback("onUpdateFilter", callback)
Parametre | Requis | Type | Description |
---|---|---|---|
callback | false | function | Fonction à appeler lorsque l'utilisateur modifie le filtre |
setCallback("onResetHiddenSamAlerts", callback)
Parametre | Requis | Type | Description |
---|---|---|---|
callback | false | function | Fonction à appeler lorsque l'utilisateur réinitialise toutes les alertes masquées |
setCallback("hasResults", callback)
Permet au widget de remonter l'information de la présence de résultat (retours des requêtes faites par le widget au service Synapse).
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction prenant 2 paramètres. Le premier de type boolean (true|false) et le second de type texte (CONTRAINDICATION / PROVEN_RISK / POTENTIAL_RISK / NONE ). Elle sera appelée quand la requête du widget aura aboutie. |
setCallback("onResult", callback)
Callback non disponible pour cette locale
Définition d'une callback prenant en entrée les allergies médicamenteuses detectées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | true | function | Fonction appelée suite à une analyse du widget et prenant en paramètre un objet contenant la liste des allergies médicamenteuses detectées. |
setCallback("hasError", callback)
Permet au widget de remonter la présence d'une erreur.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | true | function | Fonction prenant 2 paramètres de type string : errorMessage et errorType . |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT. Cette callback est mutualisée entre tous les widgets.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
InteractionWidget
Ce widget analyse les interactions médicamenteuses d'une ordonnance et les restitue sous la forme d'un diagramme de synthèse. Différentes sources sont disponibles : le Thésaurus des interactions médicamenteuses de l'ANSM, le Thésaurus de Liverpool et DDI Predictor.
Initialisation du widget à partir de premiers résultats d'autocomplétion :
const JWT = "insert your token here";
const interactionWidget = new Synapse.InteractionWidget(JWT);
const entities = [/* list of drugs /];
const dataProfile = / data returned by patient profile widget */ ;
const dataInteraction = {"entities": entities, "profile": dataProfile.profile };
interactionWidget.init(document.getElementById("interaction-container"), dataInteraction);
Mise à jour du widget lors de l'ajout de nouveaux médicaments :
const otherEntities = [
/* another list of drugs */
];
dataInteraction.entities = otherEntities;
interactionWidget.update(dataInteraction);
Remontée de l'information de la présence de résultats et du niveau maximal d'alerte
interactionWidget.setCallback('hasResults', function (hasResults, maxLevel) {
console.log(hasResults);
console.log(maxLevel);
});
Récupération de l'erreur et de son type.
interactionWidget.setCallback('hasError', function (errorMessage, errorType) {
console.log(errorMessage);
console.log(errorType);
});
Mise à jour du jeton JWT :
interactionWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
interactionWidget.setToken(newToken);
});
init(element, dataInteraction)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataInteraction | Oui | - | Object | Données d'initialisation |
dataInteraction.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataInteraction.profile | Oui | - | Profile | Profil clinique du patient. Seul le profil hépatique est pris en compte dans l'analyse. |
dataInteraction.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
update(dataInteraction)
Mise à jour du widget à partir de nouvelles données d’ordonnance.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataInteraction | Oui | - | Object | Données d'initialisation |
dataInteraction.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataInteraction.profile | Oui | - | Profile | Profil clinique du patient. Seul le profil hépatique est pris en compte dans l'analyse. |
dataInteraction.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("hasResults", callback)
Permet au widget de remonter l'information de la présence de résultat (retours des requêtes faites par le widget au service Synapse).
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction prenant 1 paramètre de type boolean (true|false). Elle sera appelée quand la requête du widget aura aboutie. |
setCallback("onResult", callback)
Callback non disponible pour cette locale
Définition d'une callback prenant en entrée les interactions détectées.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction appelée suite à une analyse du widget et prenant en paramètre un objet contenant la liste des interactions détectées. |
setCallback("hasError", callback)
Permet au widget de remonter la présence d'une erreur.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | true | function | Fonction prenant 2 paramètres de type string : errorMessage et errorType . |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT. Cette callback est mutualisée entre tous les widgets.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
PosologyFormWidget
Ce widget permet la saisie et l'édition d'une posologie.
Initialisation du widget à partir de premiers résultats d'autocomplétion :
const JWT = "insert your token here";
const posologyFormWidget = new Synapse.PosologyFormWidget(JWT);
const entity = /* Entity object of type branded-drug / ;
const detailedPosology = / DetailedPosology object */ ;
const dataPosology {
entity,
detailedPosology,
};
posologyFormWidget.init(document.getElementById("posology-form-container"), dataPosology);
Évènement de clic sur le bouton de validation de la posologie :
posologyFormWidget.setCallback('onValidate', function (err, data) {
// Do something
});
Mise à jour du jeton JWT :
posologyFormWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
posologyFormWidget.setToken(newToken);
});
init(element, dataPosology)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataPosology | Oui | - | Object | Données d'initialisation |
dataPosology.entity | Oui | - | Entity | Entité thérapeutique |
dataPosology.detailedPosology | Oui | - | DetailedPosology[] | Posologie à éditer (deprecated, la posologie sera automatiquement convertie en EntityPrescription) |
dataPosology.isChronicEnabled | Oui | - | boolean | Spécifie si le champ "Chronique" est affiché. |
dataPosology.entityLabelEnabled | Non | true |
boolean | Spécifie si le label de l'entité thérapeutique est affiché. |
dataPosology.indicationEnabled | Non | true |
boolean | Spécifie si le champ "Indication" est affiché. |
dataPosology.startDateEnabled | Non | true |
boolean | Spécifie si le champ "Date de début" est affiché. |
dataPosology.typeEnabled | Non | true |
boolean | Spécifie si les champs "Prescription / Automédication" sont affichés. Remplacé par “options.enableAutomedication” |
dataPosology.multiplePosologiesEnabled | Non | true |
boolean | Spécifie si les boutons d'ajout et de suppresion de posologie sont affichés. |
dataPosology.commentEnabled | Non | true |
boolean | Spécifie si le champ "Commentaire" est affiché. |
dataPosology.posologyAnalysisEnabled | Non | false |
boolean | Spécifie si l'analyse de posologie résumée est activée. Remplacé par dataPosology.options.enablePosologyChecker |
dataPosology.commentLabel | Non | "Commentaire de prescription" |
string | Spécifie le label du champ "Commentaire". |
dataPosology.showAdministrationRoute | Non | false |
boolean | Spécifie si le champ "Voie d'administration" est affiché. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onValidate", callback)
Définit la callback appelée lors de l'événement de clic sur le bouton de validation, utilisant les paramètres (err, data)
où data.posology
de type DetailedPosology est la posologie saisie.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur le bouton de validation, utilisant les paramètres (err, data) où data.posology de type DetailedPosology est la posologie saisie. |
setCallback("onViewDrugInfo", callback)
Callback appelé lorsque l'utilisateur clique sur l'étiquette d'un médicament, avec comme paramètres (err, data)
.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Callback appelé lorsque l'utilisateur clique sur l'étiquette d'un médicament, avec comme paramètres (err, data) . |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
triggerValidation()
Déclenche la validation de la posologie.
destroy()
Supprime le widget du DOM.
NextPosologyFormWidget (Future version de PosologyFormWidget)
Ce widget permet la saisie et l'édition d'une posologie.
Initialisation du widget à partir de premiers résultats d'autocomplétion :
const JWT = "insert your token here";
const posologyFormWidget = new Synapse.NextPosologyFormWidget(JWT);
const entity = /* Entity object of type branded-drug */ ;
const entityPrescription = /* EntityPrescription object */ ;
const options = /* Options object */ ;
const dataPosology = {
entity,
entityPrescription,
options
};
posologyFormWidget.init(document.getElementById("posology-form-container"), dataPosology);
Évènement de clic sur le bouton de validation de la posologie :
posologyFormWidget.setCallback('onValidate', function (err, data) {
if (err) {
console.log(err.message);
}
if (data) {
if (data.saveAsModel) {
// Save as model
}
// Save data.entityPrescription
}
});
posologyFormWidget.setCallback('onViewDrugInfo', function (err, data) {
// Do something with data.drugId
});
posologyFormWidget.setCallback('onCancel', function (err, data) {
// Do something on cancel
});
Mise à jour du jeton JWT :
posologyFormWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
posologyFormWidget.setToken(newToken);
});
init(element, dataPosology)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataPosology | Oui | - | Object | Données d'initialisation |
dataPosology.entity | Oui | - | Entity | Entité thérapeutique |
dataPosology.entityPrescription | Non | - | EntityPrescription | Prescription à éditer |
dataPosology.options | Non | - | Object | Options du widget |
dataPosology.options.enableAutomedication | Non | true |
boolean | Spécifie si la case à cocher “Automédication” est affichée |
dataPosology.options.enableSaveAsModel | Non | true |
boolean | Spécifie si le bouton "Enregistrer comme modèle" est affiché |
dataPosology.options.enablePosologyChecker | Non | true |
boolean | Spécifie si l'analyse de posologie résumée est activée |
dataPosology.options.enablePrevention | Non | true |
boolean | Spécifie si la case à cocher "Prévention" est affichée |
dataPosology.options.enableAntibioticProtocol | Non | true |
boolean | Spécifie si la case à cocher "Protocole antibiotique" est affichée |
dataPosology.options.enableOffLabel | Non | true |
boolean | Spécifie si la case à cocher "Hors AMM" est affichée |
dataPosology.options.enableTemporaryUseAuthorization | Non | true |
boolean | Spécifie si la case à cocher "RTU" est affichée |
dataPosology.options.enableOccupationalDisease | Non | true |
boolean | Spécifie si la case à cocher "Maladie professionnelle" est affichée |
dataPosology.options.enableWorkAccident | Non | true |
boolean | Spécifie si la case à cocher "Accident du travail" est affichée |
dataPosology.options.enableNotForGenericSubstitution | Non | true |
boolean | Spécifie si la case à cocher "Non substituable" est affichée |
dataPosology.options.disableMonography | Non | false |
boolean | Spécifie si le bouton “Monographie” est masqué |
dataPosology.options.hideValidateAndCancelButtons | Non | false |
boolean | Spécifie si les boutons “Annuler” et "Valider" sont masqués |
dataPosology.options.enableFreeInputMode | Non | false |
boolean | Spécifie si la saisie en texte libre est disponible ou non (false par défaut) |
dataPosology.options.disableRent | Non | false |
boolean | Spécifie si l'option “Achat“ est masquée pour les Accessoires médicaux |
dataPosology.options.disablePurchase | Non | false |
boolean | Spécifie si l'option “Location“ est masquée pour les Accessoires médicaux |
dataPosology.detailedPosology | Non | - | DetailedPosology[] | ¹ Posologie à éditer (deprecated, la posologie sera automatiquement convertie en EntityPrescription) |
dataPosology.entityLabelEnabled | Non | - | boolean | ² Spécifie si le label de l'entité thérapeutique est affiché. |
dataPosology.indicationEnabled | Non | - | boolean | ² Spécifie si le champ "Indication" est affiché. |
dataPosology.startDateEnabled | Non | - | boolean | ² Spécifie si le champ "Date de début" est affiché. |
dataPosology.typeEnabled | Non | - | boolean | ² Spécifie si les champs "Prescription / Automédication" sont affichés. Remplacé par “options.enableAutomedication” |
dataPosology.multiplePosologiesEnabled | Non | - | boolean | ² Spécifie si les boutons d'ajout et de suppresion de posologie sont affichés. |
dataPosology.commentEnabled | Non | - | boolean | ² Spécifie si le champ "Commentaire" est affiché. |
dataPosology.isChronicEnabled | Non | - | boolean | ² Spécifie si le champ "Chronique" est affiché. |
dataPosology.posologyAnalysisEnabled | Non | - | boolean | ¹ Spécifie si l'analyse de posologie résumée est activée. Remplacé par dataPosology.options.enablePosologyChecker |
dataPosology.commentLabel | Non | - | string | ² Spécifie le label du champ "Commentaire". |
dataPosology.showAdministrationRoute | Non | - | boolean | ² Spécifie si le champ "Voie d'administration" est affiché. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onValidate", callback)
Définit la callback appelée lors de l'événement de clic sur le bouton de validation, utilisant les paramètres (err, data)
où data.entityPrescription
de type EntityPrescription est la posologie saisie, data.saveAsModel
de type Bool défini si la posologie saisie doit être enregistrée en tant que modèle et err
est une erreur sous la forme d'un objet { type: Synapse.PosologyFormErrorType, message: string }
si la validation a échouée.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur le bouton de validation, utilisant les paramètres (err, data) où data.entityPrescription de type EntityPrescription est la posologie saisie, data.saveAsModel de type Bool défini si la posologie saisie doit être enregistrée en tant que modèle et err est une erreur sous la forme d'un objet { type: Synapse.PosologyFormErrorType, message: string } si la validation a échouée. |
setCallback("onViewDrugInfo", callback)
Définit la callback appelée lors de l'événement de clic par l'utilisateur sur le bouton Monographie, utilisant les paramètres (err, data)
où data.drugId
est l'id du médicament.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic par l'utilisateur sur le bouton Monographie, utilisant les paramètres (err, data) où data.drugId est l'id du médicament. |
setCallback("onCancel", callback)
Définit la callback appelée lors de l'événement de clic sur le bouton d'annulation, sans paramètres à passer
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic sur le bouton d'annulation, sans paramètres à passer |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
triggerValidation()
Déclenche la validation de la posologie.
destroy()
Supprime le widget du DOM.
PosologyCheckerWidget
Ce widget analyse les posologies saisies pour les spécialités d'une ordonnance et les durées de prescription et lève des alertes en cas de dépassement de posologie ou de durée maximum.
Initialisation du widget à partir de premiers résultats d'autocomplétion :
const JWT = "insert your token here";
const posologyCheckerWidget = new Synapse.PosologyCheckerWidget(JWT);
const entity = /* Entity object of type branded-drug */;
const posology = {
"type": Synapse.DetailedPosologyType.Type.PRESCRIPTION,
"indication": "Diabète",
"startDate": new Date("2021-03-21"),
"posologies": [{
"_id": "1",
"duration": 1,
"durationUnit": Synapse.StructuredPosologyType.DurationUnit.WEEK,
"isChronic": false,
"frequency": 1,
"frequencyUnit": Synapse.StructuredPosologyType.FrequencyUnit.DAILY,
"doseUnit": "mg",
"dosage": {
"morning": 100,
"noon": 0,
"evening": 0,
"night": 0
}
}],
"comment": "Ceci est un commentaire"
};
entity.posologies.push(posology);
const profile = {
"weight": 65
}
const dataPosologyChecker = {
"entities": [entity],
"profile": profile,
"hideRedundancies": false
};
posologyCheckerWidget.init(document.getElementById("posology-container"), dataPosologyChecker);
Mise à jour du widget lors d'une modification de la posologie :
const secondPosology = {
id: 'posology-2',
frequencyUnit: '/année',
dosageType: Synapse.PosologyType.Dosage.DEFAULT,
durationUnit: 'jour',
dosage: {
doseUnit: 'mg/prise',
quantity: 12,
frequency: 3,
},
};
dataPosologyChecker.entities[0].posologies.push(secondPosology);
posologyCheckerWidget.update(dataPosologyChecker);
Mise à jour du widget lors de l'ajout de nouveaux médicaments :
new_entity.posologies = [];
dataPosologyChecker.entities.push(new_entity);
posologyCheckerWidget.update(dataPosologyChecker);
Evenement de clic sur un label de médicament
posologyCheckerWidget.setCallback('onViewDrugInfo', function (err, data) {
var bdpmUrl = 'https://base-donnees-publique.medicaments.gouv.fr/extrait.php';
window.open('</span><span class="p">${</span><span class="nx">bdpmUrl</span><span class="p">}</span><span class="s2">?specid=</span><span class="p">${</span><span class="nx">data</span><span class="p">.</span><span class="nx">cis</span><span class="p">}</span><span class="s2">'
);
});
Evenement lors du changement de visibilité des alertes de redondance
posologyCheckerWidget.setCallback('onChangeRedundanciesVisibility', function (visibility) {
console.log('Redundancies alerts visibility changed to: ', visibility);
});
Remontée de l'information de la présence de résultats et du niveau maximal d'alerte
posologyCheckerWidget.setCallback('hasResults', function (hasResults) {
// hasResults = true|false
console.log(hasResults);
});
Récupération de l'erreur et de son type.
posologyCheckerWidget.setCallback('hasError', function (errorMessage, errorType) {
console.log(errorMessage);
console.log(errorType);
});
Mise à jour du jeton JWT :
posologyCheckerWidget.setCallback('onTokenExpiration', function (err, data) {
var newToken = fetchNewToken();
posologyCheckerWidget.setToken(newToken);
});
init(element, dataPosologyChecker)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataPosologyChecker | Oui | - | Object | Données d'initialisation |
dataPosologyChecker.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser (ne fonctionne qu'avec les spécialités médicamenteuses) |
dataPosologyChecker.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Profil clinique du patient. Seul le poids est utilisé. |
hideRedundancies | Non | false |
boolean | Spécifie si les redondances sont cachées |
update(dataPosologyChecker)
Mise à jour du widget à partir de nouvelles données d’ordonnance.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataPosologyChecker | Oui | - | Object | Données d'initialisation |
dataPosologyChecker.entities | Oui | - | Entity[] | Liste des médicaments de l'ordonnance à analyser (ne fonctionne qu'avec les spécialités médicamenteuses) |
dataPosologyChecker.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Profil clinique du patient. Seul le poids est utilisé. |
hideRedundancies | Non | false |
boolean | Spécifie si les redondances sont cachées |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("hasResults", callback)
Permet au widget de remonter l'information de la présence de résultat (retours des requêtes faites par le widget au service Synapse).
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction prenant 2 paramètres. Le premier de type boolean (true|false) et le second de type texte (NONE, DUPLICATE_WARNING, POSOLOGY_WARNING, DUPLICATE_AND_POSOLOGY_WARNING). Elle sera appelée quand la requête du widget aura aboutie. |
setCallback("hasError", callback)
Permet au widget de remonter la présence d'une erreur.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | true | function | Fonction prenant 2 paramètres de type string : errorMessage et errorType . |
setCallback("onViewDrugInfo", callback)
Callback appelé lorsque l'utilisateur clique sur l'étiquette d'un médicament, avec comme paramètres (err, data)
.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Callback appelé lorsque l'utilisateur clique sur l'étiquette d'un médicament, avec comme paramètres (err, data) . |
setCallback("onChangeRedundanciesVisibility", callback)
Définit la callback appelée lorsque l'utilisateur change la visibilité des alertes de redondance
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lorsque l'utilisateur change la visibilité des alertes de redondance |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
PatientProfileWidget
Ce widget permet la saisie par l'utilisateur d'un profil patient. Les éléments de profil paramétrables sont sexe, date de naissance,taille, poids, grossesse, allaitement, date des dernières règles,insuffisance hépatique, insuffisance rénale, insuffisance cardiaque,autres pathologies et allergies.
Initialisation du widget :
const JWT = /* ... your token */;
const profileWidget = new Synapse.PatientProfileWidget(JWT);
const initialProfile = {
grounds: {
cardiacFailure: Synapse.ProfileType.CardiacProfile.MODERATE,
kidneyFailure: Synapse.ProfileType.KidneyProfile.LIGHT,
},
age: 23,
height: 185,
heightUnit: 'CM',
weight: 75,
weightUnit: 'KG',
sex: Synapse.ProfileType.Sex.FEMALE,
pregnant: true,
lmp: new Date('2020-09-12'),
};
const data = { profile: initialProfile };
profileWidget.init(document.getElementById('profilePlaceholder'), data);
Récupération du profil lors d'une modification de l'utilisateur :
profileWidget.setCallback('onProfileUpdate', function (err, data) {
const updatedProfile = data.profile;
saveProfile(updatedProfile);
groundsWidget.update({ profile: updatedProfile });
});
init(element, data)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
data | Oui | - | Object | Données d'initialisation |
data.profile | Non | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Valeur initiale du profil patient |
data.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
data.disabledHeadings | Non | [] |
ProfileHeadings | Liste des blocs à ne pas afficher. |
update(data)
Mise à jour du widget à partir de nouvelles données d'ordonnance ou de profil.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
data | Oui | Object | Données d'initialisation | |
data.isMobile | Non | false |
boolean | Permet au widget de bénéficier d'un affichage favorisant les petits écrans. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onProfileUpdate", callback)
Spécification d'une callback à appeler lors de la modification du profil patient par l'utilisateur.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction à appeler prenant en paramètres (err, data) où data.profile de type Profile est le profil mis à jour |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
StartStoppWidget
Ce widget recherche les critères STOPP (Dalleur et al.) associés à une ordonnance.
Initialisation du widget dans un élément du DOM.
const JWT = 'insert your token here';
const startStoppWidget = new Synapse.StartStoppWidget(JWT);
const entities = [
/* list of drugs */
];
const dataStartStopp = {
entities: entities,
profile: { age: 67 },
};
startStoppWidget.init(document.getElementById('start-stopp-container'), dataStartStopp);
Mise à jour du widget à partir de nouvelles données d’ordonnance.
const otherEntities = [
/* another list of drugs */
];
dataStartStopp.entities = otherEntities;
dataStartStopp.profile.age = 23;
startStoppWidget.update(dataStartStopp);
Remontée de l'information de la présence de résultats et du niveau maximal d'alerte
startStoppWidget.setCallback('hasResults', function (hasResults, maxLevel) {
console.log(hasResults);
console.log(maxLevel);
});
Récupération de l'erreur et de son type.
startStoppWidget.setCallback('hasError', function (errorMessage, errorType) {
console.log(errorMessage);
console.log(errorType);
});
Mise à jour du jeton JWT :
startStoppWidget.setCallback('onTokenExpiration', function (err, data) {
const newToken = fetchNewToken();
startStoppWidget.setToken(newToken);
});
init(element, dataStartStopp)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Type | Description |
---|---|---|---|
element | Oui | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataStartStopp | Oui | Object | Données d'initialisation |
dataStartStopp.entities | Oui | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataStartStopp.profile | Oui | Profile | Profile clinique du patient. Seul l'âge est pris en compte |
update(dataStartStopp)
Mise à jour du widget à partir de nouvelles données d’ordonnance.
Parametre | Requis | Type | Description |
---|---|---|---|
dataStartStopp | Oui | Object | Données d'initialisation |
dataStartStopp.entities | Oui | Entity[] | Liste des médicaments de l'ordonnance à analyser |
dataStartStopp.profile | Non | Profile | Profile clinique du patient. Seul l'âge est pris en compte |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("hasResults", callback)
Permet au widget de remonter l'information de la présence de résultat (retours des requêtes faites par le widget au service Synapse).
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Fonction prenant 1 paramètre de type boolean (true|false). Elle sera appelée quand la requête du widget aura aboutie. |
setCallback("hasError", callback)
Permet au widget de remonter la présence d'une erreur.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | true | function | Fonction prenant 2 paramètres de type string : errorMessage et errorType . |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
PrescriptionWidget
Widget permettant de saisir une ordonnance
Initialisation du widget :
const JWT = "insert your token here";
const prescriptionWidget = new Synapse.PrescriptionWidget(JWT);
/* Options */
const options = {
hideValidationButton: true,
showSynapseLogo: true,
...
};
/* patientAdministrativeInformation */
const patientAdministrativeInformation = {
chronicDiseases: [
{
code: "ALD.14.01",
system: "ameli:cim10-ald",
display: "ASTHME",
version: "2023-06-29"
}
],
...
};
const prescriptionData {
patientInformations: { ... }, /* Patient profile */
options,
patientAdministrativeInformation
};
prescriptionWidget.init(document.getElementById("prescription-container"), prescriptionData);
/* Click event on prescription validation button : */
prescriptionWidget.setCallback("onValidate", (data) => {
const { prescription } = data;
console.log(prescription);
});
/* Posology model saving */
prescriptionWidget.setCallback("onSavePosologyAsModel", (data) => {
const { entityId, posologyModel } = data;
savePosologyModel(entityId, posologyModel) /* Save posology for entity with URI equals to entityId */
});
/*Update posology models */
prescriptionWidget.setCallback("onEntityPosologyModelsRequest", (data) => {
const { entityIds } = data;
const posologyModels = {};
entityIds.forEach((entityId: string) => {
posologyModels[entityId] = retrievePosologyModelsFor(entityId) /* Retrieve posology models array for thie entityId (Entity URI) */
});
prescriptionWidget.updateEntityPosologyModels(posologyModels)
});
/* Update JWT token */
prescriptionWidget.setCallback("onTokenExpiration", (err, data) => {
const newToken = fetchNewToken();
prescriptionWidget.setToken(newToken);
});
init(element, prescriptionData)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
prescriptionData | Oui | - | Object | Données d'initialisation |
prescriptionData.prescription | Non | {} |
Prescription | Ordonnance |
prescriptionData.prescriptionModels | Non | [] |
Prescription[] | Modèles d’ordonnance |
prescriptionData.posologyModels | Non | {} |
Record |
Modèles de posologies associés a l’URI de l’entité à laquelle ils correspondent |
prescriptionData.favoriteProducts | Non | [] |
Entity[] | Produits favoris |
prescriptionData.favoriteCompoundedMedications | Non | [] |
PrescriptionLine[] | Préparations magistrales favorites |
prescriptionData.favoriteAdvices | Non | [] |
PrescriptionLine[] | Conseils favoris |
prescriptionData.patientInformations | Oui | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Profil patient |
prescriptionData.patientAdministrativeInformation.chronicDiseases | Non | false |
Identifier[] | Les Affection longue durée (ALDs) du patient |
prescriptionData.options | Non | - | Object | Options du widget |
prescriptionData.options.hideSearchField | Non | false |
Boolean | Masquer l’autocomplete |
prescriptionData.options.hideFavoritePrescriptionsButtons | Non | false |
Boolean | Masquer les boutons relatifs aux prescriptions favorites |
prescriptionData.options.hideFavoriteCompoundedMedicationsButtons | Non | false |
Boolean | Masquer les boutons relatifs aux préparations magistrales favorites |
prescriptionData.options.hideFavoriteAdvicesButtons | Non | false |
Boolean | Masquer les boutons relatifs aux conseils favoris |
prescriptionData.options.hidePrescriptionDateField | Non | false |
Boolean | Masquer le champs de date de la prescription |
prescriptionData.options.hideCompoundedMedicationButton | Non | false |
Boolean | Masquer le bouton préparation magistrale |
prescriptionData.options.hideAdviceButton | Non | false |
Boolean | Masquer le bouton conseil |
prescriptionData.options.hideCommentButton | Non | false |
Boolean | Masquer le bouton commentaire |
prescriptionData.options.hidePrescriptionDurationFields | Non | false |
Boolean | Masquer les champs de durée de prescription |
prescriptionData.options.hidePrescriptionRenewalFields | Non | false |
Boolean | Masquer le champ renouvellement de la prescription |
prescriptionData.options.hideMoreInfosButton | Non | false |
Boolean | Masquer le pictogramme permettant d’ajouter plus d’infos (3 points verticaux) |
prescriptionData.options.hideValidationButton | Non | false |
Boolean | Masquer le bouton de validation |
prescriptionData.options.showSynapseLogo | Non | false |
Boolean | Afficher le logo Synapse |
prescriptionData.options.showPosologyChecker | Non | false |
Boolean | Afficher le Posology Checker dans la saisie de posologie intégrée |
prescriptionData.options.enableFreePosologyInputMode | Non | false |
Boolean | Activer le mode de saisie libre de posologie |
prescriptionData.options.enableFavoriteProducts | Non | false |
Boolean | Activer la gestion des produits favoris |
update(prescriptionData)
Mise à jour du widget à partir de nouvelles données d’ordonnance.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
prescriptionData | Oui | - | Object | Données d'initialisation |
prescriptionData.prescription | Non | {} |
Prescription | Ordonnance |
prescriptionData.prescriptionModels | Non | [] |
Prescription[] | Modèles d’ordonnance |
prescriptionData.posologyModels | Non | {} |
Record |
Modèles de posologies associés a l’URI de l’entité à laquelle ils correspondent |
prescriptionData.favoriteProducts | Non | [] |
Entity[] | Produits favoris |
prescriptionData.favoriteCompoundedMedications | Non | [] |
PrescriptionLine[] | Préparations magistrales favorites |
prescriptionData.favoriteAdvices | Non | [] |
PrescriptionLine[] | Conseils favoris |
prescriptionData.patientInformations | Oui | { grounds: { kidneyFailure: "none", hepaticFailure: "none", cardiacFailure: "none", allergies: [], pathologies: [], doping: true, driving: true, procreation: false }, height: 0, heightUnit: "CM", weight: 0, weightUnit: "KG", creatinine: { value: 0, unit: "µmol/L" }, pregnant: false, nursing: false, sex: "" } | Profile | Profil patient |
prescriptionData.patientAdministrativeInformation.chronicDiseases | Non | false |
Identifier[] | Les Affection longue durée (ALDs) du patient |
prescriptionData.options | Non | - | Object | Options du widget |
prescriptionData.options.hideSearchField | Non | false |
Boolean | Masquer l’autocomplete |
prescriptionData.options.hideFavoritePrescriptionsButtons | Non | false |
Boolean | Masquer les boutons relatifs aux prescriptions favorites |
prescriptionData.options.hideFavoriteCompoundedMedicationsButtons | Non | false |
Boolean | Masquer les boutons relatifs aux préparations magistrales favorites |
prescriptionData.options.hideFavoriteAdvicesButtons | Non | false |
Boolean | Masquer les boutons relatifs aux conseils favoris |
prescriptionData.options.hidePrescriptionDateField | Non | false |
Boolean | Masquer le champs de date de la prescription |
prescriptionData.options.hideCompoundedMedicationButton | Non | false |
Boolean | Masquer le bouton préparation magistrale |
prescriptionData.options.hideAdviceButton | Non | false |
Boolean | Masquer le bouton conseil |
prescriptionData.options.hideCommentButton | Non | false |
Boolean | Masquer le bouton commentaire |
prescriptionData.options.hidePrescriptionDurationFields | Non | false |
Boolean | Masquer les champs de durée de prescription |
prescriptionData.options.hidePrescriptionRenewalFields | Non | false |
Boolean | Masquer le champ renouvellement de la prescription |
prescriptionData.options.hideMoreInfosButton | Non | false |
Boolean | Masquer le pictogramme permettant d’ajouter plus d’infos (3 points verticaux) |
prescriptionData.options.hideValidationButton | Non | false |
Boolean | Masquer le bouton de validation |
prescriptionData.options.showSynapseLogo | Non | false |
Boolean | Afficher le logo Synapse |
prescriptionData.options.enableFreePosologyInputMode | Non | false |
Boolean | Activer le mode de saisie libre de posologie |
prescriptionData.options.enableFavoriteProducts | Non | false |
Boolean | Activer la gestion des produits favoris |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | String | Jeton JWT à utiliser par le widget |
triggerValidation()
Déclenche la validation de l’ordonnance de manière programmatique.
addPrescriptionLines(prescriptionLines)
Permets d’ajouter des lignes à l’ordonnance de manière programmatique.
Parametre | Requis | Type | Description |
---|---|---|---|
prescriptionLines | Oui | PrescriptionLine[] | Lignes à ajouter à l’ordonnance |
updateEntityPosologyModels(posologyModels)
Mise à jour des modèles de posologies
Parametre | Requis | Type | Description |
---|---|---|---|
posologyModels | Oui | Record |
Modèles de posologies associés a l’URI de l’entité à laquelle ils correspondent |
destroy()
Supprime le widget du DOM.
setCallback("onValidate", callback)
Définit la callback appelée lors de l'événement de clic sur le bouton de validation
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.prescription | Prescription | Ordonnance |
setCallback("onUpdate", callback)
Définit la callback appelée lors d’un événement de modification de l’ordonnance
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.prescription | Prescription | Ordonnance |
setCallback("onViewDrugInfo", callback)
Définit la callback appelée lors du clic sur le bouton monographie
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.drugId | String | Code CIS de l’entité |
setCallback("onEntityPosologyModelsRequest", callback)
À l’ajout d’une entité dans l’ordonnance, le widget demande la liste des posologies favorites associées en passant la liste des URI des entités concernées En réponse, l’intégrateur met à jour les posologies favorites via la méthode UpdateEntityPosologyModels
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.entityIds | String[] | Tableau des URIs des entités dont on souhaite récupérer les posologies favorites |
setCallback("onSavePosologyAsModel", callback)
Définit la callback appelée lors de la sauvegarde d’un modèle de posologie dans la saisie de posologie intégrée
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.entityId | String | URI de l’entité à laquelle correspond le modèle de posologie |
data.posologyModel | EntityPrescription | Modèle de posologie |
setCallback("onDeletePosologyModel", callback)
Définit la callback appelée lors de la suppression d’un modèle de posologie
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.posologyModelId | String | Id du modèle de posologie supprimé |
setCallback("onSavePrescriptionAsModel", callback)
Définit la callback appelée lors de la sauvegarde d’un modèle de prescription
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.prescriptionModel | Prescription | Modèle de prescription sauvegardé |
setCallback("onDeletePrescriptionModel", callback)
Définit la callback appelée lors de la suppression d’un modèle de prescription
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.prescriptionModelId | String | Id du modèle de prescription supprimé |
setCallback("onAddFavoriteProduct", callback)
Définit la callback appelée lors de la sauvegarde d’un produit favori
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.product | Entity | Produit sauvegardé comme favori |
setCallback("onDeleteFavoriteProduct", callback)
Définit la callback appelée lors de la suppression d’un produit favori
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.product | Entity | Produit favori supprimé |
setCallback("onAddFavoriteAdvice", callback)
Définit la callback appelée lors de la sauvegarde d’un conseil favori
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.advice | PrescriptionLine | Conseil sauvegardé comme favori |
setCallback("onDeleteFavoriteAdvice", callback)
Définit la callback appelée lors de la suppression d’un conseil favori
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.adviceId | String | Id du conseil favori supprimé |
setCallback("onAddFavoriteCompoundedMedication", callback)
Définit la callback appelée lors de la sauvegarde d’une préparation magistrale favorite
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.advice | PrescriptionLine | Préparation magistrale sauvegardée comme favorite |
setCallback("onDeleteFavoriteCompoundedMedication", callback)
Définit la callback appelée lors de la suppression d’une préparation magistrale favorite
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.adviceId | String | Id de la préparation magistrale favorite supprimée |
setCallback("onSelectPrescriptionLine", callback)
Définit la callback appelée lors de la sélection d’une ligne de prescription
Parametre | Type | Description |
---|---|---|
data | Object | Données de la callback |
data.selectedLine | PrescriptionLine | Ligne sélectionnée |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Type | Description |
---|---|---|
callback | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
MonographWidget
Widget permettant d'afficher la monographie d'un médicament
Initialisation du widget dans un élément du DOM.
const JWT = "insert your token here";
const entity = /* Entity object of type branded-drug */;
const dataMonograph = {
researchEnabled: false,
brandedDrug: entity
}
const monographWidget = new Synapse.MonographWidget(JWT);
monographWidget.init(document.getElementById("monograph-container"), dataMonograph)
Mise à jour du composant monographie
const otherEntity = /* another Entity object of type branded-drug */;
dataMonograph.brandedDrug = otherEntity;
monographWidget.update(dataMonograph);
Mise à jour du jeton JWT :
monographWidget.setCallback('onTokenExpiration', function (err, data) {
const token = fetchNewToken();
monographWidget.setToken(token);
});
init(element, dataMonograph)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataMonograph | Oui | - | Object | Données d'initialisation |
dataMonograph.drugId | Non¹ | - | string | Identifiant unique de l'entité médicamenteuse en fonction du pays |
dataMonograph.brandedDrug | Non¹ | - | Entity | ² Entité médicamenteuse de type branded-drug uniquement |
dataMonograph.researchEnabled | Non | false |
Boolean | Spécifie si une barre d'autocomplétion de spécialité médicamenteuse est affiché. |
update(dataMonograph)
Mise à jour du composant monographie
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
dataMonograph | Oui | - | Object | Données d'initialisation |
dataMonograph.drugId | Non¹ | - | string | Identifiant unique de l'entité médicamenteuse en fonction du pays |
dataMonograph.brandedDrug | Non¹ | - | Entity | Entité médicamenteuse de type branded-drug uniquement |
dataMonograph.researchEnabled | Non | false |
Boolean | Spécifie si une barre d'autocomplétion de spécialité médicamenteuse est affiché. |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | (t:type) | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
destroy()
Supprime le widget du DOM.
QuickExtractWidget
Widget permettant d'importer des traitements à partir d'une ordonnance
const JWT = "insert your token here";
const quickExtractWidget = new Synapse.QuickExtractWidget(JWT);
const dataQuickExtract = {
providers: [
Synapse.QuickExtractWidget.Providers.CAMERA,
Synapse.QuickExtractWidget.Providers.FILE_SYSTEM,
Synapse.QuickExtractWidget.Providers.FORM,
]
withPosologies : false;
}
quickExtractWidget.init(document.getElementById("quick-extract"), dataQuickExtract);
init(element, dataQuickExtract)
Initialisation du widget dans un élément du DOM.
Parametre | Requis | Valeur par défaut | Type | Description |
---|---|---|---|---|
element | Oui | - | Element | Objet spécifiant l’élément du DOM dans lequel sera inséré le widget |
dataQuickExtract | Non | - | Object | Données d'initialisation |
dataQuickExtract.providers | Non | [Synapse.QuickExtractWidget.Providers.CAMERA, Synapse.QuickExtractWidget.Providers.FILE_SYSTEM, Synapse.QuickExtractWidget.Providers.FORM] | QuickExtractProvider[] | Liste des méthodes d'import à utiliser |
withPosologies | Non | true |
boolean | Active ou desactive l'affichage et l'utilisation du formulaire de posologies |
setToken(jwtToken)
Jeton JWT à utiliser par le widget
Parametre | Requis | Type | Description |
---|---|---|---|
jwtToken | Oui | string | Jeton JWT à utiliser par le widget |
setCallback("onImportTreatments", callback)
Spécification d'une callback à appeler lors de l'import de la liste des traitements validés.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Définit la callback appelée lors de l'événement de clic par l'utilisateur sur le bouton d'import de la liste des traitements validés, utilisant les paramètres (err, data) où data.treatments est un tableau d'objets contenant une Entity et une DetailedPosology et data.file est le fichier (ordonnance) utilisé pour extraire les entités. |
setCallback("onTokenExpiration", callback)
Spécification d'une callback à appeler lors de l'expiration du jeton JWT.
Parametre | Requis | Type | Description |
---|---|---|---|
callback | Oui | function | Spécification d'une callback à appeler lors de l'expiration du jeton JWT. |
destroy()
Supprime le widget du DOM.
Format de données
AutocompleteApi (enum)
Exemple d'api d'autocomplete
var therapeuticEntityAutocomplete = Synapse.AutocompleteApi.TherapeuticEntityAutocomplete;
var medicalDeviceAutocomplete = Synapse.AutocompleteApi.MedicalDeviceAutocomplete;
Api disponible à fournir au widget AutocompleteWidget
Namespace Synapse.AutocompleteApi
Valeur | Requis | Description |
---|---|---|
TherapeuticEntityAutocomplete |
Oui | Api d'autocompletion de Synapse permettant d'avoir des entités de type Entity. |
MedicalDeviceAutocomplete |
Non | Api d'autocompletion permettant de récupérer des entités de la base Exhausmed, de type MedicalDevice. |
MedicalResourceEntityType (enum)
Exemple de types d'entités
var brandedDrugType = Synapse.MedicalResourceEntityType.BRANDED_DRUGS;
var clinicalDrugType = Synapse.MedicalResourceEntityType.CLINICAL_DRUGS;
Type d'entités pouvant être séléctionné via l'autocomplete MedicalResourceAutocompleteWidget
Namespace Synapse.MedicalResourceEntityType
Valeur | Requis | Description |
---|---|---|
BRANDED_DRUGS |
Oui¹ | Spécialités |
CLINICAL_DRUGS |
Oui¹ | Médicaments virtuels |
MEDICAL_ACCESSORIES |
Oui¹ | Accessoires médicaux |
Entity (object)
Exemple de spécialité médicamenteuse :
{
"brandname": "IBUPROFENE MYLAN CONSEIL",
"cis": "64594722",
"ingredients": [
{
"dose": "684 mg",
"label": "ibuprofène (lysinate d')",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/890232a27d7c4398ee1138205f17a87e25dc13fc"
}
],
"label": "IBUPROFENE MYLAN CONSEIL 400 mg, comprimé pelliculé",
"moieties": [
{
"dose": "0,4 g",
"label": "ibuprofene",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/a296a3f7964b5aa84e42b85549d60eb3b54cf858"
}
],
"shortname": "IBUPROFENE",
"type": "branded-drug",
"uri": "http://frnorm.graph.synapse-medicine.com#BrandedDrug/64594722",
"detailedPosology": {
"type": "PRESCRIPTION",
"indication": "Diabète",
"startDate": "2021-10-01T00:00:00.000Z",
"posologies": [
{
"_id": "1",
"duration": 1,
"durationUnit": "WEEK",
"isChronic": false,
"frequency": 1,
"frequencyUnit": "DAILY",
"doseUnit": "mg",
"dosage": {
"morning": 100,
"noon": 0,
"evening": 0,
"night": 0
}
}
],
"comment": "Ceci est un commentaire"
},
"comment": "À renouveler si besoin."
}
Exemple de molécule active :
{
"label": "paracétamol",
"type": "pharmaceutical-ingredient",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46"
}
Exemple d'allergie via un médicament
{
"label": "paracétamol",
"uri": "http://frnorm.graph.synapse-medicine.com#PharmaceuticalIngredient/7fe0342fcdef507a3066831e939cccb6aee60e46",
"type": "pharmaceutical-ingredient",
"brandNameDrugs": [
{
"uri": "http://theriaque.graph.synapse-medicine.com#BrandName/f8d5bb6984663120576108605e06e18c7a925532",
"type": "brandname-drug",
"label": "DOLIPRANE"
}
]
}
Entité thérapeutique définie par les champs suivants :
Champ | Requis | Type | Description |
---|---|---|---|
label | Oui | string | Nom de l'entité |
uri | Non | string | Identifiant Synapse unique de l'entité |
type | Non | EntityType | Type d'entité thérapeutique |
cis | Non | string | Code CIS (pour les spécialités uniquement) |
shortname | Oui | string | Nom court de spécialité (pour les spécialités uniquement) |
brandname | Non | string | Nom de marque de spécialité (pour les spécialités uniquement) |
ingredients | Non | Entity[] | Liste des substances actives de la spécialité (pour les spécialités uniquement) |
moieties | Non | Entity[] | Liste des fractions thérapeutiques de la spécialité (pour les spécialités uniquement) |
entityPrescription | Non | EntityPrescription | Prescription de l'entité thérapeutique |
detailedPosology | Non | DetailedPosolgy | ¹ Posologies du médicament (ancien format) |
comment | Non | string | Commentaire |
medicabase_id | Non | string | Code Medicabase disponible pour les médicaments virtuels uniquement |
brandNameDrugs | Non | Entity[] | Liste de médicaments rattachés à l'allergie sélectionnée (uniquement pour les allergies sélectionnées via une entité therapeutique de type brandname-drug). |
Pathology (object) DEPRECATED
Exemple de pathologies retournées par le widget
PathologyAutocompleteWidget
:
{
"code": "P940",
"label": "Myasthénie transitoire néonatale (P940)",
"labels_theriaque": [],
"theriaque_link": 0,
"code_ALD": "",
"label_ALD": ""
}
Les pathologies sont définies par les champs suivants :
ATTENTION ce format des données est obsolète, veuillez migrer vers le widget PathologyAutocompleteWidgetV2
pour utiliser le type PathologyV2.
Champ | Requis | Type | Description |
---|---|---|---|
code | Oui | string | Code identifiant la pathologie |
label | Oui | string | Nom de la pathologie |
labels_theriaque | Oui | string[] | Terrains Thériaque associés |
theriaque_link | Oui | number | Nombre indiquant si la pathologies est associés à des terrains Thériaque. Champ obligatoire, nécessaire pour les analyses du widget terrain |
code_ALD | Oui | string | Code d'affection longue durée associé à la pathologie |
label_ALD | Oui | string | Label du code d'affection longue durée |
PathologyV2 (object)
Exemple de pathologies retournées par le widget
PathologyAutocompleteWidgetV2
:
{
"identifier": {
"code": "D73",
"display": "Maladies de la rate",
"system": "cim-10"
}
}
Les pathologies sont définies par les champs suivants :
Champ | Requis | Type | Description |
---|---|---|---|
identifier | Oui | Identifier | Objet identifiant de la pathologie |
Identifier (object)
Format d'objet identifiant de la pathologie
Champ | Requis | Type | Description |
---|---|---|---|
code | Oui | string | Code identifiant la pathologie dans la terminologie correspondante |
display | Oui | string | Nom de la pathologie |
system | Oui | string | Système correspondant à la terminologie de la pathologie |
version | Non | string | Version de la terminologie de la pathologie |
Terminology (enum)
Terminologies a utiliser dans l'objet
TerminologyOption
, paramètre du widgetPathologyAutocompleteWidgetV2
:
const pathologyAutocompleteTerminologies = {
CIM10: Synapse.PathologyAutocompleteWidgetV2.Terminology.ICD10,
CISP: Synapse.PathologyAutocompleteWidgetV2.Terminology.CISP,
DRC: Synapse.PathologyAutocompleteWidgetV2.Terminology.DRC,
};
Terminology est une enum
disponible depuis la classe Synapse.PathologyAutocompleteWidgetV2
.
Valeur | Description |
---|---|
ICD10 |
Classification internationale des maladies 10eme révision (CIM-10) |
CISP |
Classification internationale des soins primaires |
DRC |
Dictionnaire des résultats de consultation |
TerminologyOption (object)
Exemple d'option de terminologie (à passer en paramètre du widget PathologyAutocompleteWidgetV2) :
// Using const define in Terminology section
const terminologiesOptions = [
{ terminology: pathologyAutocompleteTerminologies.ICD10, active: true, available: true },
{ terminology: pathologyAutocompleteTerminologies.CISP, active: true, available: true },
{ terminology: pathologyAutocompleteTerminologies.DRC, active: true, available: true },
];
// Using static enum in PathologyAutocompleteWidgetV2 class
const terminologiesOptions = [
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.ICD10, active: true, available: true },
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.CISP, active: true, available: true },
{ terminology: Synapse.PathologyAutocompleteWidgetV2.Terminology.DRC, active: false, available: true },
];
Objet de type TerminologyOption
:
Champ | Requis | Type | Description |
---|---|---|---|
terminology | Oui | Terminology | Terminologie à utiliser pour la recherche de pathologies |
active | Oui | boolean | Indique si la terminologie est active ou non pour la recherche de pathologies |
available | Oui | boolean | Indique si la terminologie est disponible ou non dans les options de recherche |
MedicalDevice (object)
Exemple d'entité de la base Exhausmed
{
"exhauscode": "01/00015/335060",
"reference": "335060",
"name": "PANS. HYDROFB. FIBER 15X15 CM",
"brand": "BIATAIN",
"laboratory": "COLOPLAST",
"productLink": "http://espace.exhausmed.fr/Search/Details/2017604?securekey=InDH0eHAmZzE3sHFhXuIpQ==&light=1",
"normativeLabels": ["PANSEMENT HYDROFIBRE PLAQUE"]
}
Les entités de la base Exhausmed sont définies par les champs suivants :
Champ | Requis | Type | Description |
---|---|---|---|
exhauscode | Oui | string | Id de l'entité dans la base Exhausmed |
reference | Non | Référence commerciale du dispositif médical | |
name | Non | Nom de l'entité | |
brand | Non | Marque de l'entité | |
laboratory | Non | Laboratoire ayant fabriqué le dispositif médical | |
productLink | Non | Lien vers la page produit exhausmed | |
normativeLabels | Non | Labels normatifs exhausmed du dispositif médical |
MedicalAccessory (object)
Exemple d'entité de la base Medipim
{
"acl13": "3401543911384",
"cip_or_acl7": "4391138",
"is_reimbursed": false,
"lppr_code": "",
"medipim_id": "MAE6A5BB28",
"type": "medical-accessory",
"label": "2faces Nuit Blanche Comprime 45"
}
Les entités de la base Medipim sont définies par les champs suivants :
Champ | Requis | Type | Description |
---|---|---|---|
acl13 | Non | string | Code à 13 chiffres des accessoires médicaux |
cip_or_acl7 | Non | string | Code identifiant des accessoires médicaux |
is_reimbursed | Non | boolean | Boolean indiquant le remboursement des accessoires médicaux |
lppr_code | Non | string | Codification du remboursement des accessoires médicaux |
medipim_id | Non | string | Code identifiant des accessoires médicaux |
label | Non | string | Label de l'entité |
EntityType (string)
Type d'entité thérapeutique
Valeur | Requis | Description |
---|---|---|
'branded-drug' |
Oui¹ | Spécialité médicamenteuse ex: DOLIPRANE 500mg, comprimé |
'pharmaceutical-ingredient' |
Oui¹ | Molécule active (DCI) ex: paracetamol |
'therapeutic-class' |
Oui¹ | Classe thérapeutique ex: hyperkaliémiants |
'clinical-drug' |
Oui¹ | Médicament virtuel ex: ibuprofène 400mg comprimé |
'medical-accessory' |
Oui¹ | Accessoire Médical (dispositif médical ou parapharmacie)
Uniquement disponible pour la France ex: 2faces Nuit Blanche Comprime 45 |
Locale (string)
Identifiant de langue et pays parmi :
Valeur | Requis | Description |
---|---|---|
'de-DE' |
Oui¹ | allemand (Allemagne) |
'en-GB' |
Oui¹ | anglais (Grande-Bretagne) |
'en-US' |
Oui¹ | americain (Etats unis d'Amérique) |
'es-ES' |
Oui¹ | espagnol (Espagne) |
'fr-FR' |
Oui¹ | français (France) |
'it-IT' |
Oui¹ | italien (Italie) |
DetailedPosology (object)
Exemple de posologie détaillée :
{
"type": Synapse.DetailedPosologyType.Type.PRESCRIPTION,
"indication": "Diabète",
"startDate": new Date("2021-03-21"),
"posologies": [{
"_id": "1",
"duration": 1,
"durationUnit": Synapse.StructuredPosologyType.DurationUnit.WEEK,
"isChronic": false,
"frequency": 1,
"frequencyUnit": Synapse.StructuredPosologyType.FrequencyUnit.DAILY,
"doseUnit": "mg",
"dosage": {
"morning": 100,
"noon": 0,
"evening": 0,
"night": 0
}
}],
"comment": "Ceci est un commentaire"
}
Posologie détaillée :
Champ | Requis | Type | Description |
---|---|---|---|
type | Oui | DetailedPosologyType | Type de prise |
indication | Non | string | Indication de prise |
startDate | Non | Date | Date de debut de prise |
posologies | Oui | StructuredPosology[] | Posologies structurées |
comment | Non | string | Commentaire de prescription |
DetailedPosologyType (enum)
Exemples de types de posologie
var prescriptionType = Synapse.DetailedPosologyType.Type.PRESCRIPTION;
var selfMedicationType = Synapse.DetailedPosologyType.Type.SELF_MEDICATION;
Type de posologie
Namespace Synapse.
DetailedPosologyType.Type
Valeur | Requis | Description |
---|---|---|
PRESCRIPTION |
Oui¹ | Prescription |
SELF_MEDICATION |
Oui¹ | Automédication |
StructuredPosology (object)
Exemple de posologie structurée :
{
"_id": "1",
"duration": 1,
"durationUnit": Synapse.StructuredPosologyType.DurationUnit.WEEK,
"isChronic": false,
"frequency": 1,
"frequencyUnit": Synapse.StructuredPosologyType.FrequencyUnit.DAILY,
"doseUnit": "mg",
"dosage": {
"morning": "100",
"noon": "0",
"evening": "0",
"night": "0"
}
}
Posologie structurée :
Champ | Requis | Type | Description |
---|---|---|---|
_id | Oui | string | Identifiant unique de posologie |
duration | Non | number | Durée de prise |
durationUnit | Non | StructuredPosologyDurationUnit | Unité de durée de prise |
isChronic | Non | bool | Vrai si la prise est chronique |
frequency | Oui | number | Fréquence de prise |
frequencyUnit | Oui | StructuredPosologyFrequencyUnit | Unité de fréquence de prise |
doseUnit | Oui | string | Unité de dose |
dosage | Oui | StructuredPosologyDefaultDosage, StructuredPosologyDailyDosage or StructuredPosologyWeeklyDosage | Dosage de la posologie |
StructuredPosologyDurationUnit (enum)
Exemples de types de dose
var dayDurationUnit = Synapse.StructuredPosologyType.DurationUnit.DAY;
var hourDurationUnit = Synapse.StructuredPosologyType.DurationUnit.HOUR;
var weekDurationUnit = Synapse.StructuredPosologyType.DurationUnit.WEEK;
var monthDurationUnit = Synapse.StructuredPosologyType.DurationUnit.MONTH;
var yearDurationUnit = Synapse.StructuredPosologyType.DurationUnit.YEAR;
Type de durée
Namespace Synapse.StructuredPosologyType.DurationUnit
Valeur | Requis | Description |
---|---|---|
DAY |
Oui¹ | Jour(s) |
HOUR |
Oui¹ | Heure(s) |
WEEK |
Oui¹ | Semaine(s) |
MONTH |
Oui¹ | Mois |
YEAR |
Oui¹ | An(s) |
StructuredPosologyFrequencyUnit (enum)
Exemples de types de fréquence
var uponRequestFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.UPON_REQUEST;
var allDaysFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.ALL_DAYS;
var monthlyFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.MONTHLY;
var weeklyFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.WEEKLY;
var dailyFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.DAILY;
var hourlyFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.HOURLY;
var minutlyFrequencyUnit = Synapse.StructuredPosologyType.FrequencyUnit.MINUTLY;
Type de fréquence
Namespace Synapse.StructuredPosologyType.FrequencyUnit
Valeur | Requis | Description |
---|---|---|
UPON_REQUEST |
Oui¹ | Si besoin |
ALL_DAYS |
Oui¹ | Tous les jours |
MONTHLY |
Oui¹ | Tous les (x) mois |
WEEKLY |
Oui¹ | Toutes les (x) semaines |
DAILY |
Oui¹ | Tous les (x) jours (autre que tous les jours) |
HOURLY |
Oui¹ | Toutes les (x) heures |
MINUTLY |
Oui¹ | Toutes les (x) minutes |
StructuredPosologyDefaultDosage (object)
Exemple de dosage par défaut
{
"dose": "2 comprimés",
}
Dosage par défaut
Champ | Requis | Type | Description |
---|---|---|---|
dose | Oui | string | Dose |
StructuredPosologyDailyDosage (object)
Exemple de dosage journalier
{
"morning": "3",
"noon": "",
"evening": "2",
"night": ""
}
Dosage journalier
Champ | Requis | Type | Description |
---|---|---|---|
morning | Non | string | Dose prise le matin |
noon | Non | string | Dose prise à midi |
evening | Non | string | Dose prise le soir |
night | Non | string | Dose prise au couché |
StructuredPosologyWeeklyDosage (object)
Exemple de dosage hebdomadaire
{
"monday": "1",
"tuesday": "",
"wednesday": "1",
"thursday": "",
"friday": "1",
"saturday": "",
"sunday": ""
}
Dosage hebdomadaire
Champ | Requis | Type | Description |
---|---|---|---|
monday | Non | string | Dose prise le lundi |
tuesday | Non | string | Dose prise le mardi |
wednesday | Non | string | Dose prise le mercredi |
thursday | Non | string | Dose prise le jeudi |
friday | Non | string | Dose prise le vendredi |
saturday | Non | string | Dose prise le samedi |
sunday | Non | string | Dose prise le dimanche |
PosologyFormErrorType (enum)
Exemples de Type d’erreur de saisie
var incompleteInput = Synapse.PosologyFormErrorType.INCOMPLETE_INPUT;
Type d’erreur de saisie
Namespace Synapse.PosologyFormErrorType.INCOMPLETE_INPUT
Valeur | Description |
---|---|
INCOMPLETE_INPUT |
Saisie incomplete |
EntityPrescription (object)
Exemple de la prescription d’une entité
{
"id": "0000000",
"version": "3",
"posologies": Posology[],
"type": EntityPrescriptionTypes,
"comment": "here a comment",
"uponRequest": true,
"uponRequestDetails": "here uponRequest details",
"additionalInfos": AdditionalEntityPrescriptionInfo,
"transcription": "here a transcription",
"packaging": Packaging,
"unstructuredPosology": UnstructuredPosology,
}
Prescription à éditer
Champ | Requis | Type | Description |
---|---|---|---|
id | Oui | string | Identifiant unique (auto généré) |
version | Oui | string | Version du format de prescription |
posologies | Oui | Posology | Posologies |
type | Oui | EntityPrescriptionType | Type de prescription (prescription ou automédication) |
indication | Non | string | Indication (deprecated) |
comment | Non | string | Commentaire |
uponRequest | Non | boolean | Spécifie si la prise se fait “si besoin” |
uponRequestDetails | Non | string | Détail de la prise “si besoin” |
additionalInfos | Non | AdditionalEntityPrescriptionInfo | Informations complémentaires |
transcription | Non | string | Retranscription de la posologie sous forme de phrase |
packaging | Non | Packaging | Conditionnement de l'entité de la prescription |
unstructuredPosology | Non | UnstructuredPosology | Posologie non structurée |
Posology (object)
Exemple de Posologie
{
"id": "00000",
"version": "here the version",
"posologyInstructions": PosologyInstruction[],
"duration": 23,
"durationUnit": DurationUnit
}
Posologie
Champ | Requis | Type | Description |
---|---|---|---|
id | Oui | string | Identifiant unique (auto généré) |
version | Oui | string | Version du format de posologie |
posologyInstructions | Oui | PosologyInstruction | Instructions de posologie |
duration | Non | number | Durée |
durationUnit | Non | DurationUnit | Unité de durée |
PosologyInstructions (object)
Exemple d’instructions de posologie
{
"id": "0000",
"dose": 23,
"doseUnit": "here dose unit",
"frequency": Frequency,
"additionalFrequency": Frequency
}
Instructions de posologie
Champ | Requis | Type | Description |
---|---|---|---|
id | Oui | string | Identifiant unique (auto généré) |
dose | Oui | number | Dose |
doseUnit | Oui | string | Unité de dose |
frequency | Oui | Frequency | Fréquence |
additionalFrequency | Non | Frequency | Fréquence complémentaire |
DurationUnit (enum)
Exemples de Type d’unité de durée
var dayDurationUnit = Synapse.Posology.DurationUnit.DAY;
var hourDurationUnit = Synapse.Posology.DurationUnit.HOUR;
var weekDurationUnit = Synapse.Posology.DurationUnit.WEEK;
var monthDurationUnit = Synapse.Posology.DurationUnit.MONTH;
var yearDurationUnit = Synapse.Posology.DurationUnit.YEAR;
Type d’unité de durée
Namespace Synapse.Posology.DurationUnit
Valeur | Description |
---|---|
DAY |
Jour(s) |
WEEK |
Semaine(s) |
MONTH |
Mois |
YEAR |
An(s) |
HOUR |
Heure(s) |
MINUTE |
Minute(s) |
Frequency (object)
Exemple de fréquence
{
"type": FrequencyType.DAYMOMENT
"details": { morning: true, noon: false, evening: false, night: true}
}
Fréquence
Champ | Type | Type | Description |
---|---|---|---|
type | Oui | FrequencyType | Type de fréquence |
details | Oui | DayMomentFrequencyDetails || WeekMomentFrequencyDetails || HourFrequencyDetails || CustomFrequencyDetails | Details de la fréquence, dépendant du type de fréquence |
FrequencyType (enum)
Exemples de Type de fréquence
var prescriptionType = Synapse.FrequencyType.DAILY;
Type de fréquence
Namespace Synapse.FrequencyType
Valeur | Description |
---|---|
DAILY |
Par jour |
DAYMOMENT |
Par moment de la journée |
WEEKLY |
Par semaine |
WEEKMOMENT |
Par jour de la semaine |
HOUR |
Par heure |
CUSTOM |
Autre |
DayMomentFrequencyDetails (object)
Exemple de détails d’une fréquence par moment de la journée
{
"morning": true,
"noon": false,
"evening": true,
"night": true
}
Détails d’une fréquence par moment de la journée
Valeur | Requis | Type | Description |
---|---|---|---|
morning | Non | boolean | Matin |
noon | Non | boolean | Midi |
evening | Non | boolean | Soir |
night | Non | boolean | Coucher |
WeekMomentFrequencyDetails (object)
Exemple de détails d’une fréquence par jour de la semaine
{
"monday": true,
"tuesday": false,
"wednesday": true,
"thursday": true,
"friday": true,
"saturday": false,
"sunday": false
}
Détails d’une fréquence par jour de la semaine
Valeur | Requis | Type | Description |
---|---|---|---|
monday | Non | boolean | Lundi |
tuesday | Non | boolean | Mardi |
wednesday | Non | boolean | Mercredi |
thursday | Non | boolean | Jeudi |
friday | Non | boolean | Vendredi |
saturday | Non | boolean | Samedi |
sunday | Non | boolean | Dimanche |
HourFrequencyDetails (object)
Exemple de détails d’une fréquence par heure
{
"hours:": [2, 4, 6]
}
Détails d’une fréquence par heure
Valeur | Requis | Type | Description |
---|---|---|---|
hours | Oui | number[] | Liste des heures |
CustomFrequencyDetails (object)
Exemple d'une fréquence custom
{
"occurences:": 2,
"unit:": DurationUnit,
"base:": 3,
}
Détails d’une fréquence custom
Valeur | Requis | Type | Description |
---|---|---|---|
occurences | Non | number | Ocurrences |
unit | Oui | DurationUnit | Unité |
base | Non | number | Base |
EntityPrescriptionType (enum)
Exemple de type de prescription
var prescriptionType = Synapse.EntityPrescriptionType.PRESCRIPTION;
var selfMedicationType = Synapse.EntityPrescriptionType.SELF_MEDICATION;
Type de prescription
Namespace Synapse.EntityPrescriptionType
Valeur | Description |
---|---|
PRESCRIPTION |
Prescription |
SELF_MEDICATION |
Type de medication |
AdditionalEntityPrescriptionInfo (object)
Exemple d'informations additionnelles sur la prescription
{
"quantity": true,
"quantityDetails": QuantityDetails,
"toRenew": false,
"renewalDetails": RenewalDetails,
"ald": true,
"longTerm": false,
"administrationRoute": "Here an administration route",
"meal": Meal,
"reason": "Here a reason",
"additionalInfosOptions": AdditionalInfosOptions
}
Information additionnelles sur la prescription
Champ | Requis | Type | Description |
---|---|---|---|
quantity | Non | boolean | Spécifie si le conditionnement est spécifié |
quantityDetails | Non | QuantityDetails | Détail du conditionnement |
toRenew | Non | boolean | Spécifie si la prescription est “à renouveler” |
renewalDetails | Non | RenewalDetails | Détails du renouvellement |
ald | Non | boolean | Spécifie si la prescription concerne une ALD (Affection Longue Durée) |
longTerm | Non | boolean | Spécifie si la prescription est au long cours |
administrationRoute | Non | string | Voie d’administration |
meal | Non | Meal | Spécifie la prise par rapport au repas |
reason | Non | string | Motif de la prescription |
additionalInfosOptions | Non | AdditionalInfosOptions | Informations complémentaires |
QuantityDetails (object)
Exemple de détail d’une quantité
{
"value": 2223,
"unit": "Here a unit"
}
Détail d’une quantité
Champ | Requis | Type | Description |
---|---|---|---|
value | Non | number | Quantité |
unit | Non | string | Type de conditionnement |
RenewalDetails (object)
Exemple de détail d’un renouvellement
{
"renewalTimes": 2223
}
Détails du renouvellement
Champ | Requis | Type | Description |
---|---|---|---|
renewalTimes | Non | number | Nombre de renouvellements |
Meal (enum)
Exemple de valeur de prise lors des repas
var AEPrescriptionInfoMealNone = Synapse.AdditionalEntityPrescriptionInfo.Meal.NONE;
var AEPrescriptionInfoMealBefore = Synapse.AdditionalEntityPrescriptionInfo.Meal.BEFORE;
var AEPrescriptionInfoMealDuring = Synapse.AdditionalEntityPrescriptionInfo.Meal.DURING;
var AEPrescriptionInfoMealAfter = Synapse.AdditionalEntityPrescriptionInfo.Meal.AFTER;
Valeur de prise lors des repas
Namespace Synapse.AdditionalEntityPrescriptionInfo.Meal
Valeur | Description |
---|---|
NONE |
Non précise |
BEFORE |
Avant le repas |
DURING |
Pendant le repas |
AFTER |
Après le repas |
AdditionalInfosOptions (object)
Exemple d’informations complémentaires
{
"startDate": new Date("2021-03-21"),
"endDate": new Date("2021-03-21"),
"prevention": false,
"offLabel": false,
"occupationalDisease": false,
"antibioticProtocol": false,
"temporaryUseAuthorization": false,
"workAccident": false,
"notForGenericSubstitution": false,
"notForGenericSubstitutionReason": ""
}
Informations complémentaires
Champ | Requis | Type | Description |
---|---|---|---|
startDate | Non | Date | Date de début de prise |
endDate | Non | Date | Date de fin de prise |
prevention | Non | boolean | Spécifie si la prescription est en lien avec la prévention |
offLabel | Non | boolean | Spécifie si la prescription est hors AMM (Autorisation de Mise sur le Marché) |
occupationalDisease | Non | boolean | Spécifie si la prescription est en lien avec une maladie professionnelle |
antibioticProtocol | Non | boolean | Spécifie si la prescription est en lien avec un protocole antibiotique |
temporaryUseAuthorization | Non | boolean | Spécifie si la prescription est en lien avec une recommandation temporaire d’utilisation |
workAccident | Non | boolean | Spécifie si la prescription est en lien avec un accident du travail |
notForGenericSubstitution | Non | boolean | Spécifie si la prescription est non substituable |
notForGenericSubstitutionReason | Oui si notForGenericSubstitution is True | string | Raison pour laquelle la prescription est non substituable |
Packaging (object)
Exemple de Conditionnement
{
"label": "DOLIPRANE 500 mg, gélule, plaquette(s) thermoformée(s) PVC aluminium de 16 gélule(s)",
"uri": "http://bdpm.graph.synapse-medicine.com#PackagedBrandedDrug/3400934507786",
"conditioning": "plaquette(s) thermoformée(s) PVC aluminium de 16 gélule(s)",
"is_exceptional_drug": false,
"package_nb_units": "16",
"cip13": "3400934507786",
"reimbursement_rate": "0.65"
}
Conditionnement de l'entité de la prescription
Champ | Requis | Type | Description |
---|---|---|---|
uri | Oui | number | Uri d'un conditionnement |
conditioning | Oui | string | Nom d'un conditionnement |
label | Non | string | Label d'un conditionnement |
cip13 | Oui | string | Code cip (13) d'un conditionnement |
is_exceptional_drug | Non | boolean | Conditionnement concernant une entité d'exception |
package_nb_units | Non | string | Nombre d'unités de ce conditionnement |
reimbursement_rate | Non | string | Taux de remboursement de ce conditionnement |
UnstructuredPosology (object)
Exemple de Posologie non structurée
{
"duration": 23,
"durationUnit": DurationUnit,
"posologyText": "posology Text",
}
Posologie
Champ | Requis | Type | Description |
---|---|---|---|
duration | Non | number | Durée |
durationUnit | Non | DurationUnit | Unité de durée |
posologyText | Oui | string | texte de la posologie non structurée |
PosologySummary (object)
Exemple de synthèse de posologie :
{
"posologyId": "posology-1",
"structuredPosology":
{
"id": "posology-1",
"frequencyUnit": "/jour",
"dosageType": Synapse.PosologyType.Dosage.DAILY,
"durationUnit": "jour",
"dosage": {
"doseUnit": "mg/prise",
"quantities": {
"morning": 3000,
"noon": 1000,
"evening": 2000,
"night": 10
},
"uponRequest": true
}
},
"summary": "6010mg/prise",
"hasWarnings": false,
}
Synthèse de posologie :
Champ | Requis | Type | Description |
---|---|---|---|
posologyId | Oui | string | Identifiant unique de posologie |
structuredPosology | Oui | StructuredPosology | Détail de la posologie structurée |
summary | Oui | string | Résumé de la posologie |
hasWarnings | Oui | boolean | Spécifie si la posologie a généré un avertissement. |
PosologyDosageType (enum)
Exemples de types de dose
var defaultDosageType = Synapse.PosologyType.Dosage.DEFAULT;
var dailyDosageType = Synapse.PosologyType.Dosage.DAILY;
var weeklyDosageType = Synapse.PosologyType.Dosage.WEEKLY;
Profile (object)
Exemple de profil clinique patient :
var profile = {
grounds: {
kidneyFailure: Synapse.ProfileType.KidneyProfile.LIGHT,
hepaticFailure: Synapse.ProfileType.HepaticProfile.MODERATE,
cardiacFailure: Synapse.ProfileType.CardiacProfile.HEAVY,
allergies: [],
comorbidities: [],
},
age: 23,
height: 185,
heightUnit: 'CM',
weight: 75,
weightUnit: 'KG',
creatinine: {
value: 83,
unit: Synapse.ProfileType.CreatinineUnit.UMOL_L,
},
medicalHistory: [''],
sex: Synapse.ProfileType.Sex.FEMALE,
pregnant: true,
pregnancyStartDate: new Date('2021-09-12'), // must be within the last nine months
nursing: false,
birthDate: new Date('2022-09-12'),
lmp: new Date('2022-01-11'),
};
Profil clinique du patient
Champ | Requis | Type | Description |
---|---|---|---|
grounds | Non | Object | Terrains cliniques du patient |
grounds.kidneyFailure | Non | kidneyProfileType | Profil rénal du patient |
grounds.hepaticFailure | Non | HepaticProfileType | Profil hépatique du patient |
grounds.cardiacFailure | Non | CardiacProfileType | Profil cardiaque du patient |
grounds.allergies | Non | Entity[] | Liste des allergies médicamenteuses du patient. Les éléments de la liste (de type Entity) sont fournis via l'autocomplete d'allergie dans la saisie du profil patient. |
Non | Pathology[] | ¹ Deprecated, ce champ a été remplacé par le champ grounds.pathologies . |
|
grounds.pathologies | Non | PathologyV2[] | Liste des pathologies du patient. Les élements de la liste sont fournis via l'autocomplete de pathologies dans la saisie du profil patient. |
age | Non | float | Age du patient en années. Il est possible de transmettre des valeurs non entières. |
height | Non | number | Taille du patient (en centimètres) |
heightUnit | Non | string | Unité de mesure de la taille |
weight | Non | number | Poids du patient (en kilogrammes) |
weightUnit | Non | string | Unité de mesure du poids |
creatinine | Non | Object | Créatinémie du patient (si insuffisance rénale non renseignée) |
creatinine.value | Non | number | Valeur de la créatinémie |
creatinine.unit | Non | CreatinineUnit | Unité utilisée pour la créatinémie |
medicalHistory | Non | string[] | Antécédents médicaux du patient. Les éléments de la liste sont du texte libre. |
sex | Oui | PatientSex | Sexe du patient |
pregnant | Non | boolean | Spécifie si la patiente est enceinte |
pregnancyStartDate | Non | Date | Date des dernières règles de la patiente |
nursing | Non | boolean | Spécifie si la patiente allaite |
birthDate | Non | Date | Date de naissance |
lmp | Non | Date | Dernier jour des règles |
KidneyProfileType (enum)
Exemple de profils d'insuffisance rénale :
var renalNone = Synapse.ProfileType.KidneyProfile.NONE;
var renalTerminal = Synapse.ProfileType.KidneyProfile.TERMINAL;
Type de profil d'insuffisance rénale
Namespace Synapse.ProfileType.KidneyProfile
Valeur | Requis | Description |
---|---|---|
NONE |
Oui¹ | Profil inconnu ou pas de problème rénal |
LIGHT |
Oui¹ | Insuffisance rénale légère |
MODERATE |
Oui¹ | Insuffisance rénale modérée |
HEAVY |
Oui¹ | Insuffisance rénale importante |
TERMINAL |
Oui¹ | Insuffisance rénale terminale |
HepaticProfileType (enum)
Exemple de profils hépatiques :
var hepaticLight = Synapse.ProfileType.HepaticProfile.LIGHT;
var hepaticHeavy = Synapse.ProfileType.HepaticProfile.HEAVY;
Type de profil hépatique
Namespace Synapse.ProfileType.HepaticProfile
Valeur | Requis | Description |
---|---|---|
NONE |
Oui¹ | Profil inconnu ou pas de problème hépatique |
LIGHT |
Oui¹ | Insuffisance hépatique légère |
MODERATE |
Oui¹ | Insuffisance hépatique modérée |
HEAVY |
Oui¹ | Insuffisance hépatique importante |
CardiacProfileType (enum)
Exemple de profils cardiaques :
var cardiacLight = Synapse.ProfileType.CardiacProfile.LIGHT;
var cardiacHeavy = Synapse.ProfileType.CardiacProfile.HEAVY;
Type de profil cardiaque
Namespace Synapse.ProfileType.CardiacProfile
Valeur | Requis | Description |
---|---|---|
NONE |
Oui¹ | Profil inconnu ou pas de problème cardiaque |
LIGHT |
Oui¹ | Insuffisance cardiaque légère |
MODERATE |
Oui¹ | Insuffisance cardiaque modérée |
HEAVY |
Oui¹ | Insuffisance cardiaque importante |
CreatinineUnit (enum)
Exemple d'unité de créatinémie :
var creatinineUnit = Synapse.ProfileType.CreatinineUnit.UMOL_L;
var creatinineUnit = Synapse.ProfileType.CreatinineUnit.MG_L;
Unité de la valeur de créatinémie renseignée
Namespace Synapse.ProfileType.CreatinineUnit
Valeur | Requis | Description |
---|---|---|
UMOL_L |
Oui¹ | Micromole par litre |
MG_L |
Oui¹ | Milligramme par litre |
MG_DL |
Oui¹ | Milligramme par décilitre |
PatientSex (enum)
Exemple de sexe du patient
var patientSex = Synapse.ProfileType.Sex.FEMALE;
Sexe du patient
Namespace Synapse.ProfileType.Sex
Valeur | Requis | Description |
---|---|---|
FEMALE |
Oui¹ | Femme |
MALE |
Oui¹ | Homme |
ProfileHeadings (enum)
Exemple de blocs profile à ne pas afficher
var headingKidneyDamage = Synapse.ProfileType.HeadingsTheriaque.KIDNEY_DAMAGE;
Liste des blocs à ne pas afficher.
Namespace Synapse.Synapse.ProfileType.HeadingsTheriaque
Valeur | Requis | Description |
---|---|---|
AGE_SEX |
Non | Bloc sexe, date de naissance, poids et taille |
PREGNANCY_NURSING |
Non | Bloc situation : grossesse et allaitement |
KIDNEY_INSUFFICIENCY |
Non | Bloc insuffisance rénale |
KIDNEY_INSUFFICIENCY_CREATINEMIA |
Non | Input de la créatinine |
HEPATIC_INSUFFICIENCY |
Non | Bloc insuffisance hépatique |
CARDIAC_INSUFFICIENCY |
Non | Bloc insuffisance cardiaque |
ALLERGIES |
Non | Bloc allergies |
PATHOLOGIES |
Non | Bloc pathologies |
QuickExtractProviders (enum)
Exemple de providers :
var providerForm = Synapse.QuickExtractWidget.Providers.FORM;
var providerFileSystem = Synapse.QuickExtractWidget.Providers.FILE_SYSTEM;
var providerCamera = Synapse.QuickExtractWidget.Providers.CAMERA;
Permet de choisir quelle méthode d'import est activée afin d'extraire des traitements
Namespace Synapse.QuickExtractWidget.Providers
Valeur | Requis | Description |
---|---|---|
FORM |
Oui¹ | Import d'ordonnance par saisie de texte libre |
CAMERA |
Oui¹ | Import d'ordonnance par caméra |
FILE_SYSTEM |
Oui¹ | Import d'ordonnance par upload de fichier |
PrescriptionType (enum)
Valeur | Description |
---|---|
HEALTH_PRODUCT | Produit de santé |
BIOLOGY | Biologie |
IMAGING | Imagerie |
NURSING_CARE | Soins infirmiers |
PHYSIOTHERAPY | Kinésithérapie |
PODIATRY | Pédicurie |
SPEECH_THERAPY | Orthophonie |
ORTHOPTICS | Orthoptie |
OTHER | Autre |
SortMode (enum)
Valeur | Description |
---|---|
AS_ENTERED | Trié par ordre de saisie |
BY_ALD | ALD en premier |
CUSTOM | Tri personnalisé |
PrescriptionDurationUnit (enum)
Valeur | Description |
---|---|
DAY | Jour(s) |
WEEK | Semaine(s) |
MONTH | Mois |
DurationUnit (enum)
Valeur | Description |
---|---|
DAY | Jour(s) |
WEEK | Semaine(s) |
MONTH | Mois |
RenewalMode (enum)
Valeur | Description |
---|---|
times | Renouveller un certain nombre de fois |
frequency | Renouveller à une certaine fréquence |
PrescriptionLineType (enum)
Valeur | Description |
---|---|
BRANDED_DRUG | Spécialité médicamenteuse |
CLINICAL_DRUG | Médicament virtuel |
MEDICAL_DEVICE | Dispositif médical |
PARAPHARMACY | Parapharmacie |
COMPOUNDED_MEDICATION | Préparation magistrale |
COMMENT | Commentaire |
ADVICE | Conseil |
Prescription (object)
Champ | Requis | Type | Description |
---|---|---|---|
id | Oui | String | Identifiant unique (auto généré) |
type | Oui | PrescriptionType | Type de l’ordonnance |
title | Non | String | Titre de l’ordonnance |
category | Non | String | Catégorie de l’ordonnance |
date | Oui | Date | Date de début de l’ordonnance |
duration | Non | Number | Durée de l’ordonnance en mois |
durationUnit | Non | PrescriptionDurationUnits | Unité de durée de l’ordonnance |
hasToBeRenewed | Non | boolean | Ordonnance à renouveler |
timesToRenew | Non | Number | Nombre de renouvellement de l’ordonnance |
cost | Non | Number | Coût de l’ordonnance |
createdAt | Oui | Date | Date de création de l’ordonnance |
updateAt | Non | Date | Date de dernière mise à jour de l’ordonnance |
sortMode | Oui | SortMode | Mode de tri des lignes de l'ordonnance |
prescriptionLines | Oui | PrescriptionLine[] | Lignes de l’ordonnance |
additionalInfos | Oui | PrescriptionAdditionalInfos | Informations additionnelles de l’ordonnance |
PrescriptionAdditionalInfos (object)
Champ | Requis | Type | Description |
---|---|---|---|
workAccident | Non | Boolean | Accident du travail |
occupationDisease | Non | Boolean | Maladie professionnelle |
atHome | Non | String | À domicile |
emergency | Non | Boolean | Urgence |
prevention | Non | Boolean | Prévention |
PrescriptionLine (object)
Champ | Requis | Type | Description |
---|---|---|---|
id | Oui | String | Identifiant unique (auto généré) |
title | Non | String | Titre de la ligne, utilisé pour les favoris |
order | Oui | Number | Position de la ligne dans l’ordonnance |
type | Oui | PrescriptionLineType | Type de ligne |
entity | Non | Entity | Entité à laquelle correspond cette ligne |
entityPrescription | Non | EntityPrescription | Posologie associée à cette ligne |
isConvertedClinicalDrug | Non | Boolean | Définit s’il s’agit d’un médicament convertit en DCI |
freeText | Non | String | Utilisé pour les lignes n’ayant pas de posologie structurée (Conseil, Commentaire, …) |
isReimbursableCompoundedMedication | Non | Boolean | Définit s’il s’agit d’une préparation magistrale remboursée |
additionalInfos | Oui | PrescriptionLineAdditionalInfos | NonMedicatedPrecriptionLineAdditionnalInfos | Informations additionnelles de la ligne de prescription |
PrescriptionLineAdditionalInfos (object)
Champ | Requis | Type | Description |
---|---|---|---|
exception | Non | Boolean | Médicament d’exception |
stup | Non | Boolean | Médicament stupéfiant |
biosimilar | Non | Boolean | Médicament biosimilaire |
availableAsGeneric | Non | Boolean | Médicament disponible en générique |
aldReimbursed | Non | Boolean | Médicament remboursé dans le cadre d'une ALD |
maxDuration | Non | String | Durée maximale de prescription |
pR | Non | Boolean | Médicament à prescription restreinte |
prDetails | Non | String | Détails de la prescription restreinte |
refundable | Non | Boolean | Médicament remboursable |
refundDetails | Non | String | Détails du remboursement |
NonMedicatedPrecriptionLineAdditionnalInfos (object)
Champ | Requis | Type | Description |
---|---|---|---|
medicalInfo | Non | String | Informations médicales |
ald | Non | Boolean | Spécifie si la prescription concerne une ALD (Affection Longue Durée) |
workAccident | Non | Boolean | Spécifie si la prescription est en lien avec un accident du travail |
occupationalDisease | Non | Boolean | Spécifie si la prescription est en lien avec une maladie professionnelle |
emptyStomach | Non | Boolean | Spécifie si la prise doit être à jeun |
notRefundable | Non | Boolean | Spécifie si la prescription n’est pas remboursable |
nonListed | Non | Boolean | Spécifie si la prescription est hors nomenclature |
toRenew | Non | Boolean | Spécifie si la prescription est renouvelable |
toRenewDetails | Non | Object | Détails du renouvellement |
toRenewDetails.selected | Oui | RenewalMode | Mode de renouvellement |
toRenewDetails.times | Oui | Number | Nombre de renouvellements |
toRenewDetails.frequency | Oui | Number | Fréquence de renouvellement |
toRenewDetails.frequencyUnit | Oui | DurationUnit | Unité de fréquence de renouvellement |
SamAlert
Exemple d'alerte SAM
{
"code": "2022_0471",
"version": 1
}
Objet représentant une alerte SAM (Systèmes d'aide à la décision indexée par médicaments)
Champ | Requis | Type | Description |
---|---|---|---|
code | Oui | string | Code de l'alerte SAM |
version | Oui | number | Version de l'alerte SAM |
Personnalisation
L’ensemble des éléments (hors icônes) constituant l’apparence des widgets Synapse est paramétrable à travers plusieurs variables CSS définies.
Polices
Texte de base
De manière générale la police du texte des outils Synapse est déterminée par l’intermédiaire des trois variables suivantes:
--font-family-primary: 'Inter-regular'; // Détermine la police de base utilisée notamment par les corps de texte
--font-family-secondary: 'Inter-regular'; // Police secondaire, utilisée pour les éléments à mettre en valeur
--font-family-tertiary: 'Aeonik-regular'; // Police tertiaire, notamment utilisée pour les gros titres
Titres
Il est également possible de venir préciser une police pour chacune des tailles de titres existantes (h1, h2, h3, h4, et h5) à travers le paramétrage de 5 variables:
--h1-family: var(--font-family-tertiary); // Police des h1
--h2-family: var(--font-family-tertiary); // Police des h2
--h3-family: var(--font-family-tertiary); // Police des h3
--h4-family: var(--font-family-tertiary); // Police des h4
--h5-family: var(--font-family-tertiary); // Police des h5
Exemple
Ainsi il est possible de changer la police principale utilisée par un widget monté dans une div disposant de la classe CSS .mount-point de la manière suivante:
.mount-point {
--font-family-primary: "Comic Sans MS", "Comic Sans", cursive;
}
Taille du texte
Par défaut les tailles de texte dans les outils Synapse sont définis en rem, ce qui permet de facilement modifier la taille du texte de manière cohérente sur l’ensemble des vues. Les tailles de textes existantes sont définies à travers les variables CSS suivantes:
--text-25: 0.5rem; // Plus petite taille de texte disponible
--text-50: 0.75rem;
--text-75: 0.9rem;
--text-100: 1rem; // Taille du texte de base
--text-125: 1.14rem;
--text-150: 1.2rem;
--text-175: 1.7rem;
--text-200: 2.28rem; // Plus grande taille de texte disponible
Titres
Dans le cas des titres, les tailles de police sont définies à travers les variables suivantes:
--h1-size: var(--text-200); // Taille des titres h1
--h2-size: var(--text-175); // Taille des titres h2
--h3-size: var(--text-150); // Taille des titres h3
--h4-size: var(--text-125); // Taille des titres h4
--h5-size: var(--text-125); // Taille des titres h5
Exemple
De fait il est possible de modifier la taille de police des produits Synapse de deux manières:
- En modifiant la taille de base du texte de la page, ce qui impacte de manière équivalente l’ensemble des tailles de texte utilisées au sein de la page
:root {
font-size: 16px; // Modifie la taille de base (1rem) à 16px
}
- En modifiant une à une chacune des variables déterminant les tailles de texte. Ainsi dans le cadre d’un widget monté sur la classe CSS .mount-point
.mount-point {
--text-50: 10px;
--text-75: 1.3rem;
--h5-size: 4rem;
}
Couleurs
Les couleurs Synapse sont déterminée par trois grands ensembles de variables CSS. Afin de faire correspondre les widgets Synapse à votre marque, il peut notamment être intéressant de chercher à modifier les couleurs de marque présentées ci-dessous.
Les gris
L’ensemble des “gris” regroupe toutes les couleurs du noir au blanc, que l’on peut retrouver au sein de Synapse.
--grey-0: white; // Du "gris" le plus clair
--grey-25: #F2F3F4;
--grey-50: #E5E5E5;
--grey-75: #767676;
--grey-100: #171717; // Au "gris" le plus foncé
Les couleurs de marque
Les couleurs de marques rassemblent les teintes représentant la marque Synapse. Il existe 4 couleurs de marque principales, elles-mêmes découpées en 4 teintes distinctes.
// Couleur de marque principale
--brand-primary: #003753;
--brand-primary-light: #E8F0F5;
--brand-primary-medium: #00547E;
--brand-primary-dark: #002031;
// Couleur de marque secondaire
--brand-secondary: #97EDDD;
--brand-secondary-light: #EFFCFA;
--brand-secondary-medium: #9ff8e8;
--brand-secondary-dark: #50CDB7;
// Couleur de marque tertiaire
--brand-tertiary: #A954EB;
--brand-tertiary-light: #F5EAFF;
--brand-tertiary-medium: #a954eb;
--brand-tertiary-dark: #9749d3;
// Couleur de marque quaternaire
--brand-quaternary: #2FB5E8;
--brand-quaternary-light: #EEF9FD;
--brand-quaternary-medium: #30bbf1;
--brand-quaternary-dark: #2691bb;
Exemple
Ainsi, pour modifier la couleur de marque primaire, et la passer du “Bleu Synapse” à un violet profond, il est possible de procéder comme suit dans le cadre d’un widget monté au sein d’une div .mount-point
.mount-point {
--brand-primary: #6f4573;
--brand-primary-light: #B973BF;
--brand-primary-medium: #7B4D80;
--brand-primary-dark: #563659;
}