# Introducción

ADAS Core es el componente central de la plataforma ADAS. Se trata de un servicio backend desarrollado en C# sobre .NET 8 que actúa como punto de integración entre dispositivos, datos clínicos y servicios auxiliares en entornos hospitalarios.

## Propósito técnico

El sistema expone una API HTTP y procesos internos que permiten:

- Recibir y servir datos clínicos como observaciones, alarmas, admisiones y citas.
- Integrarse con autenticación local y con directorios LDAP.
- Exponer módulos extensibles (balizas luminosas, relés, proxy de dispositivos) que amplían su funcionalidad.
- Registrar auditoría y mantener la trazabilidad de las operaciones.

La imagen Docker incluida en el repositorio compila el proyecto principal `adas-core` y lo publica sobre `aspnet:8.0`, lo que refleja el carácter de servicio web del componente.

## Componentes principales

La solución `adas-core.sln` agrupa los siguientes bloques:

Bloque | Proyectos | Responsabilidad
--- | --- | ---
Entrada de la aplicación | `adas-core` | Proyecto web (ASP.NET Core) que expone los controladores y compone el grafo de dependencias.
Dominio | `adas-core.Domain` | Entidades, modelos y reglas de negocio base.
Aplicación | `adas-core.Application` | Servicios de aplicación, proveedores, repositorios y customizaciones por centro.
Infraestructura | `adas-core.Infrastructure` | Acceso a datos, mensajería, cachés y mecanismos de soporte.
Autenticación | `adas-core.Authentication`, `adas-core.LocalLogin`, `adas-core.LdapLogin` | Modelo común de autenticación y estrategias concretas de login.
Módulos | `adas-core.module.LightBeacons`, `adas-core.module.ProxyDevices`, `adas-core.module.Relays` | Funcionalidades específicas desacopladas.
Pruebas | `adas-core.Test` | Tests automatizados con NUnit, Moq y Mongo2Go.

## Documentación relacionada

- Para entender la separación de capas, consulta Arquitectura.
- Para el detalle de cada proyecto, consulta Proyectos.
- Para la referencia de tipos generados, consulta la Guía de la API o navega directamente por API.