Browse Source

0717

master
wxd 2 years ago
parent
commit
63f590d4d7
  1. 5
      src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs
  2. 11
      src/Shentun.Peis.Application.Contracts/QueueRegisters/MedicalCenterIdInputDto.cs
  3. 24
      src/Shentun.Peis.Application.Contracts/QueueRegisters/RoomQueueListDto.cs
  4. 16
      src/Shentun.Peis.Application.Contracts/Rooms/UpdateManySortRoomInputDto.cs
  5. 4
      src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
  6. 25
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  7. 66
      src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs
  8. 28
      src/Shentun.Peis.Application/Rooms/RoomAppService.cs
  9. 15
      src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs
  10. 28
      src/Shentun.Peis.Domain.Shared/Enums/QueueRegisterCompleteFlag.cs
  11. 8
      src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs
  12. 5
      src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs
  13. 2
      src/Shentun.Peis.Domain/QueueRegisters/QueueRegister.cs
  14. 2
      src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItem.cs
  15. 1
      src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs
  16. 15043
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20240716110145_patient_register_add.Designer.cs
  17. 28
      src/Shentun.Peis.EntityFrameworkCore/Migrations/20240716110145_patient_register_add.cs
  18. 12
      src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

5
src/Shentun.Peis.Application.Contracts/PeisReports/GetPatientRegisterReportDto.cs

@ -81,6 +81,11 @@ namespace Shentun.Peis.PeisReports
/// </summary>
public char? IsUpload { get; set; }
/// <summary>
/// 是否上传预约备单到WEB
/// </summary>
public char? IsUploadAppoint { get; set; }
/// <summary>
/// 体检类别名称

11
src/Shentun.Peis.Application.Contracts/QueueRegisters/MedicalCenterIdInputDto.cs

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.QueueRegisters
{
public class MedicalCenterIdInputDto
{
public Guid MedicalCenterId { get; set; }
}
}

24
src/Shentun.Peis.Application.Contracts/QueueRegisters/RoomQueueListDto.cs

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.QueueRegisters
{
public class RoomQueueListDto
{
/// <summary>
/// 科室名称
/// </summary>
public string ItemTypeName { get; set; }
/// <summary>
/// 房间名称
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 候诊人数
/// </summary>
public int WaitCount { get; set; }
}
}

16
src/Shentun.Peis.Application.Contracts/Rooms/UpdateManySortRoomInputDto.cs

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Rooms
{
public class UpdateManySortRoomInputDto
{
public Guid RoomId { get; set; }
/// <summary>
/// 修改方式:1 置顶 2 置底
/// </summary>
public int SortType { get; set; }
}
}

4
src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs

@ -114,7 +114,8 @@ namespace Shentun.Peis.PeisReports
a.IsUpload,
a.SexId,
a.CreatorId,
a.MaritalStatusId
a.MaritalStatusId,
a.IsUploadAppoint
},
RegisterCheckCompleteFlag = registerCheck.CompleteFlag,
IsCheck = asbitem.IsCheck,
@ -345,6 +346,7 @@ namespace Shentun.Peis.PeisReports
RegisterName = _cacheService.GetSurnameAsync(s.FirstOrDefault().a.CreatorId).Result,
RegisterDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.CreationTime),
IsUpload = s.FirstOrDefault().a.IsUpload,
IsUploadAppoint = s.FirstOrDefault().a.IsUploadAppoint,
IsPatientOccupationalDisease = _patientOccupationalDiseaseManager.GetPatientRegisterIsOccupationalDisease(s.FirstOrDefault().a.Id).Result
});
}

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

