/// <summary> /// Creates a new visit for the specified patient. /// </summary> /// <param name="patientRef">Patient for which the visit is created.</param> /// <param name="informationAuthority">Information authority to use for the visit number.</param> /// <param name="admitOffsetDays">A positive or negative number of days from today.</param> /// <param name="AdmissionType">Emergency or other types</param> /// <returns></returns> public static VisitSummary CreateVisit(PatientProfileSummary patientProfile, EnumValueInfo informationAuthority, int admitOffsetDays, EnumValueInfo AdmissionType) { InitReferenceDataCacheOnce(); // Generate an active visit with randomize properties var now = Platform.Time; const string activeAdmittedVisitStatus = "AA"; var visitDetail = new VisitDetail { Patient = patientProfile, VisitNumber = new CompositeIdentifierDetail(GenerateRandomIntegerString(10), informationAuthority), PatientClass = ChooseRandom(_visitEditorFormData.PatientClassChoices), PatientType = ChooseRandom(_visitEditorFormData.PatientTypeChoices), AdmissionType = AdmissionType ?? ChooseRandom(_visitEditorFormData.AdmissionTypeChoices), Status = CollectionUtils.SelectFirst(_visitEditorFormData.VisitStatusChoices, enumValue => enumValue.Code == activeAdmittedVisitStatus), AdmitTime = now + TimeSpan.FromDays(admitOffsetDays), Facility = ChooseRandom(_visitEditorFormData.FacilityChoices) }; VisitSummary visit = null; Platform.GetService( delegate(IVisitAdminService service) { var addVisitResponse = service.AddVisit(new AddVisitRequest(visitDetail)); visit = addVisitResponse.Visit; }); return(visit); }
public VisitSummary CreateVisitSummary(Visit visit, IPersistenceContext context) { var patientProfileAssembler = new PatientProfileAssembler(); var summary = new VisitSummary { VisitRef = visit.GetRef(), Patient = patientProfileAssembler.CreatePatientProfileSummary(visit.PatientProfile, context), VisitNumber = CreateVisitNumberDetail(visit.VisitNumber), AdmissionType = EnumUtils.GetEnumValueInfo(visit.AdmissionType), PatientClass = EnumUtils.GetEnumValueInfo(visit.PatientClass), PatientType = EnumUtils.GetEnumValueInfo(visit.PatientType), Status = EnumUtils.GetEnumValueInfo(visit.Status, context), AdmitTime = visit.AdmitTime, DischargeTime = visit.DischargeTime }; var facilityAssembler = new FacilityAssembler(); summary.Facility = visit.Facility == null ? null : facilityAssembler.CreateFacilitySummary(visit.Facility); var locationAssembler = new LocationAssembler(); summary.CurrentLocation = visit.CurrentLocation == null ? null : locationAssembler.CreateLocationSummary(visit.CurrentLocation); summary.CurrentRoom = visit.CurrentRoom; summary.CurrentBed = visit.CurrentBed; return summary; }
public VisitSummary CreateVisitSummary(Visit visit, IPersistenceContext context) { var patientProfileAssembler = new PatientProfileAssembler(); var summary = new VisitSummary { VisitRef = visit.GetRef(), Patient = patientProfileAssembler.CreatePatientProfileSummary(visit.PatientProfile, context), VisitNumber = CreateVisitNumberDetail(visit.VisitNumber), AdmissionType = EnumUtils.GetEnumValueInfo(visit.AdmissionType), PatientClass = EnumUtils.GetEnumValueInfo(visit.PatientClass), PatientType = EnumUtils.GetEnumValueInfo(visit.PatientType), Status = EnumUtils.GetEnumValueInfo(visit.Status, context), AdmitTime = visit.AdmitTime, DischargeTime = visit.DischargeTime }; var facilityAssembler = new FacilityAssembler(); summary.Facility = visit.Facility == null ? null : facilityAssembler.CreateFacilitySummary(visit.Facility); var locationAssembler = new LocationAssembler(); summary.CurrentLocation = visit.CurrentLocation == null ? null : locationAssembler.CreateLocationSummary(visit.CurrentLocation); summary.CurrentRoom = visit.CurrentRoom; summary.CurrentBed = visit.CurrentBed; return(summary); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddControllersWithViews(); services.AddScoped <IDoctorRepository, DoctorRepository>(); services.AddScoped <IVisitRepository, VisitRepository>(); services.AddScoped <VisitSummary>(x => VisitSummary.GetSummary(x)); services.AddHttpContextAccessor(); services.AddSession(); }
public int addOrUpdateReccomendations(string id1, int code1, string rec1) { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); Params.Add("@id", BLCtrl.sendString(id1, "")); Params.Add("@code", BLCtrl.sendInt(code1, 0)); Params.Add("@rec", BLCtrl.sendString(rec1, "")); int result = dm.addOrUpdateReccomendations(Params); return(result); }
public Summary getSummary(DateTime date1, string id1) { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); Summary s = new Summary(); Params.Add("@date", BLCtrl.sendDateTime(date1, new DateTime())); Params.Add("@id", BLCtrl.sendString(id1, "")); DataSet ds = dm.getSummary(Params); s.Mentioned = BLCtrl.getBool(ds.Tables[0].Rows[0], "Mentioned", false); s.FollowUp = BLCtrl.getInt(ds.Tables[0].Rows[0], "FollowUp", 0); return(s); }
public int UpdateSummary(DateTime date1, string id1, bool Mentioned1, int FollowUp1) { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); Params.Add("@date", BLCtrl.sendDateTime(date1, new DateTime())); Params.Add("@id", BLCtrl.sendString(id1, "")); Params.Add("@Mentioned", BLCtrl.sendBool(Mentioned1, true)); Params.Add("@FollowUp", BLCtrl.sendInt(FollowUp1, 1)); int result = dm.UpdateSummary(Params); return(result); }
private static VisitSummary GetActiveVisitForPatient(EntityRef patientRef, EnumValueInfo assigningAuthority) { VisitSummary visit = null; // choose from existing visits Platform.GetService( delegate(IOrderEntryService service) { var request = new ListVisitsForPatientRequest(patientRef); var visitResponse = service.ListVisitsForPatient(request); visit = RandomUtils.ChooseRandom(CollectionUtils.Select(visitResponse.Visits, summary => Equals(summary.VisitNumber.AssigningAuthority, assigningAuthority))); }); return(visit); }
public List <FollowsUp> getFollowUp() { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); DataSet ds = dm.getFollowUp(Params); List <FollowsUp> l = new List <FollowsUp>(); FollowsUp f; foreach (DataRow item in ds.Tables[0].Rows) { f = new FollowsUp(); f.Code = BLCtrl.getInt(item, "Code", 0); f.FollowUp = BLCtrl.getString(item, "FollowUp", ""); l.Add(f); } return(l); }
public List <DateTime> get_updating(string id1) { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); Params.Add("@id", id1); DataSet ds = dm.get_Updating(Params); List <DateTime> l = new List <DateTime>(); DateTime f; foreach (DataRow item in ds.Tables[0].Rows) { f = new DateTime(); f = item.Field <DateTime>("UpdateDate"); l.Add(f); } return(l); }
public override void Accept() { if (this.HasValidationErrors) { this.ShowValidation(true); return; } try { // give extension pages a chance to save data prior to commit _extensionPages.ForEach(delegate(IVisitEditorPage page) { page.Save(); }); Platform.GetService <IVisitAdminService>( delegate(IVisitAdminService service) { if (_isNew) { AddVisitResponse response = service.AddVisit(new AddVisitRequest(_visit)); _addedVisit = response.Visit; _patient = response.Visit.Patient; _visitRef = response.Visit.VisitRef; } else { UpdateVisitResponse response = service.UpdateVisit(new UpdateVisitRequest(_visitRef, _visit)); _addedVisit = response.Visit; _patient = response.Visit.Patient; _visitRef = response.Visit.VisitRef; } }); this.Exit(ApplicationComponentExitCode.Accepted); } catch (Exception e) { ExceptionHandler.Report(e, SR.ExceptionCannotAddUpdateVisit, this.Host.DesktopWindow, delegate { this.ExitCode = ApplicationComponentExitCode.Error; this.Host.Exit(); }); } }
public List <Reccomendations> getReccomendations(DateTime date1, string id1) { VisitSummary dm = new VisitSummary(); ListDictionary Params = new ListDictionary(); Reccomendations s; Params.Add("@date", BLCtrl.sendDateTime(date1, new DateTime())); Params.Add("@id", BLCtrl.sendString(id1, "")); DataSet ds = dm.getReccomendations(Params); List <Reccomendations> l = new List <Reccomendations>(); foreach (DataRow item in ds.Tables[0].Rows) { s = new Reccomendations(); s.UpdateCode = BLCtrl.getInt(item, "UpdateCode", 0); s.Code = BLCtrl.getInt(item, "Code", 0); s.Reccomendation = BLCtrl.getString(item, "Reccomendation", ""); l.Add(s); } return(l); }
public UpdateVisitResponse(VisitSummary addedVisit) { this.Visit = addedVisit; }
// GET: VisitSummary public ActionResult Index(int?id) { VisitSummary myModel = new VisitSummary(); int intVisitId = 0; int intPetId = 0; Session["isSummary"] = null; if (!id.HasValue) { intVisitId = (int)Session["intVisitId"]; intPetId = (int)Session["intPetID"]; } else { Session["isSummary"] = true; intVisitId = (int)id; intPetId = db.TVisits.Where(x => x.intVisitID == intVisitId).Select(z => z.intPetID).FirstOrDefault(); } //General Information var informationPacket = (from o in db.TOwners join p in db.TPets on o.intOwnerID equals p.intOwnerID join s in db.TStates on o.intStateID equals s.intStateID join v in db.TVisits on p.intPetID equals v.intPetID where p.intPetID == intPetId where v.intVisitID == intVisitId select new { ownerName = o.strFirstName + " " + o.strLastName, address = o.strAddress + ", " + o.strCity + ", " + s.strStateName + " " + o.strZip, phoneNumber = o.strPhoneNumber, petName = p.strPetName, petNumber = p.strPetNumber, clientNumber = o.intOwnerID, dateOfVisit = v.dtmDateOfVist }).FirstOrDefault(); var doctor = (from e in db.TEmployees join ve in db.TVisitEmployees on e.intEmployeeID equals ve.intEmployeeID join j in db.TJobTitles on e.intJobTitleID equals j.intJobTitleID where ve.intVisitID == intVisitId where j.strJobTitleDesc == "Doctor" select new { doctorName = "Dr. " + e.strFirstName + " " + e.strLastName }).FirstOrDefault(); //Save to model myModel.strOwnerName = informationPacket.ownerName; myModel.strAddress = informationPacket.address; myModel.strPhoneNumber = informationPacket.phoneNumber; myModel.intOwnerNumber = informationPacket.clientNumber; myModel.strPetName = informationPacket.petName; myModel.strPetNumber = informationPacket.petNumber; myModel.dtmOfVisit = informationPacket.dateOfVisit; myModel.strDoctor = doctor.doctorName; myModel.intPetID = intPetId; myModel.PetVisitServices = db.TVisitServices.Where(x => x.intVisitID == intVisitId).ToList(); myModel.PetVisitMedications = db.TVisitMedications.Where(x => x.intVisitID == intVisitId).ToList(); ViewBag.Name = informationPacket.petName; decimal visitServicesSum = db.TVisitServices .Where(x => x.intVisitID == intVisitId) .Select(z => z.TService.dblPrice) .DefaultIfEmpty() .Sum(); decimal visitMedicationsSum = db.TVisitMedications .Where(x => x.intVisitID == intVisitId) .Select(z => z.TMedication.dblPrice * z.intQuantity) .DefaultIfEmpty() .Sum(); ViewBag.ServicesTotal = "$ " + Math.Round(visitServicesSum, 2); ViewBag.MedicationsTotal = "$ " + Math.Round(visitMedicationsSum, 2); return(View(myModel)); }
public VisitController(IVisitRepository visitRepository, VisitSummary visitSummary) { _visitRepository = visitRepository; _visitSummary = visitSummary; }
public VisitEditorComponent(VisitSummary editVisit) { _isNew = false; _patient = editVisit.Patient; _visitRef = editVisit.VisitRef; }
/// <summary> /// Create a random order on the specified visit. /// </summary> /// <param name="visit">Visit/patient for which the order is created.</param> /// <param name="informationAuthority">Performing facility will be selected to match this information authority.</param> /// <param name="diagnosticServiceName">Name of the diagnostic service to order.</param> /// <param name="schedulingOffsetDays">A positive or negative number of days from today.</param> /// <param name="modalityName">The name of the modality.</param> /// <param name="facilityCode">The code of the ordering and performing facility.</param> /// <param name="laterality">The procedure laterality.</param> /// <returns></returns> public static OrderSummary RandomOrder(VisitSummary visit, EnumValueInfo informationAuthority, string diagnosticServiceName, int schedulingOffsetDays, string modalityName, string facilityCode, EnumValueInfo laterality) { InitReferenceDataCacheOnce(); var scheduledTime = Platform.Time + TimeSpan.FromDays(schedulingOffsetDays); LoadDiagnosticServicePlanResponse dsResponse = null; OrderSummary orderSummary = null; Platform.GetService( delegate(IOrderEntryService service) { DiagnosticServiceSummary diagnosticService; if (String.IsNullOrEmpty(diagnosticServiceName) && String.IsNullOrEmpty(modalityName)) { diagnosticService = ChooseRandom(_diagnosticServices); dsResponse = service.LoadDiagnosticServicePlan(new LoadDiagnosticServicePlanRequest(diagnosticService.DiagnosticServiceRef)); } else { diagnosticService = CollectionUtils.SelectFirst(_diagnosticServices, delegate(DiagnosticServiceSummary ds) { dsResponse = service.LoadDiagnosticServicePlan(new LoadDiagnosticServicePlanRequest(ds.DiagnosticServiceRef)); return((ds.Name == diagnosticServiceName) || (!String.IsNullOrEmpty(modalityName) && (CollectionUtils.SelectFirst(dsResponse.DiagnosticServicePlan.ProcedureTypes, ptd => ptd.Name.IndexOf(modalityName) == 0) != null))); }); if (diagnosticService == null) { throw new Exception(String.Format("Cannot find diagnostic service with name {0}", diagnosticServiceName)); } } var performingFacility = CollectionUtils.SelectFirst(_orderEntryFormData.FacilityChoices, delegate(FacilitySummary facility) { if (facilityCode == null) { return(facility.InformationAuthority.Code == informationAuthority.Code); } return(facility.Code == facilityCode); }); var randomPhysician = ChooseRandom(_practitioners); var randomPriority = ChooseRandom(_orderEntryFormData.OrderPriorityChoices); var requisition = new OrderRequisition { Patient = visit.Patient, Visit = visit, DiagnosticService = diagnosticService, OrderingPractitioner = randomPhysician, OrderingFacility = performingFacility, Priority = randomPriority, ReasonForStudy = "Randomly generated test order", SchedulingRequestTime = scheduledTime, Procedures = new List <ProcedureRequisition>(), ResultRecipients = new List <ResultRecipientDetail>(), Attachments = new List <AttachmentSummary>(), Notes = new List <OrderNoteDetail>() }; requisition.Procedures.AddRange( CollectionUtils.Map(dsResponse.DiagnosticServicePlan.ProcedureTypes, (ProcedureTypeSummary rpt) => new ProcedureRequisition(rpt, performingFacility) { ScheduledTime = scheduledTime, Laterality = laterality, ScheduledDuration = 30 // default to a non-zero scheduled duration })); var response = service.PlaceOrder(new PlaceOrderRequest(requisition)); orderSummary = response.Order; }); return(orderSummary); }
/// <summary> /// Create a random order on the specified visit. /// </summary> /// <param name="visit">Visit/patient for which the order is created.</param> /// <param name="informationAuthority">Performing facility will be selected to match this information authority.</param> /// <param name="diagnosticServiceName">Name of the diagnostic service to order.</param> /// <param name="schedulingOffsetDays">A positive or negative number of days from today.</param> /// <returns></returns> public static OrderSummary RandomOrder(VisitSummary visit, EnumValueInfo informationAuthority, string diagnosticServiceName, int schedulingOffsetDays) { return(RandomOrder(visit, informationAuthority, diagnosticServiceName, schedulingOffsetDays, "", null, null)); }
public VisitRepository(AppDbContext appDbContext, VisitSummary visitSummary) { _appDbContext = appDbContext; _visitSummary = visitSummary; }
public AddVisitResponse(VisitSummary addedVisit) { this.Visit = addedVisit; }
public HomeController(IDoctorRepository doctorRepository, VisitSummary visitSummary) { _doctorRepository = doctorRepository; _visitSummary = visitSummary; }