Soluciones paso a paso

Cada caso ofrece pasos estructurados, comandos destacados y botones que abren los resúmenes en la página hospedada (https://mcortesgranados.github.io/PruebaTecnicaXpertgroupIngAWS26Dic2025/).

python -m pip install pytest Instala primero las dependencias antes de ejecutar los scripts.

Caso 1.1

Descripción

Requisito

Revisar completitud de campos críticos (email, teléfono, ciudad) y establecer estrategias de imputación por ciudad o categoría de paciente.

  1. Paso 1: Revisar completitud de campos críticos (email, teléfono, ciudad) y establecer estrategias de imputación por ciudad o categoría de paciente.
  2. Paso 2: Ejecuta python scripts/run_completeness.py para automatizar el flujo.
  3. Paso 3: Revisa reports/completeness_summary.html y reports/completeness_metrics.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 1.2

Descripción

Requisito

Detectar inconsistencias entre fecha_nacimiento y edad, reconstruyendo las edades faltantes con la fecha de corte y guardando un log de cambios.

  1. Paso 1: Detectar inconsistencias entre fecha_nacimiento y edad, reconstruyendo las edades faltantes con la fecha de corte y guardando un log de cambios.
  2. Paso 2: Ejecuta python scripts/run_age_consistency.py para automatizar el flujo.
  3. Paso 3: Revisa reports/age_consistency_summary.html y reports/age_consistency_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 1.3

Descripción

Requisito

Identificar duplicados potenciales usando nombre + fecha_nacimiento/ciudad y consolidar los id_paciente reemplazados.

  1. Paso 1: Identificar duplicados potenciales usando nombre + fecha_nacimiento/ciudad y consolidar los id_paciente reemplazados.
  2. Paso 2: Ejecuta python scripts/run_duplicate_detection.py para automatizar el flujo.
  3. Paso 3: Revisa reports/duplicate_detection_summary.html y reports/duplicate_detection_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 1.4

Descripción

Requisito

Normalizar campos de texto (capitalización, tildes y espacios) para facilitar cruces y reportes posteriores.

  1. Paso 1: Normalizar campos de texto (capitalización, tildes y espacios) para facilitar cruces y reportes posteriores.
  2. Paso 2: Ejecuta python scripts/run_text_normalization.py para automatizar el flujo.
  3. Paso 3: Revisa reports/text_normalization_summary.html y reports/text_normalization_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 2.1

Descripción

Requisito

Medir indicadores diarios y semanales de citas por especialidad, estado_cita y médico para detectar cuellos de botella.

  1. Paso 1: Medir indicadores diarios y semanales de citas por especialidad, estado_cita y médico para detectar cuellos de botella.
  2. Paso 2: Ejecuta python scripts/run_appointment_indicators.py para automatizar el flujo.
  3. Paso 3: Revisa reports/appointment_indicators_summary.html y reports/appointment_indicators_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 2.2

Descripción

Requisito

Reportar citas sin fecha_cita o médico asignado y generar alertas automáticas para la revisión del equipo operativo.

  1. Paso 1: Reportar citas sin fecha_cita o médico asignado y generar alertas automáticas para la revisión del equipo operativo.
  2. Paso 2: Ejecuta python scripts/run_appointment_alerts.py para automatizar el flujo.
  3. Paso 3: Revisa reports/appointment_alerts_summary.html y reports/appointment_alerts_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 2.3

Descripción

Requisito

Analizar la distribución del costo frente a rangos esperados por especialidad y anotar desviaciones mayores a dos desviaciones estándar.

  1. Paso 1: Analizar la distribución del costo frente a rangos esperados por especialidad y anotar desviaciones mayores a dos desviaciones estándar.
  2. Paso 2: Ejecuta python scripts/run_appointment_cost_audit.py para automatizar el flujo.
  3. Paso 3: Revisa reports/appointment_cost_audit_summary.html y reports/appointment_cost_audit_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 2.4

Descripción

Requisito

Consolidar el histórico de estados por id_cita para identificar reprogramaciones múltiples y su impacto en ocupación de agenda.

  1. Paso 1: Consolidar el histórico de estados por id_cita para identificar reprogramaciones múltiples y su impacto en ocupación de agenda.
  2. Paso 2: Ejecuta python scripts/run_appointment_state_timeline.py para automatizar el flujo.
  3. Paso 3: Revisa reports/appointment_state_timeline_summary.html y reports/appointment_state_timeline_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 3.1

Descripción

Requisito

Verificar integridad referencial: cada id_paciente en citas_medicas debe existir en pacientes y registrar huérfanos para auditoría.

  1. Paso 1: Verificar integridad referencial: cada id_paciente en citas_medicas debe existir en pacientes y registrar huérfanos para auditoría.
  2. Paso 2: Ejecuta python scripts/run_referential_integrity.py para automatizar el flujo.
  3. Paso 3: Revisa reports/referential_integrity_summary.html y reports/referential_integrity_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 3.2

Descripción

Requisito

Asegurar que citas completadas o canceladas tengan fecha y médico válidos; marcar las que no lo cumplan para revisión.

  1. Paso 1: Asegurar que citas completadas o canceladas tengan fecha y médico válidos; marcar las que no lo cumplan para revisión.
  2. Paso 2: Ejecuta python scripts/run_appointment_review.py para automatizar el flujo.
  3. Paso 3: Revisa reports/appointment_review_summary.html y reports/appointment_review_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 3.3

Descripción

Requisito

Comparar la edad calculada desde fecha_nacimiento con la edad esperada por especialidad para identificar desviaciones.

  1. Paso 1: Comparar la edad calculada desde fecha_nacimiento con la edad esperada por especialidad para identificar desviaciones.
  2. Paso 2: Ejecuta python scripts/run_age_specialty_mismatch.py para automatizar el flujo.
  3. Paso 3: Revisa reports/age_specialty_mismatch_summary.html y reports/age_specialty_mismatch_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 3.4

Descripción

Requisito

Cruzar el número de citas por paciente con su localidad de residencia para monitorear accesibilidad y viajes largos.

  1. Paso 1: Cruzar el número de citas por paciente con su localidad de residencia para monitorear accesibilidad y viajes largos.
  2. Paso 2: Ejecuta python scripts/run_accessibility.py para automatizar el flujo.
  3. Paso 3: Revisa reports/accessibility_summary.html y reports/accessibility_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 4.1

Descripción

Requisito

Determinar KPIs de calidad (completitud, unicidad y validez) antes y después de la limpieza y guardarlos en un artefacto.

  1. Paso 1: Determinar KPIs de calidad (completitud, unicidad y validez) antes y después de la limpieza y guardarlos en un artefacto.
  2. Paso 2: Ejecuta python scripts/run_quality_kpis.py para automatizar el flujo.
  3. Paso 3: Revisa reports/quality_kpis_summary.html y reports/quality_kpis.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 4.2

Descripción

Requisito

Documentar reglas de negocio clave (estados válidos, rangos de edad y formatos) en un catálogo accesible.

  1. Paso 1: Documentar reglas de negocio clave (estados válidos, rangos de edad y formatos) en un catálogo accesible.
  2. Paso 2: Ejecuta python scripts/run_business_rules_catalog.py para automatizar el flujo.
  3. Paso 3: Revisa reports/business_rules_catalog.html y reports/business_rules_catalog.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 4.3

Descripción

Requisito

Registrar responsables por tabla/campo y anotar cada cambio masivo para respaldar auditorías.

  1. Paso 1: Registrar responsables por tabla/campo y anotar cada cambio masivo para respaldar auditorías.
  2. Paso 2: Ejecuta python scripts/run_cleaning_audit.py para automatizar el flujo.
  3. Paso 3: Revisa reports/cleaning_audit_summary.html y reports/cleaning_audit_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 4.4

Descripción

Requisito

Crear reportes ejecutivos de discrepancias y enviarlos a gobernanza antes de las cargas a producción.

  1. Paso 1: Crear reportes ejecutivos de discrepancias y enviarlos a gobernanza antes de las cargas a producción.
  2. Paso 2: Ejecuta python scripts/run_executive_discrepancy.py para automatizar el flujo.
  3. Paso 3: Revisa reports/executive_discrepancies_summary.html y reports/executive_discrepancies_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 5.1

Descripción

Requisito

Generar segmentos de pacientes por edad, sexo y frecuencia de citas para comunicaciones personalizadas.

  1. Paso 1: Generar segmentos de pacientes por edad, sexo y frecuencia de citas para comunicaciones personalizadas.
  2. Paso 2: Ejecuta python scripts/run_patient_segmentation.py para automatizar el flujo.
  3. Paso 3: Revisa reports/patient_segmentation_summary.html y reports/patient_segmentation_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 5.2

Descripción

Requisito

Entrenar modelos de probabilidad de cancelación considerando estados previos, especialidad y tiempos entre citas.

  1. Paso 1: Entrenar modelos de probabilidad de cancelación considerando estados previos, especialidad y tiempos entre citas.
  2. Paso 2: Ejecuta python scripts/run_cancellation_risk.py para automatizar el flujo.
  3. Paso 3: Revisa reports/cancellation_risk_summary.html y reports/cancellation_risk_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 5.3

Descripción

Requisito

Construir dashboards de ocupación por ciudad y especialidad comparando citas completadas, canceladas y reprogramadas.

  1. Paso 1: Construir dashboards de ocupación por ciudad y especialidad comparando citas completadas, canceladas y reprogramadas.
  2. Paso 2: Ejecuta python scripts/run_occupancy_dashboard.py para automatizar el flujo.
  3. Paso 3: Revisa reports/occupancy_dashboard_summary.html y reports/occupancy_dashboard_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 5.4

Descripción

Requisito

Simular escenarios de demanda futura aplicando crecimiento mensual promedio y visualizando brechas de capacidad.

  1. Paso 1: Simular escenarios de demanda futura aplicando crecimiento mensual promedio y visualizando brechas de capacidad.
  2. Paso 2: Ejecuta python scripts/run_demand_forecast.py para automatizar el flujo.
  3. Paso 3: Revisa reports/demand_forecast_summary.html y reports/demand_forecast_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 6.1

Descripción

Requisito

Diseñar un pipeline ETL que lea el JSON original, limpie los datos y exporte tablas limpias en CSV/Parquet.

  1. Paso 1: Diseñar un pipeline ETL que lea el JSON original, limpie los datos y exporte tablas limpias en CSV/Parquet.
  2. Paso 2: Ejecuta python scripts/run_etl_pipeline.py para automatizar el flujo.
  3. Paso 3: Revisa reports/etl/etl_summary.html y reports/etl/etl_metrics.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 6.2

Descripción

Requisito

Agregar pruebas automáticas que validen formatos, cardinalidad y referencialidad tras cada ejecución del pipeline.

  1. Paso 1: Agregar pruebas automáticas que validen formatos, cardinalidad y referencialidad tras cada ejecución del pipeline.
  2. Paso 2: Ejecuta python -m pytest tests/test_etl_validation.py para automatizar el flujo.
  3. 📦 Paso 3: Revisa reports/etl/etl_metrics.json para observar cómo responden las métricas cuando las pruebas corren.
  4. Paso 4: Valida con python -m pytest.
Ver script fuente Resumen no disponible

Caso 6.3

Descripción

Requisito

Registrar métricas de volumen y tiempo de ejecución en cada run para detectar regresiones del pipeline.

  1. Paso 1: Registrar métricas de volumen y tiempo de ejecución en cada run para detectar regresiones del pipeline.
  2. Paso 2: Ejecuta python scripts/run_etl_pipeline.py para automatizar el flujo.
  3. Paso 3: Revisa reports/etl/etl_summary.html y reports/etl/etl_metrics.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 6.4

Descripción

Requisito

Documentar y versionar cada esquema destino (por ejemplo fact_citas y dim_pacientes) para futuras migraciones.

  1. Paso 1: Documentar y versionar cada esquema destino (por ejemplo fact_citas y dim_pacientes) para futuras migraciones.
  2. ⚙️ Paso 2: Mantén data_warehouse_schema.md al día con columnas, llaves y versión.
  3. 📦 Paso 3: Convalida el catálogo y registra la versión que se deployará.
  4. Paso 4: Valida con python -m pytest.
Script no definido Resumen no disponible

Caso 7.1

Descripción

Requisito

Alertar a los médicos cuando un paciente registra múltiples citas en periodos cortos o cancelaciones recurrentes.

  1. Paso 1: Alertar a los médicos cuando un paciente registra múltiples citas en periodos cortos o cancelaciones recurrentes.
  2. Paso 2: Ejecuta python scripts/run_doctor_notifications.py para automatizar el flujo.
  3. Paso 3: Revisa reports/doctor_notifications_summary.html y reports/doctor_notifications_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 7.2

Descripción

Requisito

Monitorear el cumplimiento de agenda por médico/especialidad y notificar desviaciones en la utilización esperada.

  1. Paso 1: Monitorear el cumplimiento de agenda por médico/especialidad y notificar desviaciones en la utilización esperada.
  2. Paso 2: Ejecuta python scripts/run_doctor_utilization.py para automatizar el flujo.
  3. Paso 3: Revisa reports/doctor_utilization_summary.html y reports/doctor_utilization_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 7.3

Descripción

Requisito

Identificar pacientes con viajes entre ciudades (residencia vs cita) para planificar telemedicina o brigadas móviles.

  1. Paso 1: Identificar pacientes con viajes entre ciudades (residencia vs cita) para planificar telemedicina o brigadas móviles.
  2. Paso 2: Ejecuta python scripts/run_patient_travel.py para automatizar el flujo.
  3. Paso 3: Revisa reports/patient_travel_summary.html y reports/patient_travel_log.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.

Caso 7.4

Descripción

Requisito

Facilitar informes para gerencia con KPIs como tiempo promedio de espera y costo promedio por cita atendida.

  1. Paso 1: Facilitar informes para gerencia con KPIs como tiempo promedio de espera y costo promedio por cita atendida.
  2. Paso 2: Ejecuta python scripts/run_management_kpis.py para automatizar el flujo.
  3. Paso 3: Revisa reports/management_kpis_summary.html y reports/management_kpis.json para documentar hallazgos y métricas.
  4. Paso 4: Valida con python -m pytest.