@ -55,6 +55,7 @@ namespace Shentun.Peis.PrintReports
private readonly IRepository<ItemType, Guid> _itemTypeRepository;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleGroupDetail> _sampleGroupDetailRepository;
private readonly IRepository<SampleContainer, Guid> _sampleContainerRepository;
private readonly IRepository<SampleType, Guid> _sampleTypeRepository;
private readonly IRepository<Sex> _sexRegisterRepository;
@ -136,7 +137,8 @@ namespace Shentun.Peis.PrintReports
IRepository<OcCheckType, Guid> ocCheckTypeRepository,
IRepository<Poison, Guid> poisonRepository,
IRepository<OccupationalAbnormal, Guid> occupationalAbnormalRepository,
IRepository<Symptom, Guid> symptomRepository)
IRepository<Symptom, Guid> symptomRepository,
IRepository<SampleGroupDetail> sampleGroupDetailRepository)
{
this._customerOrgRepository = customerOrgRepository;
this._patientRegisterRepository = patientRegisterRepository;
@ -185,6 +187,7 @@ namespace Shentun.Peis.PrintReports
_poisonRepository = poisonRepository;
_occupationalAbnormalRepository = occupationalAbnormalRepository;
_symptomRepository = symptomRepository;
_sampleGroupDetailRepository = sampleGroupDetailRepository;
}
@ -309,6 +312,10 @@ namespace Shentun.Peis.PrintReports
from sampleContainerHaveEmpty in dd.DefaultIfEmpty()
join sampleType in await _sampleTypeRepository.GetQueryableAsync() on lisRequest.SampleTypeId equals sampleType.Id into ee
from sampleTypeHaveEmpty in ee.DefaultIfEmpty()
join sampleGroupDetail in await _sampleGroupDetailRepository.GetQueryableAsync() on asbitem.Id equals sampleGroupDetail.AsbitemId into sampleGroupDetailTemp
from sampleTypeHaveEmptyHaveEmpty in sampleGroupDetailTemp.DefaultIfEmpty()
join sampleGroup in await _sampleGroupRepository.GetQueryableAsync() on sampleTypeHaveEmptyHaveEmpty.SampleGroupId equals sampleGroup.Id into sampleGroupTemp
from sampleGroupHaveEmpty in sampleGroupTemp.DefaultIfEmpty()
where (patientRegister.Id == input.PatientRegisterId && registerCheckAsbitem.LisRequestId != null)
select new
{
@ -319,7 +326,8 @@ namespace Shentun.Peis.PrintReports
asbitem,
lisRequest,
sampleContainerHaveEmpty,
sampleTypeHaveEmpty
sampleTypeHaveEmpty,
sampleGroupName = sampleGroupHaveEmpty.DisplayName
}
).ToList();
lisRequests = query.Select(o => o.lisRequest).Distinct().ToList();
@ -354,6 +362,7 @@ namespace Shentun.Peis.PrintReports
SignInOrder = o.lisRequest.SignInOrder,
SignInPerson = o.lisRequest.SignInPerson,
SignInTime = o.lisRequest.SignInTime,
SampleGroupName = o.sampleGroupName
}).ToList();
var entlist = lisRequestReportDtoList.GroupBy(g => new
@ -400,6 +409,7 @@ namespace Shentun.Peis.PrintReports
SignInOrder = s.Key.SignInOrder,
SignInPerson = s.Key.SignInPerson,
SignInTime = s.Key.SignInTime,
SampleGroupName = s.FirstOrDefault().SampleGroupName
}).ToList();
await uow.CompleteAsync();
@ -428,6 +438,10 @@ namespace Shentun.Peis.PrintReports
on lisRequest.SampleContainerId equals sampleContainer.Id
join sampleType in await _sampleTypeRepository.GetQueryableAsync()
on lisRequest.SampleTypeId equals sampleType.Id
join sampleGroupDetail in await _sampleGroupDetailRepository.GetQueryableAsync() on asbitem.Id equals sampleGroupDetail.AsbitemId into sampleGroupDetailTemp
from sampleTypeHaveEmptyHaveEmpty in sampleGroupDetailTemp.DefaultIfEmpty()
join sampleGroup in await _sampleGroupRepository.GetQueryableAsync() on sampleTypeHaveEmptyHaveEmpty.SampleGroupId equals sampleGroup.Id into sampleGroupTemp
from sampleGroupHaveEmpty in sampleGroupTemp.DefaultIfEmpty()
where lisRequest.Id == input.LisRequestId
select new
{
@ -436,7 +450,8 @@ namespace Shentun.Peis.PrintReports
asbitem,
lisRequest,
sampleContainer,
sampleType
sampleType,
sampleGroupName = sampleGroupHaveEmpty.DisplayName
}).Distinct().ToList();
if (!list.Any())
@ -462,14 +477,14 @@ namespace Shentun.Peis.PrintReports
SignInOrder = lisRequestInfo.lisRequest.SignInOrder,
SignInPerson = lisRequestInfo.lisRequest.SignInPerson,
SignInTime = lisRequestInfo.lisRequest.SignInTime,
SampleTypeName = lisRequestInfo.sampleType.DisplayName,
SampleContainerName = lisRequestInfo.sampleContainer.DisplayName,
ContainerColor = lisRequestInfo.sampleContainer.ContainerColor,
SampleContainerRemark = lisRequestInfo.sampleContainer.ContainerRemark,
AsbitemNames = string.Join(",", list.OrderBy(o => o.asbitem.DisplayOrder).Select(o => o.asbitem.DisplayName).Distinct()),
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(lisRequestInfo.patientRegister.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(lisRequestInfo.patientRegister.CustomerOrgId).Result
DepartmentName = _cacheService.GetCustomerOrgNameAsync(lisRequestInfo.patientRegister.CustomerOrgId).Result,
SampleGroupName = lisRequestInfo.sampleGroupName
};
return lisRequestDto;

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

