Пример #1
0
        /// <summary>
        /// 提交病历
        /// </summary>
        /// <returns></returns>
        public ActionResult SubmitPatientRecord()
        {
            try
            {
                string          TaskCode       = Request.Form["TaskCode"].ToString();
                int             PatientOrder   = Convert.ToInt32(Request.Form["PatientOrder"]);
                string          EvenType       = Request.Form["EvenType"].ToString();
                string          TaskOrder      = Request.Form["TaskOrder"].ToString();
                string          DispatcherInfo = Request.Form["DispatcherInfo"].ToString();
                string          TiJianInfo     = Request.Form["TiJianInfo"].ToString();
                string          WorkCode       = Request.Form["WorkCode"].ToString();
                string          PersonName     = Request.Form["PersonName"].ToString();
                M_PatientRecord pr             = JsonHelper.GetJsonInfoBy <M_PatientRecord>(DispatcherInfo);

                M_PatientRecordAppend pra = JsonHelper.GetJsonInfoBy <M_PatientRecordAppend>(TiJianInfo);

                string errorMsg = "";
                if (new MobilePatientRecordBLL().PADAddPatientRecord(TaskCode, PatientOrder, EvenType, TaskOrder, pr, pra, WorkCode, PersonName, ref errorMsg))
                {
                    return(Json(new { success = true, msg = TaskOrder }, "appliction/json", JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { success = false, msg = "上传病历失败!原因:" + errorMsg }, "appliction/json", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, msg = "上传病历失败!原因:" + ex.Message }, "appliction/json", JsonRequestBehavior.AllowGet));
            }
        }
Пример #2
0
        public void GetPatientInfo(string TaskCode, int PatientOrder, out M_PatientRecord info
                                   , out M_PatientRecordAppend pra)
        {
            info = null;
            object             objpr  = null;
            M_PatientRecordCPR mprCPR = null;

            m_DAL.GetPatientInfo(TaskCode, PatientOrder, out objpr, out pra, out mprCPR);
            if (objpr != null)
            {
                info = (M_PatientRecord)objpr;
            }
        }
        public ActionResult SavePatientCharge()
        {
            string          chargeStr = Request.Form["charge"].ToString();
            M_PatientCharge charge    = JsonHelper.GetJsonInfoBy <M_PatientCharge>(chargeStr);

            if (charge == null)
            {
                return(Json(new { result = "ERROR", msg = "解析实体为空!" }, "appliction/json", JsonRequestBehavior.AllowGet));
            }

            M_PatientCharge info = new M_PatientChargeBLL().GetListBy(pc => pc.TaskCode.Equals(charge.TaskCode) && pc.PatientOrder == 1).FirstOrDefault();

            if (info != null)
            {
                if (new M_PatientChargeBLL().Del(info) <= 0)  // 删除旧收费信息
                {
                    return(Json(new { result = "ERROR", msg = "删除旧收费信息失败!" }, "appliction/json", JsonRequestBehavior.AllowGet));
                }
            }

            //查询是否已经填写病历
            M_PatientRecord prinfo = new M_PatientRecordBLL().GetListBy(pr => pr.TaskCode.Equals(charge.TaskCode) && pr.PatientOrder == 1).FirstOrDefault();

            if (prinfo == null)
            {
                M_PatientRecordBLL                   bll    = new M_PatientRecordBLL();
                M_PatientRecord                      pinfo  = null; //病历主表信息
                M_PatientRecordAppend                pra    = null; //病历附表
                M_PatientRecordCPR                   prCPR  = null; //病历附表--心肺复苏
                List <M_PatientRecordDiag>           prDiag = null; //病历子表--初步印象
                List <M_PatientRecordECGImpressions> prECG  = null; //病历子表--心电图印象
                GetPatientRecordInfo(charge.TaskCode, charge.ChargePerson, out pinfo, out pra, out prCPR);
                bll.Insert(pinfo, pra, prCPR, prDiag, prECG);       //新增病历主表、附表、子表
            }

            charge.PatientOrder = 1;  //收费序号目前永远为1
            if (new M_PatientChargeBLL().Add(charge) > 0)
            {
                return(Json(new { result = "OK", msg = "收费成功!" }, "appliction/json", JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { result = "ERROR", msg = "收费失败!" }, "appliction/json", JsonRequestBehavior.AllowGet));
            }
        }
