Browse Source

patient_register修改

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
fd79cbf322
  1. 6
      src/Shentun.Peis.Domain.Shared/Enums/MaritalStatusFlag.cs
  2. 30
      src/Shentun.Peis.Domain/DataHelper.cs
  3. 24
      src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs
  4. 203
      src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs
  5. 4
      src/Shentun.Peis.Domain/Patients/Patient.cs
  6. 11
      src/Shentun.Peis.Domain/Patients/PatientManager.cs

6
src/Shentun.Peis.Domain.Shared/Enums/MaritalStatusFlag.cs

@ -25,6 +25,12 @@ namespace Shentun.Peis.Enums
/// </summary>
[Description("离异")]
public const char Divorce = '2';
[Description("丧偶")]
public const char Widowed = '3';
[Description("离异或丧偶")]
public const char DivorceOrWidowed = '4';
/// <summary>
/// 未知
/// </summary>

30
src/Shentun.Peis.Domain/DataHelper.cs

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using Volo.Abp;
using Shentun.Peis.Models;
using TencentCloud.Bda.V20200324.Models;
using Shentun.Peis.Enums;
namespace Shentun.Peis
{
@ -480,7 +481,7 @@ namespace Shentun.Peis
/// <exception cref="ArgumentException"></exception>
public static void CheckGuidIsDefaultValue(Guid? value, string parameterName, string ExceptionMessage = "不能为默认值00000000-0000-0000-0000-000000000000")
{
if (value == Guid.Empty)
if (value == Guid.Empty || value == default(Guid))
{
throw new ArgumentException($"{parameterName}{ExceptionMessage}");
}
@ -517,6 +518,33 @@ namespace Shentun.Peis
}
}
public static void CheckSex(char value)
{
if (value.ToString() != SexFlag.Male && value.ToString() != SexFlag.Female && value.ToString() != SexFlag.UnKnown)
{
throw new ArgumentException($"性别参数不正确");
}
}
public static void CheckForSex(char value)
{
if (value != ForSexFlag.Male && value != ForSexFlag.Female && value != ForSexFlag.All)
{
throw new ArgumentException($"性别参数不正确");
}
}
public static void CheckMaritalStatus(char value)
{
if (value != MaritalStatusFlag.UnMarried && value != MaritalStatusFlag.Married &&
value != MaritalStatusFlag.Divorce && value != MaritalStatusFlag.Widowed &&
value != MaritalStatusFlag.DivorceOrWidowed &&
value != MaritalStatusFlag.UnMarried)
{
throw new ArgumentException($"婚姻状况参数不正确");
}
}
#endregion
}

24
src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs

