|
|
using NPOI.POIFS.Properties;using Shentun.Peis.CustomerOrgs;using Shentun.Peis.DiagnosisFunctions;using Shentun.Peis.Models;using System;using System.Collections.Generic;using System.Linq;using System.Runtime.ConstrainedExecution;using System.Text;using System.Threading.Tasks;using Volo.Abp.Domain.Repositories;using Volo.Abp.Uow;using Xunit;using Xunit.Abstractions;
namespace Shentun.Peis{ public class DiagnosisFunctionAppServiceTest : PeisApplicationTestBase { private readonly IRepository<CustomerOrg, Guid> _repository; private readonly DiagnosisFunctionAppService _appService; private readonly ITestOutputHelper _output; private readonly IUnitOfWorkManager _unitOfWorkManager; public DiagnosisFunctionAppServiceTest(ITestOutputHelper testOutputHelper) { _output = testOutputHelper; _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); _repository = GetRequiredService<IRepository<CustomerOrg, Guid>>(); _appService = GetRequiredService<DiagnosisFunctionAppService>(); } [Fact] public async Task GetDiagnosisResultAsync2() { using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) { var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() { RegisterCheckId = new Guid("3a123c55-07ad-f46e-8f6a-4c3b8c8a78de"), Items = new List<GetDiagnosisResultRequest_Item> { new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c2-6bcd-5490-19af-4663293fddd8"), Result = "未见异常" },
new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c2-6c55-b07a-79cd-bec4e231390b"), Result = "未见异常" } } }; var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); foreach (var item in result.DiagnosisResultDetails) { _output.WriteLine(item.DiagnosisResult); } } }
[Fact] public async Task GetDiagnosisResultAsync3() { using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) { var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() { RegisterCheckId = new Guid("3a11ee70-0351-8970-5bc5-dc0f72e62339"), Items = new List<GetDiagnosisResultRequest_Item> { new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0c6555-0dad-55b4-b59f-b11e8074cfdd"), Result = "阳性" },
new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0c6558-e2a6-4aab-e6e9-d34957a7c3ed"), Result = "阴性" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0c655a-1fdc-2447-6dc9-d8ec8e110d2e"), Result = "阳性" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0c655c-1c9f-c8c5-150a-59b3cc351472"), Result = "阴性" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0c655d-6ab7-ca7e-3920-3b493ec83192"), Result = "阳性" }, } }; var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); foreach (var item in result.DiagnosisResultDetails) { _output.WriteLine(item.DiagnosisResult); } } } [Fact] public async Task GetDiagnosisResultAsync4() { using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) { var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() { RegisterCheckId = new Guid("3a11ee70-034c-1ce6-40f9-7eabb02830a9"), Items = new List<GetDiagnosisResultRequest_Item> { new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0d2916-3706-a22a-69dd-bd80be509d07"), Result = "30.5" },
new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0d2919-49d5-30d3-4373-b3dc1e806732"), Result = "9" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0d2917-40e2-2f81-ebfc-267a9a98b02e"), Result = "91.3" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0d291a-6ab5-8642-9cd3-30353ecb5d15"), Result = "90" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"), Result = "13" }, } }; var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); foreach (var item in result.DiagnosisResultDetails) { _output.WriteLine(item.DiagnosisResult); } } } [Fact] public async Task GetDiagnosisResultAsync5() { using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) { var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() { RegisterCheckId = new Guid("3a123c55-07a8-b330-ac9c-52e2a05e1dba"), Items = new List<GetDiagnosisResultRequest_Item> { new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c2-fde9-6f64-d268-54c7817fc9a4"), Result = "30.5" },
new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c2-fefd-b6cd-2933-84860f5af7b9"), Result = "9" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c3-0017-e959-3735-5a3c71a9c70a"), Result = "91.3" }, new GetDiagnosisResultRequest_Item() { ItemId = new Guid("3a1203c3-012e-1a2e-66a8-1829caf0cd64"), Result = "90" }, //new GetDiagnosisResultRequest_Item()
//{
// ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"),
// Result = "13"
//},
} }; var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); foreach (var item in result.DiagnosisResultDetails) { _output.WriteLine(item.DiagnosisResult); } } } /// <summary>
/// 体重指数测试结果
/// </summary>
[Fact] public void GetItemCalculateResultTzzsTest() { PatientItemCalculateInput patient = new PatientItemCalculateInput(); patient.SexName = "男"; patient.Age = 30; patient.Items = new List<ItemResultInput>() { new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "身高", Result = "122" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "体重", Result = "221" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "体重指数", } }; var result = GetItemCalculateResultTzzs(patient); _output.WriteLine("结果:" + result); string code = @"
string result = """"; decimal sg = 0; decimal tz = 0; foreach (var item in patient.Items) { if (item.ItemName == ""身高"") { if (decimal.TryParse(item.Result, out sg)) { if (sg == 0) { return null; } } else { return null; }
} if (item.ItemName == ""体重"") { if (decimal.TryParse(item.Result, out tz)) { if (tz == 0) { return null; } } else { return null; }
} } result = (tz /((sg/100) * (sg / 100))).ToString(""0.00""); return result; ";
DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder(); result = diagnosisBuilder.GetItemCalculateResult(patient, code); _output.WriteLine("动态结果:" + result);
}
/// <summary>
/// 体重指数
/// </summary>
/// <param name="patient"></param>
/// <returns></returns>
public string GetItemCalculateResultTzzs(PatientItemCalculateInput patient) { string result = ""; decimal sg = 0; decimal tz = 0;
foreach (var item in patient.Items) { if (item.ItemName == "身高") { if (decimal.TryParse(item.Result, out sg)) { if (sg == 0) { return null; } } else { return null; }
} if (item.ItemName == "体重") { if (decimal.TryParse(item.Result, out tz)) { if (tz == 0) { return null; } } else { return null; }
} } result = (tz / ((sg / 100) * (sg / 100))).ToString("0.00"); return result; }
[Fact] public void GetItemDiagnosisResultXYTest() { PatientItemDiagnosisInput patient = new PatientItemDiagnosisInput(); patient.SexName = "男"; patient.Age = 30; patient.Item = new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "血压", Result = "180/110" }; var result = GetItemDiagnosisResultXY(patient); _output.WriteLine("结果:" + result); string code = @"
string result = """"; decimal szyDecimal = 0; decimal ssyDecimal = 0; var itemResult = patient.Item.Result; if (string.IsNullOrWhiteSpace(itemResult)) { return null; } if (itemResult == ""/"") return null; var pos = itemResult.IndexOf(""/""); var szy = itemResult.Substring(0, pos); var ssy = itemResult.Substring(pos + 1); if (!decimal.TryParse(szy, out szyDecimal)) { return null; }
if (!decimal.TryParse(ssy, out ssyDecimal)) { return null; } if (szyDecimal > 180 || ssyDecimal > 110) { return ""Ⅲ级高血压""; } if (szyDecimal > 160 || ssyDecimal > 100) { return ""Ⅱ级高血压""; } if (szyDecimal > 140 || ssyDecimal > 90) { return ""Ⅰ级高血压""; } return result; ";
DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder(); result = diagnosisBuilder.GetItemDiagnosisResult(patient, code); _output.WriteLine("动态结果:" + result);
}
/// <summary>
///
/// </summary>
/// <param name="patient"></param>
/// <returns></returns>
public string GetItemDiagnosisResultXY(PatientItemDiagnosisInput patient) { string result = ""; decimal szyDecimal = 0; decimal ssyDecimal = 0; var itemResult = patient.Item.Result; if (string.IsNullOrWhiteSpace(itemResult)) { return null; } if (itemResult == "/") return null; var pos = itemResult.IndexOf("/"); var szy = itemResult.Substring(0, pos); var ssy = itemResult.Substring(pos + 1); if (!decimal.TryParse(szy, out szyDecimal)) { return null; }
if (!decimal.TryParse(ssy, out ssyDecimal)) { return null; } if (szyDecimal > 180 || ssyDecimal > 110) { return "Ⅲ级高血压"; } if (szyDecimal > 160 || ssyDecimal > 100) { return "Ⅱ级高血压"; } if (szyDecimal > 140 || ssyDecimal > 90) { return "Ⅰ级高血压"; } return result; }
[Fact] public void GetItemDiagnosisResultTzzsTest() { PatientItemDiagnosisInput patient = new PatientItemDiagnosisInput(); patient.SexName = "男"; patient.Age = 30; patient.Item = new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "体重指数", Result = "25" }; var result = GetItemDiagnosisResultTzzs(patient); _output.WriteLine("结果:" + result); string code = @"
string result = """"; decimal tzzsDecimal = 0; var itemResult = patient.Item.Result; if (string.IsNullOrWhiteSpace(itemResult)) { return null; } if (!decimal.TryParse(itemResult, out tzzsDecimal)) { return null; }
if (tzzsDecimal > 24 ) { return ""超重""; } if (tzzsDecimal < 18) { return ""营养不良""; } return result;; ";
DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder(); result = diagnosisBuilder.GetItemDiagnosisResult(patient, code); _output.WriteLine("动态结果:" + result);
}
public string GetItemDiagnosisResultTzzs(PatientItemDiagnosisInput patient) { string result = ""; decimal tzzsDecimal = 0; var itemResult = patient.Item.Result; if (string.IsNullOrWhiteSpace(itemResult)) { return null; } if (!decimal.TryParse(itemResult, out tzzsDecimal)) { return null; }
if (tzzsDecimal > 24 ) { return "超重"; } if (tzzsDecimal < 18) { return "营养不良"; } return result; } /// <summary>
/// 乙肝五项
/// </summary>
[Fact] public void GetAsbitemDiagnosisResultYgwxTest() { var patient = new PatientAsbitemDiagnosisInput(); patient.SexName = "男"; patient.Age = 30; patient.Items = new List<ItemResultInput>() { new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "乙肝表面抗原(HBsAg)", Result = "阳性" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "乙肝表面抗体(抗-HBs)", Result = "阴性" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "乙肝e抗原(HBeAg)", Result = "阳性" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "乙肝e抗体(抗-HBe)", Result = "阴性" }, new ItemResultInput() { ItemId = Guid.NewGuid(), ItemName = "乙肝核心抗体(抗-HBc)", Result = "阳性" } }; var result = GetAsbitemDiagnosisResultYgwx(patient); _output.WriteLine("结果:" + result); string code = @"
string msg = null; string result1 = """"; string result2= """"; string result3 = """"; string result4 = """"; string result5 = """"; foreach (var item in patient.Items) { if(item.ItemName == ""乙肝表面抗原(HBsAg)"") { result1 = item.Result; } if (item.ItemName == ""乙肝表面抗体(抗-HBs)"") { result2 = item.Result; } if (item.ItemName == ""乙肝e抗原(HBeAg)"") { result3 = item.Result; } if (item.ItemName == ""乙肝e抗体(抗-HBe)"") { result4 = item.Result; } if (item.ItemName == ""乙肝核心抗体(抗-HBc)"") { result5 = item.Result; }
} switch (result1 + "","" + result2 + "","" + result3 + "","" + result4 + "","" + result5) { case ""阳性,阴性,阳性,阴性,阳性"": msg = ""乙肝五项检查大三阳""; break; case ""阳性,阴性,阴性,阳性,阳性"": msg = ""乙肝五项检查小三阳""; break; case ""阳性,阴性,阳性,阴性,阴性"": msg = ""乙肝五项检查第一项,第三项阳性""; break; case ""阴性,阴性,阳性,阳性,阳性"": msg = ""乙肝两对半三,四,五阳性""; break; case ""阳性,阴性,阴性,阴性,阳性"": msg = ""乙肝五项检查第一项,第五项阳性""; break; case ""阴性,阴性,阴性,阳性,阳性"": msg = ""乙肝五项检查第四项,第五项阳性""; break; case ""阳性,阴性,阳性,阳性,阴性"": msg = ""乙肝两对半一,三,四阳性""; break; case ""阴性,阴性,阳性,阴性,阳性"": msg = ""乙肝五项检查第三项,第五项阳性""; break; case ""阴性,阴性,阴性,阴性,阴性"": msg = ""乙肝五项全阴""; break; case ""阴性,阳性,阴性,阴性,阴性"": msg = ""乙肝表面抗体阳性""; break; case ""阳性,阴性,阴性,阴性,阴性"": msg = ""乙肝表面抗原阳性""; break; case ""阴性,阳性,阴性,阳性,阳性"": msg = ""乙肝五项检查第二,第四,第五项阳性""; break; case ""阴性,阴性,阴性,阳性,阴性"": msg = ""乙肝e抗体阳性""; break; case ""阳性,阴性,阴性,阳性,阴性"": msg = ""乙肝五项检查第一项,第四项阳性""; break; case ""阴性,阳性,阴性,阴性,阳性"": msg = ""乙肝五项检查第二项,第五项阳性""; break; case ""阴性,阴性,阴性,阴性,阳性"": msg = ""乙肝核心抗体阳性""; break; case ""阴性,弱阳性,阴性,阴性,阴性"": msg = ""乙肝表面抗体弱阳性""; break; case ""阴性,弱阳性,阴性,阴性,阳性"": msg = ""乙肝五项检查第二项弱阳性,第五项阳性""; break; default: msg = """"; break; } return msg; ";
DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder(); result = diagnosisBuilder.GetAsbitemDiagnosisResult(patient, code); _output.WriteLine("动态结果:" + result);
}
public string GetAsbitemDiagnosisResultYgwx(PatientAsbitemDiagnosisInput patient) { string msg = null; string result1 = ""; string result2 = ""; string result3 = ""; string result4 = ""; string result5 = ""; foreach (var item in patient.Items) { if (item.ItemName == "乙肝表面抗原(HBsAg)") { result1 = item.Result; } if (item.ItemName == "乙肝表面抗体(抗-HBs)") { result2 = item.Result; } if (item.ItemName == "乙肝e抗原(HBeAg)") { result3 = item.Result; } if (item.ItemName == "乙肝e抗体(抗-HBe)") { result4 = item.Result; } if (item.ItemName == "乙肝核心抗体(抗-HBc)") { result5 = item.Result; }
} switch (result1 + "," + result2 + "," + result3 + "," + result4 + "," + result5) { case "阳性,阴性,阳性,阴性,阳性": msg = "乙肝五项检查大三阳"; break; case "阳性,阴性,阴性,阳性,阳性": msg = "乙肝五项检查小三阳"; break; case "阳性,阴性,阳性,阴性,阴性": msg = "乙肝五项检查第一项,第三项阳性"; break; case "阴性,阴性,阳性,阳性,阳性": msg = "乙肝两对半三,四,五阳性"; break; case "阳性,阴性,阴性,阴性,阳性": msg = "乙肝五项检查第一项,第五项阳性"; break; case "阴性,阴性,阴性,阳性,阳性": msg = "乙肝五项检查第四项,第五项阳性"; break; case "阳性,阴性,阳性,阳性,阴性": msg = "乙肝两对半一,三,四阳性"; break; case "阴性,阴性,阳性,阴性,阳性": msg = "乙肝五项检查第三项,第五项阳性"; break; case "阴性,阴性,阴性,阴性,阴性": msg = "乙肝五项全阴"; break; case "阴性,阳性,阴性,阴性,阴性": msg = "乙肝表面抗体阳性"; break; case "阳性,阴性,阴性,阴性,阴性": msg = "乙肝表面抗原阳性"; break; case "阴性,阳性,阴性,阳性,阳性": msg = "乙肝五项检查第二,第四,第五项阳性"; break; case "阴性,阴性,阴性,阳性,阴性": msg = "乙肝e抗体阳性"; break; case "阳性,阴性,阴性,阳性,阴性": msg = "乙肝五项检查第一项,第四项阳性"; break; case "阴性,阳性,阴性,阴性,阳性": msg = "乙肝五项检查第二项,第五项阳性"; break; case "阴性,阴性,阴性,阴性,阳性": msg = "乙肝核心抗体阳性"; break; case "阴性,弱阳性,阴性,阴性,阴性": msg = "乙肝表面抗体弱阳性"; break; case "阴性,弱阳性,阴性,阴性,阳性": msg = "乙肝五项检查第二项弱阳性,第五项阳性"; break; default: msg = ""; break; } return msg; } }}
|