ck-ntuh-net/mysite/ck_select.py
2024-12-11 16:15:42 +08:00

53 lines
1.2 KiB
Python

import os
from django.db.models import Q
from django.forms.models import model_to_dict
import django
import pandas as pd
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()
from ck.models import *
# patients = Patient.objects.filter(dead__isnull=True).order_by('timestamp')
L = []
for p in Patient.objects.order_by('id')[:10000]:
print(p.id)
t = p.treatment_set.order_by('date_started').first()
if t is None:
continue
# report = p.electronicmedicalreport_set.filter(report_code='XrayTextReport').order_by('-check_date').first()
r = p.electronicmedicalreport_set.filter(
Q(report_class__icontains='MRI') |
Q(report_class__icontains='M.R.I')
).order_by('-check_date').first()
if r is None:
continue
tdate = t.date_started
if tdate is None:
tdate = t.date_completed
if tdate is None:
continue
f = r.check_date-tdate
print(f, p, t.date_started, r.check_date, r.report_class)
d = {'followup': f}
d.update(model_to_dict(p))
d.update(model_to_dict(t))
d.update(model_to_dict(r))
L.append(d)
df=pd.DataFrame(L)
df.to_excel('ck_select.xlsx')