Browse Source

组合项目

bjmzak
DESKTOP-G961P6V\Zhh 1 year ago
parent
commit
4f4cd297f7
  1. 118
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PatientRegisters/Qztl/ImportPatientRegisterPlugInsQztl.cs
  2. 2
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PatientRegisters/Qztl/PatientRegisterQztl.cs
  3. 2
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/test/Shentun.Peis.PlugIns.Gem.Test/ImportPatientRegisterPlugInsHzcyTest.cs
  4. 2
      src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs
  5. 4
      src/Shentun.Peis.Application.Contracts/Asbitems/AsbitemDto.cs
  6. 5
      src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
  7. 5
      src/Shentun.Peis.Application.Contracts/Asbitems/CreateAsbitemDto.cs
  8. 4
      src/Shentun.Peis.Application.Contracts/Asbitems/UpdateAsbitemDto.cs
  9. 9
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  10. 8
      src/Shentun.Peis.Domain/Asbitems/Asbitem.cs
  11. 4
      src/Shentun.Peis.Domain/Asbitems/AsbitemEntity.cs
  12. 1
      src/Shentun.Peis.EntityFrameworkCore/DbMapping/Asbitems/AsbitemDbMapping.cs

118
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PatientRegisters/Qztl/ImportPatientRegisterPlugInsQztl.cs

