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.
 
 

377 lines
12 KiB

<?xml version="1.0" encoding="ISO-8859-15"?>
<VUE name="ACTI000144"
label="Activité. Liste des coordonnées patients"
title="= 'Liste des coordonnées patients (' + SELECT.PERIODE_LABEL + ' à ' + SELECT.TOPERIODE_LABEL + ')'"
database="iCTI" swf="*CTI_view1"
softCode="iCTI_activite"
globals="ACTI_globals.XML"
componentsFile="ACTI_components.XML">
<VIEWPROPERTIES>
<PROPERTY name="NO_SEJOUR_SELECT">
<value>
<![CDATA[
[EVAL
if (('[NO_SEJOUR]') != '') {return " AND v_sejours_1.no_sejour = '[NO_SEJOUR]' "; }
return '';
EVAL]
]]>
</value>
</PROPERTY>
<PROPERTY name="NOM_SELECT">
<value>
<![CDATA[
[EVAL
if (('[NOM]') != '') {return " AND p_patients.nom ILIKE '[NOM]%' "; }
return '';
EVAL]
]]>
</value>
</PROPERTY>
<PROPERTY name="DATE_SEJOUR_SELECT">
<value>
<![CDATA[
[EVAL
if ('[QUELLEDATE]' == 'PR') {
return " AND v_sejours_1.date_entree <= '[TOPERIODE]' AND v_sejours_1.date_sortie >='[PERIODE]' ";
}
if ('[QUELLEDATE]' == 'EN') {
return " AND v_sejours_1.date_entree BETWEEN '[PERIODE]' AND '[TOPERIODE]' ";
}
if ('[QUELLEDATE]' == 'SO') {
return " AND code_sorti = '1' AND v_sejours_1.date_sortie BETWEEN '[PERIODE]' AND '[TOPERIODE]' ";
}
EVAL]
]]>
</value>
</PROPERTY>
<!--PROPERTY dataLink="VIEWPROPERTIES" nameField="name" valueField="value"></PROPERTY>
<PROPERTY name="CSVFILE_ID" value="[EVAL $ctidir = substr(strtoupper(iCTI_dir()),5); if (substr('[ENV.LOCALKEYS:TRIGRAMME]',0,1) != '[') { if (trim('[ENV.LOCALKEYS:TRIGRAMME]') != '') { return '[ENV.LOCALKEYS:TRIGRAMME]'; } } else{ return $ctidir; } EVAL]"></PROPERTY-->
</VIEWPROPERTIES>
<SELECTIONS label="Paramètres de l'analyse">
<GROUP>
<FIELD name="QUELLEDATE" label="" UI="combo" default="PR">
<OPTION label="Date présence" data="PR" />
<OPTION label="Date entrée" data="EN" />
<OPTION label="Date sortie" data="SO" />
</FIELD>
<FIELD name="PERIODE" label="Période E/S " UI="combo" tree="true" width="200" default="2007-01-01" globalListProvider="DATE_DEBUT">
</FIELD>
<FIELD name="TOPERIODE" label="à" UI="combo" tree="true" width="200" default="2007-01-31" globalListProvider="DATE_FIN">
</FIELD>
</GROUP>
<GROUP label="N° de séjour">
<FIELD name="NO_SEJOUR" label="" UI="text" width="100" default="" showIfNotDefault="true">
</FIELD>
</GROUP>
<GROUP label="Ou Nom">
<FIELD name="NOM" label="" UI="text" width="200" default="" showIfNotDefault="true">
</FIELD>
</GROUP>
</SELECTIONS>
<SELECTIONS componentName="FILTRES_PATIENTS_SELECTIONS" />
<SELECTIONS componentName="FILTRES_SEJOURS_SELECTIONS" />
<SELECTIONS componentName="FILTRES_MOUVEMENTS_SELECTIONS" />
<!-- <SELECTIONS componentName="FILTRES_CLIENTS_SELECTIONS" /> -->
<QUERIES>
<QUERY label="">
<SQL optimizer="V_SEJOURS_X" optimizer2="V_MOUVEMENTS_SEJOUR_X">
<select>
<![CDATA[
DROP TABLE IF EXISTS w_DATA;
CREATE TEMP TABLE w_DATA (finess_texte text, no_sejour_administratif text, exoneration_tm_code text);
SELECT base.cti_execute('
INSERT INTO w_DATA
SELECT t_finess.texte as finess_texte,
no_sejour_administratif,
exoneration_tm_code
FROM
pmsi.p_rss
LEFT JOIN pmsi.v_rsf_total_1 ON rss_id = p_rss.oid
LEFT JOIN base.t_finess ON p_rss.finess = t_finess.code
WHERE
etat != ''S''
AND date_entree <= ''[TOPERIODE]''
AND date_sortie >=''[PERIODE]''',1)
WHERE EXISTS (SELECT 1 FROM information_schema.views WHERE table_schema = 'pmsi' AND table_name = 'v_rsf_total_1');
SELECT base.cti_execute('
INSERT INTO w_DATA
SELECT t_finess.texte as finess_texte,
num_admin_sejour as numero_sejour_administratif,
t_exoneration_tm.code as exoneration_tm_code
FROM
pmsissr.p_ssr
LEFT JOIN pmsissr.p_rsf_a ON ssr_id = p_ssr.num_admin_sejour
LEFT JOIN base.t_finess ON p_ssr.finess_id = t_finess.oid
LEFT JOIN base.t_exoneration_tm ON justif_exo_tm = t_exoneration_tm.oid
WHERE
p_ssr.date_entree <= ''[TOPERIODE]''
AND p_ssr.date_sortie >=''[PERIODE]''',1)
WHERE EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'pmsissr' AND table_name = 'p_rsf_a');
SELECT base.cti_execute('
INSERT INTO w_DATA
SELECT t_finess.texte as finess_texte,
num_admin_sejour as numero_sejour_administratif,
t_exoneration_tm.code as exoneration_tm_code
FROM
pmsissr.p_ssr_fil_eau
LEFT JOIN pmsissr.p_rsf_a_fil_eau ON ssr_id = p_ssr_fil_eau.oid
LEFT JOIN base.t_finess ON p_ssr_fil_eau.finess_id = t_finess.oid
LEFT JOIN base.t_exoneration_tm ON justif_exo_tm = t_exoneration_tm.oid
WHERE
p_ssr_fil_eau.date_entree <= ''[TOPERIODE]''
AND p_ssr_fil_eau.date_sortie >=''[PERIODE]''',1)
WHERE EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'pmsissr' AND table_name = 'p_rsf_a_fil_eau');
SELECT DISTINCT
v_sejours_1.no_sejour AS "Code séjour"
,COALESCE(w_DATA.finess_texte,t_finess.texte) AS "Nom Etablissement"
,v_sejours_1.no_patient AS "IPP"
,prenom AS "Prénom"
,nom AS "Nom"
,p_coordonnees_patient.adresse AS "Adresse postale rue"
,code_postal_code AS "Adresse postale CP"
,code_postal_texte AS "Adresse postale ville"
,telephone_fixe AS "N° de téléphone fixe"
,telephone_portable AS "N° de téléphone portable"
,p_coordonnees_patient.email AS "Mail"
,sexe_texte_court AS "Sexe"
,age_id AS "Age"
,type_sejour_texte AS "MDT (Ambu,Hosp,externe,...)"
,lieu_sortie_service_texte AS "Service de facturation"
,exoneration_tm_code AS "Code exonération sécu"
,t_tiers_payant.texte || CASE
WHEN tiers_payant_22_id != 0
THEN ', ' || t_tiers_payant_22.code
ELSE ''
END AS "Codes mutuelles"
--lieu_id
FROM
#V_SEJOURS_X# LEFT JOIN w_DATA ON no_sejour_administratif = no_sejour
LEFT JOIN activite.p_patients ON v_sejours_1.no_patient = p_patients.no_patient
LEFT JOIN activite.p_coordonnees_patient ON p_coordonnees_patient.sejour_id = v_sejours_1.sejour_id
LEFT JOIN activite.t_tiers_payant ON t_tiers_payant.oid = tiers_payant_2_id AND tiers_payant_2_id != 0
LEFT JOIN activite.t_tiers_payant t_tiers_payant_22 ON t_tiers_payant_22.oid = tiers_payant_2_id AND tiers_payant_22_id != 0
JOIN base.t_finess ON t_finess.oid = (SELECT min(oid) FROM base.t_finess)
WHERE
v_sejours_1.date_entree <= '[TOPERIODE]'
AND v_sejours_1.date_sortie >='[PERIODE]'
[VIEW.NO_SEJOUR_SELECT]
[VIEW.NOM_SELECT]
[VIEW.SEJOURS_SELECT]
[VIEW.DATE_SEJOUR_SELECT]
[VIEW.PATIENTS_SELECT]
AND no_sejour = ANY(ARRAY(SELECT v_mouvements_sejour_2.no_sejour
FROM #V_MOUVEMENTS_SEJOUR_X#
JOIN #V_SEJOURS_X# ON v_mouvements_sejour_2.no_sejour = v_sejours_1.no_sejour
WHERE v_mouvements_sejour_2.date BETWEEN '[PERIODE]' AND '[TOPERIODE]'
[VIEW.NO_SEJOUR_SELECT]
[VIEW.MOUVEMENTS_SELECT]
[VIEW.PATIENTS_SELECT])::text[])
UNION ALL
SELECT
'-9999999',
COUNT(*)::text || ' séjours, ' || count(DISTINCT v_sejours_1.no_patient)::text || ' patients',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
FROM
#V_SEJOURS_X#, activite.p_patients
WHERE
v_sejours_1.date_entree <= '[TOPERIODE]'
AND v_sejours_1.date_sortie >='[PERIODE]'
AND v_sejours_1.no_patient = p_patients.no_patient
[VIEW.NO_SEJOUR_SELECT]
[VIEW.NOM_SELECT]
[VIEW.SEJOURS_SELECT]
[VIEW.DATE_SEJOUR_SELECT]
AND no_sejour = ANY(ARRAY(SELECT v_mouvements_sejour_2.no_sejour
FROM #V_MOUVEMENTS_SEJOUR_X#
JOIN #V_SEJOURS_X# ON v_mouvements_sejour_2.no_sejour = v_sejours_1.no_sejour
WHERE v_mouvements_sejour_2.date BETWEEN '[PERIODE]' AND '[TOPERIODE]'
[VIEW.NO_SEJOUR_SELECT]
[VIEW.MOUVEMENTS_SELECT]
[VIEW.PATIENTS_SELECT])::text[])
;
]]></select>
<FIELDS>
<FIELD name="NO_SEJOUR"></FIELD>
<FIELD name="ETAB"></FIELD>
<FIELD name="IPP"></FIELD>
<FIELD name="PRENOM" ifHideNames="Non autorisé"></FIELD>
<FIELD name="NOM" ifHideNames="Non autorisé"></FIELD>
<FIELD name="ADRESSE" ifHideNames="Non autorisé"></FIELD>
<FIELD name="CP"></FIELD>
<FIELD name="VILLE"></FIELD>
<FIELD name="TEL_FIXE" ifHideNames="Non autorisé"></FIELD>
<FIELD name="TEL_PORTABLE" ifHideNames="Non autorisé"></FIELD>
<FIELD name="EMAIL" ifHideNames="Non autorisé"></FIELD>
<FIELD name="SEXE"></FIELD>
<FIELD name="AGE"></FIELD>
<FIELD name="TYPE_SEJOUR"></FIELD>
<FIELD name="SERVICE"></FIELD>
<FIELD name="CODE_EXO"></FIELD>
<FIELD name="CODES_MUT"></FIELD>
</FIELDS>
</SQL>
</QUERY>
<QUERY type="propertiesLink" name="VIEWPROPERTIES" forRows="false" />
</QUERIES>
<PRESENTATION>
<VIEWLINKS>
<VIEWLINK label="Détail séjour" shortLabel="Détail séjour" view="ACTI000020.XML">
<ARG name="SEJOUR" value="ROW.NO_SEJOUR" />
</VIEWLINK>
</VIEWLINKS>
<ONGLET excelLabel="Liste séjours" label="Liste séjours">
<DATAGRID title="" total="true" key="NO_SEJOUR" headerHeight="36" totalRowInRows="= ROW.NO_SEJOUR == '-9999999'">
<COLUMN dataField="ETAB"
minWidth="110"
type="Char"
headerText="Etablissement"
textAlign="left"
otherFunction="text"
totalFunction="text"
/>
<COLUMN dataField="IPP"
width="50"
type="Char"
headerText="IPP"
textAlign="center"
otherFunction="text"
totalFunction="text"
/>
<COLUMN dataField="NO_SEJOUR"
width="60"
type="Char"
headerText="Code séjour"
textAlign="left"
totalFunction="text"
/>
<COLUMN dataField="NOM"
width="100"
type="Char"
headerText="Nom"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="PRENOM"
width="100"
type="Char"
headerText="Prénom"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="ADRESSE"
minWidth="160"
type="Char"
headerText="Adresse"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="CP"
width="40"
type="Char"
headerText="Code postal"
textAlign="center"
totalFunction="text" />
<COLUMN dataField="VILLE"
type="Char"
minWidth="100"
headerText="Ville"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="TEL_FIXE"
type="Char"
width="80"
headerText="Téléphone fixe"
textAlign="center"
totalFunction="text" />
<COLUMN dataField="TEL_PORTABLE"
type="Char"
width="80"
headerText="Téléphone portable"
textAlign="center"
totalFunction="text" />
<COLUMN dataField="EMAIL"
type="Char"
minWidth="150"
headerText="E-Mail"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="SEXE"
width="30"
type="Char"
headerText="Sexe"
textAlign="center"
totalFunction="text" />
<COLUMN dataField="AGE"
width="30"
type="Char"
headerText="Age"
textAlign="center"
totalFunction="text" />
<COLUMN dataField="TYPE_SEJOUR"
width="80"
type="Char"
headerText="Type séjour"
textAlign="left"
totalFunction="text" />
<COLUMN dataField="SERVICE"
minWidth="70"
type="Char"
headerText="Serv.Fact."
textAlign="left"
totalFunction="text" />
<COLUMN dataField="CODE_EXO"
width="35"
type="Char"
headerText="Code Exo."
textAlign="center"
totalFunction="text" />
<COLUMN dataField="CODES_MUT"
width="200"
type="Char"
headerText="Codes Mut."
textAlign="left"
totalFunction="text" />
</DATAGRID>
</ONGLET>
</PRESENTATION>
</VUE>