@ -0,0 +1,66 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
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.QueueRegisters
{
/// <summary>
/// 叫号排队
/// </summary>
[Authorize]
[ApiExplorerSettings(GroupName = "Work")]
public class QueueRegisterAppService : ApplicationService
{
private readonly IRepository<QueueRegister, Guid> _queueRegisterRepository;
private readonly IRepository<Room, Guid> _roomRepository;
private readonly IRepository<ItemType, Guid> _itemTypeRepository;
public QueueRegisterAppService(
IRepository<QueueRegister, Guid> queueRegisterRepository,
IRepository<ItemType, Guid> itemTypeRepository,
IRepository<Room, Guid> roomRepository)
{
_queueRegisterRepository = queueRegisterRepository;
_itemTypeRepository = itemTypeRepository;
_roomRepository = roomRepository;
}
/// <summary>
/// 获取房间排队信息
/// </summary>
/// <returns></returns>
[HttpPost("api/app/QueueRegister/GetRoomQueueList")]
public async Task<List<RoomQueueListDto>> GetRoomQueueListAsync(MedicalCenterIdInputDto input)
{
if (input.MedicalCenterId == Guid.Empty)
throw new UserFriendlyException("体检中心不能为空");
var entListDto = (from room in await _roomRepository.GetQueryableAsync()
join queueRegister in (await _queueRegisterRepository.GetQueryableAsync())
.Where(m => m.CompleteFlag == QueueRegisterCompleteFlag.Wait && m.CreationTime >= DateTime.Now.Date).AsQueryable()
on room.Id equals queueRegister.RoomId into queueRegisterTemp
from queueRegisterEmpty in queueRegisterTemp.DefaultIfEmpty()
join itemType in await _itemTypeRepository.GetQueryableAsync()
on room.ItemTypeId equals itemType.Id into itemTypeTemp
from itemTypeEmpty in itemTypeTemp.DefaultIfEmpty()
group new { room, itemTypeEmpty, queueRegisterEmpty } by room.Id into roomGroup
select new RoomQueueListDto
{
ItemTypeName = roomGroup.FirstOrDefault().itemTypeEmpty != null ? roomGroup.FirstOrDefault().itemTypeEmpty.DisplayName : "",
RoomName = roomGroup.FirstOrDefault().room.DisplayName,
WaitCount = roomGroup.Count(c => c.queueRegisterEmpty != null)
}).ToList();
return entListDto;
}
}
}

28
src/Shentun.Peis.Application/Rooms/RoomAppService.cs

