DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
fa58a08b29
  1. 13
      src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs
  2. 12
      src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs
  3. 58
      src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs
  4. 39
      src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs
  5. 14
      src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs
  6. 142
      src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs
  7. 2
      src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json

13
src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs

@ -21,9 +21,9 @@ public class PeisPermissionDefinitionProvider : PermissionDefinitionProvider
//配置权限选项
var organizationUnitsPermission = myGroup.AddPermission(PeisPermissions.OrganizationUnits.Default, L("Permission:OrganizationUnits"));
booksPermission.AddChild(PeisPermissions.OrganizationUnits.Create, L("Permission:OrganizationUnits.Create"));
booksPermission.AddChild(PeisPermissions.OrganizationUnits.Edit, L("Permission:OrganizationUnits.Edit"));
booksPermission.AddChild(PeisPermissions.OrganizationUnits.Delete, L("Permission:OrganizationUnits.Delete"));
organizationUnitsPermission.AddChild(PeisPermissions.OrganizationUnits.Create, L("Permission:OrganizationUnits.Create"));
organizationUnitsPermission.AddChild(PeisPermissions.OrganizationUnits.Edit, L("Permission:OrganizationUnits.Edit"));
organizationUnitsPermission.AddChild(PeisPermissions.OrganizationUnits.Delete, L("Permission:OrganizationUnits.Delete"));
@ -55,6 +55,13 @@ public class PeisPermissionDefinitionProvider : PermissionDefinitionProvider
// s1.AddChild(PeisPermissions.GuideTypes.Delete + "333", L("Permission:GuideTypes.Delete"));
#endregion
#region 第三方接口
var myThirdGroupName = context.AddGroup(PeisPermissions.ThirdGroupName, L("Peis:Third"));
myThirdGroupName.AddPermission(PeisPermissions.Third.Default, L("Permission:Third"));
#endregion
}

12
src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs

@ -31,6 +31,8 @@ public static class PeisPermissions
public const string Delete = Default + ".Delete";
}
#endregion
#region 系统设置
@ -66,4 +68,14 @@ public static class PeisPermissions
public const string Edit = Default + ".Edit";
public const string Delete = Default + ".Delete";
}
/// <summary>
/// 第三方接口组
/// </summary>
public const string ThirdGroupName = "Peis.Third";
public static class Third
{
public const string Default = "Peis.Third.All";
}
}

58
src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs

@ -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; }
}
}

39
src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs

@ -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; }
}
}

14
src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs

@ -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; }
}
}

142
src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs

@ -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;
}
}
}

2
src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json

@ -9,6 +9,8 @@
"Permission:Books.Create": "Creating new books",
"Permission:Books.Edit": "Editing the books",
"Permission:Books.Delete": "Deleting the books",
"Permission:Third": "第三方接口基础权限",
"Peis:Third": "第三方接口",
"EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!"
}
}
Loading…
Cancel
Save