Example #1
0
        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);
        }
Example #2
0
        public void Test_IsPerformed()
        {
            var procedure = new Procedure();
            var ps1       = new ModalityProcedureStep(procedure, "ps1", new Modality());
            var ps2       = new ModalityProcedureStep(procedure, "ps2", new Modality());
            var ps3       = new ModalityProcedureStep(procedure, "ps3", new Modality());

            Assert.IsFalse(procedure.IsPerformed);

            ps1.Start(new Staff());
            Assert.IsFalse(procedure.IsPerformed);

            ps1.Complete(Platform.Time);
            Assert.IsFalse(procedure.IsPerformed);

            ps2.Start(new Staff());
            ps3.Start(new Staff());
            Assert.IsFalse(procedure.IsPerformed);

            ps2.Discontinue();
            Assert.IsFalse(procedure.IsPerformed);

            ps3.Complete();
            Assert.IsTrue(procedure.IsPerformed);
        }
        public void Test_CompleteProcedureStepFromInProgress()
        {
            Order                 order = TestOrderFactory.CreateOrder(1, 1, true);
            Procedure             rp1   = CollectionUtils.FirstElement(order.Procedures);
            ModalityProcedureStep mps1  = rp1.ModalityProcedureSteps[0];

            CheckStatus(ActivityStatus.SC, mps1);

            mps1.Start(TestStaffFactory.CreateStaff(new StaffTypeEnum("STEC", null, null)));

            CheckStatus(ActivityStatus.IP, mps1);

            mps1.Complete();

            CheckStatus(ActivityStatus.CM, mps1);
            Assert.IsNotNull(mps1.StartTime);
            Assert.IsNotNull(mps1.EndTime);

            CheckStatus(ProcedureStatus.IP, rp1);
            Assert.IsNotNull(rp1.StartTime);
            Assert.IsNull(rp1.EndTime);

            CheckStatus(OrderStatus.IP, order);
            Assert.IsNotNull(order.StartTime);
            Assert.IsNull(order.EndTime);
        }
Example #4
0
        public void Test_PerformedTime()
        {
            var procedure = new Procedure();

            var ps1 = new ModalityProcedureStep(procedure, "ps1", new Modality());

            ps1.Start(new Staff());
            ps1.Complete(Platform.Time);

            var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());

            ps2.Start(new Staff());
            ps2.Complete(Platform.Time + TimeSpan.FromDays(1));

            var ps3 = new ModalityProcedureStep(procedure, "ps3", new Modality());

            ps3.Start(new Staff());
            ps3.Complete(Platform.Time + TimeSpan.FromDays(2));

            var ps4 = new ModalityProcedureStep(procedure, "ps4", new Modality());

            ps4.Start(new Staff());
            ps4.Complete(Platform.Time + TimeSpan.FromDays(3));

            Assert.AreEqual(ps4.EndTime, procedure.PerformedTime);
        }
Example #5
0
        public void Test_IsTerminatedTrue()
        {
            var procedure = new Procedure();

            procedure.Cancel();

            Assert.AreEqual(ProcedureStatus.CA, procedure.Status);
            Assert.IsTrue(procedure.IsTerminated);

            procedure = new Procedure();
            var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());

            procedureStep.Start(new Staff());
            procedure.Complete(Platform.Time);

            Assert.AreEqual(ProcedureStatus.CM, procedure.Status);
            Assert.IsTrue(procedure.IsTerminated);

            procedure     = new Procedure();
            procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
            procedureStep.Start(new Staff());
            procedure.Discontinue();

            Assert.AreEqual(ProcedureStatus.DC, procedure.Status);
            Assert.IsTrue(procedure.IsTerminated);
        }
Example #6
0
        public void Test_PerformedTime_NoneCompleted()
        {
            var procedure = new Procedure();
            var ps1       = new ModalityProcedureStep(procedure, "ps1", new Modality());
            var ps2       = new ModalityProcedureStep(procedure, "ps2", new Modality());

            Assert.IsNull(procedure.PerformedTime);
        }
Example #7
0
        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_Name()
        {
            Procedure procedure = new Procedure();
            string description = "description.";
            Modality modality = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.AreEqual("Modality", procedureStep.Name);
        }
        public void Test_IsPreStep()
        {
            Procedure procedure = new Procedure();
            string description = "description.";
            Modality modality = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.IsFalse(procedureStep.IsPreStep);
        }
