Internal transfers are counted as readmissions
Los mantenedores suelen responder en 3 días
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
The issue provides a reproducer using admissions.csv.gz and points to the prior exclusion clause removed in PR #815; start by tracing the readmission-label logic and reviewing PR #815 and the open PR #1275. Compare how admissions less than an hour apart are labeled with the intended treatment of internal transfers. Done means the behavior is addressed or its intended configuration is clarified, with tests covering the relevant case.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi, first of all thank you for your repo; it has been useful for my research and very easy to use.
I have found an issue wherein internal transfers are counted as readmissions rather than treated as part of the same visit; which I think is surprising and probably not what most people want to model.
Reproduce (needs only admissions.csv.gz)
import polars as pl
pl.Config.set_fmt_str_lengths(60) # print full admission_location strings
adm = (
pl.read_csv("data/mimiciv/3.1/hosp/admissions.csv.gz", try_parse_dates=True)
.sort("subject_id", "admittime")
.with_columns(
next_admit=pl.col("admittime").shift(-1).over("subject_id"),
next_loc=pl.col("admission_location").shift(-1).over("subject_id")
)
.filter(pl.col("next_admit").is_not_null())
)
gap = pl.col("next_admit") - pl.col("dischtime")
pos = adm.filter(gap < pl.duration(days=30)) # the task's label rule
split = pos.filter(gap < pl.duration(hours=1))
print("total 30-day readmissions:", len(pos)) # 110k
print("readmissions within 1hr: ", len(split)) # 10k (~9%)
# second admisison_location
print(split["next_loc"].value_counts(sort=True).head(5))
# ┌────────────────────────────────────────┬───────┐
# │ next_loc ┆ count │
# │ --- ┆ --- │
# │ str ┆ u32 │
# ╞════════════════════════════════════════╪═══════╡
# │ INTERNAL TRANSFER TO OR FROM PSYCH ┆ 5609 │
# │ PHYSICIAN REFERRAL ┆ 1844 │
# │ EMERGENCY ROOM ┆ 1451 │
# │ TRANSFER FROM SKILLED NURSING FACILITY ┆ 535 │
# │ WALK-IN/SELF REFERRAL ┆ 103 │
# └────────────────────────────────────────┴───────┘
Possibly related to https://patch-diff.githubusercontent.com/raw/sunlabuiuc/PyHealth/pull/815.diff
which removed a clause excluding admissions within 3hrs of a prev. admission.
- if time_diff_hour <= 3:
- continue
A possible fix could be to merge admissions occuring within some time period and adding that as a configuration option and to emit some warning suggesting user's configure that value. I would imagine waiting for a major version change to change the default behaviour would be a good idea.
Environment: PyHealth 2.0.2, MIMIC-IV 3.1.
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 803
- Merge medio
- 5 d 16 h
- PR fusionados (30 d)
- 58
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sunlabuiuc/PyHealth
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
sunlabuiuc/PyHealth#1346 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
sunlabuiuc/PyHealth#1297 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
sunlabuiuc/PyHealth#1295 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
sunlabuiuc/PyHealth#1294 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
PyHealth 2.0: several modules still target the 1.x dataset APIPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
sunlabuiuc/PyHealth#1201 · 3 comentarios ·
Los mantenedores suelen responder en 3 días
Todos los issues de sunlabuiuc/PyHealth
Issues similares
-
area/profiles comp/cli P3 type/feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
NousResearch/hermes-agent#146372 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
[oblt-aw][autodoc] Document obs-aw-automerge contract and fix automerge doc inconsistenciesPosiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
GeoSeries scale and skew tests fail with pytest 9.2.0Posiblemente ocupada @jiayuasu la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
admission-deferred priority: medium status: ready work-class: scoped
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
melodic-software/claude-code-plugins#10887 · 4 comentarios ·
Los mantenedores suelen responder en 1 día