Beispiel #1
0
        public void FinalizeDocuments()
        {
            // Using STUDY-AutoTest-uqqHJ as template
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY-AutoTest-nGPTf", targetStudy);

            var ActionsNav         = new ActivitiesNav();
            var Workspace          = new IRBWorkspace();
            var irbSubmissionsPage = new IRBSubmissions();

            Store.LoginAsUser(Users.Comm4);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);

            var submitDesignatedReviewPopup = new SubmitDesignatedReview(Workspace.GetStudyID(), "Submit Designated Review");

            ActionsNav.LnkSubmitDesignatedReview.Click();
            submitDesignatedReviewPopup.SwitchTo();
            submitDesignatedReviewPopup.ChkConflictingInterest.Click();
            submitDesignatedReviewPopup.RdoBtnFirstDetermination.Click();
            submitDesignatedReviewPopup.RdoFirstReviewLevel.Click();
            submitDesignatedReviewPopup.ChkFirstExemptCategory.Click();
            submitDesignatedReviewPopup.TxtLastDayApproval.Text = "2/6/2030";
            submitDesignatedReviewPopup.RdoReadyToSubmitThisReviewYes.Click();
            submitDesignatedReviewPopup.BtnOk.Click();
            submitDesignatedReviewPopup.SwitchBackToParent();

            Wait.Until((d) => new CCElement(By.LinkText("Designated Review Submitted")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Designated Review Submitted")).Exists);
            Assert.IsTrue(Workspace.GetStudyState() == "Post-Review");
        }
Beispiel #2
0
        public void PutIntoReview()
        {
            // Take an existing study in the pre-review completed state, and clone it, put into non-committe review -- use one of the clones in this test
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY-AutoTest-SMVPz", targetStudy);

            var ActionsNav = new ActivitiesNav();
            var Inbox      = new Inbox();
            //var DesignatedReviewerPopup = new AssignDesignatedReviewer();
            var IRBSubmissionPage = new IRBSubmissions();
            var StudyWorkspace    = new IRBWorkspace();

            // Login as irbd
            Store.LoginAsUser(Users.Irbd);
            IRBSubmissionPage.OpenSubmissionByAllSubmissions(targetStudy);

            // Assign Designated Reviewer
            var DesignatedReviewerPopup = new AssignDesignatedReviewer(StudyWorkspace.GetStudyID(), "Assign Designated Reviewer");

            ActionsNav.LnkAssignDesignatedReviewer.Click();
            DesignatedReviewerPopup.SwitchTo();
            DesignatedReviewerPopup.CmbDesignatedReviewer.SelectByInnerText("Harry Smith (comm4)");
            DesignatedReviewerPopup.OkBtn.Click();
            DesignatedReviewerPopup.SwitchBackToParent();

            Wait.Until((d) => new CCElement(By.LinkText("Assigned to Designated Reviewer")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Assigned to Designated Reviewer")).Exists);
        }
Beispiel #3
0
        public void PrepareLetter()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY-AutoTest-hWfUU", targetStudy);

            var ActionsNav            = new ActivitiesNav();
            var Inbox                 = new Inbox();
            var finalizeDocumentsPage = new FinalizeDocuments();
            //var prepareLetterPage = new PrepareLetterPopup();
            //var sendLetterPage = new SendLetterPopup();
            var IRBSubmissionPage = new IRBSubmissions();
            var studyworkspace    = new IRBWorkspace();

            Store.LoginAsUser(Users.Irbd);

            ActionsNav.LnkSubmissions.Click();
            IRBSubmissionPage.AllSubmissionsTab.NavigateTo();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.LnkAdvanced.Click();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.SetCriteria("Name", targetStudy);
            IRBSubmissionPage.OpenSubmission(targetStudy);

            // finalize the documents
            ActionsNav.LnkFinalizeDocuments.Click();
            PopUpWindow.SwitchTo("Execute \"Finalize Documents\"", true);
            finalizeDocumentsPage.ChkApprove.Click();
            finalizeDocumentsPage.BtnOk.Click();
            // Assert that the "Finalized Documents" appear in History tab
            PopUpWindow.SwitchTo("AutoTest", true);
            Wait.Until((d) => new CCElement(By.LinkText("Finalized Documents")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Finalized Documents")).Exists);
            Assert.IsTrue(ActionsNav.ContainerIRBState.Text == "Post-Review");

            // Prepare Letter
            var prepareLetterPage = new PrepareLetterPopup(studyworkspace.GetStudyID(), "Prepare Letter");

            ActionsNav.LnkPrepareLetter.Click();
            PopUpWindow.SwitchTo("Execute \"Prepare Letter\"", true);
            prepareLetterPage.CmbDraftLetterTemplate.SelectByInnerText("Approval");
            prepareLetterPage.BtnGenerate.Click();
            // wait for draft letter link to appear
            Wait.Until(d => new CCElement(By.PartialLinkText("Correspondence")).Exists);
            prepareLetterPage.BtnOk.Click();
            PopUpWindow.SwitchTo("AutoTest", true);
            Wait.Until((d) => new CCElement(By.LinkText("Prepared Letter")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Prepared Letter")).Exists);
            Assert.IsTrue(ActionsNav.ContainerIRBState.Text == "Post-Review");

            // Send Letter
            var sendLetterPage = new SendLetterPopup(studyworkspace.GetStudyID(), "Send Letter");

            ActionsNav.LnkSendLetter.Click();
            PopUpWindow.SwitchTo("Execute \"Send Letter\"", true);
            sendLetterPage.BtnOk.Click();
            PopUpWindow.SwitchTo("AutoTest", true);
            Wait.Until((d) => new CCElement(By.LinkText("Letter Sent")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Letter Sent")).Exists);
            Assert.IsTrue(ActionsNav.ContainerIRBState.Text == "Approved");
        }
        public void ModificationOtherPartsOfStudyCreationThroughCommitteeReviewWithModificationRequiredToApproved()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            EntityClonerUtil.CloneEntity("STUDY00000024", targetStudy, true);

            var ActionsNav           = new ActivitiesNav();
            var submissionPage       = new IRBSubmissions();
            var ModificationsPage    = new InitialModCrSmartForm();
            var ModificationInfoPage = new ModificationInformation();
            var Workspace            = new IRBWorkspace();
            var StudySF = new InitialStudySmartForm();

            Store.LoginAsUser(Users.Pi);
            submissionPage.OpenSubmissionByAllSubmissions(targetStudy);


            // Log in as the PI and go to the IRB/Active tab and select an Approved study,
            // Create Modification/CR , select “Modification” and “Other parts of the study”.
            // Make changes to one or more views of the study.
            ActionsNav.ImgCreateModCr.Click();
            ModificationsPage.RdoModification.Click();
            ModificationsPage.ChooseModificationScope(Scope.OtherPartsOfTheStudy);

            //ModificationsPage.BtnContinue
            ModificationsPage.BtnContinue.Click();
            ModificationInfoPage.TxtSummary.Value = "This is a test summary for modification.";
            ModificationsPage.BtnContinue.Click();

            //StudySF.StudyTeamMembersPage.AddStudyTeamMember("Elmira (comm1)", false, false, AddStudyTeamMemberPopup.Roles.CoInvestigator, AddStudyTeamMemberPopup.Roles.ResearchAssistant);
            //StudySF.StudyTeamMembersPage.BtnContinue.Click();

            // save and exit smartform
            StudySF.LnkSave.Click();
            StudySF.LnkExit.Click();

            // As the PI, Submit the modification.
            Workspace.SubmitMod(Users.Pi.UserName, Users.Pi.Password);
            PopUpWindow.SwitchTo(targetStudy, true);

            // why does Exists not retry?
            Wait.Until(h => new CCElement(By.LinkText("Submitted")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Submitted")).Exists, "Attempted submitted mod does not exist for:  " + targetStudy);

            // Log in as the assigned IRB Coordinator and Submit Pre-Review.

            // Log in as assigned IRB Coordinator, Assign to Meeting.

            // As the assigned IRB Coordinator,  Submit Committee Review (modifications required to secure “approved” determination)

            // Log in as assigned IRB Coordinator and Finalize Documents.

            // As the assigned IRB Coordinator, Prepare Letter.

            // As the assigned IRB Coordinator, Send Letter.
        }
Beispiel #5
0
        public void DiscardModification()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000024", targetStudy, true);

            var ActionsNav           = new ActivitiesNav();
            var IRBSubmissionPage    = new IRBSubmissions();
            var ModificationsPage    = new InitialModCrSmartForm();
            var ModificationInfoPage = new ModificationInformation();
            var StudyTeamMembersPage = new StudyTeamMembers();
            var Workspace            = new IRBWorkspace();
            var InitialStudySF       = new InitialStudySmartForm();

            Store.LoginAsUser(Users.Pi);

            IRBSubmissionPage.AllSubmissionsTab.NavigateTo();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.LnkAdvanced.Click();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.SetCriteria("Name", targetStudy);
            IRBSubmissionPage.OpenSubmission(targetStudy);

            // Create modification
            ActionsNav.ImgCreateModCr.Click();
            ModificationsPage.RdoModification.Click();
            ModificationsPage.ChkAddStudyMemeber.Click();
            ModificationsPage.BtnContinue.Click();
            ModificationInfoPage.TxtSummary.Value = "This is a test summary for modification.";
            ModificationsPage.BtnContinue.Click();

            InitialStudySF.StudyTeamMembersPage.AddStudyTeamMember(false, false, "Czerch (comm2)", AddStudyTeamMemberPopup.Roles.CoInvestigator, AddStudyTeamMemberPopup.Roles.ResearchAssistant);
            InitialStudySF.StudyTeamMembersPage.BtnContinue.Click();

            // save and exit smartform
            InitialStudySF.LnkSave.Click();
            InitialStudySF.LnkExit.Click();

            // Discard the modification
            ActionsNav.LnkDiscard.Click();
            PopUpWindow.SwitchTo("Execute \"Discard\" on", true);
            new Button(By.Id("okBtn")).Click();

            PopUpWindow.SwitchTo("Modification", true);
            Wait.Until(h => new CCElement(By.LinkText("Discarded")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Discarded")).Exists, "Discarded link does not exist:  " + targetStudy);
        }
Beispiel #6
0
        public void CreateModification()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000024", targetStudy, true);

            var ActionsNav           = new ActivitiesNav();
            var IRBSubmissionPage    = new IRBSubmissions();
            var ModificationsPage    = new InitialModCrSmartForm();
            var ModificationInfoPage = new ModificationInformation();
            var StudyTeamMembersPage = new StudyTeamMembers();
            var Workspace            = new IRBWorkspace();
            var InitialStudySF       = new InitialStudySmartForm();

            Store.LoginAsUser(Users.Pi);

            IRBSubmissionPage.AllSubmissionsTab.NavigateTo();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.LnkAdvanced.Click();
            IRBSubmissionPage.AllSubmissionsTab.ProjectsComponent.SetCriteria("Name", targetStudy);
            IRBSubmissionPage.OpenSubmission(targetStudy);

            // Create modification
            ActionsNav.ImgCreateModCr.Click();
            ModificationsPage.RdoModification.Click();
            ModificationsPage.ChkAddStudyMemeber.Click();
            ModificationsPage.BtnContinue.Click();
            ModificationInfoPage.TxtSummary.Value = "This is a test summary for modification.";
            ModificationsPage.BtnContinue.Click();
            InitialStudySF.StudyTeamMembersPage.AddStudyTeamMember(false, false, "Elmira (comm1)", AddStudyTeamMemberPopup.Roles.CoInvestigator, AddStudyTeamMemberPopup.Roles.ResearchAssistant);
            InitialStudySF.StudyTeamMembersPage.BtnContinue.Click();

            // save and exit smartform
            InitialStudySF.LnkSave.Click();
            InitialStudySF.LnkExit.Click();

            Workspace.SubmitMod(Users.Pi.UserName, Users.Pi.Password);
            PopUpWindow.SwitchTo(targetStudy, true);

            // why does Exists not retry?
            Wait.Until(h => new CCElement(By.LinkText("Submitted")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Submitted")).Exists, "Attempted submitted mod does not exist for:  " + targetStudy);
        }
Beispiel #7
0
        public void A2_SubmitPreReview()
        {
            // take a study in the previous pre-review state, clone it.

            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000011", targetStudy);

            var ActionsNav        = new ActivitiesNav();
            var AssignCoordinator = new AssignCoordinator("STUDY-" + targetStudy, "Assign Coordinator");

            var IRBSubmissionsPage = new IRBSubmissions();
            var Workspace          = new IRBWorkspace();

            // Login as irbd
            Store.LoginAsUser(Users.Irbd);
            IRBSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);

            // Assign a coordinator
            Workspace.AssignCoordinator("Orlando Max (irbc)");

            // verify link IRB Coordinator Assigned
            Assert.IsTrue(new CCElement(By.LinkText("IRB Coordinator Assigned")).Exists, "Cannot find 'IRB Coordinator Assigned' activity in history");

            // Submit Pre-Review
            var PreReview = new SubmitPreReviewPopup(Workspace.GetStudyID(), "Submit Pre-Review");

            ActionsNav.LnkSubmitPreReview.Click();
            PreReview.SwitchTo();
            PreReview.RdoRiskLevelGreater.Click();
            PreReview.ChkBoxBioMedicalClinical.Click();
            PreReview.RadioBtnSubmitPreReviewYes.Click();
            PreReview.BtnOk.Click();
            PreReview.SwitchBackToParent();
            // verify link Pre-Review Submitted exists
            Wait.Until((d) => new CCElement(By.LinkText("Pre-Review Submitted")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Pre-Review Submitted")).Exists, "Cannot find 'Pre-Review Submitted' activity in history");
        }
Beispiel #8
0
        public void ContinuingReviewThroughCommitteeReviewToDeferred()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            EntityClonerUtil.CloneEntity("STUDY00000024", targetStudy, true);

            var CRSmartForm        = new InitialModCrSmartForm();
            var workspace          = new IRBWorkspace();
            var irbSubmissionsPage = new IRBSubmissions();
            var actionsNav         = new ActionsNav();

            //Log in as the PI to an Approved study and select Create Modification/CR. Select “Continuing Review”  and on the Continuing Review/Study Closure Information select the top 4 Research milestones.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);
            actionsNav.ImgCreateModCr.Click();

            // Fill in just required info
            CRSmartForm.ChooseModCRPurpose(SubmissionPurpose.ContinuingReview);
            CRSmartForm.BtnContinue.Click();

            CRSmartForm.SpecifyEnrollmentTotals("2", "2", "1");
            CRSmartForm.ChooseResearchMilestone(InitialModCrSmartForm.MileStones.StudyPermanentlyClosedToEnrollment, InitialModCrSmartForm.MileStones.AllSubjectCompletedStudyRelatedInterventions,
                                                InitialModCrSmartForm.MileStones.CollectionOfPrivateInfoComplete, InitialModCrSmartForm.MileStones.AnalysisOfPrivateInfoComplete);
            CRSmartForm.RdoFinancialInterestNo.Click();
            CRSmartForm.BtnContinue.Click();
            CRSmartForm.BtnFinish.Click();

            //As the PI, Submit the Continuing Review.
            workspace.Submit(Users.Pi.UserName, Users.Pi.Password);
            Assert.IsTrue(new Link(By.LinkText("Submitted")).Exists, "'Submitted' activity not found for:  " + targetStudy);
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review", "State expected not in 'Pre-Review'.  State currently: " + workspace.GetStudyState());
            var CRName = Web.PortalDriver.Title;

            //Log in as the assigned coordinator and Submit Pre-Review
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitPreReviewForCR();

            // Log in as an IRB coordinator and Assign Coordinator
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.AssignCoordinator("Orlando Max (irbc)");

            //As the assigned coordinator, Assign Meeting.
            workspace.AssignMeetingByFirstMeeting();
            Assert.IsTrue(workspace.GetStudyState() == "Committee Review");

            //As the assigned coordinator, Submit Committee Review (approved determination).
            // need determination, risk level
            workspace.SubmitCommitteeReview(SubmitCommitteeReviewPopup.Determinations.Deferred, "2", "0", "0", "0", "0", "", true);
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned IRB Coordinator, Finalize Documents.
            workspace.FinalizeDocuments();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Deferred", "State expected not in 'Deferred'.  State currently:  " + workspace.GetStudyState());
        }
Beispiel #9
0
        public void ContinuingReviewThroughNonCommitteeReviewThroughModsRequiredToApproved()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            EntityClonerUtil.CloneEntity("STUDY00000024", targetStudy, true);

            var CRSmartForm        = new InitialModCrSmartForm();
            var workspace          = new IRBWorkspace();
            var irbSubmissionsPage = new IRBSubmissions();
            var actionsNav         = new ActionsNav();

            //Log in as the PI to an Approved study and select Create Modification/CR. Select “Continuing Review”  and on the Continuing Review/Study Closure Information select the top 4 Research milestones.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);
            actionsNav.ImgCreateModCr.Click();

            // Fill in just required info
            CRSmartForm.ChooseModCRPurpose(SubmissionPurpose.ContinuingReview);
            CRSmartForm.BtnContinue.Click();

            CRSmartForm.SpecifyEnrollmentTotals("2", "2", "1");
            CRSmartForm.ChooseResearchMilestone(InitialModCrSmartForm.MileStones.StudyPermanentlyClosedToEnrollment, InitialModCrSmartForm.MileStones.AllSubjectCompletedStudyRelatedInterventions,
                                                InitialModCrSmartForm.MileStones.CollectionOfPrivateInfoComplete, InitialModCrSmartForm.MileStones.AnalysisOfPrivateInfoComplete);
            CRSmartForm.RdoFinancialInterestNo.Click();
            CRSmartForm.BtnContinue.Click();
            CRSmartForm.BtnFinish.Click();

            //As the PI, Submit the Continuing Review.
            workspace.Submit(Users.Pi.UserName, Users.Pi.Password);
            Assert.IsTrue(new Link(By.LinkText("Submitted")).Exists, "'Submitted' activity not found for:  " + targetStudy);
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review", "State expected not in 'Pre-Review'.  State currently: " + workspace.GetStudyState());
            var CRName = Web.PortalDriver.Title;

            // Log in as an IRB coordinator and Assign Coordinator
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.AssignCoordinator("Orlando Max (irbc)");

            //Log in as the assigned coordinator and Submit Pre-Review
            workspace.SubmitPreReviewForCR();
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review Completed", "State expected not in 'Pre-Review Completed'.  State currently:  " + workspace.GetStudyState());

            // As the assigned IRBC, Assign Designated Reviewer.
            workspace.AssignDesignatedReviewer("Harry Smith (comm4)");
            Assert.IsTrue(workspace.GetStudyState() == "Non-Committee Review", "State expected not in 'Non-Committee Review'.  State currently:  " + workspace.GetStudyState());

            // Log in as the Designated Reviewer and Submit Designated Review (human research not engaged determination).
            Store.LoginAsUser(Users.Comm4);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitDesignatedReviewForStudy(SubmitDesignatedReview.StudyDeterminations.ModificationsRequiredToSecureApproved, "These are comments for the modification!  :/ ", true);
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned IRB Coordinator, Finalize Documents.
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.FinalizeDocuments();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Modifications Required", "State expected not in 'Modifications Required'.  State currently:  " + workspace.GetStudyState());

            // Log in as the PI and Submit Response.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitResponse(Users.Pi.UserName, Users.Pi.Password, "This is my response!  :P");
            Assert.IsTrue(workspace.GetStudyState() == "Modifications Submitted", "State expected not in 'Modifications Submitted'.  State currently:  " + workspace.GetStudyState());

            // Log in as the assigned IRB Coordinator, Review Required Modifications (Yes to the question “Were the modifications completed as required?” “yes” response)
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.ReviewRequiredModifications();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Approved", "State expected not in 'Approved'.  State currently:  " + workspace.GetStudyState());
        }
        public void MODCRStudyTeamOnlyCreationThroughNonCommitteeReviewWithModificationsRequiredToApproved()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            EntityClonerUtil.CloneEntity("STUDY00000024", targetStudy, true);

            var CRSmartForm        = new InitialModCrSmartForm();
            var StudySF            = new InitialStudySmartForm();
            var workspace          = new IRBWorkspace();
            var irbSubmissionsPage = new IRBSubmissions();
            var actionsNav         = new ActionsNav();

            // Log in as the PI and go to the IRB/Active tab and select an Approved study, Create Modification/CR ,
            // select “Modification and Continuing” and “Other parts of the study”.  Make changes to one or more views of the study.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);
            actionsNav.ImgCreateModCr.Click();

            // Fill in just required info
            CRSmartForm.ChooseModCRPurpose(SubmissionPurpose.ModAndCR);
            CRSmartForm.ChooseModificationScope(Scope.StudyTeamMemberInformation);
            CRSmartForm.BtnContinue.Click();
            CRSmartForm.SpecifyEnrollmentTotals("2", "2", "1");
            CRSmartForm.ChooseResearchMilestone(InitialModCrSmartForm.MileStones.StudyPermanentlyClosedToEnrollment, InitialModCrSmartForm.MileStones.AllSubjectCompletedStudyRelatedInterventions,
                                                InitialModCrSmartForm.MileStones.CollectionOfPrivateInfoComplete, InitialModCrSmartForm.MileStones.AnalysisOfPrivateInfoComplete);
            CRSmartForm.RdoFinancialInterestNo.Click();
            CRSmartForm.BtnContinue.Click();

            // Modification Page
            CRSmartForm.TxtSummarizeModifications.Value = "These are the new modifications!  :/ :) :P";
            CRSmartForm.BtnContinue.Click();

            // Add a study team member, save, exit
            StudySF.StudyTeamMembersPage.AddStudyTeamMember(false, false, "", AddStudyTeamMemberPopup.Roles.CoInvestigator);
            StudySF.LnkSave.Click();
            StudySF.LnkExit.Click();

            //As the PI, Submit the Mod.
            workspace.Submit(Users.Pi.UserName, Users.Pi.Password);
            Assert.IsTrue(new Link(By.LinkText("Submitted")).Exists, "'Submitted' activity not found for:  " + targetStudy);
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review", "State expected not in 'Pre-Review'.  State currently: " + workspace.GetStudyState());
            var CRName = Web.PortalDriver.Title;

            //Log in as the assigned coordinator and Submit Pre-Review
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitPreReviewForCR();

            // As the assigned IRBC, Assign Designated Reviewer.
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.AssignDesignatedReviewer("Harry Smith (comm4)");
            Assert.IsTrue(workspace.GetStudyState() == "Non-Committee Review", "State expected not in 'Non-Committee Review'.  State currently:  " + workspace.GetStudyState());

            // Log in as the Designated Reviewer and Submit Designated Review approved.
            Store.LoginAsUser(Users.Comm4);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitDesignatedReviewForStudy(SubmitDesignatedReview.StudyDeterminations.ModificationsRequiredToSecureApproved, "These are modifications required:  :/", true);
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned IRB Coordinator, Finalize Documents.
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.FinalizeDocuments();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Modifications Required", "State expected not in 'Modifications Required'.  State currently:  " + workspace.GetStudyState());

            // Log in as the PI and Submit Response.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitResponse(Users.Pi.UserName, Users.Pi.Password, "This is my response!  :P");
            Assert.IsTrue(workspace.GetStudyState() == "Modifications Submitted", "State expected not in 'Modifications Submitted'.  State currently:  " + workspace.GetStudyState());

            // Log in as the assigned IRB Coordinator, Review Required Modifications (Yes to the question “Were the modifications completed as required?” “yes” response)
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.ReviewRequiredModifications();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Approved", "State expected not in 'Approved'.  State currently:  " + workspace.GetStudyState());
        }
        public void MODCRStudyTeamOnlyCreationThroughCommitteeReviewToDeferred()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            EntityClonerUtil.CloneEntity("STUDY00000024", targetStudy, true);

            var CRSmartForm        = new InitialModCrSmartForm();
            var StudySF            = new InitialStudySmartForm();
            var workspace          = new IRBWorkspace();
            var irbSubmissionsPage = new IRBSubmissions();
            var actionsNav         = new ActionsNav();

            // Log in as the PI and go to the IRB/Active tab and select an Approved study, Create Modification/CR ,
            // select “Modification and Continuing” and “Other parts of the study”.  Make changes to one or more views of the study.
            Store.LoginAsUser(Users.Pi);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(targetStudy);
            actionsNav.ImgCreateModCr.Click();

            // Fill in just required info
            CRSmartForm.ChooseModCRPurpose(SubmissionPurpose.ModAndCR);
            CRSmartForm.ChooseModificationScope(Scope.StudyTeamMemberInformation);
            CRSmartForm.BtnContinue.Click();
            CRSmartForm.SpecifyEnrollmentTotals("2", "2", "1");
            CRSmartForm.ChooseResearchMilestone(InitialModCrSmartForm.MileStones.StudyPermanentlyClosedToEnrollment, InitialModCrSmartForm.MileStones.AllSubjectCompletedStudyRelatedInterventions,
                                                InitialModCrSmartForm.MileStones.CollectionOfPrivateInfoComplete, InitialModCrSmartForm.MileStones.AnalysisOfPrivateInfoComplete);
            CRSmartForm.RdoFinancialInterestNo.Click();
            CRSmartForm.BtnContinue.Click();

            // Modification Page
            CRSmartForm.TxtSummarizeModifications.Value = "These are the new modifications!  :/ :) :P";
            CRSmartForm.BtnContinue.Click();

            // Add a study team member, save, exit
            //StudySF.StudyTeamMembersPage.AddStudyTeamMember("Czerch (comm2)", false, false, AddStudyTeamMemberPopup.Roles.CoInvestigator);
            // test to see if "" selects first value...
            StudySF.StudyTeamMembersPage.AddStudyTeamMember(false, false, "", AddStudyTeamMemberPopup.Roles.CoInvestigator);
            StudySF.LnkSave.Click();
            StudySF.LnkExit.Click();

            //As the PI, Submit.
            workspace.Submit(Users.Pi.UserName, Users.Pi.Password);
            Assert.IsTrue(new Link(By.LinkText("Submitted")).Exists, "'Submitted' activity not found for:  " + targetStudy);
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review", "State expected not in 'Pre-Review'.  State currently: " + workspace.GetStudyState());
            var CRName = Web.PortalDriver.Title;

            //Log in as the assigned coordinator and Submit Pre-Review
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.SubmitPreReviewForCR();
            Assert.IsTrue(workspace.GetStudyState() == "Pre-Review Completed", "State expected not in 'Pre-Review Completed'.  State currently:  " + workspace.GetStudyState());

            // Log in as an IRB coordinator and Assign Coordinator
            Store.LoginAsUser(Users.Irbc);
            irbSubmissionsPage.OpenSubmissionByAllSubmissions(CRName);
            workspace.AssignCoordinator("Orlando Max (irbc)");

            //As the assigned coordinator, Assign Meeting.
            workspace.AssignMeetingByFirstMeeting();
            Assert.IsTrue(workspace.GetStudyState() == "Committee Review");

            //As the assigned coordinator, Submit Committee Review (approved determination).
            // need determination, risk level
            workspace.SubmitCommitteeReview(SubmitCommitteeReviewPopup.Determinations.Deferred, "2", "0", "0", "0", "0", "", true);
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned IRB Coordinator, Finalize Documents.
            workspace.FinalizeDocuments();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            //As the assigned coordinator, Prepare Letter.
            workspace.PrepareLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Post-Review", "State expected not in 'Post-Review'.  State currently:  " + workspace.GetStudyState());

            // As the assigned coordinator, Send Letter.
            workspace.SendLetter();
            Assert.IsTrue(workspace.GetStudyState() == "Deferred", "State expected not in 'Deferred'.  State currently:  " + workspace.GetStudyState());
        }