# 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](architecture.md).
- Para el detalle de cada proyecto, consulta [Proyectos](projects.md).
- Para la referencia de tipos generados, consulta la [Guía de la API](api-guide.md) o navega directamente por [API](../api/index.md).
