Example #1
0
        }
    }
}
$objHTML->startFieldset();
if (!empty($paciente->idCatUnidadTratante)) {
    $infUni = $help->getDatosUnidad($paciente->idCatUnidadTratante);
}
$objSelects->selectEstado('edoCaso', $infUni['idCatEstado']);
$objSelects->selectJurisdiccion('jurisCaso', $infUni['idCatEstado'], $infUni['idCatJurisdiccion']);
$objSelects->selectMunicipio('muniCaso', $infUni['idCatEstado'], $infUni['idCatJurisdiccion'], $infUni['idCatMunicipio']);
$objSelects->selectUnidad('uniTratado', $infUni['idCatEstado'], $infUni['idCatJurisdiccion'], $infUni['idCatMunicipio'], NULL, $paciente->idCatUnidadTratante);
$objHTML->endFieldset();
$objHTML->startFieldset('Datos de identificación');
$objHTML->inputText('Clave del Paciente', 'clave_expediente', $paciente->cveExpediente, array('size' => '25', 'style' => 'text-align:center;font-weight:bold;text-decoration:underline', 'title' => 'Se genera automaticamente'));
$objHTML->inputText('Nombre: ', 'nombre', $paciente->apellidoPaterno . ' ' . $paciente->apellidoMaterno . ' ' . $paciente->nombre, array('size' => 40));
$objHTML->inputText('Edad: ', 'edad', calEdad(formatFechaObj($paciente->fechaNacimiento, 'Y-m-d')) . ' años', array('size' => 8));
echo '<br />';
$objSelects->SelectCatalogo('Sexo', 'sexo', 'catSexo', $paciente->sexo);
$objHTML->inputText('Ocupación', 'ocupacion_paciente', $paciente->ocupacion, array('size' => '40'));
echo '<br />';
$objHTML->inputText('Domicilio:', 'domicilio', trim($paciente->calle) . ', No. ' . $paciente->noExterior, array('size' => '40'));
$objHTML->inputText('Colonia:', 'colonia', $paciente->colonia, array('size' => '20'));
$objHTML->inputText('Teléfono:', 'telefono', $paciente->telefono, array('size' => '12'));
echo '<br />';
$objSelects->selectEstado('edoDomicilio', $paciente->idCatEstado ? $paciente->idCatEstado : 7);
$objSelects->selectMunicipio('muniDomicilio', $paciente->idCatEstado ? $paciente->idCatEstado : 7, NULL, $paciente->idCatMunicipio);
$objSelects->selectLocalidad('localiDomicilio', $paciente->idCatEstado, $paciente->idCatMunicipio, $paciente->idCatLocalidad, array('class' => 'validate[required]'));
echo '<br />';
$objHTML->endFieldset();
if (count($paciente->arrDiagnosticos) == 0 && !empty($paciente->idPaciente)) {
    // Descartado
 public function obtenerBD($idPaciente, $fIni, $fFin, $idCatTipoEstudioDia, $idCatEstado, $idCatJurisdiccionLaboratorio)
 {
     $sql = "SELECT p.idPaciente, d.idDiagnostico, p.nombre, p.apellidoPaterno, p.apellidoMaterno, s.sexo, p.fechaNacimiento, \n\t\t\t\t\tb.folioLaboratorio, p.calle, p.noExterior, p.noInterior, p.colonia, l.nombre AS localidad, p.fechaDiagnostico, cb.descripcion as bac, b.bacIM, \n\t\t\t\t\tll.nombre AS LocalidadUnidad " . "FROM pacientes p, diagnostico d, estudiosBac b, catLocalidad l, catUnidad u, catLocalidad ll, catSexo s, catBaciloscopia cb " . "WHERE p.idPaciente = d.idPaciente " . "AND p.sexo = s.idSexo " . "AND cb.idCatBaciloscopia = b.idCatBac " . "AND l.idCatLocalidad = p.idCatLocalidad " . "AND l.idCatEstado = p.idCatEstado " . "AND l.idCatMunicipio = p.idCatMunicipio " . "AND u.idCatUnidad = p.idCatUnidadNotificante " . "AND u.idCatLocalidad = ll.idCatLocalidad " . "AND u.idCatEstado = ll.idCatEstado " . "AND u.idCatMunicipio = ll.idCatMunicipio " . "AND b.idDiagnostico = d.idDiagnostico " . "AND b.fechaSolicitud BETWEEN '" . $fIni . "' AND '" . $fFin . "' " . "AND b.idCatTipoEstudio = " . $idCatTipoEstudioDia . " " . "AND b.bacIM IS NOT NULL " . "AND b.idCatEstadoLaboratorio = " . $idCatEstado . " " . "AND p.idPaciente = " . $idPaciente . " ";
     //"AND b.idCatJurisdiccionLaboratorio = " . $idCatJurisdiccionLaboratorio . ";";
     $consulta = ejecutaQueryClases($sql);
     //echo $sql.'<br><br>';
     if (is_string($consulta)) {
         $this->error = true;
         $this->msgError = $consulta . " SQL:" . $sql . '<br><br>';
     } else {
         $tabla = devuelveRowAssoc($consulta);
         if (!empty($tabla["idPaciente"])) {
             $this->idPaciente = $tabla["idPaciente"];
             $this->idDiagnostico = $tabla["idDiagnostico"];
             $this->folioLaboratorio = $tabla["folioLaboratorio"];
             $this->nombreCompleto = $tabla["nombre"] . " " . $tabla["apellidoPaterno"] . " " . $tabla["apellidoMaterno"];
             $this->edad = calEdad(formatFechaObj($tabla["fechaNacimiento"], 'Y-m-d'));
             $this->sexo = $tabla["sexo"];
             $this->domicilio = $tabla["calle"] . " " . $tabla["noExterior"] . " " . $tabla["noInterior"] . " " . $tabla["colonia"] . " " . $tabla["localidad"];
             $this->fechaDiagnostico = formatFechaObj($tabla["fechaDiagnostico"]);
             $this->Baciloscopia = 'IB: ' . $tabla["bac"] . ' <br>IM: ' . $tabla['bacIM'] . '%';
             $this->localizacionUnidadMedica = $tabla["LocalidadUnidad"];
             $sql = "SELECT TOP 1 h.idCatHisto, ch.descripcion FROM estudiosHis h, catHistopatologia ch, diagnostico d WHERE h.idCatHisto = ch.idCatHisto " . "AND d.idPaciente = " . $idPaciente . " AND h.idCatTipoEstudio = " . $idCatTipoEstudioDia . " AND d.idDiagnostico = h.idDiagnostico ORDER BY h.fechaSolicitud desc;";
             $consulta = ejecutaQueryClases($sql);
             //echo $sql.'<br><br>';
             if (is_string($consulta)) {
                 $this->error = true;
                 $this->msgError = $consulta . " SQL:" . $sql . '<br><br>';
             } else {
                 $tabla = devuelveRowAssoc($consulta);
                 $this->histopatologia = $tabla["descripcion"];
             }
         }
     }
 }
Example #3
0
 public function obtenerBD($idPaciente)
 {
     $sql = "SELECT p.*, m.idCatJurisdiccion, d.idDiagnostico, d.fechaCaptura, ctp.descripcion as tipoPaciente, s.sexo as sexoP,  cfd.descripcion as formaDeteccion, ce.nombre as estado, cl.nombre as localidad" . " FROM [pacientes] p, [catMunicipio] m, [diagnostico] d, [catTipoPaciente] ctp, [catSexo] s, [catFormaDeteccion] cfd, [catEstado] ce, [catLocalidad] cl" . " WHERE p.idPaciente = " . $idPaciente . " AND d.idPaciente = p.idPaciente" . " AND m.idCatMunicipio = p.idCatMunicipio" . " AND m.idCatEstado = p.idCatEstado" . " AND ctp.idCatTipoPaciente = p.idCatTipoPaciente" . " AND s.idSexo = p.sexo" . " AND cfd.idCatFormaDeteccion = p.idCatFormaDeteccion" . " AND ce.idCatEstado = p.idCatEstado" . " AND cl.idCatEstado = p.idCatEstado" . " AND cl.idCatMunicipio = p.idCatMunicipio" . " AND cl.idCatLocalidad = p.idCatLocalidad;";
     $consulta = ejecutaQueryClases($sql);
     //echo $sql;
     if (is_string($consulta)) {
         $this->error = true;
         $this->msgError = $consulta . " SQL:" . $sql;
     } else {
         $tabla = devuelveRowAssoc($consulta);
         $this->idPaciente = $tabla["idPaciente"];
         $this->idDiagnostico = $tabla["idDiagnostico"];
         $this->folio = $tabla["cveExpediente"];
         $this->fechaNotificacion = formatFechaObj($tabla["fechaNotificacion"], 'Y-m-d');
         $this->fechaCaptura = formatFechaObj($tabla["fechaCaptura"], 'Y-m-d');
         $this->idCatTipoPaciente = $tabla["tipoPaciente"];
         $this->idCatFormaDeteccion = $tabla["formaDeteccion"];
         $this->nombreCompleto = $tabla["nombre"] . ' ' . $tabla["apellidoPaterno"] . ' ' . $tabla["apellidoMaterno"];
         $this->fechaNacimiento = formatFechaObj($tabla["fechaNacimiento"], 'Y-m-d');
         $this->edad = calEdad(formatFechaObj($this->fechaNacimiento, 'Y-m-d'));
         $this->sexo = $tabla["sexoP"];
         $this->idCatEstado = $tabla["estado"];
         $this->idCatMunicipio = $tabla["localidad"];
         $this->jurisdiccion = $tabla["idCatJurisdiccion"];
         $this->domicilio = $tabla["calle"] . ' ' . $tabla["noExterior"] . ' ' . $tabla["noInterior"] . ' ' . $tabla["colonia"];
         if (!is_null($tabla["anosRadicando"])) {
             $this->anosRadicando = $tabla["anosRadicando"];
         }
         if (!is_null($tabla["mesesRadicando"])) {
             $this->mesesRadicando = $tabla["mesesRadicando"];
         }
         $this->fechaInicioPadecimiento = formatFechaObj($tabla["fechaInicioPadecimiento"], 'Y-m-d');
         $this->fechaDiagnostico = formatFechaObj($tabla["fechaDiagnostico"], 'Y-m-d');
         $sql = "SELECT " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND idCatTipoLesion = " . self::$idManchasHipocrom . " ) AS cMH, " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND idCatTipoLesion = " . self::$idManchasEritemat . " ) AS cME, " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND idCatTipoLesion = " . self::$idPlacasInfiltrad . " ) AS cPI, " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND (idCatTipoLesion = " . self::$idNodulosAislados . " OR idCatTipoLesion = " . self::$idNodulosAgrupados . ")) AS cNo, " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND idCatTipoLesion = " . self::$idOtrasLesiones . " ) AS cOL, " . "(SELECT COUNT(idLesion) FROM [diagramaDermatologico] WHERE idDiagnostico = " . $this->idDiagnostico . " AND idCatTipoLesion = " . self::$idZonasAnestesia . " ) AS cZA;";
         $consulta = ejecutaQueryClases($sql);
         //echo "<BR><BR>" . $sql . "<BR><BR>";
         if (is_string($consulta)) {
             $this->error = true;
             $this->msgError = $consulta . " SQL:" . $sql;
         } else {
             $tabla = devuelveRowAssoc($consulta);
             $this->cuentaManchasHipocrom = $tabla["cMH"];
             $this->cuentaManchasEritemat = $tabla["cME"];
             $this->cuentaPlacasInfiltrad = $tabla["cPI"];
             $this->cuentaNodulos = $tabla["cNo"];
             $this->cuentaOtrasLesiones = $tabla["cOL"];
             $this->cuentaZonasAnestesia = $tabla["cZA"];
         }
         $sql = "SELECT TOP 1 muestraRechazada, fechaSolicitud, fechaResultado, bacIM, idCatBac  \n\t\t\t\tFROM [estudiosBac] \n\t\t\t\tWHERE idDiagnostico = " . $this->idDiagnostico . " \n\t\t\t\tAND muestraRechazada = 0 \n\t\t\t\tAND idCatTipoEstudio = " . self::$idCatTipoEstudioDia . " \n\t\t\t\tORDER BY fechaResultado ASC;";
         //echo $sql;
         $help = new Helpers();
         $arrIdCatBac = $help->getArrayCatBaciloscopia();
         $consulta = ejecutaQueryClases($sql);
         //echo "<BR><BR>" . $sql . "<BR><BR>";
         if (is_string($consulta)) {
             $this->error = true;
             $this->msgError = $consulta . " SQL:" . $sql;
         } else {
             $tabla = devuelveRowAssoc($consulta);
             //var_dump( $tabla);
             if (is_null($tabla)) {
                 $this->fechaBaciloscopia = "-";
                 $this->resultadoBaciloscopia = "Sin Estudio";
                 $this->imBaciloscopia = "Sin Estudio";
             } else {
                 if (!is_null($tabla["fechaResultado"])) {
                     $this->fechaBaciloscopia = formatFechaObj($tabla["fechaResultado"], 'Y-m-d');
                 } else {
                     $this->fechaBaciloscopia = formatFechaObj($tabla["fechaSolicitud"], 'Y-m-d');
                 }
                 if (!is_null($tabla["idCatBac"])) {
                     $this->resultadoBaciloscopia = $arrIdCatBac[$tabla["idCatBac"]];
                 } else {
                     $this->resultadoBaciloscopia = "Esperando Resultado";
                 }
                 if (!is_null($tabla["bacIM"])) {
                     $this->imBaciloscopia = $tabla["bacIM"];
                 } else {
                     $this->imBaciloscopia = "Esperando Resultado";
                 }
             }
         }
         $sql = "SELECT muestraRechazada, fechaSolicitud, fechaResultado, hisResultado \n\t\t\t\tFROM [estudiosHis] \n\t\t\t\tWHERE idDiagnostico = " . $this->idDiagnostico . " \n\t\t\t\tAND muestraRechazada = 0 \n\t\t\t\tAND idCatTipoEstudio = " . self::$idCatTipoEstudioDia . " \t\t\t\t\n\t\t\t\tORDER BY fechaResultado ASC;";
         $consulta = ejecutaQueryClases($sql);
         //echo "<BR><BR>" . $sql . "<BR><BR>";
         if (is_string($consulta)) {
             $this->error = true;
             $this->msgError = $consulta . " SQL:" . $sql;
         } else {
             $tabla = devuelveRowAssoc($consulta);
             if (is_null($tabla)) {
                 $this->resultadoHistopatologia = "Sin Estudio";
                 $this->fechaHistopatologia = "-";
             } else {
                 if (!is_null($tabla["fechaResultado"])) {
                     $this->fechaHistopatologia = formatFechaObj($tabla["fechaResultado"], 'Y-m-d');
                 } else {
                     $this->fechaHistopatologia = formatFechaObj($tabla["fechaSolicitud"], 'Y-m-d');
                 }
                 if (!is_null($tabla["hisResultado"])) {
                     $this->resultadoHistopatologia = $tabla["hisResultado"];
                 } else {
                     $this->fechaHistopatologia = "Esperando Resultado";
                 }
             }
         }
         $this->observaciones;
     }
 }
