示例#1
0
        /// <summary>
        /// Init
        /// </summary>
        internal void Init()
        {
            try
            {
                Viewer.Location = new Point(Viewer.Location.X, 0);
                Viewer.Height   = Screen.PrimaryScreen.WorkingArea.Height;
                uiHelper.BeginLoading(Viewer);

                #region 参数
                using (ProxyEntityFactory proxy = new ProxyEntityFactory())
                {
                    EventParmData = EntityTools.ConvertToEntityList <EntityRptEventParm>(proxy.Service.SelectFullTable(new EntityRptEventParm()));
                }
                #endregion

                // 不良事件报表
                if (EventParmData != null)
                {
                    if (EventParmData.Any(t => t.eventId == this.EventDisplayVo.eventId && t.keyId == "templateId"))
                    {
                        this.formId = Function.Dec(EventParmData.FirstOrDefault(t => t.eventId == this.EventDisplayVo.eventId && t.keyId == "templateId").keyValue);
                    }
                }
                if (this.formId > 0)
                {
                    using (ProxyFormDesign proxy = new ProxyFormDesign())
                    {
                        proxy.Service.GetForm((int)this.formId, out FormDesignVo);
                    }
                }
                if (FormDesignVo == null)
                {
                    FormDesignVo = new EntityFormDesign();
                }
                if (Function.Dec(this.EventDisplayVo.rptId) > 0)
                {
                    using (ProxyAdverseEvent proxy = new ProxyAdverseEvent())
                    {
                        EntityRptEvent vo = proxy.Service.GetEvent(Function.Dec(this.EventDisplayVo.rptId));

                        #region patientInfo
                        Viewer.rdoFlag.SelectedIndex       = vo.patType - 1;
                        Viewer.rdoFlag.Properties.ReadOnly = true;
                        Viewer.txtCardNo.Text = vo.patNo;
                        GetPatient();
                        #endregion

                        LoadForm(FormDesignVo.Layout, vo.xmlData);
                    }
                }
                else
                {
                    LoadForm(FormDesignVo.Layout, null);
                }
            }
            finally
            {
                uiHelper.CloseLoading(Viewer);
            }
        }
示例#2
0
        /// <summary>
        /// GetXR
        /// </summary>
        /// <returns></returns>
        XtraReport GetXR(decimal rptId)
        {
            EntityRptEvent eventVo = null;

            using (ProxyAdverseEvent proxy = new ProxyAdverseEvent())
            {
                eventVo = proxy.Service.GetEvent(rptId);
            }
            EntityFormDesign       formVo  = null;
            EntityEmrPrintTemplate printVo = null;

            using (ProxyFormDesign proxy = new ProxyFormDesign())
            {
                proxy.Service.GetForm((int)eventVo.formId, out formVo);
                if (formVo == null)
                {
                    return(null);
                }
                printVo = proxy.Service.GetFormPrintTemplate(1, formVo.Printtemplateid.ToString());
            }
            DataTable printDataSource = FormTool.GetPrintDataTable(formVo.Layout, eventVo.xmlData);

            if (printVo.templateFile != null && printVo.templateFile.Length > 0)
            {
                XtraReport   xr     = new XtraReport();
                MemoryStream stream = new MemoryStream(printVo.templateFile);
                xr.LoadLayout(stream);
                xr.DataSource = printDataSource;
                return(xr);
            }
            else
            {
                return(null);
            }
        }
示例#3
0
 /// <summary>
 /// 保存不良事件
 /// </summary>
 /// <param name="eventVo"></param>
 /// <param name="rptId"></param>
 /// <returns></returns>
 public int SaveEvent(EntityRptEvent eventVo, out decimal rptId)
 {
     using (bizAdverseEvent biz = new bizAdverseEvent())
     {
         return(biz.SaveEvent(eventVo, out rptId));
     }
 }
