Commit 5603fb1e authored by Théo GUILLON's avatar Théo GUILLON
Browse files

Ajout : migration donnée coresponsable de la table valeur à la table coresponsable

parent e9db3348
......@@ -181,6 +181,7 @@ INSERT INTO normes (norme, numero, libelle, description, name_fichier, fichier,
('MR', '006', 'Études nécessitant l’accès aux données du PMSI par les industriels de santé', 'La MR 006 encadre l’accès par des industriels de santé aux données du Programme de médicalisation des systèmes d''information (PMSI) de l’Agence technique de l’information sur l’hospitalisation (ATIH) mises à disposition via une solution sécurisée. Les responsables de traitement ont l’obligation de documenter les projets menés dans le registre des activités de traitement. Les études menées doivent présenter un caractère d’intérêt public et aucun appariement avec d’autres données à caractère personnel n’est possible. Les responsables de traitement doivent enregistrer leurs traitements auprès d’un répertoire public tenu par l’INDS. Les industriels devront recourir à un bureau d’études/laboratoires de recherches ayant réalisé un engagement de conformité au référentiel fixé par l’arrêté du 17 juillet 2017 auprès de la CNIL. Ils devront également faire réaliser un audit indépendant tous les 3 ans sur l’utilisation des données et le respect de l’interdiction des finalités interdites.', 'MR-006.pdf', '1584952271.pdf', NOW(), NOW()),
('RS', '001', 'Gestion des vigilances sanitaires', 'Le référentiel « RS-001 » encadre les traitements de données à caractère personnel mis en œuvre à des fins de gestion des vigilances sanitaires. Ce référentiel s’applique à l’ensemble des vigilances sanitaires visées par l''arrêté du 27 février 2017 fixant la liste des catégories d''événements sanitaires indésirables pour lesquels la déclaration ou le signalement peut s''effectuer au moyen du portail de signalement des événements sanitaires indésirables (pharmacovigilance, cosmétovigilance, addictovigilance, hémovigilance, etc.) . Seuls les fabricants, entreprises, exploitants, organismes responsables de la mise sur le marché d''un médicament, d''un dispositif ou d''un produit peuvent effectuer un engagement de conformité au référentiel « RS-001 ». Ce référentiel ne couvre pas les traitements mis en œuvre par les professionnels de santé et les systèmes ou services de soins de santé (p. ex. : établissements de santé, maisons de santé, centres de santé, agences sanitaires, etc.).', 'RS-001.pdf', '1584952286.pdf', NOW(), NOW());
-- Typages des annexes
INSERT INTO liste_droits (libelle, value, created, modified) VALUES
('Gestion du typage des annexes', 32, NOW(), NOW());
......@@ -217,11 +218,11 @@ CREATE TABLE coresponsables (
id serial NOT NULL PRIMARY KEY,
fiche_id INTEGER NOT NULL REFERENCES fiches(id) ON DELETE CASCADE ON UPDATE CASCADE,
responsable_id INTEGER NOT NULL,
nomresponsable VARCHAR(50) NOT NULL,
prenomresponsable VARCHAR(50) NOT NULL,
emailresponsable VARCHAR(75) NOT NULL,
telephoneresponsable VARCHAR(15) NOT NULL,
fonctionresponsable VARCHAR(75) NOT NULL,
nomcoresponsable VARCHAR(50) NOT NULL,
prenomcoresponsable VARCHAR(50) NOT NULL,
fonctioncoresponsable VARCHAR(75) NOT NULL,
emailcoresponsable VARCHAR(75) NOT NULL,
telephonecoresponsable VARCHAR(15) NOT NULL,
raisonsocialestructure VARCHAR(75) NOT NULL,
siretstructure VARCHAR(14) NOT NULL,
apestructure VARCHAR(5) NOT NULL,
......@@ -232,13 +233,52 @@ CREATE TABLE coresponsables (
created timestamp without time zone NOT NULL,
modified timestamp without time zone NOT NULL
);
CREATE UNIQUE INDEX coresponsables_siretstructure_idx ON coresponsables (siretstructure);
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_emailresponsable_email_chk CHECK ( cakephp_validate_email( emailcoresponsable ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_telephoneresponsable_phone_chk CHECK ( cakephp_validate_phone( telephonecoresponsable, NULL, 'fr' ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_apestructure_alpha_numeric_chk CHECK ( cakephp_validate_alpha_numeric( apestructure ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_telephonestructure_phone_chk CHECK ( cakephp_validate_phone( telephonestructure, NULL, 'fr' ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_faxstructure_phone_chk CHECK ( cakephp_validate_phone( faxstructure, NULL, 'fr' ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_emailstructure_email_chk CHECK ( cakephp_validate_email( emailstructure ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_telephoneresponsable_phone_chk CHECK ( cakephp_validate_phone( telephoneresponsable, NULL, 'fr' ) );
ALTER TABLE coresponsables ADD CONSTRAINT coresponsables_emailresponsable_email_chk CHECK ( cakephp_validate_email( emailresponsable ) );
INSERT INTO coresponsables (
fiche_id,
responsable_id,
nomcoresponsable,
prenomcoresponsable,
fonctioncoresponsable,
emailcoresponsable,
telephonecoresponsable,
raisonsocialestructure,
siretstructure,
apestructure,
telephonestructure,
faxstructure,
adressestructure,
emailstructure,
created,
modified
)
SELECT
fiches.id,
fiches.coresponsableid,
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'nomcoresponsable' LIMIT 1) AS "nomcoresponsable",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'prenomcoresponsable' LIMIT 1) AS "prenomcoresponsable",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'fonctioncoresponsable' LIMIT 1) AS "fonctioncoresponsable",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'emailcoresponsable' LIMIT 1) AS "emailcoresponsable",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'telephonecoresponsable' LIMIT 1) AS "telephonecoresponsable",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'raisonsocialestructure' LIMIT 1) AS "raisonsocialestructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'siretstructure' LIMIT 1) AS "siretstructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'apestructure' LIMIT 1) AS "apestructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'telephonestructure' LIMIT 1) AS "telephonestructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'faxstructure' LIMIT 1) AS "faxstructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'adressestructure' LIMIT 1) AS "adressestructure",
(SELECT valeurs.valeur FROM valeurs WHERE valeurs.fiche_id = fiches.id AND valeurs.champ_name = 'emailstructure' LIMIT 1) AS "emailstructure",
NOW(),
NOW()
FROM fiches
WHERE
fiches.coresponsableid IS NOT NULL ;
COMMIT;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment