Revision f8d1732b
Added by Mikaël Ates about 11 years ago
calebasse/statistics/statistics.py | ||
---|---|---|
33 | 33 |
intervenants sont indiqués, seuls ceux-ci sont pris en compte. |
34 | 34 |
""" |
35 | 35 |
}, |
36 |
'active_patients' : |
|
36 |
'active_patients_by_state_only' :
|
|
37 | 37 |
{ |
38 |
'display_name': 'Enfants en file active', |
|
38 |
'display_name': "Dossiers actifs selon l'état du dossier à une date donnée", |
|
39 |
'category': 'Patients', |
|
40 |
'comment': """Listes des patients dont le dossier était actif à une date donnée. |
|
41 |
Rappel des états actifs des dossiers : CMPP : diagnostic |
|
42 |
ou traitement, CAMSP : suivi, SESSAD: Traitement. |
|
43 |
La date par défaut est aujourd'hui. |
|
44 |
""" |
|
45 |
}, |
|
46 |
'active_patients_with_act' : |
|
47 |
{ |
|
48 |
'display_name': 'Dossiers actifs et inactifs avec un acte validé ou non sur une période', |
|
39 | 49 |
'category': 'Patients', |
40 | 50 |
'comment': """Listes des patients ayant eu au moins un acte proposé |
41 | 51 |
durant la période indiquée. Les patients sont scindés en quatre |
... | ... | |
625 | 635 |
data_tables.append(data) |
626 | 636 |
return [data_tables] |
627 | 637 |
|
628 |
def active_patients(statistic): |
|
638 |
def active_patients_by_state_only(statistic): |
|
639 |
if not statistic.in_service: |
|
640 |
return None |
|
641 |
if not statistic.in_start_date: |
|
642 |
statistic.in_start_date = datetime.today() |
|
643 |
active_states = None |
|
644 |
if statistic.in_service.name == 'CMPP': |
|
645 |
active_states = ('TRAITEMENT', 'DIAGNOSTIC') |
|
646 |
elif statistic.in_service.name == 'CAMSP': |
|
647 |
active_states = ('SUIVI', ) |
|
648 |
else: |
|
649 |
active_states = ('TRAITEMENT', ) |
|
650 |
patients = [(p.last_name, p.first_name, p.paper_id) \ |
|
651 |
for p in PatientRecord.objects.filter(service=statistic.in_service) \ |
|
652 |
if p.get_state_at_day( |
|
653 |
statistic.in_start_date).status.type in active_states] |
|
654 |
data_tables_set=[[[['En date du :', formats.date_format(statistic.in_start_date, "SHORT_DATE_FORMAT"), len(patients)]]]] |
|
655 |
data = [] |
|
656 |
data.append(['Nom', 'Prénom', 'N° Dossier']) |
|
657 |
p_list = [] |
|
658 |
for ln, fn, pid in patients: |
|
659 |
ln = ln or '' |
|
660 |
if len(ln) > 1: |
|
661 |
ln = ln[0].upper() + ln[1:].lower() |
|
662 |
fn = fn or '' |
|
663 |
if len(fn) > 1: |
|
664 |
fn = fn[0].upper() + fn[1:].lower() |
|
665 |
p_list.append((ln, fn, str(pid or ''))) |
|
666 |
data.append(sorted(p_list, |
|
667 |
key=lambda k: k[0]+k[1])) |
|
668 |
data_tables_set[0].append(data) |
|
669 |
return data_tables_set |
|
670 |
|
|
671 |
def active_patients_with_act(statistic): |
|
629 | 672 |
def process(patients_list, title): |
630 | 673 |
data_tables = [] |
631 | 674 |
data = [] |
Also available in: Unified diff
statistics: add statistic for open files at a given date (fixes #3996).