Example #10
0
        public void Test_Name()
        {
            Procedure procedure   = new Procedure();
            string    description = "description.";
            Modality  modality    = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.AreEqual("Modality", procedureStep.Name);
        }
Example #11
0
        public void Test_IsPreStep()
        {
            Procedure procedure   = new Procedure();
            string    description = "description.";
            Modality  modality    = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.IsFalse(procedureStep.IsPreStep);
        }
Example #12
0
        public void Test_Schedule_InProgress()
        {
            var procedure = new Procedure();
            var ps        = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            ps.Start(new Staff());
            Assert.AreEqual(ProcedureStatus.IP, procedure.Status);

            procedure.Schedule(Platform.Time);
        }
Example #13
0
        public void Test_Cancel_InProgress()
        {
            var procedure = new Procedure();
            var ps        = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            ps.Start(new Staff());
            Assert.AreEqual(ProcedureStatus.IP, procedure.Status);

            procedure.Cancel();
        }
Example #14
0
        public void Test_GetLinkedProcedures()
        {
            Procedure procedure   = new Procedure();
            string    description = "description.";
            Modality  modality    = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.IsNotNull(procedureStep.GetLinkedProcedures());
            Assert.IsEmpty(procedureStep.GetLinkedProcedures());
        }
Example #15
0
        public void Test_GetLinkedProcedures()
        {
            Procedure procedure = new Procedure();
            string description = "description.";
            Modality modality = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.IsNotNull(procedureStep.GetLinkedProcedures());
            Assert.IsEmpty(procedureStep.GetLinkedProcedures());
        }
Example #16
0
        public void Test_Cancel_Completed()
        {
            var procedure = new Procedure();
            var ps        = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            ps.Start(new Staff());
            procedure.Complete(DateTime.Now);
            Assert.AreEqual(ProcedureStatus.CM, procedure.Status);

            procedure.Cancel();
        }
Example #17
0
        public void Test_Cancel_Discontinued()
        {
            var procedure = new Procedure();
            var ps        = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            ps.Start(new Staff());
            procedure.Discontinue();
            Assert.AreEqual(ProcedureStatus.DC, procedure.Status);

            procedure.Cancel();
        }
Example #18
0
        public void Test_IsPerformed_NonePerformed()
        {
            var procedure = new Procedure();
            var ps1       = new ModalityProcedureStep(procedure, "ps1", new Modality());

            ps1.Start(new Staff());

            var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());

            Assert.IsFalse(procedure.IsPerformed);
        }
Example #19
0
        public void Test_AddProcedureStep_StepNotScheduling()
        {
            var procedure     = new Procedure();
            var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());

            procedureStep.Start(new Staff());

            Assert.AreEqual(ActivityStatus.IP, procedureStep.State);

            procedure.AddProcedureStep(procedureStep);
        }
Example #20
0
        public void Test_Schedule_Complete()
        {
            var procedure = new Procedure();
            var ps        = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            ps.Start(new Staff());
            procedure.Complete(DateTime.Now);
            Assert.AreEqual(ProcedureStatus.CM, procedure.Status);

            procedure.Schedule(Platform.Time);
        }
Example #21
0
        private static void AddProcedureSteps(Procedure procedure, int numMps)
        {
            Modality m = new Modality("01", "CT", procedure.PerformingFacility, null, null);

            for (int s = 0; s < numMps; s++)
            {
                ModalityProcedureStep step = new ModalityProcedureStep();
                step.Description = "MPS 10" + s;
                step.Modality    = m;
                procedure.AddProcedureStep(step);
            }
        }
Example #22
0
        public void Test_Constructor()
        {
            Procedure procedure   = new Procedure();
            string    description = "description.";
            Modality  modality    = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.AreEqual(procedure, procedureStep.Procedure);
            Assert.AreEqual(description, procedureStep.Description);
            Assert.AreEqual(modality, procedureStep.Modality);
        }