Пример #4
0
        public ActionResult GetPatientRecordInfo()
        {
            string                TaskCode     = Request.Form["TaskCode"].ToString();
            int                   PatientOrder = Convert.ToInt32(Request.Form["PatientOrder"]);
            M_PatientRecord       pr           = null;
            M_PatientRecordAppend pra          = null;

            new MobilePatientRecordBLL().GetPatientInfo(TaskCode, PatientOrder, out pr, out pra);
            if (pr != null)
            {
                return(Json(new { success = true, pr = pr, pra = pra }, "appliction/json", JsonRequestBehavior.AllowGet));
            }
            else
            {
                M_AttemperData result = new M_PatientRecordBLL().GetAttemperData(TaskCode, "");//根据任务编码获取调度信息
                pr                       = new M_PatientRecord();
                pr.CallOrder             = result.CallOrder;
                pr.PatientOrder          = 1;
                pr.LocalAddress          = result.LocalAddress;
                pr.Name                  = result.Name;
                pr.Sex                   = result.Sex;
                pr.Age                   = result.Age;
                pr.AgeType               = result.AgeType;
                pr.Station               = result.Station;
                pr.OutStationCode        = result.StationCode;
                pr.DrivingTime           = result.DrivingTime;
                pr.ArriveSceneTime       = result.ArriveSceneTime;
                pr.LeaveSceneTime        = result.LeaveSceneTime;
                pr.ArriveDestinationTime = result.ArriveDestinationTime;
                pr.SendAddress           = result.SendAddress;
                pr.Driver                = result.Driver;
                pr.DoctorAndNurse        = result.Doctor + result.Nurse;
                pr.StretcherBearersI     = result.StretcherBearers;
                pr.ContactTelephone      = result.ContactTelephone;
                return(Json(new { success = true, pr = pr, pra = pra }, "appliction/json", JsonRequestBehavior.AllowGet));
            }
        }
Пример #5
0
 public void GetPatientInfo(string taskCode, int patientOrder, out object info
                            , out M_PatientRecordAppend pra, out M_PatientRecordCPR prCPR)
 {
     m_DAL.GetPatientInfo(taskCode, patientOrder, out info, out pra, out prCPR);
 }
Пример #6
0
 public bool Update(object info, M_PatientRecordAppend pra
                    , M_PatientRecordCPR prCPR, List <M_PatientRecordDiag> prDiag
                    , List <M_PatientRecordECGImpressions> prECG)
 {
     return(m_DAL.Update(info, pra, prCPR, prDiag, prECG));
 }
Пример #7
0
        public bool SavePatient()
        {
            string                               state  = "";
            M_PatientRecordBLL                   bll    = new M_PatientRecordBLL();
            M_PatientRecord                      info   = null; //病历主表信息
            M_PatientRecordAppend                pra    = null; //病历附表
            M_PatientRecordCPR                   prCPR  = null; //病历附表--心肺复苏
            List <M_PatientRecordDiag>           prDiag = null; //病历子表--初步印象
            List <M_PatientRecordECGImpressions> prECG  = null; //病历子表--心电图印象

            string             PatientRecord = Request.Form["PatientRecord"].ToString();
            M_AddPatientRecord add           = new M_AddPatientRecord();

            add = JsonHelper.GetJsonInfoBy <M_AddPatientRecord>(PatientRecord);
            if (add != null)
            {
                string TaskCode     = add.TaskCode;
                int    PatientOrder = add.PatientOrder;
                state = add.state;
                info  = add.info;  //病历主表信息
                pra   = add.pra;   //病历附表
                prCPR = add.prCPR; //病历附表--心肺复苏

                if (add.prDiag.Count > 0)
                {
                    prDiag = add.prDiag;
                }                       //病历子表--初步印象
                else
                {
                    prDiag = null;
                }                 //病历子表--初步印象

                if (add.prECG.Count > 0)
                {
                    prECG = add.prECG;
                }                     //病历子表--心电图印象
                else
                {
                    prECG = null;
                }                //病历子表--心电图印象
            }

            bool save = false;

            if (info != null)
            {
                try
                {
                    if (state == "new")
                    {
                        save = bll.Insert(info, pra, prCPR, prDiag, prECG);//新增病历主表、附表、子表
                    }
                    else if (state == "edit")
                    {
                        save = bll.Update(info, pra, prCPR, prDiag, prECG);//修改病历主表、附表、子表
                    }
                }
                catch (Exception e)
                {
                    save = false;
                }
            }
            return(save);
        }
