Project

General

Profile

« Previous | Next » 

Revision fdb98b89

Added by Mikaël Ates about 11 years ago

statistics: new statistics with patients lists by state at a given date.

View differences:

calebasse/statistics/statistics.py
45 45
    },
46 46
    'active_patients_with_act' :
47 47
        {
48
        'display_name': 'Dossiers actifs et inactifs avec un acte validé ou non sur une période',
48
        'display_name': 'Listes des dossiers avec un acte validé, ou un acte '
49
            'proposé seulement, sur une période et triés par état du dossier '
50
            'en fin de période',
49 51
        'category': 'Patients',
50
        'comment': """Listes des patients ayant eu au moins un acte proposé
51
            durant la période indiquée. Les patients sont scindés en quatre
52
            tableaux.
53
            Les patients dont au moins un acte a été
54
            validé ET dont le dossier est dans un état "actif".
55
            Les patients dont au moins un acte a été
56
            validé ET dont le dossier N'est PAS dans un état "actif".
57
            Les patients sans aucun acte validé ET dont le dossier est dans
58
            un état "actif".
59
            Les patients sans aucun acte validé ET dont le dossier N'est PAS
60
            dans un état "actif".
61
            Rappel des états actifs des dossiers : CMPP : diagnostic
62
            ou traitement, CAMSP : suivi, SESSAD: Traitement.
52
        'comment': """Listes des dossiers avec un acte validé ou un acte
53
            proposé seulement sur une période et triés par état du dossier en
54
            fin de période.
63 55
            La date de début de la plage par
64 56
            défaut est le 1er janvier de l'année en cours. La date de fin de
65 57
            la plage par défaut est aujourd'hui.
......
714 706
        data_tables.append(data)
715 707
        data = []
716 708
        data.append(['Nom', 'Prénom', 'N° Dossier'])
717
        patients_values = patients_list.\
718
                values_list('last_name', 'first_name', 'paper_id')
719 709
        p_list = []
720
        for ln, fn, pid in patients_values:
710
        for p in patients_list:
711
            ln, fn, pid = p.last_name, p.first_name, p.paper_id
721 712
            ln = ln or ''
722 713
            if len(ln) > 1:
723 714
                ln = ln[0].upper() + ln[1:].lower()
......
769 760
        id__in=[patient[0] for patient in all_patients_ids
770 761
            if not patient in acts_valide_patients_ids])
771 762

  
772

  
773
    patients_1 = acts_valide_patients.filter(
774
        last_state__status__type__in=active_states)
775
    patients_2 = acts_valide_patients.exclude(
776
        last_state__status__type__in=active_states)
777
    patients_3 = acts_not_valide_patients.filter(
778
        last_state__status__type__in=active_states)
779
    patients_4 = acts_not_valide_patients.exclude(
780
        last_state__status__type__in=active_states)
781

  
782
    data_tables_set.append(process(patients_1, 'Patients avec un acte validé et dans un état actif'))
783
    data_tables_set.append(process(patients_2, 'Patients avec un acte validé et dans un état non actif'))
784
    data_tables_set.append(process(patients_3, 'Patients sans acte validé et dans un état actif'))
785
    data_tables_set.append(process(patients_4, 'Patients sans acte validé et dans un état non actif'))
763
    p_val = dict()
764
    for p in acts_valide_patients:
765
        p_val.setdefault(p.get_state_at_day(statistic.in_end_date).status, []).append(p)
766
    for k, v in p_val.items():
767
        data_tables_set.append(process(v, "Patients avec un acte validé et dans l'état '%s' en date du %s" % (k, formats.date_format(statistic.in_end_date, "SHORT_DATE_FORMAT"))))
768
    p_val = dict()
769
    for p in acts_not_valide_patients:
770
        p_val.setdefault(p.get_state_at_day(statistic.in_end_date).status, []).append(p)
771
    for k, v in p_val.items():
772
        data_tables_set.append(process(v, "Patients avec sans acte validé et dans l'état '%s' en date du %s" % (k, formats.date_format(statistic.in_end_date, "SHORT_DATE_FORMAT"))))
786 773

  
787 774
    return data_tables_set
788 775

  
......
1643 1630
    def get_file(self):
1644 1631
        self.get_data()
1645 1632
        return self.render_to_csv()
1646

  

Also available in: Unified diff