Schéma de la base de données thérapeutique de FreeDiams

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.

La base de données thérapeutiques

Nom de fichier pour la base de données thérapeutiques

Toutes les bases de données thérapeutiques doivent utiliser le schéma suivant pour leur nom de fichier :

Les tables de la base de données

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 :

Jusqu'à présent, FreeDiams ne prend pas en compte la table PACKAGING.

La table DRUGS

Schéma :

La table COMPOSITION

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:

La table PACKAGING

Cette table est actuellement optionnelle.

Schéma :

La table INFORMATIONS

Schema :

Base de données des interactions

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.

Table IAM

Table IAM

This part need to be clarified...

Informations concernant la base de données

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.dbXX correspond au code ISO du pays : fr, us, de, sp...

Schéma SQL : Base de données thérapeutique

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)
);

Schéma SQL : Base de données interactions

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