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)
| 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
| 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)