7 changed files with 278 additions and 4 deletions
-
13src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs
-
12src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs
-
58src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs
-
39src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs
-
14src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs
-
142src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs
-
2src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json
@ -0,0 +1,58 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
|
||||
|
namespace Shentun.Peis.ThirdPartyPublicInterfaces |
||||
|
{ |
||||
|
public class BasicInformationOfMedicalExaminationPersonnelDto |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 条码号
|
||||
|
/// </summary>
|
||||
|
public string PatientRegisterNo { get; set; } |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 姓名
|
||||
|
/// </summary>
|
||||
|
public string PatientName { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 性别
|
||||
|
/// </summary>
|
||||
|
public string SexName { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 出生日期 (yyyy-MM-dd)
|
||||
|
/// </summary>
|
||||
|
public string BirthDate { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 完成标志(0 预登记 1正式登记 2部分已检 3已总检)
|
||||
|
/// </summary>
|
||||
|
public char CompleteFlag { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 体检开始标志( Y 已开始 N 未开始)
|
||||
|
/// </summary>
|
||||
|
public char IsMedicalStart { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 体检开始日期 (格式:1999-09-09 09:09:09)
|
||||
|
/// </summary>
|
||||
|
public string MedicalStartDate { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 总检日期 (格式:1999-09-09 09:09:09)
|
||||
|
/// </summary>
|
||||
|
public string SummaryDate { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 总检医生
|
||||
|
/// </summary>
|
||||
|
public string SummaryDoctorName { get; set; } |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,39 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
|
||||
|
namespace Shentun.Peis.ThirdPartyPublicInterfaces |
||||
|
{ |
||||
|
public class PhysicalExaminationDetailsItemInformationDto |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 人员条码号
|
||||
|
/// </summary>
|
||||
|
public string PatientRegisterNo { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 科室名字
|
||||
|
/// </summary>
|
||||
|
public string ItemTypeName { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 明细项目名字
|
||||
|
/// </summary>
|
||||
|
public string ItemName { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 结果
|
||||
|
/// </summary>
|
||||
|
public string ItemResult { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 参考范围
|
||||
|
/// </summary>
|
||||
|
public string ReferenceRangeValue { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 单位
|
||||
|
/// </summary>
|
||||
|
public string Unit { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
|
||||
|
namespace Shentun.Peis.ThirdPartyPublicInterfaces |
||||
|
{ |
||||
|
public class PublicPatientRegisterNoInputDto |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 人员条码号
|
||||
|
/// </summary>
|
||||
|
public string PatientRegisterNo { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,142 @@ |
|||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.VisualBasic; |
||||
|
using NPOI.SS.Formula.Functions; |
||||
|
using Shentun.Peis.Models; |
||||
|
using Shentun.Peis.PatientRegisters; |
||||
|
using Shentun.Peis.Permissions; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
using Volo.Abp.Domain.Repositories; |
||||
|
|
||||
|
namespace Shentun.Peis.ThirdPartyPublicInterfaces |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 第三方公开接口
|
||||
|
/// </summary>
|
||||
|
[Authorize(PeisPermissions.Third.Default)] |
||||
|
public class ThirdPartyPublicInterfaceAppService : ApplicationService |
||||
|
{ |
||||
|
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository; |
||||
|
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository; |
||||
|
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository; |
||||
|
private readonly IRepository<RegisterCheckItem> _registerCheckItemRepository; |
||||
|
private readonly IRepository<Item, Guid> _itemRepository; |
||||
|
private readonly IRepository<ItemType, Guid> _itemTypeRepository; |
||||
|
private readonly CacheService _cacheService; |
||||
|
public ThirdPartyPublicInterfaceAppService( |
||||
|
IRepository<PatientRegister, Guid> patientRegisterRepository, |
||||
|
CacheService cacheService, |
||||
|
IRepository<RegisterCheck, Guid> registerCheckRepository, |
||||
|
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository, |
||||
|
IRepository<RegisterCheckItem> registerCheckItemRepository, |
||||
|
IRepository<Item, Guid> itemRepository, |
||||
|
IRepository<ItemType, Guid> itemTypeRepository) |
||||
|
{ |
||||
|
_patientRegisterRepository = patientRegisterRepository; |
||||
|
_cacheService = cacheService; |
||||
|
_registerCheckRepository = registerCheckRepository; |
||||
|
_registerCheckAsbitemRepository = registerCheckAsbitemRepository; |
||||
|
_registerCheckItemRepository = registerCheckItemRepository; |
||||
|
_itemRepository = itemRepository; |
||||
|
_itemTypeRepository = itemTypeRepository; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 查询体检人员基本信息
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost("api/Third/ThirdPartyPublicInterface/GetBasicInformationOfMedicalExaminationPersonnel")] |
||||
|
public async Task<BasicInformationOfMedicalExaminationPersonnelDto> GetBasicInformationOfMedicalExaminationPersonnelAsync(PublicPatientRegisterNoInputDto input) |
||||
|
{ |
||||
|
if (input == null) |
||||
|
{ |
||||
|
throw new UserFriendlyException($"请求参数错误"); |
||||
|
} |
||||
|
|
||||
|
var result = new BasicInformationOfMedicalExaminationPersonnelDto(); |
||||
|
|
||||
|
var patientRegisterEnt = await _patientRegisterRepository.FirstOrDefaultAsync(m => m.PatientRegisterNo == input.PatientRegisterNo); |
||||
|
if (patientRegisterEnt != null) |
||||
|
{ |
||||
|
result = new BasicInformationOfMedicalExaminationPersonnelDto |
||||
|
{ |
||||
|
BirthDate = patientRegisterEnt.BirthDate != null ? patientRegisterEnt.BirthDate.Value.ToString("yyyy-MM-dd") : "", |
||||
|
PatientRegisterNo = patientRegisterEnt.PatientRegisterNo, |
||||
|
CompleteFlag = patientRegisterEnt.CompleteFlag, |
||||
|
IsMedicalStart = patientRegisterEnt.IsMedicalStart, |
||||
|
MedicalStartDate = patientRegisterEnt.MedicalStartDate != null ? patientRegisterEnt.MedicalStartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", |
||||
|
PatientName = patientRegisterEnt.PatientName, |
||||
|
SexName = _cacheService.GetSexNameAsync(patientRegisterEnt.SexId).Result, |
||||
|
SummaryDoctorName = _cacheService.GetSurnameAsync(patientRegisterEnt.SummaryDoctorId).Result, |
||||
|
SummaryDate = patientRegisterEnt.SummaryDate != null ? patientRegisterEnt.SummaryDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", |
||||
|
}; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
throw new UserFriendlyException($"条码号不正确"); |
||||
|
} |
||||
|
|
||||
|
return result; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 查询体检明细项目信息
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost("api/Third/ThirdPartyPublicInterface/GetPhysicalExaminationDetailsItemInformation")] |
||||
|
public async Task<List<PhysicalExaminationDetailsItemInformationDto>> GetPhysicalExaminationDetailsItemInformationAsync(PublicPatientRegisterNoInputDto input) |
||||
|
{ |
||||
|
if (input == null) |
||||
|
{ |
||||
|
throw new UserFriendlyException($"请求参数错误"); |
||||
|
} |
||||
|
|
||||
|
var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync() |
||||
|
join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId |
||||
|
join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckItem.RegisterCheckId |
||||
|
join item in await _itemRepository.GetQueryableAsync() on registerCheckItem.ItemId equals item.Id |
||||
|
join itemType in await _itemTypeRepository.GetQueryableAsync() on item.ItemTypeId equals itemType.Id into itemTypeTemp |
||||
|
from itemTypeHaveEmpty in itemTypeTemp.DefaultIfEmpty() |
||||
|
where patientRegister.PatientRegisterNo == input.PatientRegisterNo |
||||
|
select new |
||||
|
{ |
||||
|
PatientRegisterNo = patientRegister.PatientRegisterNo, |
||||
|
registerCheckItem, |
||||
|
ItemName = item.DisplayName, |
||||
|
ItemTypeName = itemTypeHaveEmpty != null ? itemTypeHaveEmpty.DisplayName : "" |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
if (query.Count() == 0) |
||||
|
{ |
||||
|
throw new UserFriendlyException($"条码号不正确"); |
||||
|
} |
||||
|
|
||||
|
var entList = query.Select(s => new PhysicalExaminationDetailsItemInformationDto |
||||
|
{ |
||||
|
ItemName = s.ItemName, |
||||
|
ItemResult = s.registerCheckItem.Result, |
||||
|
ItemTypeName = s.ItemTypeName, |
||||
|
PatientRegisterNo = s.PatientRegisterNo, |
||||
|
ReferenceRangeValue = s.registerCheckItem.ReferenceRangeValue, |
||||
|
Unit = s.registerCheckItem.Unit |
||||
|
}).ToList(); |
||||
|
|
||||
|
return entList; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue