Browse Source

叫号

master
wxd 11 months ago
parent
commit
65151402ea
  1. 9
      src/Shentun.Peis.Application.Contracts/QueueRegisters/CreateNewAsbitemTriageInputDto.cs
  2. 9
      src/Shentun.Peis.Application.Contracts/QueueRegisters/GetAppQueueRegisterByIdNoDto.cs
  3. 5
      src/Shentun.Peis.Application.Contracts/QueueRegisters/QueueRegisterByPatientRegisterIdDto.cs
  4. 25
      src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs
  5. 112
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  6. 40
      src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs

9
src/Shentun.Peis.Application.Contracts/QueueRegisters/CreateNewAsbitemTriageInputDto.cs

@ -8,8 +8,13 @@ namespace Shentun.Peis.QueueRegisters
public class CreateNewAsbitemTriageInputDto
{
/// <summary>
/// 检查Id
/// 人员ID
/// </summary>
public Guid RegisterCheckId { get; set; }
public Guid PatientRegisterId { get; set; }
/// <summary>
/// 排队房间Id
/// </summary>
public Guid RoomId { get; set; }
}
}

9
src/Shentun.Peis.Application.Contracts/QueueRegisters/GetAppQueueRegisterByIdNoDto.cs

@ -6,6 +6,11 @@ namespace Shentun.Peis.QueueRegisters
{
public class GetAppQueueRegisterByIdNoDto
{
/// <summary>
/// 人员ID
/// </summary>
public Guid PatientRegisterId { get; set; }
/// <summary>
/// 姓名
/// </summary>
@ -47,6 +52,10 @@ namespace Shentun.Peis.QueueRegisters
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 排队房间Id
/// </summary>
public Guid RoomId { get; set; }
/// <summary>
/// 候诊人数

5
src/Shentun.Peis.Application.Contracts/QueueRegisters/QueueRegisterByPatientRegisterIdDto.cs

@ -13,6 +13,11 @@ namespace Shentun.Peis.QueueRegisters
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 当前排队房间Id
/// </summary>
public Guid RoomId { get; set; }
/// <summary>
/// 病人姓名
/// </summary>

25
src/Shentun.Peis.Application/OccupationalDiseaseReports/OccupationalDiseaseReportAppService.cs

@ -6,6 +6,8 @@ using NPOI.Util;
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
using Shentun.Peis.Reports;
using Shentun.Peis.Reports.ConvertRpt;
using Shentun.Peis.SysParmValues;
using System;
using System.Collections.Generic;
@ -300,6 +302,17 @@ namespace Shentun.Peis.OccupationalDiseaseReports
return msg;
}
/// <summary>
/// 获取单位职业病总结报告 不需要转换版本
/// </summary>
/// <returns></returns>
[HttpPost("api/app/OccupationalDiseaseReport/GetCompanyOccupationalDiseaseSummaryReportConvertToReport")]
public async Task<Rpt0009Dto> GetCompanyOccupationalDiseaseSummaryReportConvertToReportAsync(GetCompanyOccupationalDiseaseSummaryReportInputDto input)
{
var oldDto = await GetCompanyOccupationalDiseaseSummaryReportAsync(input);
var entDto = await ConvertToReport.ToOccuptionDiseaseFinalReportDataAsync(oldDto);
return entDto;
}
/// <summary>
@ -777,6 +790,18 @@ namespace Shentun.Peis.OccupationalDiseaseReports
return msg;
}
/// <summary>
/// 获取单位职业病明细报告 不需要转换版本
/// </summary>
/// <returns></returns>
[HttpPost("api/app/OccupationalDiseaseReport/GetCompanyOccupationalDiseaseDetailReportConvertToReport")]
public async Task<Rpt0010Dto> GetCompanyOccupationalDiseaseDetailReportConvertToReportAsync(GetCompanyOccupationalDiseaseDetailReportInputDto input)
{
var oldDto = await GetCompanyOccupationalDiseaseDetailReportAsync(input);
var entDto = await ConvertToReport.ToOccuptionDiseaseDetailReportDataAsync(oldDto);
return entDto;
}
///// <summary>

112
src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