Example #23
0
        public void Test_IsTerminatedFalse()
        {
            var procedure = new Procedure();

            Assert.IsFalse(procedure.IsTerminated);

            var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());

            procedureStep.Start(new Staff());

            Assert.IsFalse(procedure.IsTerminated);
        }
        public void Test_Constructor()
        {
            Procedure procedure = new Procedure();
            string description = "description.";
            Modality modality = new Modality();

            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);

            Assert.AreEqual(procedure, procedureStep.Procedure);
            Assert.AreEqual(description, procedureStep.Description);
            Assert.AreEqual(modality, procedureStep.Modality);
        }
        private void Refresh()
        {
            if (_worklistItem != null)
            {
                _scheduledProcStep = _workflowService.LoadWorklistItemPreview(_worklistItem);

                _patientProfile = CollectionUtils.SelectFirst <PatientProfile>(
                    _scheduledProcStep.RequestedProcedure.Order.Patient.Profiles,
                    delegate(PatientProfile pp) { return(_worklistItem.PatientProfile.RefersTo(pp)); });
            }

            NotifyAllPropertiesChanged();
        }
Example #26
0
        public void Test_CanExecute_InProgress()
        {
            Order order = new Order();
            CancelOrderOperation  op        = new CancelOrderOperation();
            Procedure             procedure = new Procedure();
            ModalityProcedureStep step      = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());

            order.AddProcedure(procedure);

            step.Start(new Staff());
            Assert.AreEqual(OrderStatus.IP, order.Status);

            Assert.IsFalse(op.CanExecute(order));
        }
Example #27
0
        public void Test_Execute_InProgress()
        {
            Order order = new Order();
            OrderCancelInfo info = new OrderCancelInfo();
            CancelOrderOperation op = new CancelOrderOperation();
            Procedure procedure = new Procedure();
            ModalityProcedureStep step = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());
            order.AddProcedure(procedure);

            step.Start(new Staff());
            Assert.AreEqual(OrderStatus.IP, order.Status);

            op.Execute(order, info);
        }
Example #28
0
        public void Test_GetRelatedProcedureSteps()
        {
            Procedure p1          = new Procedure();
            string    description = "description.";
            Modality  modality    = new Modality();

            // attach 2 procedure steps to p1
            ModalityProcedureStep ps11 = new ModalityProcedureStep(p1, description, modality);
            ModalityProcedureStep ps12 = new ModalityProcedureStep(p1, description, modality);

            // expect that each ps is only related to itself
            Assert.IsEmpty(ps11.GetRelatedProcedureSteps());
            Assert.IsEmpty(ps12.GetRelatedProcedureSteps());
        }
        public void Test_Execute()
        {
            Order                     order     = new Order();
            OrderCancelInfo           info      = new OrderCancelInfo();
            DiscontinueOrderOperation op        = new DiscontinueOrderOperation();
            Procedure                 procedure = new Procedure();
            ModalityProcedureStep     step      = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());

            order.AddProcedure(procedure);

            step.Start(new Staff());
            Assert.AreEqual(OrderStatus.IP, order.Status);

            op.Execute(order, info);
        }
Example #30
0
        public void Discontinue()
        {
            var procedure     = new Procedure();
            var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());

            procedureStep.Start(new Staff());

            Assert.AreEqual(ProcedureStatus.IP, procedure.Status);
            Assert.AreEqual(ActivityStatus.IP, procedureStep.State);

            procedure.Discontinue();

            Assert.AreEqual(ProcedureStatus.DC, procedure.Status);
            Assert.AreEqual(ActivityStatus.DC, procedureStep.State);
        }
        public void Test_Execute_Complete()
        {
            Order order = new Order();
            OrderCancelInfo info = new OrderCancelInfo();
            DiscontinueOrderOperation op = new DiscontinueOrderOperation();
            Procedure procedure = new Procedure();
            ModalityProcedureStep step = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());
            order.AddProcedure(procedure);

            step.Start(new Staff());
            procedure.Complete(DateTime.Now);
            order.UpdateStatus();
            Assert.AreEqual(OrderStatus.CM, order.Status);

            op.Execute(order, info);
        }
        public void Test_CanExecute_Complete()
        {
            Order order = new Order();
            DiscontinueOrderOperation op    = new DiscontinueOrderOperation();
            Procedure             procedure = new Procedure();
            ModalityProcedureStep step      = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());

            order.AddProcedure(procedure);

            step.Start(new Staff());
            procedure.Complete(DateTime.Now);
            order.UpdateStatus();
            Assert.AreEqual(OrderStatus.CM, order.Status);

            Assert.IsFalse(op.CanExecute(order));
        }
