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.

508 lines
21 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
  1. using Microsoft.EntityFrameworkCore;
  2. using Shentun.Peis.Enums;
  3. using Shentun.Peis.Models;
  4. using Shentun.Peis.PatientRegisters;
  5. using Shentun.Peis.RegisterAsbitems;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Xml.Linq;
  12. using TencentCloud.Tts.V20190823.Models;
  13. using Volo.Abp.Domain.Repositories;
  14. using Volo.Abp.Uow;
  15. using Xunit;
  16. using Xunit.Abstractions;
  17. namespace Shentun.Peis
  18. {
  19. public class PatientRegisterAppServiceTest : PeisApplicationTestBase
  20. {
  21. private readonly IRepository<PatientRegister> _repository;
  22. private readonly IRepository<MedicalPackageDetail> _medicalPackageDetailRepository;
  23. private readonly PatientRegisterAppService _appService;
  24. private readonly ITestOutputHelper _output;
  25. private readonly IUnitOfWorkManager _unitOfWorkManager;
  26. public PatientRegisterAppServiceTest(ITestOutputHelper testOutputHelper)
  27. {
  28. _output = testOutputHelper;
  29. _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();
  30. _repository = GetRequiredService<IRepository<PatientRegister>>();
  31. _medicalPackageDetailRepository = GetRequiredService<IRepository<MedicalPackageDetail>>();
  32. _appService = GetRequiredService<PatientRegisterAppService>();
  33. }
  34. [Fact]
  35. public async Task CreatePatientRegisterAsync()
  36. {
  37. for (var i = 0; i < 3; i++)
  38. {
  39. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  40. {
  41. var entity = new CreatePatientRegisterDto()
  42. {
  43. MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),
  44. PatientId = new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d"),
  45. CustomerOrgId = new Guid("00000000-0000-0000-0000-000000000001"),
  46. CustomerOrgRegisterId = new Guid("00000000-0000-0000-0000-000000000001"),
  47. PatientName = "test",
  48. SexId = SexFlag.UnKnown,
  49. BirthDate = null,
  50. Age = 38,
  51. Telephone = "010-0000001",
  52. MobileTelephone = "18911254911",
  53. JobCardNo = "jobCardNo",
  54. MedicalCardNo = "MedicalCardNo",
  55. MaritalStatusId = MaritalStatusFlag.Married,
  56. MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),
  57. PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),
  58. NationId = "001",
  59. JobPost = "JobPost",
  60. JobTitle = "JobTitle",
  61. Salesman = "Salesman",
  62. SexHormoneTermId = new Guid("3a0d38cf-8b3c-95db-1a69-5119f28dc468"),
  63. MedicalConclusionId = new Guid("3a0c50fe-cacf-d3c8-8c3c-9d3495d8bd76"),
  64. IsUpload = 'N',
  65. CompleteFlag = PatientRegisterCompleteFlag.PreRegistration,
  66. IsMedicalStart = 'N',
  67. MedicalStartDate = null,
  68. IsRecoverGuide = 'N',
  69. SummaryDate = null,
  70. IsAudit = 'N',
  71. IsLock = 'N',
  72. IsNameHide = 'N',
  73. IsPhoneFollow = 'N',
  74. IsVip = 'N',
  75. Remark = "Remark",
  76. Address = "Address1",
  77. Email = "83986010@qq.com"
  78. };
  79. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  80. {
  81. AsbitemId = new Guid("3a0c657d-4e73-9bab-68da-56ab2f088bb1"),
  82. StandardPrice = 10,
  83. ChargePrice = 10,
  84. Amount = 1,
  85. PayTypeFlag = PayTypeFlag.PersonPay,
  86. IsCharge = 'N'
  87. });
  88. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  89. {
  90. AsbitemId = new Guid("3a0c5616-dab2-c209-f099-a6231ef57ac3"),
  91. StandardPrice = 10,
  92. ChargePrice = 10,
  93. Amount = 1,
  94. PayTypeFlag = PayTypeFlag.PersonPay,
  95. IsCharge = 'N'
  96. });
  97. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  98. {
  99. AsbitemId = new Guid("3a0c55f0-92b7-caa6-3fc3-f9f04ca45ad3"),
  100. StandardPrice = 10,
  101. ChargePrice = 10,
  102. Amount = 1,
  103. PayTypeFlag = PayTypeFlag.PersonPay,
  104. IsCharge = 'N'
  105. });
  106. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  107. {
  108. AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"),
  109. StandardPrice = 10,
  110. ChargePrice = 10,
  111. Amount = 1,
  112. PayTypeFlag = PayTypeFlag.PersonPay,
  113. IsCharge = 'N'
  114. });
  115. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  116. {
  117. AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
  118. StandardPrice = 10,
  119. ChargePrice = 10,
  120. Amount = 1,
  121. PayTypeFlag = PayTypeFlag.PersonPay,
  122. IsCharge = 'N'
  123. });
  124. var newEntity = await _appService.CreatePatientRegisterAsync(entity);
  125. await unitOfWork.CompleteAsync();
  126. }
  127. }
  128. }
  129. [Fact]
  130. public async Task CreatePatientRegisterByMedicalPackageAsync()
  131. {
  132. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  133. {
  134. var entity = new CreatePatientRegisterDto()
  135. {
  136. //PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),
  137. MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),
  138. PatientId = new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d"),
  139. CustomerOrgId = new Guid("00000000-0000-0000-0000-000000000001"),
  140. CustomerOrgRegisterId = new Guid("00000000-0000-0000-0000-000000000001"),
  141. PatientName = "test",
  142. SexId = SexFlag.UnKnown,
  143. BirthDate = null,
  144. Age = 38,
  145. Telephone = "010-0000001",
  146. MobileTelephone = "18911254911",
  147. JobCardNo = "jobCardNo",
  148. MedicalCardNo = "MedicalCardNo",
  149. MaritalStatusId = MaritalStatusFlag.Married,
  150. MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),
  151. PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),
  152. NationId = "001",
  153. JobPost = "JobPost",
  154. JobTitle = "JobTitle",
  155. Salesman = "Salesman",
  156. SexHormoneTermId = new Guid("3a0d38cf-8b3c-95db-1a69-5119f28dc468"),
  157. MedicalConclusionId = new Guid("3a0c50fe-cacf-d3c8-8c3c-9d3495d8bd76"),
  158. IsUpload = 'N',
  159. CompleteFlag = PatientRegisterCompleteFlag.PreRegistration,
  160. IsMedicalStart = 'N',
  161. MedicalStartDate = null,
  162. IsRecoverGuide = 'N',
  163. SummaryDate = null,
  164. IsAudit = 'N',
  165. IsLock = 'N',
  166. IsNameHide = 'N',
  167. IsPhoneFollow = 'N',
  168. IsVip = 'N',
  169. Remark = "Remark",
  170. Address = "Address1",
  171. Email = "83986010@qq.com"
  172. };
  173. var medicalPackageId = new Guid("3a0c51d4-2c5a-2a05-e4c4-e335012617be");
  174. entity.MedicalPackageId = medicalPackageId;
  175. var medicalPackageDetails = (await _medicalPackageDetailRepository.GetQueryableAsync()).Include(o => o.Asbitem).Where(o => o.MedicalPackageId == medicalPackageId).ToList();
  176. foreach (var medicalPackageDetail in medicalPackageDetails)
  177. {
  178. var registerCheckAsbitem = new CreatePatientRegisterRegisterCheckAsbitem()
  179. {
  180. AsbitemId = medicalPackageDetail.AsbitemId,
  181. StandardPrice = medicalPackageDetail.Asbitem.Price,
  182. ChargePrice = medicalPackageDetail.Asbitem.Price,
  183. Amount = 1,
  184. PayTypeFlag = PayTypeFlag.PersonPay,
  185. IsCharge = 'N'
  186. };
  187. entity.RegisterCheckAsbitems.Add(registerCheckAsbitem);
  188. }
  189. var newEntity = await _appService.CreatePatientRegisterAsync(entity);
  190. await unitOfWork.CompleteAsync();
  191. }
  192. }
  193. [Fact]
  194. public async Task UpdatePatientRegisterAsync()
  195. {
  196. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  197. {
  198. var entity = new CreatePatientRegisterDto()
  199. {
  200. PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),
  201. MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),
  202. PatientId = new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d"),
  203. CustomerOrgId = new Guid("00000000-0000-0000-0000-000000000001"),
  204. CustomerOrgRegisterId = new Guid("00000000-0000-0000-0000-000000000001"),
  205. PatientName = "test",
  206. SexId = SexFlag.UnKnown,
  207. BirthDate = null,
  208. Age = 38,
  209. Telephone = "010-0000001",
  210. MobileTelephone = "18911254911",
  211. JobCardNo = "jobCardNo",
  212. MedicalCardNo = "MedicalCardNo",
  213. MaritalStatusId = MaritalStatusFlag.Married,
  214. MedicalTypeId = new Guid("3a0c5093-6dbf-d29b-cfbc-b1f742ee59d3"),
  215. PersonnelTypeId = new Guid("3a0c5099-a5f3-e41a-dfab-caeae79e0dfe"),
  216. NationId = "001",
  217. JobPost = "JobPost",
  218. JobTitle = "JobTitle",
  219. Salesman = "Salesman",
  220. SexHormoneTermId = new Guid("3a0d38cf-8b3c-95db-1a69-5119f28dc468"),
  221. MedicalConclusionId = new Guid("3a0c50fe-cacf-d3c8-8c3c-9d3495d8bd76"),
  222. IsUpload = 'N',
  223. CompleteFlag = PatientRegisterCompleteFlag.PreRegistration,
  224. IsMedicalStart = 'N',
  225. MedicalStartDate = null,
  226. IsRecoverGuide = 'N',
  227. SummaryDate = null,
  228. IsAudit = 'N',
  229. IsLock = 'N',
  230. IsNameHide = 'N',
  231. IsPhoneFollow = 'N',
  232. IsVip = 'N',
  233. Remark = "Remark",
  234. Address = "Address1",
  235. Email = "83986010@qq.com"
  236. };
  237. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  238. {
  239. Id = new Guid("3a11caa1-9fb2-27f8-22f9-ec1e272567e0"),
  240. AsbitemId = new Guid("3a0c54c8-7a9b-3603-ce81-40f3b97b7637"),
  241. StandardPrice = (decimal)10.85,
  242. ChargePrice = (decimal)10.51,
  243. Amount = 2,
  244. PayTypeFlag = PayTypeFlag.PersonPay,
  245. IsCharge = 'N'
  246. });
  247. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  248. {
  249. Id = new Guid("3a11caa1-9fb2-38dd-03f1-bb9cd995961c"),
  250. AsbitemId = new Guid("3a0c55fa-63b9-1510-3e81-20750c496d44"),
  251. StandardPrice = 20,
  252. ChargePrice = 20,
  253. Amount = 1,
  254. PayTypeFlag = PayTypeFlag.PersonPay,
  255. IsCharge = 'N'
  256. });
  257. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  258. {
  259. Id = new Guid("3a11caa1-9fb2-5a05-ec0c-ed3c6c0f37c0"),
  260. AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
  261. StandardPrice = 30,
  262. ChargePrice = 30,
  263. Amount = 1,
  264. PayTypeFlag = PayTypeFlag.PersonPay,
  265. IsCharge = 'N'
  266. });
  267. entity.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()
  268. {
  269. //Id = new Guid("3a11c048-242a-028d-fa94-8103a3648a46"),
  270. AsbitemId = new Guid("3a11abbc-b19e-3549-e639-acc0e9aa6fbc"),
  271. StandardPrice = 40,
  272. ChargePrice = 40,
  273. Amount = 1,
  274. PayTypeFlag = PayTypeFlag.PersonPay,
  275. IsCharge = 'N'
  276. });
  277. var newEntity = await _appService.CreatePatientRegisterAsync(entity);
  278. await unitOfWork.CompleteAsync();
  279. }
  280. }
  281. [Fact]
  282. public async Task BatchAddAsbitems()
  283. {
  284. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  285. {
  286. var entity = new PatientRegisterBatchAddAsbitemsDto()
  287. {
  288. PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46")
  289. };
  290. entity.RegisterCheckAsbitems.Add(new BatchCreateRegisterCheckAsbitem()
  291. {
  292. AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
  293. ChargePrice = (decimal)10.51,
  294. Amount = 2,
  295. PayTypeFlag = PayTypeFlag.OrgPay,
  296. });
  297. entity.RegisterCheckAsbitems.Add(new BatchCreateRegisterCheckAsbitem()
  298. {
  299. AsbitemId = new Guid("3a0c55ff-e111-0551-1381-6bd2a894c158"),
  300. ChargePrice = 20,
  301. Amount = 1,
  302. PayTypeFlag = PayTypeFlag.PersonPay,
  303. });
  304. await _appService.BatchAddAsbitems(entity);
  305. await unitOfWork.CompleteAsync();
  306. }
  307. }
  308. [Fact]
  309. public async Task BatchDeleteAsbitems()
  310. {
  311. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  312. {
  313. var entity = new PatientRegisterBatchDeleteAsbitemsDto()
  314. {
  315. PatientRegisterId = new Guid("3a11abec-a6aa-e656-16db-cb0bccf8de46"),
  316. IsDeleteGroup = 'Y'
  317. };
  318. entity.RegisterCheckAsbitems.Add(new BatchDeleteRegisterCheckAsbitem()
  319. {
  320. AsbitemId = new Guid("3a0c55fe-559e-d6e7-7f74-221edeeaf817"),
  321. });
  322. entity.RegisterCheckAsbitems.Add(new BatchDeleteRegisterCheckAsbitem()
  323. {
  324. AsbitemId = new Guid("3a0c55ff-e111-0551-1381-6bd2a894c158"),
  325. });
  326. await _appService.BatchDeleteAsbitems(entity);
  327. await unitOfWork.CompleteAsync();
  328. }
  329. }
  330. [Fact]
  331. public async Task BatchUpdateCustomerOrgGroupAsync()
  332. {
  333. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  334. {
  335. var entity = new UpdatePatientRegisterCustomerOrgGroupDto()
  336. {
  337. PatientRegisterId = new Guid("3a0ea160-5051-9c6a-d863-28a2ee9e0ad2"),
  338. CustomerOrgGroupId = new Guid("3a11cb78-7d85-6a7d-d0f1-b522b491bd75"),
  339. PayTypeFlag = PayTypeFlag.OrgPay,
  340. IsReserveAddAsbitem = 'N'
  341. };
  342. await _appService.BatchUpdateCustomerOrgGroupAsync(entity);
  343. await unitOfWork.CompleteAsync();
  344. }
  345. }
  346. [Fact]
  347. public async Task CreatePatientRegisterFromExcelAsync()
  348. {
  349. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  350. {
  351. var entity = new CreatePatientRegisterExcelRequestDto()
  352. {
  353. MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),
  354. CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),
  355. CustomerOrgRegisterId = new Guid("3a114e09-3bd2-82f3-f73e-f2de4bead094"),
  356. PatientNo = "T4629",
  357. PatientName = "彭军",
  358. SexName = "未知",
  359. BirthDate = "2000-01-01",
  360. JobCardNo = "JobCardNo",
  361. MedicalCardNo = "MedicalCardNo",
  362. MaritalStatusName = "",
  363. MedicalTypeName = "调干",
  364. PersonnelTypeName = "普通员工",
  365. JobPost = "JobPost",
  366. JobTitle = "JobTitle",
  367. Salesman = "Salesman",
  368. IsAutoCreateDepartment = 'N',
  369. DepartmentName = "长沙神豚F",
  370. CustomerOrgGroupName = "男子组",
  371. };
  372. await _appService.CreatePatientRegisterFromExcelAsync(entity);
  373. await unitOfWork.CompleteAsync();
  374. }
  375. }
  376. [Fact]
  377. public async Task CreatePatientRegisterFromHistoryAsync()
  378. {
  379. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  380. {
  381. var entity = new CreatePatientRegisterHistoryRequestDto()
  382. {
  383. MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"),
  384. CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),
  385. CustomerOrgRegisterId = new Guid("3a114e09-3bd2-82f3-f73e-f2de4bead094"),
  386. PatientRegisterId = new Guid("3a11d557-12ec-dc6b-b99f-0c135796fe6a"),
  387. CustomerOrgGroupId = new Guid("3a11b42f-8c01-c46d-4378-0b5c20414e42"),
  388. CompleteFlag = PatientRegisterCompleteFlag.PreRegistration,
  389. PayTypeFlag = PayTypeFlag.OrgPay
  390. };
  391. await _appService.CreatePatientRegisterFromHistoryAsync(entity);
  392. await unitOfWork.CompleteAsync();
  393. }
  394. }
  395. [Fact]
  396. public async Task GetSameNamePatientAsync()
  397. {
  398. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  399. {
  400. var items = await _appService.GetSameNamePatientAsync(new GetSameNamePatientInputDto() { Name = "李九" });
  401. _output.WriteLine(items.Count().ToString());
  402. foreach (var item in items)
  403. {
  404. _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.DepartmentName);
  405. }
  406. await unitOfWork.CompleteAsync();
  407. }
  408. }
  409. [Fact]
  410. public async Task GetCustomerOrgSameNamePatientAsync()
  411. {
  412. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  413. {
  414. var items = await _appService.GetCustomerOrgSameNamePatientAsync(
  415. new GetCustomerOrgSameNamePatientInputDto()
  416. {
  417. CustomerOrgId = new Guid("3a0c5101-a6a6-e48a-36ec-33e7567a99e6"),
  418. Name = "李九"
  419. });
  420. _output.WriteLine(items.Count().ToString());
  421. foreach (var item in items)
  422. {
  423. _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.DepartmentName);
  424. }
  425. await unitOfWork.CompleteAsync();
  426. }
  427. }
  428. [Fact]
  429. public async Task GetAlreadyRegisterPatientRegisterByNoAsync()
  430. {
  431. using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
  432. {
  433. var item = await _appService.GetAlreadyRegisterPatientRegisterByNoAsync(new PatientRegisterNoInputDto()
  434. {
  435. PatientRegisterNo = "T4830",
  436. PatientNo = ""
  437. });
  438. _output.WriteLine(item.PatientName + "," + item.CustomerOrgName + "," + item.CustomerOrgParentName);
  439. await unitOfWork.CompleteAsync();
  440. }
  441. }
  442. }
  443. }