示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }