Merge branch 'main' of https://git.ajsystem23.com/jhonathan_guevara/Salud_UT
This commit is contained in:
commit
2cc235e765
36
README.md
36
README.md
@ -303,9 +303,6 @@ python3 -c "import pandas, openpyxl, dotenv; print('OK', pandas.__version__, ope
|
|||||||
#### 7.7) OCR (PDF real + escaneado) con Tesseract (Alpine)
|
#### 7.7) OCR (PDF real + escaneado) con Tesseract (Alpine)
|
||||||
Si necesitas leer PDFs escaneados para el autorrelleno, usa este flujo.
|
Si necesitas leer PDFs escaneados para el autorrelleno, usa este flujo.
|
||||||
```bash
|
```bash
|
||||||
# Uso:
|
|
||||||
# sh -c '...este bloque...' archivo.pdf
|
|
||||||
# Si no pasas argumento, usa "archivo.pdf"
|
|
||||||
|
|
||||||
# 1) Asegura repo community (donde esta ocrmypdf/tesseract-data)
|
# 1) Asegura repo community (donde esta ocrmypdf/tesseract-data)
|
||||||
ALPINE_VER="$(cut -d. -f1,2 /etc/alpine-release)"
|
ALPINE_VER="$(cut -d. -f1,2 /etc/alpine-release)"
|
||||||
@ -341,36 +338,3 @@ else
|
|||||||
fi
|
fi
|
||||||
```
|
```
|
||||||
|
|
||||||
**Instalacion OCR en Alpine (para el autorrelleno en servidor)**
|
|
||||||
```bash
|
|
||||||
apk update
|
|
||||||
apk add --no-cache \
|
|
||||||
tesseract-ocr \
|
|
||||||
tesseract-ocr-data-spa \
|
|
||||||
tesseract-ocr-data-eng \
|
|
||||||
python3 py3-pip py3-virtualenv \
|
|
||||||
build-base python3-dev musl-dev \
|
|
||||||
libffi-dev openssl-dev zlib-dev \
|
|
||||||
jpeg-dev tiff-dev freetype-dev lcms2-dev openjpeg-dev
|
|
||||||
|
|
||||||
python3 -m venv /opt/saludut/venv
|
|
||||||
. /opt/saludut/venv/bin/activate
|
|
||||||
|
|
||||||
pip install --upgrade pip
|
|
||||||
pip install pdfplumber pymupdf pytesseract pillow
|
|
||||||
```
|
|
||||||
|
|
||||||
En `backend/.env`:
|
|
||||||
```
|
|
||||||
PYTHON_PATH=/opt/saludut/venv/bin/python
|
|
||||||
TESSERACT_PATH=/usr/bin/tesseract
|
|
||||||
TESSDATA_PREFIX=/usr/share/tessdata
|
|
||||||
```
|
|
||||||
|
|
||||||
Verificacion:
|
|
||||||
```bash
|
|
||||||
tesseract --list-langs | grep spa
|
|
||||||
/opt/saludut/venv/bin/python -c "import pytesseract; print(pytesseract.get_tesseract_version())"
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
backend.tar.gz
BIN
backend.tar.gz
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
\\set ON_ERROR_STOP on
|
\set ON_ERROR_STOP on
|
||||||
|
|
||||||
\\i schema.sql
|
\i schema.sql
|
||||||
|
|
||||||
-- Roles base (minimo para funcionar)
|
-- Roles base (minimo para funcionar)
|
||||||
INSERT INTO rol (nombre_rol, descripcion)
|
INSERT INTO rol (nombre_rol, descripcion)
|
||||||
|
|||||||
@ -202,6 +202,65 @@ CREATE TABLE IF NOT EXISTS autorizacion (
|
|||||||
correo_inpec_respuesta boolean NOT NULL DEFAULT false
|
correo_inpec_respuesta boolean NOT NULL DEFAULT false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
-- ===== Migraciones autorizacion (si la tabla ya existía de antes) =====
|
||||||
|
-- Nota: CREATE TABLE IF NOT EXISTS no agrega columnas nuevas si la tabla ya existe.
|
||||||
|
-- Estas ALTER aseguran que el schema quede actualizado sin borrar datos.
|
||||||
|
|
||||||
|
ALTER TABLE autorizacion
|
||||||
|
ADD COLUMN IF NOT EXISTS id_usuario_solicitante integer REFERENCES usuario(id_usuario),
|
||||||
|
ADD COLUMN IF NOT EXISTS tipo_autorizacion varchar(50),
|
||||||
|
ADD COLUMN IF NOT EXISTS tipo_servicio varchar(50),
|
||||||
|
ADD COLUMN IF NOT EXISTS ambito_atencion varchar(20),
|
||||||
|
ADD COLUMN IF NOT EXISTS numero_orden varchar(50),
|
||||||
|
ADD COLUMN IF NOT EXISTS archivo_historial_clinico text,
|
||||||
|
ADD COLUMN IF NOT EXISTS archivo_historial_clinico_nombre text,
|
||||||
|
ADD COLUMN IF NOT EXISTS archivo_anexo text,
|
||||||
|
ADD COLUMN IF NOT EXISTS archivo_anexo_nombre text,
|
||||||
|
ADD COLUMN IF NOT EXISTS estado_entrega varchar(20),
|
||||||
|
ADD COLUMN IF NOT EXISTS estado_autorizacion varchar(20),
|
||||||
|
ADD COLUMN IF NOT EXISTS version integer,
|
||||||
|
ADD COLUMN IF NOT EXISTS correo_inpec_pendiente boolean,
|
||||||
|
ADD COLUMN IF NOT EXISTS correo_inpec_enviado boolean,
|
||||||
|
ADD COLUMN IF NOT EXISTS correo_inpec_respuesta boolean;
|
||||||
|
|
||||||
|
-- Defaults / NOT NULL (primero relleno nulos para que no falle el ALTER)
|
||||||
|
UPDATE autorizacion
|
||||||
|
SET
|
||||||
|
tipo_autorizacion = COALESCE(tipo_autorizacion, 'consultas_externas'),
|
||||||
|
estado_entrega = COALESCE(estado_entrega, 'pendiente_entrega'),
|
||||||
|
estado_autorizacion = COALESCE(estado_autorizacion, 'pendiente'),
|
||||||
|
version = COALESCE(version, 1),
|
||||||
|
correo_inpec_pendiente = COALESCE(correo_inpec_pendiente, false),
|
||||||
|
correo_inpec_enviado = COALESCE(correo_inpec_enviado, false),
|
||||||
|
correo_inpec_respuesta = COALESCE(correo_inpec_respuesta, false)
|
||||||
|
WHERE
|
||||||
|
tipo_autorizacion IS NULL
|
||||||
|
OR estado_entrega IS NULL
|
||||||
|
OR estado_autorizacion IS NULL
|
||||||
|
OR version IS NULL
|
||||||
|
OR correo_inpec_pendiente IS NULL
|
||||||
|
OR correo_inpec_enviado IS NULL
|
||||||
|
OR correo_inpec_respuesta IS NULL;
|
||||||
|
|
||||||
|
ALTER TABLE autorizacion
|
||||||
|
ALTER COLUMN numero_autorizacion SET DEFAULT next_numero_autorizacion(),
|
||||||
|
ALTER COLUMN tipo_autorizacion SET DEFAULT 'consultas_externas',
|
||||||
|
ALTER COLUMN estado_entrega SET DEFAULT 'pendiente_entrega',
|
||||||
|
ALTER COLUMN estado_autorizacion SET DEFAULT 'pendiente',
|
||||||
|
ALTER COLUMN version SET DEFAULT 1,
|
||||||
|
ALTER COLUMN correo_inpec_pendiente SET DEFAULT false,
|
||||||
|
ALTER COLUMN correo_inpec_enviado SET DEFAULT false,
|
||||||
|
ALTER COLUMN correo_inpec_respuesta SET DEFAULT false;
|
||||||
|
|
||||||
|
ALTER TABLE autorizacion
|
||||||
|
ALTER COLUMN tipo_autorizacion SET NOT NULL,
|
||||||
|
ALTER COLUMN estado_entrega SET NOT NULL,
|
||||||
|
ALTER COLUMN estado_autorizacion SET NOT NULL,
|
||||||
|
ALTER COLUMN version SET NOT NULL,
|
||||||
|
ALTER COLUMN correo_inpec_pendiente SET NOT NULL,
|
||||||
|
ALTER COLUMN correo_inpec_enviado SET NOT NULL,
|
||||||
|
ALTER COLUMN correo_inpec_respuesta SET NOT NULL;
|
||||||
|
|
||||||
DO $$
|
DO $$
|
||||||
BEGIN
|
BEGIN
|
||||||
IF NOT EXISTS (
|
IF NOT EXISTS (
|
||||||
|
|||||||
@ -45,7 +45,7 @@ echo "rsync -arvz -e \"ssh -p ${SSH_PORT}\" --progress --delete ${DIST_FOLDER}/
|
|||||||
#echo "scp -r -P ${SSH_PORT} ${DIST_FOLDER}/* ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_WEB_DATA_FOLDER}"
|
#echo "scp -r -P ${SSH_PORT} ${DIST_FOLDER}/* ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_WEB_DATA_FOLDER}"
|
||||||
#scp -r -P ${SSH_PORT} ${DIST_FOLDER}/* ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_WEB_DATA_FOLDER}
|
#scp -r -P ${SSH_PORT} ${DIST_FOLDER}/* ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_WEB_DATA_FOLDER}
|
||||||
|
|
||||||
#exit 0 #HABILITARLO CUANDO LA PAGINA YA ESTE ARRIBA
|
exit 0 #HABILITARLO CUANDO LA PAGINA YA ESTE ARRIBA
|
||||||
|
|
||||||
#rsync -arvz ${DIST_FOLDER} -e \"ssh -p ${SSH_PORT}\" ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_DATA_FOLDER}
|
#rsync -arvz ${DIST_FOLDER} -e \"ssh -p ${SSH_PORT}\" ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_DATA_FOLDER}
|
||||||
#scp -r -P ${SSH_PORT} ${DIST_FOLDER} ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_DATA_FOLDER}
|
#scp -r -P ${SSH_PORT} ${DIST_FOLDER} ${REMOTE_USER}@${SERVER_IP4}:${DEPLOYED_DATA_FOLDER}
|
||||||
@ -70,7 +70,7 @@ echo "preparando directorio de logs"
|
|||||||
LOGS_FOLDER="/var/www/log/${SITE_NAME}"
|
LOGS_FOLDER="/var/www/log/${SITE_NAME}"
|
||||||
ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${REMOTE_USER}@${SERVER_IP4} "echo ${REMOTE_PWD} | sudo -S -- sh -c 'mkdir -p ${LOGS_FOLDER};chown -R root:root ${LOGS_FOLDER};chmod -R 755 ${LOGS_FOLDER}'"
|
ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${REMOTE_USER}@${SERVER_IP4} "echo ${REMOTE_PWD} | sudo -S -- sh -c 'mkdir -p ${LOGS_FOLDER};chown -R root:root ${LOGS_FOLDER};chmod -R 755 ${LOGS_FOLDER}'"
|
||||||
#Fin de fase LOGS
|
#Fin de fase LOGS
|
||||||
exit 0
|
#exit 0
|
||||||
# EL EXIT VA HASTA ACA LA PRIMERA VEZ QUE VAYA A SUBIR LA MAQUINA
|
# EL EXIT VA HASTA ACA LA PRIMERA VEZ QUE VAYA A SUBIR LA MAQUINA
|
||||||
|
|
||||||
#Inicio de fase VHOST
|
#Inicio de fase VHOST
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user