@ -54,11 +54,45 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
await InitAsync();
var qztlPatientRegisterFromInterface = await CallInterfaceServiceAsync();
if (qztlPatientRegisterFromInterface == null || !qztlPatientRegisterFromInterface.plans.Any())
if (qztlPatientRegisterFromInterface == null)
{
return;
}
//删除人员
if(qztlPatientRegisterFromInterface.delIds != null)
{
foreach (var deleteUserId in qztlPatientRegisterFromInterface.delIds)
{
var patientRegister = await GetPatientRegisterByPlanUserId(deleteUserId);
if (patientRegister == null)
{
continue;
}
if (patientRegister.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration &&
patientRegister.CompleteFlag != PatientRegisterCompleteFlag.Registration)
{
//已检人员不允许删除
continue;
}
var patientRegisterInputDto = new PatientRegisterIdInputDto()
{
PatientRegisterId = patientRegister.PatientRegisterId
};
await CallAppServiceAsync<PatientRegisterIdInputDto, object>(
"api/app/PatientRegister/DeleteById", patientRegisterInputDto);
//发送答复通知
var succesIds = new List<string>();
var deleteIds = new List<string>();
deleteIds.Add(deleteUserId);
await AnswerOk(succesIds, deleteIds);
}
}
if (qztlPatientRegisterFromInterface.plans == null)
{
return;
}
//设置导入人员信息
foreach (var patient in qztlPatientRegisterFromInterface.plans)
{
@ -186,6 +220,33 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
}
customerOrgGroupDto = await GetCustomerOrgGroup(groupNames, sexId, maritalStatusId);
}
//没有planuserid的自动设置planuserid
var patientRegisters = await GetPatientRegisterByCustomerOrgRegisterIdWithIdNo(_customerOrgRegisterDto.Id, patient.cardId);
var succesIds = new List<string>();
var deleteIds = new List<string>();
succesIds.Add(patient.id.ToString());
bool IsNoPlanUserIdComplete = false;
foreach (var patintRegister in patientRegisters)
{
//没有planUserId的更新planUserId
if (string.IsNullOrWhiteSpace(patintRegister.Planuserid) && patintRegister.PatientName == patient.personName)
{
await UpdatePatientRegisterPlanUserId(patintRegister.PatientRegisterId, patient.id.ToString());
await AnswerOk(succesIds, deleteIds);
IsNoPlanUserIdComplete = true;
}
//已经登记了该PlanUserId的不再登记
if(!string.IsNullOrWhiteSpace(patintRegister.Planuserid) && patintRegister.Planuserid == patient.id.ToString())
{
await AnswerOk(succesIds, deleteIds);
IsNoPlanUserIdComplete = true;
}
}
if (IsNoPlanUserIdComplete)
{
continue;
}
//获取病人ID
var patientRegister = new CreatePatientRegisterDto()
@ -259,7 +320,7 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
, Guid.Empty, "get");
if (!customerOrgGroupDetailOrAsbitemDtos.Any())
{
throw new Exception("分组未包含项目");
throw new Exception($"分组{customerOrgGroupDto.DisplayName}未包含项目");
}
foreach (var asbitem in customerOrgGroupDetailOrAsbitemDtos)
{
@ -277,9 +338,9 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
"api/PatientRegister/CreatePatientRegister",
patientRegister);
var succesIds = new List<string>();
var deleteIds = new List<string>();
succesIds.Add(patientRegister.Planuserid);
//var succesIds = new List<string>();
//var deleteIds = new List<string>();
//succesIds.Add(patientRegister.Planuserid);
await AnswerOk(succesIds, deleteIds);
}
@ -373,23 +434,60 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
_personnelTypes = await CallAppServiceAsync<string, List<PersonnelTypeDto>>("api/app/PersonnelType/GetAll", "");
}
public async Task<List<PatientRegisterQztl>> GetPatientRegisterByCustomerOrgRegisterIdWithIdNo(Guid customerOrgRegisterId ,string idNo)
public async Task<List<PatientRegisterQztl>> GetPatientRegisterByCustomerOrgRegisterIdWithIdNo(Guid customerOrgRegisterId, string idNo)
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;
sql = @"
SELECT *
from patient_register,patient_register_exter
where patient_register.patient_register_id = patient_register_exter.patient_register_id and
from patient_register,patient_register_exter,patient
where patient_register.id = patient_register_exter.patient_register_id and
patient_register.patient_id = patient.id and
customer_org_register_id =@CustomerOrgRegisterId and
id_no =@IdNo
patient.id_no =@IdNo
";
var patientRegisters = (await conn.QueryAsync<PatientRegisterQztl>(sql,
new { CustomerOrgRegisterId = customerOrgRegisterId, IdNo = idNo })).ToList();
return patientRegisters;
}
}
public async Task<PatientRegisterQztl> GetPatientRegisterByPlanUserId(string planUserId)
{
if(string.IsNullOrWhiteSpace(planUserId))
{
throw new Exception("planUserId不能为空");
}
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;
sql = @"
SELECT *
from patient_register,patient_register_exter
where patient_register.id = patient_register_exter.patient_register_id and
patient_register_exter.planuserid =@PlanUserId
";
var patientRegisters = (await conn.QueryAsync<PatientRegisterQztl>(sql,
new { CustomerOrgRegisterId = customerOrgRegisterId,IdNo = idNo })).ToList();
new { PlanUserId = planUserId })).FirstOrDefault();
return patientRegisters;
}
}
public async Task UpdatePatientRegisterPlanUserId(Guid patientRegisterId, string planUserid)
{
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
string sql;
sql = @"
update patient_register_exter
set planuserid =@Planuserid
where patient_register_id=@PatientRegisterId
";
conn.Execute(sql, new { PatientRegisterId = patientRegisterId, Planuserid = planUserid });
return;
}
}
public async Task<QztlPatientRegisterFromInterface?> CallInterfaceServiceAsync()
{
string baseAddress = InterfaceWebApiUrl;

2
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/PatientRegisters/Qztl/PatientRegisterQztl.cs

@ -78,5 +78,7 @@ namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl
public string DepartmentName { get; set; }
public string Planuserid { get; set; }
public char CompleteFlag { get; set; }
}
}

2
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/test/Shentun.Peis.PlugIns.Gem.Test/ImportPatientRegisterPlugInsHzcyTest.cs

@ -26,7 +26,7 @@ namespace Shentun.Peis.PlugIns.Extensions.Test
string filePath = DirectoryHelper.GetAppDirectory() + "/appsettings.json";
configParm = File.ReadAllText(filePath);
var input = new ImportPatientRegisterPlugInsQztl(configParm);
var input = new ImportPatientRegisterPlugInsQztl(new Guid("7f2b453c-e45c-44bf-ba6b-9ef192a3cf88"));
await input.ImportAsync();

