EHR Intelligence
EHR Data Representation
Temporal Event Sequences
import pandas as pd
import numpy as np
class EHRProcessor:
def __init__(self, code_system='ICD10'):
self.code_system = code_system
def temporal_features(self, encounters_df):
features = {}
for pid, group in encounters_df.groupby('patient_id'):
features[pid] = {
'visit_count': len(group),
'unique_codes': group['code'].nunique(),
'time_span': (group['date'].max() - group['date'].min()).days,
'avg_interval': group['date'].diff().mean().days
}
return pd.DataFrame(features).T
Predictive Modeling
Attention-Based Visit Prediction
class EHRTransformer(nn.Module):
def __init__(self, n_codes, d_model=256, n_heads=8, n_layers=4):
super().__init__()
self.code_embedding = nn.Embedding(n_codes + 1, d_model)
encoder_layer = nn.TransformerEncoderLayer(
d_model=d_model, nhead=n_heads, dim_feedforward=512)
self.transformer = nn.TransformerEncoder(encoder_layer, n_layers)
self.classifier = nn.Linear(d_model, 1)
def forward(self, visit_codes, visit_mask):
x = self.code_embedding(visit_codes).permute(1, 0, 2)
h = self.transformer(x, src_key_padding_mask=visit_mask)
return self.classifier(h.mean(dim=0))