/// <summary> /// Initialize this worklist item from the specified procedure step and related entities. /// </summary> /// <param name="step"></param> /// <param name="timeField"></param> /// <remarks> /// This method is not efficient for generating a large number of worklist items from a large set of procedure steps, /// because it causes a large number of secondary references and collections to be initiliazed. /// Use <see cref="InitializeFromTuple"/> instead. /// </remarks> public virtual void InitializeFromProcedureStep(ProcedureStep step, WorklistItemField timeField) { var rp = step.Procedure; var o = step.Procedure.Order; var v = step.Procedure.Order.Visit; var p = step.Procedure.Order.Patient; var pp = step.Procedure.Order.Patient.GetProfile(rp.PerformingFacility); this.ProcedureStepRef = step.GetRef(); this.ProcedureRef = rp.GetRef(); this.OrderRef = o.GetRef(); this.PatientRef = p.GetRef(); this.PatientProfileRef = pp.GetRef(); this.Mrn = pp.Mrn; this.PatientName = pp.Name; this.AccessionNumber = o.AccessionNumber; this.OrderPriority = o.Priority; this.PatientClass = v.PatientClass; this.DiagnosticServiceName = o.DiagnosticService.Name; this.ProcedureName = rp.Type.Name; this.ProcedurePortable = rp.Portable; this.ProcedureLaterality = rp.Laterality; this.ProcedureStepName = step.Name; this.ActivityStatus = step.State; this.Time = GetTimeValue(step, timeField); }
public ProcedureStepSummary CreateProcedureStepSummary(ProcedureStep ps, IPersistenceContext context) { var assembler = new ProcedureAssembler(); var modalityAssembler = new ModalityAssembler(); return new ProcedureStepSummary( ps.GetRef(), ps.Name, EnumUtils.GetEnumValueInfo(ps.State, context), ps.StartTime, ps.EndTime, ps.Is<ModalityProcedureStep>() ? modalityAssembler.CreateModalitySummary(ps.As<ModalityProcedureStep>().Modality) : null, assembler.CreateProcedureSummary(ps.Procedure, context)); }
public ProcedureStepDetail CreateProcedureStepDetail(ProcedureStep ps, IPersistenceContext context) { var staffAssembler = new StaffAssembler(); var modalityAssembler = new ModalityAssembler(); return new ProcedureStepDetail( ps.GetRef(), ps.Name, ps.GetClass().Name, ps.Is<ModalityProcedureStep>() ? ps.As<ModalityProcedureStep>().Description : null, EnumUtils.GetEnumValueInfo(ps.State, context), ps.CreationTime, ps.Scheduling == null ? null : ps.Scheduling.StartTime, ps.StartTime, ps.EndTime, ps.AssignedStaff == null ? null : staffAssembler.CreateStaffSummary(ps.AssignedStaff, context), ps.PerformingStaff == null ? null : staffAssembler.CreateStaffSummary(ps.PerformingStaff, context), ps.Is<ModalityProcedureStep>() ? modalityAssembler.CreateModalitySummary(ps.As<ModalityProcedureStep>().Modality) : null); }
/// <summary> /// Initialize this worklist item from the specified procedure step and related entities. /// </summary> /// <param name="step"></param> /// <param name="timeField"></param> /// <remarks> /// This method is not efficient for generating a large number of worklist items from a large set of procedure steps, /// because it causes a large number of secondary references and collections to be initiliazed. /// Use <see cref="InitializeFromTuple"/> instead. /// </remarks> public virtual void InitializeFromProcedureStep(ProcedureStep step, WorklistItemField timeField) { var rp = step.Procedure; var o = step.Procedure.Order; var v = step.Procedure.Order.Visit; var p = step.Procedure.Order.Patient; var pp = step.Procedure.Order.Patient.GetProfile(rp.PerformingFacility); this.ProcedureStepRef = step.GetRef(); this.ProcedureRef = rp.GetRef(); this.OrderRef = o.GetRef(); this.PatientRef = p.GetRef(); this.PatientProfileRef = pp.GetRef(); this.Mrn = pp.Mrn; this.PatientName = pp.Name; this.AccessionNumber = o.AccessionNumber; this.OrderPriority = o.Priority; this.PatientClass = v.PatientClass; this.DiagnosticServiceName = o.DiagnosticService.Name; this.ProcedureName = rp.Type.Name; this.ProcedurePortable = rp.Portable; this.ProcedureLaterality = rp.Laterality; this.ProcedureStepName = step.Name; this.ActivityStatus = step.State; this.Time = GetTimeValue(step, timeField); }