Calcium V2

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Section
Colonne
width70%

Préambule

La version 1.0.10 (0101 - Historique des versions) nécessite une modification de la base de données et donc le passage de script SQL.

De plus il faut ajouter les éléments supplémentaires présents dans le context.xml (2221 - Paramétrage applicatif)

 

Astuce
Assurez vous de bien tester ces scripts en test avant de passer en production.

 

Paramètres supplémentaires

Ajout dans le fichier context.xml du paramètre MesVaccins.net

 2221 - Paramétrage applicatif

 

Scripts SQL

Script de mise en conformité

Il se peut que ces valeurs soient déjà conforme dans votre installation. Ne pas en tenir compte le cas échéant.

Bloc de code
titleScript pour la version 1.0.10
languagesql
ALTER TABLE consultation CHANGE COLUMN COMMENTAIRES COMMENTAIRES VARCHAR(500) DEFAULT NULL;
ALTER TABLE precisionmotif ADD INDEX ID_CSL (ID_CSL);
ALTER TABLE precisionmotif ADD INDEX ID_IN (ID_IN);

 

Script concernant la fonctionnalité de la gestion des CIM

Bloc de code
titleScript gestion CIM
languagesql
INSERT INTO `droit` (`COD_DRO`, `LIB_DRO`) VALUES ('DA_CIM', 'Gestion des synonymes CIM');

 

Scripts concernant la fonctionnalité de gestion des doublons

Vous pouvez utiliser le fichier suivant Create_Doublon.sql et mettre à jour la base de données Calcium.

Bloc de code
titleScripts SQL pour la version 1.0.10
languagesql
collapsetrue
-- Ajout d'un attribut dans la table Recherche
ALTER TABLE `recherche` ADD COLUMN `DAT_TMT_DBL` DATE NULL DEFAULT NULL COMMENT 'Date de traitement pour doublons' AFTER `DATE_CONVOC_VACCIN`;

-- Ajout du batch

INSERT INTO `batch` (`cod_batch`, `lib_batch`, `tes_batch`, `tem_is_launch_imedia_batch`, `tem_lundi_batch`, `tem_mardi_batch`, `tem_mercr_batch`, `tem_jeudi_batch`, `tem_vendredi_batch`, `tem_samedi_batch`, `tem_diman_batch`, `fixe_hour_batch`, `fixe_day_batch`, `fixe_month_batch`, `fixe_year_batch`, `last_dat_execution_batch`) VALUES ('DOUBLONS', 'Gestions des doublons', 1, 0, b'1', b'0', b'0', b'0', b'1', b'0', b'0', '03:00:00', NULL, NULL, NULL, NULL);

-- Ajout du droit de gestion des doublons

INSERT INTO `droit` (`COD_DRO`, `LIB_DRO`) VALUES ('DA_DBL', 'Gestion des doublons');

-- Création des tables