@ -42,6 +42,23 @@ namespace Shentun.Peis.Rooms
_cacheService = cacheService;
}
/// <summary>
/// 根据ID查询信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/Room/Get")]
public async Task<RoomDto> GetAsync(RoomIdInputDto input)
{
var entity = await _roomRepository.GetAsync(input.RoomId);
var entDto = ObjectMapper.Map<Room, RoomDto>(entity);
entDto.CreatorName=await _cacheService.GetSurnameAsync(entDto.CreatorId);
entDto.LastModifierName = await _cacheService.GetSurnameAsync(entDto.LastModifierId);
return entDto;
}
/// <summary>
/// 查询房间列表
/// </summary>
@ -174,16 +191,17 @@ namespace Shentun.Peis.Rooms
return entListDto;
}
/// <summary>
/// 修改排序 置顶,置底
/// 修改排序 置顶,置底
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="SortType">修改方式:1 置顶 2 置底</param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/Room/UpdateManySort")]
public async Task UpdateManySortAsync(Guid id, int SortType)
public async Task UpdateManySortAsync(UpdateManySortRoomInputDto input)
{
await _roomManager.UpdateManySortAsync(id, SortType);
await _roomManager.UpdateManySortAsync(input.RoomId, input.SortType);
}
/// <summary>

15
src/Shentun.Peis.Application/TransToWebPeis/TransToWebPeisAppService.cs

@ -33,6 +33,7 @@ using Volo.Abp.Identity;
using Volo.Abp.Uow;
using Shentun.Peis.PrintReports;
using System.Threading;
using NPOI.HSSF.Record.Chart;
namespace Shentun.Peis.TransToWebPeis
{
@ -916,7 +917,7 @@ namespace Shentun.Peis.TransToWebPeis
short newMedicalTimes = patientRegisterEnt.MedicalTimes;
var IsPatient = (await WebDb.Ado.GetDataTableAsync($"select patient_id from patient where patient_id='{patientRegisterEnt.PatientId}'")).Rows.Count;
@ -955,6 +956,12 @@ namespace Shentun.Peis.TransToWebPeis
#endregion
}
else
{
newMedicalTimes = (short)((short)(await WebDb.Ado.GetScalarAsync($"select max(medical_times) from patient_register where patient_id='{patientRegisterEnt.PatientId}'")) + 1);
}
#region 插入人员登记信息
@ -975,7 +982,7 @@ namespace Shentun.Peis.TransToWebPeis
new SugarParameter("patient_register_id",patientRegisterEnt.Id),
new SugarParameter("patient_register_no",patientRegisterEnt.PatientRegisterNo),
new SugarParameter("patient_id",patientRegisterEnt.PatientId),
new SugarParameter("medical_times",patientRegisterEnt.MedicalTimes),
new SugarParameter("medical_times",newMedicalTimes),
new SugarParameter("customer_org_id",patientRegisterEnt.CustomerOrgId),
new SugarParameter("customer_org_group_id",patientRegisterEnt.CustomerOrgGroupId),
new SugarParameter("medical_package_id",patientRegisterEnt.MedicalPackageId),
@ -1304,6 +1311,10 @@ namespace Shentun.Peis.TransToWebPeis
});
}
#endregion
patientRegisterEnt.IsUploadAppoint = 'Y';
await _patientRegisterRepository.UpdateAsync(patientRegisterEnt);
}
else
{

28
src/Shentun.Peis.Domain.Shared/Enums/QueueRegisterCompleteFlag.cs

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace Shentun.Peis.Enums
{
public static class QueueRegisterCompleteFlag
{
/// <summary>
/// 候诊
/// </summary>
[Description("候诊")]
public const char Wait = '0';
/// <summary>
/// 已呼
/// </summary>
[Description("已呼")]
public const char AlreadyCalled = '1';
/// <summary>
/// 过号
/// </summary>
[Description("过号")]
public const char OverNumber = '2';
}
}

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

@ -200,6 +200,14 @@ namespace Shentun.Peis.Models
[Column("is_upload")]
[MaxLength(1)]
public char IsUpload { get; set; }
/// <summary>
/// 是否上传预约备单到WEB
/// </summary>
[Column("is_upload_appoint")]
[MaxLength(1)]
public char IsUploadAppoint { get; set; }
/// <summary>
/// 完成标志(0 预登记 1正式登记 2部分已检 3已总检)
/// </summary>

5
src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs

@ -107,6 +107,11 @@ namespace Shentun.Peis.PrintReports
/// 部门名称
/// </summary>
public string DepartmentName { get; set; }
/// <summary>
/// 条码分组名称
/// </summary>
public string SampleGroupName { get; set; }
}

