Inicio rápido — estadistica

El texto proviene del README de registro del repositorio, incluido al momento de compilar el sitio.

Inicio rápido de desarrollo

Requiere una máquina con Docker y una copia de aps-common como hermana (../aps-common). Levanta un APS Conecta Gestión 34 desechable con PostgreSQL 18 en el puerto 8092; no es la pila de gestion.

  1. Levantar la instancia (en este repositorio): make instance-up. Habilita la aplicación, reinicia los procesos web y termina con Instance ready at http://localhost:8092 (admin / admin).

  2. Revisar el cableado: make smoke. Cada comprobación dice ok y termina con All good.

  3. Abrir http://localhost:8092/apps/estadistica como admin / admin. Consultar muestra «Todavía no hay cifras REM» y el aviso de que no hay establecimiento configurado: todavía no se carga nada, y eso es lo correcto.

  4. Cargar un año en Administración → Estadística: dejar un zip del DEIS (SERIE_REM_<año>.zip) en Archivos y elegirlo en «Cargar un archivo a mano». Informa «Recibido: cifras de <año>…», y «Cifras REM cargadas» muestra cada serie a medida que se carga, una por hora. Sin archivo, el trabajo horario descarga la ventana del DEIS por sí solo, donde corran los trabajos en segundo plano de APS Conecta Gestión.

make instance-clean elimina la instancia y su base de datos.

Una clínica recibe Estadística por gestion, no por la tienda de aplicaciones: la fase 12 desempaqueta el tarball fijado en provisioning/apps/estadistica/ (construido desde una etiqueta de este repositorio) y la fase 16 escribe el establecimiento. Para desarrollar, clonarla como gestion/apps/estadistica (el nombre del directorio es el id de la aplicación); así la fase 12 deja intacto el clon en vez de desempaquetar encima. Ambos comandos se ejecutan desde el repositorio de gestion:

git clone https://github.com/APS-Conecta/estadistica.git apps/estadistica
make fix-mount-perms && make seed

Requiere APS Conecta Gestión 34, PHP 8.2–8.5 y solo PostgreSQL: info.xml lo declara, y una instalación sobre otro motor se rechaza al habilitar la aplicación (ADR-0002). La ventana por defecto de cuatro años ocupa unos 4,9 GB de base de datos (27,3 millones de filas, medido en el laboratorio de gestion el 2026-09-29), y lo mismo en cada respaldo.

La configuración de la aplicación se escribe con occ config:app:set estadistica <clave> --value=<valor>. Las claves deis_code, establishment_type y comuna_cut identifican el establecimiento: las escribe la fase 16 de gestion desde el archivo del sitio y la aplicación no tiene un método que las escriba; first_year es la ventana de años y se cambia en Administración → Estadística. Su tabla completa, y las claves de estado del trabajo (deis_checked_at, deis_etags, deis_check_errors, deis_register), están en la referencia para desarrollo. Quién administra Estadística es el grupo de administradores de APS Conecta Gestión más cualquier grupo con la sección delegada, en Administración → Privilegios de administración o con occ admin-delegation:add 'OCA\Estadistica\Settings\AdminSettings' <grupo> (ADR-0003).

Otras aplicaciones leen la API OCS (con OCS-APIRequest: true) bajo /ocs/v2.php/apps/estadistica/api/v1/: fuentes, fuentes/{id}, consultas (POST), preguntas, tableros e indicadores. Toda ruta es legible por cualquier usuario y tiene límite de tasa. consultas recibe {consulta, establecimiento?}: sin establecimiento, la serie local es la configurada. El sobre OCS es un mecanismo de APS Conecta Gestión: API OCS.

Las pruebas y compuertas:

  • make test: la batería unitaria en un contenedor PHP básico, sin APS Conecta Gestión.

  • npm run lint-js y npm test: ESLint y Vitest.

  • make aps-drift: las copias vendorizadas de aps-common están al día (make aps-sync las refresca).

  • make smoke: el cableado contra la instancia de desarrollo, incluida la comprobación «openapi.json regenerates without drift».

  • make test-integration: la batería de integración contra el PostgreSQL de la instancia de desarrollo (requiere make deps antes). Ningún trabajo de CI la ejecuta; correrla antes de cambiar lib/.

  • make test-browser: las cifras de una tarjeta de tablero contra las de la API, en Chromium (Playwright para Python en el host). Tampoco la ejecuta CI.

  • npm run build: genera los dos paquetes de js/ (no se confirman; el flujo de release los compila y CI falla si la compilación no los produce).

La integración continua (.github/workflows/ci.yml) ejecuta make aps-drift, make test, npm run lint-js, npm test, la comprobación de los paquetes y make smoke sobre una instancia en frío; el flujo de release (.github/workflows/release.yml) compila y empaqueta en cada PR.

Tres trampas que esta aplicación ya pagó:

  • Reiniciar los procesos web tras occ app:enable. Guardan las rutas en caché durante una hora, y toda ruta responde 404 hasta que se reinician. make instance-up lo hace.

  • La configuración de la aplicación llega al proceso web unos 3 s tarde, y un borrado también. Una comprobación justo después de occ config:app:set ve el valor anterior.

  • Cada bloque <style> de un componente incluye todo el archivo .vue como mapa de fuente en línea. Un componente sin bloque <style> es mucho más barato (deuda técnica B-013 en la referencia para desarrollo).

Licencia