2
src/Shentun.Peis.Application.Contracts/AppointRegisterAsbitems/AppointRegisterAsbitemDto.cs

@ -51,7 +51,7 @@ namespace Shentun.Peis.AppointRegisterAsbitems
/// </summary>
public short Amount { get; set; }
public char IsInMedicalPackage { get; set; } = 'N';
public char IsBelongGroupPackage { get; set; } = 'N';
/// <summary>
/// 项目类别顺序
/// </summary>

4
src/Shentun.Peis.Application.Contracts/Asbitems/AsbitemDto.cs

@ -24,6 +24,10 @@ namespace Shentun.Peis.Asbitems
/// </summary>
public char ForSexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
public char MaritalStatusId { get; set; }
/// <summary>
/// 项目类别
/// </summary>

5
src/Shentun.Peis.Application.Contracts/Asbitems/BasicAsbitemDto.cs

@ -22,6 +22,11 @@ namespace Shentun.Peis.Asbitems
/// </summary>
public char ForSexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
public char MaritalStatusId { get; set; }
/// <summary>
/// 项目类别
/// </summary>

5
src/Shentun.Peis.Application.Contracts/Asbitems/CreateAsbitemDto.cs

@ -23,6 +23,11 @@ namespace Shentun.Peis.Asbitems
/// </summary>
public char ForSexId { get; set; }= 'A';
/// <summary>
/// 婚姻状况
/// </summary>
public char MaritalStatusId { get; set; } = 'A';
/// <summary>
/// 项目类别
/// </summary>

4
src/Shentun.Peis.Application.Contracts/Asbitems/UpdateAsbitemDto.cs

@ -21,6 +21,10 @@ namespace Shentun.Peis.Asbitems
/// </summary>
public char ForSexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
public char MaritalStatusId { get; set; }
/// <summary>
/// 项目类别
/// </summary>

9
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -1998,9 +1998,14 @@ namespace Shentun.Peis.PatientRegisters
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public override async Task DeleteAsync(Guid id)
[HttpPost("api/app/PatientRegister/DeleteById")]
public async Task DeleteByIdAsync(PatientRegisterIdInputDto input)
{
await _manager.CheckAndDeleteAsync(id);
if(input == null)
{
throw new UserFriendlyException("input参数不能为空");
}
await _manager.CheckAndDeleteAsync(input.PatientRegisterId);
}

8
src/Shentun.Peis.Domain/Asbitems/Asbitem.cs

@ -45,6 +45,14 @@ namespace Shentun.Peis.Models
[Column("for_sex_id")]
[MaxLength(1)]
public char ForSexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
[Column("marital_status_id")]
[MaxLength(1)]
public char MaritalStatusId { get; set; }
/// <summary>
/// 项目类别
/// </summary>

4
src/Shentun.Peis.Domain/Asbitems/AsbitemEntity.cs

@ -22,6 +22,10 @@ namespace Shentun.Peis.Asbitems
/// 适用性别,M-男,F-女,A-全部
/// </summary>
public char ForSexId { get; set; }
/// <summary>
/// 婚姻状况
/// </summary>
public char MaritalStatusId { get; set; }
/// <summary>
/// 项目类别

1
src/Shentun.Peis.EntityFrameworkCore/DbMapping/Asbitems/AsbitemDbMapping.cs

@ -19,6 +19,7 @@ namespace Shentun.Peis.DbMapping
entity.Property(t => t.DisplayName).HasComment("名称").IsRequired();
entity.Property(t => t.ShortName).HasComment("简称");
entity.Property(t => t.ForSexId).HasComment("适用性别,M-男,F-女,A-全部").IsRequired().HasDefaultValueSql("'A'");
entity.Property(t => t.MaritalStatusId).HasComment("适用婚姻状况,0-未婚,1-已婚,A-全部").IsRequired().HasDefaultValueSql("'A'");
entity.Property(t => t.ItemTypeId).HasComment("项目类别").IsRequired().IsFixedLength();
entity.Property(t => t.Price).HasComment("价格").IsRequired().HasDefaultValueSql("0");
entity.Property(t => t.DeviceTypeId).HasComment("仪器类别");

Loading…
Cancel
Save