Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions docs/api/tasks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ New to PyHealth tasks? Start here:
- **Tutorial**: `Introduction to pyhealth.tasks <https://colab.research.google.com/drive/1kKkkBVS_GclHoYTbnOtjyYnSee79hsyT?usp=sharing>`_ - Learn the basics of defining and using tasks
- **Code Examples**: Browse all examples online at https://github.com/sunlabuiuc/PyHealth/tree/master/examples
- **Pipeline Examples**: Check out our :doc:`../tutorials` page for complete end-to-end examples including:

- Mortality Prediction Pipeline
- Readmission Prediction Pipeline
- Readmission Prediction Pipeline
- Medical Coding Pipeline
- Chest X-ray Classification Pipeline

Expand All @@ -47,14 +47,14 @@ After you define a task:
task = MortalityPredictionMIMIC4()
# input_schema = {"conditions": "sequence", "procedures": "sequence"}
# output_schema = {"mortality": "binary"}

# 2. Apply task to dataset
sample_dataset = base_dataset.set_task(task)

# 3. Processors automatically transform samples:
# - "sequence" -> SequenceProcessor (converts codes to indices)
# - "binary" -> BinaryLabelProcessor (converts labels to tensors)

# 4. Get model-ready tensors
sample = sample_dataset[0]
# sample["conditions"] is now a tensor of token indices
Expand All @@ -74,7 +74,6 @@ Available Tasks
:maxdepth: 3

Base Task <tasks/pyhealth.tasks.BaseTask>
Readmission (30 Days, MIMIC-IV) <tasks/pyhealth.tasks.Readmission30DaysMIMIC4>
In-Hospital Mortality (MIMIC-IV) <tasks/pyhealth.tasks.InHospitalMortalityMIMIC4>
MIMIC-III ICD-9 Coding <tasks/pyhealth.tasks.MIMIC3ICD9Coding>
Cardiology Detection <tasks/pyhealth.tasks.cardiology_detect>
Expand Down
7 changes: 0 additions & 7 deletions docs/api/tasks/pyhealth.tasks.Readmission30DaysMIMIC4.rst

This file was deleted.

6 changes: 5 additions & 1 deletion docs/api/tasks/pyhealth.tasks.readmission_prediction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
:undoc-members:
:show-inheritance:

.. autofunction:: pyhealth.tasks.readmission_prediction.readmission_prediction_mimic4_fn
.. autoclass:: pyhealth.tasks.readmission_prediction.ReadmissionPredictionMIMIC4
:members:
:undoc-members:
:show-inheritance:

.. autofunction:: pyhealth.tasks.readmission_prediction.readmission_prediction_eicu_fn
.. autofunction:: pyhealth.tasks.readmission_prediction.readmission_prediction_eicu_fn2

Expand Down
44 changes: 44 additions & 0 deletions examples/readmission/readmission_mimic4_rnn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import tempfile

from pyhealth.datasets import MIMIC4Dataset
from pyhealth.datasets import split_by_patient, get_dataloader
from pyhealth.models import RNN
from pyhealth.tasks import ReadmissionPredictionMIMIC4
from pyhealth.trainer import Trainer

# Since PyHealth uses multiprocessing, it is best practice to use a main guard.
if __name__ == '__main__':
# Use tempfile to automate cleanup
cache_dir = tempfile.TemporaryDirectory()

base_dataset = MIMIC4Dataset(
ehr_root="https://physionet.org/files/mimic-iv-demo/2.2/",
ehr_tables=["diagnoses_icd", "procedures_icd", "prescriptions"],
cache_dir=cache_dir.name
)
base_dataset.stats()

sample_dataset = base_dataset.set_task(ReadmissionPredictionMIMIC4())

train_dataset, val_dataset, test_dataset = split_by_patient(
sample_dataset, [0.8, 0.1, 0.1]
)
train_dataloader = get_dataloader(train_dataset, batch_size=32, shuffle=True)
val_dataloader = get_dataloader(val_dataset, batch_size=32, shuffle=False)
test_dataloader = get_dataloader(test_dataset, batch_size=32, shuffle=False)

model = RNN(
dataset=sample_dataset,
)

trainer = Trainer(model=model)
trainer.train(
train_dataloader=train_dataloader,
val_dataloader=val_dataloader,
epochs=1,
monitor="roc_auc",
)

trainer.evaluate(test_dataloader)

sample_dataset.close()
3 changes: 1 addition & 2 deletions pyhealth/tasks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,11 @@
MortalityPredictionStageNetMIMIC4,
)
from .patient_linkage import patient_linkage_mimic3_fn
from .readmission_30days_mimic4 import Readmission30DaysMIMIC4
from .readmission_prediction import (
ReadmissionPredictionMIMIC3,
ReadmissionPredictionMIMIC4,
readmission_prediction_eicu_fn,
readmission_prediction_eicu_fn2,
readmission_prediction_mimic4_fn,
ReadmissionPredictionOMOP,
)
from .sleep_staging import (
Expand Down
113 changes: 0 additions & 113 deletions pyhealth/tasks/readmission_30days_mimic4.py

This file was deleted.

Loading