2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 17:42:02 -03:00
2026-08-10 15:54:42 -03:00
2026-08-10 16:10:47 -03:00
2026-08-10 15:54:42 -03:00

Arquitectura y Diseño de Sistema de Gestión Médica

Visión General de la Arquitectura (Alto Nivel)

  • Frontend: ASP.NET Core MVC (Razor Views) con Bootstrap (o framework CSS equivalente) para la interfaz de usuario.
  • Backend: ASP.NET Core 6+ con inyección de dependencias, Identity para autenticación y Entity Framework Core (con Pomelo MySQL) para acceso a datos.
  • Base de Datos: MySQL.
  • Servicios Externos:
    • Google Calendar API: Gestión e integración de citas de la agenda médica.
    • Chatwoot: Mensajería (redirección y notificaciones básicas).
  • Seguridad: Autenticación por Identity con roles (Administrador, Médico, Secretaria, Recepcionista, etc.) y autorización mediante políticas personalizadas.
  • Plan de desarrollo: Consultar siempre las fases y tareas del archivo plan_desarrollo_sistema_medico.md.

Módulos Funcionales

  1. Gestión de Usuarios y Roles: Administración del personal administrativo y médico.
  2. Gestión de Pacientes: Alta, baja, modificación e historial general.
  3. Gestión de Citas y Agenda: Sincronización e integración con Google Calendar.
  4. Historia Clínica: Registro de diagnósticos, tratamientos, evolución y recetas.
  5. Dashboard / Resumen: Vista ejecutiva rápida para secretarias y cuerpo médico.
  6. Integración con Chatwoot: Acceso directo a mensajería y contador de mensajes no leídos.

Diseño de Datos (Entidades Principales)

1. Usuario (ApplicationUser)

Representa al personal del sistema. Extiende de la entidad Identity básica.

  • Nombre
  • Apellido
  • Documento
  • Dirección
  • Teléfono
  • Email
  • RolPrincipal

Nota: El rol determina los permisos y accesos dentro del sistema.


2. Paciente

Representa a la persona que recibe atención médica.

  • Id (int o Guid)
  • Nombres
  • Apellidos
  • FechaNacimiento
  • Genero
  • DocumentoIdentidad (único)
  • Direccion (opcional)
  • Telefono
  • Email (opcional)
  • ObraSocial / PlanDeSalud (opcional)
  • FechaRegistro
  • UsuarioAltaId (relación con ApplicationUser)

3. Médico

Perfil extendido para usuarios con rol médico. Se recomienda extender ApplicationUser o mantener una relación 1 a 1.

  • Especialidad
  • MatriculaProfesional
  • HorarioAtencion

4. Cita

Entidad de control para agendas y sincronización externa.

  • Id
  • PacienteId (FK -> Paciente)
  • MedicoId (FK -> ApplicationUser / Médico)
  • FechaHoraInicio
  • FechaHoraFin (o duración)
  • Motivo (texto breve)
  • Estado (Programada, Confirmada, Cancelada, Atendida)
  • GoogleCalendarEventId (para sincronización bidireccional)
  • FechaCreacion
  • UsuarioCreacionId (FK -> ApplicationUser)

5. Historia Clínica

Registro médico agrupado por consulta realizada.

  • Id
  • PacienteId (FK -> Paciente)
  • MedicoId (FK -> ApplicationUser / Médico)
  • FechaConsulta
  • MotivoConsulta
  • Diagnostico (texto o código CIE-10)
  • TratamientoIndicado
  • Observaciones / Notas
  • ProximoControl (fecha sugerida)
  • EstadoPaciente (Activo, En Tratamiento, Derivado, etc.)

Relaciones Principales

  • Usuario -> Paciente: 1 : N (un usuario registra múltiples pacientes).
  • Médico -> Cita: 1 : N (un médico atiende múltiples citas).
  • Paciente -> Cita: 1 : N (un paciente puede tener múltiples citas).
  • Paciente -> HistoriaClinica: 1 : N (un paciente posee múltiples registros clínicos).
  • Médico -> HistoriaClinica: 1 : N (un médico registra múltiples historias clínicas).

Estructura del Proyecto

TuProyecto/
├── Controllers/
│   ├── AccountController.cs
│   ├── UsuariosController.cs
│   ├── PacientesController.cs
│   ├── CitasController.cs
│   ├── HistoriaClinicaController.cs
│   └── DashboardController.cs
├── Models/
│   ├── ApplicationUser.cs
│   ├── Paciente.cs
│   ├── Cita.cs
│   ├── HistoriaClinica.cs
│   └── ViewModels/
├── Data/
│   ├── ApplicationDbContext.cs
│   └── Seeders/
│       └── RoleSeeder.cs
├── Services/
│   ├── GoogleCalendarService.cs
│   ├── ChatwootService.cs
│   └── IUsuarioService.cs
├── Views/
│   ├── Usuarios/
│   ├── Pacientes/
│   ├── Citas/
│   ├── HistoriaClinica/
│   └── Shared/
├── Helpers/
└── Migrations/
S
Description
Aplicacion para centros médicos
Readme
12 MiB
Languages
HTML 50%
C# 46.7%
CSS 3.2%
JavaScript 0.1%