diff --git a/README.md b/README.md index 7f07d6e..84e4467 100644 --- a/README.md +++ b/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) Si necesitas leer PDFs escaneados para el autorrelleno, usa este flujo. ```bash -# Uso: -# sh -c '...este bloque...' archivo.pdf -# Si no pasas argumento, usa "archivo.pdf" # 1) Asegura repo community (donde esta ocrmypdf/tesseract-data) ALPINE_VER="$(cut -d. -f1,2 /etc/alpine-release)" @@ -320,24 +317,22 @@ apk add --no-cache \ ocrmypdf \ tesseract-ocr-data-spa \ tesseract-ocr-data-eng + +# prueba +tesseract --version -# 3) Procesa el PDF (real/escaneado/mixto) -IN="${1:-archivo.pdf}" -BASE="${IN%.pdf}" -TXT="${BASE}.txt" -OCRPDF="${BASE}.ocr.pdf" - -# Intenta extraer texto directo -pdftotext -layout "$IN" - > "$TXT" 2>/dev/null || true - -# Si el texto es muy corto, probablemente es escaneado (o casi todo imagen) -> OCR -LEN="$(tr -d '[:space:]' < "$TXT" | wc -c | tr -d ' ')" -if [ "${LEN:-0}" -lt 80 ]; then - ocrmypdf -l spa+eng --skip-text --rotate-pages --deskew --optimize 3 "$IN" "$OCRPDF" - pdftotext -layout "$OCRPDF" "$TXT" - echo "OK (OCR aplicado cuando hacia falta): $OCRPDF | Texto: $TXT" -else - echo "OK (PDF con texto): Texto: $TXT" -fi ``` +### 8) otros +```bash +mkdir -p /opt/saludut/backend +tar -czf backend.tar.gz \ + --exclude="node_modules" \ + --exclude=".env" \ + --exclude="backend.tar.gz" \ + . + +scp -P 48952 backend.tar.gz root@autorizacion.saludut.com:/opt/saludut/ + +rc-service saludut-backend restart +``` diff --git a/backend.tar.gz b/backend.tar.gz index 9b1114d..bf5283b 100644 Binary files a/backend.tar.gz and b/backend.tar.gz differ diff --git a/backend/src/insert.sql b/backend/src/insert.sql index a116d21..37a8428 100644 --- a/backend/src/insert.sql +++ b/backend/src/insert.sql @@ -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) INSERT INTO rol (nombre_rol, descripcion) diff --git a/backend/src/schema.sql b/backend/src/schema.sql index cfb0fba..9bdfa6d 100644 --- a/backend/src/schema.sql +++ b/backend/src/schema.sql @@ -202,6 +202,65 @@ CREATE TABLE IF NOT EXISTS autorizacion ( 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 $$ BEGIN IF NOT EXISTS ( diff --git a/saludut-inpec/scripts/publish.sh b/saludut-inpec/scripts/publish.sh index b15a44f..2e804c2 100755 --- a/saludut-inpec/scripts/publish.sh +++ b/saludut-inpec/scripts/publish.sh @@ -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}" #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} #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}" 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 -exit 0 +#exit 0 # EL EXIT VA HASTA ACA LA PRIMERA VEZ QUE VAYA A SUBIR LA MAQUINA #Inicio de fase VHOST