Ejemplo n.º 1
0
    def create_adherence_cases(self, data):

        factory = CaseFactory(domain=self.domain)
        cases = factory.create_or_update_cases([
            get_adherence_case_structure(case_id,
                                         self.episode_id,
                                         adherence_date,
                                         extra_update={
                                             "name": adherence_date,
                                             "adherence_value":
                                             adherence_value,
                                             "source": source,
                                             "closure_reason": closure_reason
                                         })
            for (case_id, adherence_date, adherence_value, source, _,
                 closure_reason, _) in data
        ])

        cases_by_id = {c.case_id: c for c in cases}
        for (case_id, _, _, _, should_close, _, modified_on) in data:
            if should_close:
                factory.close_case(case_id)
            if modified_on:
                cases_by_id[case_id].modified_on = modified_on
                cases_by_id[case_id].save()

        rebuild_indicators(self.data_store.datasource._id)
        self.data_store.adapter.refresh_table()