You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

973 lines
36 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using NPOI.POIFS.Properties;
  2. using Shentun.Peis.CustomerOrgs;
  3. using Shentun.Peis.DiagnosisFunctions;
  4. using Shentun.Peis.Models;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Runtime.ConstrainedExecution;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using Volo.Abp.Domain.Repositories;
  12. using Volo.Abp.Uow;
  13. using Xunit;
  14. using Xunit.Abstractions;
  15. namespace Shentun.Peis
  16. {
  17. public class DiagnosisFunctionAppServiceTest : PeisApplicationTestBase
  18. {
  19. private readonly IRepository<CustomerOrg, Guid> _repository;
  20. private readonly DiagnosisFunctionAppService _appService;
  21. private readonly ITestOutputHelper _output;
  22. private readonly IUnitOfWorkManager _unitOfWorkManager;
  23. public DiagnosisFunctionAppServiceTest(ITestOutputHelper testOutputHelper)
  24. {
  25. _output = testOutputHelper;
  26. _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();
  27. _repository = GetRequiredService<IRepository<CustomerOrg, Guid>>();
  28. _appService = GetRequiredService<DiagnosisFunctionAppService>();
  29. }
  30. [Fact]
  31. public async Task GetDiagnosisResultAsync2()
  32. {
  33. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  34. {
  35. var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto()
  36. {
  37. RegisterCheckId = new Guid("3a1272f5-689f-f6ea-3ab7-65e75e94b058"),
  38. Items = new List<GetDiagnosisResultRequest_Item>
  39. {
  40. new GetDiagnosisResultRequest_Item()
  41. {
  42. ItemId = new Guid("3a126b34-dd13-c067-7b10-56cbd5fefedb"),
  43. Result = "50.1"
  44. },
  45. // new GetDiagnosisResultRequest_Item()
  46. //{
  47. // ItemId = new Guid("3a1203c2-6c55-b07a-79cd-bec4e231390b"),
  48. // Result = "未见异常"
  49. //}
  50. }
  51. };
  52. var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto);
  53. foreach (var item in result.DiagnosisResultDetails)
  54. {
  55. _output.WriteLine(item.DiagnosisResult);
  56. }
  57. }
  58. }
  59. [Fact]
  60. public async Task GetDiagnosisResultAsync3()
  61. {
  62. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  63. {
  64. var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto()
  65. {
  66. RegisterCheckId = new Guid("3a11ee70-0351-8970-5bc5-dc0f72e62339"),
  67. Items = new List<GetDiagnosisResultRequest_Item>
  68. {
  69. new GetDiagnosisResultRequest_Item()
  70. {
  71. ItemId = new Guid("3a0c6555-0dad-55b4-b59f-b11e8074cfdd"),
  72. Result = "阳性"
  73. },
  74. new GetDiagnosisResultRequest_Item()
  75. {
  76. ItemId = new Guid("3a0c6558-e2a6-4aab-e6e9-d34957a7c3ed"),
  77. Result = "阴性"
  78. },
  79. new GetDiagnosisResultRequest_Item()
  80. {
  81. ItemId = new Guid("3a0c655a-1fdc-2447-6dc9-d8ec8e110d2e"),
  82. Result = "阳性"
  83. },
  84. new GetDiagnosisResultRequest_Item()
  85. {
  86. ItemId = new Guid("3a0c655c-1c9f-c8c5-150a-59b3cc351472"),
  87. Result = "阴性"
  88. },
  89. new GetDiagnosisResultRequest_Item()
  90. {
  91. ItemId = new Guid("3a0c655d-6ab7-ca7e-3920-3b493ec83192"),
  92. Result = "阳性"
  93. },
  94. }
  95. };
  96. var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto);
  97. foreach (var item in result.DiagnosisResultDetails)
  98. {
  99. _output.WriteLine(item.DiagnosisResult);
  100. }
  101. }
  102. }
  103. [Fact]
  104. public async Task GetDiagnosisResultAsync4()
  105. {
  106. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  107. {
  108. var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto()
  109. {
  110. RegisterCheckId = new Guid("3a11ee70-034c-1ce6-40f9-7eabb02830a9"),
  111. Items = new List<GetDiagnosisResultRequest_Item>
  112. {
  113. new GetDiagnosisResultRequest_Item()
  114. {
  115. ItemId = new Guid("3a0d2916-3706-a22a-69dd-bd80be509d07"),
  116. Result = "30.5"
  117. },
  118. new GetDiagnosisResultRequest_Item()
  119. {
  120. ItemId = new Guid("3a0d2919-49d5-30d3-4373-b3dc1e806732"),
  121. Result = "9"
  122. },
  123. new GetDiagnosisResultRequest_Item()
  124. {
  125. ItemId = new Guid("3a0d2917-40e2-2f81-ebfc-267a9a98b02e"),
  126. Result = "91.3"
  127. },
  128. new GetDiagnosisResultRequest_Item()
  129. {
  130. ItemId = new Guid("3a0d291a-6ab5-8642-9cd3-30353ecb5d15"),
  131. Result = "90"
  132. },
  133. new GetDiagnosisResultRequest_Item()
  134. {
  135. ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"),
  136. Result = "13"
  137. },
  138. }
  139. };
  140. var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto);
  141. foreach (var item in result.DiagnosisResultDetails)
  142. {
  143. _output.WriteLine(item.DiagnosisResult);
  144. }
  145. }
  146. }
  147. [Fact]
  148. public async Task GetDiagnosisResultAsync5()
  149. {
  150. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  151. {
  152. var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto()
  153. {
  154. RegisterCheckId = new Guid("3a123c55-07a8-b330-ac9c-52e2a05e1dba"),
  155. Items = new List<GetDiagnosisResultRequest_Item>
  156. {
  157. new GetDiagnosisResultRequest_Item()
  158. {
  159. ItemId = new Guid("3a1203c2-fde9-6f64-d268-54c7817fc9a4"),
  160. Result = "30.5"
  161. },
  162. new GetDiagnosisResultRequest_Item()
  163. {
  164. ItemId = new Guid("3a1203c2-fefd-b6cd-2933-84860f5af7b9"),
  165. Result = "9"
  166. },
  167. new GetDiagnosisResultRequest_Item()
  168. {
  169. ItemId = new Guid("3a1203c3-0017-e959-3735-5a3c71a9c70a"),
  170. Result = "91.3"
  171. },
  172. new GetDiagnosisResultRequest_Item()
  173. {
  174. ItemId = new Guid("3a1203c3-012e-1a2e-66a8-1829caf0cd64"),
  175. Result = "90"
  176. },
  177. //new GetDiagnosisResultRequest_Item()
  178. //{
  179. // ItemId = new Guid("3a0d2918-344b-0373-a53c-b4888bd6b9a6"),
  180. // Result = "13"
  181. //},
  182. }
  183. };
  184. var result = await _appService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto);
  185. foreach (var item in result.DiagnosisResultDetails)
  186. {
  187. _output.WriteLine(item.DiagnosisResult);
  188. }
  189. }
  190. }
  191. /// <summary>
  192. /// 体重指数测试结果
  193. /// </summary>
  194. [Fact]
  195. public void GetItemCalculateResultTzzsTest()
  196. {
  197. PatientItemCalculateInput patient = new PatientItemCalculateInput();
  198. patient.SexName = "男";
  199. patient.Age = 30;
  200. patient.Items = new List<ItemResultInput>()
  201. {
  202. new ItemResultInput()
  203. {
  204. ItemId = Guid.NewGuid(),
  205. ItemName = "身高",
  206. Result = "122"
  207. },
  208. new ItemResultInput()
  209. {
  210. ItemId = Guid.NewGuid(),
  211. ItemName = "体重",
  212. Result = "221"
  213. },
  214. new ItemResultInput()
  215. {
  216. ItemId = Guid.NewGuid(),
  217. ItemName = "体重指数",
  218. }
  219. };
  220. var result = GetItemCalculateResultTzzs(patient);
  221. _output.WriteLine("结果:" + result);
  222. string code = @"
  223. string result = """";
  224. decimal sg = 0;
  225. decimal tz = 0;
  226. foreach (var item in patient.Items)
  227. {
  228. if (item.ItemName == """")
  229. {
  230. if (decimal.TryParse(item.Result, out sg))
  231. {
  232. if (sg == 0)
  233. {
  234. return null;
  235. }
  236. }
  237. else
  238. {
  239. return null;
  240. }
  241. }
  242. if (item.ItemName == """")
  243. {
  244. if (decimal.TryParse(item.Result, out tz))
  245. {
  246. if (tz == 0)
  247. {
  248. return null;
  249. }
  250. }
  251. else
  252. {
  253. return null;
  254. }
  255. }
  256. }
  257. result = (tz /((sg/100) * (sg / 100))).ToString(""0.00"");
  258. return result;
  259. ";
  260. DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder();
  261. result = diagnosisBuilder.GetItemCalculateResult(patient, code);
  262. _output.WriteLine("动态结果:" + result);
  263. }
  264. /// <summary>
  265. /// 体重指数
  266. /// </summary>
  267. /// <param name="patient"></param>
  268. /// <returns></returns>
  269. public string GetItemCalculateResultTzzs(PatientItemCalculateInput patient)
  270. {
  271. string result = "";
  272. decimal sg = 0;
  273. decimal tz = 0;
  274. foreach (var item in patient.Items)
  275. {
  276. if (item.ItemName == "身高")
  277. {
  278. if (decimal.TryParse(item.Result, out sg))
  279. {
  280. if (sg == 0)
  281. {
  282. return null;
  283. }
  284. }
  285. else
  286. {
  287. return null;
  288. }
  289. }
  290. if (item.ItemName == "体重")
  291. {
  292. if (decimal.TryParse(item.Result, out tz))
  293. {
  294. if (tz == 0)
  295. {
  296. return null;
  297. }
  298. }
  299. else
  300. {
  301. return null;
  302. }
  303. }
  304. }
  305. result = (tz / ((sg / 100) * (sg / 100))).ToString("0.00");
  306. return result;
  307. }
  308. [Fact]
  309. public void GetItemDiagnosisResultXYTest()
  310. {
  311. PatientItemDiagnosisInput patient = new PatientItemDiagnosisInput();
  312. patient.SexName = "男";
  313. patient.Age = 30;
  314. patient.Item = new ItemResultInput()
  315. {
  316. ItemId = Guid.NewGuid(),
  317. ItemName = "血压",
  318. Result = "180/110"
  319. };
  320. var result = GetItemDiagnosisResultXY(patient);
  321. _output.WriteLine("结果:" + result);
  322. string code = @"
  323. string result = """";
  324. decimal szyDecimal = 0;
  325. decimal ssyDecimal = 0;
  326. var itemResult = patient.Item.Result;
  327. if (string.IsNullOrWhiteSpace(itemResult))
  328. {
  329. return null;
  330. }
  331. if (itemResult == ""/"")
  332. return null;
  333. var pos = itemResult.IndexOf(""/"");
  334. var szy = itemResult.Substring(0, pos);
  335. var ssy = itemResult.Substring(pos + 1);
  336. if (!decimal.TryParse(szy, out szyDecimal))
  337. {
  338. return null;
  339. }
  340. if (!decimal.TryParse(ssy, out ssyDecimal))
  341. {
  342. return null;
  343. }
  344. if (szyDecimal > 180 || ssyDecimal > 110)
  345. {
  346. return """";
  347. }
  348. if (szyDecimal > 160 || ssyDecimal > 100)
  349. {
  350. return """";
  351. }
  352. if (szyDecimal > 140 || ssyDecimal > 90)
  353. {
  354. return """";
  355. }
  356. return result;
  357. ";
  358. DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder();
  359. result = diagnosisBuilder.GetItemDiagnosisResult(patient, code);
  360. _output.WriteLine("动态结果:" + result);
  361. }
  362. /// <summary>
  363. ///
  364. /// </summary>
  365. /// <param name="patient"></param>
  366. /// <returns></returns>
  367. public string GetItemDiagnosisResultXY(PatientItemDiagnosisInput patient)
  368. {
  369. string result = "";
  370. decimal szyDecimal = 0;
  371. decimal ssyDecimal = 0;
  372. var itemResult = patient.Item.Result;
  373. if (string.IsNullOrWhiteSpace(itemResult))
  374. {
  375. return null;
  376. }
  377. if (itemResult == "/")
  378. return null;
  379. var pos = itemResult.IndexOf("/");
  380. var szy = itemResult.Substring(0, pos);
  381. var ssy = itemResult.Substring(pos + 1);
  382. if (!decimal.TryParse(szy, out szyDecimal))
  383. {
  384. return null;
  385. }
  386. if (!decimal.TryParse(ssy, out ssyDecimal))
  387. {
  388. return null;
  389. }
  390. if (szyDecimal > 180 || ssyDecimal > 110)
  391. {
  392. return "Ⅲ级高血压";
  393. }
  394. if (szyDecimal > 160 || ssyDecimal > 100)
  395. {
  396. return "Ⅱ级高血压";
  397. }
  398. if (szyDecimal > 140 || ssyDecimal > 90)
  399. {
  400. return "Ⅰ级高血压";
  401. }
  402. return result;
  403. }
  404. [Fact]
  405. public void GetItemDiagnosisResultTzzsTest()
  406. {
  407. PatientItemDiagnosisInput patient = new PatientItemDiagnosisInput();
  408. patient.SexName = "男";
  409. patient.Age = 30;
  410. patient.Item = new ItemResultInput()
  411. {
  412. ItemId = Guid.NewGuid(),
  413. ItemName = "体重指数",
  414. Result = "25"
  415. };
  416. var result = GetItemDiagnosisResultTzzs(patient);
  417. _output.WriteLine("结果:" + result);
  418. string code = @"
  419. string result = """";
  420. decimal tzzsDecimal = 0;
  421. var itemResult = patient.Item.Result;
  422. if (string.IsNullOrWhiteSpace(itemResult))
  423. {
  424. return null;
  425. }
  426. if (!decimal.TryParse(itemResult, out tzzsDecimal))
  427. {
  428. return null;
  429. }
  430. if (tzzsDecimal > 24 )
  431. {
  432. return """";
  433. }
  434. if (tzzsDecimal < 18)
  435. {
  436. return """";
  437. }
  438. return result;;
  439. ";
  440. DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder();
  441. result = diagnosisBuilder.GetItemDiagnosisResult(patient, code);
  442. _output.WriteLine("动态结果:" + result);
  443. }
  444. public string GetItemDiagnosisResultTzzs(PatientItemDiagnosisInput patient)
  445. {
  446. string result = "";
  447. decimal tzzsDecimal = 0;
  448. var itemResult = patient.Item.Result;
  449. if (string.IsNullOrWhiteSpace(itemResult))
  450. {
  451. return null;
  452. }
  453. if (!decimal.TryParse(itemResult, out tzzsDecimal))
  454. {
  455. return null;
  456. }
  457. if (tzzsDecimal > 24)
  458. {
  459. return "超重";
  460. }
  461. if (tzzsDecimal < 18)
  462. {
  463. return "营养不良";
  464. }
  465. return result;
  466. }
  467. /// <summary>
  468. /// 乙肝五项
  469. /// </summary>
  470. [Fact]
  471. public void GetAsbitemDiagnosisResultYgwxTest()
  472. {
  473. var patient = new PatientAsbitemDiagnosisInput();
  474. patient.SexName = "男";
  475. patient.Age = 30;
  476. patient.Items = new List<ItemResultInput>()
  477. {
  478. new ItemResultInput()
  479. {
  480. ItemId = Guid.NewGuid(),
  481. ItemName = "乙肝表面抗原(HBsAg)",
  482. Result = "阳性"
  483. },
  484. new ItemResultInput()
  485. {
  486. ItemId = Guid.NewGuid(),
  487. ItemName = "乙肝表面抗体(抗-HBs)",
  488. Result = "阴性"
  489. },
  490. new ItemResultInput()
  491. {
  492. ItemId = Guid.NewGuid(),
  493. ItemName = "乙肝e抗原(HBeAg)",
  494. Result = "阳性"
  495. },
  496. new ItemResultInput()
  497. {
  498. ItemId = Guid.NewGuid(),
  499. ItemName = "乙肝e抗体(抗-HBe)",
  500. Result = "阴性"
  501. },
  502. new ItemResultInput()
  503. {
  504. ItemId = Guid.NewGuid(),
  505. ItemName = "乙肝核心抗体(抗-HBc)",
  506. Result = "阳性"
  507. }
  508. };
  509. var result = GetAsbitemDiagnosisResultYgwx(patient);
  510. _output.WriteLine("结果:" + result);
  511. string code = @"
  512. string msg = null;
  513. string result1 = """";
  514. string result2= """";
  515. string result3 = """";
  516. string result4 = """";
  517. string result5 = """";
  518. foreach (var item in patient.Items)
  519. {
  520. if(item.ItemName == ""(HBsAg)"")
  521. {
  522. result1 = item.Result;
  523. }
  524. if (item.ItemName == ""(-HBs)"")
  525. {
  526. result2 = item.Result;
  527. }
  528. if (item.ItemName == ""e抗原(HBeAg)"")
  529. {
  530. result3 = item.Result;
  531. }
  532. if (item.ItemName == ""e抗体(-HBe)"")
  533. {
  534. result4 = item.Result;
  535. }
  536. if (item.ItemName == ""(-HBc)"")
  537. {
  538. result5 = item.Result;
  539. }
  540. }
  541. switch (result1 + "","" + result2 + "","" + result3 + "","" + result4 + "","" + result5)
  542. {
  543. case "",,,,"":
  544. msg = """";
  545. break;
  546. case "",,,,"":
  547. msg = """";
  548. break;
  549. case "",,,,"":
  550. msg = """";
  551. break;
  552. case "",,,,"":
  553. msg = "",,"";
  554. break;
  555. case "",,,,"":
  556. msg = """";
  557. break;
  558. case "",,,,"":
  559. msg = """";
  560. break;
  561. case "",,,,"":
  562. msg = "",,"";
  563. break;
  564. case "",,,,"":
  565. msg = """";
  566. break;
  567. case "",,,,"":
  568. msg = """";
  569. break;
  570. case "",,,,"":
  571. msg = """";
  572. break;
  573. case "",,,,"":
  574. msg = """";
  575. break;
  576. case "",,,,"":
  577. msg = """";
  578. break;
  579. case "",,,,"":
  580. msg = ""e抗体阳性"";
  581. break;
  582. case "",,,,"":
  583. msg = """";
  584. break;
  585. case "",,,,"":
  586. msg = """";
  587. break;
  588. case "",,,,"":
  589. msg = """";
  590. break;
  591. case "",,,,"":
  592. msg = """";
  593. break;
  594. case "",,,,"":
  595. msg = """";
  596. break;
  597. default:
  598. msg = """";
  599. break;
  600. }
  601. return msg;
  602. ";
  603. DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder();
  604. result = diagnosisBuilder.GetAsbitemDiagnosisResult(patient, code);
  605. _output.WriteLine("动态结果:" + result);
  606. }
  607. public string GetAsbitemDiagnosisResultYgwx(PatientAsbitemDiagnosisInput patient)
  608. {
  609. string msg = null;
  610. string result1 = "";
  611. string result2 = "";
  612. string result3 = "";
  613. string result4 = "";
  614. string result5 = "";
  615. foreach (var item in patient.Items)
  616. {
  617. if (item.ItemName == "乙肝表面抗原(HBsAg)")
  618. {
  619. result1 = item.Result;
  620. }
  621. if (item.ItemName == "乙肝表面抗体(抗-HBs)")
  622. {
  623. result2 = item.Result;
  624. }
  625. if (item.ItemName == "乙肝e抗原(HBeAg)")
  626. {
  627. result3 = item.Result;
  628. }
  629. if (item.ItemName == "乙肝e抗体(抗-HBe)")
  630. {
  631. result4 = item.Result;
  632. }
  633. if (item.ItemName == "乙肝核心抗体(抗-HBc)")
  634. {
  635. result5 = item.Result;
  636. }
  637. }
  638. switch (result1 + "," + result2 + "," + result3 + "," + result4 + "," + result5)
  639. {
  640. case "阳性,阴性,阳性,阴性,阳性":
  641. msg = "乙肝五项检查大三阳";
  642. break;
  643. case "阳性,阴性,阴性,阳性,阳性":
  644. msg = "乙肝五项检查小三阳";
  645. break;
  646. case "阳性,阴性,阳性,阴性,阴性":
  647. msg = "乙肝五项检查第一项,第三项阳性";
  648. break;
  649. case "阴性,阴性,阳性,阳性,阳性":
  650. msg = "乙肝两对半三,四,五阳性";
  651. break;
  652. case "阳性,阴性,阴性,阴性,阳性":
  653. msg = "乙肝五项检查第一项,第五项阳性";
  654. break;
  655. case "阴性,阴性,阴性,阳性,阳性":
  656. msg = "乙肝五项检查第四项,第五项阳性";
  657. break;
  658. case "阳性,阴性,阳性,阳性,阴性":
  659. msg = "乙肝两对半一,三,四阳性";
  660. break;
  661. case "阴性,阴性,阳性,阴性,阳性":
  662. msg = "乙肝五项检查第三项,第五项阳性";
  663. break;
  664. case "阴性,阴性,阴性,阴性,阴性":
  665. msg = "乙肝五项全阴";
  666. break;
  667. case "阴性,阳性,阴性,阴性,阴性":
  668. msg = "乙肝表面抗体阳性";
  669. break;
  670. case "阳性,阴性,阴性,阴性,阴性":
  671. msg = "乙肝表面抗原阳性";
  672. break;
  673. case "阴性,阳性,阴性,阳性,阳性":
  674. msg = "乙肝五项检查第二,第四,第五项阳性";
  675. break;
  676. case "阴性,阴性,阴性,阳性,阴性":
  677. msg = "乙肝e抗体阳性";
  678. break;
  679. case "阳性,阴性,阴性,阳性,阴性":
  680. msg = "乙肝五项检查第一项,第四项阳性";
  681. break;
  682. case "阴性,阳性,阴性,阴性,阳性":
  683. msg = "乙肝五项检查第二项,第五项阳性";
  684. break;
  685. case "阴性,阴性,阴性,阴性,阳性":
  686. msg = "乙肝核心抗体阳性";
  687. break;
  688. case "阴性,弱阳性,阴性,阴性,阴性":
  689. msg = "乙肝表面抗体弱阳性";
  690. break;
  691. case "阴性,弱阳性,阴性,阴性,阳性":
  692. msg = "乙肝五项检查第二项弱阳性,第五项阳性";
  693. break;
  694. default:
  695. msg = "";
  696. break;
  697. }
  698. return msg;
  699. }
  700. [Fact]
  701. public void GetAsbitemDiagnosisResultTzzsTest()
  702. {
  703. var patient = new PatientAsbitemDiagnosisInput();
  704. patient.SexName = "男";
  705. patient.Age = 30;
  706. patient.Items = new List<ItemResultInput>()
  707. {
  708. new ItemResultInput()
  709. {
  710. ItemId = Guid.NewGuid(),
  711. ItemName = "体重指数",
  712. Result = "18"
  713. }
  714. };
  715. var result = GetAsbitemDiagnosisResultTzzs(patient);
  716. _output.WriteLine("结果:" + result);
  717. return;
  718. string code = @"
  719. string msg = null;
  720. string result1 = """";
  721. string result2= """";
  722. string result3 = """";
  723. string result4 = """";
  724. string result5 = """";
  725. foreach (var item in patient.Items)
  726. {
  727. if(item.ItemName == ""(HBsAg)"")
  728. {
  729. result1 = item.Result;
  730. }
  731. if (item.ItemName == ""(-HBs)"")
  732. {
  733. result2 = item.Result;
  734. }
  735. if (item.ItemName == ""e抗原(HBeAg)"")
  736. {
  737. result3 = item.Result;
  738. }
  739. if (item.ItemName == ""e抗体(-HBe)"")
  740. {
  741. result4 = item.Result;
  742. }
  743. if (item.ItemName == ""(-HBc)"")
  744. {
  745. result5 = item.Result;
  746. }
  747. }
  748. switch (result1 + "","" + result2 + "","" + result3 + "","" + result4 + "","" + result5)
  749. {
  750. case "",,,,"":
  751. msg = """";
  752. break;
  753. case "",,,,"":
  754. msg = """";
  755. break;
  756. case "",,,,"":
  757. msg = """";
  758. break;
  759. case "",,,,"":
  760. msg = "",,"";
  761. break;
  762. case "",,,,"":
  763. msg = """";
  764. break;
  765. case "",,,,"":
  766. msg = """";
  767. break;
  768. case "",,,,"":
  769. msg = "",,"";
  770. break;
  771. case "",,,,"":
  772. msg = """";
  773. break;
  774. case "",,,,"":
  775. msg = """";
  776. break;
  777. case "",,,,"":
  778. msg = """";
  779. break;
  780. case "",,,,"":
  781. msg = """";
  782. break;
  783. case "",,,,"":
  784. msg = """";
  785. break;
  786. case "",,,,"":
  787. msg = ""e抗体阳性"";
  788. break;
  789. case "",,,,"":
  790. msg = """";
  791. break;
  792. case "",,,,"":
  793. msg = """";
  794. break;
  795. case "",,,,"":
  796. msg = """";
  797. break;
  798. case "",,,,"":
  799. msg = """";
  800. break;
  801. case "",,,,"":
  802. msg = """";
  803. break;
  804. default:
  805. msg = """";
  806. break;
  807. }
  808. return msg;
  809. ";
  810. DiagnosisBuilder diagnosisBuilder = new DiagnosisBuilder();
  811. result = diagnosisBuilder.GetAsbitemDiagnosisResult(patient, code);
  812. _output.WriteLine("动态结果:" + result);
  813. }
  814. public string GetAsbitemDiagnosisResultTzzs(PatientAsbitemDiagnosisInput patient)
  815. {
  816. string msg = null;
  817. string result1 = "";
  818. string result2 = "";
  819. string result3 = "";
  820. string result4 = "";
  821. string result5 = "";
  822. foreach (var item in patient.Items)
  823. {
  824. if (item.ItemName == "体重指数")
  825. {
  826. result1 = item.Result;
  827. }
  828. }
  829. var tzzsPre = "体重指数:";
  830. if (double.TryParse(result1, out var tzzsResult))
  831. {
  832. if (tzzsResult < 18.5)
  833. {
  834. msg = tzzsPre + tzzsResult.ToString() + "诊断为:体重过低";
  835. }
  836. else if (tzzsResult >= 24.9 && tzzsResult < 28)
  837. {
  838. msg = tzzsPre + tzzsResult.ToString() + "诊断为:超重";
  839. }
  840. else if (tzzsResult >= 28 && tzzsResult < 29.9)
  841. {
  842. msg = tzzsPre + tzzsResult.ToString() + "诊断为:肥胖症(轻度)";
  843. }
  844. else if (tzzsResult >= 29.9 && tzzsResult < 34.9)
  845. {
  846. msg = tzzsPre + tzzsResult.ToString() + "诊断为:肥胖症(中度)";
  847. }
  848. else if (tzzsResult >= 34.9)
  849. {
  850. msg = tzzsPre + tzzsResult.ToString() + "诊断为:肥胖症(重度)";
  851. }
  852. else
  853. {
  854. msg = tzzsPre + tzzsResult.ToString() + "诊断为:正常";
  855. }
  856. }
  857. return msg;
  858. }
  859. public string GetAsbitemDiagnosisResultTzzs2(PatientAsbitemDiagnosisInput patient)
  860. {
  861. string msg = null;
  862. decimal sg = 0;
  863. decimal tz = 0;
  864. string tzStr = "";
  865. string sgStr = "";
  866. foreach (var item in patient.Items)
  867. {
  868. if (item.ItemName == "身高")
  869. {
  870. sgStr = item.Result;
  871. }
  872. if (item.ItemName == "体重")
  873. {
  874. tzStr = item.Result;
  875. }
  876. }
  877. if (!decimal.TryParse(sgStr, out sg))
  878. {
  879. return "";
  880. }
  881. if (!decimal.TryParse(tzStr, out tz))
  882. {
  883. return "";
  884. }
  885. var tzzsResult = (double)(tz / ((sg / 100) * (sg / 100)));
  886. var tzzsPre = "体重指数:";
  887. if (tzzsResult < 18.5)
  888. {
  889. msg = tzzsPre + tzzsResult.ToString("0.00") + "诊断为:体重过低";
  890. }
  891. else if (tzzsResult >= 24.9 && tzzsResult < 28)
  892. {
  893. msg = tzzsPre + tzzsResult.ToString("0.00") + "诊断为:超重";
  894. }
  895. else if (tzzsResult >= 28 && tzzsResult < 29.9)
  896. {
  897. msg = tzzsPre + tzzsResult.ToString("0.00") + "诊断为:肥胖症(轻度)";
  898. }
  899. else if (tzzsResult >= 29.9 && tzzsResult < 34.9)
  900. {
  901. msg = tzzsPre + tzzsResult.ToString() + "诊断为:肥胖症(中度)";
  902. }
  903. else if (tzzsResult >= 34.9)
  904. {
  905. msg = tzzsPre + tzzsResult.ToString("0.00") + "诊断为:肥胖症(重度)";
  906. }
  907. else
  908. {
  909. msg = tzzsPre + tzzsResult.ToString("0.00") + "诊断为:正常";
  910. }
  911. return msg;
  912. }
  913. }
  914. }