/// <summary> /// Creates a new work item. /// </summary> /// <param name="p"></param> /// <param name="expirationTime"></param> /// <returns></returns> public static WorkQueueItem CreateWorkQueueItem(Procedure p, TimeSpan expirationTime) { WorkQueueItem item = new WorkQueueItem(WorkQueueItemType); item.ExpirationTime = Platform.Time.Add(expirationTime); item.ExtendedProperties.Add(ProcedureOIDKey, p.GetRef().Serialize()); return item; }
/// <summary> /// Creates procedure detail optionally including specified data. /// </summary> /// <param name="rp"></param> /// <param name="procedureStepFilter"></param> /// <param name="includeProtocol"></param> /// <param name="context"></param> /// <returns></returns> public ProcedureDetail CreateProcedureDetail( Procedure rp, Predicate<ProcedureStep> procedureStepFilter, bool includeProtocol, IPersistenceContext context) { var detail = new ProcedureDetail { ProcedureRef = rp.GetRef(), Status = EnumUtils.GetEnumValueInfo(rp.Status, context), Type = new ProcedureTypeAssembler().CreateSummary(rp.Type), ScheduledStartTime = rp.ScheduledStartTime, SchedulingCode = EnumUtils.GetEnumValueInfo(rp.SchedulingCode), StartTime = rp.StartTime, EndTime = rp.EndTime, CheckInTime = rp.ProcedureCheckIn.CheckInTime, CheckOutTime = rp.ProcedureCheckIn.CheckOutTime, PerformingFacility = new FacilityAssembler().CreateFacilitySummary(rp.PerformingFacility), PerformingDepartment = rp.PerformingDepartment == null ? null : new DepartmentAssembler().CreateSummary(rp.PerformingDepartment, context), Laterality = EnumUtils.GetEnumValueInfo(rp.Laterality, context), ImageAvailability = EnumUtils.GetEnumValueInfo(rp.ImageAvailability, context), Portable = rp.Portable, StudyInstanceUid = rp.StudyInstanceUID }; var includedSteps = CollectionUtils.Select(rp.GetWorkflowHistory(), procedureStepFilter); if (includedSteps.Count > 0) { var procedureStepAssembler = new ProcedureStepAssembler(); detail.ProcedureSteps = CollectionUtils.Map( includedSteps, (ProcedureStep ps) => procedureStepAssembler.CreateProcedureStepDetail(ps, context)); } // the Protocol may be null, if this procedure has not been protocolled if (includeProtocol && rp.ActiveProtocol != null) { var protocolAssembler = new ProtocolAssembler(); detail.Protocol = protocolAssembler.CreateProtocolDetail(rp.ActiveProtocol, context); } return detail; }
private static void UpdateListItem(OrderListItem data, Procedure rp, IPersistenceContext context) { var rptAssembler = new ProcedureTypeAssembler(); data.ProcedureRef = rp.GetRef(); data.ProcedureType = rptAssembler.CreateSummary(rp.Type); data.ProcedureScheduledStartTime = rp.ScheduledStartTime; data.ProcedureSchedulingCode = EnumUtils.GetEnumValueInfo(rp.SchedulingCode); data.ProcedureCheckInTime = rp.ProcedureCheckIn.CheckInTime; data.ProcedureCheckOutTime = rp.ProcedureCheckIn.CheckOutTime; data.ProcedureStatus = EnumUtils.GetEnumValueInfo(rp.Status, context); data.ProcedurePerformingFacility = new FacilityAssembler().CreateFacilitySummary(rp.PerformingFacility); data.ProcedurePortable = rp.Portable; data.ProcedureLaterality = EnumUtils.GetEnumValueInfo(rp.Laterality, context); }
public ProcedureRequisition CreateProcedureRequisition(Procedure procedure, IPersistenceContext context) { var modality = procedure.ModalityProcedureSteps.Select(mps => mps.Modality).FirstOrDefault(); var procedureTypeAssembler = new ProcedureTypeAssembler(); var facilityAssembler = new FacilityAssembler(); var departmentAssembler = new DepartmentAssembler(); var modalityAssembler = new ModalityAssembler(); // create requisition return new ProcedureRequisition( procedure.GetRef(), procedureTypeAssembler.CreateSummary(procedure.Type), procedure.Number, procedure.ScheduledStartTime, procedure.ScheduledDuration, modalityAssembler.CreateModalitySummary(modality), EnumUtils.GetEnumValueInfo(procedure.SchedulingCode), procedure.PerformingFacility == null ? null : facilityAssembler.CreateFacilitySummary(procedure.PerformingFacility), procedure.PerformingDepartment == null ? null : departmentAssembler.CreateSummary(procedure.PerformingDepartment, context), EnumUtils.GetEnumValueInfo(procedure.Laterality, context), procedure.Portable, procedure.IsPreCheckIn == false, EnumUtils.GetEnumValueInfo(procedure.Status, context), IsProcedureModifiable(procedure), procedure.Status == ProcedureStatus.CA || procedure.Status == ProcedureStatus.DC); }
public ProcedureSummary CreateProcedureSummary(Procedure rp, IPersistenceContext context) { var rptAssembler = new ProcedureTypeAssembler(); var summary = new ProcedureSummary { OrderRef = rp.Order.GetRef(), ProcedureRef = rp.GetRef(), ScheduledStartTime = rp.ScheduledStartTime, SchedulingCode = EnumUtils.GetEnumValueInfo(rp.SchedulingCode), PerformingFacility = new FacilityAssembler().CreateFacilitySummary(rp.PerformingFacility), Type = rptAssembler.CreateSummary(rp.Type), Laterality = EnumUtils.GetEnumValueInfo(rp.Laterality, context), Portable = rp.Portable }; return summary; }