You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1972 lines
82 KiB

<?xml version="1.0" encoding="ISO-8859-1"?>
<DBSETUPDATA softCode="iCTI_activite" schema="activite">
<!-- SCHEMA "BASE" -->
<TABLE name="p_calendrier" label="Calendrier" schema="base" />
<TABLE name="p_calendrier_mois" label="Calendrier (mois)" schema="base" />
<TABLE name="t_modes_traitement" label="Modes de traitement" schema="base" />
<TABLE name="t_classification_atc" label="Classification ATC" schema="base" />
<TABLE name="t_dmt" label="DMT" schema="base" />
<TABLE name="t_gestes_marqueurs" label="Gestes marqueurs" schema="base" />
<TABLE name="t_ccam_regroupements" label="Regroupements CCAM" schema="base" />
<TABLE name="t_actes" label="Actes" schema="base" />
<TABLE name="t_cmd" label="CMD" schema="base" />
<TABLE name="t_mco" label="Aso" schema="base" />
<TABLE name="t_cas" label="CAS" schema="base" />
<TABLE name="t_poles_oap" label="Poles OAP" schema="base" />
<TABLE name="t_lignes_oap" label="Lignes OAP" schema="base" />
<TABLE name="t_groupes_activite" label="Groupes d'activité" schema="base" />
<TABLE name="t_severites_ghm" label="Complexités des GHM" schema="base" />
<TABLE name="t_codes_postaux" label="Codes postaux" schema="base"/>
<TABLE name="t_departements" label="Départements" schema="base" />
<TABLE name="t_territoires_sante" label="Territoires de santé" schema="base" />
<TABLE name="t_codes_geographiques_pmsi" label="Codes géographiques PMSI" schema="base" />
<TABLE name="t_ghm5" label="GHM (5)" schema="base" />
<TABLE name="t_ghm" label="GHM" schema="base" />
<TABLE name="t_ghs" label="GHS" schema="base" />
<TABLE name="t_ghs_tarifs" label="Tarifs GHS" schema="base" />
<TABLE name="t_grands_regimes" label="Grands régimes" schema="base" />
<TABLE name="t_durees_sejour" label="Durées de séjour" schema="base" />
<TABLE name="t_ages" label="Ages" schema="base" />
<TABLE name="t_prestataires" label="Prestataires" schema="base" />
<!-- SCHEMA "ACTIVITE" -->
<TABLE name="t_forme_activite" label="Formes d'activité">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte,
texte_court
FROM activite.t_forme_activite
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_forme_activite SET
code = w_dbsetup.code,
texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court
FROM w_dbsetup
WHERE w_dbsetup.oid = t_forme_activite.oid AND w_dbsetup.oid = 0;
UPDATE activite.t_forme_activite SET
texte = w_dbsetup.texte,
texte_court = w_dbsetup.texte
FROM w_dbsetup
WHERE activite.t_forme_activite.code = w_dbsetup.code AND
(
activite.t_forme_activite.texte IS DISTINCT FROM w_dbsetup.texte OR
activite.t_forme_activite.texte_court IS DISTINCT FROM w_dbsetup.texte_court
)
;
INSERT INTO activite.t_forme_activite(oid, code, texte, texte_court)
SELECT oid, code, texte, texte_court
FROM w_dbsetup
WHERE oid = 0 AND
oid NOT IN (SELECT oid FROM activite.t_forme_activite)
;
INSERT INTO activite.t_forme_activite(code, texte, texte_court)
SELECT code, texte, texte_court
FROM w_dbsetup
WHERE oid <> 0 AND
code NOT IN (SELECT code FROM activite.t_forme_activite WHERE code IS NOT NULL)
;
SELECT activite.cti_update_schema_classes('FORMEACTIVITE');
]]></updateCmd>
</TABLE>
<TABLE name="t_etat_sejour" label="Etat des séjours">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte
FROM activite.t_etat_sejour
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_etat_sejour SET
code = w_dbsetup.code,
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE w_dbsetup.oid = t_etat_sejour.oid AND w_dbsetup.oid = 0;
UPDATE activite.t_etat_sejour SET
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_etat_sejour.code = w_dbsetup.code
AND activite.t_etat_sejour.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_etat_sejour(oid, code, texte)
SELECT oid, code, texte
FROM w_dbsetup
WHERE 1=1
AND oid = 0
AND oid NOT IN (SELECT oid FROM activite.t_etat_sejour)
;
INSERT INTO activite.t_etat_sejour(code, texte)
SELECT code, texte
FROM w_dbsetup
WHERE 1=1
AND oid <> 0
AND code NOT IN (SELECT code FROM activite.t_etat_sejour)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_prestations" label="Prestations hospitalières">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte,
texte_court,
norme
FROM activite.t_prestations
WHERE norme = 'B2' OR oid = 0
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_prestations SET
code = w_dbsetup.code,
texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court
FROM w_dbsetup
WHERE w_dbsetup.oid = t_prestations.oid AND w_dbsetup.oid = 0;
UPDATE activite.t_prestations SET
texte = w_dbsetup.texte,
texte_court = w_dbsetup.texte,
norme = 'B2'
FROM w_dbsetup
WHERE 1=1
AND activite.t_prestations.code = w_dbsetup.code
AND activite.t_prestations.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_prestations(oid, code, texte, texte_court, norme)
SELECT oid, code, texte, texte_court, norme
FROM w_dbsetup
WHERE 1=1
AND oid = 0
AND oid NOT IN (SELECT oid FROM activite.t_prestations)
;
INSERT INTO activite.t_prestations(code, texte, texte_court, norme)
SELECT code, texte, texte_court, norme
FROM w_dbsetup
WHERE 1=1
AND oid <> 0
AND code NOT IN (SELECT code FROM activite.t_prestations)
;
SELECT activite.cti_update_schema_classes('PRESTA_C');
]]></updateCmd>
</TABLE>
<TABLE name="t_listes_tables" label="Tables pour les listes">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
name,
texte,
select_cmd,
code
FROM activite.t_listes_tables
ORDER BY code
;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_listes_tables SET code = 'PRESTA_C_B' WHERE oid =
(SELECT MIN(oid) FROM activite.t_listes_tables WHERE code = 'PRESTA_C')
AND (SELECT count(*) FROM activite.t_listes_tables WHERE code = 'PRESTA_C') > 1;
UPDATE activite.t_listes SET table_id = (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C')
WHERE table_id IN (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B');
DELETE FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B';
UPDATE activite.t_listes_tables SET
code = w_dbsetup.code,
texte = w_dbsetup.texte,
select_cmd = w_dbsetup.select_cmd,
name = w_dbsetup.name
FROM w_dbsetup
WHERE t_listes_tables.code = w_dbsetup.code;
INSERT INTO activite.t_listes_tables(oid, code, name, texte, select_cmd)
SELECT oid, code, name, texte, select_cmd FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM activite.t_listes_tables);
INSERT INTO activite.t_listes_tables(code, name, texte, select_cmd)
SELECT code, name, texte, select_cmd FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_listes_tables);
]]></updateCmd>
</TABLE>
<TABLE name="t_listes" label="Listes de codes">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_listes.oid = 0 THEN t_listes.oid ELSE 1 END AS oid,
t_listes.texte,
t_listes.chapitre,
t_listes.code,
t_listes.is_cti,
t_listes.show_omit,
'CTI'::text AS utilisateur_createur,
t_listes.est_partagee_modification,
t_listes_tables.name as table_name,
t_listes.contenu_by_code,
t_listes.exclude_code,
t_listes.include_code,
t_listes.contenu_non_replicable_ailleurs
FROM activite.t_listes, activite.t_listes_tables
WHERE (is_cti = '1' OR t_listes.code LIKE 'CTI_%') and table_id = t_listes_tables.oid
ORDER BY 4
;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_listes SET
texte = w_dbsetup.texte,
chapitre = w_dbsetup.chapitre,
table_id = t_listes_tables.oid,
is_cti = w_dbsetup.is_cti,
show_omit = w_dbsetup.show_omit,
-- contenu_by_code = w_dbsetup.contenu_by_code,
exclude_code = w_dbsetup.exclude_code,
include_code = w_dbsetup.include_code,
contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs
FROM w_dbsetup, activite.t_listes_tables
WHERE 1=1
AND w_dbsetup.table_name = t_listes_tables.name
AND t_listes.code = w_dbsetup.code
;
INSERT INTO activite.t_listes(code, texte, chapitre, table_id, is_cti, show_omit, contenu_by_code, exclude_code, include_code, contenu_non_replicable_ailleurs)
SELECT w_dbsetup.code, w_dbsetup.texte, w_dbsetup.chapitre, t_listes_tables.oid, w_dbsetup.is_cti, w_dbsetup.show_omit, w_dbsetup.contenu_by_code, w_dbsetup.exclude_code, w_dbsetup.include_code, w_dbsetup.contenu_non_replicable_ailleurs
FROM w_dbsetup, activite.t_listes_tables
WHERE w_dbsetup.table_name = t_listes_tables.name AND w_dbsetup.code NOT IN (SELECT code FROM activite.t_listes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%'
;
DELETE FROM activite.t_listes WHERE texte like '*SUPPRIME%' AND is_cti = '1'
;
]]></updateCmd>
</TABLE>
<TABLE name="t_classes" label="Classifications Activité">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_classes.oid = 0 THEN t_classes.oid ELSE 1 END AS oid,
t_classes.code,
t_classes.texte,
t_classes.is_cti,
t_classes.sequence,
t_listes_tables.code as table_code,
t_classes.contenu_by_code,
t_classes.contenu_non_replicable_ailleurs
FROM
activite.t_classes,
activite.t_listes_tables
WHERE 1=1
AND (is_cti = '1' OR t_classes.code ilike 'CTI_%')
AND table_id = t_listes_tables.oid
ORDER BY t_classes.code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_classes SET
code = w_dbsetup.code,
texte = w_dbsetup.texte,
table_id = t_listes_tables.oid,
is_cti = w_dbsetup.is_cti,
contenu_by_code = w_dbsetup.contenu_by_code,
contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs
FROM
w_dbsetup,
activite.t_listes_tables
WHERE 1=1
AND w_dbsetup.table_code = t_listes_tables.code
AND t_classes.sequence = w_dbsetup.sequence
AND t_classes.table_id = t_listes_tables.oid
AND (1!=1
OR t_classes.code IS DISTINCT FROM w_dbsetup.code
OR t_classes.texte IS DISTINCT FROM w_dbsetup.texte
OR t_classes.table_id IS DISTINCT FROM t_listes_tables.oid
OR t_classes.is_cti IS DISTINCT FROM w_dbsetup.is_cti
OR t_classes.contenu_by_code IS DISTINCT FROM w_dbsetup.contenu_by_code
OR t_classes.contenu_non_replicable_ailleurs IS DISTINCT FROM w_dbsetup.contenu_non_replicable_ailleurs)
;
INSERT INTO activite.t_classes(code, texte, table_id, is_cti, sequence, contenu_by_code, contenu_non_replicable_ailleurs)
SELECT
w_dbsetup.code,
w_dbsetup.texte,
t_listes_tables.oid,
w_dbsetup.is_cti,
w_dbsetup.sequence,
w_dbsetup.contenu_by_code,
w_dbsetup.contenu_non_replicable_ailleurs
FROM
w_dbsetup,
activite.t_listes_tables
WHERE 1=1
AND w_dbsetup.table_code = t_listes_tables.code
AND t_listes_tables.oid::text || '-' || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM activite.t_classes)
AND w_dbsetup.texte NOT LIKE '*SUPPRIME%'
;
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections" label="Classifications Activité (sections)">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_classes_sections.oid = 0 THEN t_classes_sections.oid ELSE 1 END AS oid,
t_classes_sections.code,
t_classes_sections.texte,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence,
t_classes_sections.condition,
t_classes_sections.exclude_code,
t_classes_sections.include_code
FROM
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables
WHERE 1=1
AND t_classes_sections.classe_id = t_classes.oid
AND table_id = t_listes_tables.oid
AND (t_classes.is_cti = '1' OR t_classes.code LIKE 'CTI_%')
ORDER BY
t_listes_tables.code,
t_classes.sequence,
t_classes_sections.code;
]]></selectCmd>
<updateCmd><![CDATA[
-- Implémentation oids
ALTER TABLE w_dbsetup ADD COLUMN table_id bigint DEFAULT 0
;
UPDATE w_dbsetup
SET table_id = t_listes_tables.oid
FROM activite.t_listes_tables
WHERE table_code = t_listes_tables.code
;
ALTER TABLE w_dbsetup ADD COLUMN classe_id bigint DEFAULT 0
;
UPDATE w_dbsetup
SET classe_id = t_classes.oid
FROM activite.t_classes
WHERE w_dbsetup.classe_sequence = t_classes.sequence AND
w_dbsetup.table_id = t_classes.table_id
;
-- Sections à supprimer -> Sections CTI non-livrées
-- La classe CTI_SPE_BUDG est créée et aliméntée lors de l'import activité et n'est pas livrée
DROP TABLE IF EXISTS w_del_sections
;
CREATE TEMP TABLE w_del_sections as (
SELECT oid FROM activite.t_classes_sections
WHERE classe_id IN (
SELECT
t_classes.oid
FROM activite.t_classes
WHERE 1=1
AND is_cti = '1'
AND t_classes.code <> 'CTI_SPE_BUDG'
)
);
DELETE FROM activite.t_classes_sections_elements
WHERE section_id IN (SELECT oid FROM w_del_sections);
DELETE FROM activite.t_classes_sections
USING
(
SELECT t_classes_sections.classe_id, t_classes_sections.oid
FROM activite.t_classes_sections
LEFT JOIN w_dbsetup ON
w_dbsetup.classe_id = t_classes_sections.classe_id AND
w_dbsetup.code = t_classes_sections.code
WHERE w_dbsetup.oid IS NULL AND
t_classes_sections.classe_id IN (SELECT classe_id FROM w_dbsetup) AND
t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements)
) subview
WHERE subview.classe_id = t_classes_sections.classe_id AND
subview.oid = t_classes_sections.oid
;
-- Mise à jour
UPDATE activite.t_classes_sections SET
texte = w_dbsetup.texte,
condition = w_dbsetup.condition,
exclude_code = w_dbsetup.exclude_code,
include_code = w_dbsetup.include_code
FROM w_dbsetup
WHERE w_dbsetup.classe_id = t_classes_sections.classe_id AND
w_dbsetup.code = t_classes_sections.code AND
(
t_classes_sections.texte IS DISTINCT FROM w_dbsetup.texte OR
t_classes_sections.condition IS DISTINCT FROM w_dbsetup.condition OR
t_classes_sections.exclude_code IS DISTINCT FROM w_dbsetup.exclude_code OR
t_classes_sections.include_code IS DISTINCT FROM w_dbsetup.include_code
)
;
INSERT INTO activite.t_classes_sections(code, texte, classe_id, condition, exclude_code, include_code)
SELECT
w_dbsetup.code,
w_dbsetup.texte,
w_dbsetup.classe_id,
w_dbsetup.condition,
w_dbsetup.exclude_code,
w_dbsetup.include_code
FROM w_dbsetup
WHERE w_dbsetup.classe_id > 0 AND
(w_dbsetup.code||'@'||w_dbsetup.classe_id::text)
NOT IN (SELECT t_classes_sections.code||'@'||t_classes_sections.classe_id FROM activite.t_classes_sections)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_ghm" label="Classifications Activité (GHM)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_ghm.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
base.t_ghm
WHERE
t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'GHM'
AND t_classes_sections_elements.to_id = t_ghm.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_ghm.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT t_classes_sections.oid, t_ghm.oid
FROM w_dbsetup, activite.t_listes_tables, activite.t_classes, activite.t_classes_sections, base.t_ghm
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_ghm.code
AND t_classes_sections.oid::text || '-' || t_ghm.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('GHM');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_duree_sejour" label="Classifications Activité (durees_sejour)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_durees_sejour.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
base.t_durees_sejour
WHERE
t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'DURSEJ'
AND t_classes_sections_elements.to_id = t_durees_sejour.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_durees_sejour.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_durees_sejour.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
base.t_durees_sejour
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_durees_sejour.code
AND t_classes_sections.oid::text || '-' || t_durees_sejour.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('DURSEJ');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_ages" label="Classifications Activité (ages)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_ages.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
base.t_ages
WHERE 1=1
AND t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'AGE'
AND t_classes_sections_elements.to_id = t_ages.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_ages.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_ages.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
base.t_ages
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_ages.code
AND t_classes_sections.oid::text || '-' || t_ages.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('AGE');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_codes_postaux" label="Classifications Activité (codes_postaux)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_codes_postaux.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
base.t_codes_postaux
WHERE 1=1
AND t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'CODEPOST'
AND t_classes_sections_elements.to_id = t_codes_postaux.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_codes_postaux.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_codes_postaux.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
base.t_codes_postaux
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_codes_postaux.code
AND t_classes_sections.oid::text || '-' || t_codes_postaux.oid::text NOT IN
(SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('CODEPOST');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_prestations_c" label="Classifications Activité (prestations clinique)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_prestations.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
activite.t_prestations
WHERE
t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'PRESTA_C'
AND t_classes_sections_elements.to_id = t_prestations.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_prestations.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_prestations.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
activite.t_prestations
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_prestations.code
AND t_classes_sections.oid::text || '-'::text || t_prestations.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('PRESTA_C');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_forme_activite" label="Classifications Activité (Formes d'activité)">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_forme_activite.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
activite.t_forme_activite
WHERE
t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'FORMEACTIVITE'
AND t_classes_sections_elements.to_id = t_forme_activite.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_forme_activite.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_forme_activite.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
activite.t_forme_activite
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_forme_activite.code
AND t_classes_sections.oid::text || '-'::text || t_forme_activite.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('FORMEACTIVITE');
]]></updateCmd>
</TABLE>
<TABLE name="t_classes_sections_elements_etat_sejour" label="état des séjours">
<selectCmd><![CDATA[
SELECT
t_classes_sections.code AS section_code,
t_etat_sejour.code as to_code,
t_listes_tables.code as table_code,
t_classes.sequence as classe_sequence
FROM
activite.t_classes_sections_elements,
activite.t_classes_sections,
activite.t_classes,
activite.t_listes_tables,
activite.t_etat_sejour
WHERE
t_classes_sections_elements.section_id = t_classes_sections.oid
AND t_classes_sections.classe_id = t_classes.oid
AND t_classes.is_cti = '1'
AND table_id = t_listes_tables.oid
AND t_listes_tables.code = 'ETATSEJOUR'
AND t_classes_sections_elements.to_id = t_etat_sejour.oid
ORDER BY t_classes.sequence, t_classes_sections.code, t_etat_sejour.code;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_classes_sections_elements(section_id, to_id)
SELECT
t_classes_sections.oid,
t_etat_sejour.oid
FROM
w_dbsetup,
activite.t_listes_tables,
activite.t_classes,
activite.t_classes_sections,
activite.t_etat_sejour
WHERE
w_dbsetup.table_code = t_listes_tables.code
AND t_classes.table_id = t_listes_tables.oid
AND t_classes_sections.classe_id = t_classes.oid
AND w_dbsetup.section_code = t_classes_sections.code
AND w_dbsetup.classe_sequence = t_classes.sequence
AND w_dbsetup.to_code = t_etat_sejour.code
AND t_classes_sections.oid::text || '-'::text || t_etat_sejour.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements);
SELECT * FROM activite.cti_update_schema_classes('ETATSEJOUR');
]]></updateCmd>
</TABLE>
<TABLE name="t_indicateur_theme" label="Thèmes des indicateurs">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_indicateur_theme.oid = 0 THEN t_indicateur_theme.oid ELSE 1 END AS oid,
t_indicateur_theme.code,
t_indicateur_theme.texte,
t_indicateur_theme.level,
COALESCE(t_indicateur_parent_theme.code,'') AS parent_code
FROM activite.t_indicateur_theme
LEFT JOIN activite.t_indicateur_theme t_indicateur_parent_theme ON t_indicateur_theme.parent_id = t_indicateur_parent_theme.oid
ORDER BY 2
;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_indicateur_theme (code, texte, level)
SELECT code, texte, level
FROM w_dbsetup
WHERE code NOT IN (SELECT code FROM activite.t_indicateur_theme WHERE t_indicateur_theme.code IS NOT NULL)
;
UPDATE activite.t_indicateur_theme SET
texte = w_dbsetup.texte,
level = w_dbsetup.level,
parent_id = COALESCE(t_indicateur_parent_theme.oid,0)
FROM w_dbsetup
LEFT JOIN activite.t_indicateur_theme t_indicateur_parent_theme ON w_dbsetup.parent_code = t_indicateur_parent_theme.code
WHERE t_indicateur_theme.code = w_dbsetup.code AND
(
t_indicateur_theme.texte IS DISTINCT FROM w_dbsetup.texte OR
t_indicateur_theme.level IS DISTINCT FROM w_dbsetup.level OR
t_indicateur_theme.parent_id IS DISTINCT FROM COALESCE(t_indicateur_parent_theme.oid,0)
)
;
SELECT base.cti_reorganize_indicateur_theme('activite')
;
]]></updateCmd>
</TABLE>
<TABLE name="t_indicateurs" label="Indicateurs de rapports">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_indicateurs.oid = 0 THEN t_indicateurs.oid ELSE 1 END AS oid,
t_indicateurs.code,
t_indicateurs.table_name,
t_indicateurs.texte,
t_indicateurs.entete_etendue,
t_indicateurs.entete,
t_indicateurs.column_name,
t_indicateurs.is_cti,
t_indicateurs.total_function,
t_indicateurs.output_format,
t_indicateurs.width,
t_indicateurs.dimension_date_1,
t_indicateurs.dimension_date_2,
t_indicateurs.dimension_date_3,
t_indicateurs.dimension_date_4,
t_indicateurs.dimension_date_5,
t_indicateurs.dimension_date,
t_indicateurs_1.code as indicateur_associe_1_code,
t_indicateurs_2.code as indicateur_associe_2_code,
t_indicateurs_3.code as indicateur_associe_3_code,
t_indicateurs_4.code as indicateur_associe_4_code,
t_indicateurs_5.code as indicateur_associe_5_code,
t_indicateurs_6.code as indicateur_associe_6_code,
t_indicateurs_7.code as indicateur_associe_7_code,
t_indicateurs_8.code as indicateur_associe_8_code,
t_indicateurs_9.code as indicateur_associe_9_code,
t_indicateurs_10.code as indicateur_associe_10_code,
t_indicateurs_11.code as indicateur_associe_11_code,
t_indicateurs_12.code as indicateur_associe_12_code,
t_indicateurs_13.code as indicateur_associe_13_code,
t_indicateurs_14.code as indicateur_associe_14_code,
t_indicateurs_15.code as indicateur_associe_15_code,
t_indicateurs_16.code as indicateur_associe_16_code,
t_indicateurs_17.code as indicateur_associe_17_code,
t_indicateurs_18.code as indicateur_associe_18_code,
t_indicateurs_19.code as indicateur_associe_19_code,
t_indicateurs_20.code as indicateur_associe_20_code,
t_indicateurs_reference.code as indicateur_reference_code,
t_indicateurs.is_template,
t_indicateurs_template.code as indicateur_template_code,
COALESCE(t_indicateurs.variable_definition[1],'') AS variable_definition_1,
COALESCE(t_indicateurs.variable_definition[2],'') AS variable_definition_2,
COALESCE(t_indicateurs.variable_definition[3],'') AS variable_definition_3,
COALESCE(t_indicateurs.variable_value[1],'') AS variable_value_1,
COALESCE(t_indicateurs.variable_value[2],'') AS variable_value_2,
COALESCE(t_indicateurs.variable_value[3],'') AS variable_value_3,
COALESCE(t_indicateurs.variable_value_text[1],'') AS variable_value_text_1,
COALESCE(t_indicateurs.variable_value_text[2],'') AS variable_value_text_2,
COALESCE(t_indicateurs.variable_value_text[3],'') AS variable_value_text_3,
t_indicateurs.description,
COALESCE(t_indicateur_theme_1.code,'') AS theme_1_code,
COALESCE(t_indicateur_theme_2.code,'') AS theme_2_code,
COALESCE(t_indicateur_theme_3.code,'') AS theme_3_code,
COALESCE(t_indicateur_theme_4.code,'') AS theme_4_code,
COALESCE(t_indicateur_theme_5.code,'') AS theme_5_code,
COALESCE(t_indicateur_theme_6.code,'') AS theme_6_code,
COALESCE(t_indicateur_theme_7.code,'') AS theme_7_code,
COALESCE(t_indicateur_theme_8.code,'') AS theme_8_code,
COALESCE(t_indicateur_theme_9.code,'') AS theme_9_code
FROM activite.t_indicateurs
LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON (t_indicateurs.indicateur_associe_1_id = t_indicateurs_1.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON (t_indicateurs.indicateur_associe_2_id = t_indicateurs_2.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON (t_indicateurs.indicateur_associe_3_id = t_indicateurs_3.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON (t_indicateurs.indicateur_associe_4_id = t_indicateurs_4.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_5 ON (t_indicateurs.indicateur_associe_5_id = t_indicateurs_5.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_6 ON (t_indicateurs.indicateur_associe_6_id = t_indicateurs_6.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_7 ON (t_indicateurs.indicateur_associe_7_id = t_indicateurs_7.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_8 ON (t_indicateurs.indicateur_associe_8_id = t_indicateurs_8.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_9 ON (t_indicateurs.indicateur_associe_9_id = t_indicateurs_9.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_10 ON (t_indicateurs.indicateur_associe_10_id = t_indicateurs_10.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_11 ON (t_indicateurs.indicateur_associe_11_id = t_indicateurs_11.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_12 ON (t_indicateurs.indicateur_associe_12_id = t_indicateurs_12.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_13 ON (t_indicateurs.indicateur_associe_13_id = t_indicateurs_13.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_14 ON (t_indicateurs.indicateur_associe_14_id = t_indicateurs_14.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_15 ON (t_indicateurs.indicateur_associe_15_id = t_indicateurs_15.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_16 ON (t_indicateurs.indicateur_associe_16_id = t_indicateurs_16.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_17 ON (t_indicateurs.indicateur_associe_17_id = t_indicateurs_17.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_18 ON (t_indicateurs.indicateur_associe_18_id = t_indicateurs_18.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_19 ON (t_indicateurs.indicateur_associe_19_id = t_indicateurs_19.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_20 ON (t_indicateurs.indicateur_associe_20_id = t_indicateurs_20.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_reference ON (t_indicateurs.indicateur_reference_id = t_indicateurs_reference.oid)
LEFT JOIN activite.t_indicateurs t_indicateurs_template ON (t_indicateurs.indicateur_template_id = t_indicateurs_template.oid)
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_1 ON t_indicateur_theme_1.oid = t_indicateurs.theme_id[1]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_2 ON t_indicateur_theme_2.oid = t_indicateurs.theme_id[2]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_3 ON t_indicateur_theme_3.oid = t_indicateurs.theme_id[3]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_4 ON t_indicateur_theme_4.oid = t_indicateurs.theme_id[4]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_5 ON t_indicateur_theme_5.oid = t_indicateurs.theme_id[5]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_6 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[6]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_7 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[7]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_8 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[8]
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_9 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[9]
WHERE t_indicateurs.is_cti = '1' AND
t_indicateurs.code LIKE 'CTI%' AND
t_indicateurs.indicateur_reference_id = 0
ORDER BY t_indicateurs.code
;
]]></selectCmd>
<updateCmd><![CDATA[
-- Suppression des indicateurs en double
DELETE FROM activite.t_indicateurs
USING
(
SELECT code, MIN(oid) AS minoid FROM activite.t_indicateurs WHERE code <> '' GROUP BY 1 HAVING count(*) > 1
) subview
WHERE t_indicateurs.code = subview.code AND t_indicateurs.oid <> subview.minoid;
-- Mise à jour indicateurs déjà présents
UPDATE activite.t_indicateurs SET
texte = w_dbsetup.texte,
table_name = w_dbsetup.table_name,
column_name = w_dbsetup.column_name,
is_cti = w_dbsetup.is_cti,
entete = w_dbsetup.entete,
entete_etendue = w_dbsetup.entete_etendue,
total_function = w_dbsetup.total_function,
output_format = w_dbsetup.output_format,
width = w_dbsetup.width,
dimension_date_1 = w_dbsetup.dimension_date_1,
dimension_date_2 = w_dbsetup.dimension_date_2,
dimension_date_3 = w_dbsetup.dimension_date_3,
dimension_date_4 = w_dbsetup.dimension_date_4,
dimension_date_5 = w_dbsetup.dimension_date_5,
dimension_date = w_dbsetup.dimension_date,
is_template = w_dbsetup.is_template,
variable_definition = ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] ,
variable_value = ARRAY[variable_value_1,variable_value_2,variable_value_3],
variable_value_text = ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3],
description = w_dbsetup.description
FROM w_dbsetup
WHERE t_indicateurs.code = w_dbsetup.code;
-- Ajout des indicateurs
INSERT INTO activite.t_indicateurs(texte,
table_name,
column_name,
is_cti,
entete,
entete_etendue,
code,
total_function,
output_format,
width,
dimension_date_1,
dimension_date_2,
dimension_date_3,
dimension_date_4,
dimension_date_5,
dimension_date,
is_template,
variable_definition,
variable_value,
variable_value_text,
description
)
SELECT texte,
table_name,
column_name,
is_cti,
entete,
entete_etendue,
code,
total_function,
output_format,
width,
dimension_date_1,
dimension_date_2,
dimension_date_3,
dimension_date_4,
dimension_date_5,
dimension_date,
is_template,
ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] ,
ARRAY[variable_value_1,variable_value_2,variable_value_3],
ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3],
description
FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_indicateurs WHERE code IS NOT NULL)
;
CREATE INDEX i_w_dbsetup
ON w_dbsetup
USING btree
(code)
;
ANALYZE w_dbsetup
;
-- Mise à jour des références
UPDATE activite.t_indicateurs SET
indicateur_associe_1_id = COALESCE(t_indicateurs_1.oid,0),
indicateur_associe_2_id = COALESCE(t_indicateurs_2.oid,0),
indicateur_associe_3_id = COALESCE(t_indicateurs_3.oid,0),
indicateur_associe_4_id = COALESCE(t_indicateurs_4.oid,0),
indicateur_associe_5_id = COALESCE(t_indicateurs_5.oid,0),
indicateur_associe_6_id = COALESCE(t_indicateurs_6.oid,0),
indicateur_associe_7_id = COALESCE(t_indicateurs_7.oid,0),
indicateur_associe_8_id = COALESCE(t_indicateurs_8.oid,0),
indicateur_associe_9_id = COALESCE(t_indicateurs_9.oid,0),
indicateur_associe_10_id = COALESCE(t_indicateurs_10.oid,0),
indicateur_associe_11_id = COALESCE(t_indicateurs_11.oid,0),
indicateur_associe_12_id = COALESCE(t_indicateurs_12.oid,0),
indicateur_associe_13_id = COALESCE(t_indicateurs_13.oid,0),
indicateur_associe_14_id = COALESCE(t_indicateurs_14.oid,0),
indicateur_associe_15_id = COALESCE(t_indicateurs_15.oid,0),
indicateur_associe_16_id = COALESCE(t_indicateurs_16.oid,0),
indicateur_associe_17_id = COALESCE(t_indicateurs_17.oid,0),
indicateur_associe_18_id = COALESCE(t_indicateurs_18.oid,0),
indicateur_associe_19_id = COALESCE(t_indicateurs_19.oid,0),
indicateur_associe_20_id = COALESCE(t_indicateurs_20.oid,0),
indicateur_reference_id = COALESCE(t_indicateurs_reference.oid,0),
indicateur_template_id = COALESCE(t_indicateurs_template.oid,0)
FROM w_dbsetup
LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON (w_dbsetup.indicateur_associe_1_code = t_indicateurs_1.code AND w_dbsetup.indicateur_associe_1_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON (w_dbsetup.indicateur_associe_2_code = t_indicateurs_2.code AND w_dbsetup.indicateur_associe_2_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON (w_dbsetup.indicateur_associe_3_code = t_indicateurs_3.code AND w_dbsetup.indicateur_associe_3_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON (w_dbsetup.indicateur_associe_4_code = t_indicateurs_4.code AND w_dbsetup.indicateur_associe_4_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_5 ON (w_dbsetup.indicateur_associe_5_code = t_indicateurs_5.code AND w_dbsetup.indicateur_associe_5_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_6 ON (w_dbsetup.indicateur_associe_6_code = t_indicateurs_6.code AND w_dbsetup.indicateur_associe_6_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_7 ON (w_dbsetup.indicateur_associe_7_code = t_indicateurs_7.code AND w_dbsetup.indicateur_associe_7_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_8 ON (w_dbsetup.indicateur_associe_8_code = t_indicateurs_8.code AND w_dbsetup.indicateur_associe_8_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_9 ON (w_dbsetup.indicateur_associe_9_code = t_indicateurs_9.code AND w_dbsetup.indicateur_associe_9_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_10 ON (w_dbsetup.indicateur_associe_10_code = t_indicateurs_10.code AND w_dbsetup.indicateur_associe_10_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_11 ON (w_dbsetup.indicateur_associe_11_code = t_indicateurs_11.code AND w_dbsetup.indicateur_associe_11_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_12 ON (w_dbsetup.indicateur_associe_12_code = t_indicateurs_12.code AND w_dbsetup.indicateur_associe_12_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_13 ON (w_dbsetup.indicateur_associe_13_code = t_indicateurs_13.code AND w_dbsetup.indicateur_associe_13_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_14 ON (w_dbsetup.indicateur_associe_14_code = t_indicateurs_14.code AND w_dbsetup.indicateur_associe_14_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_15 ON (w_dbsetup.indicateur_associe_15_code = t_indicateurs_15.code AND w_dbsetup.indicateur_associe_15_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_16 ON (w_dbsetup.indicateur_associe_16_code = t_indicateurs_16.code AND w_dbsetup.indicateur_associe_16_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_17 ON (w_dbsetup.indicateur_associe_17_code = t_indicateurs_17.code AND w_dbsetup.indicateur_associe_17_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_18 ON (w_dbsetup.indicateur_associe_18_code = t_indicateurs_18.code AND w_dbsetup.indicateur_associe_18_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_19 ON (w_dbsetup.indicateur_associe_19_code = t_indicateurs_19.code AND w_dbsetup.indicateur_associe_19_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_20 ON (w_dbsetup.indicateur_associe_20_code = t_indicateurs_20.code AND w_dbsetup.indicateur_associe_20_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_reference ON (w_dbsetup.indicateur_reference_code = t_indicateurs_reference.code AND w_dbsetup.indicateur_reference_code <> '')
LEFT JOIN activite.t_indicateurs t_indicateurs_template ON (w_dbsetup.indicateur_template_code = t_indicateurs_template.code AND w_dbsetup.indicateur_template_code <> '')
WHERE t_indicateurs.code = w_dbsetup.code
AND (indicateur_associe_1_code <> '' OR
indicateur_associe_2_code <> '' OR
indicateur_associe_3_code <> '' OR
indicateur_reference_code <> '');
-- Thèmes
UPDATE activite.t_indicateurs SET
theme_id = ARRAY[
t_indicateur_theme_1.oid,
t_indicateur_theme_2.oid,
t_indicateur_theme_3.oid,
t_indicateur_theme_4.oid,
t_indicateur_theme_5.oid,
t_indicateur_theme_6.oid,
t_indicateur_theme_7.oid,
t_indicateur_theme_8.oid,
t_indicateur_theme_9.oid
]
FROM w_dbsetup
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_1 ON w_dbsetup.theme_1_code = t_indicateur_theme_1.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_2 ON w_dbsetup.theme_2_code = t_indicateur_theme_2.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_3 ON w_dbsetup.theme_3_code = t_indicateur_theme_3.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_4 ON w_dbsetup.theme_4_code = t_indicateur_theme_4.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_5 ON w_dbsetup.theme_5_code = t_indicateur_theme_5.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_6 ON w_dbsetup.theme_6_code = t_indicateur_theme_6.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_7 ON w_dbsetup.theme_7_code = t_indicateur_theme_7.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_8 ON w_dbsetup.theme_8_code = t_indicateur_theme_8.code
LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_9 ON w_dbsetup.theme_9_code = t_indicateur_theme_9.code
WHERE t_indicateurs.code = w_dbsetup.code AND
theme_id IS DISTINCT FROM ARRAY[
t_indicateur_theme_1.oid,
t_indicateur_theme_2.oid,
t_indicateur_theme_3.oid,
t_indicateur_theme_4.oid,
t_indicateur_theme_5.oid,
t_indicateur_theme_6.oid,
t_indicateur_theme_7.oid,
t_indicateur_theme_8.oid,
t_indicateur_theme_9.oid
]
;
-- Réorganisation des indicateurs
SELECT base.cti_reorganize_indicateurs('activite');
]]></updateCmd>
</TABLE>
<TABLE name="t_rapports" label="Rapports">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_rapports.oid = 0 THEN t_rapports.oid ELSE 1 END AS oid,
t_rapports.code,
t_rapports.texte,
t_rapports.is_cti,
t_rapports.is_essentiel,
t_rapports.essentiel_date_level,
t_rapports.colonnes_essentiel,
t_rapports.entete,
t_rapports.entete_2,
CASE WHEN t_rapports.group_id = 0 THEN t_rapports.group_id ELSE 1 END AS group_id,
t_rapports.is_hide,
array_to_string(
ARRAY[
COALESCE(t_indicateur_condition_1.external_code::text,''),
COALESCE(t_indicateur_condition_2.external_code::text,''),
COALESCE(t_indicateur_condition_3.external_code::text,''),
COALESCE(t_indicateur_condition_4.external_code::text,'')
]
,'||') AS rapport_indicateur_condition_code,
t_rapports.label,
array_to_string(serie_entete,'||') AS serie_entete,
t_rapports.colonnes_essentiel_style
FROM activite.t_rapports
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_1 ON t_rapports.rapport_indicateur_condition_id[1] = t_indicateur_condition_1.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_2 ON t_rapports.rapport_indicateur_condition_id[2] = t_indicateur_condition_2.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_3 ON t_rapports.rapport_indicateur_condition_id[3] = t_indicateur_condition_3.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_4 ON t_rapports.rapport_indicateur_condition_id[4] = t_indicateur_condition_4.oid
WHERE (t_rapports.is_cti = '1' OR t_rapports.code LIKE 'CTI_%') AND
t_rapports.code <> 'CTI_PORTFO'
ORDER BY t_rapports.code
;
]]></selectCmd>
<updateCmd><![CDATA[
ALTER TABLE w_dbsetup ADD COLUMN to_serie_entete text[];
UPDATE w_dbsetup SET to_serie_entete = string_to_array(serie_entete,'||');
ALTER TABLE w_dbsetup ADD COLUMN to_rapport_indicateur_condition_code text[];
UPDATE w_dbsetup SET to_rapport_indicateur_condition_code = string_to_array(rapport_indicateur_condition_code,'||');
ALTER TABLE w_dbsetup ADD COLUMN to_rapport_indicateur_condition_id bigint[];
UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[1] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[1] AND to_rapport_indicateur_condition_code[1] <> '';
UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[2] AND to_rapport_indicateur_condition_code[2] <> '';
UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[3] AND to_rapport_indicateur_condition_code[3] <> '';
UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[4] AND to_rapport_indicateur_condition_code[4] <> '';
UPDATE w_dbsetup SET to_rapport_indicateur_condition_id = array_remove(to_rapport_indicateur_condition_id,NULL);
UPDATE activite.t_rapports SET
texte = w_dbsetup.texte,
is_cti = w_dbsetup.is_cti,
is_essentiel = w_dbsetup.is_essentiel,
essentiel_date_level = w_dbsetup.essentiel_date_level,
colonnes_essentiel = w_dbsetup.colonnes_essentiel,
entete = w_dbsetup.entete,
entete_2 = w_dbsetup.entete_2,
group_id = w_dbsetup.group_id,
rapport_indicateur_condition_id = to_rapport_indicateur_condition_id,
label = w_dbsetup.label,
serie_entete = to_serie_entete,
colonnes_essentiel_style = w_dbsetup.colonnes_essentiel_style
FROM w_dbsetup
WHERE t_rapports.code = w_dbsetup.code;
INSERT INTO activite.t_rapports(oid, code, texte, is_cti, is_essentiel)
SELECT oid, code, texte, is_cti, is_essentiel
FROM w_dbsetup
WHERE
oid = 0 AND
oid NOT IN (SELECT oid FROM activite.t_rapports);
INSERT INTO activite.t_rapports(
code,
texte,
is_cti,
is_essentiel,
essentiel_date_level,
colonnes_essentiel,
entete,
entete_2,
group_id,
is_hide,
rapport_indicateur_condition_id,
label,
serie_entete,
colonnes_essentiel_style
)
SELECT
code,
texte,
is_cti,
is_essentiel,
essentiel_date_level,
colonnes_essentiel,
entete,
entete_2,
group_id,
is_hide,
to_rapport_indicateur_condition_id,
label,
to_serie_entete,
colonnes_essentiel_style
FROM w_dbsetup
WHERE
oid <> 0 AND
code NOT IN (SELECT code FROM activite.t_rapports);
]]></updateCmd>
</TABLE>
<TABLE name="t_rapports_rubriques" label="Rubriques des rapports" >
<selectCmd><![CDATA[
SELECT
t_rapports.code AS rapport_code,
t_rapports_rubriques.numero_rubrique,
t_indicateurs.code AS indicateur_code,
COALESCE(t_indicateurs_associes.code, '') as indicateur_associe_code,
t_rapports_rubriques.entete,
t_rapports_rubriques.entete_etendue,
t_rapports_rubriques.output_format,
t_rapports_rubriques.width,
t_rapports_rubriques.row_height,
t_rapports_rubriques.padding,
t_rapports_rubriques.font_size,
t_rapports_rubriques.font_weight,
t_rapports_rubriques.border_thickness,
t_rapports_rubriques.color,
t_rapports_rubriques.background_color,
t_rapports_rubriques.base_nationale,
t_rapports_rubriques.base_nationale_qualifiee,
t_rapports_rubriques.viewlink,
t_rapports_rubriques.viewlink_label,
t_rapports_rubriques.viewlink_param,
t_rapports_rubriques.picto_enabled,
t_rapports_rubriques.positif_is_good,
t_rapports_rubriques.description,
t_rapports_rubriques.description_2,
t_rapports_rubriques.entete_etendue_2,
t_rapports_rubriques.output_format_2,
t_rapports_rubriques.picto_enabled_2,
t_rapports_rubriques.positif_is_good_2,
t_rapports_rubriques.is_hide,
t_rapports_rubriques.specific_viewlink,
t_rapports_rubriques.specific_viewlink_label,
t_rapports_rubriques.specific_viewlink_param,
array_to_string(
ARRAY[
COALESCE(t_indicateur_condition_1.external_code::text,''),
COALESCE(t_indicateur_condition_2.external_code::text,''),
COALESCE(t_indicateur_condition_3.external_code::text,''),
COALESCE(t_indicateur_condition_4.external_code::text,'')
],'||')::text AS indicateur_condition_external_code,
t_rapports_rubriques.erase_rapport_indicateur_condition,
t_rapports_rubriques.calc_formula,
t_rapports_rubriques.hide_on_zero_field,
t_rapports_rubriques.field_tag,
array_to_string(
ARRAY[
COALESCE(t_indicateurs_serie_1.code,''),
COALESCE(t_indicateurs_serie_2.code,''),
COALESCE(t_indicateurs_serie_3.code,''),
COALESCE(t_indicateurs_serie_4.code,''),
COALESCE(t_indicateurs_serie_5.code,''),
COALESCE(t_indicateurs_serie_6.code,''),
COALESCE(t_indicateurs_serie_7.code,''),
COALESCE(t_indicateurs_serie_8.code,''),
COALESCE(t_indicateurs_serie_9.code,'')
],'||')::text AS serie_indicateur_code,
array_to_string(
ARRAY[
COALESCE(t_indicateurs_serie_1.table_name,''),
COALESCE(t_indicateurs_serie_2.table_name,''),
COALESCE(t_indicateurs_serie_3.table_name,''),
COALESCE(t_indicateurs_serie_4.table_name,''),
COALESCE(t_indicateurs_serie_5.table_name,''),
COALESCE(t_indicateurs_serie_6.table_name,''),
COALESCE(t_indicateurs_serie_7.table_name,''),
COALESCE(t_indicateurs_serie_8.table_name,''),
COALESCE(t_indicateurs_serie_9.table_name,'')
],'||')::text AS serie_indicateur_table_name,
array_to_string(t_rapports_rubriques.serie_entete_etendue,'||')::text AS serie_entete_etendue,
array_to_string(t_rapports_rubriques.serie_description,'||')::text AS serie_description,
array_to_string(t_rapports_rubriques.serie_output_format,'||')::text AS serie_output_format,
array_to_string(t_rapports_rubriques.serie_picto_enabled,'||')::text AS serie_picto_enabled,
array_to_string(t_rapports_rubriques.serie_positif_is_good,'||')::text AS serie_positif_is_good
FROM
activite.t_rapports_rubriques
JOIN activite.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid
JOIN activite.t_indicateurs t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_associes ON t_rapports_rubriques.indicateur_associe_id = t_indicateurs_associes.oid AND
t_indicateurs_associes.is_cti IS DISTINCT FROM '0'
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_1 ON t_rapports_rubriques.indicateur_condition_id[1] = t_indicateur_condition_1.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_2 ON t_rapports_rubriques.indicateur_condition_id[2] = t_indicateur_condition_2.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_3 ON t_rapports_rubriques.indicateur_condition_id[3] = t_indicateur_condition_3.oid
LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_4 ON t_rapports_rubriques.indicateur_condition_id[4] = t_indicateur_condition_4.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_1 ON t_rapports_rubriques.serie_indicateur_id[1] = t_indicateurs_serie_1.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_2 ON t_rapports_rubriques.serie_indicateur_id[2] = t_indicateurs_serie_2.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_3 ON t_rapports_rubriques.serie_indicateur_id[3] = t_indicateurs_serie_3.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_4 ON t_rapports_rubriques.serie_indicateur_id[4] = t_indicateurs_serie_4.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_5 ON t_rapports_rubriques.serie_indicateur_id[5] = t_indicateurs_serie_5.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_6 ON t_rapports_rubriques.serie_indicateur_id[6] = t_indicateurs_serie_6.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_7 ON t_rapports_rubriques.serie_indicateur_id[7] = t_indicateurs_serie_7.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_8 ON t_rapports_rubriques.serie_indicateur_id[8] = t_indicateurs_serie_8.oid
LEFT JOIN activite.t_indicateurs t_indicateurs_serie_9 ON t_rapports_rubriques.serie_indicateur_id[9] = t_indicateurs_serie_9.oid
WHERE 1=1
AND t_rapports.is_cti = '1'
AND t_rapports.code <> 'CTI_PORTFO'
AND t_indicateurs.is_cti = '1'
AND t_indicateurs.code <> ''
ORDER BY
t_rapports.code,
t_indicateurs.code,
t_rapports_rubriques.numero_rubrique
;
]]></selectCmd>
<updateCmd><![CDATA[
-- Sauvegarder les données sources pour rejouer le spécifique
SELECT base.cti_verify_table_encoding('activite','t_rapports_rubriques')
;
DROP TABLE IF EXISTS w_specific_rapports_rubriques ;
CREATE TEMP TABLE w_specific_rapports_rubriques AS
SELECT t_rapports_rubriques.*
FROM activite.t_rapports_rubriques
JOIN activite.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid
WHERE t_rapports.is_essentiel = '1'
;
ALTER TABLE w_dbsetup ADD COLUMN to_rapport_id bigint DEFAULT 0;
UPDATE w_dbsetup SET to_rapport_id = t_rapports.oid FROM activite.t_rapports WHERE rapport_code = t_rapports.code;
ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_id bigint DEFAULT 0;
UPDATE w_dbsetup SET to_indicateur_id = t_indicateurs.oid FROM activite.t_indicateurs WHERE indicateur_code = t_indicateurs.code AND t_indicateurs.code <> '';
ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_associe_id bigint DEFAULT 0;
UPDATE w_dbsetup SET to_indicateur_associe_id = t_indicateurs.oid FROM activite.t_indicateurs WHERE indicateur_associe_code = t_indicateurs.code AND t_indicateurs.code <> '';
ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_code text[];
UPDATE w_dbsetup SET to_serie_indicateur_code = string_to_array(serie_indicateur_code,'||');
ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_id bigint[];
UPDATE w_dbsetup SET to_serie_indicateur_id[1] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[1] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[2] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[2] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[3] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[3] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[4] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[4] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[5] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[5] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[6] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[6] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[7] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[7] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[8] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[8] = t_indicateurs.code AND t_indicateurs.code <> '';
UPDATE w_dbsetup SET to_serie_indicateur_id[9] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[9] = t_indicateurs.code AND t_indicateurs.code <> '';
ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_external_code text[];
UPDATE w_dbsetup SET to_indicateur_condition_external_code = string_to_array(indicateur_condition_external_code,'||');
ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_id bigint[];
UPDATE w_dbsetup SET to_indicateur_condition_id[1] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[1] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[2] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[3] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[4] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[5] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[5] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[6] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[6] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[7] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[7] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[8] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[8] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
UPDATE w_dbsetup SET to_indicateur_condition_id[9] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[9] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> '';
-- Installer les données CTI
DELETE FROM activite.t_rapports_rubriques
WHERE 1=1
AND rapport_id IN (SELECT to_rapport_id FROM w_dbsetup)
;
INSERT INTO activite.t_rapports_rubriques(
rapport_id,
numero_rubrique,
indicateur_id,
indicateur_associe_id,
entete,
entete_etendue,
output_format,
width,
row_height,
padding,
font_size,
font_weight,
border_thickness,
color,
background_color,
base_nationale,
base_nationale_qualifiee,
viewlink,
viewlink_label,
viewlink_param,
picto_enabled,
positif_is_good,
description,
description_2,
entete_etendue_2,
output_format_2,
picto_enabled_2,
positif_is_good_2,
is_hide,
specific_viewlink,
specific_viewlink_label,
specific_viewlink_param,
indicateur_condition_id,
erase_rapport_indicateur_condition,
calc_formula,
hide_on_zero_field,
field_tag,
serie_indicateur_id,
serie_entete_etendue,
serie_description,
serie_output_format,
serie_picto_enabled,
serie_positif_is_good
)
SELECT
to_rapport_id,
numero_rubrique,
to_indicateur_id,
to_indicateur_associe_id,
entete,
entete_etendue,
output_format,
width,
row_height,
padding,
font_size,
font_weight,
border_thickness,
color,
background_color,
base_nationale,
base_nationale_qualifiee,
viewlink,
viewlink_label,
viewlink_param,
picto_enabled,
positif_is_good,
description,
description_2,
entete_etendue_2,
output_format_2,
picto_enabled_2,
positif_is_good_2,
is_hide,
specific_viewlink,
specific_viewlink_label,
specific_viewlink_param,
to_indicateur_condition_id,
erase_rapport_indicateur_condition,
calc_formula,
hide_on_zero_field,
field_tag,
to_serie_indicateur_id,
string_to_array(serie_entete_etendue,'||'),
string_to_array(serie_description,'||'),
string_to_array(serie_output_format,'||'),
string_to_array(serie_picto_enabled,'||'),
string_to_array(serie_positif_is_good,'||')
FROM w_dbsetup
WHERE to_rapport_id <> 0 AND to_indicateur_id <> 0
;
-- Rejouer le spécifique
UPDATE activite.t_rapports_rubriques SET
is_hide = w_specific_rapports_rubriques.is_hide,
specific_viewlink = CASE WHEN w_specific_rapports_rubriques.specific_viewlink IN ('1', '2') THEN '' ELSE w_specific_rapports_rubriques.specific_viewlink END,
specific_viewlink_label = w_specific_rapports_rubriques.specific_viewlink_label,
specific_viewlink_param = w_specific_rapports_rubriques.specific_viewlink_param
FROM w_specific_rapports_rubriques
WHERE w_specific_rapports_rubriques.rapport_id = t_rapports_rubriques.rapport_id AND
w_specific_rapports_rubriques.indicateur_id = t_rapports_rubriques.indicateur_id AND
w_specific_rapports_rubriques.entete_etendue = t_rapports_rubriques.entete_etendue AND
(
w_specific_rapports_rubriques.is_hide = '1' OR
w_specific_rapports_rubriques.specific_viewlink <> '' OR
w_specific_rapports_rubriques.specific_viewlink_label <> '' OR
w_specific_rapports_rubriques.specific_viewlink_param <> ''
)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_expert_controle" label="t_expert_controle">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_expert_controle.oid = 0 THEN t_expert_controle.oid ELSE 1 END AS controle_id,
t_expert_controle.code as controle_code,
t_expert_controle.texte as controle_texte,
t_expert_controle.texte_court as controle_texte_court,
t_expert_controle.texte_abrege as controle_texte_abrege,
t_expert_controle.description as controle_description,
t_expert_controle.is_cti as controle_is_cti,
t_expert_controle.etat_cible as controle_etat_cible,
t_prestataires.code as prestataire_code
FROM activite.t_expert_controle
LEFT JOIN base.t_prestataires ON t_prestataires.oid = t_expert_controle.prestataire_id
WHERE t_expert_controle.is_cti = '1' AND t_expert_controle.code <> ''
ORDER BY t_expert_controle.code
;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_expert_controle SET
texte = w_dbsetup.controle_texte,
texte_court = w_dbsetup.controle_texte_court,
texte_abrege = w_dbsetup.controle_texte_abrege,
description = w_dbsetup.controle_description,
is_cti = w_dbsetup.controle_is_cti,
etat_cible = w_dbsetup.controle_etat_cible,
prestataire_id = COALESCE(t_prestataires.oid, -1)
FROM w_dbsetup
LEFT JOIN base.t_prestataires ON t_prestataires.code = w_dbsetup.prestataire_code
WHERE t_expert_controle.code = w_dbsetup.controle_code
AND (
t_expert_controle.texte IS DISTINCT FROM w_dbsetup.controle_texte OR
t_expert_controle.texte_court IS DISTINCT FROM w_dbsetup.controle_texte_court OR
t_expert_controle.texte_abrege IS DISTINCT FROM w_dbsetup.controle_texte_abrege OR
t_expert_controle.description IS DISTINCT FROM w_dbsetup.controle_description OR
t_expert_controle.is_cti IS DISTINCT FROM w_dbsetup.controle_is_cti OR
t_expert_controle.etat_cible IS DISTINCT FROM w_dbsetup.controle_etat_cible OR
t_prestataires.code != w_dbsetup.prestataire_code
);
UPDATE activite.t_expert_controle
SET gravite_id = 5
WHERE gravite_id IS NULL OR gravite_id NOT IN (0,5,9);
UPDATE activite.t_expert_controle
SET is_hide = '0'
WHERE is_hide IS NULL OR is_hide NOT IN ('0','1');
UPDATE activite.t_expert_controle
SET etat_cible = 0
WHERE etat_cible IS NULL;
UPDATE activite.t_expert_controle
SET prestataire_id = -1
WHERE prestataire_id IS NULL;
UPDATE activite.t_expert_controle
SET is_active = '1'
WHERE is_active IS NULL;
INSERT INTO activite.t_expert_controle(
code,
texte,
texte_court,
texte_abrege,
description,
is_cti,
gravite_id,
is_hide,
etat_cible,
prestataire_id,
is_active
)
SELECT
w_dbsetup.controle_code,
w_dbsetup.controle_texte,
w_dbsetup.controle_texte_court,
w_dbsetup.controle_texte_abrege,
w_dbsetup.controle_description,
w_dbsetup.controle_is_cti,
5,
'0',
w_dbsetup.controle_etat_cible,
COALESCE(t_prestataires.oid, -1),
'1'
FROM w_dbsetup
LEFT JOIN base.t_prestataires ON t_prestataires.code = w_dbsetup.prestataire_code
WHERE
w_dbsetup.controle_id <> 0
AND w_dbsetup.controle_code NOT IN (SELECT code FROM activite.t_expert_controle WHERE code IS NOT NULL);
]]></updateCmd>
</TABLE>
<TABLE name="t_expert_controle_rule" label="t_expert_controle_rule">
<selectCmd><![CDATA[
SELECT
CASE WHEN t_expert_controle_rule.oid = 0 THEN t_expert_controle_rule.oid ELSE 1 END AS oid,
t_expert_controle.code AS controle_code,
t_expert_controle_rule.numero,
t_expert_controle_rule.sqlcmd_where,
t_expert_controle_rule.sqlcmd_justificatif,
t_expert_controle_rule.table_id as tab
FROM activite.t_expert_controle_rule
JOIN activite.t_expert_controle ON controle_id = t_expert_controle.oid
WHERE t_expert_controle.is_cti = '1' AND
t_expert_controle.code <> ''
ORDER BY t_expert_controle.code, t_expert_controle_rule.numero
;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_expert_controle_rule
SET numero = 1
WHERE numero IS NULL or NUMERO NOT IN (1,2,3);
UPDATE activite.t_expert_controle_rule
SET
sqlcmd_where = w_dbsetup.sqlcmd_where,
sqlcmd_justificatif = w_dbsetup.sqlcmd_justificatif,
table_id = w_dbsetup.tab
FROM w_dbsetup
JOIN activite.t_expert_controle ON t_expert_controle.code = w_dbsetup.controle_code
WHERE t_expert_controle_rule.controle_id = t_expert_controle.oid AND
t_expert_controle_rule.numero = w_dbsetup.numero AND
(
t_expert_controle_rule.sqlcmd_where IS DISTINCT FROM w_dbsetup.sqlcmd_where OR
t_expert_controle_rule.table_id IS DISTINCT FROM w_dbsetup.tab OR
t_expert_controle_rule.sqlcmd_justificatif IS DISTINCT FROM w_dbsetup.sqlcmd_justificatif
);
INSERT INTO activite.t_expert_controle_rule (
controle_id,
numero,
sqlcmd_where,
sqlcmd_justificatif,
table_id
)
SELECT
t_expert_controle.oid,
w_dbsetup.numero,
w_dbsetup.sqlcmd_where,
w_dbsetup.sqlcmd_justificatif,
w_dbsetup.tab
FROM w_dbsetup
JOIN activite.t_expert_controle ON t_expert_controle.code = w_dbsetup.controle_code
LEFT JOIN activite.t_expert_controle_rule ON
t_expert_controle_rule.controle_id = t_expert_controle.oid AND
t_expert_controle_rule.numero = w_dbsetup.numero
WHERE t_expert_controle_rule.oid IS NULL;
]]></updateCmd>
</TABLE>
<TABLE name="t_vue_parametre" label="Listes des données prédéfinis">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte,
array_to_string(data_code, '@') as data_code,
array_to_string(data_entete, '@') as data_entete,
array_to_string(data_format, '@') as data_format,
array_to_string(data_description, '@') as data_description,
position_ratio,
rang
FROM activite.t_vue_parametre
ORDER BY 1;
]]></selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_vue_parametre(code, texte, data_code, data_entete, data_format, data_description,position_ratio,rang)
SELECT code,
texte,
string_to_array(data_code, '@') as data_code,
string_to_array(data_entete, '@') as data_entete,
string_to_array(data_format, '@') as data_format,
string_to_array(data_description, '@') as data_description,
position_ratio,
rang
FROM w_dbsetup
WHERE 1=1
AND code NOT IN (SELECT code FROM activite.t_vue_parametre)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_severites_cti" label="Sévérité CTI">
<selectCmd><![CDATA[
SELECT
severite_id as keepoid,
severite_code,
severite_texte
FROM activite.t_severites_cti
ORDER BY severite_code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_severites_cti SET
severite_code = w_dbsetup.severite_code,
severite_texte = w_dbsetup.severite_code
FROM w_dbsetup
WHERE w_dbsetup.keepoid = t_severites_cti.severite_id AND w_dbsetup.keepoid = 0;
UPDATE activite.t_severites_cti SET
severite_texte = w_dbsetup.severite_texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_severites_cti.severite_code = w_dbsetup.severite_code
AND activite.t_severites_cti.severite_texte IS DISTINCT FROM w_dbsetup.severite_texte
;
INSERT INTO activite.t_severites_cti(severite_id, severite_code, severite_texte)
SELECT keepoid, severite_code, severite_texte
FROM w_dbsetup
WHERE 1=1
AND keepoid NOT IN (SELECT severite_id FROM activite.t_severites_cti)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_traitement_epmsi" label="Traitement e-PMSI">
<selectCmd><![CDATA[
SELECT
oid as keepoid,
code,
texte
FROM activite.t_traitement_epmsi
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE activite.t_traitement_epmsi SET
code = w_dbsetup.code,
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE w_dbsetup.keepoid = t_traitement_epmsi.oid AND w_dbsetup.keepoid = 0;
UPDATE activite.t_traitement_epmsi SET
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_traitement_epmsi.code = w_dbsetup.code
AND activite.t_traitement_epmsi.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_traitement_epmsi(oid, code, texte)
SELECT keepoid, code, texte
FROM w_dbsetup
WHERE 1=1
AND keepoid = 0
AND keepoid NOT IN (SELECT oid FROM activite.t_traitement_epmsi)
;
INSERT INTO activite.t_traitement_epmsi(oid,code,texte)
SELECT keepoid, code, texte
FROM w_dbsetup
WHERE 1=1
AND keepoid <> 0
AND code NOT IN (SELECT code FROM activite.t_traitement_epmsi)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_type_sejour" label="Types séjours">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte
FROM activite.t_type_sejour
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE w_dbsetup SET
oid = w_dbsetup.code::bigint;
UPDATE activite.t_type_sejour SET
oid = w_dbsetup.oid,
code = w_dbsetup.code,
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE w_dbsetup.oid = t_type_sejour.oid AND w_dbsetup.oid = 0;
UPDATE activite.t_type_sejour SET
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_type_sejour.code = w_dbsetup.code
AND activite.t_type_sejour.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_type_sejour(oid,code,texte)
SELECT oid, code, texte
FROM w_dbsetup
WHERE 1=1
AND oid NOT IN (SELECT oid FROM activite.t_type_sejour)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_type_hospi_pmsi" label="Type d'hospitalisation pmsi (MCO-SSR-PSY-HAD)">
<selectCmd><![CDATA[
SELECT
CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
code,
texte
FROM activite.t_type_hospi_pmsi
ORDER BY code;
]]></selectCmd>
<updateCmd><![CDATA[
UPDATE w_dbsetup SET
oid = w_dbsetup.code::bigint;
UPDATE activite.t_type_hospi_pmsi SET
oid = w_dbsetup.oid,
code = w_dbsetup.code,
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE w_dbsetup.oid = t_type_hospi_pmsi.oid AND w_dbsetup.oid = 0;
UPDATE activite.t_type_hospi_pmsi SET
texte = w_dbsetup.texte
FROM w_dbsetup
WHERE 1=1
AND activite.t_type_hospi_pmsi.code = w_dbsetup.code
AND activite.t_type_hospi_pmsi.texte IS DISTINCT FROM w_dbsetup.texte
;
INSERT INTO activite.t_type_hospi_pmsi(oid,code,texte)
SELECT oid, code, texte
FROM w_dbsetup
WHERE 1=1
AND oid NOT IN (SELECT oid FROM activite.t_type_hospi_pmsi)
;
]]></updateCmd>
</TABLE>
<TABLE name="t_divers" label="Divers">
<selectCmd><![CDATA[
SELECT
t_divers.code,
t_divers.description,
t_divers.show_info_module,
t_divers.texte,
t_divers.valeur,
t_divers.valeur_date::text
FROM
activite.t_divers
ORDER BY code;
]]> </selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_divers(code, description, show_info_module, texte, valeur, valeur_date)
SELECT
w_dbsetup.code,
w_dbsetup.description,
w_dbsetup.show_info_module,
w_dbsetup.texte,
w_dbsetup.valeur,
CASE WHEN w_dbsetup.valeur_date = '' THEN '19700101'::date ELSE w_dbsetup.valeur_date::date END AS valeur_date
FROM
w_dbsetup
WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_divers)
;
]]> </updateCmd>
</TABLE>
<TABLE name="t_kiwee_params" label="Kiwee">
<selectCmd><![CDATA[
SELECT
t_kiwee_params.code,
t_kiwee_params.texte,
t_kiwee_params.valeur,
t_kiwee_params.description
FROM
activite.t_kiwee_params
ORDER BY code;
]]> </selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_kiwee_params(code, texte, valeur, description)
SELECT
w_dbsetup.code,
w_dbsetup.texte,
w_dbsetup.valeur,
w_dbsetup.description
FROM
w_dbsetup
WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_kiwee_params)
;
]]> </updateCmd>
</TABLE>
<TABLE name="t_types_gmt" label="Types GMT">
<selectCmd><![CDATA[
SELECT
t_types_gmt.code,
t_types_gmt.label,
t_types_gmt.description
FROM
activite.t_types_gmt
ORDER BY code;
]]> </selectCmd>
<updateCmd><![CDATA[
INSERT INTO activite.t_types_gmt(code, label, description)
SELECT
w_dbsetup.code,
w_dbsetup.label,
w_dbsetup.description
FROM
w_dbsetup
WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_types_gmt)
;
]]> </updateCmd>
</TABLE>
</DBSETUPDATA>