<?php
|
|
global $iCTI_connexion;
|
|
|
|
/**
|
|
* Supprime les séjours qui ne sont plus présents dans p_rss
|
|
*/
|
|
function nettoyer_sejours($do_analyse = false)
|
|
{
|
|
global $iCTI_connexion;
|
|
|
|
logInfoMsg("Suppression des séjours non présent dans p_rss");
|
|
|
|
$do_analyse = $do_analyse ? 'TRUE' : 'FALSE';
|
|
|
|
$toResult = $iCTI_connexion->query("SELECT pmsi.cti_nettoyer_sejours($do_analyse)");
|
|
if ($toResult == FALSE) {
|
|
logErrorMsg("Erreur Lancement fonction cti_nettoyer_sejours()");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Supprime les séjours de p_rss avant $year
|
|
* Puis supprime les séjours qui ne sont plus présents dans p_rss
|
|
*/
|
|
function nettoyer_sejours_jusqua($year, $do_analyse = false)
|
|
{
|
|
global $iCTI_connexion;
|
|
|
|
logInfoMsg("Suppression des séjours avant l'année $year");
|
|
|
|
$do_analyse = $do_analyse ? 'TRUE' : 'FALSE';
|
|
|
|
$sqlcmd = "SELECT pmsi.cti_nettoyer_sejours_jusqua($year, $do_analyse)";
|
|
|
|
$toResult = $iCTI_connexion->query($sqlcmd);
|
|
if ($toResult == FALSE) {
|
|
logErrorMsg("Erreur Lancement fonction cti_nettoyer_sejours_jusqua()");
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////// ANNEE ET MOIS //////////////////////
|
|
|
|
|
|
/**
|
|
* Détermine si le paramètre $year_AX est du type 'A2, A5'
|
|
*/
|
|
function is_year_AX($year_AX)
|
|
{
|
|
$annee_mois = trim($year_AX);
|
|
// A0 || A1 || A2 .....
|
|
$pattern = '/^A\d$/i';
|
|
return preg_match($pattern, $annee_mois);
|
|
}
|
|
|
|
|
|
/**
|
|
* Transforme $year_AX du type 'A2' en année en cours moins le nombre d'année
|
|
* Ex: Pour l'année 2023
|
|
* A1 = 2022
|
|
* A4 = 2019
|
|
*/
|
|
function transform_AX_in_year($year_AX)
|
|
{
|
|
//année en cours moins nombre années demandées
|
|
$nbAnnee = intval(substr($year_AX, 1));
|
|
if ($nbAnnee === 0 && intval(date("m")) < 7) {
|
|
$nbAnnee = 1;
|
|
}
|
|
|
|
return date("Y") - $nbAnnee;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Determine si c'est une entête vide
|
|
* Dans certains cas, il y a une ligne en plus au début des fichiers
|
|
* Il peut y avoir quelque charactère au début de la ligne, on ne commence pas au début
|
|
*/
|
|
function is_entete_empty($buffer)
|
|
{
|
|
$entete = trim(substr($buffer, 60, 100));
|
|
if ($entete == "") {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
function analyse_table($table_name)
|
|
{
|
|
global $iCTI_connexion;
|
|
|
|
$toResult = $iCTI_connexion->query("ANALYSE pmsi.$table_name");
|
|
if ($toResult == FALSE) {
|
|
logErrorMsg("Erreur ANALYSE pmsi.$table_name");
|
|
}
|
|
}
|
|
|
|
|
|
function vacuum_table($table_name)
|
|
{
|
|
global $iCTI_connexion;
|
|
|
|
|
|
$toResult = $iCTI_connexion->query("VACUUM ANALYSE pmsi.$table_name");
|
|
if ($toResult == FALSE) {
|
|
logErrorMsg("Erreur VACUUM ANALYSE pmsi.$table_name");
|
|
}
|
|
}
|
|
|
|
|
|
function analyse_table_temp($table_name)
|
|
{
|
|
global $iCTI_connexion;
|
|
|
|
$toResult = $iCTI_connexion->query("ANALYSE temp.$table_name");
|
|
if ($toResult == FALSE) {
|
|
logErrorMsg("Erreur ANALYSE temp.$table_name");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Extraction données Cancéro (nouvelle méthode)
|
|
*/
|
|
function execute_etude($etude)
|
|
{
|
|
$em = new EtudeManager();
|
|
$em->clear($etude);
|
|
$em->execute($etude);
|
|
}
|