606 lines
20 KiB
C#
606 lines
20 KiB
C#
using HL_FristAidPlatform_DataBase;
|
|
using HL_FristAidPlatform_Help;
|
|
using HL_FristAidPlatform_IDataBase;
|
|
using HL_FristAidPlatform_Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace HL_FristAidPlatform_Bussiness
|
|
{
|
|
public class T_Service_Apoplexy_FollowUpInfoBLL
|
|
{
|
|
private IT_Service_Apoplexy_FollowUpInfo IService = new T_Service_Apoplexy_FollowUpInfoDB();
|
|
IT_Service_Apoplexy_FollowUpBase FIService = new T_Service_Apoplexy_FollowUpBaseDB();
|
|
public int sum = 0;
|
|
public int count = 39;
|
|
public T_Service_Apoplexy_FollowUpInfo GetByFGuid(string FGuid)
|
|
{
|
|
return IService.GetByFGuid(FGuid);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增患者随访计划
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public T_Service_Apoplexy_FollowUpInfo Add(T_Service_Apoplexy_FollowUpInfo model)
|
|
{
|
|
return IService.Add(model);
|
|
}
|
|
public MessageModel<bool> AddORUpdate(T_Service_Apoplexy_FollowUpInfo model)
|
|
{
|
|
//先查询有没有该患者数据
|
|
T_Service_Apoplexy_FollowUpInfo anxywb = new T_Service_Apoplexy_FollowUpInfo();
|
|
anxywb = IService.GetByFGuid(model.FGUID);
|
|
model.Proportion = GetProportion(model);
|
|
|
|
if (anxywb != null) //有执行修改操作
|
|
{
|
|
model.GUID = anxywb.GUID;
|
|
if (IService.Update(model) > 0)
|
|
{
|
|
DeleteFollowlist(model);
|
|
return new MessageModel<bool> { Success = true, Msg = "修改成功" };
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<bool> { Success = false, Msg = "修改失败" };
|
|
}
|
|
}
|
|
else
|
|
{ //没有执行新增操作
|
|
model.GUID = Guid.NewGuid().ToString();
|
|
|
|
if (Add(model) != null)
|
|
{
|
|
DeleteFollowlist(model);
|
|
return new MessageModel<bool> { Success = true, Msg = "新增成功" };
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<bool> { Success = true, Msg = "新增成功" };
|
|
}
|
|
}
|
|
|
|
}
|
|
public void DeleteFollowlist(T_Service_Apoplexy_FollowUpInfo model)
|
|
{
|
|
//判断是否死亡后删除下面的随访记录
|
|
if (!string.IsNullOrEmpty(model.FIsDie) && int.Parse(model.FIsDie) == 1)
|
|
{
|
|
T_Service_Apoplexy_FollowUpBase FB = FIService.GetByGuid(model.FGUID);
|
|
List<T_Service_Apoplexy_FAHBaseProportion> FBPList = FIService.GetFollowUpList(FB.PatientGuid);
|
|
|
|
for (int i = 0; i < FBPList.Count; i++)
|
|
{
|
|
int comp = DateTime.Compare(FBPList[i].NextTime, FB.NextTime);
|
|
if (comp > 0)
|
|
{
|
|
T_Service_Apoplexy_FollowUpBase fbtemp = new T_Service_Apoplexy_FollowUpBase();
|
|
fbtemp.GUID = FBPList[i].GUID.ToString();
|
|
FIService.Delete(fbtemp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public string GetProportion(T_Service_Apoplexy_FollowUpInfo model)
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FMode))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//cbcFNurse 随访期间护理人员
|
|
if (!string.IsNullOrEmpty(model.FNurse))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
if (!string.IsNullOrEmpty(model.FWork))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
|
|
//随访期间新发事件
|
|
if (!string.IsNullOrEmpty(model.FNewDisease))
|
|
{
|
|
sum = sum + 1;
|
|
int temp1 = 0;
|
|
int temp2 = 0;
|
|
if (model.FNewDisease.Contains("01"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FAType))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
if (!string.IsNullOrEmpty(model.FATypeDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 2;
|
|
}
|
|
if (model.FNewDisease.Contains("02"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FTIADate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("03"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FMyocardialInfarctionDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("04"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FAnginaDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("05"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FHeartFailureDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("06"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FEmbolismDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("07"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FVascularDiseaseDate.ToString()))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("08"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FMainDiagnosis))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FNewDisease.Contains("98"))
|
|
{
|
|
sum += 0;
|
|
count += 0;
|
|
}
|
|
if (temp1 != 0 || temp2 != 0)
|
|
{
|
|
sum += temp1;
|
|
count += temp2;
|
|
}
|
|
}
|
|
|
|
//随访期间新发危险因素 cbcFNewDiseaseRisk
|
|
if (!string.IsNullOrEmpty(model.FNewDiseaseRisk))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//FSmokingSituation
|
|
if (!string.IsNullOrEmpty(model.FSmokingSituation))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(model.FDrinkingSituation))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(model.FMovement))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//FPressureRate 测量频率
|
|
if (!string.IsNullOrEmpty(model.FPressureRate))
|
|
{
|
|
if (int.Parse(model.FPressureRate) != 3)
|
|
{
|
|
sum = sum + 1;
|
|
//FSystolicPressure
|
|
if (!string.IsNullOrEmpty(model.FSystolicPressure))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//FDiastolicPressure
|
|
if (!string.IsNullOrEmpty(model.FDiastolicPressure))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 2;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 3;
|
|
}
|
|
}
|
|
//FSugarRate
|
|
if (!string.IsNullOrEmpty(model.FSugarRate))
|
|
{
|
|
if (int.Parse(model.FSugarRate) != 3)
|
|
{
|
|
sum = sum + 1;
|
|
//FEmptyStomachSuger
|
|
if (!string.IsNullOrEmpty(model.FEmptyStomachSuger))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//FAfterMealSuger
|
|
if (!string.IsNullOrEmpty(model.FAfterMealSuger))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 2;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 3;
|
|
}
|
|
}
|
|
//是否使用抗栓药物 IsFAntithrombotic
|
|
if (!string.IsNullOrEmpty(model.IsFAntithrombotic))
|
|
{
|
|
if (int.Parse(model.IsFAntithrombotic) == 1)
|
|
{
|
|
sum = sum + 1;
|
|
int temp1 = 0;
|
|
int temp2 = 0;
|
|
//cbcFDrugName 服用药物名称
|
|
if (!string.IsNullOrEmpty(model.FDrugName))
|
|
{
|
|
sum = sum + 1;
|
|
//count = count + 1;
|
|
if (model.FDrugName.Contains("01"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FASPLUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("02"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FLBGLUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("03"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FAZGLUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("04"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FSBDMUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("05"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FSLPDUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("06"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FXLTCUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("07"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FHFLUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("08"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FDBJQUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("09"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FLFSBUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("10"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FAPSBUsage))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
if (model.FDrugName.Contains("99"))
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FOtherDrugs))
|
|
{
|
|
temp1 = temp1 + 1;
|
|
}
|
|
temp2 = temp2 + 1;
|
|
}
|
|
sum += temp1;
|
|
count += temp2;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 13;
|
|
}
|
|
}
|
|
|
|
//FIsPressure 降压药
|
|
if (!string.IsNullOrEmpty(model.FIsPressure))
|
|
{
|
|
if (int.Parse(model.FIsPressure) == 1)
|
|
{
|
|
sum = sum + 1;
|
|
if (!string.IsNullOrEmpty(model.FPressureGroup))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
if (!string.IsNullOrEmpty(model.FPressureType))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 2;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 3;
|
|
}
|
|
}
|
|
|
|
//FIsSugar 是否使用降糖药
|
|
if (!string.IsNullOrEmpty(model.FIsSugar))
|
|
{
|
|
if (int.Parse(model.FIsSugar) == 1)
|
|
{
|
|
sum = sum + 1;
|
|
if (!string.IsNullOrEmpty(model.FSugarType))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 2;
|
|
}
|
|
}
|
|
|
|
//是否使用调脂药
|
|
if (!string.IsNullOrEmpty(model.FIsLipid))
|
|
{
|
|
if (int.Parse(model.FIsLipid) == 1)
|
|
{
|
|
sum = sum + 1;
|
|
if (!string.IsNullOrEmpty(model.FLipidType))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 2;
|
|
}
|
|
}
|
|
|
|
//是否失访
|
|
if (!string.IsNullOrEmpty(model.IsF))
|
|
{
|
|
if (int.Parse(model.IsF) == 0)
|
|
{
|
|
sum = sum + 3;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 1;
|
|
if (!string.IsNullOrEmpty(model.FNoFReason))
|
|
{
|
|
sum = sum + 1;
|
|
if (int.Parse(model.FNoFReason) == 2)
|
|
{
|
|
if (!string.IsNullOrEmpty(model.FNoFReasonOther))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
|
|
}
|
|
}
|
|
//mrs评分
|
|
if (!string.IsNullOrEmpty(model.FIsmRS))
|
|
{
|
|
if (int.Parse(model.FIsmRS) == 0)
|
|
{
|
|
sum += 2;
|
|
}
|
|
else
|
|
{
|
|
sum += 1;
|
|
if (!string.IsNullOrEmpty(model.FmRSScore))
|
|
{
|
|
sum += 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
}
|
|
|
|
//NIHSS评分
|
|
if (!string.IsNullOrEmpty(model.FIsNIHSS))
|
|
{
|
|
if (int.Parse(model.FIsNIHSS) == 0)
|
|
{
|
|
sum += 2;
|
|
}
|
|
else
|
|
{
|
|
sum += 1;
|
|
if (!string.IsNullOrEmpty(model.FNIHSSScore))
|
|
{
|
|
sum += 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
}
|
|
|
|
//是否死亡
|
|
if (!string.IsNullOrEmpty(model.FIsDie))
|
|
{
|
|
if (int.Parse(model.FIsDie) == 0)
|
|
{
|
|
sum = sum + 3;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 1;
|
|
if (!string.IsNullOrEmpty(model.FDieReason))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
if (!string.IsNullOrEmpty(model.FDieTime.ToString()))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 2;
|
|
}
|
|
}
|
|
|
|
//体重
|
|
if (!string.IsNullOrEmpty(model.FWeight))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//收缩压
|
|
if (!string.IsNullOrEmpty(model.FSystolicPressureValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//舒张压
|
|
if (!string.IsNullOrEmpty(model.FDiastolicPressureValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//是否检查心电图
|
|
if (!string.IsNullOrEmpty(model.FIsElectrocardiogram))
|
|
{
|
|
if (int.Parse(model.FIsElectrocardiogram) == 1)
|
|
{
|
|
sum = sum + 1;
|
|
//心电图结果
|
|
if (!string.IsNullOrEmpty(model.FElectrocardiogramResult)&& model.FElectrocardiogramResult!=";;")
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
count += 1;
|
|
}
|
|
else
|
|
{
|
|
sum = sum + 2;
|
|
}
|
|
}
|
|
|
|
//空腹血糖
|
|
if (!string.IsNullOrEmpty(model.FEmptyStomachSugerValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//餐后两小时血糖数值
|
|
if (!string.IsNullOrEmpty(model.FAfterMealSugerValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
|
|
//糖化血红蛋白数值
|
|
if (!string.IsNullOrEmpty(model.FGlycosylatedhemoglobinValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//甘油三脂数值
|
|
if (!string.IsNullOrEmpty(model.FTriglycerideValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//胆固醇数值
|
|
if (!string.IsNullOrEmpty(model.FCholesterolValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//低密度脂蛋白胆固醇数值
|
|
if (!string.IsNullOrEmpty(model.FLowCholesterolValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//高密度脂蛋白胆固醇数值
|
|
if (!string.IsNullOrEmpty(model.FHighCholesterolValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
//同型半胱氨酸数值
|
|
if (!string.IsNullOrEmpty(model.FHomocysteineValue))
|
|
{
|
|
sum = sum + 1;
|
|
}
|
|
|
|
model.Proportion = "0";
|
|
if (sum != 0)
|
|
{
|
|
string temp = ((double)sum / (double)count).ToString("0%");
|
|
string[] t = temp.Split("%");
|
|
model.Proportion = t[0];
|
|
}
|
|
if (model.IsF == "1" || model.FIsDie == "1")
|
|
{
|
|
model.Proportion = "100";
|
|
}
|
|
return model.Proportion;
|
|
}
|
|
|
|
}
|
|
}
|