pour déploiement auto v2 via gitlab
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.
 
 

97 lines
3.5 KiB

-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;
CREATE TEMP TABLE w_dbsetup AS
SELECT
t_widget_user_parameter.oid as uuid,
t_dashboard.code || '|' || t_chart.code as dashboard_widget_code,
username,
title,
x,
y,
w,
h,
time_calc,
visible,
t_dashboard.code || '|' || t_dashboard_onglet.index as tab_code,
max_cat,
array_agg(DISTINCT t_indicateur_serie.code) as include_series_code
FROM pmsi.t_widget_user_parameter
JOIN pmsi.t_dashboard_widget ON t_dashboard_widget.oid = dashboard_widget_id
JOIN pmsi.t_dashboard ON t_dashboard.oid= t_dashboard_widget.dashboard_id
JOIN pmsi.t_chart on t_chart.oid = t_dashboard_widget.chart_id
JOIN pmsi.t_dashboard_onglet on t_dashboard_onglet.oid = tab_id
LEFT JOIN pmsi.t_indicateur_serie ON ARRAY[t_indicateur_serie.oid] <@ include_series_id
WHERE username = 'cti'
GROUP BY 1,2,3,4,5,6,7,8,9,10,11, t_dashboard_onglet.index
ORDER BY 2, 6, 7 LIMIT 0
;
-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
uuid,
dashboard_widget_code,
username,
title,
x,
y,
w,
h,
time_calc,
visible,
tab_code,
max_cat,
include_series_code
)
VALUES
('ed6dc64d-67dc-43ee-aa36-0cd4c8faf96a', 'CTI_CAS|CTI_CAT2ADA', 'cti', 'CAT2A par Domaine Activite', 2, 0, 4, 15, 'val', 't', 'CTI_CAS|1', 10, '{"CTI_CAT2AAMBU", "CTI_CAT2AHOSP"}'),
('4dbc1879-9b7e-484e-8e24-d11521cd85fb', 'CTI_CAS|CTI_CAT2AMOYDA', 'cti', 'CAT2A Moyen par Domaine Activite', 0, 15, 4, 12, 'val', 't', 'CTI_CAS|1', 5, '{"CTI_CAT2AAMBUMOY", "CTI_CAT2AHOSPMOY"}'),
('32d6e040-7365-4ac3-a92a-c438b5e2e891', 'CTI_CAS|CTI_INFO', 'cti', 'GHM', 0, 0, 2, 5, 'val', 't', 'CTI_CAS|1', 0, '{"CTI_GHM80"}'),
('b56adc4b-31ae-4f7f-bbb8-6fd3c891efb3', 'CTI_CAS|CTI_INFO', 'cti', 'DMS', 0, 5, 2, 5, 'val', 't', 'CTI_CAS|1', 0, '{"CTI_DMSHOSP"}'),
('c07d7267-ab42-4e01-8e38-835c20f763ed', 'CTI_CAS|CTI_INFO', 'cti', 'Séjours', 0, 10, 2, 5, 'val', 't', 'CTI_CAS|1', 0, '{"CTI_NBSEJGR"}'),
('0b4f34a5-5542-49aa-a5c6-4666077e3e6c', 'CTI_CAS|CTI_NBSEJ', 'cti', 'Nombre de sejours', 0, 27, 6, 10, 'val', 't', 'CTI_CAS|1', 8, '{"CTI_NBSEJFEMMES", "CTI_NBSEJHOMMES"}'),
('0a339d4b-5ef5-477d-9397-65626f076cbb', 'CTI_CAS|CTI_NBSEJCAS', 'cti', 'Séjours PMSI par CAS', 4, 15, 2, 12, 'val', 't', 'CTI_CAS|1', 0, '{"CTI_NBSEJ"}')
;
-- 3/3 : Màj de la table iCTI
DELETE FROM pmsi.t_widget_user_parameter WHERE username = 'cti';
INSERT INTO pmsi.t_widget_user_parameter(
oid,
dashboard_widget_id,
username,
title,
x,
y,
w,
h,
time_calc,
visible,
tab_id,
max_cat,
include_series_id
)
SELECT
w_dbsetup.uuid,
t_dashboard_widget.oid,
w_dbsetup.username,
w_dbsetup.title,
w_dbsetup.x,
w_dbsetup.y,
w_dbsetup.w,
w_dbsetup.h,
w_dbsetup.time_calc,
w_dbsetup.visible,
pmsi.t_dashboard_onglet.oid,
w_dbsetup.max_cat,
case when array_agg(DISTINCT t_indicateur_serie.oid) = ARRAY[NULL]::bigint[] then ARRAY[]::bigint[] else array_agg(DISTINCT t_indicateur_serie.oid) end
FROM w_dbsetup
JOIN pmsi.t_dashboard ON t_dashboard.code = SPLIT_PART(dashboard_widget_code, '|', 1)
JOIN pmsi.t_chart on t_chart.code = SPLIT_PART(dashboard_widget_code, '|', 2)
JOIN pmsi.t_dashboard_widget ON t_dashboard_widget.dashboard_id = t_dashboard.oid and t_dashboard_widget.chart_id = t_chart.oid
JOIN pmsi.t_dashboard_onglet ON t_dashboard_onglet.dashboard_id = t_dashboard.oid and t_dashboard_onglet.index = SPLIT_PART(tab_code, '|', 2)
LEFT JOIN pmsi.t_indicateur_serie ON ARRAY[t_indicateur_serie.code] <@ include_series_code
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12
ORDER BY 1
;