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()