Пример #8
0
        /// <summary>
        /// 病历页面初始化
        /// </summary>
        /// <param name="TaskCode">任务编码</param>
        /// <param name="PatientOrder">序号</param>
        /// <param name="state">填写状态</param>
        /// <returns></returns>
        public ActionResult AddPatientRecord(string TaskCode, int PatientOrder, string state)
        {
            //, int PatientOrder//测试
            M_PatientRecordBLL prBLL = new M_PatientRecordBLL();
            M_DictionaryBLL    dBLL  = new M_DictionaryBLL();
            //int PatientOrder = 1;//测试

            M_AttemperData result = prBLL.GetAttemperData(TaskCode, state);//根据任务编码获取调度信息

            ViewBag.Attemper = result;

            ViewData["TaskCode"] = TaskCode == null ? "2012102023555200020101" : TaskCode;
            M_PatientRecord       prInfo; //病历主表信息
            M_PatientRecordAppend pra;    //病历附表--体检等信息
            M_PatientRecordCPR    prCPR;  //病历附表--心肺复苏

            if (state == "new")
            {
                int AddPatientOrder = prBLL.GetPatientMaxOrder(TaskCode);
                ViewData["PatientOrder"] = AddPatientOrder;
                prInfo               = new M_PatientRecord();
                pra                  = new M_PatientRecordAppend();
                prCPR                = new M_PatientRecordCPR();
                ViewBag.PRInfo       = prInfo; //病历主表信息--传到页面
                ViewBag.PRAppendInfo = pra;    //病历附表--体检等信息--传到页面
                ViewBag.PRCPRInfo    = prCPR;  //病历附表--心肺复苏--传到页面
            }
            else
            {
                object oPatientInfo;//病历主表
                prBLL.GetPatientInfo(TaskCode, PatientOrder, out oPatientInfo, out pra, out prCPR);
                if (PatientOrder > 0)
                {
                    prInfo                   = (M_PatientRecord)oPatientInfo;
                    ViewBag.PRInfo           = prInfo; //病历主表信息--传到页面
                    ViewBag.PRAppendInfo     = pra;    //病历附表--体检等信息--传到页面
                    ViewBag.PRCPRInfo        = prCPR;  //病历附表--心肺复苏--传到页面
                    ViewData["PatientOrder"] = PatientOrder;
                    if (SuperRole("SuperRole"))
                    {
                        this.ViewData["SuperRole"] = "SuperRole";//登录人有超级权限
                    }
                    else
                    {
                        this.ViewData["SuperRole"] = "";
                    }

                    string role = UserOperateContext.Current.getMaxPerForRole(); //获取登录人角色(医生、护士、司机)
                    this.ViewData["PatientRole"] = role;                         //
                }
            }
            ViewData["state"] = state == null ? "new" : state;

            if (SuperRole("PRAuditCPR"))
            {
                this.ViewData["PRAuditCPR"] = "PRAuditCPR";//登录人有“心肺复苏审核”权限
            }
            else
            {
                this.ViewData["PRAuditCPR"] = "";
            }

            if (SuperRole("SubCenterSpotChecks"))
            {
                this.ViewData["SubCenterSpotChecks"] = "SubCenterSpotChecks";//登录人有"分中心抽查"权限
            }
            else
            {
                this.ViewData["SubCenterSpotChecks"] = "";
            }

            if (SuperRole("CenterSpotChecks"))
            {
                this.ViewData["CenterSpotChecks"] = "CenterSpotChecks";//登录人有"中心抽查"权限
            }
            else
            {
                this.ViewData["CenterSpotChecks"] = "";
            }

            P_User pUser = new P_User();

            pUser = UserOperateContext.Current.Session_UsrInfo;//获取登录人信息
            ViewData["AgentCode"]            = pUser.ID;
            ViewData["AgentWorkID"]          = pUser.WorkCode;
            ViewData["AgentName"]            = pUser.Name;
            ViewData["BeginFillPatientTime"] = DateTime.Now.ToString();//开始填写病历时间


            #region 为病历页面的CheckBoxList项目赋值
            CheckViewModel model = new CheckViewModel();
            //model.DiseasesClassification = dBLL.GetCheckBoxModelByTableName("M_ZCaseTemplate");//病种分类
            //model.GongShiRen = dBLL.GetCheckBoxModel("GongShiRen");//供史人
            //model.AnamnesisllnessHistory = dBLL.GetCheckBoxModel("PastMedicalHistory");//既往病史
            model.BodyFigure = dBLL.GetCheckBoxModel("PiFu");     //皮肤
            model.Head       = dBLL.GetCheckBoxModel("Head");     //头部
            model.Neck       = dBLL.GetCheckBoxModel("Neck");     //颈部
            model.Chest      = dBLL.GetCheckBoxModel("Chest");    //胸部
            model.Lung       = dBLL.GetCheckBoxModel("Lung");     //肺脏
            model.LungLeft   = dBLL.GetCheckBoxModel("LungLeft"); //左肺
            model.LungRight  = dBLL.GetCheckBoxModel("LungLeft"); //右肺
            model.FuBu       = dBLL.GetCheckBoxModel("FuBu");     //腹部
            model.JiZhu      = dBLL.GetCheckBoxModel("JiZhu");    //脊柱
            model.Limb       = dBLL.GetCheckBoxModel("Limb");     //四肢
            #endregion

            #region 为病历页面的RadioButtonList从数据库传值

            var ProvideMedicalHistoryPeople = new object(); //供史人
            var DiseasesClassification      = new object(); //病种分类
            var PastMedicalHistory          = new object(); //既往病史
            var BabinskiSign        = new object();         //神经系统--巴氏征
            var ChestExtrusionTest  = new object();         //胸廓挤压试验
            var PelvicExtrusionTest = new object();         //骨盆挤压试验

            lock (m_SyncRoot)
            {
                ProvideMedicalHistoryPeople = CacheHelper.GetCache("ProvideMedicalHistoryPeople");
                DiseasesClassification      = CacheHelper.GetCache("DiseasesClassification");
                PastMedicalHistory          = CacheHelper.GetCache("PastMedicalHistory");
                BabinskiSign        = CacheHelper.GetCache("BabinskiSign");
                ChestExtrusionTest  = CacheHelper.GetCache("ChestExtrusionTest");
                PelvicExtrusionTest = CacheHelper.GetCache("PelvicExtrusionTest");
                if (ProvideMedicalHistoryPeople == null)
                {
                    ProvideMedicalHistoryPeople = dBLL.GetCheckBoxOrRadioButtonList("Checkbox", "ProvideMedicalHistoryPeople", "checkbox");
                    CacheHelper.SetCache("ProvideMedicalHistoryPeople", ProvideMedicalHistoryPeople);
                }
                if (DiseasesClassification == null)
                {
                    DiseasesClassification = dBLL.GetCheckBoxListByTableName("M_ZCaseTemplate", "DiseasesClassification", "checkbox");
                    CacheHelper.SetCache("DiseasesClassification", DiseasesClassification);
                }
                if (PastMedicalHistory == null)
                {
                    PastMedicalHistory = dBLL.GetCheckBoxOrRadioButtonList("Checkbox", "PastMedicalHistory", "checkbox");
                    CacheHelper.SetCache("PastMedicalHistory", PastMedicalHistory);
                }
                if (BabinskiSign == null)
                {
                    BabinskiSign = dBLL.GetCheckBoxOrRadioButtonList("Checkbox", "BabinskiSign", "checkbox");
                    CacheHelper.SetCache("BabinskiSign", BabinskiSign);
                }
                if (ChestExtrusionTest == null)
                {
                    ChestExtrusionTest = dBLL.GetCheckBoxOrRadioButtonList("Radio", "ChestExtrusionTest", "radio");
                    CacheHelper.SetCache("ChestExtrusionTest", ChestExtrusionTest);
                }
                if (PelvicExtrusionTest == null)
                {
                    PelvicExtrusionTest = dBLL.GetCheckBoxOrRadioButtonList("Radio", "PelvicExtrusionTest", "radio");
                    CacheHelper.SetCache("PelvicExtrusionTest", PelvicExtrusionTest);
                }
            }
            this.ViewData["ProvideMedicalHistoryPeople"] = ProvideMedicalHistoryPeople;
            this.ViewData["DiseasesClassification"]      = DiseasesClassification;
            this.ViewData["PastMedicalHistory"]          = PastMedicalHistory;
            this.ViewData["BabinskiSign"]        = BabinskiSign;
            this.ViewData["ChestExtrusionTest"]  = ChestExtrusionTest;
            this.ViewData["PelvicExtrusionTest"] = PelvicExtrusionTest;

            #endregion

            return(View(model));
        }
