public void SubmitRNI() { string RNITitle = "AutoTestRNI-" + DataGen.String(5); var Inbox = new Inbox(); var RNISmartformPage = new RNISmartform(); var StudyWorkspacePage = new IRBWorkspace(); Store.LoginAsUser(Users.Pi); Inbox.ImgCreateNewRNI.Click(); // Fill in just required info RNISmartformPage.TxtRNIShortTitle.Value = RNITitle; RNISmartformPage.TxtDateAware.Value = "03/02/2014"; RNISmartformPage.TxtDescriptionOfProblem.Value = "This is a RNI test for " + RNITitle; RNISmartformPage.RdoIsIncreasedRiskNo.Click(); RNISmartformPage.RdoNeedRevisionNo.Click(); RNISmartformPage.RdoConsentRequiresRevisionkNo.Click(); RNISmartformPage.BtnContinue.Click(); RNISmartformPage.BtnFinish.Click(); // verify in history tab, pre-submission Wait.Until(h => new Link(By.LinkText("Reportable Information Opened")).Exists); Assert.IsTrue(new Link(By.LinkText("Reportable Information Opened")).Exists, "'Reportable Information Opened' activity not found for: " + RNITitle); // SubmitRNI StudyWorkspacePage.SubmitRNI(Users.Pi.UserName, Users.Pi.Password); Assert.IsTrue(new Link(By.LinkText("RNI Submitted")).Exists, "'RNI Submitted' activity not found for: " + RNITitle); Assert.IsTrue(StudyWorkspacePage.GetStudyState() == "Pre-Review", "State of RNI: Not in pre-review state"); }
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"); }
//[Test] //[Ignore("Duplicated by System Test InsignificantRniWithClarificationRequestedToAcknowledged")] public void SubmitRNIPreReview() { // clone a RNI in pre-review state string targetStudy = "RNI-" + DataGen.String(5); // select something new EntityClonerUtil.CloneEntity("RNI00000005", targetStudy); var Inbox = new Inbox(); var LeftActionNav = new ActivitiesNav(); var StudyWorkspacePage = new IRBWorkspace(); Store.LoginAsUser(Users.Irbd); Inbox.LnkAdvanced.Click(); Wait.Until(h => Inbox.QueryField1.Displayed); Inbox.QueryField1.SelectByInnerText("State"); Wait.Until(h => Inbox.QueryCriteria1.Enabled); Inbox.QueryCriteria1.Text = "Pre-Review"; Wait.Until(d => Inbox.BtnGo.Enabled); Inbox.BtnGo.Click(); Wait.Until(d => Inbox.BtnGo.Enabled); // change this Inbox.OpenStudy(targetStudy); string id = StudyWorkspacePage.GetStudyID(); var AssignCordPopup = new AssignCoordinator(id, "Assign Coordinator"); // Assign coordinator LeftActionNav.LnkAssignCoordinator.Click(); AssignCordPopup.SwitchTo(); AssignCordPopup.FirstUser.Click(); AssignCordPopup.SwitchBackToParent(); // Submit RNI-SubmitPreReviewPopup LeftActionNav.LnkSubmitRNIPreReview.Click(); var SubmitRNIPreReviewPage = new SubmitRNIPreReview(id, "Submit RNI Pre-Review"); SubmitRNIPreReviewPage.SwitchTo(); SubmitRNIPreReviewPage.SelectDetermination(IRBStore.SubmitRNIPreReview.Determinations.NoneOfTheAbove); SubmitRNIPreReviewPage.rdoSubmitPreviewYes.Click(); SubmitRNIPreReviewPage.BtnOk.Click(); SubmitRNIPreReviewPage.SwitchBackToParent(); Wait.Until(h => new Link(By.LinkText("RNI Pre-Review Submitted")).Exists); Assert.IsTrue(new Link(By.LinkText("RNI Pre-Review Submitted")).Exists, "'RNI Submitted Pre-Review' activity not found for: " + targetStudy); Assert.IsTrue(StudyWorkspacePage.GetStudyState() == "Acknowledged", "State of RNI: Not in acknowledged state"); }
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()); }
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()); }