@ -85,7 +85,7 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("sex_id")]
[MaxLength(1)]
public char? SexId { get; set; }
public char SexId { get; set; }
/// <summary>
/// 出生日期
/// </summary>
@ -113,7 +113,7 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("marital_status_id")]
[MaxLength(1)]
public char? MaritalStatusId { get; set; }
public char MaritalStatusId { get; set; }
/// <summary>
/// 体检类别
/// </summary>
@ -172,25 +172,25 @@ namespace Shentun.Peis.Models
/// 体检报告打印次数
/// </summary>
[Column("report_print_times")]
public short? ReportPrintTimes { get; set; }
public short ReportPrintTimes { get; set; }
/// <summary>
/// 是否上传到WEB
/// </summary>
[Column("is_upload")]
[MaxLength(1)]
public char? IsUpload { get; set; }
public char IsUpload { get; set; }
/// <summary>
/// 完成标志(0 预登记 1正式登记 2部分已检 3已总检)
/// </summary>
[Column("complete_flag")]
[MaxLength(1)]
public char? CompleteFlag { get; set; }
public char CompleteFlag { get; set; }
/// <summary>
/// 体检开始标志
/// </summary>
[Column("is_medical_start")]
[MaxLength(1)]
public char? IsMedicalStart { get; set; }
public char IsMedicalStart { get; set; }
/// <summary>
/// 体检开始日期
/// </summary>
@ -201,7 +201,7 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("is_recover_guide")]
[MaxLength(1)]
public char? IsRecoverGuide { get; set; }
public char IsRecoverGuide { get; set; }
/// <summary>
/// 总检日期
/// </summary>
@ -218,7 +218,7 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("is_audit")]
[MaxLength(1)]
public char? IsAudit { get; set; }
public char IsAudit { get; set; }
/// <summary>
/// 审核医生
/// </summary>
@ -241,19 +241,19 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("is_name_hide")]
[MaxLength(1)]
public char? IsNameHide { get; set; }
public char IsNameHide { get; set; }
/// <summary>
/// 电话随访
/// </summary>
[Column("is_phone_follow")]
[MaxLength(1)]
public char? IsPhoneFollow { get; set; }
public char IsPhoneFollow { get; set; }
/// <summary>
/// vip客户
/// </summary>
[Column("is_vip")]
[MaxLength(1)]
public char? IsVip { get; set; }
public char IsVip { get; set; }
/// <summary>
/// 附加第三方信息
/// </summary>
@ -264,7 +264,7 @@ namespace Shentun.Peis.Models
/// 指引单打印次数
/// </summary>
[Column("guide_print_times")]
public short? GuidePrintTimes { get; set; }
public short GuidePrintTimes { get; set; }
/// <summary>
/// 备注
/// </summary>

203
src/Shentun.Peis.Domain/PatientRegisters/PatientRegisterManager.cs