CREATE TABLE `doublon` (
	`ID_DBL` INT(11) NOT NULL AUTO_INCREMENT,
	`ID_REC1` INT(11) NOT NULL,
	`ID_REC2` INT(11) NOT NULL,
	`STATUT` VARCHAR(50) NULL DEFAULT NULL,
	`DAT_CRE_STAT` DATE NULL DEFAULT NULL,
	`UTI_CRE_STAT` INT(11) NULL DEFAULT NULL,
	`DAT_CRE` DATE NULL DEFAULT NULL,
	PRIMARY KEY (`ID_DBL`),
	INDEX `FK_doublon_recherche` (`ID_REC1`),
	INDEX `FK_doublon_recherche_2` (`ID_REC2`),
	INDEX `FK_doublon_utilisateur` (`UTI_CRE_STAT`),
	CONSTRAINT `FK_doublon_utilisateur` FOREIGN KEY (`UTI_CRE_STAT`) REFERENCES `utilisateur` (`ID_UTI`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;

CREATE TABLE `critere` (
	`ID_CRIT` INT(11) NOT NULL AUTO_INCREMENT,
	`COD_CRIT` VARCHAR(25) NULL DEFAULT NULL,
	`LIB_CRIT` VARCHAR(100) NOT NULL DEFAULT '',
	PRIMARY KEY (`ID_CRIT`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;

INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('INE', 'INE identique');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('NPD', 'Nom, prénom, date naissance identiques');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('PD_LN1', 'Prénom et date naissance identiques, nom identique à 1 lettre près ');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('NP_LD', 'Nom et prénom identiques, date naissance identique à 1 lettre près');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('ND_LP1', 'Nom et date naissance identiques, prénom identique à 1 lettre près');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('NC', 'Nom et prénom inversés');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('PD_LN2', 'Prénom et date naissance identiques, nom identique à 2 lettres près ');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('ND_LP2', 'Nom et date naissance identiques, prénom identique à 2 lettre près');
INSERT INTO `critere` (`COD_CRIT`, `LIB_CRIT`) VALUES ('MANU', 'Ajout manuel');

CREATE TABLE `doublon_critere` (
	`ID_DBL` INT(11) NOT NULL,
	`ID_CRIT` INT(11) NOT NULL,
	PRIMARY KEY (`ID_DBL`, `ID_CRIT`),
	INDEX `FK doublon` (`ID_DBL`),
	INDEX `FK critere` (`ID_CRIT`),
	CONSTRAINT `FK2_critere` FOREIGN KEY (`ID_CRIT`) REFERENCES `critere` (`ID_CRIT`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;


Vous pouvez utiliser le fichier suivant Fonction_Levenshtein.sql et mettre à jour la base de données Calcium.

Avertissement

Il est conseillé d'avoir les droits d'administrateur sur la base de données pour pouvoir créer une nouvelle fonction.


Bloc de code
titleScript pour la version 1.0.10
collapsetrue
-- Ajout de la fonction Levenshtein

DELIMITER $$
CREATE FUNCTION levenshtein( s1 VARCHAR(255), s2 VARCHAR(255) )
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE s1_len, s2_len, i, j, c, c_temp, cost INT;
DECLARE s1_char CHAR;
-- max strlen=255
DECLARE cv0, cv1 VARBINARY(256);
SET s1_len = CHAR_LENGTH(s1), s2_len = CHAR_LENGTH(s2), cv1 = 0x00, j = 1, i = 1, c = 0;
IF s1 = s2 THEN
RETURN 0;
ELSEIF s1_len = 0 THEN
RETURN s2_len;
ELSEIF s2_len = 0 THEN
RETURN s1_len;
ELSE
WHILE j <= s2_len DO
SET cv1 = CONCAT(cv1, UNHEX(HEX(j))), j = j + 1;
END WHILE;
WHILE i <= s1_len DO
SET s1_char = SUBSTRING(s1, i, 1), c = i, cv0 = UNHEX(HEX(i)), j = 1;
WHILE j <= s2_len DO
SET c = c + 1;
IF s1_char = SUBSTRING(s2, j, 1) THEN
SET cost = 0; ELSE SET cost = 1;
END IF;
SET c_temp = CONV(HEX(SUBSTRING(cv1, j, 1)), 16, 10) + cost;
IF c > c_temp THEN SET c = c_temp; END IF;
SET c_temp = CONV(HEX(SUBSTRING(cv1, j+1, 1)), 16, 10) + 1;
IF c > c_temp THEN
SET c = c_temp;
END IF;
SET cv0 = CONCAT(cv0, UNHEX(HEX(c))), j = j + 1;
END WHILE;
SET cv1 = cv0, i = i + 1;
END WHILE;
END IF;
RETURN c;
END$$
DELIMITER ;

 

Script concernant la mise en place du module MesVaccins.net

Vous pouvez utiliser le fichier suivant UpdateBddCalciumMesVaccins.sql et mettre à jour la base de données Calcium.

Bloc de code
titleScripts SQL pour la version 1.0.10
languagesql
collapsetrue
-- Create Table CVE
CREATE TABLE mv_cve (
  ID INT(11) NOT NULL AUTO_INCREMENT,
  UUID VARCHAR(255) NOT NULL,
  DAT_MOD_MV TIMESTAMP NULL DEFAULT NULL,
  DAT_MOD_CALCIUM TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (ID),
  UNIQUE INDEX `unique` (UUID)
);
  
-- Create Table mvVaccin
CREATE TABLE mv_vaccin (
  ID INT(11) NOT NULL,
  DISPOFRANCE TINYINT(1) DEFAULT 0,
  LIBELLE VARCHAR(255) DEFAULT NULL,
  NOMS LONGTEXT DEFAULT NULL,
  PRIMARY KEY (ID)
);

-- Table VACCIN :
ALTER TABLE vaccin ADD COLUMN MV_VACCIN_ID INT(11) DEFAULT NULL AFTER TYP_VAC;
ALTER TABLE vaccin ADD UNIQUE INDEX IDX_UNIQUE_MV (MV_VACCIN_ID, TEM_SERVICE);
ALTER TABLE vaccin ADD CONSTRAINT FK_ID_MVVACCIN FOREIGN KEY (MV_VACCIN_ID) REFERENCES mv_vaccin(ID) ON DELETE SET NULL ON UPDATE RESTRICT;


-- Table vaccination
ALTER TABLE vaccination ADD COLUMN RAPPEL TINYINT(1) NOT NULL DEFAULT '0' AFTER ETAT;
ALTER TABLE vaccination ADD COLUMN TEM_SYNC TINYINT(1) NULL DEFAULT NULL COMMENT 'synchro avec mv (null = impossible)' AFTER TEM_LIEN_CONTROLE;
ALTER TABLE vaccination ADD COLUMN ID_MES_VACCINS INT NULL AFTER TEM_SYNC;
ALTER TABLE vaccination CHANGE COLUMN TEM_LIEN_CONTROLE TEM_LIEN_CONTROLE TINYINT(1) NOT NULL DEFAULT '0';

-- Table recherche
ALTER TABLE recherche ADD ID_CVE INT(11) NULL DEFAULT NULL AFTER DATE_CONVOC_VACCIN, ADD UNIQUE IDX_ID_CVE (ID_CVE);
ALTER TABLE recherche ADD CONSTRAINT FK_ID_MVCVE FOREIGN KEY (ID_CVE) REFERENCES mv_cve(ID) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE recherche ADD UNIQUE INDEX fk_Recherche_COD_REC_idx (COD_REC);

-- Table Maladie
ALTER TABLE maladie CHANGE COLUMN TEM_SERVICE TEM_SERVICE TINYINT(1) NOT NULL DEFAULT '0';

-- Table Batch
INSERT INTO batch  VALUES ('MES_VACCINS', 'import des vaccins issus de mesvaccins.net', 1, 0, 0, 0, 0, 0, 0, 0, 0, '07:00:00', null, null, null, null);

 

 

Colonne
Volet
titleDans cette page

Sommaire
 

Volet
titleEn savoir plus

Affichage enfants