Files
api-v2/README.md
2025-09-01 12:16:54 -03:00

176 lines
4.6 KiB
Markdown

# 📦 Instalación API V2
## 🧰 Paso 1: Verificar el sistema operativo
Asegurarse de conocer la versión del sistema operativo del cliente (por ejemplo, FreeBSD 13.4). Para poder elegir el compilado correcto.
En ese caso el código fuente estará en:
```bash
ssh -p 2229 informemedico@gitea.informemedico.com.ar
cd /home/informemedico/api-13-4/api-v2/
```
---
## 📁 Paso 2: Copiar ejecutables al servidor del cliente
Ejecutar el siguiente comando desde el servidor del cliente para copiar los archivos necesarios:
```bash
rsync -av -e "ssh -p 2229" informemedico@gitea.informemedico.com.ar:'/home/informemedico/api-13-4/api-v2/_build/prod/rel/api/*' /home/informemedico/api/
```
---
## ⚙️ Paso 3: Crear archivo `.env`
Ubicarse en:
```bash
cd /home/informemedico/api/bin/
```
Y crear un archivo `.env` con las siguientes variables (reemplazar con los datos correctos):
```dotenv
# Datos de compilación
SECRET_KEY_BASE=GwWSI17GOehYsIBr8TLFaLmxA0N+qFpeycGz8naKy3IxEmxGbVQmr33LlzrwdT9j
DATABASE_URL=ecto://postgres:1nf0rm3@127.0.0.1/dicomscp
CHECK_ORIGIN=https://estudios.nobissalud.com.ar
PHX_PORT=4001
PHX_HOST=127.0.0.1
ROOT_PATH=/api
SCHEME=https
#si es true debe estar escrito siempre en mayuscula (por que llega como string no como boolean)
REDIRECT=TRUE
# Datos consultas
PYTHON_EXECUTABLE=/usr/local/bin/python3.9
PYTHON_SCRIPT=/home/informemedico/impacs/cgi/soffice/generar_pdf_api.py
TEMPLATE_NAME=Con Membrete
pr2_statusname=FINAL
IDSITE=86
ESCANEADOS=https://estudios.nobissalud.com.ar/
# ESCANEADOS_CLAVE=
ADJUNTOS=https://estudios.nobissalud.com.ar/api/attachment/
ADJUNTOS_CLAVE=1nf0rm3
acceso_ed=IDSTUDY
IDENTIFIERFIELD=IDSTUDY
# ImViewer4
# Si es 1, se usa imViewer4, si es 0 se usa el viewer viejo
imViewer4=1
# Si usa ImViewer4, se debe agregar el dominio sin https://
# Ejemplo: imViewer4_host=informesmedicos.apross.gov.ar
imViewer4_host=informesmedicos.apross.gov.ar
# Si usa ImViewer4, se debe agregar el uid del cliente
imViewer4_uid=aab2741a-6b94-4c72-ad29-bf0ca8e492f7
# Si usa ImViewer4, se debe agregar el gethash
# Ejemplo: imViewer4_gethash=https://informesmedicos.apross.gov.ar
imViewer4_gethash=https://informesmedicos.apross.gov.ar/viewer_api/gethash/
# Datos SMTP/Mailer
#SMTP_USER=informes@ciem.com.ar
#SMTP_PASS=OC{j9YZ0PB-x
#SMTP_RELAY=mail.ciem.com.ar
#EMAIL_BODY_PATH=htmlbody
#SERVER_NAME_INDICATION=mail.ciem.com.ar
FROM=Nobis
# Imagenes
LOGO=https://estudio.informemedico.com.ar/logos/nobissalud.png
LOGO_SM=https://estudio.informemedico.com.ar/logos/nobissalud.png
```
---
## 🐍 Paso 4: Copiar y adaptar script `generar_pdf.py`
Copiar el script que usa **imPACS** a la nueva ubicación:
```bash
cp /ruta/soffice/generar_pdf.py /ruta/soffice/generar_pdf_api.py
```
Editar `generar_pdf_api.py` y agregar un `break`:
```python
# Se compone el stdin en un único texto
input = ""
for line in sys.stdin:
input = input + line
break # <- agregar esta línea
```
---
## 🚀 Paso 5: Iniciar el api y agregar al crontab
Ejecutar:
```bash
sudo ./api daemon
```
Contenido del script `server`:
```bash
#!/bin/sh
set -eu
cd -P -- "$(dirname -- "$0")"
PHX_SERVER=true exec ./api start
```
Agregar al `crontab`:
```bash
@reboot /home/informemedico/api/bin/server
```
---
## 🌐 Paso 6: Configuración Apache
Agregar lo siguiente en la configuración del VirtualHost:
```apache
# CORS
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
# WebSocket
RewriteEngine On
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) "ws://127.0.0.1:4001/$1" [P,L]
# /api
ProxyPass /api http://127.0.0.1:4001/api
ProxyPassReverse /api http://127.0.0.1:4001/api
ProxyPass /api/live ws://127.0.0.1:4001/api/live
ProxyPassReverse /api/live ws://127.0.0.1:4001/api/live
ProxyPass /pacientes http://127.0.0.1:4001/api/pacientes
ProxyPassReverse /pacientes http://127.0.0.1:4001/api/pacientes
```
---
## 🔧 Activación de rutas V2 en Admin
1. Cambiar la versión de API a `2`.
2. Reemplazar las nuevas rutas en el sistema:
| Título Ruta | Nueva URL |
|-------------------------|-----------------------------------------------------|
| **Document list URL** | `https://dominio/api/study/{{accession}}` |
| **PDF downloads URL** | `https://dominio/api/downloadpdf/{{iddocument}}` |
| **Studies URL** | `https://dominio/api/studies` |