/* $container = $app->getContainer(); $container['upload_directory'] = $_SERVER['DOCUMENT_ROOT'] . '/img'; //********************************RUTAS******************************** //======================== LOGIN =========================================================== $app->post('/api/login', function(Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $status = 200; $sqlSELECT = " SELECT u.id as id_usuario, u.usuario, m.id as id_medico, t.id as id_tecnico, e.id as id_enfermera, s.id as id_supervisor, u.nombre, u.primerApellido, u.segundoApellido, u.alias, u.telefonoMovil, r.id as id_rol, r.desc_rol as descripcion_rol, m.fk_puntos, m.puntos, e.fk_puntos as fke_puntos, e.puntos as e_puntos FROM Usuarios u LEFT JOIN Roles r ON r.id = u.fk_rol LEFT JOIN Medicos m ON m.fk_usuario = u.id LEFT JOIN Tecnicos t ON t.fk_usuario = u.id LEFT JOIN Enfermeras e ON e.fk_usuario = u.id LEFT JOIN Supervisores s ON s.fk_usuario = u.id WHERE u.usuario = :usuario AND u.password = :password"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->prepare($sqlSELECT); $respuesta->bindParam(':usuario', $usuario); $respuesta->bindParam(':password', $password); $respuesta->execute(); $login = $respuesta->fetch(PDO::FETCH_ASSOC); if($login){ $response->getBody()->write(json_encode($login)); $status = 200; }else{ $msj = array( "message" => "el login de : $usuario fallo verifique la password(contraseƱa) y/o el usuario "); $response->getBody()->write(json_encode($msj)); $status = 404; } }catch(PDOException $e){ $coneccion = null; $db = null; $err = array( "code" => $e->getCode(), "message"=> $e->getMessage() ); $response->getBody()->write(json_encode($err)); $status = 500; } return $response->withHeader('content-type', 'application/json')->withStatus($status); }); $app->get('/api/login/{id}', function(Request $request, Response $response){ $status = 200; $id = $request->getAttribute('id', 0); $sqlSELECT = " SELECT u.id as id_usuario, u.usuario, m.id as id_medico, u.nombre, u.primerApellido, u.segundoApellido, u.alias, u.telefonoMovil, r.id as id_rol, r.desc_rol as descripcion_rol, m.fk_puntos, ppp.puntos FROM Usuarios u LEFT JOIN Roles r ON r.id=u.fk_rol LEFT JOIN Medicos m ON m.fk_usuario = u.id LEFT JOIN PuntosPorProducto ppp ON ppp.id = m.fk_puntos WHERE u.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $stmUsuario = $coneccion->prepare($sqlSELECT); $stmUsuario->execute(); $cusuario = $stmUsuario->fetch(PDO::FETCH_ASSOC); if($cusuario){ $response->getBody()->write(json_encode($cusuario)); $status = 200; }else{ $war = [ "code" => "404", "message"=>'el login de : ' .' no es correcto corriga los datos']; $response->getBody()->write(json_encode($war)); $status = 404; } }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $status = 500; } $sqlSELECT = null; $coneccion = null; $db = null; return $response->withHeader('content-type', 'application/json')->withStatus($status); }); $app->post('/api/recuperar', function(Request $request, Response $response){ $usuario = $request->getParam('correo'); $status = 200; $sqlSELECT = " SELECT id, usuario, password, nombre, primerApellido, segundoApellido FROM Usuarios WHERE usuario = :usuario"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->prepare($sqlSELECT); $respuesta->bindParam(':usuario', $usuario); $respuesta->execute(); $login = $respuesta->fetch(PDO::FETCH_ASSOC); if($login){ $nombre = empty($login["nombre"]) ? '' : $login["nombre"]; $apellidoApellido = empty($login["primerApellido"]) ? '' : $login["primerApellido"]; $password = $login["password"]; $apellido = empty($primerApellido) ? '' : $primerApellido; $usuarioRecuperar = empty($nombre) ? $usuario : $nombre . ' ' . $apellido; mail($usuario,"CasosClinicos.online","Bienvenido $usuarioRecuperar a CASOSCLINICOS.ONLINE tus datos de registro son \n usuario: $usuario \n password: $password"); $sqlSELECT = null; $msj = array( "code" => 200, "mensaje" => "el password del usuario $usuario se envio a tu correo electronico "); $response->getBody()->write(json_encode($msj)); $status = 200; }else{ $msj = array( "code" => 404, "mensaje" => "el login de : $usuario no esta registrado "); $response->getBody()->write( json_encode($msj)); $status = 404; } }catch(PDOException $e) { $msj = array( "code" => $e->getCode(), "mensaje" => $e->getMessage() ); $response->getBody()->write(json_encode($msj)); $status = 500; } $coneccion = null; $db = null; return $response->withHeader('Content-Type', 'application/json')->withStatus($status); }); //============================ USUARIOS LISTA ============================================= $app->get('/api/usuarios', function (Request $request, Response $response){ $sqlSelectUsuarios = "SELECT u.* FROM Usuarios u"; $status = 200; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowsUsuarios = $coneccion->query($sqlSelectUsuarios, PDO::FETCH_ASSOC); $usuarios = $rowsUsuarios->fetchAll(); $response->getBody()->write(json_encode($usuarios)); $status = 200; }catch(PDOException $e){ $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $status = 500; } $coneccion = null; $db = null; return $response->withHeader('content-type', 'application/json')->withStatus($status); }); //============================ USUARIO ==================================================== $app->get('/api/usuario/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelect = " SELECT * FROM Usuarios WHERE id = $id"; $mensaje = array("msj" => " No existe el registro ", "msjk" =>"No es la palabra clave"); $ur = $request->getUri(); $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); //$header = $request->getHeaderLine('palabra-clave'); //if(strstr($header, 'bio-key')){ if($respuesta->rowCount() > 0 ){ $usuarios = $respuesta->fetch(); $respuesta = null; $coneccion = null; $db = null; // return $response->withAddedHeader('Autentificacion', '123456789')->withAddedHeader('Content-Type', 'application/json; charset=UTF-8')->write(json_encode($usuarios)); return $response->write(json_encode($usuarios)); }else{ return $response->withStatus(404)->write($mensaje["msj"]); } //} else{ //return $response->withStatus(404)->write($mensaje["msjk"] . ' ' . $ur->getHost()); //} }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage()); } }); // =========================== USUARIO - MEDICO =========================================== $app->get('/api/usuario-idmedico/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelect = " SELECT u.id, u.usuario, u.password, u.nombre, u.primerApellido, u.segundoApellido, ur.fk_rol id_rol, m.id id_medico FROM Usuarios u LEFT JOIN usuariorol ur on ur.fk_usuario=u.id LEFT JOIN Medicos m on m.fk_usuario = u.id WHERE u.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); if($respuesta->rowCount() > 0 ){ $usuario = $respuesta->fetch(); return $response->getBody()->write(json_encode($usuario)); }else{ $msj = ['code'=>'1', 'message'=>'no hay informacion']; return $response->getBody()->write(json_encode($msj)); } $respuesta = null; $coneccion = null; $db = null; }catch(PDOException $e){ $err = array( "error" => array("text" => $e->getMessage())); return $response->withStatus(500)->write($e->getMessage()); } }); //============================ USUARIO NUEVO ============================================== $app->post('/api/usuario/nuevo', function (Request $request, Response $response){ $aUsuario = []; $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $alias = $request->getParam('alias'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $sqlInsert = " INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preInsert = $coneccion->prepare($sqlInsert); $preInsert->bindParam(':usuario', $usuario); $preInsert->bindParam(':password', $password); $preInsert->bindParam(':nombre', $nombre); $preInsert->bindParam(':primerApellido', $primerApellido); $preInsert->bindParam(':segundoApellido', $segundoApellido); $preInsert->bindParam(':alias',$alias); $preInsert->bindParam(':telefonoMovil', $telefonoMovil); $preInsert->bindParam(':fk_rol', $fk_rol ); if($preInsert->execute()){ $aUsuario = array( "id" => $coneccion->lastInsertId(), "usuario" => $usuario, "password" => "", "nombre" => $nombre, "primerApellido" => $primerApellido, "segundoApellido" => $segundoApellido, "alias" => $alias, "telefonoMovil" => $telefonoMovil, "fk_rol" => $fk_rol ); }; $apellido = empty($primerApellido) ? '' : $primerApellido; $usuarioNuevo = empty($nombre) ? $usuario : $nombre . ' ' . $apellido; mail($usuario,"CasosClinicos.online","Bienvenido $usuarioNuevo a casos clinicos tus datos de registro son \n usuario: $usuario; \n password: $password"); $preInsert = null; $coneccion = null; $db = null; return $response->write(json_encode($aUsuario)); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage()); } }); //============================ USUARIO NUEVO TECNICO (REPRESENTANTE DE VENTAS)============== $app->post('/api/usuario/tecnico/nuevo', function (Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario=" INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias',$alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertTecnico=" INSERT INTO Tecnicos ( nombre, primerApellido, segundoApellido, correo, telefonoMovil, fk_usuario, fechaRegistro) VALUES (:nombre, :primerApellido, :segundoApellido, :correo, :telefonoMovil, :fk_usuario , Now())"; $preInsertTecnico = $coneccion->prepare($sqlInsertTecnico); $preInsertTecnico->bindParam(':nombre', $nombre); $preInsertTecnico->bindParam(':primerApellido', $primerApellido); $preInsertTecnico->bindParam(':segundoApellido', $segundoApellido); $preInsertTecnico->bindParam(':correo', $usuario); $preInsertTecnico->bindParam(':telefonoMovil', $telefonoMovil); $preInsertTecnico->bindParam(':fk_usuario', $fk_usuario); $preInsertTecnico->execute(); $id_tecnico = $coneccion->lastInsertId(); $coneccion->commit(); $usuarioTecnico = [ 'id' => $id_tecnico, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $usuario, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preInsertUsuario = null; $preInsertTecnico = null; $coneccion = null; $db = null; return $response->write(json_encode($usuarioTecnico)); }catch(PDOException $e){ $coneccion->rollBack(); $err = [ 'code' => $e->getCode(), 'message' => $e->getMessage()]; $preInsertUsuario = null; $preInsertTecnico = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( json_encode($err) ); } }); //============================ USUARIO NUEVO SUPERVISOR===================================== $app->post('/api/usuario/supervisor/nuevo', function (Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario=" INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias', $alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertSupervisor=" INSERT INTO Supervisores ( nombre, primerApellido, segundoApellido, correo, telefonoMovil, fk_usuario, fechaRegistro) VALUES ( :nombre, :primerApellido, :segundoApellido, :correo, :telefonoMovil, :fk_usuario, Now())"; $preInsertSupervisor = $coneccion->prepare($sqlInsertSupervisor); $preInsertSupervisor->bindParam(':nombre', $nombre); $preInsertSupervisor->bindParam(':primerApellido', $primerApellido); $preInsertSupervisor->bindParam(':segundoApellido', $segundoApellido); $preInsertSupervisor->bindParam(':correo', $usuario); $preInsertSupervisor->bindParam(':telefonoMovil', $telefonoMovil); $preInsertSupervisor->bindParam(':fk_usuario', $fk_usuario); $preInsertSupervisor->execute(); $id_supervisor = $coneccion->lastInsertId(); $coneccion->commit(); $usuarioSupervisor = [ 'id' => $id_supervisor, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $usuario, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preInsertUsuario = null; $preInsertSupervisor = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($usuarioSupervisor)); $response->withHeader('Content-Type')->withStatus(200); }catch(PDOException $e){ $coneccion->rollBack(); $err = [ 'code' => $e->getCode(), 'message' => $e->getMessage() ]; $coneccion = null; $db = null; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-Type', 'application/json')->withStatus(500); } return $response; }); //============================ USUARIO NUEVO DIRECTOR ====================================== $app->post('/api/usuario/director/nuevo', function(Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario=" INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias', $alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertSupervisor=" INSERT INTO Directores ( nombre, primerApellido, segundoApellido, correo, telefonoMovil, fk_usuario, fechaRegistro) VALUES ( :nombre, :primerApellido, :segundoApellido, :correo, :telefonoMovil, :fk_usuario, Now())"; $preInsertSupervisor = $coneccion->prepare($sqlInsertSupervisor); $preInsertSupervisor->bindParam(':nombre', $nombre); $preInsertSupervisor->bindParam(':primerApellido', $primerApellido); $preInsertSupervisor->bindParam(':segundoApellido', $segundoApellido); $preInsertSupervisor->bindParam(':correo', $usuario); $preInsertSupervisor->bindParam(':telefonoMovil', $telefonoMovil); $preInsertSupervisor->bindParam(':fk_usuario', $fk_usuario); $preInsertSupervisor->execute(); $id_supervisor = $coneccion->lastInsertId(); $coneccion->commit(); $usuarioSupervisor = [ 'id' => $id_supervisor, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $usuario, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preInsertUsuario = null; $preInsertSupervisor = null; $coneccion = null; $db = null; return $response->write(json_encode($usuarioSupervisor)); }catch(PDOException $e){ $coneccion->rollBack(); $preInsertUsuario = null; $preInsertSupervisor = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage()); } }); //============================ USUARIO NUEVO ENFERMERA====================================== $app->post('/api/usuario/enfermera/nuevo', function (Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario=" INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias',$alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertEnfermera=" INSERT INTO Enfermeras ( nombre, primerApellido, segundoApellido, correo, telefonoMovil, fk_usuario, fechaRegistro) VALUES (:nombre, :primerApellido, :segundoApellido, :correo, :telefonoMovil, :fk_usuario , Now())"; $preInsertEnfermera = $coneccion->prepare($sqlInsertEnfermera); $preInsertEnfermera->bindParam(':nombre', $nombre); $preInsertEnfermera->bindParam(':primerApellido', $primerApellido); $preInsertEnfermera->bindParam(':segundoApellido', $segundoApellido); $preInsertEnfermera->bindParam(':correo', $usuario); $preInsertEnfermera->bindParam(':telefonoMovil', $telefonoMovil); $preInsertEnfermera->bindParam(':fk_usuario', $fk_usuario); $preInsertEnfermera->execute(); $id_tecnico = $coneccion->lastInsertId(); $coneccion->commit(); $usuarioEnfermera = [ 'id' => $id_tecnico, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $usuario, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preInsertEnfermera = null; $preInsertUsuario = null; $coneccion = null; $db = null; return $response->write(json_encode($usuarioEnfermera)); }catch(PDOException $e){ $coneccion->rollBack(); $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $preInsertEnfermera = null; $preInsertUsuario = null; $coneccion = null; $db = null; return $response->withStatus(500)->write(json_encode($err)); } }); //============================ USUARIO NUEVO MEDICO========================================= $app->post('/api/usuario/medico/nuevo', function (Request $request, Response $response){ $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $alias = $request->getParam('alias'); $fk_rol = $request->getParam('fk_rol'); $rfc = $request->getParam('rfc'); $correo = $request->getParam('usuario'); //correo $telefonoMovil = $request->getParam('telefonoMovil'); $fk_especialidad = $request->getParam('fk_especialidad'); $nomEspecialidad = $request->getParam('nomEspecialidad'); $fk_puesto = $request->getParam('fk_puesto'); $fk_residencia = $request->getParam('fk_residencia'); $fk_usuario = $request->getParam('fk_usuario'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario=" INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias',$alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertMedico = " INSERT INTO Medicos ( nombre, primerApellido , segundoApellido, rfc, correo, telefonoMovil, fk_especialidad, nomEspecialidad, fk_puesto, fk_residencia, fk_usuario, fechaRegistro ) VALUES ( :nombre, :primerApellido, :segundoApellido, :rfc, :correo, :telefonoMovil, :fk_especialidad, :nomEspecialidad, :fk_puesto, :fk_residencia, :fk_usuario, Now())"; $preInsertMedico = $coneccion->prepare($sqlInsertMedico); $preInsertMedico->bindParam(':nombre', $nombre); $preInsertMedico->bindParam(':primerApellido', $primerApellido); $preInsertMedico->bindParam(':segundoApellido', $segundoApellido); $preInsertMedico->bindParam(':rfc', $rfc); $preInsertMedico->bindParam(':correo', $correo); $preInsertMedico->bindParam(':telefonoMovil', $telefonoMovil); $preInsertMedico->bindParam(':fk_especialidad', $fk_especialidad ); $preInsertMedico->bindParam(':nomEspecialidad', $nomEspecialidad ); $preInsertMedico->bindParam(':fk_puesto', $fk_puesto ); $preInsertMedico->bindParam(':fk_residencia', $fk_residencia ); $preInsertMedico->bindParam(':fk_usuario', $fk_usuario ); $preInsertMedico->execute(); $id_medico= $coneccion->lastInsertId(); $coneccion->commit(); $medico = [ "id_medico"=> $id_medico, "nombre" => $nombre, "primerApellido"=> $primerApellido, "segundoApellido"=> $segundoApellido, "rfc"=> $rfc, "correo"=> $correo, "telefonoMovil"=> $telefonoMovil, "fk_especialidad"=> $fk_especialidad, "nomEspecialidad"=> $nomEspecialidad, "fk_puesto"=> $fk_puesto, "fk_residencia"=> $fk_residencia, "fk_usuario" => $fk_usuario, "fk_rol"=> $fk_rol, "alias"=> $alias ]; $apellido = empty($primerApellido) ? '' : $primerApellido; $usuarioNuevo = empty($nombre) ? $usuario : $nombre . ' ' . $apellido; mail("alertas@casosclinicos.online;","Nuevo medico","medico $usuarioNuevo "); mail("alertas_cc@biotechsa.com","Nuevo medico","medico $usuarioNuevo "); $preInsertUsuario = null; $preInsertMedico = null; $coneccion = null; $db = null; return $response->write(json_encode($medico)); }catch(PDOException $e){ $coneccion->rollBack(); $preInsertUsuario = null; $preInsertMedico = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ MEDICOS LISTA ================================================ $app->get('/api/medicos', function(Request $request, Response $response){ $sqlSelectMedicos = " SELECT * FROM Medicos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedicos = $coneccion->query($sqlSelectMedicos, PDO::FETCH_ASSOC); $medicos = $rowMedicos->fetchAll(); $rowMedicos = null; $coneccion = null; $db = null; return $response->getBody()->write(json_encode($medicos)); }catch(PDOException $e){ $rowMedicos = null; $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ TECNICOS LISTA ============================================== $app->get('/api/tecnicos', function (Request $request, Response $response){ $sqlSelectTecnicos = "SELECT t.* FROM Tecnicos t "; $db = new DB(); $coneccion = $db->Coneccion(); try{ //$respuesta->rowCount() $rowsTecnicos = $coneccion->query($sqlSelectTecnicos, PDO::FETCH_ASSOC); $tecnicos = $rowsTecnicos->fetchAll(); $rowsTecnicos = null; $coneccion = null; $db = null; return $response->write( json_encode($tecnicos) ); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ SUPERVISORES LISTA====================================== $app->get('/api/supervisores', function (Request $request, Response $response){ $sqlSelectSupervisores = " SELECT s.id, u.usuario, u.alias, s.nombre, s.primerApellido, s.segundoApellido, s.correo, s.telefonoMovil, s.fk_usuario, u.fk_rol FROM Supervisores s INNER JOIN Usuarios u ON u.id=s.fk_usuario"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowsSupervisores = $coneccion->query($sqlSelectSupervisores, PDO::FETCH_ASSOC); $supervisores = $rowsSupervisores->fetchAll(); $rowsSupervisores = null; $coneccion = null; $db = null; return $response->write( json_encode($supervisores) ); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ ENFERMERAS LISTA ============================================ $app->get('/api/enfermeras', function(Request $request, Response $response){ $sqlSelectEnfermeras = " SELECT e.* FROM Enfermeras e "; $db = new DB(); $coneccion = $db->Coneccion(); try{ //$respuesta->rowCount() $rowsEnfermeras = $coneccion->query($sqlSelectEnfermeras, PDO::FETCH_ASSOC); $enfermeras = $rowsEnfermeras->fetchAll(); $rowsEnfermeras = null; $coneccion = null; $db = null; return $response->write( json_encode($enfermeras) ); }catch(PDOException $e){ $rowsEnfermeras = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); //================================= SUPERVISOR ACTUALIZAR ===================== $app->put('/api/supervisor/actualizar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $id_supervisor = $request->getParam('id'); $usuario = $request->getParam('usuario'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_usuario = $request->getParam('fk_usuario'); $fk_rol = $request->getParam('fk_rol'); $supervisor =[]; $sqlUpdateUsuario = " UPDATE Usuarios SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, telefonoMovil = :telefonoMovil WHERE id = $fk_usuario"; $sqlUpdateSupervisor = " UPDATE Supervisores SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, correo = :correo, telefonoMovil = :telefonoMovil WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $preUpdateUsuario = $coneccion->prepare($sqlUpdateUsuario); $preUpdateUsuario->bindParam(':nombre', $nombre); $preUpdateUsuario->bindParam(':primerApellido', $primerApellido); $preUpdateUsuario->bindParam(':segundoApellido', $segundoApellido); $preUpdateUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateUsuario->execute(); $preUpdateSupervisor = $coneccion->prepare($sqlUpdateSupervisor); $preUpdateSupervisor->bindParam(':nombre', $nombre); $preUpdateSupervisor->bindParam(':primerApellido', $primerApellido); $preUpdateSupervisor->bindParam(':segundoApellido', $segundoApellido); $preUpdateSupervisor->bindParam(':correo', $correo); $preUpdateSupervisor->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateSupervisor->execute(); $coneccion->commit(); $supervisor = [ 'id' => $id, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $correo, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preUpdateUsuario = null; $preUpdateSupervisor = null; $coneccion = null; $db = null; return $response->write(json_encode($supervisor)); }catch(PDOException $e){ $coneccion->rollBack(); $coneccion = null; $db = null; $err = ["code"=> $e->getCode(), "message"=> $e->getMessage()]; return $response->withStatus(500)->write( json_encode($err) ); } }); //================================= REPRESENTANTE ACTUALIZAR ================== $app->put('/api/tecnico/actualizar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $id_supervisor = $request->getParam('id'); $usuario = $request->getParam('usuario'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_usuario = $request->getParam('fk_usuario'); $fk_rol = $request->getParam('fk_rol'); $tecnico =[]; $sqlUpdateUsuario = " UPDATE Usuarios SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, telefonoMovil = :telefonoMovil WHERE id = $fk_usuario"; $sqlUpdateTecnico = " UPDATE Tecnicos SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, correo = :correo, telefonoMovil = :telefonoMovil WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $preUpdateUsuario = $coneccion->prepare($sqlUpdateUsuario); $preUpdateUsuario->bindParam(':nombre', $nombre); $preUpdateUsuario->bindParam(':primerApellido', $primerApellido); $preUpdateUsuario->bindParam(':segundoApellido', $segundoApellido); $preUpdateUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateUsuario->execute(); $preUpdateTecnico = $coneccion->prepare($sqlUpdateTecnico); $preUpdateTecnico->bindParam(':nombre', $nombre); $preUpdateTecnico->bindParam(':primerApellido', $primerApellido); $preUpdateTecnico->bindParam(':segundoApellido', $segundoApellido); $preUpdateTecnico->bindParam(':correo', $correo); $preUpdateTecnico->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateTecnico->execute(); $coneccion->commit(); $tecnico = [ 'id' => $id, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $correo, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preUpdateUsuario = null; $preUpdateTecnico = null; $coneccion = null; $db = null; return $response->write(json_encode($tecnico)); }catch(PDOException $e){ $coneccion->rollBack(); $coneccion = null; $db = null; $err = ["code"=> $e->getCode(), "message"=> $e->getMessage()]; return $response->withStatus(500)->write( json_encode($err) ); } }); //================================= ENFERMERA ACTUALIZAR ============================= $app->put('/api/enfermera/actualizar/{id}', function(Request $request,Response $response){ $id = $request->getAttribute('id', 0); $id_supervisor = $request->getParam('id'); $usuario = $request->getParam('usuario'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_usuario = $request->getParam('fk_usuario'); $fk_rol = $request->getParam('fk_rol'); $enfermera = []; $sqlUpdateUsuario = " UPDATE Usuarios SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, telefonoMovil = :telefonoMovil WHERE id = $fk_usuario"; $sqlUpdateEnfermera = " UPDATE Enfermeras SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, correo = :correo, telefonoMovil = :telefonoMovil WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $preUpdateUsuario = $coneccion->prepare($sqlUpdateUsuario); $preUpdateUsuario->bindParam(':nombre', $nombre); $preUpdateUsuario->bindParam(':primerApellido', $primerApellido); $preUpdateUsuario->bindParam(':segundoApellido', $segundoApellido); $preUpdateUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateUsuario->execute(); $preUpdateEnfermera = $coneccion->prepare($sqlUpdateEnfermera); $preUpdateEnfermera->bindParam(':nombre', $nombre); $preUpdateEnfermera->bindParam(':primerApellido', $primerApellido); $preUpdateEnfermera->bindParam(':segundoApellido', $segundoApellido); $preUpdateEnfermera->bindParam(':correo', $correo); $preUpdateEnfermera->bindParam(':telefonoMovil', $telefonoMovil); $preUpdateEnfermera->execute(); $coneccion->commit(); $enfermera = [ 'id' => $id, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'correo' => $correo, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol ]; $preUpdateUsuario = null; $preUpdateEnfermera = null; $coneccion = null; $db = null; return $response->write(json_encode($enfermera)); }catch(PDOException $e){ $coneccion->rollBack(); $coneccion = null; $db = null; $err = ["code"=> $e->getCode(), "message"=> $e->getMessage()]; return $response->withStatus(500)->write( json_encode($err) ); } }); //============= LISTA DE TECNICOS (REPRESENTANTE DE VENTA) POR SUPERVISOR ==================== $app->get('/api/tecnicos/supervisor/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', '0'); $sqlSelectTecnicos = " SELECT t.* FROM Tecnicos t INNER JOIN SupervisoresTecnicos st ON st.fk_tecnico = t.id WHERE st.fk_supervisor = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowTecnicos = $coneccion->query($sqlSelectTecnicos, PDO::FETCH_ASSOC); $tecnicos = $rowTecnicos->fetchAll(); $rowTecnicos = null; $coneccion = null; $db = null; return $response->write( json_encode($tecnicos)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage() ); } }); //============= LISTA DE ENFERMERAS POR SUPERVISOR ==================== $app->get('/api/enfermeras/supervisor/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id'); $sqlSelectEnfermeras = " SELECT e.* FROM Enfermeras e INNER JOIN SupervisoresEnfermeras se ON se.fk_enfermera = e.id WHERE se.fk_supervisor = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEnfermeras = $coneccion->query($sqlSelectEnfermeras, PDO::FETCH_ASSOC); $enfermeras = $rowEnfermeras->fetchAll(); $response->getBody()->write(json_encode($enfermeras)); $response->withHeader('Content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-type', 'application/json')->withStatus(500); } $coneccion = null; $db = null; return $response; }); //============= SUPERVISOR =================================================================== $app->get('/api/supervisor/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelectSupervisor = "SELECT s.id, u.usuario, u.alias, s.nombre, s.primerApellido, s.segundoApellido, s.correo, s.telefonoMovil, s.fk_usuario, u.fk_rol FROM Supervisores s INNER JOIN Usuarios u ON u.id=s.fk_usuario WHERE s.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowSupervisor = $coneccion->query($sqlSelectSupervisor, PDO::FETCH_ASSOC); $supervisor = $rowSupervisor->fetch(); $rowSupervisor = null; $coneccion = null; $db = null; return $response->write( json_encode($supervisor) ); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $coneccion = null; $db = null; return $response->write( json_encode($err) ); } }); //============= TECNICO (REPRESENTANTE DE VENTA) ============================================= $app->get('/api/tecnico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelectTecnico = "SELECT t.id, u.usuario, u.alias, t.nombre, t.primerApellido, t.segundoApellido, t.correo, t.telefonoMovil, t.fk_usuario, u.fk_rol FROM Tecnicos t INNER JOIN Usuarios u ON u.id=t.fk_usuario WHERE t.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowTecnico = $coneccion->query($sqlSelectTecnico, PDO::FETCH_ASSOC); $tecnico = $rowTecnico->fetch(); $rowTecnico = null; $coneccion = null; $db = null; return $response->write( json_encode($tecnico) ); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $coneccion = null; $db = null; return $response->write( json_encode($err) ); } }); //============= ENFERMERA ==================================================================== $app->get('/api/enfermera/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelectEnfermera = " SELECT e.id, u.usuario, u.alias, e.nombre, e.primerApellido, e.segundoApellido, e.correo, e.telefonoMovil, e.fk_usuario, u.fk_rol FROM Enfermeras e INNER JOIN Usuarios u ON u.id = e.fk_usuario WHERE e.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEnfermera = $coneccion->query($sqlSelectEnfermera, PDO::FETCH_ASSOC); $enfermera = $rowEnfermera->fetch(); $rowEnfermera = null; $coneccion = null; $db = null; return $response->write( json_encode($enfermera) ); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $coneccion = null; $db = null; return $response->write( json_encode($err) ); } }); //============= MEDICOS Relacionados a los Supervisores ====================================== $app->get('/api/medicos/supervisor/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelectMedicos = "SELECT m.* FROM Medicos m INNER JOIN TecnicosMedicos tm ON tm.fk_medico = m.id INNER JOIN SupervisoresTecnicos st ON st.fk_tecnico = tm.fk_tecnico WHERE st.fk_supervisor = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedicos = $coneccion->query($sqlSelectMedicos, PDO::FETCH_ASSOC); $medicos = $rowMedicos->fetchAll(); $rowMedicos = null; $coneccion = null; $db = null; return $response->write( json_encode($medicos) ); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $coneccion = null; $db = null; return $response->write( json_encode($err) ); } }); //============= CASOSCLINICOS Relacionados a los Supervisores ================================ $app->get('/api/casosclinicos/supervisor/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelectCasosClinicos = " SELECT cc.* FROM CasosClinicos cc INNER JOIN TecnicosMedicos tm ON tm.fk_medico = cc.fk_medico INNER JOIN SupervisoresTecnicos st ON st.fk_tecnico = tm.fk_tecnico WHERE st.fk_supervisor = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCasosClinicos = $coneccion->query($sqlSelectCasosClinicos, PDO::FETCH_ASSOC); $casosclinicos = $rowCasosClinicos->fetchAll(); $rowCasosClinicos = null; $coneccion = null; $db = null; return $response->write( json_encode($casosclinicos) ); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $coneccion = null; $db = null; return $response->write( json_encode($err) ); } }); //============ RESPRESENTANTE NUEVO por Supervisor ========================== $app->post('/api/supervisor/representante/nuevo', function(Request $request, Response $response){ $id = $request->getParam('id'); $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_rol = $request->getParam('fk_rol'); $fk_supervisor = $request->getParam('fk_supervisor'); $db = new DB(); $coneccion = $db->Coneccion(); try{ $coneccion->beginTransaction(); $sqlInsertUsuario = "INSERT INTO Usuarios ( usuario, password, nombre, primerApellido, segundoApellido, alias, telefonoMovil, fk_rol, fechaRegistro ) VALUES (:usuario, :password, :nombre, :primerApellido, :segundoApellido, :alias, :telefonoMovil, :fk_rol , Now())"; $preInsertUsuario = $coneccion->prepare($sqlInsertUsuario); $preInsertUsuario->bindParam(':usuario', $usuario); $preInsertUsuario->bindParam(':password', $password); $preInsertUsuario->bindParam(':nombre', $nombre); $preInsertUsuario->bindParam(':primerApellido', $primerApellido); $preInsertUsuario->bindParam(':segundoApellido', $segundoApellido); $preInsertUsuario->bindParam(':alias', $alias); $preInsertUsuario->bindParam(':telefonoMovil', $telefonoMovil); $preInsertUsuario->bindParam(':fk_rol', $fk_rol ); $preInsertUsuario->execute(); $fk_usuario = $coneccion->lastInsertId(); $sqlInsertTecnico = " INSERT INTO Tecnicos ( nombre, primerApellido, segundoApellido, correo, telefonoMovil, fk_usuario, fechaRegistro) VALUES (:nombre, :primerApellido, :segundoApellido, :correo, :telefonoMovil, :fk_usuario , Now())"; $preInsertTecnico = $coneccion->prepare($sqlInsertTecnico); $preInsertTecnico->bindParam(':nombre', $nombre); $preInsertTecnico->bindParam(':primerApellido', $primerApellido); $preInsertTecnico->bindParam(':segundoApellido', $segundoApellido); $preInsertTecnico->bindParam(':correo', $usuario); $preInsertTecnico->bindParam(':telefonoMovil', $telefonoMovil); $preInsertTecnico->bindParam(':fk_usuario', $fk_usuario); $preInsertTecnico->execute(); $id_tecnico = $coneccion->lastInsertId(); $sqlInsertRelSupervisorTecnico = " INSERT INTO SupervisoresTecnicos ( fk_supervisor, fk_tecnico) VALUES (:fk_supervisor, :fk_tecnico)"; $preInsertSupervisorTecnico = $coneccion->prepare($sqlInsertRelSupervisorTecnico); $preInsertSupervisorTecnico->bindParam(':fk_supervisor', $fk_supervisor); $preInsertSupervisorTecnico->bindParam(':fk_tecnico', $id_tecnico); $preInsertSupervisorTecnico->execute(); $coneccion->commit(); $usuarioTecnico = [ 'id' => $id_tecnico, 'usuario' => $usuario, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'telefoMovil' => $telefonoMovil, 'fk_usuario'=> $fk_usuario, 'fk_rol' => $fk_rol, 'fk_supervisor' => $fk_supervisor ]; $usuarioTecnico = ['id'=>"0", 'nombre' => "Daniela"]; $preInsertUsuario = null; $preInsertTecnico = null; $preInsertSupervisorTecnico = null; $coneccion = null; $db = null; return $response->write(json_encode($usuarioTecnico)); }catch(PDOException $e){ $coneccion->rollBack(); $err = [ 'code' => $e->getCode(), 'message' => $e->getMessage() ]; $coneccion = null; $db = null; return $response->withStatus(500)->write( json_encode($err) ); } }); //============================ USUARIO ACTUALIZAR DATOS BASICOS ============================== $app->post('/api/usuario/basico', function (Request $request, Response $response){ $id = $request->getParam('id'); $alias = $request->getParam('alias'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $telefonoMovil = $request->getParam('telefonoMovil'); $sqlUpdateUsuarioBasico = " UPDATE Usuarios SET alias = :alias, nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, telefonoMovil = :telefonoMovil WHERE id = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowUpdateUsarioBasico = $coneccion->prepare($sqlUpdateUsuarioBasico); $rowUpdateUsarioBasico->bindParam(':alias', $alias); $rowUpdateUsarioBasico->bindParam(':nombre', $nombre); $rowUpdateUsarioBasico->bindParam(':primerApellido', $primerApellido); $rowUpdateUsarioBasico->bindParam(':segundoApellido', $segundoApellido); $rowUpdateUsarioBasico->bindParam(':telefonoMovil', $telefonoMovil); $rowUpdateUsarioBasico->execute(); $rowUpdateUsarioBasico = null; $coneccion = null; $db = null; $usuarioBasico = [ 'id' => $id, 'alias' => $alias, 'nombre' => $nombre, 'primerApellido' => $primerApellido, 'segundoApellido' => $segundoApellido, 'telefoMovil' => $telefonoMovil ]; return $response->write(json_encode($usuarioBasico)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ USUARIO ACTUALIZAR ========================================== $app->put('/api/usuario/actualizar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $usuario = $request->getParam('usuario'); $password = $request->getParam('password'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $alias = $request->getParam('alias'); $mensaje = array("msj" => "registro actualizado exitoso"); $sqlUpdate = " UPDATE Usuarios SET usuario = :usuario, password = :password, nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segudoApellido, alias = :alias WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preUpdate = $coneccion->prepare($sqlUpdate); $preUpdate->bindParam(':usuario', $usuario); $preUpdate->bindParam(':password', $password); $preUpdate->bindParam(':nombre', $nombre); $preUpdate->bindParam(':primerApellido', $primerApellido); $preUpdate->bindParam(':segundoApellido', $segundoApellido); $preUpdate->bindParam(':alias', $alias); $preUpdate->execute(); $preUpdate = null; $coneccion = null; $db = null; return $response->write(json_encode($mensaje["msj"])); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ USUARIO ELIMINAR ============================================ $app->delete('/api/usuario/eliminar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id'); $mensaje = array("msj" =>"registro eliminado exitoso"); $sqlDelete = "DELETE FROM Usuarios WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preDelete = $coneccion->prepare($sqlDelete); $preDelete->execute(); $preDelete = null; $coneccion = null; $db = null; return $response->write(json_encode($mensaje["msj"])); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //================================ NOMBRE COMPLETO ========================================== $app->get('/api/medicos/completo', function(Request $request, Response $response){ $sqlSelectMedicos = " SELECT id, CONCAT( IF(nombre is null, '', nombre), ' ', IF(primerApellido is null, '', primerApellido), ' ', IF(segundoApellido is null, '', segundoApellido) ) nombreCompleto FROM Medicos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedicos = $coneccion->query($sqlSelectMedicos, PDO::FETCH_ASSOC); $medicos = $rowMedicos->fetchAll(); $rowMedicos = null; $coneccion = null; $db = null; return $response->write( json_encode($medicos)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); // =============================== NOMBRE COMPLETO ========================================== $app->get('/api/tecnicos/completo', function(Request $request, Response $response){ $status = 0; $sqlSelectTecnicos = " SELECT id, CONCAT( IF(nombre is null, '', nombre), ' ', IF(primerApellido is null, '', primerApellido), ' ', IF(segundoApellido is null, '', segundoApellido) ) nombreCompleto FROM Tecnicos "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowTecnicos = $coneccion->query($sqlSelectTecnicos, PDO::FETCH_ASSOC); $tecnicos = $rowTecnicos->fetchAll(); $rowTecnicos = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($tecnicos)); $status = 200; }catch(PDOException $e){ $coneccion = null; $db = null; $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $status = 500; } return $response->withHeader('Content-type', 'application/json')->withStatus($status); }); // =============================== NOMBRE COMPLETO ========================================== $app->get('/api/enfermeras/completo', function(Request $request, Response $response){ $sqlSelectEnfermeras = " SELECT id, CONCAT( IF(nombre is null, '', nombre), ' ', IF(primerApellido is null, '', primerApellido), ' ', IF(segundoApellido is null, '', segundoApellido) ) nombreCompleto FROM Enfermeras "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEnfermeras = $coneccion->query($sqlSelectEnfermeras, PDO::FETCH_ASSOC); $enfermeras = $rowEnfermeras->fetchAll(); $coneccion = null; $db = null; $response->getBody()->write(json_encode($enfermeras)); $response->withHeader('Content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $coneccion = null; $db = null; $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-type', 'application/jsom')->withStatus(500); } return $response; }); //============================ MEDICO ======================================================= $app->get('/api/medico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', '0'); $sqlSelectMedico = " SELECT m.*, e.nomEspecialidad, p.nomPuesto, ppp.puntos FROM Medicos m LEFT JOIN c_Especialidades e ON e.id = m.fk_especialidad LEFT JOIN c_Puestos p ON p.id = m.fk_puesto LEFT JOIN PuntosPorProducto ppp ON ppp.id = m.fk_puntos WHERE m.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedico = $coneccion->query($sqlSelectMedico, PDO::FETCH_ASSOC); $medico = $rowMedico->fetch(); $rowMedico = null; $coneccion = null; $db = null; return $response->write( json_encode($medico)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ MEDICO PERFIL================================================ $app->get('/api/medico/perfil/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', '0'); $sqlSelectMedicoPerfil = " SELECT m.id, m.nombre, m.primerApellido, m.segundoApellido, m.rfc, m.correo, m.telefonoMovil, m.fk_especialidad, m.fk_puesto, m.fk_residencia, m.fk_usuario FROM Medicos m WHERE m.id = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try { $rowMedicoPerfil = $coneccion->query($sqlSelectMedicoPerfil, PDO::FETCH_ASSOC); $medico = $rowMedicoPerfil->fetch(); $rowMedicoPerfil = null; $coneccion = null; $db = null; return $response->write( json_encode($medico) ); }catch(PDOException $e){ return $response->withStatus(500)->write( "SECCION PDO-EX" . $e->getMessage() ); } }); //============================ MEDICO NUEVO ================================================ $app->post('/api/medico/nuevo', function(Request $request, Response $response){ $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segudoApellido = $request->getParam('segundoApellido'); $rfc = $request->getParam('rfc'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_especialidad = $request->getParam('fk_especialidad'); $nomEspecialidad = $request->getParam('nomEspecialidad'); $fk_puesto = $request->getParam('fk_puesto'); $fk_residencia = $request->getParam('fk_residencia'); $fk_usuario = $request->getParam('fk_usuario'); $fk_puntos = $request->getParam('fk_puntos'); $mensaje = array("msj" => "registro exitoso"); $sqlInsert = " INSERT INTO Medicos ( nombre, primerApellido , segundoApellido, rfc, correo, telefonoMovil, fk_especialidad, nomEspecialidad, fk_puesto, fk_residencia, fk_usuario, fechaRegistro ) VALUES ( :nombre, :primerApellido, :segundoApellido, :rfc, :correo, :telefonoMovil, :fk_especialidad, :nomEspecialidad, :fk_puesto, :fk_residencia, :fk_usuario, Now())"; $sqlSELECT = " SELECT u.id as id_usuario, u.usuario, m.id as id_medico, u.nombre, u.primerApellido, u.segundoApellido, u.alias, r.id as id_rol, r.desc_rol as descripcion_rol FROM Usuarios u LEFT JOIN Roles r ON r.id=u.fk_rol LEFT JOIN Medicos m ON m.fk_usuario = u.id WHERE u.id = $fk_usuario"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preInsert = $coneccion->prepare($sqlInsert); $preInsert->bindParam(':nombre', $nombre); $preInsert->bindParam(':primerApellido', $primerApellido); $preInsert->bindParam(':segundoApellido', $segudoApellido); $preInsert->bindParam(':rfc', $rfc); $preInsert->bindParam(':correo', $correo); $preInsert->bindParam(':telefonoMovil', $telefonoMovil); $preInsert->bindParam(':fk_especialidad', $fk_especialidad); $preInsert->bindParam(':nomEspecialidad', $nomEspecialidad); $preInsert->bindParam(':fk_puesto', $fk_puesto); $preInsert->bindParam(':fk_residencia', $fk_residencia); $preInsert->bindParam(':fk_usuario', $fk_usuario); $preInsert->execute(); $preSELECT = $coneccion->prepare($sqlSELECT); $preSELECT->execute(); $usuario = $preSELECT->fetch(PDO::FETCH_ASSOC); mail("alertas@casosclinicos.online;","Nuevo medico","medico $nombre $primerApellido "); mail("alertas_cc@biotechsa.com","Nuevo medico","medico $nombre $primerApellido "); $preSELECT = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($usuario)); return $response->withHeader('content-type', 'applicacion/json')->withStatus(200); }catch(PDOException $e){ $coneccion = null; $db = null; $err=Array("code"=>$e->getCode(), "message"=>$e->getMessage()); $response->getBody()->write( json_encode($err) ); return $response->withHeader('content-type', 'application/json')->withStatus(500); } }); //============================ MEDICO MODIFICADO =========================================== $app->put('/api/medico/actualizar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', '0'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $rfc = $request->getParam('rfc'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_especialidad = $request->getParam('fk_especialidad'); $fk_puesto = $request->getParam('fk_puesto'); $fk_residencia = $request->getParam('fk_residencia'); $sqlUpdate = " UPDATE Medicos SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, rfc = :rfc, correo= :correo, telefonoMovil= :telefonoMovil, fk_especialidad = :fk_especialidad, fk_puesto = :fk_puesto, fk_residencia = :fk_residencia WHERE id = $id"; $mensaje = array("msj" => "registro actualizado exitoso"); $db = new DB(); $coneccion = $db->Coneccion(); try{ $preUpdate = $coneccion->prepare($sqlUpdate); $preUpdate->bindParam(':nombre', $nombre); $preUpdate->bindParam(':primerApellido', $primerApellido); $preUpdate->bindParam(':segundoApellido', $segundoApellido); $preUpdate->bindParam(':rfc', $rfc); $preUpdate->bindParam(':correo', $correo); $preUpdate->bindParam(':telefonoMovil', $telefonoMovil); $preUpdate->bindParam(':fk_especialidad', $fk_especialidad); $preUpdate->bindParam(':fk_puesto', $fk_puesto); $preUpdate->bindParam(':fk_residencia', $fk_residencia); $preUpdate->execute(); $preUpdate = null; $coneccion = null; $db = null; return $response->getBody()->write($mensaje["msj"]); }catch(PDOException $e){ $err = ['code'=>$e->getCode(), 'message'=>$e->getMessage()]; return $response->withHeader('content-type', 'application/json')->withStatus(500)->write(json_encode($err) ); } }); //============================ MEDICO PERFIL MODIFICADO ==================================== $app->post('/api/medico/perfil/actualizar', function(Request $request, Response $response){ $id = $request->getParam('id'); $nombre = $request->getParam('nombre'); $primerApellido = $request->getParam('primerApellido'); $segundoApellido = $request->getParam('segundoApellido'); $rfc = $request->getParam('rfc'); $correo = $request->getParam('correo'); $telefonoMovil = $request->getParam('telefonoMovil'); $fk_especialidad = $request->getParam('fk_especialidad'); $fk_puesto = $request->getParam('fk_puesto'); $fk_residencia = $request->getParam('fk_residencia'); $id_usuario = $request->getParam('fk_usuario'); $sqlUpdateMedico = " UPDATE Medicos SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido, rfc = :rfc, #correo = :correo, telefonoMovil = :telefonoMovil, fk_especialidad = :fk_especialidad, fk_puesto = :fk_puesto, fk_residencia = :fk_residencia WHERE id = $id; UPDATE Usuarios SET nombre = :nombre, primerApellido = :primerApellido, segundoApellido = :segundoApellido WHERE id = $id_usuario; "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $medico = []; ; $stmMedico = $coneccion->prepare($sqlUpdateMedico); $stmMedico->bindParam(':nombre', $nombre); $stmMedico->bindParam(':primerApellido', $primerApellido); $stmMedico->bindParam(':segundoApellido', $segundoApellido); $stmMedico->bindParam(':rfc', $rfc); $stmMedico->bindParam(':correo', $correo); $stmMedico->bindParam(':telefonoMovil', $telefonoMovil); $stmMedico->bindParam(':fk_especialidad', $fk_especialidad); $stmMedico->bindParam(':fk_puesto', $fk_puesto); $stmMedico->bindParam(':fk_residencia', $fk_residencia); if($stmMedico->execute()){ $medico = [ "id" => $id, "nombre" => $nombre, "primerApellido" => $primerApellido, "segundoApellido" => $segundoApellido, "rfc" => $rfc, "correo" => $correo, "telefonoMovil" => $telefonoMovil, "fk_especialidad" => $fk_especialidad, "fk_puesto" => $fk_puesto, "fk_residencia" => $fk_residencia, "fk_usuario" => $id_usuario ]; } $coneccion = null; $db = null; return $response->write(json_encode($medico)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ MEDICO ELIMINADO ============================================ $app->delete('/api/medico/eliminar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id'); $sqlDelete = "DELETE FROM Medicos WHERE id = $id"; $mensaje = array("msj" => "registro eliminado exitoso"); $db = new DB(); $coneccion = $db->Coneccion(); try{ $preDelete = $coneccion->prepare($sqlDelete); $preDelete->execute(); $preDelete = null; $coneccion = null; $db = null; return $response->write(json_encode($mensaje["msj"])); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); // ======================= CASOS CLINICOS MEDICO ========================================= $app->get('/api/casosclinicos/medico/{im}', function(Request $request, Response $response){ $im = $request->getAttribute('im', 0); $sqlSELECT = " SELECT cc.id, cc.folio, cc.serie, cc.paciente, cc.sexo, cc.edad, cc.status, cc.antecedente, cc.tratamiento, cc.nomAntibiotico1, cc.fechaAplicacionProducto, cc.fecha, cc.fechaRegistro, cc.fk_medico, cc.fk_hospital, cc.fk_institucion, cc.cveInstitucion, cc.fk_diagnostico, cc.diagnostico, cc.hospital, i.cvInstitucion as institucion, IF(p.noProductos is null, 0, p.noProductos) as noProductos, IF(s.noSeguimientos is null, 0, s.noSeguimientos ) as noSeguimientos FROM CasosClinicos as cc LEFT JOIN c_Hospitales as h ON h.id = cc.fk_hospital LEFT JOIN c_Instituciones as i ON i.id = h.fk_institucion LEFT JOIN ( SELECT sum(puntos) as puntosProductos, count(id_casoClinico) as noProductos, id_casoClinico FROM CasosProductos GROUP BY id_CasoClinico ) as p ON cc.id = p.id_casoClinico LEFT JOIN ( SELECT sum(puntos) as puntosSeguimientosPostOperatorio, count(fk_casoClinico) as noSeguimientos, fk_casoClinico FROM SeguimientosPostOperatorio GROUP BY fk_casoClinico ) as s ON cc.id = s.fk_casoClinico WHERE fk_medico = $im"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $casosclinicos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($casosclinicos)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //======================== CASOS CLINICOS MEDICO ========================================= $app->get('/api/medico/casosclinicos/{im}', function(Request $request, Response $response){ $im = $request->getAttribute('im'); $sqlSelect = " SELECT cc.*, nomInstitucion FROM CasosClinicos cc LEFT JOIN c_Instituciones i ON i.id = h.fk_institucion WHERE cc.fk_medico = $im"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $expedientes = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write( json_encode($expedientes)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); // ======================= CASOS CLINICOS ================================================= $app->get('/api/casosclinicos', function(Request $request, Response $response){ $sqlSelectCasosClinicos = " SELECT cc.* FROM CasosClinicos cc"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCasosClinicos = $coneccion->query($sqlSelectCasosClinicos, PDO::FETCH_ASSOC); $casosClinicos = $rowCasosClinicos->fetchAll(); $rowCasosClinicos = null; $coneccion = null; $db = null; return $response->write(json_encode($casosClinicos)); }catch(PDOException $e){ $rowCasosClinicos = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->getMessage() ); } }); // ======================= CASOS CLINICOS MEDICO COMPUESTOS ================================ $app->get('/api/casosclinicoscmp/medico/{im}', function(Request $request, Response $response){ $im = $request->getAttribute('im', 0); $sqlSELECT = "SELECT cc.*, h.nomHospital, d.nomDiagnostico FROM CasosClinicos cc LEFT JOIN c_Hospitales h ON h.id = cc.fk_hospital LEFT JOIN c_Diagnosticos d ON d.id = cc.fk_diagnostico WHERE cc.fk_medico = $im"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $casosclinicos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($casosclinicos)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //======================== CASO CLINICO ==================================================== $app->get('/api/casoclinico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECT = " SELECT id, folio, sexo, edad, status, antecedenteCaso, tratamiento, fechaAplicacionProducto, fechaBaja, fechaRegistro, fk_medico, fk_hospital, cc.fk_institucion, cc.cveInstitucion, fk_diagnostico FROM CasosClinicos WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $casoclinico = $respuesta->fetch(); $respuesta = null; $coneccion = null; $db = null; return $response->write( json_encode($casoclinico)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //======================== CASO CLINICO COMPUESTO ========================================= $app->get('/api/casoclinicocmp/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECTCasoClinico = " SELECT cc.id, cc.folio, cc.serie, cc.paciente, cc.sexo, CASE cc.sexo WHEN 'H' then 'Hombre' WHEN 'M' then 'Mujer' ELSE null END as nomSexo, cc.edad, cc.status, cc.antecedente, cc.tratamiento, cc.fk_antibiotico1, cc.nomAntibiotico1, cc.cantidad1, cc.fk_antibiotico2, cc.nomAntibiotico2, cc.cantidad2, cc.fk_antibiotico3, cc.nomAntibiotico3, cc.cantidad3, cc.fechaAplicacionProducto, cc.fecha, cc.fechaRegistro, cc.fk_medico, cc.fk_enfermera, cc.fk_estado, cc.fk_institucion, cc.cveInstitucion, cc.fk_hospital, cc.hospital, cc.fk_diagnostico, cc.diagnostico, cc.observacion FROM CasosClinicos cc WHERE cc.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCasoClinico = $coneccion->query($sqlSELECTCasoClinico, PDO::FETCH_ASSOC); $casoClinico = $rowCasoClinico->fetch(); $rowCasoClinico = null; $coneccion = null; $db = null; return $response->write( json_encode($casoClinico)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //======================== CASO CLINICO NUEVO ============================================= $app->post('/api/casoclinico/nuevo', function (Request $request, Response $response){ $folio = $request->getParam('folio'); $fecha = $request->getParam('fecha'); $serie = $request->getParam('serie'); $paciente = $request->getParam('paciente'); $sexo = $request->getParam('sexo'); $edad = $request->getParam('edad'); $status = $request->getParam('status'); $antecedente = $request->getParam('antecedente'); $fk_medico = $request->getParam('fk_medico'); $fk_hospital = $request->getParam('fk_hospital'); $fk_institucion = $request->getParam('fk_institucion'); $cveInstitucion = $request->getParam('cveInstitucion'); $fk_diagnostico = $request->getParam('fk_diagnostico'); $diagnostico = $request->getParam('diagnostico'); $fechaRegistro = $request->getParam('fechaRegistro'); $fk_antibiotico1 = $request->getParam('fk_antibiotico1'); $nomAntibiotico1 = $request->getParam('nomAntibiotico1'); $cantidad1 = $request->getParam('cantidad1'); $fk_antibiotico2 = $request->getParam('fk_antibiotico2'); $nomAntibiotico2 = $request->getParam('nomAntibiotico2'); $cantidad2 = $request->getParam('cantidad2'); $fk_antibiotico3 = $request->getParam('fk_antibiotico3'); $nomAntibiotico3 = $request->getParam('nomAntibiotico3'); $cantidad3 = $request->getParam('cantidad3'); $tratamiento = $request->getParam('tratamiento'); $fechaAplicacionProducto = $request->getParam('fechaAplicacionProducto'); //substr(,0,10); $sqlInsert = "INSERT INTO CasosClinicos ( folio, serie, paciente, sexo, edad, antecedente, fecha, fechaRegistro, fk_medico, fk_institucion, cveInstitucion, fk_hospital, fk_diagnostico, diagnostico ) VALUES (:folio, :serie, :paciente, :sexo, :edad, :antecedente, :fecha, now(), :fk_medico, :fk_institucion, :cveInstitucion, :fk_hospital, :fk_diagnostico, :diagnostico)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preInsert = $coneccion->prepare($sqlInsert); $preInsert->bindParam(':folio', $folio); $preInsert->bindParam(':serie', $serie); $preInsert->bindParam(':paciente', $paciente); $preInsert->bindParam(':sexo', $sexo); $preInsert->bindParam(':edad', $edad); $preInsert->bindParam(':antecedente', $antecedente); $preInsert->bindParam(':fecha', $fecha); $preInsert->bindParam(':fk_medico', $fk_medico); $preInsert->bindParam(':fk_institucion', $fk_institucion); $preInsert->bindParam(':cveInstitucion', $cveInstitucion); $preInsert->bindParam(':fk_hospital', $fk_hospital); $preInsert->bindParam(':fk_diagnostico', $fk_diagnostico); $preInsert->bindParam(':diagnostico',$diagnostico); $preInsert->execute(); $id_casoClinico = $coneccion->lastInsertId(); $row = array( "id" => $id_casoClinico, "folio" => $folio, "serie" => $serie, "paciente"=>$paciente, "sexo" => $sexo, "edad" => $edad, "status" => "A", "antecedente" => $antecedente, "fecha" => $fecha, "fk_medico" => $fk_medico, "fk_institucion" => $fk_institucion, "fk_hospital" => $fk_hospital, "fk_diagnostico" => $fk_diagnostico, "fechaAplicacionProducto" => "", "tratamiento" => "" ); $preInsert = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //======================== CASO CLINICO NUEVO PARTE 1======================================== $app->post('/api/casoclinico/nuevo/parteuno', function (Request $request, Response $response){ $folio = $request->getParam('folio'); $serie = $request->getParam('serie'); $fecha = $request->getParam('fecha'); $paciente = $request->getParam('paciente'); $sexo = $request->getParam('sexo'); $edad = $request->getParam('edad'); $status = $request->getParam('status'); $antecedente = $request->getParam('antecedente'); $fk_medico = $request->getParam('fk_medico'); $fk_enfermera = $request->getParam('fk_enfermera'); $fk_estado = $request->getParam('fk_estado'); $fk_institucion = $request->getParam('fk_institucion'); $cveInstitucion = $request->getParam('cveInstitucion'); $fk_hospital = $request->getParam('fk_hospital'); $hospital = $request->getParam('hospital'); $fk_diagnostico = $request->getParam('fk_diagnostico'); $diagnostico = $request->getParam('diagnostico'); $fechaRegistro = $request->getParam('fechaRegistro'); $tratamiento = $request->getParam('tratamiento'); $fechaAplicacionProducto = $request->getParam('fechaAplicacionProducto'); //substr(,0,10); $sqlInsert = "INSERT INTO CasosClinicos ( folio, serie, paciente, sexo, edad, antecedente, fecha, fechaRegistro, fk_medico, fk_estado, fk_institucion, cveInstitucion, fk_hospital, hospital, fk_diagnostico, diagnostico, fk_enfermera) VALUES (:folio, :serie,:paciente, :sexo, :edad, :antecedente, :fecha, now(), :fk_medico, :fk_estado, :fk_institucion, :cveInstitucion, :fk_hospital, :hospital, :fk_diagnostico, :diagnostico, :fk_enfermera)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preInsert = $coneccion->prepare($sqlInsert); $preInsert->bindParam(':folio', $folio); $preInsert->bindParam(':serie', $serie); $preInsert->bindParam(':paciente', $paciente); $preInsert->bindParam(':sexo', $sexo); $preInsert->bindParam(':edad', $edad); $preInsert->bindParam(':antecedente', $antecedente); $preInsert->bindParam(':fecha', $fecha); $preInsert->bindParam(':fk_medico', $fk_medico); $preInsert->bindParam(':fk_enfermera', $fk_enfermera); $preInsert->bindParam(':fk_estado', $fk_estado); $preInsert->bindParam(':fk_institucion', $fk_institucion); $preInsert->bindParam(':cveInstitucion', $cveInstitucion); $preInsert->bindParam(':fk_hospital', $fk_hospital); $preInsert->bindParam(':hospital', $hospital); $preInsert->bindParam(':fk_diagnostico', $fk_diagnostico); $preInsert->bindParam(':diagnostico',$diagnostico); $preInsert->execute(); $id_casoClinico = $coneccion->lastInsertId(); $row = array( "id" => $id_casoClinico, "folio" => $folio, "serie" => $serie, "paciente"=>$paciente, "sexo" => $sexo, "edad" => $edad, "status" => "A", "antecedente" => $antecedente, "fecha" => $fecha, "fk_medico" => $fk_medico, "fk_enfermera" => $fk_enfermera, "fk_institucion" => $fk_institucion, "cveInstitucion" => $cveInstitucion, "fk_hospital" => $fk_hospital, "hospital" => $hospital, "fk_diagnostico" => $fk_diagnostico, "tratamiento" => "", "fechaAplicacionProducto" => "" ); /* mail("alertas@casosclinicos.online;","Nuevo Caso Clinico","Caso clinico $folio "); mail("alertas_cc@biotechsa.com","Nuevo Caso Clinico","Caso clinico $folio "); mail("franciscorr@hotmail.com","Nuevo Caso Clinico","Caso clinico $folio "); $preInsert = null; $coneccion = null; $db = null; $response->getBody()->write( json_encode($row)); return $response->withHeader('content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $err = Array( "code" => $e->getCode(), "message" => $e->getMessage() ); $coneccion = null; $db = null; $response->getBody()->write( json_encode($err) ); return $response->withHeader('content-type', 'application/json')->withStatus(500); } }); //======================== CASO CLINICO ACTUALIZAR PARTE 1 ==================================== $app->put('/api/casoclinico/actualizar/parteuno/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $folio = $request->getParam('folio'); $serie = $request->getParam('serie'); $fecha = $request->getParam('fecha'); $paciente = $request->getParam('paciente'); $sexo = $request->getParam('sexo'); $edad = $request->getParam('edad'); $status = $request->getParam('status'); $antecedente = $request->getParam('antecedente'); $fk_medico = $request->getParam('fk_medico'); $fk_estado = $request->getParam('fk_estado'); $fk_institucion = $request->getParam('fk_institucion'); $cveInstitucion = $request->getParam('cveInstitucion'); $fk_hospital = $request->getParam('fk_hospital'); $hospital = $request->getParam('hospital'); $fk_diagnostico = $request->getParam('fk_diagnostico'); $diagnostico = $request->getParam('diagnostico'); $fechaRegistro = $request->getParam('fechaRegistro'); $tratamiento = $request->getParam('tratamiento'); $fechaAplicacionProducto = $request->getParam('fechaAplicacionProducto'); //substr(,0,10); $sqlUpdate = "UPDATE CasosClinicos SET paciente = :paciente, sexo = :sexo, edad = :edad, antecedente = :antecedente, fecha = :fecha, fk_medico = :fk_medico, fk_estado = :fk_estado, fk_institucion = :fk_institucion, cveInstitucion = :cveInstitucion, fk_hospital = :fk_hospital, hospital = :hospital, fk_diagnostico = :fk_diagnostico, diagnostico = :diagnostico WHERE id = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preUpdate = $coneccion->prepare($sqlUpdate); $preUpdate->bindParam(':paciente', $paciente); $preUpdate->bindParam(':sexo', $sexo); $preUpdate->bindParam(':edad', $edad); $preUpdate->bindParam(':antecedente', $antecedente); $preUpdate->bindParam(':fecha', $fecha); $preUpdate->bindParam(':fk_medico', $fk_medico); $preUpdate->bindParam(':fk_estado', $fk_estado); $preUpdate->bindParam(':fk_institucion', $fk_institucion); $preUpdate->bindParam(':cveInstitucion', $cveInstitucion); $preUpdate->bindParam(':fk_hospital', $fk_hospital); $preUpdate->bindParam(':hospital', $hospital); $preUpdate->bindParam(':fk_diagnostico', $fk_diagnostico); $preUpdate->bindParam(':diagnostico',$diagnostico); $preUpdate->execute(); $id_casoClinico = $id; $row = array( "id" => $id_casoClinico, "folio" => $folio, "serie" => $serie, "paciente"=>$paciente, "sexo" => $sexo, "edad" => $edad, "status" => "A", "antecedente" => $antecedente, "fecha" => $fecha, "fk_medico" => $fk_medico, "fk_institucion" => $fk_institucion, "cveInstitucion" => $cveInstitucion, "fk_hospital" => $fk_hospital, "hospital" => $hospital, "fk_diagnostico" => $fk_diagnostico, "tratamiento" => "", "fechaAplicacionProducto" => "" ); $preUpdate = null; $coneccion = null; $db = null; return $response->write( json_encode($row)); }catch(PDOException $e){ $mensaje = Array( "code" => $e->getCode(), "message" => $e->getMessage() ); $coneccion = null; $db = null; return $response->withStatus(500)->write( json_encode($mensaje) ); } }); //======================== CASO CLINICO ACTUALIZAR PARTE 2 ==================================== $app->put('/api/casoclinico/actualizar/partedos/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $id_cc = $request->getParam('id'); $folio = $request->getParam('folio'); $serie = $request->getParam('serie'); $fecha = $request->getParam('fecha'); $paciente = $request->getParam('paciente'); $sexo = $request->getParam('sexo'); $edad = $request->getParam('edad'); $status = $request->getParam('status'); $antecedente = $request->getParam('antecedente'); $fk_medico = $request->getParam('fk_medico'); $fk_hospital = $request->getParam('fk_hospital'); $hospital = $request->getParam('hospital'); $fk_diagnostico = $request->getParam('fk_diagnostico'); $diagnostico = $request->getParam('diagnostico'); $fechaRegistro = $request->getParam('fechaRegistro'); $fechaAplicacionProducto = $request->getParam('fechaAplicacionProducto'); //substr(,0,10); $fk_antibiotico1 = $request->getParam('fk_antibiotico1'); $nomAntibiotico1 = $request->getParam('nomAntibiotico1'); $cantidad1 = $request->getParam('cantidad1'); $fk_antibiotico2 = $request->getParam('fk_antibiotico2'); $nomAntibiotico2 = $request->getParam('nomAntibiotico2'); $cantidad2 = $request->getParam('cantidad2'); $fk_antibiotico3 = $request->getParam('fk_antibiotico3'); $nomAntibiotico3 = $request->getParam('nomAntibiotico3'); $cantidad3 = $request->getParam('cantidad3'); $tratamiento = $request->getParam('tratamiento'); $observacion = $request->getParam('observacion'); $sqlUpdate = "UPDATE CasosClinicos SET fechaAplicacionProducto = :fechaAplicacionProducto, tratamiento = :tratamiento, fk_antibiotico1 = :fk_antibiotico1, nomAntibiotico1 = :nomAntibiotico1, cantidad1 = :cantidad1, fk_antibiotico2 = :fk_antibiotico2, nomAntibiotico2 = :nomAntibiotico2, cantidad2 = :cantidad2, fk_antibiotico3 = :fk_antibiotico3, nomAntibiotico3 = :nomAntibiotico3, cantidad3 = :cantidad3, observacion = :observacion WHERE id = $id "; $sqlSELECTfechas = " SELECT fechaAplicacionProducto, DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week) as fechaPrimerSeguimiento, NOW() as fechaHoy, IF(DATEDIFF(DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week), NOW() ) > 0, DATEDIFF(DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week), NOW() ), 0) as dias, IF( NOW() > DATE_ADD(fechaAplicacionProducto,INTERVAL 5 week), 1, 0) as activo FROM CasosClinicos WHERE id = $id AND fechaAplicacionProducto IS NOT NULL; "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preUpdate = $coneccion->prepare($sqlUpdate); $preUpdate->bindParam(':fechaAplicacionProducto', $fechaAplicacionProducto); $preUpdate->bindParam(':tratamiento', $tratamiento); $preUpdate->bindParam(':fk_antibiotico1', $fk_antibiotico1); $preUpdate->bindParam(':nomAntibiotico1', $nomAntibiotico1); $preUpdate->bindParam(':cantidad1', $cantidad1); $preUpdate->bindParam(':fk_antibiotico2', $fk_antibiotico2); $preUpdate->bindParam(':nomAntibiotico2', $nomAntibiotico2); $preUpdate->bindParam(':cantidad2', $cantidad2); $preUpdate->bindParam(':fk_antibiotico3', $fk_antibiotico3); $preUpdate->bindParam(':nomAntibiotico3', $nomAntibiotico3); $preUpdate->bindParam(':cantidad3', $cantidad3); $preUpdate->bindParam(':observacion', $observacion); $preUpdate->execute(); $rowFechas = $coneccion->query($sqlSELECTfechas, PDO::FETCH_ASSOC); $fechas = $rowFechas->fetch(); $rowFechas = null; $preUpdate = null; $coneccion = null; $db = null; return $response->write( json_encode($fechas)); }catch(PDOException $e){ $mensaje = Array( "msj" => $e->getMessage() ); return $response->withStatus(500)->write( json_encode($mensaje) ); } }); //======================== CASO CLINICO ELIMINAR ============================================== $app->delete('/api/casoclinico/eliminar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlDeleteCasoClinico = "DELETE FROM CasosClinicos WHERE id = $id"; $mensaje = array("msj" => "registro eliminado exitoso"); $db = new DB(); $coneccion = $db->Coneccion(); try{ $preDelete = $coneccion->prepare($sqlDeleteCasoClinico); $preDelete->execute(); $preDelete = null; $coneccion = null; $db = null; return $response->write(json_encode($mensaje["msj"])); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //========================= CASOS CLINICOS X MEDICO DE ENFERMERA $app->get('/api/casosclinicosxmedico/enfermera/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id'); $sqlSelectCasosClinicosXMedicodeEnfermera = "SELECT cc.* FROM CasosClinicos cc WHERE cc.fk_medico IN ( SELECT m.id FROM Medicos m INNER JOIN EnfermerastoMedicos em ON em.fk_medico=m.id WHERE em.fk_enfermera = $id )"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $casosClinicos = $coneccion->query($sqlSelectCasosClinicosXMedicodeEnfermera, PDO::FETCH_ASSOC); $casosclinicos = $casosClinicos->fetchAll(); $respuesta = null; $coneccion = null; $db = null; $response->getBody()->write( json_encode($casosclinicos)); return $response->withHeader('content-type', 'application/json')->withStatus(200); }catch (PDOException $e){ $err = ['code'=>$e->getCode(), 'message'=>$e->getMessage()]; $response->getBody()->write(json_encode($err)); return $response->withHeader('content-type', 'application/json')->withStatus(500); } }); $app->post('/api/firma/enfermera', function(Request $request, Response $response){ $id = $request->getParam('id'); $fk_enfermera = $request->getParam('fk_enfermera'); $sqlFirmaEnfermera = "UPDATE CasosClinicos SET fk_enfermera = $fk_enfermera WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $prefirma = $coneccion->prepare($sqlFirmaEnfermera); $prefirma->execute(); $cc = ["id" => $id, "fk_enfermera" => $fk_enfermera]; $response->getBody()->write(json_encode($cc)); $response->withHeader('Content-type', "application/json")->withStatus(200); }catch(PDOException $e){ $err = ["code"=> $e->getCode(), "message"=>$e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-type', "application/json")->withStatus(500); } return $response; }); //============================== PUNTOS ====================================================== $app->get('/api/puntos/detalles/medico/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECTPuntosPorMedico = " SELECT cc.id, cc.serie, cc.folio, cc.paciente, cc.hospital, IF(p.puntosProductos is null, 0, p.puntosProductos) as puntosProductos, IF(p.noProductos is null, 0, p.noProductos) as noProductos, IF(s.puntosSeguimientosPostOperatorio is null, 0, s.puntosSeguimientosPostOperatorio) as puntosSeguimientosPostOperatorio, IF(s.noSeguimientos is null, 0, s.noSeguimientos) as noSeguimientos, IF(p.puntosProductos is null, 0, p.puntosProductos) + IF(s.puntosSeguimientosPostOperatorio is null, 0, s.puntosSeguimientosPostOperatorio) as totalPuntos FROM CasosClinicos as cc LEFT JOIN ( SELECT IF( sum(puntos) is null, 0, sum(puntos) ) as puntosProductos, IF(count(id_casoClinico) is null, 0, count(id_casoClinico) ) as noProductos, id_casoClinico FROM CasosProductos GROUP BY id_CasoClinico ) as p ON p.id_casoClinico = cc.id LEFT JOIN ( SELECT IF( sum(puntos) is null, 0, sum(puntos) ) as puntosSeguimientosPostOperatorio, IF(count(fk_casoClinico) is null, 0, count(fk_casoClinico) ) as noSeguimientos, fk_casoClinico FROM SeguimientosPostOperatorio GROUP BY fk_casoClinico ) as s ON s.fk_casoClinico = cc.id WHERE cc.fk_medico = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowPuntosPorMedico = $coneccion->query($sqlSELECTPuntosPorMedico, PDO::FETCH_ASSOC); $puntosPorMedico = $rowPuntosPorMedico->fetchAll(); $rowPuntosPorMedico = null; $coneccion = null; $db = null; return $response->write(json_encode($puntosPorMedico)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================== PUNTOS X MEDICO ============================================= $app->get('/api/puntos/medico/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $status = 0; $sqlSELECT = " SELECT ( SELECT IF(sum(puntos) is null, 0, sum(puntos)) as puntosProductos FROM CasosProductos WHERE id_casoClinico IN (SELECT id FROM CasosClinicos WHERE fk_medico = $id) ) + ( SELECT IF(sum(puntos) is null, 0, sum(puntos)) as puntosSeguimientos FROM SeguimientosPostOperatorio WHERE fk_casoClinico IN (SELECT id FROM CasosClinicos WHERE fk_medico = $id) ) as puntosTotal, $id as idMedico; "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowPuntosPorMedico = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $puntosPorMedico = $rowPuntosPorMedico->fetch(); $rowPuntosPorMedico = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($puntosPorMedico)); $status = 200; }catch(PDOException $e){ $coneccion = null; $db = null; $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $status = 500; } return $response->withHeader('content-type', 'application/json')->withStatus($status); }); //============================== PUNTOS X ENFERMERA ============================================= $app->get('/api/puntos/enfermera/{id}', function(Request $request, Response $response){ $status = 0; $id = $request->getAttribute('id'); // $sqlProductos = " SELECT // IF(sum(puntos) IS NULL, 0, sum(puntos)) puntos, // count(id_producto) noProductos, // IF(id is null, null, concat(nombre, ' ', primerApellido)) enfermera // FROM CasosProductos // INNER JOIN Enfermeras ON id = id_enfermera // WHERE id_enfermera = $id"; $sqlProductos = "SELECT If(sum(puntos) is null, 0, sum(puntos)) Puntos, count(id_producto) NoProductos, IF(id is null, null, concat(nombre, ' ', primerApellido)) enfermera FROM CasosProductos INNER JOIN enfermeras ON id = id_enfermera WHERE id_enfermera= $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowProductosPuntos = $coneccion->query($sqlProductos, PDO::FETCH_ASSOC); $puntosProductos = $rowProductosPuntos->fetch(); $response->getBody()->write(json_encode($puntosProductos)); $status = 200; }catch(PDOException $e) { $err = [ "code"=>$e->getCode(), "message"=>$e->getMessage() ]; $response->getBody()->write(json_encode($err)); $status = 500; } return $response->withHeader('content-type', 'application/json')->withStatus($status); }); //============================ FECHAS ================================ $app->get('/api/fechas/casoclinico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECTfechas = " SELECT fechaAplicacionProducto, IF(fechaAplicacionProducto IS NULL, NULL, DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week) ) as fechaPrimerSeguimiento, NOW() as fechaHoy, IF(fechaAplicacionProducto IS NULL, 0, IF(DATEDIFF(DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week), NOW() ) > 0, DATEDIFF(DATE_ADD(fechaAplicacionProducto, INTERVAL 5 week), NOW() ), 0) ) as dias, IF(fechaAplicacionProducto IS NULL, 0, IF( NOW() > DATE_ADD(fechaAplicacionProducto,INTERVAL 5 week), 1, 0) )as activo FROM CasosClinicos WHERE id = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try{ if($id == '0' ){ $sqlSELECTfechas = " SELECT null as fechaAplicacionProducto, null as fechaPrimerSeguimiento, NOW() as fechaHoy, 0 as dias, 0 as activo; "; } $rowFechas = $coneccion->query($sqlSELECTfechas, PDO::FETCH_ASSOC); $fechas = $rowFechas->fetch(); $rowFechas = null; $coneccion = null; $db = null; return $response->write( json_encode($fechas)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ SEGUIMIENTOS POST-OPERATORIO LISTA ================================== $app->get('/api/seguimientopostoperatorio', function(Request $request, Response $response){ $sqlSelect = " SELECT id, numero, resultado, observacion, fk_casoclinico, fechaRegistro FROM SeguimientosPostOperatorio"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $seguimientosPostOperatorio = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($seguimientosPostOperatorio)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ SEGUIMIENTOS POST-OPERATORIO CASO LISTA ============================= $app->get('/api/seguimientopostoperatorio/casoclinico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelect = "SELECT id, numero, fecha, valoracion, resultado, observacion, fk_casoclinico, fechaRegistro, NOW() as fechaHoy, IF(fecha IS NULL, NULL, DATE_ADD(fecha, INTERVAL 5 week) ) as fechaSiguente, IF(fecha IS NULL, 0, IF(DATEDIFF(DATE_ADD(fecha, INTERVAL 5 week), NOW() ) > 0, DATEDIFF(DATE_ADD(fecha, INTERVAL 5 week), NOW() ), 0) ) as dias, IF(fecha IS NULL, 0, IF( NOW() > DATE_ADD(fecha,INTERVAL 5 week), 1, 0) ) as activo FROM SeguimientosPostOperatorio WHERE fk_casoclinico = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $seguimientosPostOperatorio = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($seguimientosPostOperatorio)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ SEGUIMIENTOS POST-OPERATORIO NUEVO ================================== $app->post('/api/seguimientopostoperatorio/nuevo', function(Request $request, Response $response){ $resultado = $request->getParam('resultado'); $observacion = $request->getParam('observacion'); $valoracion = $request->getParam('valoracion'); $fecha = $request->getParam('fecha'); $fk_casoclinico = $request->getParam('fk_casoclinico'); $numero = $request->getParam('numero'); $puntos = $request->getParam('puntos'); $row=null; $sqlInsertSeguimiento = "INSERT INTO SeguimientosPostOperatorio ( fecha, numero, resultado, valoracion, observacion, fk_casoclinico, puntos, fechaRegistro ) VALUES ( :fecha, :numero, :resultado, :valoracion, :observacion, :fk_casoclinico, (SELECT puntos FROM PuntosPorSeguimiento WHERE id = 1), now() )"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preInsert = $coneccion->prepare($sqlInsertSeguimiento); $preInsert->bindParam(':resultado', $resultado); $preInsert->bindParam(':observacion', $observacion); $preInsert->bindParam(':fecha', $fecha); $preInsert->bindParam(':fk_casoclinico', $fk_casoclinico); $preInsert->bindParam(':valoracion', $valoracion); $preInsert->bindParam(':numero', $numero); //$preInsert->bindParam(':puntos', $puntos); if($preInsert->execute()){ $id_seguimientoPost = $coneccion->lastInsertId(); $sqlSelectSeguimiento = "SELECT id, numero, fecha, valoracion, resultado, observacion, fk_casoclinico, fechaRegistro, NOW() as fechaHoy, IF(fecha IS NULL, NULL, DATE_ADD(fecha, INTERVAL 5 week) ) as fechaSiguente, IF(fecha IS NULL, 0, IF(DATEDIFF(DATE_ADD(fecha, INTERVAL 5 week), NOW() ) > 0, DATEDIFF(DATE_ADD(fecha, INTERVAL 5 week), NOW() ), 0) ) as dias, IF(fecha IS NULL, 0, IF( NOW() > DATE_ADD(fecha,INTERVAL 5 week), 1, 0) ) as activo FROM SeguimientosPostOperatorio WHERE id = $id_seguimientoPost"; $rowSeguimiento = $coneccion->query($sqlSelectSeguimiento, PDO::FETCH_ASSOC); $row = $rowSeguimiento->fetch(); } $sqlSelectSeguimiento = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ SEGUIMIENTO POST-OPERATORIO ========================================== $app->get('/api/seguimientopostoperatorio/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelect = "SELECT * FROM SeguimientosPostOperatorio WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $seguimiento = $respuesta->fetch(); $respuesta = null; $coneccion = null; $db = null; return $response->write( json_encode($seguimiento)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CASO CLINICO PRODUCTOS =========================================== $app->get('/api/productos/casoclinico/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', ''); $sqlSELECT = " SELECT cp.id_casoclinico, cp.id_producto, p.codigo, p.nomProducto, p.lote, p.caducidad FROM CasosProductos cp LEFT JOIN Productos p ON p.id = cp.id_producto WHERE cp.id_casoClinico = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $productos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($productos)); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ CASO CLINICO PRODUCTO ============================================ $app->post('/api/producto/casoclinico', function(Request $request, Response $response){ $row = null; $lote = $request->getParam('lote'); $nomProducto = $request->getParam('nomProducto'); $codigo = $request->getParam('codigo'); $puntos = $request->getParam('puntos'); $e_puntos = $request->getParam('e_puntos'); $fk_casoclinico =$request->getParam('id_casoclinico'); $fk_producto = $request->getParam('id_producto'); $fk_enfermera = $request->getParam('id_enfermera'); $sqlInsert = "INSERT INTO CasosProductos (id_casoClinico, id_producto, puntos, id_enfermera, e_puntos, fechaRegistro) VALUES (:fk_casoclinico, :fk_producto, :puntos, :fk_enfermera, :e_puntos, NOW());"; // ( SELECT pp.puntos // FROM CasosClinicos cc // INNER JOIN Medicos m ON m.id = cc.fk_medico // INNER JOIN PuntosPorProducto pp ON pp.id = m.fk_puntos // WHERE cc.id = :fk_casoclinico ) $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsert = $coneccion->prepare($sqlInsert); $preInsert->bindParam(':fk_casoclinico', $fk_casoclinico); $preInsert->bindParam(':fk_producto', $fk_producto); $preInsert->bindParam(':puntos', $puntos); $preInsert->bindParam(':e_puntos', $e_puntos); $preInsert->bindParam(':fk_enfermera', $fk_enfermera); if($preInsert->execute()){ $row = array( "id_casoClinico" => $fk_casoclinico, "id_producto" => $fk_producto, "codigo" => $codigo, "nomProducto" => $nomProducto, "lote" => $lote, "caducidad" => "", "puntos" => $puntos, "e_puntos" => $e_puntos, "id_enfermera" => $fk_enfermera ); } mail("alertas@casosclinicos.online;","Registro de codigo a Caso Clinico","Codigo $codigo "); mail("alertas_cc@biotechsa.com","Registro de codigo a Caso Clinico","Codigo $codigo "); $preUpdate = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($row)); return $response->withHeader('content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $mensaje = $e->getMessage(); if(gettype($e->getCode()) == "string"){ if($e->getCode() == "23000"){ $mensaje="Producto ya esta registrado"; } } $response->getBody()->write($mensaje); return $response->withStatus(500); } }); //============================ PRODUCTOS ======================================================== $app->get('/api/productos', function(Request $request, Response $response){ $sqlSelectProductos = " SELECT id, codigo, nomProducto, lote, caducidad FROM Productos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowProductos = $coneccion->query($sqlSelectProductos, PDO::FETCH_ASSOC); $productos = $rowProductos->fetchAll(); $rowProductos = null; $coneccion = null; $db = null; return $response->write(json_encode($productos)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; return $response->withStatus(404)->write(json_encode($err)); } }); $app->post('/api/producto/enfermera/asociar', function(Request $request, Response $response){ $mensaje = ""; $code = 0; $codigo = $request->getParam('codigo'); $id_enfermera = $request->getParam('id_enfermera'); $sqlSelectCasoProducto = " SELECT cc.id, cc.folio, cc.serie, cc.fk_enfermera, IF( e.id is not null, concat(e.nombre, ' ', e.primerApellido), null) enfermera FROM CasosClinicos cc LEFT JOIN Enfermeras e ON e.id = cc.fk_enfermera WHERE cc.id = ( SELECT id_casoClinico FROM CasosProductos WHERE id_producto IN ( SELECT id FROM Productos WHERE codigo = '$codigo' ) ) "; // $sqlSelectCasoProducto = " SELECT cp.id_casoclinico, cp.id_producto, cp.id_enfermera, IF( e.id is not null, concat(e.nombre, ' ', e.primerApellido), null) enfermera // FROM CasosProductos cp // LEFT JOIN Enfermeras e ON e.id = cp.id_enfermera // WHERE cp.id_producto IN ( SELECT id FROM Productos WHERE codigo = '$codigo' )"; $sqlUpdateCasoProducto = "UPDATE CasosClinicos SET fk_enfermera = :id_enfermera WHERE id = ( SELECT id_casoClinico FROM CasosProductos WHERE id_producto IN ( SELECT id FROM Productos WHERE codigo = :codigo ) )"; // $sqlUpdateCasoProducto = "UPDATE CasosProductos SET id_enfermera = :id_enfermera WHERE id_producto = ( SELECT id FROM Productos WHERE codigo = :codigo )"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCasoProducto = $coneccion->query($sqlSelectCasoProducto, PDO::FETCH_ASSOC); $casoProducto = $rowCasoProducto->fetch(); if($casoProducto){ if( $casoProducto["id_enfermera"] ){ $mensaje = "asociado a la enfermera: " . $casoProducto["enfermera"]; $code = 2; }else{ $preProducto = $coneccion->prepare($sqlUpdateCasoProducto); $preProducto->bindParam(":id_enfermera", $id_enfermera); $preProducto->bindParam(":codigo", $codigo); if($preProducto->execute()){ $mensaje = "se ha asociado a la enfemera correctamente"; $code = 1; }else{ $mensaje = "no esta asociado a enfermera"; $code = 0; } } }else{ $mensaje = "No esta registrado"; $code = 3; } $inf = [ "code" => $code, "message" => $mensaje ]; $response->getBody()->write(json_encode($inf)); return $response->withHeader('content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $response->getBody()->write(json_encode($err)); return $response->withHeader('content-type', 'application/json')->withStatus(500); } }); //============================ CODIGO del PRODUCTO ======================================================== $app->get('/api/producto/find/{codigo}', function(Request $request, Response $response){ $codigo = $request->getAttribute('codigo', ''); $sqlSelect = " SELECT id, codigo, nomProducto, lote, caducidad FROM Productos WHERE codigo = '$codigo'"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $producto = $respuesta->fetch(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($producto)); }catch(PDOException $e){ $err = array( "error" => array("text" => $e->getMessage())); $coneccion = null; $db = null; return $response->withStatus(404)->write($e->getMessage()); } }); //============================ PRODUCTO NUEVO ================================================== $app->post('/api/producto/nuevo', function(Request $request, Response $response){ $codigo = $request->getParam('codigo'); $nomProducto = $request->getParam('nomProducto'); $lote = $request->getParam('lote'); $caducidad = $request->getParam('caducidad'); $sqlInsertProducto = " INSERT INTO Productos(codigo, nomProducto, lote, caducidad) VALUES ( :codigo, :nomProducto, :lote, :caducidad)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $cmdInsertProducto = $coneccion->prepare($sqlInsertProducto); $cmdInsertProducto->bindParam(':codigo', $codigo); $cmdInsertProducto->bindParam(':nomProducto', $nomProducto); $cmdInsertProducto->bindParam(':lote', $lote); $cmdInsertProducto->bindParam(':caducidad', $caducidad); $cmdInsertProducto->execute(); $id_producto = $coneccion->lastInsertId(); $rowProducto = [ "id" => $id_producto, "codigo" => $codigo, "nomProducto" => $nomProducto, "lote" => $lote, "caducidad" => $caducidad ]; $coneccion = null; $db = null; return $response->write(json_encode($rowProducto)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage()); } }); //============================ PRODUCTO ACTUALIZADO ============================================ $app->put('/api/producto/actualizar/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', '0'); $codigo = $request->getParam('codigo'); $nomProducto = $request->getParam('nomProducto'); $lote = $request->getParam('lote'); $caducidad = $request->getParam('caducidad'); $sqlUpdateProducto = "UPDATE Productos SET codigo = :codigo, nomProducto = :nomProducto, lote = :lote, caducidad = :caducidad WHERE id = $id "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $preUpdateProducto = $coneccion->prepare($sqlUpdateProducto); $preUpdateProducto->bindParam(':codigo', $codigo); $preUpdateProducto->bindParam(':nomProducto', $nomProducto); $preUpdateProducto->bindParam(':lote', $lote); $preUpdateProducto->bindParam(':caducidad', $caducidad); $ok = $preUpdateProducto->execute(); $producto = [ "id" => $id, "codigo" => $codigo, "nomProducto" => $nomProducto, "lote" => $lote, "caducidad" => $caducidad ]; $coneccion = null; $db = null; return $response->write(json_encode($producto)); }catch(PDOException $e){ $err = Array("code" => $e->getCode, "message" => $e->getMessage()); $coneccion = null; $db = null; return $response->withStatus(500)->write(json_encode($err)); } }); //============================ PRODUCTO ======================================================== $app->get('/api/producto/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id',''); $sqlSelectProducto = " SELECT id, codigo, nomProducto, lote, caducidad FROM Productos WHERE id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowProducto = $coneccion->query($sqlSelectProducto, PDO::FETCH_ASSOC); $producto = $rowProducto->fetch(); $coneccion = null; $db = null; return $response->write(json_encode($producto)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = Array("code" => $e->getCode(), "message" => $e->getMessage()); return $response->withStatus(500)->write(json_encode($err)); } }); //============================FOLIO============================================================== $app->get('/api/folio', function(Request $request, Response $response){ $sqlSELECTCasosClinicos = " SELECT CONCAT('CC', LPAD(Count(*), 5, '0') ) Nofolio FROM CasosClinicos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowcasosclinicos = $coneccion->query($sqlSELECTCasosClinicos, PDO::FETCH_ASSOC); $folioGeneral = $rowcasosclinicos->fetch(); $rowcasosclinicos = null; $coneccion = null; $db = null; return $response->write(json_encode($folioGeneral)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = Array("code" => $e->getCode(), "message"=> $e->getMessage()); return $response->withStatus(500)->write( json_encode($err) ); } }); //=========================== FOLIO ============================================================= $app->get('/api/folio/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECT_A = " SELECT 'CX' abr, count(*) + 1 numero, YEAR(fechaRegistro) year, fk_medico medico , '' serie FROM CasosClinicos WHERE YEAR(fechaRegistro) = YEAR(now()) AND fk_medico = $id GROUP BY YEAR(fechaRegistro), fk_medico"; $sqlSELECT_B = " SELECT CONCAT('CC', LPAD(Count(*) + 1, 5, '0') ) serie FROM CasosClinicos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuestaFolio = $coneccion->query($sqlSELECT_A, PDO::FETCH_ASSOC); $folio = $respuestaFolio->fetch(); $respuestaSerie = $coneccion->query($sqlSELECT_B, PDO::FETCH_ASSOC); $serie = $respuestaSerie->fetch(); if($folio == null){ $folio = [ "abr" => "CX", "numero" => str_pad("1",4,"0", STR_PAD_LEFT), "year" => date("Y"), "medico" => $id, "serie" => $serie["serie"] ]; }else{ $folio["numero"] = str_pad($folio["numero"],4,"0", STR_PAD_LEFT); $folio["serie"] = $serie["serie"]; } $respuestaFolio = null; $respuestaSerie = null; $coneccion = null; $db = null; return $response->write(json_encode($folio)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = Array("code" => $e->getCode(), "message"=> $e->getMessage()); return $response->withStatus(500)->write( json_encode($err) ); } }); //======== NUEVA RELACION TECNICOS MEDICOS HOSPITALES =========================================== $app->post('/api/tecnico/medico/hospital/nuevo', function(Request $request, Response $response){ $id_tecnico = $request->getParam('id_tecnico'); $id_medico = $request->getParam('id_medico'); $id_hospital = $request->getParam('id_hospital'); $sqlInsertTecnicoMedicoHospital = " INSERT INTO TecnicostoMedicosonHospital (fk_medico, fk_tecnico, fk_hospital) VALUES (:fk_medico, :fk_tecnico, :fk_hospital)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsert = $coneccion->prepare($sqlInsertTecnicoMedicoHospital); $preInsert->bindParam(':fk_medico' , $id_medico); $preInsert->bindParam(':fk_tecnico' , $id_tecnico); $preInsert->bindParam(':fk_hospital', $id_hospital); if($preInsert->execute()){ $row = [ "fk_medico"=>$id_medico, "fk_tecnico"=>$id_tecnico, "fk_hospital"=>$id_hospital ]; } $preInsert = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $preInsert = null; $coneccion = null; $db = null; $err = Array("code" => $e->getCode(), "message"=> $e->getMessage()); return $response->withStatus(500)->write( json_encode($err) ); } }); //======== NUEVA RELACION TECNICO-MEDICO ========================================================== $app->post('/api/tecnico/medico/nuevo', function(Request $request, Response $response){ $id_tecnico = $request->getParam('id_tecnico'); $id_medico = $request->getParam('id_medico'); $sqlInsertTecnicosMedicos = " INSERT INTO TecnicosMedicos (fk_medico, fk_tecnico) VALUES (:fk_medico, :fk_tecnico)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsertTecnicosMedicos = $coneccion->prepare($sqlInsertTecnicosMedicos); $preInsertTecnicosMedicos->bindParam(':fk_medico' , $id_medico); $preInsertTecnicosMedicos->bindParam(':fk_tecnico' , $id_tecnico); if($preInsertTecnicosMedicos->execute()){ $row = [ "fk_medico"=>$id_medico, "fk_tecnico"=>$id_tecnico ]; } $preInsertTecnicosMedicos = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $err =["code" => $e->getCode(), "message" => $e->getMessage()]; $coneccion = null; $db = null; return $response->withStatus(500)->write(json_encode($err)); } }); //======== NUEVA RELACION SUPERVISOR-TECNICO ====================================================== $app->post('/api/supervisor/tecnico/nuevo', function(Request $request, Response $response){ $id_tecnico = $request->getParam('id_tecnico'); $id_supervisor = $request->getParam('id_supervisor'); $sqlInsertSupervisorTecnico = " INSERT INTO SupervisoresTecnicos (fk_supervisor, fk_tecnico) VALUES (:fk_supervisor, :fk_tecnico)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsertSupervisorTecnico = $coneccion->prepare($sqlInsertSupervisorTecnico); $preInsertSupervisorTecnico->bindParam(':fk_supervisor' , $id_supervisor); $preInsertSupervisorTecnico->bindParam(':fk_tecnico' , $id_tecnico); if($preInsertSupervisorTecnico->execute()){ $row = [ "fk_supervisor"=>$id_supervisor, "fk_tecnico"=>$id_tecnico ]; } $preInsertSupervisorTecnico = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $coneccion = null; $db = null; $Error = ["code" => $e->getCode(), "message" => $e->getMessage()]; return $response->withStatus(500)->write(json_encode($Error)); } }); //======== NUEVA RELACION SUPERVISOR-ENFEMERA ====================================================== $app->post('/api/supervisor/enfermera/nuevo', function(Request $request, Response $response){ $id_enfermera = $request->getParam('id_enfermera'); $id_supervisor = $request->getParam('id_supervisor'); $sqlInsertSupervisorEnfermeras= " INSERT INTO SupervisoresEnfermeras (fk_supervisor, fk_enfermera) VALUES (:fk_supervisor, :fk_enfermera)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsertSupervisorEnfermeras = $coneccion->prepare($sqlInsertSupervisorEnfermeras); $preInsertSupervisorEnfermeras->bindParam(':fk_supervisor', $id_supervisor); $preInsertSupervisorEnfermeras->bindParam(':fk_enfermera', $id_enfermera); if($preInsertSupervisorEnfermeras->execute()){ $row = [ "fk_supervisor" => $id_supervisor, "fk_enfermera" => $id_enfermera ]; } $coneccion = null; $db = null; $response->getBody()->write(json_encode($row)); $response->withHeader('Content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $coneccion = null; $db = null; $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-type', 'application/json')->withStatus(500); } return $response; }); //======== NUEVA RELACION ENFERMERA-MEDICO ======================================================== $app->post('/api/enfermera/medico/nuevo', function(Request $request, Response $response){ $id_enfermera = $request->getParam('id_enfermera'); $id_medico = $request->getParam('id_medico'); $sqlInsertEnfermerasMedicos = " INSERT INTO EnfermerastoMedicos (fk_medico, fk_enfermera) VALUES (:fk_medico, :fk_enfermera)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row = []; $preInsertEnfermerasMedicos = $coneccion->prepare($sqlInsertEnfermerasMedicos); $preInsertEnfermerasMedicos->bindParam(':fk_medico' , $id_medico); $preInsertEnfermerasMedicos->bindParam(':fk_enfermera' , $id_enfermera); if($preInsertEnfermerasMedicos->execute()){ $row = [ "fk_medico"=>$id_medico, "fk_enfermera"=>$id_enfermera ]; } $preInsertEnfermeraMedicos = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $err =["code" => $e->getCode(), "message" => $e->getMessage()]; $coneccion = null; $db = null; return $response->withStatus(500)->write(json_encode($err)); } }); //========================== NUEVA RELACION ENFERMERAS MEDICOS HOSPITALES ========================= //========================== Enfermeras Medicos =================================================== $app->get('/api/medicos/enfermeras/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECT =" SELECT e.id as id_enfermera, e.nombre as nombre_enfermera, m.id as id_medico, m.nombre as nombre_medico, m.primerApellido as primerApellido_medico, m.segundoApellido as segundoApellido_medico FROM EnfermerastoMedicos etom INNER JOIN Enfermeras e ON e.id = etom.fk_enfermera INNER JOIN Medicos m ON m.id = etom.fk_medico WHERE e.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedicosEnfermeras = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $medicosEnfermeras = $rowMedicosEnfermeras->fetchAll(); $rowMedicosEnfermeras = null; $coneccion = null; $db = null; return $response->write(json_encode($medicosEnfermeras)); }catch(PDOException $e){ $rowMedicosEnfermeras = null; $coneccion = null; $db = null; $err = array( "error" => array("text" => $e->getMessage())); return $response->withStatus(404)->write($e->getMessage()); } }); //========================== Tecnicos Medicos (Pendiente)=================================== $app->get('/api/medicos/tecnicos/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECT =" SELECT t.id as id_tecnico, t.nombre as nombre_tecnico, m.id as id_medico, m.nombre as nombre_medico, m.primerApellido as primerApellido_medico, m.segundoApellido as segundoApellido_medico FROM TecnicosMedicos tm INNER JOIN Tecnicos t ON t.id = tm.fk_tecnico INNER JOIN Medicos m ON m.id = tm.fk_medico WHERE t.id = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowMedicosTecnicos = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $medicosTecnicos = $rowMedicosTecnicos->fetchAll(); $rowMedicosTecnicos = null; $coneccion = null; $db = null; return $response->write(json_encode($medicosTecnicos)); }catch(PDOException $e){ $rowMedicosTecnicos = null; $coneccion = null; $db = null; $err = array( "error" => array("text" => $e->getMessage())); return $response->withStatus(404)->write($e->getMessage()); } }); //========================== Enfermeras Medicos (Pendiente)================================= $app->get('/api/enfermeras/medico/{id}', function (Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSELECTEnfermeras = " SELECT e.id, CONCAT(e.nombre, ' ', e.primerApellido) nomEnfermera, e.fk_puntos, e.puntos, e.fk_usuario FROM Enfermeras e INNER JOIN EnfermerastoMedicos em ON em.fk_enfermera=e.id WHERE em.fk_medico = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEnfermeras = $coneccion->query($sqlSELECTEnfermeras, PDO::FETCH_ASSOC); $enfermeras = $rowEnfermeras->fetchAll(); $rowMedicosTecnicos = null; $coneccion = null; $db = null; $response->getBody()->write(json_encode($enfermeras)); return $response->withHeader('content-type', 'application/json')->withStatus(200); }catch(PDOException $e){ $coneccion = null; $db = null; $err = ['code'=>$e->getCode(), 'message'=>$e->getMessage()]; $response->getBody()->write(json_encode($err)); return $response->withHeader('content-type')->withStatus(500); } }); //========================== Tecnicos Medicos (Pendiente)=================================== $app->get('/api/tecnicos/medicos', function(Request $request, Response $response){ $sqlSELECT = " SELECT t.nombre as tecnico, m.nombre as medico FROM TecnicostoMedicos ttom INNER JOIN Tecnicos t ON t.id = ttom.fk_tecnico INNER JOIN Medicos m ON m.id = ttom.fk_medico"; }); /////////////////////////////// REPORTES /////////////////////////////////////////////// $app->get('/api/informe/administrador', function(Request $request, Response $response){ $sqlSELECTUnion = "SELECT sum(NoCasosClinicos) totalCasosClinicos, sum(NoHospitales) totalHospitales, sum(NoEspecialidades) totalEspecialidades, sum(NoDiagnosticos) totalDiagnosticos, sum(NoMedicos) totalMedicos, sum(NoSupervisores) totalSupervisores, sum(NoTecnicos) totalRepresentantes, sum(NoEnfermeras) totalEnfermeras, sum(NoProductos) totalProductos FROM ( SELECT count(*) NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM CasosClinicos UNION SELECT 0 NoCasosClinicos, count(*) NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM c_Hospitales UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, count(*) NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM c_Especialidades UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, count(*) NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM c_Diagnosticos UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, count(*) NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM Medicos UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, count(*) NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM Tecnicos UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, count(*) NoSupervisores, 0 NoEnfermeras, 0 NoProductos FROM Supervisores UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, count(*) NoEnfermeras, 0 NoProductos FROM Enfermeras UNION SELECT 0 NoCasosClinicos, 0 NoHospitales, 0 NoEspecialidades, 0 NoDiagnosticos, 0 NoMedicos, 0 NoTecnicos, 0 NoSupervisores, 0 NoEnfermeras, count(*) NoProductos FROM Productos ) Adm"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowUnion = $coneccion->query( $sqlSELECTUnion, PDO::FETCH_ASSOC); $union = $rowUnion->fetch(); $response->getBody()->write(json_encode($union)); $response->withHeader('Content-Type', 'application/json')->withAddedHeader('Empresa', 'BIO')->withStatus(200); }catch(PDOException $e){ $err = [ "code" => $e->getCode(), "message" => $e->getMessage() ]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-Type', 'application/json')->withAddedHeader('Empresa', 'BIO')->withStatus(500); } return $response; }); $app->get('/api/casosclinicos/medicos', function(Request $request, Response $response){ $sqlSELECTCasosClinicosxMedico = " SELECT fk_medico, nomMedico, count(fk_medico) NoCasosClinicos, sum(productos) NoProductos, sum(cantidad) Puntos FROM ( SELECT cc.fk_medico, IF(cp.productos is null, 0, cp.productos) productos, IF(cp.cantidad is null, 0, cp.cantidad) cantidad, concat(m.nombre , ' ' , m.primerApellido, ' ', IF(m.segundoApellido is null,'', m.segundoApellido)) nomMedico FROM CasosClinicos cc LEFT JOIN ( SELECT id_casoclinico, count(id_casoClinico) productos, sum(puntos) cantidad FROM CasosProductos GROUP BY id_casoClinico) as cp ON cp.id_casoClinico = cc.id INNER JOIN Medicos m ON m.id = cc.fk_medico) rcc GROUP BY rcc.fk_medico"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCasosClinicosxMedico = $coneccion->query($sqlSELECTCasosClinicosxMedico, PDO::FETCH_ASSOC); $casosclinicosxMedico = $rowCasosClinicosxMedico->fetchAll(); $rowCasosClinicosxMedico = null; $coneccion = null; $db = null; return $response->getBody()->write(json_encode($casosclinicosxMedico)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = [ "code"=>$e->getCode(), "message"=>$e->getMessage() ]; $response->getBody()->write(json_encode($err)); return $response->withHeader('Content-Type', 'application/json')->withStatus(500); } }); $app->get('/api/casosclinicos/estados', function(Request $request, Response $response){ $sqlSELECTEstados = "SELECT cc.fk_estado, e.nomEstado, COUNT(cc.fk_estado) casosclinicos, SUM(IF(ip.productos is null, 0, ip.productos)) productos, SUM(IF(ip.puntos is null, 0, ip.puntos)) puntos FROM CasosClinicos cc LEFT JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id INNER JOIN c_Estados e ON e.id = cc.fk_estado GROUP BY fk_estado"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosEstado = $coneccion->query($sqlSELECTEstados, PDO::FETCH_ASSOC); $datosEstado = $rowDatosEstado->fetchAll(); $coneccion = null; $db = null; return $response->write(json_encode($datosEstado)); }catch(PDOException $e){ $coneccion = null; $db = null; $err = ["code"=>$e->getCode(), "message"=>$e->getMessage()]; return $response->withStatus(404)->write(json_encode($err)); } }); $app->get('/api/casosclinicos/instituciones', function(Request $request, Response $response){ $sqlSELECTInstituciones = " SELECT i.id, i.nomInstitucion, cc.cveInstitucion, COUNT(cc.fk_institucion) casosclinicos, SUM(IF(ip.productos is null, 0, ip.productos)) productos, SUM(IF(ip.puntos is null, 0, ip.puntos)) puntos FROM CasosClinicos cc LEFT JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id INNER JOIN c_Instituciones i ON i.id = cc.fk_institucion GROUP BY fk_institucion"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosInstituciones = $coneccion->query($sqlSELECTInstituciones, PDO::FETCH_ASSOC); $datosInstituciones = $rowDatosInstituciones->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($datosInstituciones)); } catch(PDOException $e){ $coneccion=null; $db=null; $err = Array( "code"=>$e->getCode(), "message"=>$e->getMessage()); return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/casosclinicos/hospitales', function(Request $request, Response $response){ $sqlSELECTHospitales = " SELECT cc.fk_hospital id, cc.hospital, COUNT(cc.fk_hospital) casosclinicos, SUM(IF(ip.productos is null, 0, ip.productos)) productos, SUM(IF(ip.puntos is null, 0, ip.puntos)) puntos FROM CasosClinicos cc LEFT JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id GROUP BY fk_hospital ORDER BY SUM(ip.productos) DESC"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosHospitales = $coneccion->query($sqlSELECTHospitales, PDO::FETCH_ASSOC); $datosHospitales = $rowDatosHospitales->fetchAll(); $coneccion = null; $db=null; return $response->write(json_encode($datosHospitales)); }catch(PDOException $e){ $err = Array( "code"=>$e->getCode(), "message"=>$e->getMessage() ); $coneccion = null; $db=null; return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/informe/casosclinicos', function(Request $request, Response $response){ $sqlSELECTCasosClinicos = " SELECT cc.id, cc.serie, cc.folio, cc.fecha, cc.fk_medico, concat(m.nombre, ' ', m.primerApellido, ' ', IF(m.segundoApellido is null, '', m.segundoApellido)) nomMedico, cc.fk_estado, e.nomEstado, cc.fk_institucion, cc.cveInstitucion, cc.fk_hospital, cc.hospital FROM CasosClinicos cc INNER JOIN Medicos m ON m.id=cc.fk_medico INNER JOIN c_Estados e ON e.id=cc.fk_estado"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowInfCasosClinicos = $coneccion->query($sqlSELECTCasosClinicos, PDO::FETCH_ASSOC); $infCasosClinicos = $rowInfCasosClinicos->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($infCasosClinicos)); }catch(PDOException $e){ $coneccion=null; $db=null; $err = Array("code"=>$e->getCode(), "message"=>$e->getMessage()); return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/informe/medicos', function(Request $request, Response $response){ $sqlSELECTMedicos = " SELECT m.id, concat(m.nombre, ' ', m.primerApellido, ' ', IF(m.segundoApellido is null, '', m.segundoApellido)) medico, m.fk_especialidad, m.nomEspecialidad, IF(vcc.casosclinicos is null, 0, vcc.casosclinicos) casosclinicos, IF(vcc.productos is null, 0, vcc.productos) productos, IF(vcc.puntos is null, 0, vcc.puntos) puntos FROM Medicos m LEFT JOIN (SELECT cc.fk_medico, COUNT(cc.fk_medico) casosclinicos, SUM( IF(vcp.productos is null, 0, vcp.productos) ) productos, SUM( IF(vcp.puntos is null, 0, vcp.puntos) ) puntos FROM CasosClinicos cc LEFT JOIN ( SELECT cp.id_casoClinico, COUNT(cp.id_producto) productos, SUM(cp.puntos) puntos FROM CasosProductos cp GROUP BY cp.id_casoClinico) vcp ON vcp.id_casoClinico = cc.id GROUP BY cc.fk_Medico) vcc ON vcc.fk_medico = m.id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosMedicos = $coneccion->query($sqlSELECTMedicos, PDO::FETCH_ASSOC); $datosMedicos = $rowDatosMedicos->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($datosMedicos)); }catch(PDOException $e){ $err = Array("code"=>$e->getCode(), "message"=>$e->getMessage()); $coneccion=null; $db=null; return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/informe/representantes', function(Request $request, Response $response){ $sqlSELECTRepresentantes = "SELECT tm.fk_tecnico id_representante, CONCAT(t.nombre, ' ', t.primerApellido) representante, COUNT(cc.id) casosclinicos, SUM(ip.productos) productos, SUM(ip.puntos) puntos FROM CasosClinicos cc INNER JOIN TecnicosMedicos tm ON tm.fk_medico = cc.fk_medico INNER JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id INNER JOIN Tecnicos t ON t.id = tm.fk_tecnico GROUP BY tm.fk_tecnico"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosRepresentantes=$coneccion->query($sqlSELECTRepresentantes, PDO::FETCH_ASSOC); $datosRepresentantes=$rowDatosRepresentantes->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($datosRepresentantes)); }catch(PDOException $e){ $err = Array("code"=>$e->getCode(), "message"=>$e->getMessage()); $coneccion=null; $db=null; return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/informe/supervisores', function(Request $request, Response $response){ $sqlSELECTSupervisores = " SELECT st.fk_supervisor id, CONCAT(s.nombre, ' ', s.primerApellido) supervisor, COUNT(cc.id) casosclinicos, SUM(ip.productos) productos, SUM(ip.puntos) puntos FROM CasosClinicos cc INNER JOIN TecnicosMedicos tm ON tm.fk_medico = cc.fk_medico INNER JOIN SupervisoresTecnicos st ON st.fk_tecnico = tm.fk_tecnico INNER JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id INNER JOIN Supervisores s ON s.id = st.fk_supervisor GROUP BY st.fk_supervisor"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosSupervisores = $coneccion->query($sqlSELECTSupervisores, PDO::FETCH_ASSOC); $datosSupervisores = $rowDatosSupervisores->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($datosSupervisores)); }catch(PDOException $e){ $err = Array("code"=>$e->getCode(), "message"=>$e->getMessage()); $coneccion=null; $db=null; return $response->withStatus(500)->write(json_encode($err)); } }); $app->get('/api/informe/enfermeras', function(Request $request, Response $response){ $sqlSELECTEnfermeras = "SELECT em.fk_enfermera id, CONCAT(e.nombre, ' ', e.primerApellido) enfermera, COUNT(cc.id) casosclinicos, SUM(ip.productos) productos, SUM(ip.puntos) puntos FROM CasosClinicos cc INNER JOIN EnfermerastoMedicos em ON em.fk_medico = cc.fk_medico INNER JOIN (SELECT id_casoClinico, COUNT(id_producto) productos, SUM(puntos) puntos FROM CasosProductos GROUP BY id_casoClinico) ip ON ip.id_casoClinico = cc.id INNER JOIN Enfermeras e ON e.id = em.fk_enfermera GROUP BY em.fk_enfermera"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowDatosEnfermeras = $coneccion->query($sqlSELECTEnfermeras, PDO::FETCH_ASSOC); $datosEnfermeras = $rowDatosEnfermeras->fetchAll(); $coneccion=null; $db=null; return $response->write(json_encode($datosEnfermeras)); }catch(PDOException $e){ $err = Array("code"=>$e->getCode(), "message"=>$e->getMessage()); $coneccion=null; $db=null; return $response->withStatus(500)->write(json_encode($err)); } }); /////////////////////////////// CATALOGOS /////////////////////////////////////////////// //============================ CATALOGO ANTIBIOTICO ================================ $app->get('/api/antibioticos', function(Request $request, Response $response){ $sqlSELECTAntibioticos = "SELECT id, nomAntibiotico FROM c_Antibioticos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowAntibioticos = $coneccion->query($sqlSELECTAntibioticos, PDO::FETCH_ASSOC); $antibioticos = $rowAntibioticos->fetchAll(); $rowAntibioticos = null; $coneccion = null; $db = null; return $response->write(json_encode($antibioticos)); }catch(PDOException $e){ $rowAntibioticos = null; $coneccion = null; $db = null; return $response->withStatus(404)->write($e->getMessage()); } }); //============================ CATALOGO DIAGNOSTICOS =============================== $app->get('/api/diagnosticos', function(Request $request, Response $response){ $sqlSELECT = " SELECT id, nomDiagnostico FROM c_Diagnosticos"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $diagnosticos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($diagnosticos)); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ CATALOGO TIPO DE DOCUMENTOS ========================= $app->get('/api/tiposdocumentos', function(Request $request, Response $response){ //$ts = $request->getAttribute('ts', ''); $sqlSelect = " SELECT id, nomTipoDocumento FROM c_TiposDocumentos "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $tiposdocumentos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($tiposdocumentos)); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ CATALOGO ESPECIALIDADES ============================= $app->get('/api/especialidades', function(Request $request, Response $response){ $sqlSelectEspecialidades = " SELECT id, nomEspecialidad FROM c_Especialidades "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEspecialidades = $coneccion->query($sqlSelectEspecialidades, PDO::FETCH_ASSOC); $especialidades = $rowEspecialidades->fetchAll(); $rowEspecialidades = null; $coneccion = null; $db = null; return $response->write(json_encode($especialidades)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO PUESTOS ==================================== $app->get('/api/puestos', function(Request $request, Response $response){ $sqlSelectPuestos = " SELECT id, nomPuesto FROM c_Puestos; "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowPuestos = $coneccion->query($sqlSelectPuestos, PDO::FETCH_ASSOC); $puestos = $rowPuestos->fetchAll(); $rowPuestos = null; $coneccion = null; $db = null; return $response->write(json_encode($puestos)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO BANCOS ===================================== $app->get('/api/bancos', function(Request $request, Response $response){ $sqlSelect = " SELECT id, nomBanco FROM c_Bancos"; $mensaje = array("msj"=>"no existen bancos "); $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $bancos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($bancos)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO ESTADO ===================================== $app->get('/api/estados', function(Request $request, Response $response){ $sqlSelectEstados = " SELECT id, nomEstado, nomCapital FROM c_Estados "; $mensaje = array("msj"=>"no existen estados "); $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowEstados = $coneccion->query($sqlSelectEstados, PDO::FETCH_ASSOC); $estados = $rowEstados->fetchAll(); $rowEstados = null; $coneccion = null; $db = null; return $response->write(json_encode($estados)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO RESIDENCIAS ================================ $app->get('/api/residencias', function(Request $request, Response $response){ $sqlSelect = " SELECT id, nomResidencia FROM c_Residencias "; $mensaje = array("msj"=>"no existen residencias "); $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $residencias = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($residencias)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO INSTITUCIONES ============================== $app->get('/api/instituciones', function(Request $request, Response $response){ $sqlSELECT = " SELECT id, nomInstitucion, cvInstitucion FROM c_Instituciones"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSELECT, PDO::FETCH_ASSOC); $instituciones = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($instituciones)); }catch(PDOException $e){ return $response->withStatus(500)->write( $e->getMessage() ); } }); //============================ CATALOGO HOSPITALES ================================= $app->get('/api/hospitales', function(Request $request, Response $response){ $sqlSelect = " SELECT h.id, ucase(h.nomHospital) nomHospital, h.direccion, h.fk_institucion, h.fk_estado FROM c_Hospitales h INNER JOIN c_Instituciones i ON i.id=h.fk_institucion ORDER BY h.fk_institucion, h.nomHospital"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $hospitales = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($hospitales)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================ CATALOGO HOSPITALES INSTITUCION ================================= $app->get('/api/hospitales/institucion/{id}', function(Request $request, Response $response){ $id = $request->getAttribute('id', 0); $sqlSelect = " SELECT id, numeroHospital, nomHospital, direccion, zona, fk_institucion FROM c_Hospitales WHERE fk_institucion = $id"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $hospitales = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($hospitales)); }catch(PDOException $e){ $respuesta = null; $coneccion = null; $db = null; return $response->withStatus(500)->write($e->getMessage() ); } }); //============================= NUEVO HOSPITAL ================================================= $app->post('/api/hospital/nuevo', function (Request $request, Response $response){ $nomHospital = $request->getParam('nomHospital'); $direccion = $request->getParam('direccion'); $fk_estado = $request->getParam('fk_estado'); $fk_institucion = $request->getParam('fk_institucion'); $sqlInsertHospital = "INSERT INTO c_Hospitales ( nomHospital, direccion, fk_estado, fk_institucion) VALUES ( :nomHospital, :direccion, :fk_estado, :fk_institucion) "; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row=[]; $smtHospital = $coneccion->prepare($sqlInsertHospital); $smtHospital->bindParam(':nomHospital', $nomHospital); $smtHospital->bindParam(':direccion', $direccion); $smtHospital->bindParam(':fk_estado', $fk_estado); $smtHospital->bindParam(':fk_institucion', $fk_institucion); if($smtHospital->execute()){ $row = [ "id" => $coneccion->lastInsertId(), "nomHospital" => $nomHospital, "direccion" => $direccion, "fk_estado" => $fk_estado, "fk_institucion" => $fk_institucion ]; } $smtHospital = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $smtHospital = null; $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->message() ); } }); //============================= NUEVA INSTITUCION ============================================== $app->post('/api/institucion/nuevo', function(Request $request, Response $response){ $nomInstitucion = $request->getParam('nomInstitucion'); $cvInstitucion = $request->getParam('cvInstitucion'); $sqlInsertInstitucion = "INSERT INTO c_Instituciones ( nomInstitucion, cvInstitucion) VALUES ( :nomInstitucion, :cvInstitucion)"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $row=[]; $smtInstitucion = $coneccion->prepare($sqlInsertInstitucion); $smtInstitucion->bindParam(':nomInstitucion', $nomInstitucion); $smtInstitucion->bindParam(':cvInstitucion', $cvInstitucion); if($smtInstitucion->execute()){ $row = [ "id" => $coneccion->lastInsertId(), "nomInstitucion" => $nomInstitucion, "cvInstitucion" => $cvInstitucion ]; } $smtInstitucion = null; $coneccion = null; $db = null; return $response->write(json_encode($row)); }catch(PDOException $e){ $coneccion = null; $db = null; return $response->withStatus(500)->write( $e->message() ); } }); //============================= NUEVA ANTIBIOTICOS ============================================= $app->post('/api/antibiotico/nuevo', function(Request $request, Response $response){ $row = []; $nomAntibiotico = $request->getParam('nomAntibiotico'); $id = $request->getParam('id'); $sqlInsertAntibiotico = "INSERT INTO c_Antibioticos (nomAntibiotico) VALUES (:nomAntibiotico)"; try{ $db = new DB(); $coneccion = $db->Coneccion(); $smtAntibiotico = $coneccion->prepare($sqlInsertAntibiotico); $smtAntibiotico->bindParam(':nomAntibiotico', $nomAntibiotico); if($smtAntibiotico->execute()){ $row = [id => $coneccion->lastInsertId(), nomAntibiotico => $nomAntibiotico]; } $response->getBody()->write(json_encode($row)); $response->withHeader('Content-Type', 'application/json')->withStatus(200); }catch(PDOException $e){ $err = ["code" => $e->getCode(), "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-Type', 'application/json')->withStatus(500); } return $response; }); //============================= DIAGNOSTICOS ===================================== $app->post('/api/diagnostico/nuevo', function(Request $request, Response $response){ $row = []; $nomDiagnostico = $request->getParam('nomDiagnostico'); $sqlInsertDiagnostico = "INSERT INTO c_Diagnosticos (nomDiagnostico) VALUES(:nomDiagnostico)"; try{ $db = new DB(); $coneccion = $db->Coneccion(); $smtDiagnostico = $coneccion->prepare($sqlInsertDiagnostico); $smtDiagnostico->bindParam(':nomDiagnostico', $nomDiagnostico); if($smtDiagnostico->execute()){ $row = ["id" => $coneccion->lastInsertId(), "nomDiagnostico" => $nomDiagnostico]; } $response->getBody()->write(json_encode($row)); $response->withHeader('Constent-Type', 'application/json')->withStatus(200); }catch(PDOException $e){ $err = ["code" => $e->getCode, "message" => $e->getMessage()]; $response->getBody()->write(json_encode($err)); $response->withHeader('Content-Type', 'application/json')->withStatus(500); } return $response; }); //============================= CASOS CLINICOS ARCHIVOS ======================================== $app->get('/api/casoclinico/archivos/{idc}/{ids}', function(Request $request, Response $response){ $idc = $request->getAttribute('idc', '0'); $ids = $request->getAttribute('ids', '0'); $sqlSelect = " SELECT d.id, d.fk_casoClinico, d.fk_tipoDocumento, d.descDocumento, td.nomTipoDocumento, d.nomDocumento, d.ruta, d.media, d.extension, d.tamano, d.fechaRegistro, d.fechaDocumento, d.seccion, d.noSeguimiento FROM DocumentosCasosClinicos d INNER JOIN c_TiposDocumentos td ON td.id = d.fk_tipoDocumento WHERE d.fk_casoClinico = $idc AND d.seccion = $ids"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $respuesta = $coneccion->query($sqlSelect, PDO::FETCH_ASSOC); $documentos = $respuesta->fetchAll(); $respuesta = null; $coneccion = null; $db = null; return $response->write(json_encode($documentos)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================= SEGUIMINIENTOS ARCHIVOS ========================================= $app->get('/api/seguimiento/archivos/{idc}/{ids}/{idg}', function(Request $request, Response $response){ $idc = $request->getAttribute('idc', '0'); $ids = $request->getAttribute('ids', '0'); $idg = $request->getAttribute('idg', '0'); $sqlSelectCountArchivos = " SELECT d.id, d.fk_casoClinico, d.fk_tipoDocumento, d.descDocumento, td.nomTipoDocumento, d.nomDocumento, d.ruta, d.media, d.extension, d.tamano, d.fechaRegistro, d.fechaDocumento, d.seccion, d.noSeguimiento FROM DocumentosCasosClinicos d INNER JOIN c_TiposDocumentos td ON td.id = d.fk_tipoDocumento WHERE d.fk_casoClinico = $idc AND d.seccion = $ids AND d.noSeguimiento = $idg"; $db = new DB(); $coneccion = $db->Coneccion(); try{ $rowCount = $coneccion->query($sqlSelectCountArchivos, PDO::FETCH_ASSOC); $count = $rowCount->fetchAll(); $coneccion = null; $db = null; return $response->write(json_encode($count)); }catch(PDOException $e){ return $response->withStatus(500)->write($e->getMessage() ); } }); //============================= UploadedFile CASO CLINICO================================================ $app->post('/api/documentosclinico/up', function(Request $request, Response $response){ $directory = $this->get('upload_directory'); $files = $request->getUploadedFiles(); $fk_casoClinico = $request->getParam('casoClinico'); $fk_tipoDocumento = $request->getParam('tipoDocumento'); $descDocumento = $request->getParam('descDocumento'); $fechaDocumento = $request->getParam('fechaDocumento'); $seccion = $request->getParam('seccion'); $noSeguimiento = $request->getParam('noSeguimiento'); $file = $files['file']; if ($file->getError() === UPLOAD_ERR_OK) { $path=$_SERVER['DOCUMENT_ROOT'] . '/img/'; //$archivo = moveUploadedFile($_SERVER['DOCUMENT_ROOT'] . '/img/', $file, $fk_tipoSeguimiento, $fk_tipoDocumento, $fk_seguimiento ); // $info = array("ruta"=>$ruta, "extension"=>$extension, "archivo"=>$filename, "tipo"=>$file->getClientMediaType()); // return $response->write(json_encode($info)); // $filename = moveUploadedFile($_SERVER['DOCUMENT_ROOT'] . '/img/', $file, $fk_tipoSeguimiento, $fk_tipoDocumento, $fk_seguimiento ); try{ $media = $file->getClientMediaType(); $tamano = $file->getSize(); $extension = pathinfo($file->getClientFilename(), PATHINFO_EXTENSION); $basename = 'cc' . $fk_casoClinico. $fk_tipoDocumento . strval(mt_rand()); // see http://php.net/manual/en/function.random-bytes.php $filename = sprintf('%s.%0.8s', $basename, $extension); $file->moveTo( $path . $filename ); $ruta = '/img/' . $filename; $sqlSelect = "SELECT d.id, d.fk_casoClinico, d.fk_tipoDocumento, d.descDocumento, td.nomTipoDocumento, d.nomDocumento, d.ruta, d.media, d.extension, d.tamano, d.fechaRegistro, d.fechaDocumento, d.seccion, d.noSeguimiento FROM DocumentosCasosClinicos d INNER JOIN c_TiposDocumentos td ON td.id = d.fk_tipoDocumento WHERE d.fk_casoClinico = $fk_casoClinico AND d.seccion = $seccion "; if ($noSeguimiento > 0){ $sqlSelect = $sqlSelect . " AND d.noSeguimiento = $noSeguimiento"; } $sqlInsert="INSERT INTO DocumentosCasosClinicos ( fk_casoClinico, fechaDocumento, fk_tipoDocumento, descDocumento, nomDocumento, ruta, media, extension, tamano, seccion, noSeguimiento, fechaRegistro ) VALUES ($fk_casoClinico, '$fechaDocumento', $fk_tipoDocumento, '$descDocumento', '$filename', '$ruta', '$media', '$extension', $tamano, $seccion, $noSeguimiento, NOW() )"; $db = new DB(); $coneccion = $db->Coneccion(); $preInsert = $coneccion->prepare($sqlInsert); $preInsert->execute(); $preSelect = $coneccion->prepare($sqlSelect); $preSelect->execute(); $documentos = $preSelect->fetchAll(PDO::FETCH_ASSOC); $preInsert = null; $coneccion = null; $db = null; return $response->write(json_encode($documentos)); }catch(PDOException $e){ $er1 = array("msg" => $e->getMessage(), "ruta"=>$ruta); return $response->withStatus(500)->write(json_encode($er1)); }catch( Exception $e){ $er2 = array("msg" => $e->getMessage(), "ruta"=>$ruta); return $response->withStatus(500)->write(json_encode($er2)); } } }); //============================= UploadedFile SEGUIMIENTO ================================================ $app->post('/api/documentoseguimiento/up', function(Request $request, Response $response){ $directory = $this->get('upload_directory'); $files = $request->getUploadedFiles(); $fk_seguimiento = $request->getParam('fk_seguimiento'); $fk_casoClinico = $request->getParam('fk_casoClinico'); $fk_tipoDocumento = $request->getParam('fk_tipoDocumento'); $descDocumento = $request->getParam('descDocumento'); $fechaDocumento = $request->getParam('fechaDocumento'); $seccion = $request->getParam('seccion'); $noSeguimiento = $request->getParam('noSeguimiento'); $file = $files['file']; if ($file->getError() === UPLOAD_ERR_OK) { $path=$_SERVER['DOCUMENT_ROOT'] . '/img/'; try{ $media = $file->getClientMediaType(); $tamano = $file->getSize(); $extension = pathinfo($file->getClientFilename(), PATHINFO_EXTENSION); $basename = 'cc' . $fk_casoClinico. $fk_tipoDocumento . strval(mt_rand()); // see http://php.net/manual/en/function.random-bytes.php $filename = sprintf('%s.%0.8s', $basename, $extension); $file->moveTo( $path . $filename ); $ruta = '/img/' . $filename; $sqlSelect = "SELECT d.id, d.fk_casoClinico, d.fk_tipoDocumento, d.descDocumento, td.nomTipoDocumento, d.nomDocumento, d.ruta, d.media, d.extension, d.tamano, d.fechaRegistro, d.fechaDocumento, d.noSeguimiento, d.seccion FROM DocumentosCasosClinicos d INNER JOIN c_TiposDocumentos td ON td.id = d.fk_tipoDocumento WHERE d.fk_casoClinico = $fk_casoClinico AND d.noSeguimiento = $noSeguimiento"; $sqlInsert="INSERT INTO DocumentosCasosClinicos ( fk_casoClinico, fechaDocumento, fk_tipoDocumento, descDocumento, nomDocumento, ruta, media, extension, tamano, seccion, fechaRegistro, noSeguimiento ) VALUES ($fk_casoClinico, '$fechaDocumento', $fk_tipoDocumento, '$descDocumento', '$filename', '$ruta', '$media', '$extension', $tamano, $seccion, NOW(), $noSeguimiento )"; $db = new DB(); $coneccion = $db->Coneccion(); $preInsert = $coneccion->prepare($sqlInsert); $preInsert->execute(); $preSelect = $coneccion->prepare($sqlSelect); $preSelect->execute(); $documentos = $preSelect->fetchAll(PDO::FETCH_ASSOC); $preInsert = null; $coneccion = null; $db = null; return $response->write(json_encode($documentos)); }catch(PDOException $e){ $er1 = array("msg" => $e->getMessage(), "ruta"=>$ruta); return $response->withStatus(500)->write(json_encode($er1)); }catch( Exception $e){ $er2 = array("msg" => $e->getMessage(), "ruta"=>$ruta); return $response->withStatus(500)->write(json_encode($er2)); } } }); //============================= UpLoadedFile LOTE ========================== $app->post('/api/uploadcvs', function(Request $request, Response $response){ $path = ""; //$path2 = ""; $concatenar = ""; $productos = []; $registros = []; $sqlInsertLote = []; $coneccion = null; $db = new DB(); $files = $request->getUploadedFiles(); $file = $files['file']; if($file->getError() === UPLOAD_ERR_OK){ $path = $_SERVER['DOCUMENT_ROOT'] . '/upload/'; try { $media= $file->getClientMediaType(); $tamano = $file->getSize(); $extension = pathinfo($file->getClientFilename(), PATHINFO_EXTENSION); $basename = 'load' . strval(mt_rand()); $filename = sprintf('%s.%0.8s', $basename, $extension); $file->moveTo($path . $filename); if(($file = fopen($path . $filename, "r")) !== FALSE){ while( ( $datos = fgetcsv($file, 1000, ",") ) !== FALSE ){ $numero = count($datos); if($numero === 4){ $productos[] = $datos; } else{ $registros[] = $datos; } }; if( count($registros) === 0 ){ $coneccion = $db->Coneccion(); $coneccion->beginTransaction(); foreach($productos as $producto){ $sqlInsertrow = "INSERT INTO Productos (codigo, nomProducto, lote, caducidad) VALUES ('$producto[0]', '$producto[1]', '$producto[2]', '$producto[3]'); \n"; $coneccion->query($sqlInsertrow); }; $coneccion->commit(); $mensaje = [ "code" => 0, "message" => "OK", "productos" => count($productos), "registros" => count($registros) ]; $response->getBody()->write(json_encode($mensaje)); $response->withHeader('Content-Type', 'application/json')->withStatus(200); }else { $mensaje1 = [ "code" => 1, "message" => "OK", "productos" => count($productos), "registros" => count($registros) ]; $response->getBody()->write(json_encode($mensaje1)); $response->withHeader('Content-Type', 'application/json')->withStatus(300); } }else { $mensaje2 = [ "code" => 1, "message" => "Problemas al abrir el archivo" ]; $response->getBody()->write(json_encode($mensaje2)); $response->withHeader('Content-Type', 'application/json')->withStatus(300); }; }catch(PDOException $e){ $coneccion->rollback(); $error = [ "code" => $e->getCode(), "message" => str_replace("for key 'UK_codigo'", "del concepto 'Codigo'", str_replace("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry","Duplicidad en el dato", $e->getMessage())) ]; $response->getBody()->write(json_encode($error)); $response->withHeader('Content-Type', 'application/json')->withStatus(500); }catch(Exception $e){ $coneccion->rollback(); $error = ["code" => $e->getCode(), "message" => $e->getMessage() ]; $response->getBody()->write(json_encode($error)); $response->withHeader('Content-Type', 'application/json')->withStatus(500); } }else{ $mensaje3 = [ "code" => 1, "message" => "Problemas al cargar el archivo" ]; $response->getBody()->write(json_encode($mensaje3)); $response->withHeader('Content-Type', 'application/json')->withStatus(300); } return $response; }); /*========================= Funcion moveUploadedFile ============================================ function moveUploadedFile($directory, UploadedFile $uploadedFile, $tseguimiento, $tdocumento, $fseguimiento) { $extension = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION); $basename = 'cc' . $fseguimiento . $tseguimiento . $tdocumento . strval(mt_rand()); // $basename = 'cc' . $fseguimiento . $tseguimiento . $tdocumento . bin2hex(random_bytes(8)); see http://php.net/manual/en/function.random-bytes.php $filename = sprintf('%s.%0.8s', $basename, $extension); // $uploadedFile->moveTo($directory . DIRECTORY_SEPARATOR . $filename); $uploadedFile->moveTo($directory . $filename); return $filename; }*/