/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }