Saltar a contenido

SCR-EST-004: Filtros por Categoria

Identificador: SCR-EST-004 Modulo: MTS-EST-001 - Catalogo de Estudios Version: 1.0.0 Fecha: 2025-12-05 Autor: MobileUxUiDrone (Eight of Eight)


1. Informacion General

Atributo Valor
Nombre Filtros por Categoria
Tipo Bottom sheet / Modal
Prioridad Media
Roles PI, CR, CS

2. Proposito

Permitir filtrado avanzado de estudios por categoria, subcategoria, y requisitos de preparacion.


3. Wireframe ASCII

+------------------------------------------+
|=========================================  |
|                                          |
| FILTRAR ESTUDIOS                  [X]    |
|                                          |
+------------------------------------------+
| CATEGORIA                                |
+------------------------------------------+
| +-------+ +-------+ +-------+            |
| |[tubo] | |[rx]   | |[estet]|            |
| | Lab   | | Imagen| | Espec |            |
| | (50)  | | (20)  | | (15)  |            |
| +-------+ +-------+ +-------+            |
| +-------+ +-------+                      |
| |[iv]   | |[person]|                     |
| | Trat  | | Terap |                      |
| | (30)  | | (20)  |                      |
| +-------+ +-------+                      |
|                                          |
+------------------------------------------+
| SUBCATEGORIA (Lab seleccionado)          |
+------------------------------------------+
| [x] Hematologia (7)                      |
| [x] Quimica Clinica (15)                 |
| [ ] Inmunologia (9)                      |
| [ ] Hormonales (10)                      |
| [ ] Coagulacion (5)                      |
| [ ] Uranalisis (6)                       |
|                                          |
+------------------------------------------+
| PREPARACION                              |
+------------------------------------------+
| ( ) Todos                                |
| ( ) Requiere ayuno                       |
| (x) Sin preparacion especial             |
| ( ) Otros requisitos                     |
|                                          |
+------------------------------------------+
|                                          |
| [Limpiar filtros]  [Aplicar (12)]        |
|                                          |
+------------------------------------------+

4. Elementos de UI

4.1. Header

Elemento Componente Especificacion
Handle DragHandle Indicador de arrastre
Titulo Headline6 "FILTRAR ESTUDIOS"
Close IconButton X para cerrar

4.2. Categorias

Elemento Componente Especificacion
Category Grid Grid 3 columnas
Category Chip FilterChip Seleccion multiple
Icon CategoryIcon 24dp
Count Badge Numero de estudios
Selected state Filled Color primario

4.3. Subcategorias

Elemento Componente Especificacion
Section Expandable Visible si categoria seleccionada
Checkbox Checkbox Multiselect
Label Body1 Nombre + count

4.4. Preparacion

Elemento Componente Especificacion
Radio Group RadioGroup Seleccion unica
Options RadioButton 4 opciones

4.5. Acciones

Elemento Componente Especificacion
Clear TextButton "Limpiar filtros"
Apply PrimaryButton "Aplicar (count)"
Count Dynamic Actualiza en tiempo real

5. Comportamiento

5.1. Filtrado Dinamico

  • Count se actualiza al cambiar seleccion
  • Sin delay perceptible
  • Muestra "Sin resultados" si count = 0

5.2. Persistencia

  • Filtros se mantienen durante sesion de busqueda
  • "Limpiar" resetea todos los filtros

5.3. Logica de Filtrado

FILTRAR(estudios, filtros):
  resultado = estudios

  IF filtros.categorias.length > 0:
    resultado = resultado.filter(e => e.categoria IN filtros.categorias)

  IF filtros.subcategorias.length > 0:
    resultado = resultado.filter(e => e.subcategoria IN filtros.subcategorias)

  IF filtros.preparacion != "Todos":
    SWITCH filtros.preparacion:
      "Requiere ayuno": resultado = resultado.filter(e => e.requiere_ayuno)
      "Sin preparacion": resultado = resultado.filter(e => e.preps.length == 0)
      "Otros requisitos": resultado = resultado.filter(e => e.preps.length > 0 AND !e.requiere_ayuno)

  RETURN resultado

6. Estados

6.1. Estado Inicial

  • Ninguna categoria seleccionada
  • "Todos" seleccionado en preparacion
  • Count muestra total del catalogo

6.2. Estado Con Seleccion

  • Categorias seleccionadas con fill
  • Subcategorias visibles
  • Count actualizado

6.3. Estado Sin Resultados

+------------------------------------------+
|                                          |
| [Aplicar (0)]  <- Deshabilitado          |
|                                          |
| Nota: No hay estudios que coincidan      |
| con los filtros seleccionados.           |
|                                          |
+------------------------------------------+

7. Accesibilidad

7.1. WCAG 2.1 AA

Criterio Implementacion
1.3.1 Fieldsets con legends
2.4.6 Headings para secciones
4.1.2 Roles correctos para controles

7.2. Screen Reader

Elemento Anuncio
Category chip "[Nombre], [count] estudios, [selected/not selected]"
Subcategory "Checkbox, [nombre], [count] estudios"
Apply button "Aplicar filtros, [count] resultados"

8. Navegacion

8.1. Entradas

Origen Accion Parametros
SCR-EST-001 Tap categoria categoria
SCR-EST-002 Tap filtro icon query, current_filters

8.2. Salidas

Destino Accion Parametros
SCR-EST-002 Aplicar filtros[]
Dismiss X o tap outside -

9. Analytics

Evento Trigger Datos
filter_opened Bottom sheet visible from
category_selected Tap categoria categoria
subcategory_toggled Tap subcategoria subcategoria, selected
prep_filter_changed Tap preparacion value
filters_applied Tap aplicar filtros[], result_count
filters_cleared Tap limpiar previous_filters

Documento generado por MobileUxUiDrone (Eight of Eight)