def test_create_adherence_cases(self): self.create_case_structure() case_accessor = CaseAccessors(self.domain) adherence_values = [ { "timestamp": "2009-03-05T01:00:01-05:00", "numberFromWhichPatientDialled": "+910123456789", "sharedNumber": False, "adherenceSource": "99DOTS", }, { "timestamp": "2016-03-05T02:00:01-05:00", "numberFromWhichPatientDialled": "+910123456787", "sharedNumber": True, "adherenceSource": "MERM", }, { "timestamp": "2016-03-05T19:00:01-05:00", # next day in india "numberFromWhichPatientDialled": "+910123456787", "sharedNumber": True, } ] create_adherence_cases(self.domain, 'person', adherence_values) potential_adherence_cases = case_accessor.get_reverse_indexed_cases( ['episode']) adherence_cases = [ case for case in potential_adherence_cases if case.type == 'adherence' ]
def test_invalid_adherence_value(self): self.create_case_structure() adherence_values = [ { "timestamp": "2009-03-05T01:00:01-05:00", "numberFromWhichPatientDialled": "+910123456789", "adherenceValue": 'foo', }, ] with self.assertRaises(NinetyNineDotsException): create_adherence_cases(self.domain, 'person', adherence_values)
def update_patient_adherence(request, domain): try: request_json = json.loads(request.body) except ValueError: return json_response({"error": "Malformed JSON"}, status_code=400) beneficiary_id = request_json.get("beneficiary_id") adherence_values = request_json.get("adherences") try: validate_beneficiary_id(beneficiary_id) validate_adherence_values(adherence_values) create_adherence_cases(domain, beneficiary_id, adherence_values) except AdherenceException as e: return json_response({"error": e.message}, status_code=400) return json_response({"success": "Patient adherences updated."})
def update_patient_adherence(request, domain): try: request_json = json.loads(request.body) except ValueError: return json_response({"error": "Malformed JSON"}, status_code=400) beneficiary_id = request_json.get('beneficiary_id') adherence_values = request_json.get('adherences') try: validate_beneficiary_id(beneficiary_id) validate_adherence_values(adherence_values) create_adherence_cases(domain, beneficiary_id, adherence_values) except AdherenceException as e: return json_response({"error": e.message}, status_code=400) return json_response({"success": "Patient adherences updated."})
def test_create_adherence_cases(self): self.create_case_structure() case_accessor = CaseAccessors(self.domain) adherence_values = [ { "timestamp": "2009-03-05T01:00:01-05:00", "numberFromWhichPatientDialled": "+910123456789", "sharedNumber": False, "adherenceSource": "99DOTS", }, { "timestamp": "2016-03-05T02:00:01-05:00", "numberFromWhichPatientDialled": "+910123456787", "sharedNumber": True, "adherenceSource": "MERM", }, { "timestamp": "2016-03-05T19:00:01-05:00", # next day in india "numberFromWhichPatientDialled": "+910123456787", "sharedNumber": True, } ] create_adherence_cases(self.domain, 'person', adherence_values) potential_adherence_cases = case_accessor.get_reverse_indexed_cases(['episode']) adherence_cases = [case for case in potential_adherence_cases if case.type == 'adherence'] self.assertEqual(len(adherence_cases), 3) self.assertItemsEqual( [case.dynamic_case_properties().get('adherence_date') for case in adherence_cases], ['2009-03-05', '2016-03-05', '2016-03-06'] ) self.assertItemsEqual( [case.dynamic_case_properties().get('adherence_source') for case in adherence_cases], ['99DOTS', 'MERM', '99DOTS'] ) for adherence_case in adherence_cases: self.assertEqual( adherence_case.dynamic_case_properties().get('adherence_confidence'), 'high' )