Пример #9
0
        public bool PADAddPatientRecord(string TaskCode, int PatientOrder, string EvenType, string TaskOrder, M_PatientRecord pr, M_PatientRecordAppend pra, string WorkCode, string PersonName, ref string errorMsg)
        {
            try
            {
                if (pr == null)
                {
                    pr = new M_PatientRecord();
                }
                if (pra == null)
                {
                    pra = new M_PatientRecordAppend();
                }

                if (TaskCode == "")
                {
                    TaskCode = m_DAL.GetTaskCodeByTaskOrder(TaskOrder);
                }
                if (TaskCode == "")
                {
                    errorMsg = "任务流水号错误!未在任务中找到该流水号。";
                    return(false);
                }
                pr.TaskCode       = TaskCode;
                pr.PatientOrder   = PatientOrder;
                pr.AgentWorkID    = WorkCode;
                pr.AgentName      = PersonName;
                pr.PatientVersion = EvenType;
                pra.TaskCode      = TaskCode;
                pra.PatientOrder  = PatientOrder;
                object objpr = null;
                M_PatientRecordAppend mpra   = null;
                M_PatientRecordCPR    mprCPR = new M_PatientRecordCPR();;
                M_PatientRecord       mpr    = null;
                mprCPR.TaskCode                = TaskCode;
                mprCPR.PatientOrder            = PatientOrder;
                mprCPR.CenterIFAuditForXFFS    = false;
                pr.MedicalRecordGenerationTime = DateTime.Now;
                pr.IMEI = "PAD";
                m_DAL.GetPatientInfo(TaskCode, PatientOrder, out objpr, out mpra);
                if (objpr != null)
                {
                    mpr = (M_PatientRecord)objpr;
                    ReflectionUtility.UpdateObjectProperty(mpr, pr);
                    ReflectionUtility.UpdateObjectProperty(mpra, pra);
                    m_DAL.Update(pr, pra);
                }
                else
                {
                    string HJTel     = "";
                    string Area      = "";
                    string EventType = "";
                    new MobileTaskDAL().GetMobileTaskInfo(TaskCode, out HJTel, out Area, out EventType);
                    pr.ForHelpTelephone      = HJTel;
                    pr.OriginalTaskType      = EventType;
                    pr.ForArea               = Area;
                    pr.MedicalStateCode      = 0;
                    pr.FormCompleteLogo      = false;
                    pr.SubmitLogo            = false;
                    pr.SubCenterIFSpotChecks = false;
                    pr.CenterIFSpotChecks    = false;
                    pr.LastUpdatePerson      = PersonName;
                    pr.LastUpdateTime        = DateTime.Now;
                    m_DAL.Insert(pr, pra, mprCPR, null, null);
                }
                return(true);
            }
            catch (Exception ex)
            {
                errorMsg = ex.Message;
                return(false);
            }
        }
