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}!"
}
}