示例#4
0
        /// <summary>
        /// Save
        /// </summary>
        internal void Save()
        {
            if (Viewer.txtPatName.Tag == null)
            {
                DialogBox.Msg("请先调出患者信息。");
                return;
            }
            string            reqStr = string.Empty;
            EntityPatientInfo patVo  = Viewer.txtPatName.Tag as EntityPatientInfo;

            try
            {
                uiHelper.BeginLoading(Viewer);
                string         fieldName = string.Empty;
                DateTime       dtmNow    = Utils.ServerTime();
                EntityRptEvent vo        = new EntityRptEvent();
                vo.rptId      = Function.Dec(this.EventDisplayVo.rptId);
                vo.eventId    = this.EventDisplayVo.eventId;
                vo.reportTime = this.EventDisplayVo.reportTime;
                // 报告时间
                if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "reportTime"))
                {
                    string reportTime = string.Empty;
                    fieldName  = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "reportTime").keyValue;
                    reportTime = Viewer.showPanelForm.GetItemInfo(fieldName);
                    if (string.IsNullOrEmpty(reportTime) && string.IsNullOrEmpty(vo.reportTime))
                    {
                        vo.reportTime = dtmNow.ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    else if (!string.IsNullOrEmpty(reportTime))
                    {
                        vo.reportTime = reportTime;
                    }
                }
                else if (string.IsNullOrEmpty(vo.reportTime))
                {
                    vo.reportTime = dtmNow.ToString("yyyy-MM-dd HH:mm:ss");
                }

                // 报告人
                if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "operCode"))
                {
                    fieldName         = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "operCode").keyValue;
                    vo.reportOperName = Viewer.showPanelForm.GetItemInfo(fieldName);
                    if (GlobalDic.DataSourceEmployee.Any(t => t.operName == vo.reportOperName))
                    {
                        vo.reportOperCode = GlobalDic.DataSourceEmployee.FirstOrDefault(t => t.operName == vo.reportOperName).operCode;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(patVo.ipNo) && patVo.ipTimes > 0 && vo.eventId == "17")
                        {
                            vo.reportOperCode = GlobalLogin.objLogin.EmpNo;
                        }
                        else if (vo.eventId == "17")
                        {
                            vo.reportOperCode = GlobalLogin.objLogin.EmpNo;
                        }
                    }
                }
                else
                {
                    vo.reportOperCode = GlobalLogin.objLogin.EmpNo;
                    vo.reportOperName = GlobalLogin.objLogin.EmpName;
                }
                // 上报科室
                if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "deptCode"))
                {
                    fieldName = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "deptCode").keyValue;
                    string reportDeptName = Viewer.showPanelForm.GetItemInfo(fieldName);
                    using (ProxyAdverseEvent proxy = new ProxyAdverseEvent())
                    {
                        vo.reportDeptCode = proxy.Service.GetDeptCode(reportDeptName);
                    }
                }
                else
                {
                    vo.reportDeptCode = patVo.deptCode;
                }
                // 事件编码
                if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "eventCode"))
                {
                    fieldName    = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "eventCode").keyValue;
                    vo.eventCode = Viewer.showPanelForm.GetItemInfo(fieldName);
                }
                else if (patVo.pid == "\\")
                {
                    vo.eventCode = Function.Datetime(vo.reportTime).ToString("MMddHHmm") + vo.reportOperCode;
                }
                else
                {
                    vo.eventCode = patVo.pid;
                }

                // 事件名称
                if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "eventName"))
                {
                    fieldName    = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "eventName").keyValue;
                    vo.eventName = Viewer.showPanelForm.GetItemInfo(fieldName);
                }
                else
                {
                    vo.eventName = Viewer.Text + "-" + patVo.name;
                }
                if (!string.IsNullOrEmpty(patVo.ipNo) && patVo.ipTimes > 0)
                {
                    vo.patNo = patVo.ipNo;
                }
                else
                {
                    vo.patNo = patVo.cardNo;
                }
                vo.patName = patVo.name;
                vo.patSex  = patVo.sex;
                if (!string.IsNullOrEmpty(patVo.birth))
                {
                    vo.birthday = Function.Datetime(patVo.birth);
                }
                vo.contactTel = patVo.contTel;
                vo.deptCode   = patVo.deptCode;
                vo.xmlData    = Viewer.showPanelForm.XmlData();
                if (Viewer.showPanelForm.IsAllowSave == false)
                {
                    DialogBox.Msg("存在必填项目没有处理,请检查。项目:\r\n" + Viewer.showPanelForm.HintInfo);

                    return;
                }

                if (vo.eventId == "13")
                {
                    int reqBlfyFlg = 0;
                    //不良反应结果
                    if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "BLFYJG"))
                    {
                        string   kyeStr     = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "BLFYJG").keyValue;
                        string[] fieldNames = kyeStr.Split('+');
                        foreach (string fieldSub in fieldNames)
                        {
                            string[] str   = fieldSub.Split('|');
                            string   value = Viewer.showPanelForm.GetItemInfo(str[0]);
                            if (value == "1")
                            {
                                reqBlfyFlg = 1;
                                break;
                            }
                        }

                        if (reqBlfyFlg == 0)
                        {
                            reqStr += "不良反应事件结果" + Environment.NewLine;
                        }
                    }

                    //停药后反应
                    int reqTyhfyFlg = 0;
                    if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "TYHFY"))
                    {
                        string   kyeStr     = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "TYHFY").keyValue;
                        string[] fieldNames = kyeStr.Split('+');
                        foreach (string fieldSub in fieldNames)
                        {
                            string[] str   = fieldSub.Split('|');
                            string   value = Viewer.showPanelForm.GetItemInfo(str[0]);
                            if (value == "1")
                            {
                                reqTyhfyFlg = 1;
                                break;
                            }
                        }

                        if (reqTyhfyFlg == 0)
                        {
                            reqStr += "停药或减量后,反应/事件是否消失或减轻" + Environment.NewLine;
                        }
                    }

                    //报告人评价
                    int reqBgrpjFlg = 0;
                    if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "BGRPJ"))
                    {
                        string   kyeStr     = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "BGRPJ").keyValue;
                        string[] fieldNames = kyeStr.Split('+');
                        foreach (string fieldSub in fieldNames)
                        {
                            string[] str   = fieldSub.Split('|');
                            string   value = Viewer.showPanelForm.GetItemInfo(str[0]);
                            if (value == "1")
                            {
                                reqBgrpjFlg = 1;
                                break;
                            }
                        }

                        if (reqBgrpjFlg == 0)
                        {
                            reqStr += "报告人评价" + Environment.NewLine;
                        }
                    }

                    //报告单位评价
                    int reqBgdwpjFlg = 0;
                    if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "BGDWPJ"))
                    {
                        string   kyeStr     = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "BGDWPJ").keyValue;
                        string[] fieldNames = kyeStr.Split('+');
                        foreach (string fieldSub in fieldNames)
                        {
                            string[] str   = fieldSub.Split('|');
                            string   value = Viewer.showPanelForm.GetItemInfo(str[0]);
                            if (value == "1")
                            {
                                reqBgdwpjFlg = 1;
                                break;
                            }
                        }

                        if (reqBgdwpjFlg == 0)
                        {
                            reqStr += "报告单位评价" + Environment.NewLine;
                        }
                    }

                    //报告人信息 职业
                    int reqBgrxxFlg = 0;
                    if (EventParmData.Any(t => t.eventId == vo.eventId && t.keyId == "BGDWPJ"))
                    {
                        string   kyeStr     = EventParmData.FirstOrDefault(t => t.eventId == vo.eventId && t.keyId == "BGDWPJ").keyValue;
                        string[] fieldNames = kyeStr.Split('+');
                        foreach (string fieldSub in fieldNames)
                        {
                            string[] str   = fieldSub.Split('|');
                            string   value = Viewer.showPanelForm.GetItemInfo(str[0]);
                            if (value == "1")
                            {
                                reqBgrxxFlg = 1;
                                break;
                            }
                            else if (!string.IsNullOrEmpty(value) && value != "0")
                            {
                                reqBgrxxFlg = 1;
                                break;
                            }
                        }

                        if (reqBgrxxFlg == 0)
                        {
                            reqStr += "报告人职业" + Environment.NewLine;
                        }
                    }

                    if (!string.IsNullOrEmpty(reqStr))
                    {
                        DialogBox.Msg("存在必填项目没有处理,请检查。项目:\r\n" + reqStr);
                        return;
                    }
                }

                vo.formId     = this.formId;
                vo.operCode   = GlobalLogin.objLogin.EmpNo;
                vo.recordDate = dtmNow;
                vo.status     = 1;
                vo.patType    = Viewer.rdoFlag.SelectedIndex + 1;

                using (ProxyAdverseEvent proxy = new ProxyAdverseEvent())
                {
                    decimal rptId = 0;

                    if (proxy.Service.SaveEvent(vo, out rptId) > 0)
                    {
                        Viewer.IsSave = true;
                        if (this.EventDisplayVo.isNew)
                        {
                            this.EventDisplayVo.rptId = rptId.ToString();
                        }
                        Viewer.txtCardNo.Properties.ReadOnly = true;
                        DialogBox.Msg("数据保存成功!");
                    }
                    else
                    {
                        DialogBox.Msg("数据保存失败。");
                    }
                }
            }
            finally
            {
                uiHelper.CloseLoading(Viewer);
            }
        }