Пример #10
0
        //获取病历信息
        public void GetPatientRecordInfo(string TaskCode, string WorkID, out M_PatientRecord info, out M_PatientRecordAppend pra, out M_PatientRecordCPR prCPR)
        {
            M_PatientRecordBLL prBLL  = new M_PatientRecordBLL();
            M_AttemperData     result = prBLL.GetAttemperData(TaskCode, ""); //根据任务编码获取调度信息

            info                       = new M_PatientRecord();              //病历主表信息
            info.TaskCode              = TaskCode;
            info.PatientOrder          = 1;
            info.CallOrder             = result.CallOrder;
            info.Name                  = result.Name;
            info.Sex                   = result.Sex;
            info.AgeType               = "岁";
            info.ForHelpTelephone      = result.ForHelpPhone;
            info.ContactTelephone      = result.ContactTelephone;
            info.PatientVersion        = result.AlarmType;
            info.OriginalTaskType      = result.AlarmType;
            info.ForArea               = result.Area;
            info.LocalAddress          = result.LocalAddress;
            info.OutStationCode        = result.StationCode;
            info.Station               = result.Station;
            info.SendAddress           = result.SendAddress;
            info.DrivingTime           = result.DrivingTime;
            info.ArriveSceneTime       = result.ArriveSceneTime;
            info.LeaveSceneTime        = result.LeaveSceneTime;
            info.ArriveDestinationTime = result.ArriveDestinationTime;
            info.Driver                = result.Driver;
            info.StretcherBearersI     = result.StretcherBearers;
            info.DoctorAndNurse        = result.Doctor + result.Nurse;
            P_UserBLL bll  = new P_UserBLL();
            P_User    user = bll.GetListBy(u => u.WorkCode == WorkID).Select(u => u.ToExtModle()).FirstOrDefault(); //查找用户名 密码

            info.AgentCode                   = user.ID.ToString();
            info.AgentWorkID                 = WorkID;
            info.AgentName                   = user.Name;
            info.BeginFillPatientTime        = DateTime.Now;
            info.MedicalRecordGenerationTime = DateTime.Now;
            info.FormCompleteLogo            = false;
            //obj.FormCompleteTime = null;
            info.ChargeOrder           = 0;
            info.SubCenterIFSpotChecks = false;
            info.CenterIFSpotChecks    = false;
            info.SubmitLogo            = false;
            info.SubmitTime            = null;
            info.MedicalStateCode      = 0;
            info.LastUpdatePerson      = user.Name; //填写病历的人员
            info.LastUpdateTime        = DateTime.Now;
            info.CPRIFSuccess          = "";        //心肺复苏选择
            info.IFRefuseTreatment     = "治疗记录";    //是否拒绝治疗(救治记录)
            info.RescueType            = "";        //抢救类型(救治记录)
            info.IMEI = "PAD";                      //从PAD填写


            pra              = new M_PatientRecordAppend();//
            pra.TaskCode     = TaskCode;
            pra.PatientOrder = 1;

            prCPR                      = new M_PatientRecordCPR();//
            prCPR.TaskCode             = TaskCode;
            prCPR.PatientOrder         = 1;
            prCPR.CenterIFAuditForXFFS = false;
        }