Пример #1
0
        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;
        }
Пример #2
0
        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;
        }
Пример #3
0
		/// <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;
		}
Пример #4
0
		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;
		}
Пример #5
0
		private static void UpdateListItem(ReportListItem data, Report report, IPersistenceContext context)
		{
			data.ReportRef = report.GetRef();
			data.ReportStatus = EnumUtils.GetEnumValueInfo(report.Status, context);
		}
Пример #6
0
			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);
			}