Exemplo n.º 1
0
                patient.handle_died()
                patient.save()
    else:
        save_pat = False
        for case in patient.cases:
            if not case.closed:
                case.manual_close(Outcome.PATIENT_DIED, datetime.utcnow())
                save_pat = True
        if save_pat:
            patient.save()

def close_ltfu_cases(sender, patient_id, **kwargs):
    """
    Checks if any open cases in the patient are passed the LTFU date
    and if they are closes them with status lost to followup.
    """
    from bhoma.apps.patient.models import CPatient
    from bhoma.apps.case.bhomacaselogic.ltfu import close_as_lost
    patient = CPatient.get(patient_id)
    save_pat = False
    for case in patient.cases:
        today = datetime.utcnow().date()
        if not case.closed and case.ltfu_date and case.ltfu_date < today:
            close_as_lost(case)
            save_pat = True
    if save_pat:
        patient.save()
            
    
patient_updated.connect(update_patient_deceased_status)
patient_updated.connect(close_ltfu_cases)
Exemplo n.º 2
0
from bhoma.apps.patient.signals import patient_updated
import logging

def update_pregnancy_report_data(sender, patient_id, **kwargs):
    """
    Update pregnancies of a patient.
    """
    from bhoma.apps.reports.calc.pregnancy import PregnancyReportData
    from bhoma.apps.reports.models import PregnancyReportRecord
    from bhoma.apps.patient.models import CPatient
    
    patient = CPatient.get(patient_id)
    # manually remove old pregnancies, since all pregnancy data is dynamically generated
    for old_preg in PregnancyReportRecord.view("reports/pregnancies_for_patient", key=patient_id, include_docs=True).all():
        old_preg.delete() 
    for preg in patient.pregnancies:
        preg_report_data = PregnancyReportData(patient, preg)
        couch_pregnancy = preg_report_data.to_couch_object()
        couch_pregnancy.save()
    
patient_updated.connect(update_pregnancy_report_data)