public void Test_Constructor() { Procedure procedure = new Procedure(); DocumentationProcedureStep procedureStep = new DocumentationProcedureStep(procedure); Assert.AreEqual(procedure, procedureStep.Procedure); }
public void Test_IsPreStep() { Procedure procedure = new Procedure(); DocumentationProcedureStep procedureStep = new DocumentationProcedureStep(procedure); Assert.IsFalse(procedureStep.IsPreStep); }
public void Test_CreateProcedureSteps() { var procedure = new Procedure(); var ps = new DocumentationProcedureStep(procedure); procedure.CreateProcedureSteps(); }
public void Test_Schedule_PreStep_And_SchedulingOffset() { var procedure = new Procedure(new ProcedureType(), "111", "1.111"); var protocolStep = new ProtocolAssignmentStep(new Protocol(procedure)); procedure.AddProcedureStep(protocolStep); var registrationStep = new RegistrationProcedureStep(procedure); var modalityStep = new ModalityProcedureStep(procedure, "description", new Modality()); var documentationStep = new DocumentationProcedureStep(procedure); var reportingStep = new ConcreteReportingProcedureStep(procedure); Assert.IsNull(protocolStep.Scheduling.StartTime); Assert.IsNull(registrationStep.Scheduling.StartTime); Assert.IsNull(modalityStep.Scheduling.StartTime); Assert.IsNull(documentationStep.Scheduling.StartTime); Assert.IsNull(reportingStep.Scheduling.StartTime); var now = DateTime.Now; procedure.Schedule(now); Assert.AreEqual(now.Truncate(DateTimePrecision.Minute), procedure.ScheduledStartTime); Assert.AreEqual(protocolStep.CreationTime, protocolStep.Scheduling.StartTime); Assert.AreEqual(procedure.ScheduledStartTime, registrationStep.Scheduling.StartTime); Assert.AreEqual(procedure.ScheduledStartTime, modalityStep.Scheduling.StartTime); Assert.IsNull(documentationStep.Scheduling.StartTime); Assert.IsNull(reportingStep.Scheduling.StartTime); }
public void Test_Name() { Procedure procedure = new Procedure(); DocumentationProcedureStep procedureStep = new DocumentationProcedureStep(procedure); Assert.AreEqual("Documentation", procedureStep.Name); }
public void Test_GetWorkflowHistory_OneLevel() { var procedure = new Procedure(); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new DocumentationProcedureStep(procedure); Assert.AreEqual(2, procedure.GetWorkflowHistory().Count); }
public void Test_GetLinkedProcedures() { Procedure procedure = new Procedure(); DocumentationProcedureStep procedureStep = new DocumentationProcedureStep(procedure); Assert.IsNotNull(procedureStep.GetLinkedProcedures()); Assert.IsEmpty(procedureStep.GetLinkedProcedures()); }
public void Test_DocumentationProcedureStep() { var procedure = new Procedure(); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new ConcreteReportingProcedureStep(procedure); Assert.AreEqual(2, procedure.ProcedureSteps.Count); Assert.AreEqual(ps1, procedure.DocumentationProcedureStep); }
public void Test_ReportingProcedureSteps() { var procedure = new Procedure(); var ps1 = new ConcreteReportingProcedureStep(procedure); var ps2 = new DocumentationProcedureStep(procedure); Assert.AreEqual(2, procedure.ProcedureSteps.Count); Assert.IsTrue(procedure.ReportingProcedureSteps.Contains(ps1)); Assert.AreEqual(1, procedure.ReportingProcedureSteps.Count); }
public void Test_ModailtyProcedureSteps() { var procedure = new Procedure(); var ps1 = new ModalityProcedureStep(procedure, "description", new Modality()); var ps2 = new DocumentationProcedureStep(procedure); Assert.AreEqual(2, procedure.ProcedureSteps.Count); Assert.IsTrue(procedure.ModalityProcedureSteps.Contains(ps1)); Assert.AreEqual(1, procedure.ModalityProcedureSteps.Count); }
public void Test_GetRelatedProcedureSteps() { Procedure p1 = new Procedure(); // attach 2 procedure steps to p1 DocumentationProcedureStep ps11 = new DocumentationProcedureStep(p1); DocumentationProcedureStep ps12 = new DocumentationProcedureStep(p1); // expect that each ps is only related to itself Assert.IsEmpty(ps11.GetRelatedProcedureSteps()); Assert.IsEmpty(ps12.GetRelatedProcedureSteps()); }
public void Test_AddProcedureStep_StepProcedureNotNull() { var p1 = new Procedure(); var ps = new DocumentationProcedureStep(); Assert.IsNull(ps.Procedure); p1.AddProcedureStep(ps); Assert.AreEqual(p1, ps.Procedure); var p2 = new Procedure(); p2.AddProcedureStep(ps); }
public void Test_AddProcedureStep() { var procedure = new Procedure(); var ps = new DocumentationProcedureStep(); Assert.IsFalse(procedure.ProcedureSteps.Contains(ps)); Assert.AreNotEqual(procedure, ps.Procedure); procedure.AddProcedureStep(ps); Assert.IsTrue(procedure.ProcedureSteps.Contains(ps)); Assert.AreEqual(procedure, ps.Procedure); }
public void Test_Reassign() { Procedure procedure = new Procedure(); DocumentationProcedureStep procedureStep = new DocumentationProcedureStep(procedure); procedureStep.Suspend(); Staff performer = new Staff(); ProcedureStep newStep = procedureStep.Reassign(performer); // Perform event // just need to test that it returns a new instance of this class // everything else has been covered in base class tests Assert.IsNotNull(newStep); Assert.AreNotEqual(this, newStep); Assert.IsInstanceOfType(typeof(DocumentationProcedureStep), newStep); Assert.AreEqual(procedure, newStep.Procedure); }
public void Test_GetProcedureStep() { var procedure = new Procedure(); Assert.IsNull(procedure.GetProcedureStep(delegate { return(true); })); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new ModalityProcedureStep(procedure, "new Modality", new Modality()); var ps3 = new ModalityProcedureStep(procedure, "new Modality", new Modality()); var ps4 = new ConcreteReportingProcedureStep(procedure); Assert.IsNull(procedure.GetProcedureStep(delegate { return(false); })); Assert.AreEqual(ps1, procedure.GetProcedureStep(ps => ps is DocumentationProcedureStep)); Assert.AreEqual(ps2, procedure.GetProcedureStep(ps => ps is ModalityProcedureStep)); Assert.AreEqual(ps4, procedure.GetProcedureStep(ps => ps is ReportingProcedureStep)); Assert.IsNull(procedure.GetProcedureStep(ps => ps is ProtocolProcedureStep)); }
public void Test_GetProcedureSteps() { var procedure = new Procedure(); Assert.IsEmpty(procedure.GetProcedureSteps(delegate { return(true); })); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new ModalityProcedureStep(procedure, "1", new Modality()); var ps3 = new ModalityProcedureStep(procedure, "2", new Modality()); var ps4 = new ProtocolAssignmentStep(); procedure.AddProcedureStep(ps4); Assert.AreEqual(4, procedure.GetProcedureSteps(delegate { return(true); }).Count); Assert.IsEmpty(procedure.GetProcedureSteps(delegate { return(false); })); Assert.AreEqual(1, procedure.GetProcedureSteps(ps => ps is DocumentationProcedureStep).Count); Assert.AreEqual(2, procedure.GetProcedureSteps(ps => ps is ModalityProcedureStep).Count); Assert.AreEqual(0, procedure.GetProcedureSteps(ps => ps is ReportingProcedureStep).Count); Assert.AreEqual(1, procedure.GetProcedureSteps(ps => ps is ProtocolProcedureStep).Count); }
public ModalityPerformedProcedureStep Execute(IList <ModalityProcedureStep> modalitySteps, DateTime?startTime, Staff technologist, IWorkflow workflow) { if (modalitySteps.Count == 0) { throw new WorkflowException("At least one procedure step is required."); } // validate that each mps being started is being performed on the same modality if (!CollectionUtils.TrueForAll(modalitySteps, step => step.Modality.Equals(modalitySteps[0].Modality))) { throw new WorkflowException("Procedure steps cannot be started together because they are not on the same modality."); } // create an mpps var mpps = new ModalityPerformedProcedureStep(technologist, startTime); workflow.AddEntity(mpps); foreach (var mps in modalitySteps) { mps.Start(technologist, startTime); mps.AddPerformedStep(mpps); //note: this feature was disabled by request (see #2138) - they want to enforce explicit check-in //AutoCheckIn(mps.Procedure, startTime); } // Create Documentation Step for each RP that has an MPS started by this service call foreach (var step in modalitySteps) { if (step.Procedure.DocumentationProcedureStep == null) { ProcedureStep docStep = new DocumentationProcedureStep(step.Procedure); docStep.Start(technologist, startTime); workflow.AddEntity(docStep); } } return(mpps); }
public void Test_GetProcedureSteps() { var procedure = new Procedure(); Assert.IsEmpty(procedure.GetProcedureSteps(delegate { return true; })); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new ModalityProcedureStep(procedure, "1", new Modality()); var ps3 = new ModalityProcedureStep(procedure, "2", new Modality()); var ps4 = new ProtocolAssignmentStep(); procedure.AddProcedureStep(ps4); Assert.AreEqual(4, procedure.GetProcedureSteps(delegate { return true; }).Count); Assert.IsEmpty(procedure.GetProcedureSteps(delegate { return false; })); Assert.AreEqual(1, procedure.GetProcedureSteps(ps => ps is DocumentationProcedureStep).Count); Assert.AreEqual(2, procedure.GetProcedureSteps(ps => ps is ModalityProcedureStep).Count); Assert.AreEqual(0, procedure.GetProcedureSteps(ps => ps is ReportingProcedureStep).Count); Assert.AreEqual(1, procedure.GetProcedureSteps(ps => ps is ProtocolProcedureStep).Count); }
public void Test_GetProcedureStep() { var procedure = new Procedure(); Assert.IsNull(procedure.GetProcedureStep(delegate { return true; })); var ps1 = new DocumentationProcedureStep(procedure); var ps2 = new ModalityProcedureStep(procedure, "new Modality", new Modality()); var ps3 = new ModalityProcedureStep(procedure, "new Modality", new Modality()); var ps4 = new ConcreteReportingProcedureStep(procedure); Assert.IsNull(procedure.GetProcedureStep(delegate { return false; })); Assert.AreEqual(ps1, procedure.GetProcedureStep(ps => ps is DocumentationProcedureStep)); Assert.AreEqual(ps2, procedure.GetProcedureStep(ps => ps is ModalityProcedureStep)); Assert.AreEqual(ps4, procedure.GetProcedureStep(ps => ps is ReportingProcedureStep)); Assert.IsNull(procedure.GetProcedureStep(ps => ps is ProtocolProcedureStep)); }
public ModalityPerformedProcedureStep Execute(IList<ModalityProcedureStep> modalitySteps, DateTime? startTime, Staff technologist, IWorkflow workflow) { if (modalitySteps.Count == 0) throw new WorkflowException("At least one procedure step is required."); // validate that each mps being started is being performed on the same modality if (!CollectionUtils.TrueForAll(modalitySteps, step => step.Modality.Equals(modalitySteps[0].Modality))) { throw new WorkflowException("Procedure steps cannot be started together because they are not on the same modality."); } // create an mpps var mpps = new ModalityPerformedProcedureStep(technologist, startTime); workflow.AddEntity(mpps); foreach (var mps in modalitySteps) { mps.Start(technologist, startTime); mps.AddPerformedStep(mpps); //note: this feature was disabled by request (see #2138) - they want to enforce explicit check-in //AutoCheckIn(mps.Procedure, startTime); } // Create Documentation Step for each RP that has an MPS started by this service call foreach (var step in modalitySteps) { if (step.Procedure.DocumentationProcedureStep == null) { ProcedureStep docStep = new DocumentationProcedureStep(step.Procedure); docStep.Start(technologist, startTime); workflow.AddEntity(docStep); } } return mpps; }