Example #33
0
        public void Test_Execute_Complete()
        {
            Order                 order     = new Order();
            OrderCancelInfo       info      = new OrderCancelInfo();
            CancelOrderOperation  op        = new CancelOrderOperation();
            Procedure             procedure = new Procedure();
            ModalityProcedureStep step      = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());

            order.AddProcedure(procedure);

            step.Start(new Staff());
            procedure.Complete(DateTime.Now);
            order.UpdateStatus();
            Assert.AreEqual(OrderStatus.CM, order.Status);

            op.Execute(order, info);
        }
Example #34
0
        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));
        }
Example #35
0
        public void Test_Complete()
        {
            Procedure  procedure  = new Procedure();
            Report     report     = new Report(procedure);
            ReportPart reportPart = new ReportPart(report, 0);

            // This modality procedure step is created such that when the procedure tries to update its status
            // the detection of no ModalityProcedureSteps makes any procedure trying to update its status set itself
            // to discontinued, which for this test, is undesirable, this situation will probably never happen
            // in practice.
            ModalityProcedureStep modalityStep = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            InterpretationStep previousStep = new InterpretationStep(procedure);

            previousStep.ReportPart = reportPart;
            PublicationStep procedureStep = new PublicationStep(previousStep);

            procedureStep.Start(new Staff());

            Assert.AreEqual(ActivityStatus.IP, procedureStep.State);
            Assert.AreEqual(0, procedureStep.ReportPart.Index);
            Assert.AreEqual(ReportPartStatus.D, procedureStep.ReportPart.Status);
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                              delegate(Procedure p)
            {
                return(p.Status == ProcedureStatus.IP);
            }));

            procedureStep.Complete();

            Assert.AreEqual(ActivityStatus.CM, procedureStep.State);
            Assert.AreEqual(ReportPartStatus.F, procedureStep.ReportPart.Status);
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                              delegate(Procedure p)
            {
                return(p.Status == ProcedureStatus.CM);
            }));
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                              delegate(Procedure p)
            {
                return(p.EndTime == procedureStep.EndTime);
            }));
        }
Example #36
0
        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);
        }
Example #37
0
        public void Test_Reassign()
        {
            Procedure procedure = new Procedure();
            string description = "description.";
            Modality modality = new Modality();
            ModalityProcedureStep procedureStep = new ModalityProcedureStep(procedure, description, modality);
            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(ModalityProcedureStep), newStep);
            Assert.AreEqual(procedure, newStep.Procedure);
            Assert.AreEqual(description, ((ModalityProcedureStep)newStep).Description);
            Assert.AreEqual(modality, ((ModalityProcedureStep)newStep).Modality);
        }
Example #38
0
		public void Test_IsPerformed()
		{
			var procedure = new Procedure();
			var ps1 = new ModalityProcedureStep(procedure, "ps1", new Modality());
			var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());
			var ps3 = new ModalityProcedureStep(procedure, "ps3", new Modality());

			Assert.IsFalse(procedure.IsPerformed);

			ps1.Start(new Staff());
			Assert.IsFalse(procedure.IsPerformed);

			ps1.Complete(Platform.Time);
			Assert.IsFalse(procedure.IsPerformed);

			ps2.Start(new Staff());
			ps3.Start(new Staff());
			Assert.IsFalse(procedure.IsPerformed);

			ps2.Discontinue();
			Assert.IsFalse(procedure.IsPerformed);

			ps3.Complete();
			Assert.IsTrue(procedure.IsPerformed);
		}
        public void Test_GetRelatedProcedureSteps()
        {
            Procedure p1 = new Procedure();
            string description = "description.";
            Modality modality = new Modality();

            // attach 2 procedure steps to p1
            ModalityProcedureStep ps11 = new ModalityProcedureStep(p1, description, modality);
            ModalityProcedureStep ps12 = new ModalityProcedureStep(p1, description, modality);

            // expect that each ps is only related to itself
            Assert.IsEmpty(ps11.GetRelatedProcedureSteps());
            Assert.IsEmpty(ps12.GetRelatedProcedureSteps());
        }
Example #40
0
		public void Test_Cancel_InProgress()
		{
			var procedure = new Procedure();
			var ps = new ModalityProcedureStep(procedure, "New modality.", new Modality());
			ps.Start(new Staff());
			Assert.AreEqual(ProcedureStatus.IP, procedure.Status);

			procedure.Cancel();
		}
        public void Test_CanExecute_InProgress()
        {
            Order order = new Order();
            DiscontinueOrderOperation op = new DiscontinueOrderOperation();
            Procedure procedure = new Procedure();
            ModalityProcedureStep step = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());
            order.AddProcedure(procedure);

            step.Start(new Staff());
            Assert.AreEqual(OrderStatus.IP, order.Status);

            Assert.IsTrue(op.CanExecute(order));
        }