Example #4
0
 public function generarReporte()
 {
     if (is_null($this->idCatEstado)) {
         $this->error = true;
         $this->msgError = "El reporte requiere del identificador de estado.";
     } else {
         $filtro = "";
         switch ($this->filtro) {
             case 0:
                 $filtro = self::$todos;
                 break;
             case 1:
                 $filtro = self::$prevCTX;
                 break;
             case 2:
                 $filtro = self::$prevSTX;
                 break;
             case 3:
                 $filtro = self::$alta;
                 break;
             default:
                 $filtro = self::$vigilancia;
                 break;
         }
         $sql = "SELECT top 2 p.idPaciente, d.observaciones, d.idDiagnostico, p.nombre, p.apellidoPaterno, p.apellidoMaterno, l.nombre AS localidad,  m.nombre AS municipio, ctp.descripcion as tipoPaciente, p.fechaNacimiento, cs.sexo AS sexo, ins.descripcion AS derechohabiencia, ccl.descripcion AS clasificacionLepra, p.fechaInicioPQT, d.discOjoDer, d.discOjoIzq, d.discManoDer, d.discManoIzq, d.discPieDer, d.discPieIzq, cer.descripcion AS estReaAnt, cerr.descripcion AS estReaAct, cep.descipcion as condicion " . "FROM pacientes p, catLocalidad l, diagnostico d, catMunicipio m, catInstituciones ins, catTipoPaciente ctp, catSexo cs, catClasificacionLepra ccl, catEstadoReaccional cer, catEstadoReaccional cerr, catEstadoPaciente cep  " . "WHERE p.idCatEstado = " . $this->idCatEstado . " " . "AND d.idPaciente = p.idPaciente " . "AND d.idCatEstadoPaciente IN (" . $filtro . ") " . "AND d.idCatEstadoPaciente = cep.idCatEstadoPaciente " . "AND l.idCatLocalidad = p.idCatLocalidad " . "AND l.idCatEstado = p.idCatEstado " . "AND l.idCatMunicipio = p.idCatMunicipio " . "AND l.idCatMunicipio = m.idCatMunicipio " . "AND l.idCatEstado = m.idCatEstado " . "AND p.idCatInstitucionDerechohabiencia = ins.idCatInstituciones " . "AND p.idCatTipoPaciente = ctp.idCatTipoPaciente " . "AND p.sexo = cs.idSexo " . "AND ccl.idCatClasificacionLepra = d.idCatClasificacionLepra " . "AND d.idCatEstadoReaccionalAnt = cer.idCatEstadoReaccional " . "AND d.idCatEstadoReaccionalAct = cerr.idCatEstadoReaccional;";
         if ($this->idCatEstado == 0) {
             $sql = "SELECT p.idPaciente, d.observaciones, d.idDiagnostico, p.nombre, p.apellidoPaterno, p.apellidoMaterno, l.nombre AS localidad,  m.nombre AS municipio, ctp.descripcion as tipoPaciente, p.fechaNacimiento, cs.sexo AS sexo, ins.descripcion AS derechohabiencia, ccl.descripcion AS clasificacionLepra, p.fechaInicioPQT, d.discOjoDer, d.discOjoIzq, d.discManoDer, d.discManoIzq, d.discPieDer, d.discPieIzq, cer.descripcion AS estReaAnt, cerr.descripcion AS estReaAct, cep.descipcion as condicion " . "FROM pacientes p, catLocalidad l, diagnostico d, catMunicipio m, catInstituciones ins, catTipoPaciente ctp, catSexo cs, catClasificacionLepra ccl, catEstadoReaccional cer, catEstadoReaccional cerr, catEstadoPaciente cep  " . "WHERE d.idPaciente = p.idPaciente " . "AND d.idCatEstadoPaciente IN (" . $filtro . ") " . "AND d.idCatEstadoPaciente = cep.idCatEstadoPaciente " . "AND l.idCatLocalidad = p.idCatLocalidad " . "AND l.idCatEstado = p.idCatEstado " . "AND l.idCatMunicipio = p.idCatMunicipio " . "AND l.idCatMunicipio = m.idCatMunicipio " . "AND l.idCatEstado = m.idCatEstado " . "AND p.idCatInstitucionDerechohabiencia = ins.idCatInstituciones " . "AND p.idCatTipoPaciente = ctp.idCatTipoPaciente " . "AND p.sexo = cs.idSexo " . "AND ccl.idCatClasificacionLepra = d.idCatClasificacionLepra " . "AND d.idCatEstadoReaccionalAnt = cer.idCatEstadoReaccional " . "AND d.idCatEstadoReaccionalAct = cerr.idCatEstadoReaccional;";
         } else {
             $sql = "SELECT p.idPaciente, d.observaciones, d.idDiagnostico, p.nombre, p.apellidoPaterno, p.apellidoMaterno, l.nombre AS localidad,  m.nombre AS municipio, ctp.descripcion as tipoPaciente, p.fechaNacimiento, cs.sexo AS sexo, ins.descripcion AS derechohabiencia, ccl.descripcion AS clasificacionLepra, p.fechaInicioPQT, d.discOjoDer, d.discOjoIzq, d.discManoDer, d.discManoIzq, d.discPieDer, d.discPieIzq, cer.descripcion AS estReaAnt, cerr.descripcion AS estReaAct, cep.descipcion as condicion " . "FROM pacientes p, catLocalidad l, diagnostico d, catMunicipio m, catInstituciones ins, catTipoPaciente ctp, catSexo cs, catClasificacionLepra ccl, catEstadoReaccional cer, catEstadoReaccional cerr, catEstadoPaciente cep  " . "WHERE p.idCatEstado = " . $this->idCatEstado . " " . "AND d.idPaciente = p.idPaciente " . "AND d.idCatEstadoPaciente IN (" . $filtro . ") " . "AND d.idCatEstadoPaciente = cep.idCatEstadoPaciente " . "AND l.idCatLocalidad = p.idCatLocalidad " . "AND l.idCatEstado = p.idCatEstado " . "AND l.idCatMunicipio = p.idCatMunicipio " . "AND l.idCatMunicipio = m.idCatMunicipio " . "AND l.idCatEstado = m.idCatEstado " . "AND p.idCatInstitucionDerechohabiencia = ins.idCatInstituciones " . "AND p.idCatTipoPaciente = ctp.idCatTipoPaciente " . "AND p.sexo = cs.idSexo " . "AND ccl.idCatClasificacionLepra = d.idCatClasificacionLepra " . "AND d.idCatEstadoReaccionalAnt = cer.idCatEstadoReaccional " . "AND d.idCatEstadoReaccionalAct = cerr.idCatEstadoReaccional;";
         }
         $consulta = ejecutaQueryClases($sql);
         //echo "<BR>" . $sql . "<BR>";
         if (is_string($consulta)) {
             $this->error = true;
             $this->msgError = $consulta . " SQL:" . $sql;
         } else {
             while ($tabla = devuelveRowAssoc($consulta)) {
                 //print_r($tabla);
                 //die();
                 $paciente = new PacientesReporteTrimestral();
                 $fNac = formatFechaObj($tabla["fechaNacimiento"], 'Y-m-d');
                 $resClasLepra = strpos($tabla["clasificacionLepra"], "MB");
                 $paciente->idPaciente = $tabla["idPaciente"];
                 $paciente->idDiagnostico = $tabla["idDiagnostico"];
                 $paciente->nombre = $tabla["nombre"] . " " . $tabla["apellidoPaterno"] . " " . $tabla["apellidoMaterno"];
                 $paciente->localidad = $tabla["localidad"];
                 $paciente->municipio = $tabla["municipio"];
                 $paciente->tipoPaciente = $tabla["tipoPaciente"];
                 $paciente->edad = calEdad($fNac);
                 $paciente->sexo = $tabla["sexo"];
                 $paciente->derechohabiencia = $tabla["derechohabiencia"];
                 $paciente->condicion = $tabla["condicion"];
                 //if ($resClasLepra !== false) $paciente->tipoLepra = "PB"; else $paciente->tipoLepra = "MB";
                 if ($resClasLepra > 0) {
                     $paciente->tipoLepra = "MB";
                 } else {
                     $paciente->tipoLepra = "PB";
                 }
                 $paciente->fechaInicioTx = formatFechaObj($tabla["fechaInicioPQT"], "Y-m-d");
                 if ($paciente->tipoLepra == "PB") {
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaFinTx = formatFechaObj($dAux->add(new DateInterval(self::$invervaloTxPB)), "Y-m-d");
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaIVPT = formatFechaObj($dAux->add(new DateInterval(self::$invervaloVigPostTxPB)), "Y-m-d");
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaFVPT = formatFechaObj($dAux->add(new DateInterval(self::$invervaloFinVigPostTxPB)), "Y-m-d");
                 } else {
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaFinTx = formatFechaObj($dAux->add(new DateInterval(self::$invervaloTxMB)), "Y-m-d");
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaIVPT = formatFechaObj($dAux->add(new DateInterval(self::$invervaloVigPostTxMB)), "Y-m-d");
                     $dAux = new DateTime($paciente->fechaInicioTx);
                     $paciente->fechaFVPT = formatFechaObj($dAux->add(new DateInterval(self::$invervaloFinVigPostTxMB)), "Y-m-d");
                 }
                 if ($tabla["discOjoDer"] >= $tabla["discOjoIzq"]) {
                     $paciente->gradoDiscapacidadOjos = $tabla["discOjoDer"];
                 } else {
                     $paciente->gradoDiscapacidadOjos = $tabla["discOjoIzq"];
                 }
                 if ($tabla["discManoDer"] >= $tabla["discManoIzq"]) {
                     $paciente->gradoDiscapacidadManos = $tabla["discManoDer"];
                 } else {
                     $paciente->gradoDiscapacidadManos = $tabla["discManoIzq"];
                 }
                 if ($tabla["discPieDer"] >= $tabla["discPieIzq"]) {
                     $paciente->gradoDiscapacidadPies = $tabla["discPieDer"];
                 } else {
                     $paciente->gradoDiscapacidadPies = $tabla["discPieIzq"];
                 }
                 $discGen = $paciente->gradoDiscapacidadOjos;
                 if ($discGen < $paciente->gradoDiscapacidadManos) {
                     $discGen = $paciente->gradoDiscapacidadManos;
                 }
                 if ($discGen < $paciente->gradoDiscapacidadPies) {
                     $discGen = $paciente->gradoDiscapacidadPies;
                 }
                 $paciente->gradoDiscapacidadGeneral = $discGen;
                 $paciente->estadoReaccionalAnterior = $tabla["estReaAnt"];
                 $paciente->estadoReaccionalActual = $tabla["estReaAct"];
                 $paciente->observaciones = $tabla["observaciones"];
                 // #################################################################################################### ESTUDIOS
                 $diagBac = new BaciloscopiaReporteTrimestral();
                 $diagBac->getExamenDiagnostico($paciente->idDiagnostico);
                 $diagHis = new HistopatologiaReporteTrimestral();
                 $diagHis->getExamenDiagnostico($paciente->idDiagnostico);
                 $paciente->bacDiagnostico = $diagBac;
                 $paciente->hisDiagnostico = $diagHis;
                 $paciente->clasificacionIntegral = $paciente->hisDiagnostico->resultado;
                 //var_dump($paciente->hisDiagnostico);
                 //	ESTUDIOS BACILOSCOPICOS DE CONTROL DURANTE EL PERIODO DE TRATAMIENTO (fechaInicioTx-fechaFinTx)
                 $sql = "SELECT idEstudioBac FROM estudiosBac " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND idCatTipoEstudio = " . self::$idCatTipoEstudioCon . " AND idContacto is null " . " AND fechaResultado BETWEEN '" . formatFechaObj($paciente->fechaInicioTx, "Y-m-d") . "' AND '" . formatFechaObj($paciente->fechaFinTx, "Y-m-d") . "'" . " ORDER BY fechaResultado ASC;";
                 $consultaBis = ejecutaQueryClases($sql);
                 if (is_string($consultaBis)) {
                     $paciente->error = true;
                     $paciente->msgError = $consultaBis . " SQL:" . $sql;
                 } else {
                     while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                         $estBac = new BaciloscopiaReporteTrimestral();
                         $estBac->getExamen($tablaBis["idEstudioBac"]);
                         array_push($paciente->arrControlBacTx, $estBac);
                         // BACILOSCOPIA TX
                     }
                 }
                 //	ESTUDIOS BACILOSCOPICOS DE CONTROL DURANTE EL PERIODO DE VIGILANCIA POST TRATAMIENTO (fechaIVPT-fechaFVPT)
                 $sql = "SELECT idEstudioBac FROM estudiosBac " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND idCatTipoEstudio = " . self::$idCatTipoEstudioCon . " AND idContacto is null " . " AND fechaResultado BETWEEN '" . formatFechaObj($paciente->fechaIVPT, "Y-m-d") . "' AND '" . formatFechaObj($paciente->fechaFVPT, "Y-m-d") . "'" . " ORDER BY fechaResultado ASC;";
                 $consultaBis = ejecutaQueryClases($sql);
                 if (is_string($consultaBis)) {
                     $paciente->error = true;
                     $paciente->msgError = $consultaBis . " SQL:" . $sql;
                 } else {
                     while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                         $estBac = new BaciloscopiaReporteTrimestral();
                         $estBac->getExamen($tablaBis["idEstudioBac"]);
                         array_push($paciente->arrControlBacFinTx, $estBac);
                         // BACILOSCOPIA VPTX
                     }
                 }
                 //	ESTUDIOS HISTOPATOLOGICOS DE CONTROL DURANTE EL PERIODO DE VIGILANCIA POST TRATAMIENTO (fechaIVPT-fechaFVPT)
                 $sql = "SELECT idEstudioHis FROM estudiosHis " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND idCatTipoEstudio = " . self::$idCatTipoEstudioCon . " AND idContacto is null " . " AND fechaResultado BETWEEN '" . formatFechaObj($paciente->fechaIVPT, "Y-m-d") . "' AND '" . formatFechaObj($paciente->fechaFVPT, "Y-m-d") . "'" . " ORDER BY fechaResultado ASC;";
                 $consultaBis = ejecutaQueryClases($sql);
                 if (is_string($consultaBis)) {
                     $paciente->error = true;
                     $paciente->msgError = $consultaBis . " SQL:" . $sql;
                 } else {
                     while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                         $estHis = new HistopatologiaReporteTrimestral();
                         $estHis->getExamen($tablaBis["idEstudioHis"]);
                         array_push($paciente->arrControlHisFinTx, $estHis);
                         // HISTOPATOLOGIA VPTX
                     }
                 }
                 //	ESTUDIOS BACILOSCOPICOS DE CONTROL DESPUES DE LA FECHA DE FIN DE VIGILANCIA POST TRATAMIENTO (fechaFVPT)
                 $sql = "SELECT idEstudioBac FROM estudiosBac " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND idCatTipoEstudio = " . self::$idCatTipoEstudioCon . " AND idContacto is null " . " AND fechaResultado > '" . formatFechaObj($paciente->fechaFVPT, "Y-m-d") . "'" . " ORDER BY fechaResultado ASC;";
                 $consultaBis = ejecutaQueryClases($sql);
                 if (is_string($consultaBis)) {
                     $paciente->error = true;
                     $paciente->msgError = $consultaBis . " SQL:" . $sql;
                 } else {
                     while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                         $estBac = new BaciloscopiaReporteTrimestral();
                         $estBac->getExamen($tablaBis["idEstudioBac"]);
                         array_push($paciente->arrVigilanciaBac, $estBac);
                         // BACILOSCOPIA POST VPTX
                     }
                 }
                 // #################################################################################################### CONTROL
                 $arrControl = array(array());
                 $fechaIni = strtotime(formatFechaObj($paciente->fechaInicioTx, 'Y-m-d'));
                 $fechaFin = strtotime(formatFechaObj($paciente->fechaFVPT, 'Y-m-d'));
                 $fechaIVPT = strtotime(formatFechaObj($paciente->fechaIVPT, 'Y-m-d'));
                 $mesIni = date("n", $fechaIni);
                 $anoIni = date("Y", $fechaIni);
                 $mesFin = date("n", $fechaFin);
                 $anoFin = date("Y", $fechaFin);
                 $mesIVPT = date("n", $fechaIVPT);
                 $anoIVPT = date("Y", $fechaIVPT);
                 $mesActual = $mesIni;
                 $anoActual = $anoIni;
                 if (!empty($paciente->fechaInicioTx)) {
                     // CONTROL DESDE INICIO TRATAMIENTO HASTA FIN VIGILANCIA POST TRATAMIENTO(fechaInicioTx-fechaFVPT)
                     $sql = "SELECT fecha FROM control " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND fecha BETWEEN '" . formatFechaObj($paciente->fechaInicioTx, "Y-m-d") . "' AND '" . formatFechaObj($paciente->fechaFVPT, "Y-m-d") . "' " . " ORDER BY fecha ASC;";
                     $consultaBis = ejecutaQueryClases($sql);
                     if (is_string($consultaBis)) {
                         $paciente->error = true;
                         $paciente->msgError = $consultaBis . " SQL:" . $sql;
                     } else {
                         while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                             $tempFecha = strtotime(formatFechaObj($tablaBis["fecha"], 'Y-m-d'));
                             $mesTemp = date("n", $tempFecha);
                             $anoTemp = date("Y", $tempFecha);
                             $diaTemp = date("j", $tempFecha);
                             $arrControl[$anoTemp][$mesTemp] .= " " . $diaTemp;
                         }
                     }
                     $mesVPT = -1;
                     $yaPasoVPT = false;
                     while ($anoActual < $anoFin) {
                         $controlTx = new ControlTxReporteTrimestral();
                         $controlTx->ano = $anoActual;
                         $controlTx->mes = $mesActual;
                         if (!$yaPasoVPT) {
                             $controlTx->valor = " No";
                         }
                         if (!is_null($arrControl[$anoActual][$mesActual])) {
                             $controlTx->valor = $arrControl[$anoActual][$mesActual];
                         }
                         if ($mesIVPT == $mesActual && $anoIVPT == $anoActual) {
                             $controlTx->valor = " IVPT";
                             $mesVPT = 0;
                             $yaPasoVPT = true;
                         }
                         if ($mesVPT > -1 && $mesVPT < self::$mesesVPT + 1) {
                             if ($mesVPT > 0) {
                                 $controlTx->valor = " IVPT" . $mesVPT;
                             }
                             $mesVPT += 1;
                         }
                         array_push($paciente->arrControlTx, $controlTx);
                         // CONTROL INICIO TRATAMIENTO HASTA FIN VIGILANCIA POST TRATAMIENTO
                         $mesActual += 1;
                         if ($mesActual == 13) {
                             $mesActual = 1;
                             $anoActual += 1;
                         }
                     }
                     if ($anoActual == $anoFin) {
                         for ($mesActual = 1; $mesActual <= $mesFin; $mesActual++) {
                             $controlTx = new ControlTxReporteTrimestral();
                             $controlTx->ano = $anoActual;
                             $controlTx->mes = $m;
                             //$controlTx->valor = "No";
                             if (!is_null($arrControl[$anoActual][$mesActual])) {
                                 $controlTx->valor = $arrControl[$anoActual][$mesActual];
                             }
                             if ($mesActual == $mesFin) {
                                 $controlTx->valor = " FVPT";
                             }
                             array_push($paciente->arrControlTx, $controlTx);
                             // CONTROL INICIO TRATAMIENTO HASTA FIN VIGILANCIA POST TRATAMIENTO
                         }
                     }
                     // CONTROL POST FIN VIGILANCIA TRATAMIENTO (> fechaFVPT)
                     $sql = "SELECT c.fecha, cep.descipcion " . " FROM control c, catEstadoPaciente cep " . " WHERE idDiagnostico = " . $paciente->idDiagnostico . " AND fecha > '" . formatFechaObj($paciente->fechaFVPT, "Y-m-d") . "'" . " AND cep.idCatEstadoPaciente = c.idCatEstadoPaciente" . " ORDER BY fecha ASC;";
                     //echo "<BR>" . $sql . "<BR>";
                     $consultaBis = ejecutaQueryClases($sql);
                     if (is_string($consultaBis)) {
                         $paciente->error = true;
                         $paciente->msgError = $consultaBis . " SQL:" . $sql;
                     } else {
                         while ($tablaBis = devuelveRowAssoc($consultaBis)) {
                             //print_r($tablaBis);
                             //die();
                             $tempFecha = strtotime(formatFechaObj($tablaBis["fecha"], 'Y-m-d'));
                             $controlTx = new ControlTxReporteTrimestral();
                             $controlTx->ano = date("Y", $tempFecha);
                             $controlTx->mes = date("n", $tempFecha);
                             $controlTx->valor = $tablaBis["descripcion"];
                             $paciente->situacionTerminoTx = $tablaBis["descripcion"];
                             array_push($paciente->arrVigilanciaRevision, $controlTx);
                             // CONTROL POST FIN VIGILANCIA TRATAMIENTO
                         }
                     }
                     // #################################################################################################### CONTACTOS
                     $sql = "SELECT COUNT(idContacto) AS cuenta FROM contactos WHERE idDiagnostico = " . $paciente->idDiagnostico . ";";
                     //echo "<BR>" . $sql . "<BR>";
                     $consultaBis = ejecutaQueryClases($sql);
                     if (is_string($consultaBis)) {
                         $this->error = true;
                         $this->msgError = $consultaBis . " SQL:" . $sql;
                     } else {
                         $tabla = devuelveRowAssoc($consultaBis);
                         $this->totalContactos += $tabla["cuenta"];
                         $paciente->totalContactos = $tabla["cuenta"];
                         for ($y = $anoIni; $y <= $anoFin; $y++) {
                             /*$sql = "SELECT COUNT(idContacto) AS cuenta " .
                             		" FROM estudiosBac WHERE idDiagnostico = " . $paciente->idDiagnostico . 
                             		" AND fechaResultado BETWEEN '" . $y . "/01/01' AND '" . $y . "/12/31';";*/
                             $sql = "SELECT COUNT( DISTINCT cc.idContacto) AS cuenta " . "FROM diagnostico d, contactos c, controlContacto cc " . "WHERE c.idDiagnostico = d.idDiagnostico " . "AND cc.idContacto = c.idContacto " . "AND cc.fecha BETWEEN '" . $y . "/01/01' AND '" . $y . "/12/31' " . "AND d.idDiagnostico = " . $paciente->idDiagnostico . ";";
                             //echo "<BR>" . $sql . "<BR>";
                             $consultaBis = ejecutaQueryClases($sql);
                             $paciente->arrContactosExaminados[$y] = 0;
                             if (is_string($consultaBis)) {
                                 $this->error = true;
                                 $this->msgError = $consultaBis . " SQL:" . $sql;
                                 $paciente->arrContactosExaminados[$y] = "Error";
                             } else {
                                 $tabla = devuelveRowAssoc($consultaBis);
                                 $totalContactos = $tabla["cuenta"];
                                 $paciente->arrContactosExaminados[$y] = $tabla["cuenta"];
                                 if ($y == date('Y')) {
                                     $paciente->totalContactosRevisados = $tabla["cuenta"];
                                     $this->totalContactosRegistrados += $totalContactos;
                                     $this->totalContactosRevisados += $tabla["cuenta"];
                                 }
                             }
                             $paciente->arrContactos[$y] = $paciente->totalContactos;
                         }
                     }
                     // Para establecer la situacion al termino de tratamiento
                     // si la fecha de fin de tratamiento es menor que la fecha actual
                     if (cal_dif_fecha($paciente->fechaFinTx) > 0) {
                         // asignamos el valor de la condicion acttual a la situacion al termino de tratamiento
                         $paciente->situacionTerminoTx = $paciente->condicion;
                     }
                 }
                 //var_dump($paciente);
                 //die();
                 array_push($this->arrPacientesReporteTrimestral, $paciente);
             }
         }
     }
 }