|
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
|
<VUE name="PMSI000023" label="PMSI. Comparaison Fréquence diagnostics" title="= 'Comparaison Fréquence diagnostics par ' + SELECT.GROUPBY_LABEL + ' (' + SELECT.PERIODE_LABEL + ' à ' + SELECT.TOPERIODE_LABEL + ' vs ' + SELECT.PERIODE_D_LABEL + ' à ' + SELECT.TOPERIODE_D_LABEL + ') - ' + SELECT.VERSION_GROUPAGE_LABEL" database="iCTI" swf="*CTI_view1" softCode="iCTI_pmsi" globals="PMSI_globals.XML" componentsFile="PMSI_components.XML" helpDokuWIkiDir="pmsi:sejour_analyse_detaillee:diagnostics" helpDokuWIkiFile="pmsi000020" helpFile="iCTI_PMSI_PMSI000023.HTML">
|
|
|
<VIEWPROPERTIES componentName="PROPERTIES_DIAG" />
|
|
|
<VIEWPROPERTIES componentName="PROPERTIES_SELECT_TABTREE" />
|
|
|
<VIEWPROPERTIES>
|
|
|
<PROPERTY name="DATAFUNC">
|
|
|
<value><![CDATA[[EVAL
|
|
|
// <?php
|
|
|
|
|
|
function PMSI000023_calcSQL($data) {
|
|
|
|
|
|
// Pas de donnée sélectionnée, on renvoie des valeurs à zéro
|
|
|
if ($data == '0') {
|
|
|
return '0, 0';
|
|
|
}
|
|
|
|
|
|
$sumCaseWhen = "sum(CASE WHEN date_sortie BETWEEN @date_debut@ AND @date_fin@ THEN %s ELSE 0 END)";
|
|
|
$periodeDebut = '\'[PERIODE]\'::date';
|
|
|
$periodeFin = '\'[TOPERIODE]\'::date';
|
|
|
$periodePrecDebut = '\'[PERIODE_D]\'::date';
|
|
|
$periodePrecFin = '\'[TOPERIODE_D]\'::date';
|
|
|
|
|
|
switch ($data) {
|
|
|
case '1': // Fréquence diagnostics
|
|
|
$tmp = sprintf($sumCaseWhen, 'nb_diagnostics');
|
|
|
break;
|
|
|
case '2': // Fréquence diagnostics principaux
|
|
|
$tmp = sprintf($sumCaseWhen, 'nb_diagnostics_rss_p');
|
|
|
break;
|
|
|
case '3': // % diagnostics principaux
|
|
|
$tmpA = sprintf($sumCaseWhen, 'nb_diagnostics_rss_p');
|
|
|
$tmpB = sprintf($sumCaseWhen, 'nb_diagnostics');
|
|
|
$tmp = sprintf('100 * base.cti_division(%s, %s)', $tmpA, $tmpB);
|
|
|
break;
|
|
|
case '4': // Fréquence diagnostics reliés
|
|
|
$tmp = sprintf($sumCaseWhen, 'nb_diagnostics_rss_r');
|
|
|
break;
|
|
|
case '5': // Fréquence diagnostics associés
|
|
|
$tmp = sprintf($sumCaseWhen, 'nb_diagnostics_rss_a');
|
|
|
break;
|
|
|
default : // Nombre de séjours par défaut
|
|
|
$tmp = sprintf($sumCaseWhen, 'nb_diagnostics');
|
|
|
}
|
|
|
|
|
|
$toReplace = array(
|
|
|
'@date_debut@',
|
|
|
'@date_fin@'
|
|
|
);
|
|
|
|
|
|
$curPeriod = array(
|
|
|
$periodeDebut,
|
|
|
$periodeFin
|
|
|
);
|
|
|
|
|
|
$prevPeriod = array(
|
|
|
$periodePrecDebut,
|
|
|
$periodePrecFin
|
|
|
);
|
|
|
|
|
|
return str_replace($toReplace, $curPeriod, $tmp) . ', ' . str_replace($toReplace, $prevPeriod, $tmp);
|
|
|
}
|
|
|
|
|
|
// ?>
|
|
|
EVAL]]]></value>
|
|
|
</PROPERTY>
|
|
|
<PROPERTY name="DATASQL">
|
|
|
<value><![CDATA[[EVAL
|
|
|
// <?php
|
|
|
|
|
|
return
|
|
|
PMSI000023_calcSQL('[DATA1]') . ', 0, 0, ' . PHP_EOL .
|
|
|
PMSI000023_calcSQL('[DATA2]') . ', 0, 0, ' . PHP_EOL .
|
|
|
PMSI000023_calcSQL('[DATA3]') . ', 0, 0, ' . PHP_EOL .
|
|
|
PMSI000023_calcSQL('1') . ', ' . PHP_EOL .
|
|
|
PMSI000023_calcSQL('2');
|
|
|
|
|
|
// ?>
|
|
|
EVAL]]]></value>
|
|
|
</PROPERTY>
|
|
|
</VIEWPROPERTIES>
|
|
|
<SELECTIONS label="Paramètres de l'analyse">
|
|
|
<GROUP label="Période">
|
|
|
<FIELD name="ALIAS_PERIODE" label="" UI="combo" width="220" default="CUM_LAST_MONTH" tree="true" globalListProvider="ALIAS_PERIODE" />
|
|
|
<FIELD name="PERIODE" label="Période" UI="combo" tree="true" width="150" default="2014-07-01" printable="false" globalListProvider="DATE_DEBUT" />
|
|
|
<FIELD name="TOPERIODE" label="à" UI="combo" tree="true" width="150" default="2014-12-31" printable="false" globalListProvider="DATE_FIN" />
|
|
|
</GROUP>
|
|
|
<GROUP label="Période précédente">
|
|
|
<FIELD name="PERIODE_D" label="" UI="combo" tree="true" width="150" default="2014-01-01" printable="false" globalListProvider="DATE_DEBUT" />
|
|
|
<FIELD name="TOPERIODE_D" label="à" UI="combo" tree="true" width="150" default="2014-06-30" printable="false" globalListProvider="DATE_FIN" />
|
|
|
</GROUP>
|
|
|
<GROUP label="Regroupements">
|
|
|
<FIELD name="GROUPBY" width="220" label="" UI="combo" default="DIAG" tree="true">
|
|
|
<OPTION label="Options" data="" globalListProvider="DIAG_GROUPBY_OPTIONS" />
|
|
|
</FIELD>
|
|
|
<FIELD name="GROUPBY_TAB" width="100" label="Présentation" UI="combo" default="AUTO" visible="= SELECT.GROUPBY_2 != '-1' ">
|
|
|
<OPTION label="Automatique" data="AUTO" />
|
|
|
<OPTION label="Arbre" data="TREE" />
|
|
|
<OPTION label="Onglet" data="TAB" />
|
|
|
</FIELD>
|
|
|
</GROUP>
|
|
|
<GROUP label="">
|
|
|
<FIELD name="GROUPBY_2" width="220" label="" UI="combo" default="-1" tree="true">
|
|
|
<OPTION label="Pas de second niveau" data="-1" />
|
|
|
<OPTION label="Options" data="" globalListProvider="DIAG_GROUPBY_OPTIONS" />
|
|
|
</FIELD>
|
|
|
</GROUP>
|
|
|
<GROUP label="">
|
|
|
<FIELD name="GROUPBY_3" width="220" label="" UI="combo" default="-1" tree="true">
|
|
|
<OPTION label="Pas de troisième niveau" data="-1" />
|
|
|
<OPTION label="Options" data="" globalListProvider="DIAG_GROUPBY_OPTIONS" />
|
|
|
</FIELD>
|
|
|
</GROUP>
|
|
|
<GROUP>
|
|
|
<FIELD name="DATA1" label="Données" UI="combo" default="1" default2="0" tree="true" printable="false">
|
|
|
<OPTION label="Options" data="" globalListProvider="DATA_DIAG" />
|
|
|
</FIELD>
|
|
|
<FIELD name="DATA2" label="" UI="combo" default="0" default2="0" tree="true" printable="false">
|
|
|
<OPTION label="" data="0" />
|
|
|
<OPTION label="Options" data="" globalListProvider="DATA_DIAG" />
|
|
|
</FIELD>
|
|
|
<FIELD name="DATA3" label="" UI="combo" default="0" default2="0" tree="true" printable="false">
|
|
|
<OPTION label="" data="0" />
|
|
|
<OPTION label="Options" data="" globalListProvider="DATA_DIAG" />
|
|
|
</FIELD>
|
|
|
</GROUP>
|
|
|
</SELECTIONS>
|
|
|
<SELECTIONS componentName="FILTRES_DIAG_SELECTIONS" />
|
|
|
<SELECTIONS componentName="FILTRES_DIAG_SOUSSELECTIONS" />
|
|
|
<SELECTIONS componentName="FILTRES_RSS_SELECTIONS" />
|
|
|
<QUERIES>
|
|
|
<QUERY label="">
|
|
|
<SQL optimizer="V_RSS_X" cacheEnabled="true">
|
|
|
<select><![CDATA[
|
|
|
|
|
|
CTISELECT_TREE
|
|
|
GROUPBY1{[VIEW.SELECT_TABTREE_OID_FIELD],, [VIEW.SELECT_TABTREE_COD_FIELD],, [VIEW.SELECT_TABTREE_TXT_FIELD]}
|
|
|
GROUPBY1MODE{[GROUPBY_TAB]}
|
|
|
GROUPBY2{[VIEW.SELECT_TABTREE_2_OID_FIELD],, [VIEW.SELECT_TABTREE_2_COD_FIELD],, [VIEW.SELECT_TABTREE_2_TXT_FIELD]}
|
|
|
GROUPBY3{[VIEW.SELECT_TABTREE_3_OID_FIELD],, [VIEW.SELECT_TABTREE_3_COD_FIELD],, [VIEW.SELECT_TABTREE_3_TXT_FIELD]}
|
|
|
SIGNIFDATA{[VIEW.SELECT_TABTREE_ACTIVITE_SIGNIFICATIVE_DATA],, [ACTIVITE_SIGNIFICATIVE_MODE],, [ACTIVITE_SIGNIFICATIVE_NUMBER]}
|
|
|
OPTIONS{NOTZERO=1}
|
|
|
ORDERBY{[VIEW.DATA1],, DESC}
|
|
|
INDICATORS{
|
|
|
[VIEW.DATASQL]
|
|
|
}
|
|
|
FROM
|
|
|
#V_RSS_X#
|
|
|
JOIN pmsi.v_rss_diagnostics_1 ON v_rss_1.rss_id = v_rss_diagnostics_1.rss_id
|
|
|
WHERE 1=1
|
|
|
AND (
|
|
|
(date_sortie BETWEEN '[PERIODE_D]' AND '[TOPERIODE_D]')
|
|
|
OR
|
|
|
(date_sortie BETWEEN '[PERIODE]' AND '[TOPERIODE]')
|
|
|
)
|
|
|
[VIEW.FILTRE_DIAG_SELECT]
|
|
|
[VIEW.FILTRE_RSS_SELECT]
|
|
|
|
|
|
AFTER{
|
|
|
UPDATE w_table SET
|
|
|
indicateurs[3] = indicateurs[1] - indicateurs[2],
|
|
|
indicateurs[4] = CASE
|
|
|
WHEN indicateurs[1] > 0 AND indicateurs[2] > 0 THEN base.cti_division(indicateurs[1] - indicateurs[2], indicateurs[2]) * 100
|
|
|
ELSE 0 END,
|
|
|
indicateurs[7] = indicateurs[5] - indicateurs[6],
|
|
|
indicateurs[8] = CASE
|
|
|
WHEN indicateurs[5] > 0 AND indicateurs[6] > 0 THEN base.cti_division(indicateurs[5] - indicateurs[6], indicateurs[6]) * 100
|
|
|
ELSE 0 END,
|
|
|
indicateurs[11] = indicateurs[9] - indicateurs[10],
|
|
|
indicateurs[12] = CASE
|
|
|
WHEN indicateurs[9] > 0 AND indicateurs[10] > 0 THEN base.cti_division(indicateurs[9] - indicateurs[10], indicateurs[10]) * 100
|
|
|
ELSE 0 END
|
|
|
}
|
|
|
|
|
|
]]></select>
|
|
|
<FIELDS>
|
|
|
<INSERT name="CTISELECT_TREE_FIELDS" />
|
|
|
<FIELD name="SORT" />
|
|
|
|
|
|
<!-- Première donnée -->
|
|
|
<FIELD name="D1_NOW" />
|
|
|
<FIELD name="D1_OLD" />
|
|
|
<FIELD name="D1_ECA" />
|
|
|
<FIELD name="D1_PCT" />
|
|
|
|
|
|
<!-- Deuxième donnée -->
|
|
|
<FIELD name="D2_NOW" />
|
|
|
<FIELD name="D2_OLD" />
|
|
|
<FIELD name="D2_ECA" />
|
|
|
<FIELD name="D2_PCT" />
|
|
|
|
|
|
<!-- Troisième donnée -->
|
|
|
<FIELD name="D3_NOW" />
|
|
|
<FIELD name="D3_OLD" />
|
|
|
<FIELD name="D3_ECA" />
|
|
|
<FIELD name="D3_PCT" />
|
|
|
|
|
|
<!-- Premier graphique (Nombre de Diags) -->
|
|
|
<FIELD name="DI_NOW" />
|
|
|
<FIELD name="DI_OLD" />
|
|
|
|
|
|
<!-- Deuxmième graphique (Nombre de DP) -->
|
|
|
<FIELD name="DP_NOW" />
|
|
|
<FIELD name="DP_OLD" />
|
|
|
</FIELDS>
|
|
|
</SQL>
|
|
|
</QUERY>
|
|
|
</QUERIES>
|
|
|
<PRESENTATION>
|
|
|
<VIEWLINKS>
|
|
|
<VIEWLINK label="Justificatif Diagnostics par RSS" shortLabel="Liste Diagnostics" view="PMSI000021.XML" componentName="RSS_BASE_VIEWLINK" component2Name="DIAG_VIEWLINK" component3Name="DATE_COMP_2_VIEWLINK">
|
|
|
</VIEWLINK>
|
|
|
<VIEWLINK label="Liste des RSS" shortLabel="Liste RSS" view="PMSI000005.XML" componentName="RSS_BASE_VIEWLINK" component2Name="RSS_OTHERS_VIEWLINK" component3Name="DATE_COMP_2_VIEWLINK">
|
|
|
<ARG name="DIAG_2_RSS" value="if(SELECT.DIAG !='-1' && SELECT.T_DIAG !='-1') {return SELECT.DIAG}"/>
|
|
|
<ARG name="T_NB_DIAG_RSS" value="if((SELECT.GROUPBY.substr(0,3) != 'DIA') && (SELECT.T_NB_DIAG_RSS == '-1') ) { return 'I'} else { return SELECT.T_NB_DIAG_RSS}" />
|
|
|
<ARG name="NB_DIAG_RSS" value="if(SELECT.GROUPBY.substr(0,3) != 'DIA' && SELECT.NB_DIAG_RSS == '') { return '1'} else {return SELECT.NB_DIAG_RSS }" />
|
|
|
</VIEWLINK>
|
|
|
</VIEWLINKS>
|
|
|
<ONGLET excelLabel="Répartition mensuelle" label="Répartition mensuelle" multiTab="true" multiTabBreakField="TABD" multiTabBreakLabelField="TABDL" multiTabBreakLonglabelField="TABDLL">
|
|
|
<CHART title="Nombre de diagnostics pour les 12 premiers" type="columnChart" maxItems="12" maxItemsSortOn="DI_NOW" maxItemsSortSeq="D" sortField="CODTXT" sortSeq="A" condition="ROW.LVL == '1'">
|
|
|
<CATEGORY field="CODTXT" type="Char" />
|
|
|
<SERIE field="DI_OLD" displayName="'Nb ' + SELECT.PERIODE_D_LABEL + '-' + SELECT.TOPERIODE_D_LABEL" displayNameCalc="true" />
|
|
|
<SERIE field="DI_NOW" displayName="'Nb ' + SELECT.PERIODE_LABEL + '-' + SELECT.TOPERIODE_LABEL" displayNameCalc="true" />
|
|
|
</CHART>
|
|
|
<CHART title="DP pour les 12 premiers" type="columnChart" maxItems="12" maxItemsSortOn="DP_NOW" maxItemsSortSeq="D" sortField="CODTXT" sortSeq="A" condition="ROW.LVL == '1'">
|
|
|
<CATEGORY field="CODTXT" type="Char" />
|
|
|
<SERIE field="DP_OLD" displayName="'DP ' + SELECT.PERIODE_D_LABEL + '-' + SELECT.TOPERIODE_D_LABEL" displayNameCalc="true" />
|
|
|
<SERIE field="DP_NOW" displayName="'DP ' + SELECT.PERIODE_LABEL + '-' + SELECT.TOPERIODE_LABEL" displayNameCalc="true" />
|
|
|
</CHART>
|
|
|
<DATAGRID title="" total="true" showOthers="true" headerHeight="54" variableRowHeight="true" selectRowInRows="= ROW.OID == '-9999997'" otherRowInRows="= ROW.OID == '-9999998'" totalRowInRows="= ROW.OID == '-9999999'"
|
|
|
sortable="= SELECT.GROUPBY_2 == '-1' || SELECT.GROUPBY_3 == '-1' || SELECT.GROUPBY_TAB == 'TAB'">
|
|
|
<INSERT name="DATAGRID_MULTITAB_STYLES" />
|
|
|
<COLUMN dataField="DI_OLD" visible="false"/>
|
|
|
<COLUMN dataField="DI_NOW" visible="false"/>
|
|
|
<COLUMN dataField="LVL" width="50" type="Char" visible="false" headerText="Code" textAlign="left" otherFunction="text" totalFunction="text" />
|
|
|
<COLUMN dataField="OID" width="60" type="Char" visible="false" headerText="Oid" />
|
|
|
<COLUMN dataField="COD" width="70" type="Char" headerText="Code" textAlign="left" otherFunction="text" totalFunction="text" totalComplement="TOTAL">
|
|
|
<CELLSTYLE name="paddingLeft" value="15" condition="ROW.LVL == '2' && SELECT.GROUPBY_TAB != 'TAB'" />
|
|
|
</COLUMN>
|
|
|
<COLUMN dataField="TXT" type="Char" minWidth="200" headerText="SELECT.GROUPBY_LABEL" headerTextCalc="true" textAlign="left" totalFunction="text" otherFunction="text" otherComplement="Autres" >
|
|
|
</COLUMN>
|
|
|
<COLUMN dataField="CODTXT" type="Char" minWidth="200" visible="false" totalFunction="text" otherFunction="text" calc="true">
|
|
|
<CALC formula="ROW.COD + ' ' + ROW.TXT.toString().substr(0,10)" />
|
|
|
</COLUMN>
|
|
|
|
|
|
<COLUMN dataField="D1_OLD" type="Number" width="80" outputFormat="= SELECT.DATA14" selectable="true" headerText="SELECT.PERIODE_D_LABEL + '\n' + SELECT.TOPERIODE_D_LABEL + '\n' + SELECT.DATA13" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D1_NOW" type="Number" width="80" outputFormat="= SELECT.DATA14" selectable="true" headerText="SELECT.PERIODE_LABEL + '\n' + SELECT.TOPERIODE_LABEL + '\n' + SELECT.DATA13" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D1_ECA" type="Number" width="80" outputFormat="= SELECT.DATA14" headerText="Ecart">
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_down, 10, left middle, 0xD63E00" condition="ROW.D1_NOW < ROW.D1_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_up, 10, left middle, 0x75a0eb" condition="ROW.D1_NOW > ROW.D1_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="rectangle, 10, left middle, 0xFFA500" condition="ROW.D1_NOW != null && ROW.D1_OLD != null && ROW.D1_NOW == ROW.D1_OLD" />
|
|
|
</COLUMN>
|
|
|
<COLUMN dataField="D1_PCT" type="Number" width="45" outputFormat="= if (ROW.D1_OLD !=0) {return '0%'} else {return '#'}" headerText="% évol." />
|
|
|
|
|
|
<COLUMN dataField="D2_OLD" type="Number" width="80" visibleCondition="SELECT.DATA2 != '0'" outputFormat="= SELECT.DATA24" selectable="true" headerText="SELECT.PERIODE_D_LABEL + '\n' + SELECT.TOPERIODE_D_LABEL + '\n' + SELECT.DATA23" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D2_NOW" type="Number" width="80" visibleCondition="SELECT.DATA2 != '0'" outputFormat="= SELECT.DATA24" selectable="true" headerText="SELECT.PERIODE_LABEL + '\n' + SELECT.TOPERIODE_LABEL + '\n' + SELECT.DATA23" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D2_ECA" type="Number" width="80" visibleCondition="SELECT.DATA2 != '0'" outputFormat="= SELECT.DATA24" headerText="Ecart">
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_down, 10, left middle, 0xD63E00" condition="ROW.D2_NOW < ROW.D2_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_up, 10, left middle, 0x75a0eb" condition="ROW.D2_NOW > ROW.D2_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="rectangle, 10, left middle, 0xFFA500" condition="ROW.D2_NOW != null && ROW.D2_OLD != null && ROW.D2_NOW == ROW.D2_OLD" />
|
|
|
</COLUMN>
|
|
|
<COLUMN dataField="D2_PCT" type="Number" width="45" visibleCondition="SELECT.DATA2 != '0'" outputFormat="= if (ROW.D2_OLD != 0) {return '0%'} else {return '#'}" headerText="% évol." />
|
|
|
|
|
|
<COLUMN dataField="D3_OLD" type="Number" width="80" visibleCondition="SELECT.DATA3 != '0'" outputFormat="= SELECT.DATA34" selectable="true" headerText="SELECT.PERIODE_D_LABEL + '\n' + SELECT.TOPERIODE_D_LABEL + '\n' + SELECT.DATA33" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D3_NOW" type="Number" width="80" visibleCondition="SELECT.DATA3 != '0'" outputFormat="= SELECT.DATA34" selectable="true" headerText="SELECT.PERIODE_LABEL + '\n' + SELECT.TOPERIODE_LABEL + '\n' + SELECT.DATA33" headerTextCalc="true" />
|
|
|
<COLUMN dataField="D3_ECA" type="Number" width="80" visibleCondition="SELECT.DATA3 != '0'" outputFormat="= SELECT.DATA34" headerText="Ecart">
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_down, 10, left middle, 0xD63E00" condition="ROW.D3_NOW < ROW.D3_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="triangle_up, 10, left middle, 0x75a0eb" condition="ROW.D3_NOW > ROW.D3_OLD" />
|
|
|
<CELLSTYLE name="cellIndicator" value="rectangle, 10, left middle, 0xFFA500" condition="ROW.D3_NOW != null && ROW.D3_OLD != null && ROW.D3_NOW == ROW.D3_OLD" />
|
|
|
</COLUMN>
|
|
|
<COLUMN dataField="D3_PCT" type="Number" width="45" visibleCondition="SELECT.DATA3 != '0'" outputFormat="= if (ROW.D3_OLD != 0) {return '0%'} else {return '#'}" headerText="% évol." />
|
|
|
</DATAGRID>
|
|
|
</ONGLET>
|
|
|
</PRESENTATION>
|
|
|
</VUE>
|