Cette section est essentiellement rédigée pour les développeurs. FreeDiams est programmé pour gérer plusieurs bases de données thérapeutiques. Pour ajouter une source de données, il vous suffit de créer une base de données répondant aux critères ci-dessous décrits sous SQLite.
Toutes les bases de données thérapeutiques doivent utiliser le schéma suivant pour leur nom de fichier :
- Pas de suffixe préfixé
- Nom de fichier 'drugs' interdit
- Extension obligatoire : db
- Exemple : drugs-france.db
Les base de données doivent comporter plusieurs tables liées entre elles par le biais de clés primaires.
Il existe pour chaque médicament un numéro d'identifiant unique (UID). Ce numéro d'identifiant unique peut posséder une dénomination particulière (CIS pour la France, PZN en Allemagne...). Cette dénomination peut être renseignée dans le table INFORMATIONS (cf infra).
Les différentes tables sont :
- DRUGS : contient l'UID, le nom commercial du médicament et des informations concernant sa commercialisation ;
- COMPOSITION : contient le descriptif des différentes molécules composant le médicament
- PACKAGING : contient le mode de présentation du traitement (la boîte)
Jusqu'à présent, FreeDiams ne prend pas en compte la table PACKAGING.
Schéma :
- UID : Identifiant unique des médicaments : le CIS en France (AFSSAPS)
- NAME : nom commercial du médicament
- FORM : forme du médicament (gélule, comprimé, gél...)
- ROUTE : voie d'administration
- ATC : code ATC du médicament
- GLOBAL_STRENGTH : contient le dosage global du médicament. N'est utilisé que pour construire le nom du médicament pour certaines bases de données. Voir aussi INFORMATIONS.DRUGS_NAME_CONSTRUCTOR.
- TYPE_MP (optionnel) : type d'AMM , schedule in CA
- AUTHORIZATION (optionnal) : type d'autorisation d'AMM
- MARKETED : commercialisé : Booléen :: Oui = 1 ; Non = 0
- LINK_SPC (optionnel) : lien internet vers le RPC
Un médicament peut contenir plusieurs molécules. Certaines molécules sont présentes sous une forme et métabolisées en une autre (voir NATURE, LK_NATURE).
Schéma:
- UID : Identifiant unique des médicaments : CIS en France
- MOLECULE_FORM : forme de la molécule (comprimé, gél...)
- MOLECULE_CODE : unique identifiant de la molécule
- MOLECULE_NAME : nom de la molécule
- DOSAGE : dosage de la molécule (ex : 10 mg)
- DOSAGE_REF : référence pour le dosage (ex : 1 cp == 10 mg par cp)
- SA (can be used as default value) : Active substance
- FT : Tranformed substance
- LK_NATURE :
Cette table est actuellement optionnelle.
Schéma :
- UID : UID du médicament (le CIS en France)
- PACKAGE_UID : Code principal (en France correspond au CIP court)
- LABEL : intitulé de la présentation
- STATUS
- Présentation active -> A
- Présentation abrogée -> B
- MARKETING
- Déclaration d'arrêt de commercialisation -> A
- Déclaration de commercialisation non communiquée -> N
- Déclaration de commercialisation -> C
- Déclaration de suspension de commercialisation -> S
- DATE : most recent commercial update
- OPTIONAL_CODE: Code optionnel (en France correspond au CIP long)
Schema :
- VERSION : Version of the db (please be read the page : Comprendre les numéros de version de l'application). See this as a primary key. FreeDiams will read the first selected row of the database as database informations.
- NAME : Name of the database to display to the user. Translations are supported using syntax 'two-character ISO language code=name', unquoted, without any egal sign in the name and with line breaks delimiting multiple languages (see below).
fr=French name
en=English name
sp=Spanish
de=Deutsch
xx=All other languages
- IDENTIFIANT : unique identifiant for FreeDiams.
- This identifiant must be unique for all drugs databases provided for FreeDiams
- French AFFSSAPS database = "FR_AFSSAPS"
- FDA database = "USA_FDA";
- Canadian database = "CANADIAN";
- COMPAT_VERSION : FreeDiams application version dependency
- PROVIDER : Provider of the datas (eg FDA)
- WEBLINK : Web site of the provider
- AUTHOR : Author of the database (eg Me)
- LICENSE :
- DATE : Date of release; format MUST BE formatted : yyyy-MM-dd
- DRUG_UID_NAME : Name to use for the drug UID
- PACK_MAIN_CODE_NAME : Name to for the packaging main code
- ATC : boolean ; ATC is available for each drugs in the database
- INTERACTIONS : boolean : manages interactions
- AUTHOR_COMMENTS : place to hold your comment
- LANGUAGE_COUNTRY : language and country specificity. Format = language_country where :
- language is a lowercase, two-letter, ISO 639 language code,
- territory is an uppercase, two-letter, ISO 3166 country code,
- and codeset and modifier are ignored.
- DRUGS_NAME_CONSTRUCTOR : string to use for the drug name construction. Some tokens will be replaced by their values. You can use these tokens :
- NULL value is replaced by "NAME" only
- "NAME" : for the name of the drug ( == DRUGS.NAME)
- "FORM" : for the name of the drug ( == DRUGS.FORM)
- "ROUTE" : for the name of the drug ( == DRUGS.ROUTE)
- "GLOBAL_STRENGTH" : for the name of the drug ( == DRUGS.GLOBAL_STRENGTH)
- Eg : NAME, FORM (GLOBAL_STRENGTH) == AMOXICILLINE, TABLETS (1g)
- Eg : NAME, FORM, ROUTE -- GLOBAL_STRENGTH == AMOXICILLINE, TABLETS, ORAL -- 1g
Jusqu'à présent la base de données des interactions n'est disponible qu'en français. Une équipe de traducteur pourrait assurer les versions anglaises et allemandes.
This part need to be clarified...
Les base de données sont présentes dans le répertoire /Resources/databases/drugs.
Le nom doit être formaté de la sorte : drugs-XX.db où XX correspond au code ISO du pays : fr, us, de, sp...
CREATE TABLE IF NOT EXISTS `DRUGS` (
`UID` int(11) NOT NULL,
`NAME` varchar(1000) NOT NULL,
`FORM` varchar(500),
`ROUTE` varchar(100),
`ATC` varchar(7),
`GLOBAL_STRENGTH` varchar(40),
`TYPE_MP` varchar(1),
`AUTHORIZATION` varchar(1),
`MARKETED` bool NOT NULL DEFAULT 1,
`LINK_SPC` varchar(250)
);
CREATE TABLE IF NOT EXISTS `COMPOSITION` (
`UID` int(10) NOT NULL,
`MOLECULE_FORM` varchar(100),
`MOLECULE_CODE` int(11) NOT NULL,
`MOLECULE_NAME` varchar(200) NOT NULL,
`DOSAGE` varchar(100) NOT NULL,
`DOSAGE_REF` varchar(50) NOT NULL,
`NATURE` varchar(2) NOT NULL DEFAULT "SA",
`LK_NATURE` int(11) NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS `PACKAGING` (
`UID` int(11) NOT NULL,
`PACKAGE_UID` int(20) NOT NULL,
`LABEL` varchar(500) NOT NULL,
`STATUS` varchar(1),
`MARKETING` int(1) NOT NULL DEFAULT 1,
`DATE` varchar(25),
`OPTIONAL_CODE` int(20)
);
CREATE TABLE IF NOT EXISTS `INFORMATIONS` (
`VERSION` varchar(10),
`NAME` varchar(2000),
`IDENTIFIANT` varchar(50),
`COMPAT_VERSION` varchar(10),
`PROVIDER` varchar(200),
`WEBLINK` varchar(500),
`AUTHOR` varchar(200),
`LICENSE` varchar(1000),
`LICENSE_TERMS` varchar(10000),
`DATE` varchar(20),
`DRUG_UID_NAME` varchar(50),
`PACK_MAIN_CODE_NAME` varchar(50),
`ATC` bool NOT NULL,
`INTERACTIONS` bool NOT NULL DEFAULT FALSE,
`AUTHOR_COMMENTS` varchar(10000),
`LANGUAGE_COUNTRY` varchar(5),
`DRUGS_NAME_CONSTRUCTOR` varchar(200)
);
CREATE TABLE IF NOT EXISTS `IAM_DENOMINATION` (
`ID_DENOMINATION` int(10) NOT NULL ,
`DENOMINATION` varchar( 200 ) NOT NULL
);
CREATE TABLE IF NOT EXISTS `IAM_IMPORT` (
`IAM_ID` INTEGER PRIMARY KEY,
`ID1` int(10) NOT NULL ,
`ID2` int(10) NOT NULL ,
`TYPE` INT UNSIGNED NOT NULL ,
`TEXT_IAM` VARCHAR( 2000 ) NULL ,
`TEXT_CAT` VARCHAR( 2000 ) NULL
);
CREATE TABLE IF NOT EXISTS `ATC` (
`ID` INTEGER PRIMARY KEY,
`CODE` VARCHAR(7) NULL ,
`ENGLISH` VARCHAR(127) NULL ,
`FRENCH` VARCHAR(127) NULL
);
Manuel de l'utilisateur - FreeDiams