private ListReportsResponse ListReports(ListReportsRequest request) { IList <Report> reports = new List <Report>(); if (request.OrderRef != null) { // list only reports for this order var order = this.PersistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.Proxy); reports = this.PersistenceContext.GetBroker <IPatientHistoryBroker>().GetReportsForOrder(order); } else if (request.PatientRef != null) { var patient = this.PersistenceContext.Load <Patient>(request.PatientRef, EntityLoadFlags.Proxy); reports = this.PersistenceContext.GetBroker <IPatientHistoryBroker>().GetReportHistory(patient); } var assembler = new BrowsePatientDataAssembler(); var reportListItems = new List <ReportListItem>(); foreach (var report in reports) { foreach (var procedure in report.Procedures) { reportListItems.Add(assembler.CreateReportListItem(report, procedure, this.PersistenceContext)); } } return(new ListReportsResponse(reportListItems)); }
private ListOrdersResponse ListOrders(ListOrdersRequest request) { var assembler = new BrowsePatientDataAssembler(); var patient = this.PersistenceContext.Load <Patient>(request.PatientRef, EntityLoadFlags.Proxy); switch (request.QueryDetailLevel) { case PatientOrdersQueryDetailLevel.Order: return(new ListOrdersResponse( CollectionUtils.Map <Order, OrderListItem>( this.PersistenceContext.GetBroker <IPatientHistoryBroker>().GetOrderHistory(patient), order => assembler.CreateOrderListItem(order, this.PersistenceContext)))); case PatientOrdersQueryDetailLevel.Procedure: return(new ListOrdersResponse( CollectionUtils.Map <Procedure, OrderListItem>( this.PersistenceContext.GetBroker <IPatientHistoryBroker>().GetProcedureHistory(patient), rp => assembler.CreateOrderListItem(rp, this.PersistenceContext)))); } return(new ListOrdersResponse(new List <OrderListItem>())); }
private ListVisitsResponse ListVisits(ListVisitsRequest request) { // hide visits if "visit workflow" is disabled var workflowConfig = new WorkflowConfigurationReader(); if (!workflowConfig.EnableVisitWorkflow) { return(null); } var browsePatientDataAssembler = new BrowsePatientDataAssembler(); var patient = this.PersistenceContext.Load <Patient>(request.PatientRef, EntityLoadFlags.Proxy); var where = new VisitSearchCriteria(); where.Patient.EqualTo(patient); var visits = this.PersistenceContext.GetBroker <IVisitBroker>().Find(where); return(new ListVisitsResponse( CollectionUtils.Map <Visit, VisitListItem>( visits, v => browsePatientDataAssembler.CreateVisitListItem(v, this.PersistenceContext)))); }
private ListReportsResponse ListReports(ListReportsRequest request) { IList<Report> reports = new List<Report>(); if (request.OrderRef != null) { // list only reports for this order var order = this.PersistenceContext.Load<Order>(request.OrderRef, EntityLoadFlags.Proxy); reports = this.PersistenceContext.GetBroker<IPatientHistoryBroker>().GetReportsForOrder(order); } else if (request.PatientRef != null) { var patient = this.PersistenceContext.Load<Patient>(request.PatientRef, EntityLoadFlags.Proxy); reports = this.PersistenceContext.GetBroker<IPatientHistoryBroker>().GetReportHistory(patient); } var assembler = new BrowsePatientDataAssembler(); var reportListItems = new List<ReportListItem>(); foreach (var report in reports) { foreach (var procedure in report.Procedures) { reportListItems.Add(assembler.CreateReportListItem(report, procedure, this.PersistenceContext)); } } return new ListReportsResponse(reportListItems); }
private ListOrdersResponse ListOrders(ListOrdersRequest request) { var assembler = new BrowsePatientDataAssembler(); var patient = this.PersistenceContext.Load<Patient>(request.PatientRef, EntityLoadFlags.Proxy); switch (request.QueryDetailLevel) { case PatientOrdersQueryDetailLevel.Order: return new ListOrdersResponse( CollectionUtils.Map<Order, OrderListItem>( this.PersistenceContext.GetBroker<IPatientHistoryBroker>().GetOrderHistory(patient), order => assembler.CreateOrderListItem(order, this.PersistenceContext))); case PatientOrdersQueryDetailLevel.Procedure: return new ListOrdersResponse( CollectionUtils.Map<Procedure, OrderListItem>( this.PersistenceContext.GetBroker<IPatientHistoryBroker>().GetProcedureHistory(patient), rp => assembler.CreateOrderListItem(rp, this.PersistenceContext))); } return new ListOrdersResponse(new List<OrderListItem>()); }
private ListVisitsResponse ListVisits(ListVisitsRequest request) { // hide visits if "visit workflow" is disabled var workflowConfig = new WorkflowConfigurationReader(); if(!workflowConfig.EnableVisitWorkflow) return null; var browsePatientDataAssembler = new BrowsePatientDataAssembler(); var patient = this.PersistenceContext.Load<Patient>(request.PatientRef, EntityLoadFlags.Proxy); var where = new VisitSearchCriteria(); where.Patient.EqualTo(patient); var visits = this.PersistenceContext.GetBroker<IVisitBroker>().Find(where); return new ListVisitsResponse( CollectionUtils.Map<Visit, VisitListItem>( visits, v => browsePatientDataAssembler.CreateVisitListItem(v, this.PersistenceContext))); }