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.
 
 

134 lines
2.8 KiB

<?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);
}