public ReportDetail CreateReportDetail(Report report, bool includeCancelledParts, IPersistenceContext context) { ReportDetail detail = new ReportDetail(); detail.ReportRef = report.GetRef(); detail.ReportStatus = EnumUtils.GetEnumValueInfo(report.Status, context); ProcedureAssembler rpAssembler = new ProcedureAssembler(); detail.Procedures = CollectionUtils.Map<Procedure, ProcedureDetail>(report.Procedures, delegate(Procedure p) { return rpAssembler.CreateProcedureDetail( p, delegate(ProcedureStep ps) { return ps.Is<ReportingProcedureStep>(); }, // only Reporting steps are relevant false, // exclude protocols context); }); List<ReportPartDetail> parts = CollectionUtils.Map<ReportPart, ReportPartDetail>(report.Parts, delegate(ReportPart part) { return CreateReportPartDetail(part, context); }); detail.Parts = includeCancelledParts ? parts : CollectionUtils.Select(parts, delegate(ReportPartDetail rpp) { return rpp.Status.Code.Equals(ReportPartStatus.X.ToString()) == false; }); return detail; }
public ReportSummary CreateReportSummary(Procedure rp, Report report, IPersistenceContext context) { ReportSummary summary = new ReportSummary(); ProcedureAssembler rpAssembler = new ProcedureAssembler(); if (report != null) { summary.ReportRef = report.GetRef(); summary.ReportStatus = EnumUtils.GetEnumValueInfo(report.Status, context); // use all procedures attached to report summary.Procedures = CollectionUtils.Map<Procedure, ProcedureSummary>(report.Procedures, delegate(Procedure p) { return rpAssembler.CreateProcedureSummary(p, context); }); } else { // use supplied procedure summary.Procedures = CollectionUtils.Map<Procedure, ProcedureSummary>(new Procedure[] { rp }, delegate(Procedure p) { return rpAssembler.CreateProcedureSummary(p, context); }); } Order order = rp.Order; summary.VisitNumber = new VisitAssembler().CreateVisitNumberDetail(order.Visit.VisitNumber); summary.AccessionNumber = order.AccessionNumber; summary.DiagnosticServiceName = order.DiagnosticService.Name; return summary; }
/// <summary> /// Constructor used by <see cref="Report"/> class. /// </summary> /// <param name="owner"></param> /// <param name="index"></param> internal ReportPart(Report owner, int index) { _report = owner; _index = index; _extendedProperties = new Dictionary<string, string>(); _creationTime = Platform.Time; }
public ReportListItem CreateReportListItem(Report report, Procedure rp, IPersistenceContext context) { var data = new ReportListItem(); UpdateListItem(data, rp.Order, context); UpdateListItem(data, rp.Order.Visit, context); UpdateListItem(data, rp, context); UpdateListItem(data, report, context); return data; }
private static void UpdateListItem(ReportListItem data, Report report, IPersistenceContext context) { data.ReportRef = report.GetRef(); data.ReportStatus = EnumUtils.GetEnumValueInfo(report.Status, context); }
public void EnqueueEvents(Report report) { var orders = report.Procedures.Select(rp => rp.Order).Distinct(); var workItems = orders.Select(order => { var queueItem = new WorkQueueItem(WorkQueueItemType); queueItem.ExtendedProperties.Add("EventType", this.EventType); queueItem.ExtendedProperties.Add("OrderOID", order.OID.ToString()); queueItem.ExtendedProperties.Add("AccessionNumber", order.AccessionNumber); queueItem.ExtendedProperties.Add("ReportOID", report.OID.ToString()); return queueItem; }); EnqueueWorkItems(workItems); }