Location: PHPKode > projects > Castor (medical information manager) > castorV2030-3/castor-ss/classHoja92007.php
<?php
/*
----------------------------------------------------------------------------------------
Castor is a system to manage medical information.

Copyright (C) 2002, 2007 INTTELMEX hide@address.com, hide@address.com, hide@address.com

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-----------------------------------------------------------------------------------------

Castor es un sistema para el manejo de información médica
Copyright (C) 2002, 2007 INTTELMEX hide@address.com, hide@address.com,hide@address.com

Este programa es Software Libre; usted puede redistribuirlo
y/o modificarlo bajo los términos de la "GNU General Public
License" como lo publica la "FSF Free Software Foundation" version 2,
o de cualquier versión posterior.

Este programa es distribuido con la esperanza de que le será
útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
particular. Vea la "GNU General Public License" para más
detalles.

Usted debe haber recibido una copia de la "GNU General Public
License" junto con este programa, si no, escriba a la "FSF
Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
Boston, MA  02111-1307, USA.
----------------------------------------------------------------------------------------------
*/

/** PARA LA HOJA 9 2007: DETECCIONES 
 *  
 *  Detecciones de DM, HA, OB, Dislipidemias, y m&aacute;s. Ver el cat&aacute;logo <em>detecciones</em>.
 *  @see Formatos2007
 *  @author Torres Hernandez Denisse Alejandra <em>hide@address.com</em>
 */
