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.

527 lines
26 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
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.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.EntityFrameworkCore;
  4. using Microsoft.Extensions.Configuration;
  5. using Shentun.Peis.Enums;
  6. using Shentun.Peis.MenuInfos;
  7. using Shentun.Peis.Models;
  8. using Shentun.Peis.PatientRegisters;
  9. using Shentun.Peis.RegisterCheckItems;
  10. using Shentun.Peis.RegisterCheckSummarys;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Linq.Dynamic.Core;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using Volo.Abp;
  18. using Volo.Abp.Application.Dtos;
  19. using Volo.Abp.Application.Services;
  20. using Volo.Abp.Domain.Entities.Events.Distributed;
  21. using Volo.Abp.Domain.Repositories;
  22. using Volo.Abp.Guids;
  23. using Volo.Abp.Identity;
  24. using Volo.Abp.ObjectMapping;
  25. using Volo.Abp.Users;
  26. namespace Shentun.Peis.RegisterChecks
  27. {
  28. /// <summary>
  29. /// 登记检查单
  30. /// </summary>
  31. [ApiExplorerSettings(GroupName = "Work")]
  32. [Authorize]
  33. public class RegisterCheckAppService : ApplicationService
  34. {
  35. private readonly IRepository<RegisterCheckItem> _registerCheckItemRepository;
  36. private readonly IRepository<RegisterCheckAsbitem> _registerCheckAsbitemRepository;
  37. private readonly IRepository<ItemType> _itemTypeRepository;
  38. private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
  39. private readonly IRepository<ReferenceRange, Guid> _referenceRangeRepository;
  40. private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
  41. private readonly IRepository<RegisterCheckSummary, Guid> _registerCheckSummaryRepository;
  42. private readonly IRepository<RegisterCheckSuggestion, Guid> _registerCheckSuggestionRepository;
  43. private readonly IRepository<IdentityUser, Guid> _userRepository;
  44. private readonly RegisterCheckManager _registerCheckManager;
  45. private readonly RegisterCheckItemManager _registerCheckItemManager;
  46. private readonly CacheService _cacheService;
  47. private readonly IGuidGenerator _guidGenerator;
  48. private readonly IConfiguration _configuration;
  49. private readonly ICurrentUser _currentUser;
  50. private readonly IRepository<UserItemType> _userItemTypeRepository;
  51. private readonly IRepository<Asbitem, Guid> _asbitemRepository;
  52. public RegisterCheckAppService(IRepository<RegisterCheck, Guid> registerCheckRepository,
  53. IRepository<RegisterCheckItem> registerCheckItemRepository,
  54. IRepository<PatientRegister, Guid> patientRegisterRepository,
  55. IRepository<ReferenceRange, Guid> referenceRangeRepository,
  56. IRepository<RegisterCheckSummary, Guid> registerCheckSummaryRepository,
  57. IRepository<RegisterCheckSuggestion, Guid> registerCheckSuggestionRepository,
  58. IRepository<IdentityUser, Guid> userRepository,
  59. RegisterCheckManager registerCheckManager,
  60. RegisterCheckItemManager registerCheckItemManager,
  61. CacheService cacheService,
  62. IGuidGenerator guidGenerator,
  63. IConfiguration configuration,
  64. ICurrentUser currentUser,
  65. IRepository<UserItemType> userItemTypeRepository,
  66. IRepository<Asbitem, Guid> asbitemRepository,
  67. IRepository<RegisterCheckAsbitem> registerCheckAsbitemRepository,
  68. IRepository<ItemType> itemTypeRepository)
  69. {
  70. _registerCheckRepository = registerCheckRepository;
  71. _userRepository = userRepository;
  72. _registerCheckManager = registerCheckManager;
  73. _patientRegisterRepository = patientRegisterRepository;
  74. _referenceRangeRepository = referenceRangeRepository;
  75. _registerCheckItemRepository = registerCheckItemRepository;
  76. _registerCheckSummaryRepository = registerCheckSummaryRepository;
  77. _registerCheckSuggestionRepository = registerCheckSuggestionRepository;
  78. _registerCheckItemManager = registerCheckItemManager;
  79. _cacheService = cacheService;
  80. _guidGenerator = guidGenerator;
  81. _configuration = configuration;
  82. _currentUser = currentUser;
  83. _userItemTypeRepository = userItemTypeRepository;
  84. _asbitemRepository = asbitemRepository;
  85. _registerCheckAsbitemRepository = registerCheckAsbitemRepository;
  86. _itemTypeRepository = itemTypeRepository;
  87. }
  88. /// <summary>
  89. /// 根据RegisterCheckId获取当前实体数据
  90. /// </summary>
  91. /// <param name="id"></param>
  92. /// <returns></returns>
  93. [HttpGet("api/app/registercheck/getregistercheck")]
  94. public async Task<RegisterCheckDto> GetRegisterCheckAsync(Guid id)
  95. {
  96. var registerCheckEntity = await _registerCheckRepository.GetAsync(id);
  97. var userList = await _userRepository.GetListAsync();
  98. var registerCheckDto = new RegisterCheckDto
  99. {
  100. AuditorUserId = registerCheckEntity.AuditorUserId,
  101. AuditTime = registerCheckEntity.AuditTime,
  102. CheckDate = DataHelper.ConversionDateToString(registerCheckEntity.CheckDate),
  103. CheckDoctorId = registerCheckEntity.CheckDoctorId,
  104. CheckRequestNo = registerCheckEntity.CheckRequestNo,
  105. CheckRequestPrintTimes = registerCheckEntity.CheckRequestPrintTimes,
  106. CompleteFlag = registerCheckEntity.CompleteFlag,
  107. CreationTime = registerCheckEntity.CreationTime,
  108. CreatorId = registerCheckEntity.CreatorId,
  109. CriticalValue = registerCheckEntity.CriticalValue,
  110. CriticalValueCreateDate = DataHelper.ConversionDateToString(registerCheckEntity.CriticalValueCreateDate),
  111. CriticalValueFlag = registerCheckEntity.CriticalValueFlag,
  112. CriticalValueProcessContent = registerCheckEntity.CriticalValueProcessContent,
  113. CriticalValueProcessDate = DataHelper.ConversionDateToString(registerCheckEntity.CriticalValueProcessDate),
  114. CriticalValueProcessDoctor = registerCheckEntity.CriticalValueProcessDoctor,
  115. CriticalValueProcessFlag = registerCheckEntity.CriticalValueProcessFlag,
  116. Id = registerCheckEntity.Id,
  117. IsAudit = registerCheckEntity.IsAudit,
  118. IsLock = registerCheckEntity.IsLock,
  119. LastModificationTime = registerCheckEntity.LastModificationTime,
  120. LastModifierId = registerCheckEntity.LastModifierId,
  121. ThirdInfo = registerCheckEntity.ThirdInfo,
  122. LastModifierName = EntityHelper.GetSurnameNoSql(userList, registerCheckEntity.LastModifierId),
  123. CreatorName = EntityHelper.GetSurnameNoSql(userList, registerCheckEntity.CreatorId),
  124. };
  125. return registerCheckDto;
  126. }
  127. /// <summary>
  128. /// 获取登记check表数据(附带组合项目名称跟是否收费) 医生诊台左边列表 只有一个收费就显示收费
  129. /// </summary>
  130. /// <param name="input"></param>
  131. /// <returns></returns>
  132. [HttpPost("api/app/RegisterCheck/GetRegisterCheckAsbitemsByPatientRegisterId")]
  133. public async Task<List<RegisterCheckOrAsbitemNameOrIsChargeDto>> GetRegisterCheckAsbitemsByPatientRegisterIdAsync(PatientRegisterIdInputDto input)
  134. {
  135. //var list = (from registerCheck in await _registerCheckRepository.GetQueryableAsync()
  136. // join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
  137. // on registerCheck.Id equals registerCheckAsbitem.AsbitemId
  138. // join asbitem in await _asbitemRepository.GetQueryableAsync()
  139. // on registerCheckAsbitem.AsbitemId equals asbitem.Id
  140. // join itemType in await _itemTypeRepository.GetQueryableAsync()
  141. // on asbitem.ItemTypeId equals itemType.Id
  142. // where registerCheck.PatientRegisterId == input.PatientRegisterId
  143. // orderby itemType.DisplayName, asbitem.DisplayOrder
  144. // select new
  145. // {
  146. // registerCheck,
  147. // registerCheckAsbitem,
  148. // asbitem,
  149. // itemType
  150. // }).ToList();
  151. var entlist = (await _registerCheckRepository.GetDbSetAsync())
  152. .Include(x => x.RegisterCheckAsbitems)
  153. .ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType)
  154. .Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(input.PatientRegisterId)).ToList();
  155. //排序
  156. entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder)).ToList()
  157. .OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder)).ToList();
  158. var userList = await _userRepository.GetListAsync();
  159. var entdto = entlist.Select(s => new RegisterCheckOrAsbitemNameOrIsChargeDto
  160. {
  161. CheckTypeFlag = s.RegisterCheckAsbitems.First().Asbitem.ItemType.CheckTypeFlag,
  162. AsbitemName = string.Join(",", s.RegisterCheckAsbitems.Select(rs => rs.Asbitem.DisplayName).ToList()),
  163. AuditorUserId = s.AuditorUserId,
  164. AuditTime = s.AuditTime,
  165. CheckDate = DataHelper.ConversionDateToString(s.CheckDate),
  166. CheckDoctorId = s.CheckDoctorId,
  167. CheckRequestNo = s.CheckRequestNo,
  168. CheckRequestPrintTimes = s.CheckRequestPrintTimes,
  169. CompleteFlag = s.CompleteFlag,
  170. CreationTime = s.CreationTime,
  171. CreatorId = s.CreatorId,
  172. CriticalValue = s.CriticalValue,
  173. CriticalValueCreateDate = DataHelper.ConversionDateToString(s.CriticalValueCreateDate),
  174. CriticalValueFlag = s.CriticalValueFlag,
  175. CriticalValueProcessContent = s.CriticalValueProcessContent,
  176. CriticalValueProcessDate = DataHelper.ConversionDateToString(s.CriticalValueProcessDate),
  177. CriticalValueProcessDoctor = s.CriticalValueProcessDoctor,
  178. CriticalValueProcessFlag = s.CriticalValueProcessFlag,
  179. Id = s.Id,
  180. IsAudit = s.IsAudit,
  181. IsCharge = s.RegisterCheckAsbitems.Where(m => m.IsCharge == 'Y').Count() > 0 ? 'Y' : 'N',
  182. IsLock = s.IsLock,
  183. LastModificationTime = s.LastModificationTime,
  184. LastModifierId = s.LastModifierId,
  185. //RegisterAsbitemId = s.RegisterAsbitemId,
  186. ThirdInfo = s.ThirdInfo,
  187. CreatorName = _cacheService.GetSurnameAsync( s.CreatorId).Result,
  188. LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result,
  189. ItemTypeDisplayOrder = s.RegisterCheckAsbitems.First().Asbitem.ItemType.DisplayOrder,
  190. AsbitemDisplayOrder = s.RegisterCheckAsbitems.First().Asbitem.DisplayOrder
  191. }).ToList();
  192. return entdto;
  193. }
  194. /// <summary>
  195. /// 获取登记check表数据(附带组合项目名称跟是否收费) 医生诊台左边列表 只有一个收费就显示收费 增加项目类别权限控制
  196. /// </summary>
  197. /// <param name="input"></param>
  198. /// <returns></returns>
  199. [HttpPost("api/app/RegisterCheck/GetRegisterCheckWithAsbitems")]
  200. public async Task<List<RegisterCheckWithAsbitemsDto>> GetRegisterCheckWithAsbitemsAsync(PatientRegisterIdInputDto input)
  201. {
  202. var entlist = (await _registerCheckRepository.GetQueryableAsync())
  203. .Include(x => x.RegisterCheckAsbitems)
  204. .ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType)
  205. .Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId)
  206. .Contains(input.PatientRegisterId)
  207. && m.RegisterCheckAsbitems.Select(s=>s.Asbitem.IsCheck).Contains('Y'));
  208. #region 增加项目类别权限
  209. string AdminId = _configuration.GetValue<string>("AdminId");
  210. if (_currentUser.Id.Value != Guid.Parse(AdminId))
  211. {
  212. var asbitemIds = (from userItemType in await _userItemTypeRepository.GetQueryableAsync()
  213. join asbitem in await _asbitemRepository.GetQueryableAsync() on userItemType.ItemTypeId equals asbitem.ItemTypeId
  214. where userItemType.UserId == _currentUser.Id.Value
  215. select asbitem.Id).ToList();
  216. if (asbitemIds.Any())
  217. {
  218. entlist = entlist.Where(m => asbitemIds.Contains(m.RegisterCheckAsbitems.FirstOrDefault().AsbitemId));
  219. }
  220. else
  221. {
  222. return new List<RegisterCheckWithAsbitemsDto>();
  223. }
  224. }
  225. #endregion
  226. //排序
  227. entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder))
  228. .ThenBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder));
  229. var entdto = entlist.ToList().Select(s => new RegisterCheckWithAsbitemsDto
  230. {
  231. AsbitemName = string.Join(",", s.RegisterCheckAsbitems.Select(rs => rs.Asbitem.DisplayName).ToList()),
  232. AuditorUserId = s.AuditorUserId,
  233. AuditTime = s.AuditTime,
  234. CheckDate = DataHelper.ConversionDateToString(s.CheckDate),
  235. CheckDoctorId = s.CheckDoctorId,
  236. CheckRequestNo = s.CheckRequestNo,
  237. CompleteFlag = s.CompleteFlag,
  238. Id = s.Id,
  239. IsAudit = s.IsAudit,
  240. IsCharge = s.RegisterCheckAsbitems.Where(m => m.IsCharge == 'Y').Count() > 0 ? 'Y' : 'N',
  241. IsLock = s.IsLock,
  242. CheckTypeFlag = s.RegisterCheckAsbitems.First().Asbitem.ItemType.CheckTypeFlag,
  243. ItemTypeDisplayOrder = s.RegisterCheckAsbitems.First().Asbitem.ItemType.DisplayOrder,
  244. AsbitemDisplayOrder = s.RegisterCheckAsbitems.First().Asbitem.DisplayOrder,
  245. }).ToList();
  246. return entdto;
  247. }
  248. [HttpPost("api/app/registercheck/UpdateCheckResult")]
  249. public async Task UpdateCheckResult(UpdateCheckResultDto input)
  250. {
  251. if (input == null)
  252. {
  253. throw new UserFriendlyException("input参数不能为空");
  254. }
  255. if (input.RegisterCheckItems == null)
  256. {
  257. throw new UserFriendlyException("RegisterCheckItems参数不能为空");
  258. }
  259. if(!input.RegisterCheckItems.Where(o=>!string.IsNullOrWhiteSpace(o.Result)).ToList().Any())
  260. {
  261. throw new UserFriendlyException("明细结果不能全部为空");
  262. }
  263. var registerCheck = await _registerCheckRepository.GetAsync(input.RegisterCheckId);
  264. var patientRegister = await _patientRegisterRepository.GetAsync(registerCheck.PatientRegisterId);
  265. //修改医生和检查日期
  266. if(string.IsNullOrWhiteSpace(input.CheckDoctorId))
  267. {
  268. input.CheckDoctorId = CurrentUser.Id.ToString();
  269. }
  270. _registerCheckManager.UpdateCheckDoctorAndDateAsync(patientRegister, registerCheck, input.CheckDoctorId, input.CheckDate,input.ExecOrganizationUnitId);
  271. //更新人员登记信息完成标志
  272. patientRegister.CompleteFlag = PatientRegisterCompleteFlag.PartCheck;
  273. await _patientRegisterRepository.UpdateAsync(patientRegister);
  274. await _registerCheckRepository.UpdateAsync(registerCheck);
  275. //修改项目结果
  276. var registerCheckItems = await _registerCheckItemRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId);
  277. foreach (var registerCheckItem in registerCheckItems)
  278. {
  279. var inputCheckItem = input.RegisterCheckItems.Where(o => o.ItemId == registerCheckItem.ItemId).FirstOrDefault();
  280. if (inputCheckItem == null)
  281. {
  282. continue;
  283. }
  284. var registerCheckItemUpdate = new RegisterCheckItem()
  285. {
  286. Result = inputCheckItem.Result,
  287. CheckDoctorName = inputCheckItem.CheckDoctorName,
  288. CriticalValue = inputCheckItem.CriticalValue,
  289. CheckDate = DateTime.Now
  290. };
  291. await _registerCheckItemManager.UpdateRegisterCheckItemAsync(registerCheckItemUpdate, registerCheckItem);
  292. }
  293. await _registerCheckItemRepository.UpdateManyAsync(registerCheckItems);
  294. //修改小结
  295. var deleteRegisterCheckSummarys = await _registerCheckSummaryRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId);
  296. await _registerCheckSummaryRepository.DeleteManyAsync(deleteRegisterCheckSummarys);
  297. for (var i = 0; i < input.Summarys.Count; i++)
  298. {
  299. var registerCheckSummary = new RegisterCheckSummary(_guidGenerator.Create())
  300. {
  301. DisplayOrder = i + 1,
  302. RegisterCheckId = input.RegisterCheckId,
  303. Summary = input.Summarys[i].Summary,
  304. SummaryFlag = '0'
  305. };
  306. await _registerCheckSummaryRepository.InsertAsync(registerCheckSummary);
  307. }
  308. //修改建议
  309. var _registerCheckSuggestions = await _registerCheckSuggestionRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId);
  310. await _registerCheckSuggestionRepository.DeleteManyAsync(_registerCheckSuggestions);
  311. for (var i = 0; i < input.Suggestions.Count; i++)
  312. {
  313. var registerCheckSuggestion = new RegisterCheckSuggestion(_guidGenerator.Create())
  314. {
  315. DisplayOrder = i + 1,
  316. RegisterCheckId = input.RegisterCheckId,
  317. Suggestion = input.Suggestions[i].Suggestion,
  318. };
  319. await _registerCheckSuggestionRepository.InsertAsync(registerCheckSuggestion);
  320. }
  321. }
  322. ///// <summary>
  323. ///// 弃检跟恢复操作 0(为未检), 1(已检), 2(弃检)
  324. ///// </summary>
  325. ///// <param name="RegisterCheckId">检查单ID</param>
  326. ///// <param name="CompleteFlag">检查状态</param>
  327. ///// <returns></returns>
  328. //[HttpPost("api/app/registercheck/updatecomplete")]
  329. //public async Task<RegisterCheckDto> UpdateCompleteAsync(Guid RegisterCheckId, char CompleteFlag)
  330. //{
  331. // var registerCheckEnt = await _registerCheckManager.UpdateCompleteAsync(RegisterCheckId, CompleteFlag);
  332. // return ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(registerCheckEnt);
  333. //}
  334. /// <summary>
  335. /// 批量弃检跟恢复操作 0(为未检), 1(已检), 2(弃检)
  336. /// </summary>
  337. /// <param name="input"></param>
  338. /// <returns></returns>
  339. [HttpPost("api/app/registercheck/updatecompletemany")]
  340. public async Task<List<RegisterCheckDto>> UpdateCompleteManyAsync(List<UpdateCompleteManyDto> input)
  341. {
  342. List<RegisterCheckDto> msg = new List<RegisterCheckDto>();
  343. if (input.Any())
  344. {
  345. foreach (var item in input)
  346. {
  347. var registerCheckEnt = await _registerCheckManager.UpdateCompleteAsync(item.RegisterCheckId, item.CompleteFlag);
  348. var newentity = ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(registerCheckEnt);
  349. if (newentity != null)
  350. {
  351. msg.Add(newentity);
  352. }
  353. }
  354. }
  355. return msg;
  356. }
  357. /// <summary>
  358. /// 更新审核状态 Y 已审核 N 未审核
  359. /// </summary>
  360. /// <param name="RegisterCheckId">检查单ID</param>
  361. /// <param name="IsAudit">审核状态( Y 已审核 N 未审核)</param>
  362. /// <returns></returns>
  363. [HttpPost("api/app/registercheck/updateisaudit")]
  364. public async Task<RegisterCheckDto> UpdateIsAuditAsync(Guid RegisterCheckId, char IsAudit)
  365. {
  366. var registerCheckEnt = await _registerCheckManager.UpdateIsAuditAsync(RegisterCheckId, IsAudit);
  367. return ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(registerCheckEnt);
  368. }
  369. /// <summary>
  370. /// 更改检查医生(自动更新完成状态为已检)
  371. /// </summary>
  372. /// <param name="input"></param>
  373. /// <returns></returns>
  374. [HttpPost("api/app/registercheck/updatecheckdoctor")]
  375. public async Task<RegisterCheckDto> UpdateCheckDoctorAsync(UpdateCheckDoctorDto input)
  376. {
  377. if (input == null || input.RegisterCheckId == Guid.Empty)
  378. {
  379. throw new UserFriendlyException("请求参数有误");
  380. }
  381. var entity = await _registerCheckRepository.GetAsync(m => m.Id == input.RegisterCheckId);
  382. var entitydto = ObjectMapper.Map<UpdateCheckDoctorDto, RegisterCheck>(input);
  383. var newentity = await _registerCheckManager.UpdateCheckDoctorAsync(entitydto, entity);
  384. return ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(newentity);
  385. }
  386. /// <summary>
  387. /// 更改危警值内容
  388. /// </summary>
  389. /// <param name="input"></param>
  390. /// <returns></returns>
  391. [HttpPost("api/app/registercheck/updatecriticalvalue")]
  392. public async Task<RegisterCheckDto> UpdateCriticalValueAsync(UpdateCriticalValueDto input)
  393. {
  394. if (input == null || input.RegisterCheckId == Guid.Empty)
  395. {
  396. throw new UserFriendlyException("请求参数有误");
  397. }
  398. var entity = await _registerCheckRepository.GetAsync(m => m.Id == input.RegisterCheckId);
  399. var entitydto = ObjectMapper.Map<UpdateCriticalValueDto, RegisterCheck>(input);
  400. var newentity = await _registerCheckManager.UpdateCriticalValueAsync(entitydto, entity);
  401. return ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(newentity);
  402. }
  403. /// <summary>
  404. /// 更改审核医生(自动更新审核状态为已审核)
  405. /// </summary>
  406. /// <param name="input"></param>
  407. /// <returns></returns>
  408. [HttpPost("api/app/registercheck/updateauditordoctor")]
  409. public async Task<RegisterCheckDto> UpdateAuditorDoctorAsync(UpdateAuditorDoctorDto input)
  410. {
  411. if (input == null || input.RegisterCheckId == Guid.Empty)
  412. {
  413. throw new UserFriendlyException("请求参数有误");
  414. }
  415. var entity = await _registerCheckRepository.GetAsync(m => m.Id == input.RegisterCheckId);
  416. var entitydto = ObjectMapper.Map<UpdateAuditorDoctorDto, RegisterCheck>(input);
  417. var newentity = await _registerCheckManager.UpdateAuditorDoctorAsync(entitydto, entity);
  418. return ObjectMapper.Map<RegisterCheck, RegisterCheckDto>(newentity);
  419. }
  420. /// <summary>
  421. /// 修改人员登记的组合项目锁定状态 批量
  422. /// </summary>
  423. /// <param name="input"></param>
  424. /// <returns></returns>
  425. /// <exception cref="UserFriendlyException"></exception>
  426. [HttpPost("api/app/registercheck/updateregistercheckislockmany")]
  427. public async Task<List<RegisterCheckDto>> UpdateRegisterCheckIsLockManyAsync(List<UpdateRegisterCheckIsLockDto> input)
  428. {
  429. if (!input.Any())
  430. throw new UserFriendlyException("请求参数有误");
  431. List<RegisterCheck> entlist = new List<RegisterCheck>();
  432. foreach (var item in input)
  433. {
  434. var ent = await _registerCheckRepository.GetAsync(item.RegisterCheckId);
  435. ent.IsLock = item.IsLock;
  436. entlist.Add(ent);
  437. }
  438. await _registerCheckRepository.UpdateManyAsync(entlist);
  439. return ObjectMapper.Map<List<RegisterCheck>, List<RegisterCheckDto>>(entlist);
  440. }
  441. ///// <summary>
  442. ///// 查询检查项目组合项目记录跟检查结果 根据体检登记ID
  443. ///// </summary>
  444. ///// <param name="PatientRegisterId">体检登记ID</param>
  445. ///// <returns></returns>
  446. //public async Task<List<RegisterCheckOrRegisterAsbitemDto>> GetListInPatientRegisterIdAsync(Guid PatientRegisterId)
  447. //{
  448. // var registerCheckList = (await _registerCheckRepository.GetDbSetAsync()).Include(s => s.RegisterAsbitem).Include(s => s.RegisterAsbitem.Asbitem)
  449. // .Where(m => m.RegisterAsbitem.PatientRegisterId == PatientRegisterId).ToList();
  450. // var entListDto = registerCheckList.Select(s => new RegisterCheckOrRegisterAsbitemDto
  451. // {
  452. // AsbitemName = s.RegisterAsbitem.Asbitem.DisplayName,
  453. // CompleteFlag = s.CompleteFlag,
  454. // CreationTime = s.CreationTime,
  455. // CreatorId = s.CreatorId,
  456. // Id = s.Id,
  457. // LastModificationTime = s.LastModificationTime,
  458. // LastModifierId = s.LastModifierId,
  459. // CreatorName = EntityHelper.GetUserNameNoSql(userList, s.CreatorId),
  460. // LastModifierName = EntityHelper.GetUserNameNoSql(userList, s.LastModifierId)
  461. // }).ToList();
  462. // return entListDto;
  463. //}
  464. }
  465. }