From 968142e29f71c5fb532663108571c29f2a2ed360 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Sun, 5 May 2024 00:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PeisPermissionDefinitionProvider.cs | 15 +- .../Permissions/PeisPermissions.cs | 12 ++ ...rmationOfMedicalExaminationPersonnelDto.cs | 58 +++++++ ...calExaminationDetailsItemInformationDto.cs | 39 +++++ .../PublicPatientRegisterNoInputDto.cs | 14 ++ .../ThirdPartyPublicInterfaceAppService.cs | 142 ++++++++++++++++++ .../Localization/Peis/en.json | 2 + 7 files changed, 278 insertions(+), 4 deletions(-) create mode 100644 src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs create mode 100644 src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs diff --git a/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs b/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs index ce70172..dbc37ae 100644 --- a/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissionDefinitionProvider.cs +++ b/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")); @@ -52,9 +52,16 @@ public class PeisPermissionDefinitionProvider : PermissionDefinitionProvider systemSettingsPermission_GuideType.AddChild(PeisPermissions.GuideTypes.Edit, L("Permission:GuideTypes.Edit")); var s1 = systemSettingsPermission_GuideType.AddChild(PeisPermissions.GuideTypes.Delete, L("Permission:GuideTypes.Delete")); - // s1.AddChild(PeisPermissions.GuideTypes.Delete + "333", L("Permission:GuideTypes.Delete")); + // 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 } diff --git a/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs b/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs index 1122aae..618b492 100644 --- a/src/Shentun.Peis.Application.Contracts/Permissions/PeisPermissions.cs +++ b/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"; } + + /// + /// 第三方接口组 + /// + public const string ThirdGroupName = "Peis.Third"; + + public static class Third + { + public const string Default = "Peis.Third.All"; + } } diff --git a/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs b/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/BasicInformationOfMedicalExaminationPersonnelDto.cs new file mode 100644 index 0000000..95e7371 --- /dev/null +++ b/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 + { + /// + /// 条码号 + /// + public string PatientRegisterNo { get; set; } + + + /// + /// 姓名 + /// + public string PatientName { get; set; } + + /// + /// 性别 + /// + public string SexName { get; set; } + + /// + /// 出生日期 (yyyy-MM-dd) + /// + public string BirthDate { get; set; } + + /// + /// 完成标志(0 预登记 1正式登记 2部分已检 3已总检) + /// + public char CompleteFlag { get; set; } + + /// + /// 体检开始标志( Y 已开始 N 未开始) + /// + public char IsMedicalStart { get; set; } + + /// + /// 体检开始日期 (格式:1999-09-09 09:09:09) + /// + public string MedicalStartDate { get; set; } + + /// + /// 总检日期 (格式:1999-09-09 09:09:09) + /// + public string SummaryDate { get; set; } + + /// + /// 总检医生 + /// + public string SummaryDoctorName { get; set; } + + + + } +} diff --git a/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs b/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PhysicalExaminationDetailsItemInformationDto.cs new file mode 100644 index 0000000..0eba26b --- /dev/null +++ b/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 + { + /// + /// 人员条码号 + /// + public string PatientRegisterNo { get; set; } + + /// + /// 科室名字 + /// + public string ItemTypeName { get; set; } + + /// + /// 明细项目名字 + /// + public string ItemName { get; set; } + + /// + /// 结果 + /// + public string ItemResult { get; set; } + + /// + /// 参考范围 + /// + public string ReferenceRangeValue { get; set; } + + /// + /// 单位 + /// + public string Unit { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs b/src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs new file mode 100644 index 0000000..13e3139 --- /dev/null +++ b/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 + { + /// + /// 人员条码号 + /// + public string PatientRegisterNo { get; set; } + } +} diff --git a/src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs b/src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs new file mode 100644 index 0000000..61e5d19 --- /dev/null +++ b/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 +{ + /// + /// 第三方公开接口 + /// + [Authorize(PeisPermissions.Third.Default)] + public class ThirdPartyPublicInterfaceAppService : ApplicationService + { + private readonly IRepository _patientRegisterRepository; + private readonly IRepository _registerCheckRepository; + private readonly IRepository _registerCheckAsbitemRepository; + private readonly IRepository _registerCheckItemRepository; + private readonly IRepository _itemRepository; + private readonly IRepository _itemTypeRepository; + private readonly CacheService _cacheService; + public ThirdPartyPublicInterfaceAppService( + IRepository patientRegisterRepository, + CacheService cacheService, + IRepository registerCheckRepository, + IRepository registerCheckAsbitemRepository, + IRepository registerCheckItemRepository, + IRepository itemRepository, + IRepository itemTypeRepository) + { + _patientRegisterRepository = patientRegisterRepository; + _cacheService = cacheService; + _registerCheckRepository = registerCheckRepository; + _registerCheckAsbitemRepository = registerCheckAsbitemRepository; + _registerCheckItemRepository = registerCheckItemRepository; + _itemRepository = itemRepository; + _itemTypeRepository = itemTypeRepository; + } + + + /// + /// 查询体检人员基本信息 + /// + /// + /// + [HttpPost("api/Third/ThirdPartyPublicInterface/GetBasicInformationOfMedicalExaminationPersonnel")] + public async Task 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; + + } + + + /// + /// 查询体检明细项目信息 + /// + /// + /// + [HttpPost("api/Third/ThirdPartyPublicInterface/GetPhysicalExaminationDetailsItemInformation")] + public async Task> 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; + } + + + + } +} diff --git a/src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json b/src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json index 7442683..d5095d8 100644 --- a/src/Shentun.Peis.Domain.Shared/Localization/Peis/en.json +++ b/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}!" } }