diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointPatientRegisters/CreateAppointPatientRegisterDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointPatientRegisters/CreateAppointPatientRegisterDto.cs
index 5861113..1ef155e 100644
--- a/src/Shentun.WebPeis.Application.Contracts/AppointPatientRegisters/CreateAppointPatientRegisterDto.cs
+++ b/src/Shentun.WebPeis.Application.Contracts/AppointPatientRegisters/CreateAppointPatientRegisterDto.cs
@@ -10,10 +10,12 @@ namespace Shentun.WebPeis.AppointPatientRegisters
///
public class CreateAppointPatientRegisterDto
{
+
///
/// 人员ID
///
public Guid PersonId { get; set; }
+ public Guid? PatientRegisterId { get; set; }
///
/// 单位ID
///
diff --git a/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgDto.cs b/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgDto.cs
new file mode 100644
index 0000000..5a7aba5
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgDto.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.CustomerOrgs
+{
+ public class CustomerOrgDto
+ {
+ ///
+ /// 单位ID
+ ///
+ public Guid CustomerOrgId { get; set; }
+
+ ///
+ /// 单位名称
+ ///
+ public string CustomerOrgName { get; set; } = null!;
+
+ ///
+ /// 简称
+ ///
+ public string ShortName { get; set; } = null!;
+
+ ///
+ /// 父编号
+ ///
+ public Guid? ParentId { get; set; }
+
+ ///
+ /// 路径编码
+ ///
+ public string PathCode { get; set; } = null!;
+
+ ///
+ /// 拼音简码
+ ///
+ public string SimpleCode { get; set; } = null!;
+
+ ///
+ /// 备注
+ ///
+ public string? Remark { get; set; }
+
+ ///
+ /// 状态
+ ///
+ public char IsActive { get; set; }
+
+ ///
+ /// 显示顺序
+ ///
+ public int DisplayOrder { get; set; }
+
+
+ ///
+ /// 体检中心ID
+ ///
+ public Guid MedicalCenterId { get; set; }
+
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgGroupIdInput.cs b/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgGroupIdInput.cs
new file mode 100644
index 0000000..e619599
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/CustomerOrgs/CustomerOrgGroupIdInput.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.CustomerOrgs
+{
+ public class CustomerOrgGroupIdInput
+ {
+ public Guid CustomerOrgGroupId { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/MedicalPackages/MedicalPackageIdInput.cs b/src/Shentun.WebPeis.Application.Contracts/MedicalPackages/MedicalPackageIdInput.cs
index 88d899f..ecd07d3 100644
--- a/src/Shentun.WebPeis.Application.Contracts/MedicalPackages/MedicalPackageIdInput.cs
+++ b/src/Shentun.WebPeis.Application.Contracts/MedicalPackages/MedicalPackageIdInput.cs
@@ -6,6 +6,7 @@ namespace Shentun.WebPeis.MedicalPackages
{
public class MedicalPackageIdInput
{
+
public Guid MedicalPackageId { get; set; }
}
}
diff --git a/src/Shentun.WebPeis.Application.Contracts/PatientRegisters/PatientRegisterDto.cs b/src/Shentun.WebPeis.Application.Contracts/PatientRegisters/PatientRegisterDto.cs
new file mode 100644
index 0000000..d888619
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/PatientRegisters/PatientRegisterDto.cs
@@ -0,0 +1,197 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.PatientRegisters
+{
+ public class PatientRegisterDto
+ {
+ ///
+ /// 登记流水号
+ ///
+ public Guid PatientRegisterId { get; set; }
+
+ ///
+ /// 条码号
+ ///
+ public string PatientRegisterNo { get; set; } = null!;
+
+ ///
+ /// 档案号
+ ///
+ public Guid PatientId { get; set; }
+
+ ///
+ /// 体检次数
+ ///
+ public short MedicalTimes { get; set; }
+
+ ///
+ /// 单位编号
+ ///
+ public Guid CustomerOrgId { get; set; }
+
+ public string CustomerOrgName { get; set; }
+
+ public string ChildCustomerOrgName { get; set; }
+
+ ///
+ /// 分组
+ ///
+ public Guid? CustomerOrgGroupId { get; set; }
+
+ ///
+ /// 套餐
+ ///
+ public Guid? MedicalPackageId { get; set; }
+
+ ///
+ /// 姓名
+ ///
+ public string PatientName { get; set; } = null!;
+
+ ///
+ /// 性别
+ ///
+ public char SexId { get; set; }
+
+ ///
+ /// 出生日期
+ ///
+ public DateTime? BirthDate { get; set; }
+
+ ///
+ /// 年龄
+ ///
+ public short? Age { get; set; }
+
+ ///
+ /// 工卡号
+ ///
+ public string? JobCardNo { get; set; }
+
+ ///
+ /// 体检卡号
+ ///
+ public string? MedicalCardNo { get; set; }
+
+ ///
+ /// 婚姻状况
+ ///
+ public char MaritalStatusId { get; set; }
+
+ ///
+ /// 体检类别
+ ///
+ public Guid? MedicalTypeId { get; set; }
+
+ ///
+ /// 人员类别
+ ///
+ public Guid? PersonnelTypeId { get; set; }
+
+ ///
+ /// 职务
+ ///
+ public string? JobPost { get; set; }
+
+ ///
+ /// 职称
+ ///
+ public string? JobTitle { get; set; }
+
+ ///
+ /// 照片
+ ///
+ public string? Photo { get; set; }
+
+ ///
+ /// 性激素期限
+ ///
+ public Guid? SexHormoneTermId { get; set; }
+
+ ///
+ /// 干预措施
+ ///
+ public char? InterposeMeasure { get; set; }
+
+ ///
+ /// 体检结论
+ ///
+ public Guid? MedicalConclusionId { get; set; }
+
+ ///
+ /// 完成标志
+ ///
+ public char CompleteFlag { get; set; }
+
+ ///
+ /// 体检开始标志
+ ///
+ public char IsMedicalStart { get; set; }
+
+ ///
+ /// 体检开始日期
+ ///
+ public DateTime MedicalStartDate { get; set; }
+
+ ///
+ /// 总检日期
+ ///
+ public DateTime? SummaryDate { get; set; }
+
+ ///
+ /// 审核
+ ///
+ public char IsAudit { get; set; }
+
+ ///
+ /// 审核日期
+ ///
+ public DateTime? AuditDate { get; set; }
+
+ ///
+ /// vip客户
+ ///
+ public char IsVip { get; set; }
+
+ ///
+ /// 附加第三方信息
+ ///
+ public string? ThirdInfo { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string? Remark { get; set; }
+
+ ///
+ /// 体检中心ID
+ ///
+ public Guid MedicalCenterId { get; set; }
+
+ ///
+ /// 客户单位登记ID
+ ///
+ public Guid CustomerOrgRegisterId { get; set; }
+
+ public string? ConcurrencyStamp { get; set; }
+
+
+ ///
+ /// 审核医生
+ ///
+ public Guid? AuditDoctorId { get; set; }
+
+ ///
+ /// 总检医生
+ ///
+ public Guid? SummaryDoctorId { get; set; }
+
+ public string? HisPatientId { get; set; }
+
+ public string? ThirdRegisterId { get; set; }
+
+ public string? ReportFile { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs b/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
index 173a2e8..38d8424 100644
--- a/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
+++ b/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
@@ -2,8 +2,12 @@
using Microsoft.AspNetCore.Mvc;
using Shentun.WebPeis.AppointRegisterAsbitems;
using Shentun.WebPeis.CustomerOrgs;
+using Shentun.WebPeis.Enums;
+using Shentun.WebPeis.MedicalPackages;
using Shentun.WebPeis.Models;
using Shentun.WebPeis.OrganizationUnits;
+using Shentun.WebPeis.PatientRegisters;
+using Shentun.WebPeis.Persons;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -40,6 +44,10 @@ namespace Shentun.WebPeis.AppointPatientRegisters
private readonly AppointPatientRegisterManager _appointPatientRegisterManager;
private readonly CustomerOrgManager _customerOrgManager;
private readonly WebPeisOrganizationUnitManager _webPeisOrganizationUnitManager;
+ private readonly IRepository _patientRegisterRepository;
+ private readonly IRepository _patientRepository;
+ private readonly IRepository _registerCheckRepository;
+ private readonly IRepository _registerCheckAsbitemRepository;
public AppointPatientRegisterAppService(IRepository repository,
CacheService cacheService,
IRepository itemTypeRepository,
@@ -54,7 +62,11 @@ namespace Shentun.WebPeis.AppointPatientRegisters
IRepository customerOrgRepository,
IRepository medicalPackageDetailRepository,
IRepository customerOrgGroupDetailRepository,
- WebPeisOrganizationUnitManager webPeisOrganizationUnitManager
+ WebPeisOrganizationUnitManager webPeisOrganizationUnitManager,
+ IRepository patientRegisterRepository,
+ IRepository patientRepository,
+ IRepository registerCheckRepository,
+ IRepository registerCheckAsbitemRepository
)
{
_repository = repository;
@@ -72,6 +84,10 @@ namespace Shentun.WebPeis.AppointPatientRegisters
_medicalPackageDetailRepository = medicalPackageDetailRepository;
_customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
_webPeisOrganizationUnitManager = webPeisOrganizationUnitManager;
+ _patientRegisterRepository = patientRegisterRepository;
+ _patientRepository = patientRepository;
+ _registerCheckAsbitemRepository = registerCheckAsbitemRepository;
+ _registerCheckRepository = registerCheckRepository;
}
@@ -296,5 +312,115 @@ namespace Shentun.WebPeis.AppointPatientRegisters
.OrderBy(o=>o.DisplayOrder).ToList();
return appointRegisterAsbitemDtos;
}
+
+ ///
+ /// 获取单位预约病人
+ ///
+ ///
+ ///
+ [HttpPost("api/app/AppointPatientRegister/GetCustomerOrgAppointPatientRegisterByPersonId")]
+ public async Task GetCustomerOrgAppointPatientRegisterByPersonIdAsync(PersonIdInputDto input)
+ {
+ var patientRegisterDto = (from user in await _identityUserRepository.GetQueryableAsync()
+ join person in await _personRepository.GetQueryableAsync()
+ on user.Id equals person.PersonId
+ join patient in await _patientRepository.GetQueryableAsync()
+ on new { idNo = person.IdNo, phone = user.PhoneNumber } equals new { idNo = patient.IdNo, phone = patient.MobileTelephone }
+ join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
+ on patient.PatientId equals patientRegister.PatientId
+ join customerOrg in await _customerOrgRepository.GetQueryableAsync()
+ on patientRegister.CustomerOrgId equals customerOrg.CustomerOrgId
+ where user.Id == input.PersonId &&
+ (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.PreRegistration ||
+ patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Registration) &&
+ patientRegister.MedicalStartDate >= DateTime.Now.Date.AddDays(-365)
+ orderby patientRegister.MedicalStartDate descending
+ select new PatientRegisterDto()
+ {
+ PatientRegisterId = patientRegister.PatientRegisterId,
+ CustomerOrgId = customerOrg.CustomerOrgId,
+ ChildCustomerOrgName = customerOrg.CustomerOrgName,
+ CustomerOrgRegisterId = patientRegister.CustomerOrgRegisterId,
+ CustomerOrgGroupId = patientRegister.CustomerOrgGroupId,
+ }).FirstOrDefault();
+ if (patientRegisterDto == null)
+ {
+ return patientRegisterDto;
+ }
+ var customerOrgEntity = await _customerOrgRepository.GetAsync(o => o.CustomerOrgId == patientRegisterDto.CustomerOrgId);
+ customerOrgEntity = await _customerOrgRepository.GetAsync(o => o.PathCode == customerOrgEntity.PathCode.Substring(0, 5));
+ patientRegisterDto.CustomerOrgName = customerOrgEntity.CustomerOrgName;
+ return patientRegisterDto;
+ }
+
+ ///
+ /// 获取团检中个人备案项目
+ ///
+ ///
+ ///
+ [HttpPost("api/app/AppointPatientRegister/GetCheckTypeWithAsbitemsListByPatientRegisterId")]
+ public async Task> GetCheckTypeWithAsbitemsListByPatientRegisterIdAsync(PatientRegisterIdInputDto input)
+ {
+ //获取团检个人所有组合项目
+ var asbitems = (from registerCheck in await _registerCheckRepository.GetQueryableAsync()
+ join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
+ on registerCheck.RegisterCheckId equals registerCheckAsbitem.RegisterCheckId
+ join asbitem in await _asbitemRepository.GetQueryableAsync()
+ on registerCheckAsbitem.AsbitemId equals asbitem.AsbitemId
+ where registerCheck.PatientRegisterId == input.PatientRegisterId
+ select new MedicalPackageAsbitem()
+ {
+ ItemTypeId = asbitem.ItemTypeId,
+ AsbitemId = asbitem.AsbitemId,
+ AsbitemName = asbitem.AsbitemName,
+ ShortName = asbitem.ShortName,
+ Price = asbitem.Price,
+ ForSexId = asbitem.ForSexId,
+ //ForSexName = _cacheService.GetForSexNameAsync(asbitem.ForSexId).Result,
+ IsBeforeEat = asbitem.IsBeforeEat,
+ ClinicalMeaning = asbitem.ClinicalMeaning,
+ IsCheck = asbitem.IsCheck,
+ Warn = asbitem.Warn,
+ DiseaseScreeningTypeId = asbitem.DiseaseScreeningTypeId,
+ SimpleCode = asbitem.SimpleCode,
+ DisplayOrder = asbitem.DisplayOrder,
+ }
+ ).ToList();
+
+
+ //获取检查分类
+ var medicalPackageAsbitemDtos = new List()
+ {
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Regular,CheckTypeFlagName = "科室检查",DisplayOrder = 1},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Laboratory,CheckTypeFlagName = "检验",DisplayOrder = 2},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag =CheckTypeFlag.SpecialInspection,CheckTypeFlagName = "特检",DisplayOrder = 3},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Radiology,CheckTypeFlagName = "放射",DisplayOrder = 4}
+ };
+
+ var itemTypes = await _itemTypeRepository.GetListAsync();
+ foreach (var asbitem in asbitems)
+ {
+ asbitem.ForSexName = await _cacheService.GetForSexNameAsync(asbitem.ForSexId);
+ var itemType = itemTypes.Where(o => o.ItemTypeId == asbitem.ItemTypeId).Single();
+ if (itemType.PathCode.Length > 5)
+ {
+ itemType = itemTypes.Where(o => o.PathCode == itemType.PathCode.Substring(0, 5)).Single();
+ asbitem.ItemTypeId = itemType.ItemTypeId;
+ }
+ asbitem.CheckTypeFlag = itemType.CheckTypeFlag;
+ }
+ //设置每个分类包含的组合项目
+ foreach (var medicalPackageAsbitemDto in medicalPackageAsbitemDtos)
+ {
+ medicalPackageAsbitemDto.Asbitems = asbitems.Where(o => o.CheckTypeFlag == medicalPackageAsbitemDto.CheckTypeFlag).ToList();
+
+ }
+
+ return medicalPackageAsbitemDtos;
+
+
+ }
+
+
}
}
diff --git a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
index b9e0371..230fe75 100644
--- a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
+++ b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
@@ -36,6 +36,10 @@ namespace Shentun.WebPeis.Asbitems
_diseaseScreeningTypeRepository = diseaseScreeningTypeRepository;
}
+ ///
+ /// 获取组合项目列表
+ ///
+ ///
[HttpPost("api/app/Asbitem/GetDiseaseScreeningTypeAsbitemList")]
//[AllowAnonymous]
public async Task> GetDiseaseScreeningTypeAsbitemListAsync()
diff --git a/src/Shentun.WebPeis.Application/CustomerOrgGroups/CustomerOrgGroupAppService.cs b/src/Shentun.WebPeis.Application/CustomerOrgGroups/CustomerOrgGroupAppService.cs
new file mode 100644
index 0000000..59566b2
--- /dev/null
+++ b/src/Shentun.WebPeis.Application/CustomerOrgGroups/CustomerOrgGroupAppService.cs
@@ -0,0 +1,107 @@
+using Microsoft.AspNetCore.Mvc;
+using Shentun.WebPeis.customerOrgGroups;
+using Shentun.WebPeis.CustomerOrgs;
+using Shentun.WebPeis.Enums;
+using Shentun.WebPeis.MedicalPackages;
+using Shentun.WebPeis.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Domain.Repositories;
+
+namespace Shentun.WebPeis.CustomerOrgGroups
+{
+ public class CustomerOrgGroupAppService : ApplicationService
+ {
+ private readonly IRepository _repository;
+ private readonly IRepository _asbitemRepository;
+ private readonly IRepository _itemTypeRepository;
+ private readonly IRepository _customerOrgGroupDetailRepository;
+ private readonly CacheService _cacheService;
+
+ public CustomerOrgGroupAppService(IRepository repository,
+ CacheService cacheService,
+ IRepository asbitemRepository,
+ IRepository customerOrgGroupDetailRepository,
+ IRepository itemTypeRepository
+ )
+ {
+ _repository = repository;
+ _cacheService = cacheService;
+ _asbitemRepository = asbitemRepository;
+ _customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
+ _itemTypeRepository = itemTypeRepository;
+
+ }
+ /*
+ ///
+ /// 获取分组组合项目,暂时不起作用,由GetCheckTypeWithAsbitemsListByMedicalPackageId取代
+ ///
+ ///
+ ///
+ [HttpPost("api/app/CustomerOrgGroup/GetCheckTypeWithAsbitemsListByCustomerOrgGroupId")]
+ //[AllowAnonymous]
+ public async Task> GetCheckTypeWithAsbitemsListByCustomerOrgGroupIdAsync(CustomerOrgGroupIdInput input)
+ {
+ //获取套餐所有组合项目
+ var asbitems = (from customerOrgGroupDetail in await _customerOrgGroupDetailRepository.GetQueryableAsync()
+ join asbitem in await _asbitemRepository.GetQueryableAsync()
+ on customerOrgGroupDetail.AsbitemId equals asbitem.AsbitemId
+ where customerOrgGroupDetail.CustomerOrgGroupId == input.CustomerOrgGroupId
+ select new MedicalPackageAsbitem()
+ {
+ ItemTypeId = asbitem.ItemTypeId,
+ AsbitemId = asbitem.AsbitemId,
+ AsbitemName = asbitem.AsbitemName,
+ ShortName = asbitem.ShortName,
+ Price = asbitem.Price,
+ ForSexId = asbitem.ForSexId,
+ //ForSexName = _cacheService.GetForSexNameAsync(asbitem.ForSexId).Result,
+ IsBeforeEat = asbitem.IsBeforeEat,
+ ClinicalMeaning = asbitem.ClinicalMeaning,
+ IsCheck = asbitem.IsCheck,
+ Warn = asbitem.Warn,
+ DiseaseScreeningTypeId = asbitem.DiseaseScreeningTypeId,
+ SimpleCode = asbitem.SimpleCode,
+ DisplayOrder = asbitem.DisplayOrder,
+ }
+ ).ToList();
+
+ //获取检查分类
+ var customerOrgGroupAsbitemDtos = new List()
+ {
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Regular,CheckTypeFlagName = "科室检查",DisplayOrder = 1},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Laboratory,CheckTypeFlagName = "检验",DisplayOrder = 2},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag =CheckTypeFlag.SpecialInspection,CheckTypeFlagName = "特检",DisplayOrder = 3},
+ new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Radiology,CheckTypeFlagName = "放射",DisplayOrder = 4}
+ };
+
+ var itemTypes = await _itemTypeRepository.GetListAsync();
+ foreach (var asbitem in asbitems)
+ {
+ asbitem.ForSexName = await _cacheService.GetForSexNameAsync(asbitem.ForSexId);
+ var itemType = itemTypes.Where(o => o.ItemTypeId == asbitem.ItemTypeId).Single();
+ if (itemType.PathCode.Length > 5)
+ {
+ itemType = itemTypes.Where(o => o.PathCode == itemType.PathCode.Substring(0, 5)).Single();
+ asbitem.ItemTypeId = itemType.ItemTypeId;
+ }
+ asbitem.CheckTypeFlag = itemType.CheckTypeFlag;
+ }
+ //设置每个分类包含的组合项目
+ foreach (var customerOrgGroupAsbitemDto in customerOrgGroupAsbitemDtos)
+ {
+ customerOrgGroupAsbitemDto.Asbitems = asbitems.Where(o => o.CheckTypeFlag == customerOrgGroupAsbitemDto.CheckTypeFlag).ToList();
+
+ }
+
+ return customerOrgGroupAsbitemDtos;
+
+
+ }
+ */
+ }
+}
diff --git a/src/Shentun.WebPeis.Application/MedicalPackages/MedicalPackageAppservice.cs b/src/Shentun.WebPeis.Application/MedicalPackages/MedicalPackageAppservice.cs
index 3b6c5b2..eb3ce01 100644
--- a/src/Shentun.WebPeis.Application/MedicalPackages/MedicalPackageAppservice.cs
+++ b/src/Shentun.WebPeis.Application/MedicalPackages/MedicalPackageAppservice.cs
@@ -21,13 +21,16 @@ namespace Shentun.WebPeis.MedicalPackages
private readonly IRepository _asbitemRepository;
private readonly IRepository _itemTypeRepository;
private readonly IRepository _medicalPackageDetailRepository;
+ private readonly IRepository _customerOrgGroupDetailRepository;
private readonly CacheService _cacheService;
public MedicalPackageAppService(IRepository repository,
CacheService cacheService,
IRepository asbitemRepository,
IRepository medicalPackageDetailRepository,
- IRepository itemTypeRepository
+ IRepository itemTypeRepository,
+ IRepository customerOrgGroupDetailRepository
+
)
{
_repository = repository;
@@ -35,7 +38,7 @@ namespace Shentun.WebPeis.MedicalPackages
_asbitemRepository = asbitemRepository;
_medicalPackageDetailRepository = medicalPackageDetailRepository;
_itemTypeRepository = itemTypeRepository;
-
+ _customerOrgGroupDetailRepository = customerOrgGroupDetailRepository;
}
///
/// 获取能预约的套餐信息
@@ -57,7 +60,7 @@ namespace Shentun.WebPeis.MedicalPackages
}
///
- /// 获取套餐组合项目
+ /// 获取套餐或单位分组组合项目
///
///
///
@@ -67,27 +70,28 @@ namespace Shentun.WebPeis.MedicalPackages
{
//获取套餐所有组合项目
var asbitems = (from medicalPackageDetail in await _medicalPackageDetailRepository.GetQueryableAsync()
- join asbitem in await _asbitemRepository.GetQueryableAsync()
- on medicalPackageDetail.AsbitemId equals asbitem.AsbitemId
- where medicalPackageDetail.MedicalPackageId == input.MedicalPackageId
- select new MedicalPackageAsbitem()
- {
- ItemTypeId = asbitem.ItemTypeId,
- AsbitemId = asbitem.AsbitemId,
- AsbitemName = asbitem.AsbitemName,
- ShortName = asbitem.ShortName,
- Price = asbitem.Price,
- ForSexId = asbitem.ForSexId,
- //ForSexName = _cacheService.GetForSexNameAsync(asbitem.ForSexId).Result,
- IsBeforeEat = asbitem.IsBeforeEat,
- ClinicalMeaning = asbitem.ClinicalMeaning,
- IsCheck = asbitem.IsCheck,
- Warn = asbitem.Warn,
- DiseaseScreeningTypeId = asbitem.DiseaseScreeningTypeId,
- SimpleCode = asbitem.SimpleCode,
- DisplayOrder = asbitem.DisplayOrder,
- }
- ).ToList();
+ join asbitem in await _asbitemRepository.GetQueryableAsync()
+ on medicalPackageDetail.AsbitemId equals asbitem.AsbitemId
+ where medicalPackageDetail.MedicalPackageId == input.MedicalPackageId
+ select new MedicalPackageAsbitem()
+ {
+ ItemTypeId = asbitem.ItemTypeId,
+ AsbitemId = asbitem.AsbitemId,
+ AsbitemName = asbitem.AsbitemName,
+ ShortName = asbitem.ShortName,
+ Price = asbitem.Price,
+ ForSexId = asbitem.ForSexId,
+ //ForSexName = _cacheService.GetForSexNameAsync(asbitem.ForSexId).Result,
+ IsBeforeEat = asbitem.IsBeforeEat,
+ ClinicalMeaning = asbitem.ClinicalMeaning,
+ IsCheck = asbitem.IsCheck,
+ Warn = asbitem.Warn,
+ DiseaseScreeningTypeId = asbitem.DiseaseScreeningTypeId,
+ SimpleCode = asbitem.SimpleCode,
+ DisplayOrder = asbitem.DisplayOrder,
+ }
+ ).ToList();
+
//获取检查分类
var medicalPackageAsbitemDtos = new List()
@@ -97,7 +101,7 @@ namespace Shentun.WebPeis.MedicalPackages
new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag =CheckTypeFlag.SpecialInspection,CheckTypeFlagName = "特检",DisplayOrder = 3},
new MedicalPackageCheckTypeWithAsbitemsDto(){CheckTypeFlag = CheckTypeFlag.Radiology,CheckTypeFlagName = "放射",DisplayOrder = 4}
};
-
+
var itemTypes = await _itemTypeRepository.GetListAsync();
foreach (var asbitem in asbitems)
{
@@ -111,9 +115,9 @@ namespace Shentun.WebPeis.MedicalPackages
asbitem.CheckTypeFlag = itemType.CheckTypeFlag;
}
//设置每个分类包含的组合项目
- foreach(var medicalPackageAsbitemDto in medicalPackageAsbitemDtos)
+ foreach (var medicalPackageAsbitemDto in medicalPackageAsbitemDtos)
{
- medicalPackageAsbitemDto.Asbitems = asbitems.Where(o=>o.CheckTypeFlag == medicalPackageAsbitemDto.CheckTypeFlag).ToList();
+ medicalPackageAsbitemDto.Asbitems = asbitems.Where(o => o.CheckTypeFlag == medicalPackageAsbitemDto.CheckTypeFlag).ToList();
}
diff --git a/src/Shentun.WebPeis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.WebPeis.Application/PatientRegisters/PatientRegisterAppService.cs
index d9397b6..4e12295 100644
--- a/src/Shentun.WebPeis.Application/PatientRegisters/PatientRegisterAppService.cs
+++ b/src/Shentun.WebPeis.Application/PatientRegisters/PatientRegisterAppService.cs
@@ -3,6 +3,8 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Shentun.Utilities;
+using Shentun.WebPeis.Enums;
+using Shentun.WebPeis.MedicalPackages;
using Shentun.WebPeis.Models;
using System;
using System.Collections.Generic;
@@ -22,11 +24,26 @@ namespace Shentun.WebPeis.PatientRegisters
private readonly IConfiguration _configuration;
private readonly IRepository _patientRegisterRepository;
+ private readonly IRepository _registerCheckRepository;
+ private readonly IRepository _registerCheckAsbitemRepository;
+ private readonly IRepository _asbitemRepository;
+ private readonly IRepository _itemTypeRepository;
+ private readonly CacheService _cacheService;
public PatientRegisterAppService(IRepository patientRegisterRepository,
- IConfiguration configuration)
+ IConfiguration configuration,
+ IRepository asbitemRepository,
+ IRepository itemTypeRepository,
+ IRepository registerCheckRepository,
+ IRepository registerCheckAsbitemRepository,
+ CacheService cacheService)
{
_patientRegisterRepository = patientRegisterRepository;
_configuration = configuration;
+ _asbitemRepository = asbitemRepository;
+ _itemTypeRepository = itemTypeRepository;
+ _registerCheckAsbitemRepository = registerCheckAsbitemRepository;
+ _registerCheckRepository = registerCheckRepository;
+ _cacheService = cacheService;
}
///
@@ -105,5 +122,7 @@ namespace Shentun.WebPeis.PatientRegisters
return patientRegisterReportDto;
}
+
+
}
}
diff --git a/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs b/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs
index 17f7238..58adae8 100644
--- a/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs
+++ b/src/Shentun.WebPeis.Application/Persons/PersonAppService.cs
@@ -33,6 +33,7 @@ using System.IdentityModel.Tokens.Jwt;
using Shentun.WebPeis.PatientRegisters;
using Microsoft.AspNetCore.Http;
using System.IO;
+using Shentun.WebPeis.CustomerOrgs;
namespace Shentun.WebPeis.Persons
{
///
@@ -55,6 +56,7 @@ namespace Shentun.WebPeis.Persons
private readonly IRepository _patientRepository;
private readonly CacheService _cacheService;
private readonly IHttpContextAccessor _httpContextAccessor;
+ private readonly IRepository _customerOrgRepository;
public PersonAppService(IRepository repository,
IConfiguration configuration,
IRepository identityUserRepository,
@@ -66,7 +68,8 @@ namespace Shentun.WebPeis.Persons
IRepository patientRegisterRepository,
IRepository patientRepository,
CacheService cacheService,
- IHttpContextAccessor httpContextAccessor)
+ IHttpContextAccessor httpContextAccessor,
+ IRepository customerOrgRepository)
{
_repository = repository;
_configuration = configuration;
@@ -80,6 +83,7 @@ namespace Shentun.WebPeis.Persons
_patientRepository = patientRepository;
_cacheService = cacheService;
_httpContextAccessor = httpContextAccessor;
+ _customerOrgRepository = customerOrgRepository;
}
public async Task GetByIdAsync(PersonIdInputDto input)
@@ -286,7 +290,8 @@ namespace Shentun.WebPeis.Persons
on new { idNo = person.IdNo ,phone = user.PhoneNumber} equals new { idNo = patient.IdNo, phone = patient.MobileTelephone }
join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
on patient.PatientId equals patientRegister.PatientId
- where user.Id == input.PersonId
+ where user.Id == input.PersonId &&
+ ( patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit)
orderby patientRegister.MedicalStartDate
select new PersonMedicalTimesDto()
{
@@ -361,6 +366,9 @@ namespace Shentun.WebPeis.Persons
return returnValue;
}
+
+
+
private async Task GetTokenAsync(string request)
{
using var client = new HttpClient();
diff --git a/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj b/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj
index fec3f54..296d670 100644
--- a/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj
+++ b/src/Shentun.WebPeis.Application/Shentun.WebPeis.Application.csproj
@@ -29,6 +29,7 @@
+
diff --git a/src/Shentun.WebPeis.Domain.Shared/Enums/AppointPatientRegisterCompleteFlag.cs b/src/Shentun.WebPeis.Domain.Shared/Enums/AppointPatientRegisterCompleteFlag.cs
index a484399..7523119 100644
--- a/src/Shentun.WebPeis.Domain.Shared/Enums/AppointPatientRegisterCompleteFlag.cs
+++ b/src/Shentun.WebPeis.Domain.Shared/Enums/AppointPatientRegisterCompleteFlag.cs
@@ -8,33 +8,20 @@ namespace Shentun.WebPeis.Enums
public class AppointPatientRegisterCompleteFlag
{
///
- /// 预登记 0
+ /// 预约 0
///
- [Description("预登记")]
- public const char PreRegistration = '0';
+ [Description("预约")]
+ public const char Appoint = '0';
///
- /// 正式登记 1
+ /// 取消预约 1
///
- [Description("正式登记")]
- public const char Registration = '1';
+ [Description("取消预约")]
+ public const char CancelAppoint = '1';
///
- /// 部分已检 2
+ /// 已到检
///
- [Description("部分已检")]
- public const char PartCheck = '2';
- ///
- /// 已总检 3
- ///
- [Description("已总检")]
- public const char SumCheck = '3';
-
- [Description("已审核")]
- public const char Audit = '4';
-
- ///
- /// 项目全部已检未总检
- ///
- [Description("项目全部已检未总检")]
- public const char ItemCheckUnSumCheck = '5';
+ [Description("已到检")]
+ public const char Check = '2';
+
}
}
diff --git a/src/Shentun.WebPeis.Domain/AppointPatientRegisters/AppointPatientRegisterManager.cs b/src/Shentun.WebPeis.Domain/AppointPatientRegisters/AppointPatientRegisterManager.cs
index eee6f5a..7c2d242 100644
--- a/src/Shentun.WebPeis.Domain/AppointPatientRegisters/AppointPatientRegisterManager.cs
+++ b/src/Shentun.WebPeis.Domain/AppointPatientRegisters/AppointPatientRegisterManager.cs
@@ -67,6 +67,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
{
await Verify(entity);
entity.AppointPatientRegisterId = GuidGenerator.Create();
+ entity.CompleteFlag = AppointPatientRegisterCompleteFlag.Appoint;
foreach (var appointRegisterAsbitem in entity.AppointRegisterAsbitems)
{
appointRegisterAsbitem.AppointPatientRegisterId = entity.AppointPatientRegisterId;
@@ -127,6 +128,11 @@ namespace Shentun.WebPeis.AppointPatientRegisters
{
throw new UserFriendlyException("单位体检不能选套餐");
}
+ if(entity.PatientRegisterId == null || entity.PatientRegisterId == Guid.Empty)
+ {
+ throw new UserFriendlyException("团检预约必须有人员备案登记编号");
+ }
+
}
var customerOrgRegister = await _customerOrgRegisterRepository.FindAsync(o => o.CustomerOrgRegisterId == entity.CustomerOrgRegisterId);
@@ -159,7 +165,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
}
});
}
-
+
if (entity.CustomerOrgGroupId != null)
{
var customerOrgGroupDetails = await _customerOrgGroupDetailRepository
diff --git a/src/Shentun.WebPeis.Domain/Models/AppointPatientRegister.cs b/src/Shentun.WebPeis.Domain/Models/AppointPatientRegister.cs
index 91df25e..1c687ea 100644
--- a/src/Shentun.WebPeis.Domain/Models/AppointPatientRegister.cs
+++ b/src/Shentun.WebPeis.Domain/Models/AppointPatientRegister.cs
@@ -73,6 +73,10 @@ public partial class AppointPatientRegister: AuditedEntity, IHasConcurrencyStamp
///
public decimal? Weight { get; set; }
///
+ /// 人员登记ID
+ ///
+ public Guid? PatientRegisterId { get; set; }
+ ///
/// 收费
///
public virtual ICollection Charges { get; set; } = new List();
diff --git a/src/Shentun.WebPeis.Domain/Models/RegisterCheck.cs b/src/Shentun.WebPeis.Domain/Models/RegisterCheck.cs
index e4b4593..ccbea3b 100644
--- a/src/Shentun.WebPeis.Domain/Models/RegisterCheck.cs
+++ b/src/Shentun.WebPeis.Domain/Models/RegisterCheck.cs
@@ -1,12 +1,14 @@
using System;
using System.Collections.Generic;
+using Volo.Abp.Domain.Entities.Auditing;
+using Volo.Abp.Domain.Entities;
namespace Shentun.WebPeis.Models;
///
/// 登记检查单
///
-public partial class RegisterCheck
+public partial class RegisterCheck : AuditedEntity, IHasConcurrencyStamp
{
public Guid RegisterCheckId { get; set; }
@@ -89,13 +91,7 @@ public partial class RegisterCheck
public string? ConcurrencyStamp { get; set; }
- public DateTime CreationTime { get; set; }
-
- public Guid CreatorId { get; set; }
-
- public DateTime LastModificationTime { get; set; }
-
- public Guid LastModifierId { get; set; }
+
public Guid? ExecOrganizationUnitId { get; set; }
@@ -106,4 +102,9 @@ public partial class RegisterCheck
public virtual ICollection RegisterCheckSuggestions { get; set; } = new List();
public virtual ICollection RegisterCheckSummaries { get; set; } = new List();
+
+ public override object?[] GetKeys()
+ {
+ return [RegisterCheckId];
+ }
}
diff --git a/src/Shentun.WebPeis.Domain/Models/RegisterCheckAsbitem.cs b/src/Shentun.WebPeis.Domain/Models/RegisterCheckAsbitem.cs
index f285a95..418dd47 100644
--- a/src/Shentun.WebPeis.Domain/Models/RegisterCheckAsbitem.cs
+++ b/src/Shentun.WebPeis.Domain/Models/RegisterCheckAsbitem.cs
@@ -1,12 +1,14 @@
using System;
using System.Collections.Generic;
+using Volo.Abp.Domain.Entities.Auditing;
+using Volo.Abp.Domain.Entities;
namespace Shentun.WebPeis.Models;
///
/// 检查组合项目记录
///
-public partial class RegisterCheckAsbitem
+public partial class RegisterCheckAsbitem : AuditedEntity, IHasConcurrencyStamp
{
///
/// 主键
@@ -52,11 +54,10 @@ public partial class RegisterCheckAsbitem
public string? ConcurrencyStamp { get; set; }
- public DateTime CreationTime { get; set; }
+
- public Guid CreatorId { get; set; }
-
- public DateTime LastModificationTime { get; set; }
-
- public Guid LastModifierId { get; set; }
+ public override object?[] GetKeys()
+ {
+ return [RegisterCheckAsbitemId];
+ }
}
diff --git a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointPatientRegisterConfigure.cs b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointPatientRegisterConfigure.cs
index 6789a09..4693e5f 100644
--- a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointPatientRegisterConfigure.cs
+++ b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointPatientRegisterConfigure.cs
@@ -49,6 +49,7 @@ namespace Shentun.WebPeis.Configures
.HasColumnType("timestamp(6) without time zone")
.HasColumnName("appoint_date");
entity.Property(e => e.PersonId).HasColumnName("person_id");
+ entity.Property(e => e.PatientRegisterId).HasColumnName("patient_register_id");
entity.Property(e => e.Remark)
.HasMaxLength(200)
.HasColumnName("remark");