2
src/Shentun.Peis.Domain/QueueRegisters/QueueRegister.cs

@ -32,7 +32,7 @@ namespace Shentun.Peis.Models
[MaxLength(1)]
public char CompleteFlag { get; set; }
/// <summary>
/// 未完成原因
/// 未完成原因 暂时未用到
/// </summary>
[Column("no_complete_reason")]
[MaxLength(1)]

2
src/Shentun.Peis.Domain/RegisterCheckItems/RegisterCheckItem.cs

@ -40,7 +40,7 @@ namespace Shentun.Peis.Models
/// 参考范围
/// </summary>
[Column("reference_range_value")]
[StringLength(100)]
[StringLength(300)]
public string? ReferenceRangeValue { get; set; }
/// <summary>
/// 危急值范围

1
src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs

@ -80,6 +80,7 @@ namespace Shentun.Peis.DbMapping
entity.Property(t => t.InterposeMeasure).HasComment("干预措施");
entity.Property(t => t.ReportPrintTimes).HasComment("体检报告打印次数").IsRequired().HasDefaultValue((short)0);
entity.Property(t => t.IsUpload).HasComment("是否上传到WEB").IsRequired().HasDefaultValueSql("'N'");
entity.Property(t => t.IsUploadAppoint).HasComment("是否上传预约备单到WEB").IsRequired().HasDefaultValueSql("'N'");
entity.Property(t => t.IsMedicalStart).HasComment("体检开始标志").IsRequired().HasDefaultValueSql("'N'");
entity.Property(t => t.IsRecoverGuide).HasComment("指引单收回").IsRequired().HasDefaultValueSql("'N'");

15043
src/Shentun.Peis.EntityFrameworkCore/Migrations/20240716110145_patient_register_add.Designer.cs
File diff suppressed because it is too large
View File

28
src/Shentun.Peis.EntityFrameworkCore/Migrations/20240716110145_patient_register_add.cs

@ -0,0 +1,28 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Shentun.Peis.Migrations
{
public partial class patient_register_add : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<char>(
name: "is_upload_appoint",
table: "patient_register",
type: "character(1)",
maxLength: 1,
nullable: false,
defaultValueSql: "'N'",
comment: "是否上传预约备单到WEB");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "is_upload_appoint",
table: "patient_register");
}
}
}

12
src/Shentun.Peis.EntityFrameworkCore/Migrations/PeisDbContextModelSnapshot.cs

@ -7128,6 +7128,14 @@ namespace Shentun.Peis.Migrations
.HasDefaultValueSql("'N'")
.HasComment("是否上传到WEB");
b.Property<char>("IsUploadAppoint")
.ValueGeneratedOnAdd()
.HasMaxLength(1)
.HasColumnType("character(1)")
.HasColumnName("is_upload_appoint")
.HasDefaultValueSql("'N'")
.HasComment("是否上传预约备单到WEB");
b.Property<char>("IsVip")
.ValueGeneratedOnAdd()
.HasMaxLength(1)
@ -8591,8 +8599,8 @@ namespace Shentun.Peis.Migrations
b.Property<string>("ReferenceRangeValue")
.ValueGeneratedOnAdd()
.HasMaxLength(100)
.HasColumnType("character varying(100)")
.HasMaxLength(300)
.HasColumnType("character varying(300)")
.HasColumnName("reference_range_value")
.HasDefaultValueSql("''::character varying")
.HasComment("参考范围");

Loading…
Cancel
Save