Example #42
0
		public void Test_IsTerminatedTrue()
		{
			var procedure = new Procedure();
			procedure.Cancel();

			Assert.AreEqual(ProcedureStatus.CA, procedure.Status);
			Assert.IsTrue(procedure.IsTerminated);

			procedure = new Procedure();
			var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
			procedureStep.Start(new Staff());
			procedure.Complete(Platform.Time);

			Assert.AreEqual(ProcedureStatus.CM, procedure.Status);
			Assert.IsTrue(procedure.IsTerminated);

			procedure = new Procedure();
			procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
			procedureStep.Start(new Staff());
			procedure.Discontinue();

			Assert.AreEqual(ProcedureStatus.DC, procedure.Status);
			Assert.IsTrue(procedure.IsTerminated);
		}
Example #43
0
        public void Test_CanExecute_Discontinue()
        {
            Order order = new Order();
            CancelOrderOperation op = new CancelOrderOperation();
            Procedure procedure = new Procedure();
            ModalityProcedureStep step = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());
            order.AddProcedure(procedure);

            step.Start(new Staff());
            order.Discontinue(new OrderCancelInfo());
            Assert.AreEqual(OrderStatus.DC, order.Status);

            Assert.IsFalse(op.CanExecute(order));
        }
Example #44
0
        public void Test_Complete()
        {
            Procedure procedure = new Procedure();
            Report report = new Report(procedure);
            ReportPart reportPart = new ReportPart(report, 0);

            // This modality procedure step is created such that when the procedure tries to update its status
            // the detection of no ModalityProcedureSteps makes any procedure trying to update its status set itself
            // to discontinued, which for this test, is undesirable, this situation will probably never happen
            // in practice.
            ModalityProcedureStep modalityStep = new ModalityProcedureStep(procedure, "New modality.", new Modality());

            InterpretationStep previousStep = new InterpretationStep(procedure);
            previousStep.ReportPart = reportPart;
            PublicationStep procedureStep = new PublicationStep(previousStep);
            
            procedureStep.Start(new Staff());

            Assert.AreEqual(ActivityStatus.IP, procedureStep.State);
            Assert.AreEqual(0, procedureStep.ReportPart.Index);
            Assert.AreEqual(ReportPartStatus.D, procedureStep.ReportPart.Status);
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                delegate(Procedure p)
                {
                    return p.Status == ProcedureStatus.IP;
                }));

            procedureStep.Complete();

            Assert.AreEqual(ActivityStatus.CM, procedureStep.State);
            Assert.AreEqual(ReportPartStatus.F, procedureStep.ReportPart.Status);
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                delegate(Procedure p)
                {
                    return p.Status == ProcedureStatus.CM;
                }));
            Assert.IsTrue(procedureStep.AllProcedures.TrueForAll(
                delegate(Procedure p)
                {
                    return p.EndTime == procedureStep.EndTime;
                }));
        }
Example #45
0
		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);
		}
Example #46
0
		public void Test_Schedule_InProgress()
		{
			var procedure = new Procedure();
			var ps = new ModalityProcedureStep(procedure, "New modality.", new Modality());
			ps.Start(new Staff());
			Assert.AreEqual(ProcedureStatus.IP, procedure.Status);

			procedure.Schedule(Platform.Time);
		}
Example #47
0
		public void Execute(ModalityProcedureStep mps, DateTime? discontinueTime, IWorkflow workflow)
		{
			mps.Discontinue(discontinueTime);
			TryAutoCheckOut(mps.Procedure, discontinueTime);
		}
Example #48
0
		public void Test_Cancel_Completed()
		{
			var procedure = new Procedure();
			var ps = new ModalityProcedureStep(procedure, "New modality.", new Modality());
			ps.Start(new Staff());
			procedure.Complete(DateTime.Now);
			Assert.AreEqual(ProcedureStatus.CM, procedure.Status);

			procedure.Cancel();
		}
