def create_case(user, all_users, case_no): newcase = Case() newcase.body = "Aliquam ultricies in. Nisl suspendisse ut curabitur nullam, libero magna, id velit quis vitae at. In massa gravida, luctus consequat quis integer, amet amet diam ornare nascetur libero ultrices, lorem urna et. Hac vestibulum, turpis sed sapien cumque. Morbi justo semper lorem gravida, interdum a ante mattis augue at semper, aliquam ridiculus, vulputate repellendus, mi sem in non. Vitae nunc egestas, consectetuer nibh est, ac vestibulum vitae augue ut mauris, ante tortor, velit gravida nisl pellentesque dolor." newcase.opened_by = user newcase.last_edit_by = user newcase.assigned_to = all_users[random.randint(0,len(all_users)-1)] newcase.assigned_date = datetime.utcnow() - timedelta(days=random.randint(0,720)) #newcase.category = Category.objects.all()[random.randint(0, Category.objects.all().count()-1)] newcase.category = Category.objects.all()[random.randint(0, 1)] #right now only support issue/question categories, so only the first two categories #newcase.status = Status.objects.all()[random.randint(0, Status.objects.all().count() -1)] #set the default opened case newcase.status = Status.objects.all().filter(category=newcase.category).filter(state_class=constants.CASE_STATE_OPEN)[0] newcase.priority = Priority.objects.all()[random.randint(0, Priority.objects.all().count() -1)] if newcase.category.slug == "Question": newcase.description = question_arr[random.randint(0,len(question_arr))-1] elif newcase.category.slug == "Issue": newcase.description = question_arr[random.randint(0,len(question_arr))-1] newcase.save() return newcase
def _testCreateCase(self): oldcasecount = Case.objects.all().count() oldevents = CaseEvent.objects.all().count() user = User.objects.get(username='******') newcase = Case() newcase.description = "this is a case made by the test case" newcase.opened_by = user newcase.assigned_date = datetime.utcnow() newcase.assigned_to = user newcase.category = Category.objects.all()[0] newcase.status = Status.objects.all()[0] newcase.priority = Priority.objects.all()[0] newcase.save() #is the thing created? self.assertEqual(Case.objects.all().count(), oldcasecount + 1) self.assertEqual(CaseEvent.objects.all().count(), oldevents + 1) #verify that the case count created has created a new caseevent events = CaseEvent.objects.filter(case=newcase) self.assertEqual(1,events.count()) #verify that said case count is a new case event of type "open" self.assertEqual("event-open", events[0].activity.event_class)
def inject_case_data(patient, event_arr): """ Pull data from the event_arr and assign it to a patient if they were new inbound triage cases """ print "Adding monitoring event to patient %s" % (patient) startdelta = timedelta(minutes=random_inject.randint(1,200)) #sometime in the past 3 main_info = event_arr[0:4] category_txt = main_info[0].strip() title = main_info[1].strip() body = main_info[2].strip() source = main_info[3].strip() if title.count("%s") == 1: title = title % patient if body.count("%s") == 1: body = body % patient\ newcase = Case() newcase.description = title newcase.body = body newcase.category = Category.objects.get(slug=category_txt) creator=None if source.lower() == 'provider': creator = careteam.primary_provider.user elif source.lower() == 'caregiver': creator = careteam.caregivers.all()[0] elif source.lower() == 'patient': creator = careteam.patient.user elif source.lower() == 'home monitor': creator = User.objects.get(username ='******') if creator == None: print "no creator, wtf" newcase.opened_by = creator newcase.opened_date = datetime.utcnow() - startdelta newcase.last_edit_by = creator newcase.last_edit_date = newcase.opened_date newcase.status = Status.objects.all().filter(category=newcase.category).filter(state_class=constants.CASE_STATE_OPEN)[0] newcase.assigned_to = careteam.primary_provider.user newcase.assigned_date = newcase.opened_date if source.lower() == 'home monitor': newcase.priority = Priority.objects.all()[0] else: newcase.priority = Priority.objects.all()[random_inject.randint(0, Priority.objects.all().count() -1)] newcase.save(unsafe=True) careteam.add_case(newcase)
def load_interaction(careteam, interaction_arr): """ works through the entire array to simulate the case lifecycle """ startdelta = timedelta(days=random.randint(1,7)) #sometime in the past week main_info = interaction_arr[0:4] category_txt = main_info[0].strip() title = main_info[1].strip() body = main_info[2].strip() source = main_info[3].strip() if title.count("%s") == 1: title = title % careteam.patient.user.first_name if body.count("%s") == 1: body = body % careteam.patient.user.first_name newcase = Case() newcase.description = title newcase.body = body newcase.category = Category.objects.get(slug=category_txt) creator=None if source.lower() == 'provider': creator = careteam.primary_provider.user elif source.lower() == 'caregiver': creator = careteam.caregivers.all()[0] elif source.lower() == 'patient': creator = careteam.patient.user elif source.lower() == 'home monitor': creator = User.objects.get(username ='******') if creator == None: print "no creator, wtf: " + str(interaction_arr) newcase.opened_by = creator newcase.opened_date = datetime.utcnow() - startdelta newcase.last_edit_by = creator newcase.last_edit_date = newcase.opened_date newcase.status = Status.objects.all().filter(category=newcase.category).filter(state_class=constants.CASE_STATE_OPEN)[0] newcase.assigned_to = careteam.providers.all()[random.randint(0,careteam.providers.all().count()-1)].user newcase.assigned_date = newcase.opened_date newcase.priority = Priority.objects.all()[random.randint(0, Priority.objects.all().count() -1)] newcase.save(unsafe=True) careteam.add_case(newcase) subarr = interaction_arr[4:] while len(subarr) >= 3: resp = subarr[0].strip() src = subarr[1].lower().strip() evt = subarr[2].lower().strip() if resp == '' and src == '' and evt == '': break responder=None if src.lower() == 'provider': responder = careteam.primary_provider.user elif src.lower() == 'caregiver': responder = careteam.caregivers.all()[0] elif src.lower() == 'patient': responder = careteam.patient.user if responder == None: print "wtf: " + str(subarr) evt = CaseEvent() evt.case = newcase if resp.count("%s") == 1: resp = resp % careteam.patient.user.first_name evt.notes = resp evt.activity = ActivityClass.objects.filter(category=newcase.category)\ .filter(event_class=constants.CASE_EVENT_COMMENT)[0] evt.created_by = responder startdelta = startdelta - timedelta(minutes=random.randint(4,480)) evt.created_date = datetime.utcnow() - startdelta evt.save(unsafe=True) if len(subarr[3:]) >= 3: subarr = subarr[3:] else: break