/** * Funcion que guarda la admision * return void */ function admision() { $datos = array(); foreach ($_REQUEST as $key => $valor) { $datos[$key] = strtoupper($valor); } if (isset($datos['email'])) { $datos['email'] = strtolower($datos['email']); } $Admision = new Admision(); $validar = new Validacion(); $admitir = FALSE; $usuario = FALSE; $mensaje = array(); // Si el usuario no existe lo guarda if (empty($_REQUEST['id_paciente'])) { $Paciente = new Paciente(); // Valida que el usuario no exista $rst = $Paciente->consultar($datos['tipo_identificacion'], $datos['numero_documento'], 1); if (!$rst['id']) { // Validacion del usuario $validar->add($datos['tipo_identificacion'], 'tipo_identificacion', Validacion::$validarSoloTexto, 1, 2, true); $validar->add($datos['numero_documento'], 'numero_documento', Validacion::$validarAlfanumerico, 1, 20, true); $validar->add($datos['nombre1'], 'nombre1', Validacion::$validarSoloTexto, 1, 40, true); $validar->add($datos['nombre2'], 'nombre2', Validacion::$validarSoloTexto, 1, 40, false); $validar->add($datos['apellido1'], 'apellido1', Validacion::$validarSoloTexto, 1, 40, true); $validar->add($datos['apellido2'], 'apellido2', Validacion::$validarSoloTexto, 1, 40, false); $validar->add($datos['fecha_nacimiento'], 'fecha_nacimiento', Validacion::$validarFecha, 1, 10, true); $validar->add($datos['edad'], 'edad', Validacion::$validarNumeros, 1, 3, true); $validar->add($datos['unidad_medida'], 'unidad_medida', Validacion::$validarNumeros, 1, 1, true); $validar->add($datos['sexo'], 'sexo', Validacion::$validarSoloTexto, 1, 1, true); $validar->add($datos['municipio'], 'municipio', Validacion::$validarNumeros, 1, 5, true); $validar->add($datos['zona'], 'zona', Validacion::$validarSoloTexto, 1, 1, true); $validar->add($datos['telefono'], 'telefono', Validacion::$validarAlfanumericoConEspacios, 1, 30, true); $validar->add($datos['email'], 'email', Validacion::$validarEmail, 1, 60, true); if (!$validar->esValido()) { $camposError = $validar->getCamposError(); foreach ($camposError as $valor) { $mensaje[$valor[0]] = $valor[1]; } } else { // Cambio de fechas a formato de postgres $datos['fecha_nacimiento'] = toYMD($datos['fecha_nacimiento']); $datos['email'] = strtolower($datos['email']); if ($Paciente->guardar($datos)) { // Recupera el ID del paciente $rst = $Paciente->consultar($datos['tipo_identificacion'], $datos['numero_documento'], 1); $datos['id_paciente'] = $rst['id']; $usuario = TRUE; } } } else { $datos['id_paciente'] = $rst['id']; $usuario = TRUE; } } else { $usuario = TRUE; // Validacion del usuario $validar->add($datos['tipo_identificacion'], 'tipo_identificacion', Validacion::$validarSoloTexto, 1, 2, true); $validar->add($datos['numero_documento'], 'numero_documento', Validacion::$validarAlfanumerico, 1, 20, true); $validar->add($datos['nombre1'], 'nombre1', Validacion::$validarSoloTexto, 1, 40, true); $validar->add($datos['nombre2'], 'nombre2', Validacion::$validarSoloTexto, 1, 40, false); $validar->add($datos['apellido1'], 'apellido1', Validacion::$validarSoloTexto, 1, 40, true); $validar->add($datos['apellido2'], 'apellido2', Validacion::$validarSoloTexto, 1, 40, false); $validar->add($datos['fecha_nacimiento'], 'fecha_nacimiento', Validacion::$validarFecha, 1, 10, true); $validar->add($datos['edad'], 'edad', Validacion::$validarNumeros, 1, 3, true); $validar->add($datos['unidad_medida'], 'unidad_medida', Validacion::$validarNumeros, 1, 1, true); $validar->add($datos['sexo'], 'sexo', Validacion::$validarSoloTexto, 1, 1, true); $validar->add($datos['municipio'], 'municipio', Validacion::$validarNumeros, 1, 5, true); $validar->add($datos['zona'], 'zona', Validacion::$validarSoloTexto, 1, 1, true); $validar->add($datos['telefono'], 'telefono', Validacion::$validarAlfanumericoConEspacios, 1, 30, true); $validar->add($datos['email'], 'email', Validacion::$validarEmail, 1, 60, true); if (!$validar->esValido()) { $camposError = $validar->getCamposError(); foreach ($camposError as $valor) { $mensaje[$valor[0]] = $valor[1]; } } else { $Paciente = new Paciente(); // id paciente $datos['id'] = $_REQUEST['id_paciente']; // Cambio de fechas a formato de postgres $datos['fecha_nacimiento'] = toYMD($datos['fecha_nacimiento']); $datos['email'] = strtolower($datos['email']); if ($Paciente->actualizar($datos)) { unset($datos['id']); } } } // Campo temporal, debe obtenerse de la bd configuracion $datos['codigo_prestador'] = '12345678'; // numero_ingreso codigo_sala codigo_eps liquido numero_afiliacion numero_carnet numero_autorizacion // prefijo_centro codigo_estrato id_medico fecha_ingreso fecha_egreso nombre_responsable direccion_responsable // telefono_responsable alta_voluntaria // array con las reglas de validacion para la admision $datos['id_usuario'] = getUserId(); $validar->add($_REQUEST['numero_ingreso'], 'numero_ingreso', Validacion::$validarNumeros, 1, 18, false); $validar->add($_REQUEST['codigo_sala'], 'codigo_sala', Validacion::$validarAlfanumerico, 1, 2, true); $validar->add($_REQUEST['codigo_eps'], 'codigo_eps', Validacion::$validarAlfanumerico, 1, 6, true); $validar->add($_REQUEST['liquido'], 'liquido', Validacion::$validarNumeros, 1, 1, false); $validar->add($_REQUEST['numero_afiliacion'], 'numero_afiliacion', Validacion::$validarNumeros, 1, 12, false); $validar->add($_REQUEST['numero_carnet'], 'numero_carnet', Validacion::$validarNumeros, 1, 12, false); $validar->add($_REQUEST['numero_autorizacion'], 'numero_autorizacion', Validacion::$validarNumeros, 1, 15, false); $validar->add($_REQUEST['prefijo_centro'], 'prefijo_centro', Validacion::$validarAlfanumerico, 1, 2, true); $validar->add($_REQUEST['codigo_estrato'], 'codigo_estrato', Validacion::$validarAlfanumerico, 1, 2, true); $validar->add($_REQUEST['id_medico'], 'id_medico', Validacion::$validarNumeros, 1, 2, false); $validar->add($_REQUEST['fecha_ingreso'], 'fecha_ingreso', Validacion::$validarFecha, 10, 10, true); $validar->add($_REQUEST['fecha_egreso'], 'fecha_egreso', Validacion::$validarFecha, 10, 10, false); $validar->add($_REQUEST['nombre_responsable'], 'nombre_responsable', Validacion::$validarSoloTextoConEspacios, 1, 80, false); $validar->add($_REQUEST['direccion_responsable'], 'direccion_responsable', Validacion::$validarSoloTextoConEspacios, 1, 60, false); $validar->add($_REQUEST['telefono_responsable'], 'telefono_responsable', Validacion::$validarSoloTextoConEspacios, 1, 20, false); $validar->add($_REQUEST['alta_voluntaria'], 'alta_voluntaria', Validacion::$validarNumeros, 1, 1, false); if (!$validar->esValido()) { $camposError = $validar->getCamposError(); foreach ($camposError as $valor) { $mensaje[$valor[0]] = $valor[1]; } } else { $admitir = TRUE; } // Guarda la admision if ($admitir === TRUE && $usuario === TRUE) { // Cambio de fechas a formato de postgres $datos['fecha_ingreso'] = toYMD($datos['fecha_ingreso']); $datos['fecha_egreso'] = toYMD($datos['fecha_egreso']); if ($Admision->guardar($datos)) { $mensaje['estado'] = '1'; $mensaje['info'] = '<div class="success">Se ha creado la admision exitosamente</div>'; // admision $sql = "SELECT MAX(id) as id\n FROM admision\n WHERE id_paciente = '{$datos['id_paciente']}'"; $rst = $this->queryRow($sql); $mensaje['numero_ingreso'] = $rst['id']; } } $respuesta = json_encode($mensaje); header("Content-type: application/json"); echo $respuesta; return; }