Example #49
0
		public void Discontinue()
		{
			var procedure = new Procedure();
			var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
			procedureStep.Start(new Staff());

			Assert.AreEqual(ProcedureStatus.IP, procedure.Status);
			Assert.AreEqual(ActivityStatus.IP, procedureStep.State);

			procedure.Discontinue();

			Assert.AreEqual(ProcedureStatus.DC, procedure.Status);
			Assert.AreEqual(ActivityStatus.DC, procedureStep.State);
		}
Example #50
0
		public void Test_PerformedTime_NoneCompleted()
		{
			var procedure = new Procedure();
			var ps1 = new ModalityProcedureStep(procedure, "ps1", new Modality());
			var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());

			Assert.IsNull(procedure.PerformedTime);
		}
Example #51
0
        private static void AddProcedureSteps(Procedure procedure, int numMps)
        {
            Modality m = new Modality("01", "CT", procedure.PerformingFacility, null, null);

            for (int s = 0; s < numMps; s++)
            {
                ModalityProcedureStep step = new ModalityProcedureStep();
                step.Description = "MPS 10" + s;
                step.Modality = m;
                procedure.AddProcedureStep(step);
            }
        }
Example #52
0
		public void Test_AddProcedureStep_StepNotScheduling()
		{
			var procedure = new Procedure();
			var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
			procedureStep.Start(new Staff());

			Assert.AreEqual(ActivityStatus.IP, procedureStep.State);

			procedure.AddProcedureStep(procedureStep);
		}
Example #53
0
		public void Test_PerformedTime()
		{
			var procedure = new Procedure();

			var ps1 = new ModalityProcedureStep(procedure, "ps1", new Modality());
			ps1.Start(new Staff());
			ps1.Complete(Platform.Time);

			var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());
			ps2.Start(new Staff());
			ps2.Complete(Platform.Time + TimeSpan.FromDays(1));

			var ps3 = new ModalityProcedureStep(procedure, "ps3", new Modality());
			ps3.Start(new Staff());
			ps3.Complete(Platform.Time + TimeSpan.FromDays(2));

			var ps4 = new ModalityProcedureStep(procedure, "ps4", new Modality());
			ps4.Start(new Staff());
			ps4.Complete(Platform.Time + TimeSpan.FromDays(3));

			Assert.AreEqual(ps4.EndTime, procedure.PerformedTime);
		}
Example #54
0
		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));
		}
Example #55
0
		public void Test_IsTerminatedFalse()
		{
			var procedure = new Procedure();

			Assert.IsFalse(procedure.IsTerminated);

			var procedureStep = new ModalityProcedureStep(procedure, "New Modality", new Modality());
			procedureStep.Start(new Staff());

			Assert.IsFalse(procedure.IsTerminated);
		}
Example #56
0
		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);
		}
Example #57
0
        public void Test_CanExecute_Complete()
        {
            Order order = new Order();
            CancelOrderOperation op = new CancelOrderOperation();
            Procedure procedure = new Procedure();
            ModalityProcedureStep step = new ModalityProcedureStep(procedure, "New modality.", new Healthcare.Modality());
            order.AddProcedure(procedure);

            step.Start(new Staff());
            procedure.Complete(DateTime.Now);
            order.UpdateStatus();
            Assert.AreEqual(OrderStatus.CM, order.Status);

            Assert.IsFalse(op.CanExecute(order));
        }
Example #58
0
		public void Test_IsPerformed_NonePerformed()
		{
			var procedure = new Procedure();
			var ps1 = new ModalityProcedureStep(procedure, "ps1", new Modality());
			ps1.Start(new Staff());

			var ps2 = new ModalityProcedureStep(procedure, "ps2", new Modality());

			Assert.IsFalse(procedure.IsPerformed);
		}
Example #59
0
		public void Test_Schedule_Complete()
		{
			var procedure = new Procedure();
			var ps = new ModalityProcedureStep(procedure, "New modality.", new Modality());
			ps.Start(new Staff());
			procedure.Complete(DateTime.Now);
			Assert.AreEqual(ProcedureStatus.CM, procedure.Status);

			procedure.Schedule(Platform.Time);
		}
Example #60
0
		public void Test_Cancel_Discontinued()
		{
			var procedure = new Procedure();
			var ps = new ModalityProcedureStep(procedure, "New modality.", new Modality());
			ps.Start(new Staff());
			procedure.Discontinue();
			Assert.AreEqual(ProcedureStatus.DC, procedure.Status);

			procedure.Cancel();
		}