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

Copyright (C) 2002, 2007 INTTELMEX 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

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.
----------------------------------------------------------------------------------------------
*/


/**
 *  Servir&aacute; para el despliegue din&aacute;mico de los Formatos 2007 >> Hoja 5
 *  Reporte de Planificaci&oacute;n Familiar.
 * 
 *  @see hoja5_2007.php
 *  @author Fabiola Zarate Mendoza <em>hide@address.com</em>.
 *
 */

class FormatoPlanificacionFamiliar extends Formatos2007{
  
  /** 
   * PARA LA HOJA 5 2007: Planificacion Familiar Consultas y atenciones de Primera Vez, Subcecuente e Indigenas.
   *
   * <b>Consulta a las tablas de BD:</b> <em>rel_planificacion.idmet, consulta, rel_planificacion, pacientes </em>.
   * @param $metodo es el metodo de planificacion familiar que se desea consultar. Ver el cat&aacute;logo <em>metodo</em>.
   * @param $idat es 1 si se trata de primera vez y 2 si es subsecuente.
   * @param $edadMin limite inferior para la edad de los pacientes.
   * @param $edadMax limite superior para la edad de los pacientes
   * @param $indigena es 't' o 'f', true si se trata de pacientes indigenas y false en otro caso.
   * @return el numero de pacientes que reportaron planif fam en una consulta con el metodo se&ntilde;alado.
   */
  function planificacionConsultas( $metodo ,  $idat, $edadMin, $edadMax, $indigena ){
    if( $metodo != null )
      $metodoQ = " and rel_planificacion.idmet='$metodo' ";
    else
      $metodoQ = " and rel_planificacion.idmet<10 ";
    
    $sqlPlanCon = new Tquery( "
                  SELECT count(idpaciente) 
                  FROM   ( SELECT pacientes.idpaciente, 
                                  extract( year from  age( (fecha_min+ time '00:00:00' ),
                                                           (pacientes.fecha  + time '00:00:00'))) as edad 
                           FROM   pacientes, 
                                  ( SELECT consulta.idpaciente, consulta.fecha as fecha_min 
                                    FROM   consulta, rel_planificacion ".$this->unidad[0]."
                                    WHERE  consulta.fecha>='" . $this->fecha1 . "' and 
                                           consulta.fecha<='" . $this->fecha2 . "' and 
                                           consulta.escritura='3' and
                                           rel_planificacion.idconsulta=consulta.idconsulta and 
                                           rel_planificacion.idat='$idat' $metodoQ
                                           ".$this->unidad[1]." ) as foo 
                           WHERE  pacientes.idpaciente=foo.idpaciente and
                                  pacientes.etnia_indigena='$indigena' 
                                   ) as bar 
                  WHERE edad<=$edadMax and edad>=$edadMin ;" );
    $resPlanCon = $sqlPlanCon->consulta( );
    $rowPlanCon = @pg_fetch_array( $resPlanCon, 0 );
    if( $rowPlanCon[0] != '' )
      return $rowPlanCon[0];
    else 
      return 0;
  }

  /**  
   * PARA LA HOJA 5 2007: Planificacion Familiar Metodos Entregados NO CONTABLES como el caso de Otros
   * 
   * @param $metodo es el metodo de planificacion familiar que se desea consultar. Ver el cat&aacute;logo <em>metodo</em>.
   * @return suma de consultas que reportaron un metodo no contable.
   */
  function planificacionCantidadMetodosEntregadosNoContables( $metodo ){
    $num = 0;
    $cadSql = "SELECT  count ( rel_planificacion.idmet ) 
               FROM    consulta, rel_planificacion ".$this->unidad[0]."
               WHERE   consulta.idconsulta=rel_planificacion.idconsulta and 
                       consulta.fecha>='" . $this->fecha1 . "' and 
                       consulta.fecha<='" . $this->fecha2 . "' and
                       consulta.escritura='3' and
                       rel_planificacion.idmet='$metodo' ".$this->unidad[1]." ; ";
    $sqlME = new Tquery( $cadSql );
    $resME = $sqlME->consulta( );
    $rowME = @pg_fetch_array( $resME, 0 );
    if( $rowME[0] != '' )
      return $rowME[0];
    else
      return 0;
  }
  
  /**
   *  PARA LA HOJA 5 2007:Planificacion Familiar Metodos Entregados
   *
   * @param $metodo es el metodo de planificacion familiar que se desea consultar. Ver el cat&aacute;logo <em>metodo</em>.
   * @return suma de la cantidad de metodos entregados por consulta.
   */
  function planificacionCantidadMetodosEntregados( $metodo ){
    //echo "<br><br>Metodo:". $metodo . "<br>";
    $num = 0;
    $cadSql = "SELECT  sum (rel_cant_metodos.cantidad ) 
               FROM    consulta, rel_cant_metodos, rel_planificacion ".$this->unidad[0]."
               WHERE   rel_planificacion.idpf=rel_cant_metodos.idpf and 
                       consulta.idconsulta=rel_planificacion.idconsulta and 
                       consulta.fecha>='" . $this->fecha1 . "' and 
                       consulta.fecha<='" . $this->fecha2 . "' and
                       consulta.escritura='3' and
                       rel_planificacion.idmet='$metodo' ".$this->unidad[1]." ; ";
    //echo $cadSql ;
    $sqlME = new Tquery( $cadSql );
    $resME = $sqlME->consulta( );
    $rowME = @pg_fetch_array( $resME, 0 );
    if( $rowME[0] != '' )
      return $rowME[0];
    else
      return 0;
  }
  
  /**
   *  PARA LA HOJA 5 2007:C&aacute;talogo de m&eacute;todos de planificaci&oacute;n Familiar
   *  @param $limit limite para el tipo de metodo.
   *  @return arreglo con los metodos que son menores que $limit. Ver el cat&aacute;logo <em>metodo</em>.
   */
  function planificacionMetodos( $limit ){
    $metodos = array( );
    $selectMetodo = new Tquery( "SELECT * from metodo where idmet<$limit order by idmet;" );
    $resMetodo = $selectMetodo->consulta( );
    
    for( $i = 0; $rowMetodo = @pg_fetch_array( $resMetodo, $i ); $i++ ){
      $metodos[$i]['idmet'] = $rowMetodo[0];
      $metodos[$i]['nombre'] = $rowMetodo[1]; 
    }
    
    return $metodos;
  }
  
  /**
   *  PARA LA HOJA 5 2007:C&aacute;talogo de m&eacute;todos entregables
   *  @return arreglo con los metodos que son entregables. Se excluye Quirurgicos, Ninguno y Preservativos Promocion.
   */
  function planificacionMetodosEntregados( ){
    // Se excluye Quirurgicos, Ninguno y Preservativos Promocion
    $metodos = array( );
    $selectMetodo = new Tquery( "SELECT * from metodo where idmet<9 and idmet!=6 order by idmet;" );
    $resMetodo = $selectMetodo->consulta( );
    
    for( $i = 0; $rowMetodo = @pg_fetch_array( $resMetodo, $i ); $i++ ){
      $metodos[$i]['idmet'] = $rowMetodo[0];
      $metodos[$i]['nombre'] = $rowMetodo[1]; 
    }
    
    return $metodos;
  }

  

}  // end Class


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