Data Sources visit drilldown returns an empty visitDurationByType for Achilles 1.7+ results (query still reads analysis 211)

Cerrado Apto para principiantes
#2,582 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Ya se ha fusionado un pull request relacionado.

  • #2583 de @DG47 — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
77/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java, postgresql, sql
Área
api, databases

Línea de trabajo

Lee src/main/resources/resources/cdmresults/sql/report/visit/drilldown/visitDurationByType.sql y src/main/resources/resources/cdmresults/sql/report/visit/drilldownsummary/visitDurationByType.sql; ambos filtran la distribución de la duración de la estancia usando analysis 211, mientras que el issue indica que Achilles 1.7+ la almacena bajo analysis 213. Revisa las pruebas o fixtures relacionadas con las consultas y luego verifica que ambos endpoints de visit devuelvan los campos de distribución para un esquema de resultados de Achilles 1.7+.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Expected behavior

GET /cdmresults/{sourceKey}/visit/{conceptId} (and the drilldown summary GET /cdmresults/{sourceKey}/visit) return the length of stay distribution for the visit concept in visitDurationByType, with minValue, p10Value, p25Value, medianValue, p75Value, p90Value and maxValue.

Actual behavior

visitDurationByType is always an empty array when the results schema was produced by Achilles 1.7.0 or later, even though achilles_results_dist contains the length of stay distribution. The Achilles cache warm-up (AchillesCacheTasklet includes visitDurationByType in the visit domain) caches the empty result.

Cause: Achilles 1.7.0 renumbered "Distribution of length of stay by visit_concept_id" from analysis 211 to analysis 213 (inst/csv/achilles/achilles_analysis_details.csv; in 1.6.3 the line is 211,1,0,,Distribution of length of stay by visit_concept_id,visit_concept_id, in 1.7.0 it is 213,1,,Distribution of length of stay by visit_concept_id,visit_concept_id and 211 became Number of visit records with end date < start date, a count written to achilles_results). Both

  • src/main/resources/resources/cdmresults/sql/report/visit/drilldown/visitDurationByType.sql
  • src/main/resources/resources/cdmresults/sql/report/visit/drilldownsummary/visitDurationByType.sql

still filter achilles_results_dist on analysis_id = 211, which no longer has any rows in that table.

Steps to reproduce behavior
  1. Run Achilles 1.7.x on a CDM that has visit_occurrence records (for example Eunomia) and point a WebAPI source's results daimon at the results schema.
  2. Check that the distribution exists: SELECT analysis_id, stratum_1, median_value FROM <results>.achilles_results_dist WHERE analysis_id IN (211, 213); returns rows for 213 only.
  3. Call GET /WebAPI/cdmresults/<sourceKey>/visit/9201 (Inpatient Visit, or any visit concept present in step 2).
  4. visitDurationByType is []; ageAtFirstOccurrence, prevalenceByMonth and prevalenceByGenderAgeYear are populated.

Environment: WebAPI master (3.0.1-SNAPSHOT) and 2.15.x; Achilles 1.7.0 through 1.7.2; reproduced with the embedded PostgreSQL test database, the query is dialect-independent.

Lenguaje dominante
Java
Estrellas
153
Forks
186
Merge medio
2 d 21 h
PR fusionados (30 d)
21

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OHDSI/WebAPI

Todos los issues de OHDSI/WebAPI

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.