private void CreateReSendReferralEvent(string userId, Order order, ref ReferralList referralList, ref ReferralEvent referralEvent, ref ReferralLog referralLog) { User user = _dbContext.Set <User>().Where(u => u.UniqueID == userId).FirstOrDefault(); if (referralList.Scope == (int)Enums.Ref_Scope.MultiSite) { referralEvent = new ReferralEvent { ReferralID = referralList.UniqueID, OperatorGuid = userId, OperateDt = DateTime.Now, SourceDomain = order.Domain, Event = (int)Enums.Ref_EventType.SendReferral, Status = referralList.Refpurpose, ExamDomain = referralList.ExamDomain, ExamAccNo = referralList.ExamAccNo, UniqueID = Guid.NewGuid().ToString(), OperatorName = user.LocalName, SourceSite = referralList.SourceSite, TargetSite = referralList.TargetSite, TargetDomain = referralList.TargetDomain, Scope = referralList.Scope, }; referralLog = new ReferralLog { ReferralID = referralList.UniqueID, OperatorGuid = userId, OperateDt = DateTime.Now, SourceDomain = order.Domain, OperatorName = user.LocalName, SourceSite = referralList.SourceSite, TargetSite = referralList.TargetSite, TargetDomain = referralList.TargetDomain, Memo = "", EventDesc = Enum.GetName(typeof(Enums.Ref_EventType), Enums.Ref_EventType.SendReferral), RefPurpose = referralList.Refpurpose, CreateDt = DateTime.Now }; referralList.RefStatus = (int)Enums.ReferralStatus.Sent; } }
private ReferralEvent CreateReSendReferralEvent(Order order, ReferralList referralList) { ReferralEvent referralEvent = new ReferralEvent { ReferralID = "", OperatorGuid = "", OperateDt = DateTime.Now, SourceDomain = order.Domain, TargetDomain = "", Event = (int)Enums.Ref_EventType.AutoReferral, Status = referralList.RefStatus, Tag = 0, Content = "ORDERID=" + order.UniqueID + "&MODALITYTYPE=" + referralList.ModalityType, ExamDomain = "", ExamAccNo = "", UniqueID = Guid.NewGuid().ToString(), OperatorName = "" }; return(referralEvent); }
public bool SendReferral(ManualReferralDto manualReferralDto, string domain, string site, string userId) { //get new referralid var order = _dbContext.Set <Order>().Where(o => o.UniqueID == manualReferralDto.OrderID).FirstOrDefault(); //judge whether send the target, reject and cancel var specialReferralList = _dbContext.Set <ReferralList>().Where(o => o.AccNo == order.AccNo && o.RefStatus != (int)Enums.ReferralStatus.Rejected && o.RefStatus != (int)Enums.ReferralStatus.Canceled && o.RefStatus != (int)Enums.ReferralStatus.Finished).ToList(); if (specialReferralList.Count > 0) { return(false); } var patient = _dbContext.Set <Patient>().Where(o => o.UniqueID == order.PatientID).FirstOrDefault(); ReferralList referralList = new ReferralList(); ReferralEvent referralEvent = new ReferralEvent(); ReferralLog referralLog = new ReferralLog(); List <Procedure> procedures = _dbContext.Set <Procedure>().Where(o => o.OrderID == manualReferralDto.OrderID).ToList(); string strprocedureCode = ""; string strcheckingItem = ""; string strModalityType = ""; int status = 0; List <string> strprocedureCodes = new List <string>(); List <string> strcheckingItems = new List <string>(); if (procedures.Count > 0) { strModalityType = procedures[procedures.Count - 1].ModalityType; foreach (Procedure procedure in procedures) { strprocedureCodes.Add(procedure.ProcedureCode); strcheckingItems.Add(procedure.CheckingItem); if (procedure.Status > status) { status = procedure.Status; } } strprocedureCode = string.Join(",", strprocedureCodes); strcheckingItem = string.Join(",", strcheckingItems); } //set referralList referralList.UniqueID = GetNewReferralID(domain); referralList.Scope = (int)Enums.Ref_Scope.MultiSite; referralList.ProcedureCode = strprocedureCode; referralList.CheckingItem = strcheckingItem; referralList.ModalityType = strModalityType; referralList.RPStatus = status; referralList.InitialDomain = domain; referralList.SourceDomain = domain; referralList.SourceSite = site; //patient info referralList.PatientID = patient.PatientNo; referralList.LocalName = patient.LocalName; referralList.EnglishName = patient.EnglishName; referralList.Gender = patient.Gender; referralList.Birthday = patient.Birthday; referralList.TelePhone = patient.Telephone == null ? "" : patient.Telephone; referralList.Address = patient.Address == null ? "" : patient.Address; //order info referralList.AccNo = order.AccNo; referralList.ApplyDoctor = order.ApplyDoctor == null ? "" : order.ApplyDoctor; referralList.HealthHistory = order.HealthHistory == null ? "" : order.HealthHistory; referralList.Observation = order.Observation == null ? "" : order.Observation; referralList.IsExistSnapshot = 0; referralList.GetReportDomain = ""; referralList.TargetSite = manualReferralDto.TargetSite; Site tarSite = _dbContext.Set <Site>().Where(s => s.SiteName == manualReferralDto.TargetSite).FirstOrDefault(); if (tarSite != null) { referralList.TargetDomain = tarSite.Domain; } if (referralList.RPStatus == (int)RPStatus.Examination) { referralList.Refpurpose = (int)Hys.CareRIS.Application.Services.ServiceImpl.Enums.ReferralPurpose.WriteReport; } else if (referralList.RPStatus == (int)RPStatus.Submit) { referralList.Refpurpose = (int)Hys.CareRIS.Application.Services.ServiceImpl.Enums.ReferralPurpose.ApproveReport; } referralList.Direction = (int)Hys.CareRIS.Application.Services.ServiceImpl.Enums.Direction.In; referralList.CreateDt = DateTime.Now; referralList.ExamAccNo = ""; referralList.ExamDomain = ""; referralList.OriginalBizData = ""; referralList.PackagedBizData = ""; referralList.RefApplication = ""; referralList.RefReport = ""; CreateReSendReferralEvent(userId, order, ref referralList, ref referralEvent, ref referralLog); //set memo referralEvent.Memo = manualReferralDto.Memo; referralEvent.Tag = 0; referralEvent.Content = ""; referralLog.Memo = manualReferralDto.Memo; _dbContext.Set <ReferralList>().Add(referralList); _dbContext.Set <ReferralEvent>().Add(referralEvent); _dbContext.Set <ReferralLog>().Add(referralLog); //update order order.ReferralID = referralList.UniqueID; order.IsReferral = 1; //update procedure foreach (Procedure procedure in procedures) { procedure.Status = -1; } _dbContext.SaveChanges(); return(true); }