@ -42,6 +42,12 @@ namespace Shentun.Peis.PatientRegisters
private readonly IRepository<PatientRegister, Guid> _repository;
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
private readonly IRepository<CustomerOrgGroup, Guid> _customerOrgGroupRepository;
private readonly IRepository<MedicalType, Guid> _medicalTypeRepository;
private readonly IRepository<PersonnelType, Guid> _personnelTypeRepository;
private readonly IRepository<MedicalPackage, Guid> _medicalPackageRepository;
private readonly IRepository<MedicalConclusion, Guid> _medicalConclusionRepository;
private readonly IRepository<SexHormoneTerm, Guid> _sexHormoneTermRepository;
private readonly IRepository<PrimarykeyBuilder> _primarykeyBuilderRepository;
private readonly IRepository<Patient, Guid> _patientRepository;
private readonly IRepository<RegisterAsbitem, Guid> _registerAsbitemRepository;
@ -64,6 +70,12 @@ namespace Shentun.Peis.PatientRegisters
public PatientRegisterManager(
IRepository<PatientRegister, Guid> repository,
IRepository<CustomerOrgGroup, Guid> _customerOrgGroupRepository,
IRepository<MedicalType, Guid> _medicalTypeRepository,
IRepository<PersonnelType, Guid> _personnelTypeRepository,
IRepository<MedicalPackage, Guid> _medicalPackageRepository,
IRepository<MedicalConclusion, Guid> _medicalConclusionRepository,
IRepository<SexHormoneTerm, Guid> _sexHormoneTermRepository,
IRepository<SysParmValue> sysParmValueRepository,
IRepository<CustomerOrg, Guid> customerOrgRepository,
IRepository<PrimarykeyBuilder> primarykeyBuilderRepository,
@ -248,7 +260,198 @@ namespace Shentun.Peis.PatientRegisters
return await _repository.InsertAsync(patientRegisterEnt, true);
}
public async Task<PatientRegister> CreateAsync2(PatientRegister entity)
{
Verify(entity);
if (entity.IsVip == default(char))
{
entity.IsVip = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsVip, "VIP标志");
if (entity.IsUpload == default(char))
{
entity.IsUpload = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsUpload, "上传标志");
if (entity.IsNameHide == default(char))
{
entity.IsNameHide = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsNameHide, "姓名隐藏");
if (entity.IsPhoneFollow == default(char))
{
entity.IsPhoneFollow = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsPhoneFollow, "随访标志");
if (entity.IsMedicalStart == default(char))
{
entity.IsMedicalStart = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsMedicalStart, "体检开始标志");
if (entity.IsRecoverGuide == default(char))
{
entity.IsRecoverGuide = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsRecoverGuide, "指引单回收标志");
if (entity.CompleteFlag == default(char))
{
entity.CompleteFlag = PatientRegisterCompleteFlag.PreRegistration;
}
var completeFlagByte = (byte)entity.CompleteFlag;
if (completeFlagByte < 0 || completeFlagByte > 3)
{
throw new ArgumentException("完成标志错误");
}
if (entity.IsAudit == default(char))
{
entity.IsAudit = 'N';
}
DataHelper.CheckCharIsYOrN(entity.IsAudit, "审核标志");
var patientRegisterNo = entity.PatientRegisterNo;
if (string.IsNullOrWhiteSpace(patientRegisterNo))
{
patientRegisterNo = await CreatePatientRegisterNo(entity.OrganizationUnitId.Value);
}
if(entity.MedicalTimes == 0)
{
entity.MedicalTimes = await GetPatientCount(entity.PatientId);
}
var patientRegisterEnt = new PatientRegister(_guidGenerator.Create())
{
Age = entity.Age,
AuditDate = entity.AuditDate,
AuditDoctor = entity.AuditDoctor,
BirthDate = entity.BirthDate,
CompleteFlag = entity.CompleteFlag,
CustomerOrgGroupId = entity.CustomerOrgGroupId,
CustomerOrgId = entity.CustomerOrgId,
CustomerOrgRegisterId = entity.CustomerOrgRegisterId,
GuidePrintTimes = entity.GuidePrintTimes,
InterposeMeasure = entity.InterposeMeasure,
IsAudit = entity.IsAudit,
IsLock = entity.IsLock,
IsMedicalStart = entity.IsMedicalStart,
IsNameHide = entity.IsNameHide,
IsPhoneFollow = entity.IsPhoneFollow,
IsRecoverGuide = entity.IsRecoverGuide,
IsUpload = entity.IsUpload,
IsVip = entity.IsVip,
JobCardNo = entity.JobCardNo,
JobPost = entity.JobPost,
JobTitle = entity.JobTitle,
MaritalStatusId = entity.MaritalStatusId,
MedicalCardNo = entity.MedicalCardNo,
MedicalConclusionId = entity.MedicalConclusionId,
MedicalPackageId = entity.MedicalPackageId,
MedicalStartDate = entity.MedicalStartDate,
MedicalTimes = entity.MedicalTimes,
MedicalTypeId = entity.MedicalTypeId,
OrganizationUnitId = entity.OrganizationUnitId,
PatientId = entity.PatientId,
PatientName = entity.PatientName,
PatientRegisterNo = patientRegisterNo,
PersonnelTypeId = entity.PersonnelTypeId,
Photo = entity.Photo,
Remark = entity.Remark,
ReportPrintTimes = entity.ReportPrintTimes,
Salesman = entity.Salesman,
SexHormoneTermId = entity.SexHormoneTermId,
SexId = entity.SexId,
SummaryDate = entity.SummaryDate,
SummaryDoctor = entity.SummaryDoctor,
ThirdInfo = entity.ThirdInfo
};
return patientRegisterEnt;
}
private async void Verify(PatientRegister entity)
{
DataHelper.CheckEntityIsNull(entity);
DataHelper.CheckGuidIsDefaultValue(entity.PatientId, "病人ID");
DataHelper.CheckStringIsNull(entity.PatientName, "姓名");
DataHelper.CheckGuidIsDefaultValue(entity.OrganizationUnitId, "单位ID");
DataHelper.CheckGuidIsDefaultValue(entity.CustomerOrgId, "客户单位ID");
DataHelper.CheckSex(entity.SexId);
DataHelper.CheckMaritalStatus(entity.MaritalStatusId);
if (entity.MedicalTimes < 0)
{
throw new ArgumentException("体检次数必须大于等于0");
}
if (entity.Age <= 0)
{
throw new ArgumentException("年龄不能小于等于0");
}
if (entity.GuidePrintTimes < 0)
{
throw new ArgumentException("指引单打印次数不能小于0");
}
if (entity.ReportPrintTimes < 0)
{
throw new ArgumentException("报告单打印次数不能小于0");
}
if(entity.CustomerOrgGroupId != Guid.Empty && entity.CustomerOrgGroupId != default(Guid))
{
if( await _customerOrgGroupRepository.GetQueryableAsync().Result.
Where(o=>o.Id == entity.CustomerOrgGroupId).CountAsync() == 0)
{
throw new ArgumentException("单位分组ID不存在");
}
}
if (entity.MedicalPackageId != Guid.Empty && entity.MedicalPackageId != default(Guid))
{
if (await _medicalPackageRepository.GetQueryableAsync().Result.
Where(o => o.Id == entity.MedicalPackageId).CountAsync() == 0)
{
throw new ArgumentException("套餐ID不存在");
}
}
if (entity.MedicalTypeId != Guid.Empty && entity.MedicalTypeId != default(Guid))
{
if (await _medicalTypeRepository.GetQueryableAsync().Result.
Where(o => o.Id == entity.MedicalTypeId).CountAsync() == 0)
{
throw new ArgumentException("体检类别ID不存在");
}
}
if (entity.PersonnelTypeId != Guid.Empty && entity.PersonnelTypeId != default(Guid))
{
if (await _personnelTypeRepository.GetQueryableAsync().Result.
Where(o => o.Id == entity.PersonnelTypeId).CountAsync() == 0)
{
throw new ArgumentException("人员类别ID不存在");
}
}
if (entity.MedicalConclusionId != Guid.Empty && entity.MedicalConclusionId != default(Guid))
{
if (await _medicalConclusionRepository.GetQueryableAsync().Result.
Where(o => o.Id == entity.MedicalConclusionId).CountAsync() == 0)
{
throw new ArgumentException("体检结论ID不存在");
}
}
if (entity.SexHormoneTermId != Guid.Empty && entity.SexHormoneTermId != default(Guid))
{
if (await _sexHormoneTermRepository.GetQueryableAsync().Result.
Where(o => o.Id == entity.SexHormoneTermId).CountAsync() == 0)
{
throw new ArgumentException("性激素期限ID不存在");
}
}
if((entity.Age == 0 || entity.Age == null))
{
}
}
/// <summary>
/// 更新
/// </summary>

4
src/Shentun.Peis.Domain/Patients/Patient.cs

@ -50,13 +50,13 @@ namespace Shentun.Peis.Models
/// </summary>
[Column("sex_id")]
[MaxLength(1)]
public char? SexId { get; set; }
public char SexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
[Column("marital_status_id")]
[MaxLength(1)]
public char? MaritalStatusId { get; set; }
public char MaritalStatusId { get; set; }
/// <summary>
/// 出生日期
/// </summary>

11
src/Shentun.Peis.Domain/Patients/PatientManager.cs

@ -250,5 +250,16 @@ namespace Shentun.Peis.Patients
return false;
else return true;
}
private void Verify(Patient entity)
{
DataHelper.CheckEntityIsNull(entity);
//DataHelper.CheckStringIsNull(entity.PatientNo, "病人号");
DataHelper.CheckStringIsNull(entity.DisplayName, "姓名");
DataHelper.CheckSex(entity.SexId);
DataHelper.CheckMaritalStatus(entity.MaritalStatusId);
}
}
}
Loading…
Cancel
Save