@ -12,6 +12,8 @@ using Shentun.Peis.Models;
using Shentun.Peis.OcCheckTypes;
using Shentun.Peis.OccupationalDiseases;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.Reports;
using Shentun.Peis.Reports.ConvertRpt;
using Shentun.Peis.SumSuggestionContents;
using Shentun.Peis.SumSuggestionHeaders;
using Shentun.Peis.SumSummaryContents;
@ -273,6 +275,19 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 获取体检人员指引单报告数据 不需要转换版本
/// </summary>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetPatientRegisterGuideReportConvertToReport")]
public async Task<Rpt0001Dto> GetPatientRegisterGuideReportConvertToReportAsync(Guid PatientRegisterId)
{
var oldDto = await GetPatientRegisterGuideReportAsync(PatientRegisterId);
var entDto = await ConvertToReport.ToPatientGuideReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 批量获取体检人员指引单报告数据
/// </summary>
@ -473,6 +488,19 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 打印检验申请单 不需要转换版本
/// </summary>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetLisRequestReportByPatientRegisterIdConvertToReport")]
public async Task<Rpt0002Dto> GetLisRequestReportByPatientRegisterIdConvertToReportAsync(PatientRegisterIdInputDto input)
{
var oldDto = await GetLisRequestReportByPatientRegisterIdAsync(input);
var entDto = await ConvertToReport.ToLisRequestReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 单个打印检验条码
/// </summary>
@ -554,6 +582,21 @@ namespace Shentun.Peis.PrintReports
return lisRequestDto;
}
/// <summary>
/// 单个打印检验条码 不需要转换版本
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetLisRequestReportByLisRequestIdConvertToReport")]
public async Task<Rpt0002Dto> GetLisRequestReportByLisRequestIdConvertToReportAsync(LisRequestIdInputDto input)
{
var oldDto = await GetLisRequestReportByLisRequestIdAsync(input);
var entDto = await ConvertToReport.ToLisRequestReportDataAsync(new List<LisRequestReportDto> { oldDto });
return entDto;
}
/// <summary>
/// 打印体检报告
/// </summary>
@ -584,6 +627,17 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 打印体检报告 不需要转换版本
/// </summary>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetMedicalReportConvertToReport")]
public async Task<Rpt0005Dto> GetMedicalReportConvertToReportAsync(PatientRegisterIdInputDto input)
{
var oldDto = await GetMedicalReportAsync(input);
var entDto = await ConvertToReport.ToHealthReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 获取职业病体检报告
@ -767,6 +821,19 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 获取职业病体检报告 不需要转换版本
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetOccupationalDiseaseMedicalReportConvertToReport")]
public async Task<Rpt0006Dto> GetOccupationalDiseaseMedicalReportConvertToReportAsync(PatientRegisterIdInputDto input)
{
var oldDto = await GetOccupationalDiseaseMedicalReportAsync(input);
var entDto = await ConvertToReport.ToOccupationalDiseaseReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 打印Pacs条码数据
@ -852,6 +919,21 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 打印Pacs条码数据 不需要转换版本
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetPacsNoReportConvertToReport")]
public async Task<Rpt0004Dto> GetPacsNoReportConvertToReportAsync(PatientRegisterIdInputDto input)
{
var oldDto = await GetPacsNoReportAsync(input);
var entDto = await ConvertToReport.ToExamRequestReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 打印Pacs条码数据 单个条码打印
/// </summary>
@ -932,6 +1014,20 @@ namespace Shentun.Peis.PrintReports
}
/// <summary>
/// 打印Pacs条码数据 单个条码打印
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetPacsNoReportByCheckRequestNoConvertToReport")]
public async Task<Rpt0004Dto> GetPacsNoReportByCheckRequestNoConvertToReportAsync(RegisterCheckIdInputDto input)
{
var oldDto = await GetPacsNoReportByCheckRequestNoAsync(input);
var entDto = await ConvertToReport.ToExamRequestReportDataAsync(new List<PacsNoReportDto> { oldDto });
return entDto;
}
///// <summary>
///// 打印Pacs条码数据
///// </summary>
@ -989,6 +1085,22 @@ namespace Shentun.Peis.PrintReports
{
return await _chargeReportRepository.GetChargeReportAsync(ChargeId);
}
/// <summary>
/// 打印收费单 不需要转换版本
/// </summary>
/// <param name="ChargeId">收费主表ID</param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetChargeReportConvertToReport")]
public async Task<Rpt0007Dto> GetChargeReportConvertToReportAsync(Guid ChargeId)
{
var oldDto = await GetChargeReportAsync(ChargeId);
var entDto = await ConvertToReport.ToPayBillReportDataAsync(oldDto);
return entDto;
}
/// <summary>
/// 获取体检报告人员信息
/// </summary>

40
src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs

@ -104,7 +104,8 @@ namespace Shentun.Peis.QueueRegisters
CompleteFlag = queueRegisterEnt.queueRegister.CompleteFlag,
RoomName = queueRegisterEnt.room.DisplayName,
QueueCount = queueCount,
PatientName = queueRegisterEnt.patientName
PatientName = queueRegisterEnt.patientName,
RoomId = queueRegisterEnt.room.Id
};
return entDto;
@ -589,12 +590,14 @@ namespace Shentun.Peis.QueueRegisters
msg.PatientName = patientRegisterEnt.PatientName;
msg.Photo = patientRegisterEnt.Photo;
msg.SexName = await _cacheService.GetSexNameAsync(patientRegisterEnt.SexId);
msg.PatientRegisterId = patientRegisterEnt.Id;
var queueRegisterInfo = await GetQueueRegisterByPatientRegisterIdAsync(new PatientRegisterIdInputDto { PatientRegisterId = patientRegisterEnt.Id });
if (queueRegisterInfo != null)
{
msg.QueueCount = queueRegisterInfo.QueueCount;
msg.RoomName = queueRegisterInfo.RoomName;
msg.RoomId = queueRegisterInfo.RoomId;
msg.CompleteFlag = queueRegisterInfo.CompleteFlag;
}
@ -705,42 +708,27 @@ namespace Shentun.Peis.QueueRegisters
public async Task<SmallProgramResultDto> CreateNewAsbitemTriageAsync(CreateNewAsbitemTriageInputDto input)
{
//登记的组合项目ID
var asbitemIds = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync()
on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
where registerCheck.Id == input.RegisterCheckId
//当前排队的组合项目id集合
var asbitemIds = (from queueRegister in await _queueRegisterRepository.GetQueryableAsync()
join roomDetail in await _roomDetailRepository.GetQueryableAsync() on queueRegister.RoomId equals roomDetail.RoomId
where queueRegister.PatientRegisterId == input.PatientRegisterId
&& roomDetail.RoomId == input.RoomId
select new
{
registerCheckAsbitem.AsbitemId,
patientRegisterId = patientRegister.Id
queueRegister,
roomDetail.AsbitemId
}).ToList();
if (!asbitemIds.Any())
{
throw new UserFriendlyException("检查项目不存在");
}
var queueRegisterList = (from queueRegister in await _queueRegisterRepository.GetQueryableAsync()
join roomDetail in await _roomDetailRepository.GetQueryableAsync() on queueRegister.RoomId equals roomDetail.RoomId
where queueRegister.PatientRegisterId == asbitemIds.First().patientRegisterId
&& asbitemIds.Select(s => s.AsbitemId).Contains(roomDetail.AsbitemId)
select queueRegister).ToList();
if (!queueRegisterList.Any())
{
throw new UserFriendlyException("该项目还未分诊,不需要跳过");
}
if (queueRegisterList.First().CompleteFlag == QueueRegisterCompleteFlag.AlreadyCalled)
{
throw new UserFriendlyException("该项目已叫号,不需要跳过");
throw new UserFriendlyException("无排队信息");
}
//删除排队操作
await _queueRegisterRepository.DeleteAsync(d => d.PatientRegisterId == asbitemIds.First().patientRegisterId
await _queueRegisterRepository.DeleteAsync(d => d.PatientRegisterId == input.PatientRegisterId
&& d.CompleteFlag != QueueRegisterCompleteFlag.AlreadyCalled, true);
var entity = await _queueRegisterManager.AutomaticQueuingRoomAsync(asbitemIds.First().patientRegisterId, asbitemIds.Select(s => s.AsbitemId).ToList());
var entity = await _queueRegisterManager.AutomaticQueuingRoomAsync(input.PatientRegisterId, asbitemIds.Select(s => s.AsbitemId).ToList());
await _queueRegisterRepository.InsertAsync(entity, true);

Loading…
Cancel
Save