Example #1
0
    def testCaseManager(self):
        pt1, cgs1, prov1 = generator.generate_patient_and_careteam()
        pt2, cgs2, prov2 = generator.generate_patient_and_careteam()
        actor_creator = generator.generate_actor(generator.get_or_create_user(), "provider")
        actor_editor1 = generator.generate_actor(generator.get_or_create_user(), "provider")
        actor_editor2 = generator.generate_actor(generator.get_or_create_user(), "provider")
        actor_closer = generator.generate_actor(generator.get_or_create_user(), "provider")

        total_cases = 12
        for i in range(total_cases):
            case = self._create_case(actor_creator, uuid.uuid1().hex)
            case.patient = pt1
            if i%2 == 0:
                case.last_edit_by = actor_editor1
            else:
                case.last_edit_by = actor_editor2
            case.description = "edited, foolio: " + str(uuid.uuid1().hex)
            activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0]
            case.save(activity=activity)

        self.assertEqual(total_cases, Case.objects.get_authored(actor_creator).count())
        self.assertEqual(0, Case.objects.get_authored(actor_creator, patient=pt2).count())

        self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor1).count())
        self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor2).count())

        self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor1, patient=pt1).count())
        self.assertEqual(0, Case.objects.get_edited(actor_editor1, patient=pt2).count())

        self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor2, patient=pt1).count())
        self.assertEqual(0, Case.objects.get_edited(actor_editor2, patient=pt2).count())
Example #2
0
    def testCreateMultipleSingleCareTeams(self):
        print "===============\nCreating multiple singular patient careteams"
        patients = []
        caregivers_list = {}
        providers_list = {}
        
        for num in range(0,MAX_MULTI_PATIENTS):
            pt, caregivers, providers = generator.generate_patient_and_careteam()
            patients.append(pt)
            caregivers_list[pt] = caregivers
            providers_list[pt] = providers
        print "finished generating disparate patient careteams"
        
        #step 1: verify that that for each patient generated, ONLY the providers can view it
        for patient in patients:        
            print "check disparate networks for patient %s" % (patient)
            cg_subset = []
            prov_subset = []

            for pt2 in patients:
                if pt2 == patient:
                    continue
                cg_subset.append(caregivers_list[pt2])
                prov_subset.append(providers_list[pt2])
            
            for cgs in cg_subset:
                for cg in cgs:
                    self.assertNotEqual(cg.patients[0], patient)
                    self.assertFalse(Actor.permissions.can_view(patient, cg.user))
                
            for provs in prov_subset:
                for prov in provs:
                    self.assertNotEqual(prov.patients[0], patient)
                    self.assertFalse(Actor.permissions.can_view(patient, prov.user))
Example #3
0
 def testCreateSingleCareTeamManually(self):
     print "===========================\nCreating singular patient with careteam manually"
     pt, caregivers, providers = generator.generate_patient_and_careteam()
     print "created careteam for one patient"
     for cg in caregivers:
         self.assertEqual(cg.patients[0], pt)
         self.assertTrue(Actor.permissions.can_view(pt, cg.user))
     for prov in providers:
         self.assertEqual(prov.patients[0], pt)
         self.assertTrue(Actor.permissions.can_view(pt, prov.user))
Example #4
0
    def testDisparateCases(self):
        """Create two patients and make disparate case sets and verify there's no spillage in the API calls.
        """
        pt1, cgs1, prov1 = generator.generate_patient_and_careteam()
        pt2, cgs2, prov2 = generator.generate_patient_and_careteam()

        num_case1 = random.randint(1,10)
        num_case2 = random.randint(1,10)
        total_cases = num_case1 + num_case2

        case1 = []
        case2 = []


        for i in range(num_case1):
            actor = prov1[0]
            case = self._create_case(actor, uuid.uuid1().hex)
            case.patient = pt1
            activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0]
            case.save(activity=activity)
            case1.append(case)

        for i in range(num_case2):
            actor = prov2[0]
            case = self._create_case(actor, uuid.uuid1().hex)
            case.patient = pt2
            activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0]
            case.save(activity=activity)
            case2.append(case)


        print "verifying case creation 1:"
        self.assertEqual(num_case1, Case.objects.all().filter(patient=pt1).count())
        self.assertEqual(num_case1, pt1.cases.count())


        print "verifying case creation 2"
        self.assertEqual(num_case2, Case.objects.all().filter(patient=pt2).count())
        self.assertEqual(num_case2, pt2.cases.count())