SCR-INT-001: Alerta de Interaccion CONTRAINDICADO
Identificador: SCR-INT-001
Modulo: MTS-INT-001 - Motor de Interacciones Medicamentosas
Version: 1.0.0
Fecha: 2025-12-05
Autor: MobileUxUiDrone (Eight of Eight)
Prioridad: CRITICA (Seguridad del Paciente)
Tipo: Full Screen Modal Bloqueante
1. Proposito
Esta pantalla es la alerta maxima de seguridad del sistema. Aparece cuando se detecta una interaccion CONTRAINDICADA entre medicamentos (severidad 4). Es bloqueante - el usuario no puede continuar sin tomar una accion explicita.
Principio de Diseno: La seguridad del paciente es innegociable. Esta pantalla debe ser imposible de ignorar accidentalmente.
2. Wireframe ASCII
+--------------------------------------------------+
| STATUS BAR |
+--------------------------------------------------+
| |
| +-----------------------------------------+ |
| | | |
| | [!] CONTRAINDICADO | |
| | (Icono 64dp) | |
| | | |
| +-----------------------------------------+ |
| |
| +-------------------------------------------+ |
| | INTERACCION MEDICAMENTOSA CRITICA | |
| +-------------------------------------------+ |
| |
| Los siguientes medicamentos NO deben |
| tomarse juntos: |
| |
| +-------------------------------------------+ |
| | [Pill] Warfarina 5mg | |
| | (Anticoagulante) | |
| +-------------------------------------------+ |
| + |
| +-------------------------------------------+ |
| | [Pill] Aspirina 100mg | |
| | (Antiinflamatorio) | |
| +-------------------------------------------+ |
| |
| +-------------------------------------------+ |
| | RIESGO: Alto riesgo de sangrado severo | |
| | incluyendo hemorragia gastrointestinal | |
| | y cerebral. | |
| +-------------------------------------------+ |
| |
| [Ver mecanismo y recomendaciones] |
| |
+--------------------------------------------------+
| |
| +-------------------------------------------+ |
| | [Lock] Para continuar, se requiere | |
| | confirmacion de un profesional de salud | |
| +-------------------------------------------+ |
| |
| [ ] He consultado con mi medico y | |
| me ha autorizado esta combinacion | |
| |
| +-------------------------------------------+ |
| | Codigo de verificacion: [Generar] | |
| +-------------------------------------------+ |
| |
| +---------------------+ +---------------------+ |
| | CANCELAR | | CONTINUAR (gris) | |
| | (Blanco/Rojo) | | (deshabilitado) | |
| +---------------------+ +---------------------+ |
| |
+--------------------------------------------------+
| FUENTE: DrugBank | Actualizado: Dic 2025 |
+--------------------------------------------------+
| IMPORTANTE: Esta informacion es solo |
| orientativa. Consulte siempre con su medico. |
+--------------------------------------------------+
3. Especificacion de Componentes
| Propiedad |
Valor |
| Background |
--color-error-900 (#7F0000) |
| Icono |
Warning Triangle, 64dp, blanco |
| Animacion |
Pulse suave cada 2 segundos |
| Texto |
"CONTRAINDICADO" |
| Typography |
Headline Large, Bold, Blanco |
| Padding |
24dp all sides |
3.2. Subtitulo
| Propiedad |
Valor |
| Texto |
"INTERACCION MEDICAMENTOSA CRITICA" |
| Typography |
Title Medium, Bold |
| Color |
--color-error-700 |
| Background |
--color-error-100 |
| Padding |
12dp horizontal, 8dp vertical |
| Border radius |
4dp |
3.3. Cards de Medicamentos
| Propiedad |
Valor |
| Background |
--color-surface |
| Border |
2dp solid --color-error-500 |
| Border radius |
12dp |
| Elevation |
2dp |
| Padding |
16dp |
| Icono medicamento |
40dp, color categoria |
| Nombre |
Body Large, Bold |
| Categoria |
Body Medium, --color-on-surface-variant |
3.4. Conector Visual
| Elemento |
Especificacion |
| Simbolo |
"+" en circulo |
| Tamano |
32dp |
| Background |
--color-error-500 |
| Color simbolo |
Blanco |
| Margin |
12dp vertical |
3.5. Card de Riesgo
| Propiedad |
Valor |
| Background |
--color-error-50 |
| Border left |
4dp solid --color-error-500 |
| Label |
"RIESGO:" en bold |
| Typography |
Body Medium |
| Color texto |
--color-error-900 |
| Icono |
Alert Circle, 24dp |
3.6. Boton Ver Detalle
| Propiedad |
Valor |
| Tipo |
Text Button |
| Color |
--color-error-700 |
| Icono |
Chevron Right, 18dp |
| Typography |
Label Large |
| Padding |
12dp horizontal |
3.7. Seccion de Confirmacion
| Propiedad |
Valor |
| Background |
--color-surface-variant |
| Icono |
Lock, 24dp, --color-on-surface-variant |
| Texto explicativo |
Body Medium |
| Checkbox |
Custom, 24dp touch target 48dp |
| Checkbox label |
Body Medium, max 2 lineas |
3.8. Generador de Codigo
| Propiedad |
Valor |
| Tipo |
Card interactiva |
| Estado inicial |
"Generar codigo" como link |
| Estado generado |
Codigo de 6 digitos monospace |
| Format codigo |
XXX-XXX (con guion) |
| Vigencia |
"Valido por 24 horas" |
| Acciones |
Copiar, Compartir |
| Icono copiar |
24dp, tap para copiar |
3.9. Botones de Accion
3.9.1. Boton Cancelar (Primario recomendado)
| Propiedad |
Valor |
| Tipo |
Outlined Button |
| Color borde |
--color-error-500 |
| Color texto |
--color-error-700 |
| Background hover |
--color-error-50 |
| Min width |
140dp |
| Height |
48dp |
3.9.2. Boton Continuar
| Propiedad |
Estado Deshabilitado |
Estado Habilitado |
| Background |
--color-surface-variant |
--color-error-500 |
| Color texto |
--color-on-surface-disabled |
Blanco |
| Habilitacion |
Checkbox marcado + codigo generado |
- |
| Min width |
140dp |
140dp |
| Height |
48dp |
48dp |
| Propiedad |
Valor |
| Background |
--color-surface-variant |
| Typography |
Caption |
| Color |
--color-on-surface-variant |
| Contenido |
"FUENTE: [source] |
| Padding |
8dp |
3.11. Disclaimer Obligatorio
| Propiedad |
Valor |
| Background |
--color-tertiary-container |
| Typography |
Body Small |
| Color |
--color-on-tertiary-container |
| Icono |
Info, 16dp |
| Padding |
12dp |
| Border radius |
8dp |
4. Estados
4.1. Estado Inicial
- Modal aparece con animacion fade + scale
- Checkbox desmarcado
- Codigo no generado
- Boton "Continuar" deshabilitado y gris
- Focus inicial en boton "Cancelar" (accion segura)
4.2. Estado: Codigo Generado
+-------------------------------------------+
| Codigo de verificacion: |
| |
| +-------------------------------+ |
| | A7F - 3K9 | |
| +-------------------------------+ |
| |
| Valido por 24 horas |
| |
| [Copy icon] [Share icon] |
+-------------------------------------------+
4.3. Estado: Checkbox Marcado
- Checkbox animacion de check (200ms)
- Si codigo generado: Boton "Continuar" se habilita
- Transicion de color del boton (fade 200ms)
4.4. Estado: Listo para Continuar
- Boton "Continuar" activo en rojo
- Texto cambia a "Continuar con precaucion"
- Animacion sutil de atencion
5. Comportamiento
5.1. Aparicion
| Aspecto |
Comportamiento |
| Trigger |
Deteccion de interaccion severidad 4 |
| Animacion entrada |
Fade 300ms + scale from 0.9 |
| Bloqueo |
Pantalla completa, sin back gesture |
| System back |
Ejecuta "Cancelar" |
5.2. Generacion de Codigo
sequenceDiagram
participant U as Usuario
participant UI as Pantalla
participant SYS as Sistema
U->>UI: Tap "Generar codigo"
UI->>SYS: Solicitar codigo verificacion
SYS->>SYS: Generar codigo unico 6 chars
SYS->>SYS: Asociar a interaccion + timestamp
SYS-->>UI: Codigo + vigencia
UI->>UI: Mostrar codigo con animacion
UI->>UI: Mostrar opciones copiar/compartir
5.3. Validacion de Codigo (Profesional)
El codigo puede ser verificado por un profesional de salud via:
- Portal web de MedTime
- Deep link
medtime://verify/{code}
- Llamada telefonica a soporte
El profesional ve:
- Medicamentos involucrados
- Fecha/hora de generacion
- Estado del codigo (usado/no usado)
5.4. Flujo de Cancelar
flowchart TD
A[Tap Cancelar] --> B[Animacion fade out]
B --> C[Revertir cambio de medicamento]
C --> D[Regresar a pantalla anterior]
D --> E[Snackbar: Medicamento no agregado]
5.5. Flujo de Continuar
flowchart TD
A[Tap Continuar] --> B{Validaciones}
B --> |Checkbox no marcado| C[Shake checkbox]
B --> |Codigo no generado| D[Highlight generar codigo]
B --> |Todo OK| E[Confirmar accion]
E --> F[Guardar medicamento]
F --> G[Flag: OVERRIDE_CONTRAINDICADO]
G --> H[Log HIPAA audit]
H --> I[Crear alerta persistente]
I --> J[Cerrar modal]
J --> K[Snackbar: Guardado con advertencia]
6. Accesibilidad
6.1. Nivel WCAG: AAA (Pantalla Critica)
| Criterio |
Implementacion |
Estado |
| 1.4.3 Contraste (AA) |
7:1 para texto critico |
Excede |
| 1.4.6 Contraste (AAA) |
10:1 texto blanco/rojo oscuro |
Cumple |
| 1.4.11 Non-text |
3:1 iconos y bordes |
Cumple |
| 2.1.1 Keyboard |
Tab order logico |
Cumple |
| 2.4.3 Focus Order |
Cancelar > Detalle > Checkbox > Generar > Continuar |
Cumple |
| 4.1.2 Name, Role |
Todos los elementos etiquetados |
Cumple |
| 4.1.3 Status |
aria-live="assertive" en aparicion |
Cumple |
6.2. Screen Reader
On appear:
"Alerta critica. Pantalla bloqueante. Interaccion contraindicada
detectada entre Warfarina 5 miligramos anticoagulante y Aspirina
100 miligramos antiinflamatorio. Riesgo: Alto riesgo de sangrado
severo incluyendo hemorragia gastrointestinal y cerebral.
Para continuar se requiere confirmacion de profesional de salud.
Use Tab para navegar entre opciones. Boton Cancelar enfocado."
6.3. Elementos Focusables (Tab Order)
- Boton "Cancelar" (focus inicial)
- Link "Ver mecanismo y recomendaciones"
- Checkbox de confirmacion
- Boton/Link "Generar codigo"
- Boton "Copiar codigo" (si visible)
- Boton "Compartir codigo" (si visible)
- Boton "Continuar"
6.4. Gestos
| Gesto |
Accion |
Accesibilidad |
| Back (Android) |
Ejecuta Cancelar |
Anunciado |
| Swipe down (iOS) |
Deshabilitado |
No aplica |
| Double tap |
Activa elemento enfocado |
Standard |
| Long press codigo |
Copiar |
Anunciado |
7. Responsive Design
7.1. Mobile Portrait (< 600dp)
- Layout mostrado en wireframe
- Cards de medicamentos stack vertical
- Botones 100% width en stack
7.2. Mobile Landscape (< 600dp height)
- Scroll habilitado
- Header reducido (48dp icono)
- Botones side by side
7.3. Tablet (> 600dp)
+--------------------------------------------------+
| |
| +-------------------+ +---------------------+ |
| | [Warfarina] | | RIESGO: | |
| | + | | Alto riesgo de... | |
| | [Aspirina] | | | |
| +-------------------+ +---------------------+ |
| |
- Layout 2 columnas para medicamentos y riesgo
- Max width 600dp para contenido
- Centrado horizontal
8. Animaciones
8.1. Entrada
| Elemento |
Animacion |
Duracion |
Delay |
| Overlay |
Fade in |
200ms |
0 |
| Modal |
Scale 0.9->1 + fade |
300ms |
100ms |
| Icono header |
Fade in |
200ms |
300ms |
| Contenido |
Fade in stagger |
200ms/item |
400ms |
8.2. Icono Pulsante
@keyframes pulse-alert {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.05); opacity: 0.9; }
}
/* Duration: 2s, infinite, ease-in-out */
8.3. Generacion de Codigo
| Elemento |
Animacion |
Duracion |
| Boton -> Input |
Morph |
300ms |
| Digitos codigo |
Fade in secuencial |
100ms/digito |
| Icono copiar |
Pop in |
200ms |
8.4. Reduccion de Movimiento
Con prefers-reduced-motion: reduce:
- Pulse: Deshabilitado (icono estatico)
- Transiciones: 0ms o instant
- Stagger: Simultaneo
- Solo feedback haptico
9. Datos Requeridos
interface ContraindicacionAlertData {
medicamentoA: {
nombre: string;
dosis: string;
categoria: string;
icono: MedicationIconType;
};
medicamentoB: {
nombre: string;
dosis: string;
categoria: string;
icono: MedicationIconType;
};
riesgo: string;
mecanismoResumen: string;
fuente: string;
fechaActualizacion: Date;
interaccionId: string;
}
9.2. Output
interface ContraindicacionAlertResult {
accion: 'cancelar' | 'continuar';
codigoVerificacion?: string;
timestampConfirmacion?: Date;
checkboxConfirmado: boolean;
}
10. Analytics
10.1. Eventos
| Evento |
Parametros |
Cuando |
contraindication_alert_shown |
med_pair, source |
Al mostrar |
contraindication_detail_tapped |
med_pair |
Tap ver detalle |
contraindication_code_generated |
med_pair, code_id |
Generar codigo |
contraindication_code_copied |
code_id |
Copiar codigo |
contraindication_code_shared |
code_id, method |
Compartir |
contraindication_checkbox_checked |
med_pair |
Marcar checkbox |
contraindication_cancelled |
med_pair, time_on_screen |
Cancelar |
contraindication_overridden |
med_pair, code_id, time_on_screen |
Continuar |
10.2. Metricas de Seguridad
| Metrica |
Objetivo |
Alerta Si |
| Override rate |
< 10% |
> 15% |
| Tiempo promedio en pantalla |
> 30s |
< 10s |
| Ver detalle rate |
> 50% |
< 30% |
| Codigo verificado por profesional |
> 80% de overrides |
< 50% |
11. Testing Checklist
11.1. Funcional
11.2. Accesibilidad
11.3. Seguridad
12. Referencias
Documento generado por MobileUxUiDrone (Eight of Eight)
"En seguridad del paciente, no hay atajos."