예제 #1
0
        /// <summary>
        /// 获取数据的文本值
        /// </summary>
        /// <returns></returns>
        public virtual string GetDataText()
        {
            string strValue = string.Empty;

            if (this.InfoType == EnumPatientInfoType.年龄)
            {
                if (GlobalPatient.currPatient != null)
                {
                    if (CalcAgeType == 1)
                    {
                        strValue = CalcAge.GetAge(GlobalPatient.currPatient.Birthday, GlobalPatient.currPatient.RegisterDate);
                    }
                    else
                    {
                        int intAge = CalcAge.GetAgeInt(GlobalPatient.currPatient.Birthday);
                        if (intAge < 1)
                        {
                            strValue = CalcAge.GetAge(GlobalPatient.currPatient.Birthday, GlobalPatient.currPatient.RegisterDate);
                        }
                        else
                        {
                            strValue = CalcAge.GetAge(GlobalPatient.currPatient.Birthday);
                        }
                    }
                }
            }
            else
            {
                strValue = PatientInfoHelper.GetTypePatientInfo(this.InfoType);
            }

            return(strValue);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="disClientRpt"></param>
        /// <returns></returns>
        internal List <EntityModelAccess> GetModelAccess(EntitymModelAccessRecord mdAccessRecord)
        {
            List <EntityModelAccess>    data    = new List <EntityModelAccess>();
            Dictionary <string, string> dicData = new Dictionary <string, string>();

            if (!string.IsNullOrEmpty(mdAccessRecord.qnData))
            {
                XmlDocument document = new XmlDocument();
                document.LoadXml(mdAccessRecord.qnData);
                XmlNodeList list = document["FormData"].ChildNodes;
                dicData = Function.ReadXML(mdAccessRecord.qnData);
            }
            int age = 0;

            if (dicData.ContainsKey("Birthday"))
            {
                age = CalcAge.GetAgeInt(Function.Datetime(dicData["Birthday"]));
            }
            string sexStr = dicData["Sex"];
            int    sex    = 0;

            if (sexStr == "男")
            {
                sex = 1;
            }
            if (sexStr == "女")
            {
                sex = 2;
            }

            if (lstModelAccess != null)
            {
                List <EntityModelAccess> tmpList = lstModelAccess.FindAll(r => (r.modelSex == sex || r.modelSex == 0));
                foreach (var maVo in tmpList)
                {
                    decimal minAge = maVo.minAge;
                    decimal maxAge = maVo.maxAge;

                    if (age >= minAge && age <= maxAge)
                    {
                        data.Add(maVo);
                    }
                }
            }

            return(data);
        }
예제 #3
0
        /// <summary>
        /// 获取传染病列表
        /// </summary>
        /// <param name="dicParm"></param>
        /// <returns></returns>
        internal List <EntityContagionDisplay> GetContagionList(List <EntityParm> dicParm)
        {
            string Sql     = string.Empty;
            string Sql1    = string.Empty;
            string xmlData = string.Empty;
            Dictionary <string, string>   dicData = new Dictionary <string, string>();
            List <EntityContagionDisplay> data    = new List <EntityContagionDisplay>();
            SqlHelper svc = null;

            try
            {
                #region Sql
                svc = new SqlHelper(EnumBiz.onlineDB);
                Sql = @"select t.rptId,
                               t.reportId,
                               t.reportTime,
                               t.reportOperCode,
                               t.reportOperName,
                               t.registerCode,
                               t.patno,
                               t.patname,
                               t.patsex,
                               t.birthday,
                               t.contacttel,
                               t.deptcode,
                               b.DEPT_NAME as deptName,
                               c.xmlData
                          from rptContagion t
                          left join code_department b
                            on t.deptcode = b.DEPT_CODE
                          left join rptContagionData c 
                            on t.rptId = c.rptId
                         where t.status = 1
                           and t.reportId = ?
                           ";

                Sql1 = @"select t.rptId,
                               t.reportId,
                               t.reportTime,
                               t.reportOperCode,
                               t.reportOperName,
                               t.registerCode,
                               t.patno,
                               t.patname,
                               t.patsex,
                               t.birthday,
                               t.contacttel,
                               t.deptcode,
                               b.DEPT_NAME as deptName,
                               c.xmlData
                          from rptContagion t
                         inner join patientinfo a
                            on t.patno = a.CARD_NO
                          left join code_department b
                            on t.deptcode = b.DEPT_CODE
                         left join rptContagionData c 
                            on t.rptId = c.rptId
                         where t.status = 1
                           and t.reportId = ?
                           ";
                #endregion

                #region 条件

                string strSub = string.Empty;
                List <IDataParameter> lstParm = new List <IDataParameter>();
                // 默认参数
                IDataParameter parm = svc.CreateParm();
                parm.Value = dicParm.FirstOrDefault(t => t.key == "reportId").value;
                lstParm.Add(parm);

                foreach (EntityParm po in dicParm)
                {
                    parm = svc.CreateParm();
                    string keyValue = po.value;
                    parm.Value = keyValue;
                    switch (po.key)
                    {
                    case "reportDate":
                        IDataParameter parm1 = svc.CreateParm();
                        parm1.Value = keyValue.Split('|')[0] + " 00:00:00";
                        lstParm.Add(parm1);
                        IDataParameter parm2 = svc.CreateParm();
                        parm2.Value = keyValue.Split('|')[1] + " 23:59:59";
                        lstParm.Add(parm2);
                        strSub += " and (t.reportTime between ? and ?)";
                        break;

                    case "deptCode":
                        if (keyValue.IndexOf("','") > 0)
                        {
                            strSub += " and (t.deptCode in (" + keyValue + "))";
                        }
                        else
                        {
                            parm.Value = parm.Value.ToString().Replace("'", "");
                            lstParm.Add(parm);
                            strSub += " and (t.deptCode = ?)";
                        }
                        break;

                    case "cardNo":
                        lstParm.Add(parm);
                        strSub += " and (t.patno= ?)";
                        break;

                    case "patName":
                        Sql        = Sql1;
                        parm.Value = "%" + keyValue + "%";
                        lstParm.Add(parm);
                        strSub += " and (a.name like ?)";
                        break;

                    default:
                        break;
                    }
                }

                #endregion

                #region 赋值

                // 组合条件
                Sql += strSub;
                DataTable dt = svc.GetDataTable(Sql, lstParm.ToArray());
                if (dt != null)
                {
                    EntityContagionDisplay vo = null;
                    foreach (DataRow dr in dt.Rows)
                    {
                        vo                = new EntityContagionDisplay();
                        vo.rptId          = dr["rptId"].ToString();
                        vo.reportTime     = dr["reportTime"].ToString();
                        vo.reportOperCode = dr["reportOperCode"].ToString();
                        vo.reportOperName = dr["reportOperName"].ToString();
                        vo.registerCode   = dr["registerCode"].ToString();
                        vo.patNo          = dr["patNo"].ToString();
                        vo.patName        = dr["patName"].ToString();
                        vo.patSex         = dr["patSex"].ToString() == "1" ? "男" : "女";
                        if (dr["birthday"] != DBNull.Value)
                        {
                            vo.patBirthDay = dr["birthday"].ToString();
                            vo.patAge      = CalcAge.GetAge(Function.Datetime(dr["birthday"]));
                        }
                        vo.contactTel = dr["contactTel"].ToString();
                        vo.deptName   = dr["deptName"].ToString();

                        xmlData = dr["xmlData"].ToString();
                        if (!string.IsNullOrEmpty(xmlData))
                        {
                            dicData = Function.ReadXmlNodes(xmlData, "FormData");
                            if (dicData.ContainsKey("XSHR") && dicData["XSHR"] != "")
                            {
                                vo.SH  = "已审核";
                                vo.SHR = dicData["XSHR"];
                            }
                            if (dicData.ContainsKey("XSHD") && dicData["XSHD"] != "")
                            {
                                vo.SHSJ = dicData["XSHD"];
                            }
                            if (dicData.ContainsKey("XBKS") && dicData["XBKS"] != "")
                            {
                                vo.reportDept = dicData["XBKS"];
                            }
                        }
                        data.Add(vo);
                    }
                }
                #endregion
            }
            catch (Exception e)
            {
                ExceptionLog.OutPutException(e);
            }
            finally
            {
                svc = null;
            }
            return(data);
        }
예제 #4
0
파일: biz202.cs 프로젝트: iamwsx05/hms
        /// <summary>
        ///
        /// </summary>
        /// <param name="parms"></param>
        /// <returns></returns>
        public List <EntityQnRecord> GetQnRecords(List <EntityParm> parms)
        {
            List <EntityQnRecord> data = null;
            SqlHelper             svc  = new SqlHelper(EnumBiz.onlineDB);
            string Sql = string.Empty;

            Sql = @"select a.recId,
                           b.clientNo,
                           b.clientName,
                           b.gender,
						   b.gradeName,
                           b.birthday,
                           a.qnName,
						   a.qnType,
                           a.qnDate,
                           a.qnSource,
                           a.qnId,
                           d.oper_name as recorder,
                           q.xmlData
                        from qnRecord a
                     left join qnData q
                        on a.recId = q.recId
                     inner join v_clientInfo b
                        on a.clientNo = b.clientNo
                      left join code_operator d
                        on a.recorder = d.oper_code 
                            where a.status != -1";

            string sub = string.Empty;

            if (parms != null)
            {
                foreach (EntityParm pa in parms)
                {
                    string key = pa.key;

                    switch (key)
                    {
                    case "qnType":
                        sub += " and a.qnType = '" + pa.value + "'";
                        break;

                    case "clientNo":
                        sub += " and a.clientNo = '" + pa.value + "'";
                        break;

                    case "search":
                        sub += "and a.clientNo like '%" + pa.value + "%' or a.clientName like '%" + pa.value + "%'";
                        break;

                    default:
                        break;
                    }
                }
            }

            if (!string.IsNullOrEmpty(sub))
            {
                Sql += sub;
            }

            DataTable dt = svc.GetDataTable(Sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                data = new List <EntityQnRecord>();
                EntityQnRecord vo = null;
                foreach (DataRow dr in dt.Rows)
                {
                    vo        = new EntityQnRecord();
                    vo.recId  = Function.Dec(dr["recId"]);
                    vo.gender = Function.Int(dr["gender"]);
                    if (vo.gender == 1)
                    {
                        vo.sex = "男";
                    }
                    if (vo.gender == 2)
                    {
                        vo.sex = "女";
                    }
                    vo.clientNo   = dr["clientNo"].ToString();
                    vo.clientName = dr["clientName"].ToString();
                    vo.gradeName  = dr["gradeName"].ToString();
                    vo.age        = dr["birthday"] == DBNull.Value ? "" : CalcAge.GetAge(Function.Datetime(dr["birthday"]));
                    vo.qnName     = dr["qnName"].ToString();
                    vo.qnId       = Function.Dec(dr["qnId"]);
                    vo.qnSource   = Function.Dec(dr["qnSource"]);
                    if (vo.qnSource == 1)
                    {
                        vo.strQnSource = "采集系统";
                    }
                    vo.qnDate    = Function.Datetime(dr["qnDate"]);
                    vo.strQnDate = Function.Datetime(dr["qnDate"]).ToString("yyyy-MM-dd");
                    vo.recorder  = dr["recorder"].ToString();
                    vo.xmlData   = dr["xmlData"].ToString();
                    if (data.Any(r => r.recId == vo.recId))
                    {
                        continue;
                    }
                    data.Add(vo);
                }
            }
            return(data);
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="modelId"></param>
        /// <returns></returns>
        internal List <EntityModelParamCalc> CalcModelResult(decimal modelId, EntitymModelAccessRecord vo, out decimal result, out decimal bestDf)
        {
            result = 0;
            bestDf = 0;
            bool ageFlag = false;
            List <EntityModelParamCalc> data        = null;
            EntityModelParamCalc        paramCalcVo = null;
            Dictionary <string, string> dicData     = new Dictionary <string, string>();
            List <EntityModelGroupItem> lstGxyModel = lstModelGroupItem.FindAll(r => r.modelId == modelId && r.isMain == 1);

            //EntityDisplayClientRpt vo = GetRowObject();
            if (!string.IsNullOrEmpty(vo.qnData))
            {
                XmlDocument document = new XmlDocument();
                document.LoadXml(vo.qnData);
                XmlNodeList list = document["FormData"].ChildNodes;
                dicData = Function.ReadXML(vo.qnData);
            }

            if (lstGxyModel != null)
            {
                data = new List <EntityModelParamCalc>();
                foreach (var model in lstGxyModel)
                {
                    List <EntityModelParam> lstModelParamGxy = lstModelParam.FindAll(r => r.parentFieldId == model.paramNo && r.modelId == modelId);
                    if (lstModelParamGxy != null)
                    {
                        //问卷
                        if (model.paramType == 3 || model.paramType == 4)
                        {
                            foreach (var modelGxy in lstModelParamGxy)
                            {
                                if (!string.IsNullOrEmpty(vo.qnData))
                                {
                                    //评估得分
                                    if (dicData.ContainsKey(modelGxy.paramNo))
                                    {
                                        decimal score = 0;
                                        if (dicData[modelGxy.paramNo] == "1")
                                        {
                                            score += Function.Dec(modelGxy.score);

                                            paramCalcVo            = new EntityModelParamCalc();
                                            paramCalcVo.clientId   = vo.clientNo;
                                            paramCalcVo.qnRecId    = vo.qnRecId;
                                            paramCalcVo.regNo      = vo.regNo;
                                            paramCalcVo.modelId    = modelId;
                                            paramCalcVo.paramNo    = model.paramNo;
                                            paramCalcVo.paramName  = model.paramName;
                                            paramCalcVo.calcScore  = score;
                                            paramCalcVo.paramValue = dicData[modelGxy.paramNo];
                                            paramCalcVo.recordDate = DateTime.Now;

                                            if (data.Any(r => r.paramNo == paramCalcVo.paramNo && r.modelId == modelId && r.qnRecId == paramCalcVo.qnRecId && r.regNo == paramCalcVo.regNo))
                                            {
                                                EntityModelParamCalc cloneVo = data.Find(r => r.paramNo == paramCalcVo.paramNo && r.modelId == modelId && r.qnRecId == paramCalcVo.qnRecId && r.regNo == paramCalcVo.regNo);
                                                cloneVo.calcScore = score;
                                            }
                                            else
                                            {
                                                data.Add(paramCalcVo);
                                            }
                                        }

                                        result += score;
                                    }
                                    if (modelGxy.paramNo == "Age")
                                    {
                                        decimal df  = 0;
                                        decimal bDf = 0;
                                        decimal age = 0;
                                        if (dicData.ContainsKey("Birthday") && !ageFlag)
                                        {
                                            if (!string.IsNullOrEmpty(dicData["Birthday"]))
                                            {
                                                age                    = CalcAge.GetAgeInt(Function.Datetime(dicData["Birthday"]));
                                                df                     = CalcDf(age, modelId, modelGxy.paramNo, out bDf);
                                                result                += df;
                                                ageFlag                = true;
                                                paramCalcVo            = new EntityModelParamCalc();
                                                paramCalcVo.clientId   = vo.clientNo;
                                                paramCalcVo.regNo      = vo.regNo;
                                                paramCalcVo.qnRecId    = vo.qnRecId;
                                                paramCalcVo.modelId    = modelId;
                                                paramCalcVo.paramNo    = modelGxy.paramNo;
                                                paramCalcVo.paramName  = modelGxy.paramName;
                                                paramCalcVo.calcScore  = df;
                                                paramCalcVo.recordDate = DateTime.Now;
                                                paramCalcVo.paramValue = dicData["Birthday"];
                                                paramCalcVo.recordDate = DateTime.Now;
                                                data.Add(paramCalcVo);
                                            }
                                        }
                                    }
                                    //最佳状态 得分
                                    if (modelGxy.isBest == "1")
                                    {
                                        bestDf += Function.Dec(modelGxy.score);
                                    }
                                }
                            }
                        }
                        else if (model.paramType == 2)
                        {
                            if (lstTjResult == null)
                            {
                                continue;
                            }
                            EntityTjResult tjVo = lstTjResult.Find(r => r.itemCode == model.paramNo);
                            if (tjVo == null)
                            {
                                continue;
                            }
                            decimal tjValue = Function.Dec(tjVo.itemResult);
                            decimal df      = 0;
                            decimal bDf     = 0;
                            df                     = CalcDf(tjValue, modelId, model.paramNo, out bDf);
                            paramCalcVo            = new EntityModelParamCalc();
                            paramCalcVo.clientId   = vo.clientNo;
                            paramCalcVo.regNo      = vo.regNo;
                            paramCalcVo.qnRecId    = vo.qnRecId;
                            paramCalcVo.modelId    = modelId;
                            paramCalcVo.paramNo    = model.paramNo;
                            paramCalcVo.paramName  = model.paramName;
                            paramCalcVo.calcScore  = df;
                            paramCalcVo.recordDate = DateTime.Now;
                            paramCalcVo.paramValue = tjVo.itemResult.ToString();
                            result                += df;
                            bestDf                += bDf;
                            if (data.Any(r => r.modelId == modelId && r.paramNo == model.paramNo && paramCalcVo.qnRecId == vo.qnRecId))
                            {
                                continue;
                            }
                            else
                            {
                                data.Add(paramCalcVo);
                            }
                        }
                    }
                }
            }
            return(data);
        }