def summarize_by_icd9_code(klass, icd9_code): """ For a given icd9 code, return the number of admissions and patients diagnosed with this code """ num_patients = session.query(klass.subject_id).filter( klass.icd9_code == icd9_code).distinct().count() num_admissions = session.query(klass.hadm_id).filter( klass.icd9_code == icd9_code).distinct().count() return num_patients, num_admissions
def get_from_subject_ids(klass, subject_ids): if isinstance(subject_ids, int): subject_ids = [subject_ids] return session.query(klass).filter(klass.subject_id.in_(subject_ids)).all()
import pandas as pd from mimicry_db.base import session from mimicry_db.patient import Patient from mimicry_db.file_path_utils import matched_waveform_summary_filepath patient = Patient() assert hasattr(patient, 'has_matched_waveform') matched_records_df = pd.read_csv(matched_waveform_summary_filepath) patients = matched_records_df.Patient.values def process_patient_list(patient_list): removed_p = [s.strip("p") for s in patient_list] removed_leading_zeros = [s.lstrip("0") for s in removed_p] return [int(patient_id) for patient_id in removed_leading_zeros] subject_ids_with_waveform = process_patient_list(patients) all_subject_ids_query = session.query(Patient.subject_id).all() all_subject_ids = [] for result in all_subject_ids_query: all_subject_ids.append(result.subject_id) # Update each patient that has an associated waveform patients = Patient.get_from_subject_ids(subject_ids_with_waveform) for patient in patients: patient.has_matched_waveform = True session.commit()
def find_by_long_title(klass, pattern): return session.query(klass).filter(klass.long_title.like(pattern)).all()
def find_by_icd9(klass, icd9_code_pattern): return session.query(klass).filter(klass.icd9_code.like(icd9_code_pattern)).all()
def get_by_icd9(klass, icd9_code): return session.query(klass).filter(klass.icd9_code==icd9_code).first()
def find_diagnosed_diagnosis_descriptions(klass, limit=None): return session.query(klass).filter(klass.diagnoses != None).limit(limit).all()