class Hoja92007 extends Formatos2007{




/**  HOJA 9>> Detecciones de DM, HA, Ob, Dislipidemias.
 *
 *  <b>Consulta a las tablas de BD:</b> <em>rel_det_consulta,pacientes,consulta</em>.
 *  @return  arreglo con consultas que reportaron una detecci&oacute;n Cr&oacute;nica.
 */
function deteccionesCronicas()
{
  $edadMinima = 20;
	if($this->tipoUsuario==1)
		$sql_prueba=new Tquery("select rel_det_consulta.iddetecciones,
									rel_det_consulta.idestado,
									rel_det_consulta.metodo,
									pacientes.idsexo
                                    FROM
                                    rel_det_consulta,pacientes,consulta where
									consulta.fecha>='$this->fecha1' and
									consulta.fecha<='$this->fecha2' and
									consulta.idconsulta=rel_det_consulta.idconsulta and
									pacientes.idpaciente=consulta.idpaciente and
									consulta.idunidad='$this->idunidad'  and
                                                                        extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima;");
	else if($this->tipoUsuario==2 && $this->tipo==2)
		$sql_prueba=new Tquery("select rel_det_consulta.iddetecciones,
								rel_det_consulta.idestado,
								rel_det_consulta.metodo,
								pacientes.idsexo
                                FROM
                                rel_det_consulta,pacientes,consulta,unidades where
								consulta.fecha>='$this->fecha1' and
								consulta.fecha<='$this->fecha2' and
								consulta.idconsulta=rel_det_consulta.idconsulta and
								pacientes.idpaciente=consulta.idpaciente and
								unidades.clave_unidad=consulta.idunidad and 
                                                                unidades.estado='$this->entidad'  and
                                                                extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima;");
	else if($this->tipoUsuario==2 && $this->tipo==3)
		$sql_prueba=new Tquery("select rel_det_consulta.iddetecciones,
								rel_det_consulta.idestado,
								rel_det_consulta.metodo,
								pacientes.idsexo
                                FROM
                                rel_det_consulta,pacientes,consulta,unidades where
								consulta.fecha>='$this->fecha1' and
								consulta.fecha<='$this->fecha2' and
								consulta.idconsulta=rel_det_consulta.idconsulta and
								pacientes.idpaciente=consulta.idpaciente and
								unidades.clave_unidad=consulta.idunidad and 
                                                                unidades.estado='$this->entidad' and 
								unidades.jurisdiccion='$this->jurisdiccion'   and
                                                                extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima;");
		return $diabetes=$sql_prueba->consulta();
}


/**  HOJA 9>> SIFILIS PARA EMBARAZADAS
 *
 *  <b>Consulta a las tablas de BD:</b> <em>rel_det_consulta,consulta,rel_cont_pren</em>.
 *  @return arreglo con el estado de la detecci&oacute;n de s&iacute;filis en mujeres embarazadas y con el conteo total.
 */
function sifilis()
{
	if($this->tipoUsuario==1)
		$sql_sifilis=new Tquery("select rel_det_consulta.idestado,count(rel_det_consulta.idestado)
		FROM rel_det_consulta,consulta,rel_cont_pren where
		rel_det_consulta.iddetecciones=6 and consulta.idconsulta=rel_det_consulta.idconsulta and
		consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		consulta.idunidad='$this->idunidad' and	rel_det_consulta.idconsulta=rel_cont_pren.idconsulta
		group by rel_det_consulta.idestado;" );
	else if($this->tipoUsuario==2 && $this->tipo==2)
		$sql_sifilis=new Tquery("select rel_det_consulta.idestado,count(rel_det_consulta.idestado)
		FROM rel_det_consulta,consulta,rel_cont_pren,unidades where
		rel_det_consulta.iddetecciones=6 and consulta.idconsulta=rel_det_consulta.idconsulta and
		consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		unidades.clave_unidad=consulta.idunidad and unidades.estado='$this->entidad' and			
		rel_det_consulta.idconsulta=rel_cont_pren.idconsulta
		group by rel_det_consulta.idestado;" );
	else if($this->tipoUsuario==2 && $this->tipo==3)
		$sql_sifilis=new Tquery("select rel_det_consulta.idestado,count(rel_det_consulta.idestado)
		FROM rel_det_consulta,consulta,rel_cont_pren,unidades where
		rel_det_consulta.iddetecciones=6 and consulta.idconsulta=rel_det_consulta.idconsulta and
		consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		unidades.clave_unidad=consulta.idunidad and unidades.estado='$this->entidad' and
		unidades.jurisdiccion='$this->jurisdiccion'and			
		rel_det_consulta.idconsulta=rel_cont_pren.idconsulta
		group by rel_det_consulta.idestado;" );
	return $sifilis=$sql_sifilis->consulta();
}


/**  HOJA 9>> DETECCION DE OBESIDAD
 *
 *  <b>Consulta a las tablas de BD:</b> <em>rel_det_consulta,consulta, pacientes</em>.
 *  @return arreglo con el estado de las detecciones de obesidad.
 */
function obesidad()
{
  $edadMinima = 10;
	if($this->tipoUsuario==1)
		$sql_obe = new Tquery ("
                select  rel_det_consulta.idestado,rel_det_consulta.metodo, pacientes.idsexo 
                from    rel_det_consulta,consulta, pacientes 
                where   consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		        consulta.idconsulta=rel_det_consulta.idconsulta and rel_det_consulta.iddetecciones=9  
		        and pacientes.idpaciente=consulta.idpaciente and consulta.idunidad='$this->idunidad' and
                        extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima  ;");	
	else if($this->tipoUsuario==2 && $this->tipo==2)
		$sql_obe = new Tquery ("select rel_det_consulta.idestado,rel_det_consulta.metodo,
		pacientes.idsexo from rel_det_consulta,consulta, pacientes,unidades 
        where consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		consulta.idconsulta=rel_det_consulta.idconsulta and rel_det_consulta.iddetecciones=9  
		and pacientes.idpaciente=consulta.idpaciente and unidades.clave_unidad=consulta.idunidad and 
		unidades.estado='$this->entidad' and
                        extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima ;");	
	else if($this->tipoUsuario==2 && $this->tipo==3)
		$sql_obe = new Tquery ("select rel_det_consulta.idestado,rel_det_consulta.metodo,
		pacientes.idsexo from rel_det_consulta,consulta, pacientes,unidades 
        where consulta.fecha>='$this->fecha1' and consulta.fecha<='$this->fecha2' and
		consulta.idconsulta=rel_det_consulta.idconsulta and	rel_det_consulta.iddetecciones=9  
		and pacientes.idpaciente=consulta.idpaciente and unidades.clave_unidad=consulta.idunidad and 
		unidades.estado='$this->entidad' and unidades.jurisdiccion='$this->jurisdiccion'  and
                        extract(years from age(consulta.fecha,pacientes.fecha))>=$edadMinima ;");	
	return $obesidad=$sql_obe->consulta();
}



/** HOJA 9>> Para Depresi&oacute;n, Hiperplascia Prot, Alteracion de la memoria
 *
 * 
 *  @param $met el metodo de detecci&oacute;n.
 *  @param $edo el estado con el que se report&oacute; la detecci&oacute;n.
 *  @param $sexo el sexo de los pacientes que se quieren consultar.
 *  @return conteo de consultas que reportaron la detecci&oacute;n con el m&eacute;todo y el estado correspondiente a los par&aacute;metros.
 */
 function otrasDetecciones( $met, $edo, $sexo )
{
	if($this->tipoUsuario==1)
	$sql_plascia=new Tquery( "SELECT count(consulta.idpaciente) 
                                  from pacientes, rel_det_consulta, consulta 
                                  where iddetecciones='$met' and 
                                        consulta.idconsulta = rel_det_consulta.idconsulta and 
                                        consulta.fecha>='$this->fecha1'and 
                                        consulta.fecha<='$this->fecha2' and 
                                        pacientes.idpaciente = consulta.idpaciente and 
                                        pacientes.idsexo='$sexo' and idestado='$edo' and  
                                        consulta.idunidad='$this->idunidad'; " );
	else if($this->tipoUsuario==2 && $this->tipo==2)
	$sql_plascia=new Tquery( "SELECT count(consulta.idpaciente) 
                                  from pacientes, rel_det_consulta, consulta, unidades
                                  where iddetecciones='$met' and 
                                        consulta.idconsulta = rel_det_consulta.idconsulta and 
                                        consulta.fecha>='$this->fecha1'and 
                                        consulta.fecha<='$this->fecha2' and 
                                        pacientes.idpaciente = consulta.idpaciente and 
                                        pacientes.idsexo='$sexo' and idestado='$edo' and  
                                        unidades.clave_unidad=consulta.idunidad and 	
	                                unidades.estado='$this->entidad';" );
	else if($this->tipoUsuario==2 && $this->tipo==3)
	$sql_plascia=new Tquery("SELECT count(consulta.idpaciente) 
                                  from pacientes, rel_det_consulta, consulta , unidades
                                  where iddetecciones='$met' and 
                                        consulta.idconsulta = rel_det_consulta.idconsulta and 
                                        consulta.fecha>='$this->fecha1'and 
                                        consulta.fecha<='$this->fecha2' and 
                                        pacientes.idpaciente = consulta.idpaciente and 
                                        pacientes.idsexo='$sexo' and idestado='$edo' and  
                                        unidades.clave_unidad=consulta.idunidad and 
	                                unidades.estado='$this->entidad' and 
                                        unidades.jurisdiccion='$this->jurisdiccion';" );
	$tabla_plas = $sql_plascia->consulta( );


	if( $dato = @pg_fetch_array( $tabla_plas, 0 ) ) $totalh = $dato[0];
	else $totalh=0;

	return $totalh; 
 }

/** 
 *  HOJA 4: METOD DE DETECCION EN PACIENTES EMBARAZADAS
 *  <b>Consulta a las tablas de BD:</b> <em>ce,cesu, rel_det_consulta</em>.
 *  @param $estado 1=positivo, 2=negativo o 3=pendiente.
 *  @param $metodo consultorio o cuestionario, tira reactiva.
 *  @return n&uacute;mero de embarazadas con detecci&oacute;n en consulta.
 */
function metodoEmbarazadas( $estado, $metodo ){

    if ( $this->tipoUsuario==1 )
       $sqlMetodo=new Tquery( "SELECT count(*) 
                                 FROM   ce, rel_det_consulta 
                                 WHERE  ce.idconsulta=rel_det_consulta.idconsulta and 
                                        rel_det_consulta.metodo='$metodo' and 
                                        rel_det_consulta.idestado='$estado' and 
                                        ce.fecha>='$this->fecha1' and 
                                        ce.fecha<='$this->fecha2' and 
                                        ce.idunidad='$this->idunidad';" );
    
    else if ( $this->tipoUsuario==2 && $this->tipo==2 )  // ESTATAL
        $sqlMetodo=new Tquery( "SELECT count(*) 
                                 FROM   cesu, rel_det_consulta 
                                 WHERE  cesu.idconsulta=rel_det_consulta.idconsulta and 
                                        rel_det_consulta.metodo='$metodo' and 
                                        rel_det_consulta.idestado='$estado' and 
                                        cesu.fecha>='$this->fecha1' and 
                                        cesu.fecha<='$this->fecha2' and 
                                        cesu.estado='$this->entidad' ; " );
    
    else if ( $this->tipoUsuario==2  &&  $this->tipo==3 )
        $sqlMetodo=new Tquery( "SELECT count(*) 
                                 FROM   cesu, rel_det_consulta 
                                 WHERE  cesu.idconsulta=rel_det_consulta.idconsulta and 
                                        rel_det_consulta.metodo='$metodo' and 
                                        rel_det_consulta.idestado='$estado' and 
                                        cesu.fecha>='$this->fecha1' and 
                                        cesu.fecha<='$this->fecha2' and 
                                        cesu.estado='$this->entidad' and 
                                        cesu.jurisdiccion='$this->jurisdiccion' ; " );
    $tablaMetodo = $sqlMetodo->consulta( );
    if( $row= @pg_fetch_array( $tablaMetodo, 0 ) )
      return $row[0];
    else
      return '0';
}



/** 
 *  HOJA 4: TOTAL TIRAS
 *  <b>Consulta a las tablas de BD:</b> <em>consulta, rel_det_consulta</em>.
 *  @param $metodo consultorio o cuestionario, tira reactiva.
 *  @return n&uacute;mero de consultas con detecciones por m&eacute;todo.
 */
function metodoTotal( $metodo ){

  
    $sqlMetodo=new Tquery( "SELECT count(*) 
                              FROM   consulta, rel_det_consulta  ".$this->unidad[0]."
                              WHERE  rel_det_consulta.idconsulta=consulta.idconsulta and 
                                     rel_det_consulta.metodo='$metodo' and 
                                     consulta.fecha>='" . $this->fecha1 . "' and 
                                     consulta.fecha<='" . $this->fecha2 . "' 
                                     ".$this->unidad[1]." ;" );

    $tablaMetodo = $sqlMetodo->consulta( );
    if( $row= @pg_fetch_array( $tablaMetodo, 0 ) )
      return 0 + $row[0] - $this->metodoEmbarazadas( '1', $metodo ) - $this->metodoEmbarazadas( '2', $metodo ) + 0 ;
    else
      return '0';
}



/** 
 *  HOJA 4: SINDROME METABOLICO
 *  <b>Consulta a las tablas de BD:</b> <em>rel_det_consulta, consulta, pacientes</em>.
 *  @param $sexo es 1 param Masculino y 2 para Femenino
 *  @return n&uacute;mero de consultas con detecciones de HA y DM, enf cronicas.
 */
 function sindromeMetabolico( $sexo ){
   
   $sqlSM=new Tquery( "SELECT count(*) as num
                       FROM   ( SELECT count(DISTINCT iddetecciones) as cc 
                                FROM   rel_det_consulta, consulta, pacientes  ".$this->unidad[0]." 
                                WHERE  consulta.idconsulta=rel_det_consulta.idconsulta and 
                                       consulta.fecha>='" . $this->fecha1 . "' and 
                                       consulta.fecha<='" . $this->fecha2 . "' and
                                       (iddetecciones='3' or iddetecciones='4') and 
                                       idestado='1' and
                                       consulta.idpaciente=pacientes.idpaciente and
                                       pacientes.idsexo='$sexo'  
                                       ".$this->unidad[1]."
                                GROUP BY consulta.idpaciente ) as foo  
                       WHERE cc>1;" );
   $resSM = $sqlSM->consulta( );
   
   if( $row= @pg_fetch_array( $resSM, 0 ) )
     return $row['num'];
   
   return '0';
   
 }

}
?>
Return current item: Castor (medical information manager)