diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemDto.cs
new file mode 100644
index 00000000..9fa757a8
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemDto.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetAsbitemDto
+ {
+ ///
+ /// 名称
+ ///
+ public string AsbitemName { get; set; }
+
+
+
+ ///
+ /// 适用性别,M-男,F-女,A-全部
+ ///
+ public string ForSexName { get; set; }
+
+ ///
+ /// 婚姻状况
+ ///
+ public string MaritalStatusName { get; set; }
+
+
+
+ ///
+ /// 标准价格
+ ///
+ public decimal Price { get; set; }
+
+
+
+
+
+ public int DisplayOrder { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemInputDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemInputDto.cs
new file mode 100644
index 00000000..6cf3950b
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetAsbitemInputDto.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetAsbitemInputDto
+ {
+ ///
+ /// 模糊查询 组合项目名字
+ ///
+ public string AsbitemName { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetDoctorWorkLoadReportInputDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetDoctorWorkLoadReportInputDto.cs
new file mode 100644
index 00000000..f6cfce2f
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetDoctorWorkLoadReportInputDto.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetDoctorWorkLoadReportInputDto
+ {
+ ///
+ /// 开始日期
+ ///
+ public string StartDate { get; set; }
+
+
+ ///
+ /// 结束日期
+ ///
+ public string EndDate { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetItemTypeWorkLoadReportInputDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetItemTypeWorkLoadReportInputDto.cs
new file mode 100644
index 00000000..634322eb
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetItemTypeWorkLoadReportInputDto.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetItemTypeWorkLoadReportInputDto
+ {
+ ///
+ /// 开始日期
+ ///
+ public string StartDate { get; set; }
+
+
+ ///
+ /// 结束日期
+ ///
+ public string EndDate { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageDto.cs
new file mode 100644
index 00000000..0923d21b
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageDto.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetMedicalPackageDto
+ {
+ ///
+ /// 名称
+ ///
+ public string MedicalPackageName { get; set; }
+
+ ///
+ /// 价格
+ ///
+ public decimal Price { get; set; }
+
+ ///
+ /// 适用性别
+ ///
+ public string ForSexName { get; set; }
+
+ ///
+ /// 适用婚姻状况
+ ///
+ public string MaritalStatusName { get; set; }
+
+
+
+ ///
+ /// 备注
+ ///
+ public string? Remark { get; set; }
+
+
+ ///
+ /// 显示顺序
+ ///
+ public int DisplayOrder { get; set; }
+
+
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageInputDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageInputDto.cs
new file mode 100644
index 00000000..6e01bdf0
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetMedicalPackageInputDto.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetMedicalPackageInputDto
+ {
+ ///
+ /// 模糊查询 套餐名字
+ ///
+ public string MedicalPackageName { get; set; }
+
+
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportBase64ByPatientRegisterIdDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportBase64ByPatientRegisterIdDto.cs
new file mode 100644
index 00000000..f45b4026
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportBase64ByPatientRegisterIdDto.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetPeisReportBase64ByPatientRegisterIdDto
+ {
+ public string Base64Str { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportDto.cs
new file mode 100644
index 00000000..9aee1183
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportDto.cs
@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetPeisReportDto
+ {
+ ///
+ /// 人员ID
+ ///
+ public Guid PatientRegisterId { get; set; }
+
+ ///
+ /// 单位名称
+ ///
+ public string CustomerOrgName { get; set; }
+
+ ///
+ /// 部门名称
+ ///
+ public string DepartmentName { get; set; }
+
+ ///
+ /// 条码号
+ ///
+ public string PatientRegisterNo { get; set; }
+
+ ///
+ /// 档案号
+ ///
+ public string PatientNo { get; set; }
+
+ ///
+ /// 姓名
+ ///
+ public string PatientName { get; set; }
+
+ ///
+ /// 手机号
+ ///
+ public string MobileTelephone { get; set; }
+
+
+
+ ///
+ /// 标志(0 预登记 1正式登记 2部分已检 3已总检)
+ ///
+ public string CompleteFlag { get; set; }
+
+
+
+
+
+ ///
+ /// 是否已经上传web
+ ///
+ public string IsUpload { get; set; }
+
+
+ ///
+ /// 性别
+ ///
+ public string SexName { get; set; }
+
+ ///
+ /// 年龄
+ ///
+ public string Age { get; set; }
+
+ ///
+ /// 身份证号
+ ///
+ public string IdNo { get; set; }
+
+ ///
+ /// 体检日期 1999-01-01
+ ///
+ public string MedicalStartDate { get; set; }
+
+
+ ///
+ /// 总检医生
+ ///
+ public string SummaryDoctorName { get; set; }
+
+
+ ///
+ /// 总检时间 1999-01-01
+ ///
+ public string SummaryDate { get; set; }
+
+
+
+ ///
+ /// 审核医生
+ ///
+ public string AuditDoctorName { get; set; }
+ ///
+ /// 审核日期
+ ///
+ public string AuditDate { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportInputDto.cs b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportInputDto.cs
new file mode 100644
index 00000000..fc510f30
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/DirectorManagement/GetPeisReportInputDto.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.DirectorManagement
+{
+ public class GetPeisReportInputDto
+ {
+ ///
+ /// 姓名
+ ///
+ public string PatientName { get; set; }
+
+ ///
+ /// 手机号
+ ///
+ public string MobileTelephone { get; set; }
+ ///
+ /// 身份证
+ ///
+ public string IdNo { get; set; }
+
+ ///
+ /// 条码号
+ ///
+ public string PatientRegisterNo { get; set; }
+
+ ///
+ /// 档案号
+ ///
+ public string PatientNo { get; set; }
+ }
+}
diff --git a/src/Shentun.Peis.Application.Contracts/InternalReports/GetDoctorPersonnelWorkLoadReportRequestDto.cs b/src/Shentun.Peis.Application.Contracts/InternalReports/GetDoctorPersonnelWorkLoadReportRequestDto.cs
index 34522c3f..fd196ea2 100644
--- a/src/Shentun.Peis.Application.Contracts/InternalReports/GetDoctorPersonnelWorkLoadReportRequestDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/InternalReports/GetDoctorPersonnelWorkLoadReportRequestDto.cs
@@ -10,7 +10,7 @@ namespace Shentun.Peis.InternalReports
///
/// 医生ID 集合
///
- public List UserIds { get; set; }
+ public List UserIds { get; set; } = new List();
///
/// 开始检查日期
diff --git a/src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs b/src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs
index aae1e7c8..a0797f20 100644
--- a/src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/InternalReports/GetItemTypeWorkLoadInStandardRequestDto.cs
@@ -9,7 +9,7 @@ namespace Shentun.Peis.InternalReports
///
/// 项目类别ID
///
- public List ItemTypeId { get; set; }
+ public List ItemTypeId { get; set; } = new List();
///
diff --git a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs
index 1abc198c..7491e2dd 100644
--- a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs
+++ b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJExportDataAppService.cs
@@ -616,6 +616,23 @@ namespace Shentun.Peis.CCTJExportDatas
}
+ ///
+ /// 处理单位相关
+ ///
+ ///
+ [HttpPost("api/app/CCTJExportData/HandCustomerOrgDetailData")]
+ public async Task HandCustomerOrgDetailData()
+ {
+ await TransferTopCustomerOrgData();
+ await TransferTwoCustomerOrgData();
+ await TransferThreeCustomerOrgData();
+ await TransferFourCustomerOrgData();
+ await TransferCustomerOrgRegisterData();
+ await TransferCustomerOrgGroupData();
+ await TransferCustomerOrgGroupDetailData();
+ }
+
+
#region 基础数据
@@ -2319,7 +2336,7 @@ namespace Shentun.Peis.CCTJExportDatas
MedicalCenterId = defaultMedicalCenterId,
OrgTypeId = defaultOrgTypeId, //默认为私营
ParentId = null,
- PathCode = (oldCustomerOrgList.Rows.IndexOf(row) + 1).ToString().PadLeft(5, '0'),
+ PathCode = _customerOrgManager.CreatePathCode(null).GetAwaiter().GetResult(),
PostalCode = row["postalcode"].ToString(),
Remark = remark,
ShortName = row["short_name"].ToString(),
@@ -2438,7 +2455,7 @@ namespace Shentun.Peis.CCTJExportDatas
MedicalCenterId = defaultMedicalCenterId,
OrgTypeId = defaultOrgTypeId, //默认为私营
ParentId = parentId,
- PathCode = _customerOrgManager.CreatePathCode(parentId).Result,
+ PathCode = _customerOrgManager.CreatePathCode(parentId).GetAwaiter().GetResult(),
PostalCode = row["postalcode"].ToString(),
Remark = remark,
ShortName = row["short_name"].ToString(),
@@ -2556,7 +2573,7 @@ namespace Shentun.Peis.CCTJExportDatas
MedicalCenterId = defaultMedicalCenterId,
OrgTypeId = defaultOrgTypeId, //默认为私营
ParentId = parentId,
- PathCode = _customerOrgManager.CreatePathCode(parentId).Result,
+ PathCode = _customerOrgManager.CreatePathCode(parentId).GetAwaiter().GetResult(),
PostalCode = row["postalcode"].ToString(),
Remark = remark,
ShortName = row["short_name"].ToString(),
@@ -2674,7 +2691,7 @@ namespace Shentun.Peis.CCTJExportDatas
MedicalCenterId = defaultMedicalCenterId,
OrgTypeId = defaultOrgTypeId, //默认为私营
ParentId = parentId,
- PathCode = _customerOrgManager.CreatePathCode(parentId).Result,
+ PathCode = _customerOrgManager.CreatePathCode(parentId).GetAwaiter().GetResult(),
PostalCode = row["postalcode"].ToString(),
Remark = remark,
ShortName = row["short_name"].ToString(),
diff --git a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs
index 0e312f99..e69ea0ac 100644
--- a/src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs
+++ b/src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs
@@ -287,10 +287,14 @@ namespace Shentun.Peis.CCTJExportDatas
#region 检测是否有手动增加的项目
+
+ List pcAsbitemIds = new List();
+ pcAsbitemIds.Add(Guid.Parse("3a1e0db7-8601-c251-917a-107adcb65fc6"));
+ pcAsbitemIds.Add(Guid.Parse("3a1e0db6-2056-2a51-b7b7-ad2fac5d5d06"));
var query = (from asbitem in await _asbitemRepository.GetQueryableAsync()
join fieldComparison in (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "asbitem") on asbitem.Id.ToString() equals fieldComparison.NewKeyValue into fieldComparisonTemp
from fieldComparisonEmptyHave in fieldComparisonTemp.DefaultIfEmpty()
- where fieldComparisonEmptyHave == null
+ where fieldComparisonEmptyHave == null && !pcAsbitemIds.Contains(asbitem.Id)
select asbitem.DisplayName).ToList();
if (query.Any())
@@ -477,7 +481,7 @@ namespace Shentun.Peis.CCTJExportDatas
}
-
+
///
/// 同步体检单位数据 一级
diff --git a/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs b/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
index 57ca7928..4cc7ff42 100644
--- a/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
+++ b/src/Shentun.Peis.Application/DiagnosisFunctions/DiagnosisFunctionAppService.cs
@@ -719,7 +719,15 @@ namespace Shentun.Peis.DiagnosisFunctions
return diagnosis;
}
-
+ ///
+ /// 根据参考范围获取诊断
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private async Task GetNumberDiagnosis(string itemName, string result, string unit, bool isLower,
ReferenceRange referenceRange)
{
diff --git a/src/Shentun.Peis.Application/DirectorManagements/DirectorManagementAppService.cs b/src/Shentun.Peis.Application/DirectorManagements/DirectorManagementAppService.cs
index d7595721..243de6ec 100644
--- a/src/Shentun.Peis.Application/DirectorManagements/DirectorManagementAppService.cs
+++ b/src/Shentun.Peis.Application/DirectorManagements/DirectorManagementAppService.cs
@@ -1,15 +1,24 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
using NPOI.POIFS.Storage;
using Shentun.Peis.DirectorManagement;
using Shentun.Peis.Enums;
+using Shentun.Peis.InternalReports;
using Shentun.Peis.Models;
+using Shentun.Peis.PatientRegisters;
+using Shentun.Peis.PrintReports;
+using Shentun.Peis.TransToWebPeiss;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
+using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
@@ -32,6 +41,10 @@ namespace Shentun.Peis.DirectorManagements
private readonly IRepository _asbitemRepository;
private readonly IRepository _medicalPackageRepository;
private readonly IRepository _customerOrgRepository;
+ private readonly InternalReportAppService _internalReportAppService;
+ private readonly IRepository _thirdInterfaceRepository;
+ private readonly PrintReportAppService _printReportAppService;
+
public DirectorManagementAppService(
IRepository patientRegisterRepository,
IRepository patientRepository,
@@ -40,7 +53,10 @@ namespace Shentun.Peis.DirectorManagements
IRepository registerCheckAsbitemRepository,
IRepository asbitemRepository,
IRepository medicalPackageRepository,
- IRepository customerOrgRepository)
+ IRepository customerOrgRepository,
+ InternalReportAppService internalReportAppService,
+ IRepository thirdInterfaceRepository,
+ PrintReportAppService printReportAppService)
{
_patientRegisterRepository = patientRegisterRepository;
_patientRepository = patientRepository;
@@ -50,6 +66,9 @@ namespace Shentun.Peis.DirectorManagements
_asbitemRepository = asbitemRepository;
_medicalPackageRepository = medicalPackageRepository;
_customerOrgRepository = customerOrgRepository;
+ _internalReportAppService = internalReportAppService;
+ _thirdInterfaceRepository = thirdInterfaceRepository;
+ _printReportAppService = printReportAppService;
}
///
@@ -320,6 +339,348 @@ namespace Shentun.Peis.DirectorManagements
}
+ ///
+ /// 工作量统计 某段时间科室工作量统计
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetItemTypeWorkLoadReport")]
+ public async Task> GetItemTypeWorkLoadReportAsync(GetItemTypeWorkLoadReportInputDto input)
+ {
+ if (string.IsNullOrWhiteSpace(input.StartDate) || string.IsNullOrWhiteSpace(input.EndDate))
+ {
+ throw new UserFriendlyException("请选择查询时间段");
+ }
+
+ var entListDto = await _internalReportAppService.GetItemTypeWorkLoadInStandardAsync(new GetItemTypeWorkLoadInStandardRequestDto
+ {
+ StartDate = input.StartDate,
+ EndDate = input.EndDate
+ });
+
+ return entListDto;
+ }
+
+
+ ///
+ /// 工作量统计 某段时间医生工作量统计
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetDoctorWorkLoadReport")]
+ public async Task> GetDoctorWorkLoadReportAsync(GetDoctorWorkLoadReportInputDto input)
+ {
+ if (string.IsNullOrWhiteSpace(input.StartDate) || string.IsNullOrWhiteSpace(input.EndDate))
+ {
+ throw new UserFriendlyException("请选择查询时间段");
+ }
+
+ var entListDto = await _internalReportAppService.GetDoctorPersonnelWorkLoadReportAsync(new GetDoctorPersonnelWorkLoadReportRequestDto
+ {
+ StartDate = input.StartDate,
+ EndDate = input.EndDate
+ });
+
+ return entListDto;
+ }
+
+
+ ///
+ /// 套餐价格查询
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetMedicalPackage")]
+ public async Task> GetMedicalPackageAsync(GetMedicalPackageInputDto input)
+ {
+ var query = from medicalPackage in await _medicalPackageRepository.GetQueryableAsync()
+ where medicalPackage.IsActive == 'Y'
+ select medicalPackage;
+
+
+ if (!string.IsNullOrWhiteSpace(input.MedicalPackageName))
+ {
+ query = query.Where(m => input.MedicalPackageName.Contains(m.DisplayName));
+ }
+
+
+ var entListDto = query.ToList().Select(s => new GetMedicalPackageDto
+ {
+ DisplayOrder = s.DisplayOrder,
+ ForSexName = GetForSexName(s.ForSexId),
+ MaritalStatusName = _cacheService.GetMaritalStatusNameAsync(s.MaritalStatusId).GetAwaiter().GetResult(),
+ MedicalPackageName = s.DisplayName,
+ Price = s.Price,
+ Remark = s.Remark
+ }).OrderBy(o => o.DisplayOrder).ToList();
+
+ return entListDto;
+ }
+
+ ///
+ /// 组合项目价格查询
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetAsbitem")]
+ public async Task> GetAsbitemAsync(GetAsbitemInputDto input)
+ {
+ var query = from asbitem in await _asbitemRepository.GetQueryableAsync()
+ where asbitem.IsActive == 'Y'
+ select asbitem;
+
+
+ if (!string.IsNullOrWhiteSpace(input.AsbitemName))
+ {
+ query = query.Where(m => input.AsbitemName.Contains(m.DisplayName));
+ }
+
+
+ var entListDto = query.ToList().Select(s => new GetAsbitemDto
+ {
+ DisplayOrder = s.DisplayOrder,
+ ForSexName = GetForSexName(s.ForSexId),
+ MaritalStatusName = _cacheService.GetMaritalStatusNameAsync(s.MaritalStatusId).GetAwaiter().GetResult(),
+ AsbitemName = s.DisplayName,
+ Price = s.Price
+ }).OrderBy(o => o.DisplayOrder).ToList();
+
+ return entListDto;
+ }
+
+
+ ///
+ /// 客户体检报告查询
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetPeisReport")]
+ public async Task> GetPeisReportAsync(GetPeisReportInputDto input)
+ {
+ var query = from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
+ join patient in await _patientRepository.GetQueryableAsync() on patientRegister.PatientId equals patient.Id
+ where patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Audit || patientRegister.CompleteFlag == PatientRegisterCompleteFlag.SumCheck
+ select new
+ {
+ patientRegister,
+ patient
+ };
+
+
+ if (!string.IsNullOrWhiteSpace(input.PatientName))
+ {
+ query = query.Where(m => m.patientRegister.PatientName == input.PatientName);
+ }
+
+ if (!string.IsNullOrWhiteSpace(input.MobileTelephone))
+ {
+ query = query.Where(m => m.patient.MobileTelephone == input.MobileTelephone);
+ }
+
+ if (!string.IsNullOrWhiteSpace(input.PatientNo))
+ {
+ query = query.Where(m => m.patient.PatientNo == input.PatientNo);
+ }
+
+ if (!string.IsNullOrWhiteSpace(input.IdNo))
+ {
+ query = query.Where(m => m.patient.IdNo == input.IdNo);
+ }
+
+ if (!string.IsNullOrWhiteSpace(input.PatientRegisterNo))
+ {
+ query = query.Where(m => m.patientRegister.PatientRegisterNo == input.PatientRegisterNo);
+ }
+
+ var entListDto = query.Select(s => new GetPeisReportDto
+ {
+ Age = s.patientRegister.Age == null ? "" : s.patientRegister.Age.ToString(),
+ MedicalStartDate = DataHelper.ConversionDateShortToString(s.patientRegister.MedicalStartDate),
+ AuditDate = DataHelper.ConversionDateShortToString(s.patientRegister.AuditDate),
+ AuditDoctorName = _cacheService.GetSurnameAsync(s.patientRegister.AuditDoctorId).GetAwaiter().GetResult(),
+ IdNo = s.patient.IdNo,
+ MobileTelephone = s.patient.MobileTelephone,
+ PatientNo = s.patient.PatientNo,
+ SexName = GetSexName(s.patientRegister.SexId),
+ CompleteFlag = GetPatientRegisterCompleteFlag(s.patientRegister.CompleteFlag),
+ IsUpload = s.patientRegister.IsUpload == 'Y' ? "已上传" : "未上传",
+ PatientName = s.patientRegister.PatientName,
+ PatientRegisterId = s.patientRegister.Id,
+ PatientRegisterNo = s.patientRegister.PatientRegisterNo,
+ SummaryDate = DataHelper.ConversionDateShortToString(s.patientRegister.SummaryDate),
+ SummaryDoctorName = _cacheService.GetSurnameAsync(s.patientRegister.SummaryDoctorId).GetAwaiter().GetResult(),
+ CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync(s.patientRegister.CustomerOrgId).GetAwaiter().GetResult(),
+ DepartmentName = _cacheService.GetCustomerOrgNameAsync(s.patientRegister.CustomerOrgId).GetAwaiter().GetResult()
+ }).OrderBy(o => o.PatientRegisterId).ToList();
+
+ return entListDto;
+ }
+
+ ///
+ /// 根据体检人员Id查询报告 返回的报告base64
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DirectorManagement/GetPeisReportBase64ByPatientRegisterId")]
+ public async Task GetPeisReportBase64ByPatientRegisterIdAsync(PatientRegisterIdInputDto input)
+ {
+ var entDto = new GetPeisReportBase64ByPatientRegisterIdDto();
+
+ entDto.Base64Str = await GetPeisBase64Async(input);
+
+ return entDto;
+ }
+
+
+
+ ///
+ /// 获取报告bse64 调用服务器上客户端
+ ///
+ ///
+ ///
+ ///
+ ///
+ private async Task GetPeisBase64Async(PatientRegisterIdInputDto input)
+ {
+
+ var thirdInterface = await _thirdInterfaceRepository.FirstOrDefaultAsync(f => f.ThirdInterfaceType == ThirdInterfaceTypeFlag.TranToWebPeis);
+ if (thirdInterface.IsActive != 'Y')
+ {
+ throw new UserFriendlyException("该接口已禁用");
+ }
+
+ var parmValue = thirdInterface.ParmValue;
+ var configurationBuilder = new ConfigurationBuilder()
+ .AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
+ var config = configurationBuilder.Build();
+ var reportApiBaseAddress = config.GetSection("Interface").GetSection("ReportApiBaseAddress").Value;
+ var reportApiUrl = config.GetSection("Interface").GetSection("ReportApiUrl").Value;
+
+ string reportBase64 = "";
+
+
+ var printReportData = await _printReportAppService.GetMedicalReportConvertToReportAsync(input);
+
+
+ using (var httpClientHandler = new HttpClientHandler())
+ {
+ using (var httpClient = new HttpClient(httpClientHandler))
+ {
+ httpClient.BaseAddress = new Uri(reportApiBaseAddress);
+
+ httpClient.DefaultRequestHeaders.Accept.Add(
+ new MediaTypeWithQualityHeaderValue("application/json"));//设置accept标头,告诉JSON是可接受的响应类型
+
+
+ var sendData = JsonConvert.SerializeObject(printReportData);
+ using (HttpContent httpContent = new StringContent(sendData))
+ {
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+ HttpResponseMessage response = null;
+
+ response = await httpClient.PostAsync(reportApiUrl, httpContent);
+
+
+ string result;
+ if (!response.IsSuccessStatusCode)
+ {
+ result = response.Content.ReadAsStringAsync().Result;
+ throw new Exception("http通信错误:" + response.StatusCode + ",结果:" + result);
+ }
+ result = await response.Content.ReadAsStringAsync();
+
+ var resultDto = JsonConvert.DeserializeObject(result);
+ if (resultDto != null)
+ {
+ if (resultDto.code != 1)
+ {
+ throw new Exception($"调用WebApi失败,返回-1,消息:" + result);
+ }
+
+ reportBase64 = resultDto.data;
+ }
+ }
+
+ }
+ }
+
+ return reportBase64;
+ }
+
+
+ ///
+ /// 转换适用性别
+ ///
+ ///
+ ///
+ private string GetForSexName(char ForSexId)
+ {
+ string msg = "";
+ if (ForSexId == 'A')
+ {
+ msg = "全部";
+ }
+ else if (ForSexId == 'M')
+ {
+ msg = "男";
+ }
+ else if (ForSexId == 'F')
+ {
+ msg = "女";
+ }
+ return msg;
+ }
+
+
+ ///
+ /// 转换性别
+ ///
+ ///
+ ///
+ private string GetSexName(char SexId)
+ {
+ string msg = "";
+ if (SexId == 'U')
+ {
+ msg = "未知";
+ }
+ else if (SexId == 'M')
+ {
+ msg = "男";
+ }
+ else if (SexId == 'F')
+ {
+ msg = "女";
+ }
+ return msg;
+ }
+
+ ///
+ /// 转换人员状态
+ ///
+ ///
+ ///
+ private string GetPatientRegisterCompleteFlag(char completeFlag)
+ {
+ string msg = "";
+ if (completeFlag == '0')
+ {
+ msg = "预登记";
+ }
+ else if (completeFlag == '1')
+ {
+ msg = "正式登记";
+ }
+ else if (completeFlag == '2')
+ {
+ msg = "部分已检";
+ }
+ else if (completeFlag == '3')
+ {
+ msg = "已总检";
+ }
+ return msg;
+ }
}
}
diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
index 5d80a611..35ed3829 100644
--- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
+++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
@@ -388,6 +388,7 @@ namespace Shentun.Peis.PrintReports
PatientNo = o.patient.PatientNo,
Age = o.patientRegister.Age,
AsbitemNames = string.IsNullOrEmpty(o.asbitem.ShortName) ? o.asbitem.DisplayName : o.asbitem.ShortName,
+ AsbitemDisplayOrder = o.asbitem.DisplayOrder,
LisRequestNo = o.lisRequest.LisRequestNo,
PatientName = o.patientRegister.PatientName,
PatientRegisterNo = o.patientRegister.PatientRegisterNo,
@@ -488,7 +489,7 @@ namespace Shentun.Peis.PrintReports
LisRequestNo = lisRequestNoPrintMode == "0" ? s.Key.LisRequestNo : s.Key.PatientRegisterNo,
CustomerOrgName = s.Key.CustomerOrgName,
DepartmentName = s.Key.DepartmentName,
- AsbitemNames = string.Join(",", s.Select(d => d.AsbitemNames)),
+ AsbitemNames = string.Join(",", s.OrderBy(sa => sa.AsbitemDisplayOrder).Select(d => d.AsbitemNames)),
IsPrint = s.Key.IsPrint,
IsSignIn = s.Key.IsSignIn,
SamplingTime = s.Key.SamplingTime,
diff --git a/src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs b/src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs
index 0c7f673b..d8ab25f6 100644
--- a/src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs
+++ b/src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs
@@ -382,6 +382,14 @@ namespace Shentun.Peis.RegisterChecks
registerCheck.SubmissionTime = input.SubmissionTime;
if (input.AuditorTime != null)
registerCheck.AuditorTime = input.AuditorTime;
+
+ //更新体检标识跟体检日期
+ if (patientRegister.CompleteFlag == PatientRegisterCompleteFlag.Registration)
+ {
+ //第一次保存
+ patientRegister.IsMedicalStart = 'Y';
+ patientRegister.MedicalStartDate = DateTime.Now;
+ }
//更新人员登记信息完成标志
patientRegister.CompleteFlag = PatientRegisterCompleteFlag.PartCheck;
await _patientRegisterRepository.UpdateAsync(patientRegister);
diff --git a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs
index e81b8f08..e5b159d3 100644
--- a/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs
+++ b/src/Shentun.Peis.Domain/PatientRegisters/PatientRegister.cs
@@ -346,6 +346,23 @@ namespace Shentun.Peis.Models
[Column("summary_historical_review")]
public string SummaryHistoricalReview { get; set; }
+ ///
+ /// 报告是否领取
+ ///
+ [Column("is_receive_report")]
+ public char IsReceiveReport { get; set; }
+
+ ///
+ /// 报告领取人
+ ///
+ [Column("report_receive_name")]
+ public string ReportReceiveName { get; set; }
+
+ ///
+ /// 报告领取时间
+ ///
+ [Column("report_receive_date")]
+ public DateTime? ReportReceiveDate { get; set; }
[Column("concurrency_stamp")]
public string ConcurrencyStamp { get; set; }
diff --git a/src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs b/src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs
index b2fa8104..302623da 100644
--- a/src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs
+++ b/src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs
@@ -99,6 +99,12 @@ namespace Shentun.Peis.PrintReports
///
public string AsbitemNames { get; set; }
+ ///
+ ///
+ ///
+ public int AsbitemDisplayOrder { get; set; }
+
+
///
/// 单位名称
///
diff --git a/src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs
index a5ebe7ce..50466096 100644
--- a/src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs
+++ b/src/Shentun.Peis.EntityFrameworkCore/DbMapping/PatientRegisters/PatientRegisterDbMapping.cs
@@ -103,6 +103,9 @@ namespace Shentun.Peis.DbMapping
entity.Property(t => t.DeviceGuidePrintTimes).HasComment("设备体检报告打印次数").IsRequired().HasDefaultValue((short)0);
entity.Property(t => t.ReportPrintOperating).HasComment("体检报告打印操作者");
entity.Property(t => t.SummaryHistoricalReview).HasComment("总检历次综述内容");
+ entity.Property(t => t.IsReceiveReport).HasComment("报告是否领取").HasDefaultValueSql("'N'");
+ entity.Property(t => t.ReportReceiveName).HasComment("报告领取人");
+ entity.Property(t => t.ReportReceiveDate).HasComment("报告领取时间");
//entity.HasOne(d => d.CustomerOrgRegister)
// .WithMany(p => p.PatientRegisters)