174 lines
4.6 KiB
Markdown
174 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=9EtSIp/X8RGSgHIznn5J5GDxdwUr5oWMjRgK4tOLGIoh2IitPoI7yHx2ZIlLyGnv
|
|
DATABASE_URL=ecto://postgres:1nf0rm3@127.0.0.1/dicomscp
|
|
CHECK_ORIGIN=https://clinicadelsol.informemedico.com.ar:4443
|
|
PHX_PORT=4001
|
|
PHX_HOST=127.0.0.1
|
|
ROOT_PATH=/api
|
|
#PORT=443
|
|
SCHEME=https
|
|
|
|
# Datos consultas
|
|
PYTHON_EXECUTABLE=/usr/local/bin/python3.11
|
|
PYTHON_SCRIPT=/home/informemedico/cgi/soffice/generar_pdf_ed.py
|
|
# El template debe ser exactamente igual al nombre de la plantilla.
|
|
TEMPLATE_NAME=con membrete
|
|
pr2_statusname=FINAL
|
|
IDSITE=226
|
|
# url para escaneados en caso de usar encriptación agregar la clave.
|
|
ESCANEADOS=https://clinicadelsol.informemedico.com.ar:4443/
|
|
#ESCANEADOS_CLAVE=clave
|
|
# url para adjuntos en caso de usar encriptación agregar la clave (si usa /api es 1nf0rm3).
|
|
ADJUNTOS=https://clinicadelsol.informemedico.com.ar:4443/api/attachment/
|
|
ADJUNTOS_CLAVE=1nf0rm3
|
|
# Este es el identificador con el que acceden a la entrega digital.
|
|
acceso_ed=IDSTUDY
|
|
# Este es el identificador que tiene determinado en el admin.
|
|
IDENTIFIERFIELD=IDSTUDY
|
|
|
|
# Datos SMTP/Mailer (en caso de no usar el mailer comentar las variables)
|
|
# indicar tls si SMTP_TLS es false sino indicar ssl
|
|
SMPT_TYPE=tls
|
|
SMTP_RELAY=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
SMTP_USER=resultados.hosp@semedic.in
|
|
SMTP_PASS=gtzrvsbrxnebddyy
|
|
SMTP_SSL=false
|
|
SMTP_TLS=true
|
|
SERVER_NAME_INDICATION=smtp.gmail.com
|
|
EMAIL_BODY_PATH=/home/informemedico/api-mailer/bin/htmlbody
|
|
# El FROM se usa para el title de la entrega digital, es obligatorio
|
|
FROM=Semedic
|
|
|
|
# Imagenes
|
|
LOGO=https://clinicadelsol.informemedico.com.ar:4443/cgi-bin/impacs.bf/get_logo
|
|
LOGO_SM=https://clinicadelsol.informemedico.com.ar:4443/api/images/clinsol_logo_sm.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` |
|