workspace "Plataforma de Apoyo Documental en Salud Mental" "Arquitectura modular, escalable y compliance-focused" { model { user = person "Usuario Final" "Especialistas, Directores, Administradores que documentan procesos clínicos." sistema = softwareSystem "Plataforma de Documentación Clínica" "Asiste en la creación, validación y cumplimiento de notas clínicas sin reemplazar el EHR." { user -> this "Utiliza para documentar, validar y revisar notas clínicas" frontend = container "Frontend Web SPA" "Aplicación React responsiva para ingreso, revisión y visualización de notas." "React" backend = container "Backend API" "Servicios desacoplados para usuarios, pacientes, sesiones, validaciones y flujos documentales." "Node.js / NestJS" db_sql = container "SQL Database" "Almacena datos estructurados: usuarios, pacientes, sesiones, permisos." "PostgreSQL" db_doc = container "NoSQL Document DB" "Almacena notas clínicas, formularios dinámicos y contenido narrativo." "MongoDB" audit_logging = container "Módulo de Auditoría" "Registra eventos clave para trazabilidad y cumplimiento regulatorio." "Centralized Logging" ai_engine = container "Motor de IA" "IA generativa basada en AWS Bedrock. Genera, adapta y valida texto clínico." "AWS Bedrock" { golden_thread = component "Golden Thread Validator" "Verifica la coherencia entre diagnóstico, tratamiento y evolución usando IA." "GPT / Prompt Engineering" narrative_parser = component "Narrative Parser" "Extrae estructuras narrativas y clínicas del texto libre." "LangChain / spaCy" guideline_matcher = component "Guideline Matcher" "Compara notas contra criterios de aseguradoras y guías clínicas." "Rules + Prompt Templates" corrective_recommender = component "Corrective Recommender" "Sugiere correcciones basadas en incoherencias narrativas." "Generative Model" narrative_parser -> golden_thread "Provee estructura narrativa" golden_thread -> guideline_matcher "Envía contexto clínico" guideline_matcher -> corrective_recommender "Provee reglas y criterios" corrective_recommender -> golden_thread "Sugiere mejoras narrativas" } compliance_engine = container "Motor de Compliance" "Valida cumplimiento normativo según reglas de aseguradoras, estado y tipo de documento." "Rules Engine" user -> frontend "Interacciona vía navegador" frontend -> backend "Consume APIs REST" backend -> db_sql "Lee y escribe datos estructurados" backend -> db_doc "Lee y escribe documentos clínicos" backend -> ai_engine "Envía texto clínico para sugerencias y generación" backend -> compliance_engine "Valida estructura y cumplimiento técnico" backend -> audit_logging "Envía logs de actividad" } } views { systemContext sistema { include * autolayout lr } container sistema { include * autolayout lr } component ai_engine { include * autolayout lr } theme default } }