Browse Source

登记项目体检中心修改

master
wxd 3 months ago
parent
commit
28dec2ebfa
  1. 42
      src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/GetRegisterCheckAsbitemWithMedicalCenterDto.cs
  2. 21
      src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/GetRegisterCheckAsbitemWithMedicalCenterInputDto.cs
  3. 19
      src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/HandRegisterCheckAsbitemMedicalCenterInputDto.cs
  4. 96
      src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs

42
src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/GetRegisterCheckAsbitemWithMedicalCenterDto.cs

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.RegisterCheckAsbitems
{
public class GetRegisterCheckAsbitemWithMedicalCenterDto
{
public Guid RegisterCheckAsbitemId { get; set; }
/// <summary>
/// 体检中心名称
/// </summary>
public string MedicalCenterName { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 人员状态
/// </summary>
public char PatientRegisterCompleteFlag { get; set; }
/// <summary>
/// 项目状态
/// </summary>
public char RegisterCheckCompleteFlag { get; set; }
/// <summary>
/// 人员姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 身份证
/// </summary>
public string IdNo { get; set; }
}
}

21
src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/GetRegisterCheckAsbitemWithMedicalCenterInputDto.cs

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.RegisterCheckAsbitems
{
public class GetRegisterCheckAsbitemWithMedicalCenterInputDto
{
/// <summary>
/// 人员Id
/// </summary>
public Guid? PatientRegisterId { get; set; }
/// <summary>
/// 人员条码
/// </summary>
public string PatientRegisterNo { get; set; }
}
}

19
src/Shentun.Peis.Application.Contracts/RegisterCheckAsbitems/HandRegisterCheckAsbitemMedicalCenterInputDto.cs

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.RegisterCheckAsbitems
{
public class HandRegisterCheckAsbitemMedicalCenterInputDto
{
/// <summary>
/// 登记项目id
/// </summary>
public Guid RegisterCheckAsbitemId { get; set; }
/// <summary>
/// 体检中心id
/// </summary>
public Guid MedicalCenterId { get; set; }
}
}

96
src/Shentun.Peis.Application/RegisterCheckAsbitems/RegisterCheckAsbitemAppService.cs

@ -1,6 +1,9 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Abstractions;
using NUglify.Helpers;
using Shentun.Peis.CardBills;
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.DeviceTypes;
@ -8,6 +11,7 @@ using Shentun.Peis.Enums;
using Shentun.Peis.ForSexs;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.RegisterCheckAsbitems;
using Shentun.Peis.RegisterCheckCriticalValues;
using Shentun.Peis.RegisterCheckItems;
using Shentun.Peis.RegisterCheckPictures;
@ -24,6 +28,7 @@ using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using static Volo.Abp.Identity.Settings.IdentitySettingNames;
namespace Shentun.Peis.RegisterAsbitems
{
@ -61,6 +66,8 @@ namespace Shentun.Peis.RegisterAsbitems
private readonly RegisterCheckAsbitemManager _registerAsbitemManager;
private readonly CardBillManager _cardBillManager;
private readonly CacheService _cacheService;
private readonly IRepository<Volo.Abp.Identity.OrganizationUnit, Guid> _organizationUnitRepository;
private readonly IRepository<Patient, Guid> _patientRepository;
public RegisterCheckAsbitemAppService(
IRepository<IdentityUser, Guid> userRepository,
IRepository<RegisterCheckAsbitem, Guid> registerAsbitemRepository,
@ -87,7 +94,9 @@ namespace Shentun.Peis.RegisterAsbitems
RegisterCheckAsbitemManager registerAsbitemManager,
CardBillManager cardBillManager,
CacheService cacheService,
IRepository<ChargeRequest, Guid> chargeRequestRepository)
IRepository<ChargeRequest, Guid> chargeRequestRepository,
IRepository<Volo.Abp.Identity.OrganizationUnit, Guid> organizationUnitRepository,
IRepository<Patient, Guid> patientRepository)
{
this._userRepository = userRepository;
this._registerCheckAsbitemRepository = registerAsbitemRepository;
@ -115,6 +124,8 @@ namespace Shentun.Peis.RegisterAsbitems
_customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
_medicalPackageDetailRepository = medicalPackageDetailRepository;
_chargeRequestRepository = chargeRequestRepository;
_organizationUnitRepository = organizationUnitRepository;
_patientRepository = patientRepository;
}
@ -839,7 +850,90 @@ namespace Shentun.Peis.RegisterAsbitems
#endregion
#region 处理项目的体检中心
/// <summary>
/// 根据人员获取当前登记项目信息 包含体检中心信息
/// </summary>
/// <returns></returns>
[HttpPost("api/app/RegisterCheckAsbitem/GetRegisterCheckAsbitemWithMedicalCenter")]
public async Task<List<GetRegisterCheckAsbitemWithMedicalCenterDto>> GetRegisterCheckAsbitemWithMedicalCenterAsync(GetRegisterCheckAsbitemWithMedicalCenterInputDto input)
{
if (input.PatientRegisterId == null && string.IsNullOrWhiteSpace(input.PatientRegisterNo))
{
throw new UserFriendlyException("参数不能为空");
}
var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id
join medicalCenter in await _organizationUnitRepository.GetQueryableAsync() on registerCheckAsbitem.MedicalCenterId equals medicalCenter.Id into medicalCenterTemp
from medicalCenterHaveEmpty in medicalCenterTemp.DefaultIfEmpty()
select new
{
patientRegister,
patient,
registerCheck,
registerCheckAsbitem,
asbitem,
medicalCenterHaveEmpty
};
if (!string.IsNullOrWhiteSpace(input.PatientRegisterNo))
{
query = query.Where(m => m.patientRegister.PatientRegisterNo == input.PatientRegisterNo);
}
else if (input.PatientRegisterId != null)
{
query = query.Where(m => m.patientRegister.Id == input.PatientRegisterId.Value);
}
var entListDto = query.ToList().Select(s => new GetRegisterCheckAsbitemWithMedicalCenterDto
{
RegisterCheckAsbitemId = s.registerCheckAsbitem.Id,
AsbitemName = s.asbitem.DisplayName,
IdNo = s.patient.IdNo,
MedicalCenterName = s.medicalCenterHaveEmpty != null ? s.medicalCenterHaveEmpty.DisplayName : "",
PatientName = s.patientRegister.PatientName,
PatientRegisterCompleteFlag = s.patientRegister.CompleteFlag,
RegisterCheckCompleteFlag = s.registerCheck.CompleteFlag
}).ToList();
return entListDto;
}
/// <summary>
/// 处理项目归属的体检中心id
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/RegisterCheckAsbitem/HandRegisterCheckAsbitemMedicalCenter")]
public async Task HandRegisterCheckAsbitemMedicalCenterAsync(List<HandRegisterCheckAsbitemMedicalCenterInputDto> input)
{
if (!input.Any())
{
throw new UserFriendlyException("参数不能为空");
}
var registerCheckAsbitemIds = input.Select(s => s.RegisterCheckAsbitemId).ToList();
var registerCheckAsbitemList = await _registerCheckAsbitemRepository.GetListAsync(m => registerCheckAsbitemIds.Contains(m.Id));
foreach (var item in registerCheckAsbitemList)
{
var inputMedicalCenterId = input.FirstOrDefault(f => f.RegisterCheckAsbitemId == item.Id).MedicalCenterId;
item.MedicalCenterId = inputMedicalCenterId;
}
await _registerCheckAsbitemRepository.UpdateManyAsync(registerCheckAsbitemList);
}
#endregion

Loading…
Cancel
Save