Browse Source

诊断建议

bjmzak
wxd 2 years ago
parent
commit
a889828445
  1. 10
      src/Shentun.Peis.Application.Contracts/Diagnosises/DiagnosisInSuggestionDto.cs
  2. 10
      src/Shentun.Peis.Application.Contracts/Suggestions/CreateSuggestionManyDto.cs
  3. 23
      src/Shentun.Peis.Application/Diagnosises/DiagnosisAppService.cs
  4. 5
      src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs
  5. 23
      src/Shentun.Peis.Domain.Shared/Enums/SuggestionTypeFlag.cs
  6. 9
      src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs

10
src/Shentun.Peis.Application.Contracts/Diagnosises/DiagnosisInSuggestionDto.cs

@ -7,7 +7,15 @@ namespace Shentun.Peis.Diagnosises
{
public class DiagnosisInSuggestionDto:DiagnosisDto
{
public List<SuggestionDto> Suggestions { get; set; }
/// <summary>
/// 医学解释
/// </summary>
public List<SuggestionDto> MedicalInterpretations { get; set; }
/// <summary>
/// 健康指导
/// </summary>
public List<SuggestionDto> HealthGuidances { get; set; }
}

10
src/Shentun.Peis.Application.Contracts/Suggestions/CreateSuggestionManyDto.cs

@ -14,16 +14,16 @@ namespace Shentun.Peis.Suggestions
[Required(ErrorMessage = "诊断ID不能为空")]
public Guid DiagnosisId { get; set; }
/// <summary>
/// 建议类型(0-代表医学解释,1-代表健康指导)
/// </summary>
public char SuggestionType { get; set; }
public List<CreateSuggestionMany_Detail> Details { get; set; } = new List<CreateSuggestionMany_Detail>();
}
public class CreateSuggestionMany_Detail
{
/// <summary>
/// 诊断ID
/// </summary>
public Guid DiagnosisId { get; set; }
/// <summary>
/// 建议内容
/// </summary>

23
src/Shentun.Peis.Application/Diagnosises/DiagnosisAppService.cs

@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Diagnosises;
using Shentun.Peis.Enums;
using Shentun.Peis.GuidTypes;
using Shentun.Peis.HelperDto;
using Shentun.Peis.Items;
@ -139,7 +140,7 @@ namespace Shentun.Peis.Diagnosises
IsSummaryTemplate = s.FirstOrDefault().a.IsSummaryTemplate,
ItemTypeId = s.FirstOrDefault().a.ItemTypeId,
SuggestionName = s.FirstOrDefault().a.SuggestionName,
Suggestions = s.Where(m => m.ab != null).Select(ss => new SuggestionDto
HealthGuidances = s.Where(m => m.ab != null && m.ab.SuggestionType == SuggestionTypeFlag.HealthGuidance).Select(ss => new SuggestionDto
{
CreationTime = ss.ab.CreationTime,
CreatorId = ss.ab.CreatorId,
@ -153,8 +154,22 @@ namespace Shentun.Peis.Diagnosises
SuggestionContent = ss.ab.SuggestionContent
}).OrderBy(o => o.DisplayOrder).ToList(),
MedicalInterpretations = s.Where(m => m.ab != null && m.ab.SuggestionType == SuggestionTypeFlag.MedicalInterpretation).Select(ss => new SuggestionDto
{
CreationTime = ss.ab.CreationTime,
CreatorId = ss.ab.CreatorId,
CreatorName = s.FirstOrDefault().ae != null ? s.FirstOrDefault().ae.UserName : "",
LastModifierName = s.FirstOrDefault().af != null ? s.FirstOrDefault().af.UserName : "",
DiagnosisId = ss.ab.DiagnosisId,
DisplayOrder = ss.ab.DisplayOrder,
Id = ss.ab.Id,
LastModificationTime = ss.ab.LastModificationTime,
LastModifierId = ss.ab.LastModifierId,
SuggestionContent = ss.ab.SuggestionContent
}).OrderBy(o=>o.ItemTypeId).ThenBy(o => o.DisplayOrder).ToList();
}).OrderBy(o => o.DisplayOrder).ToList(),
}).OrderBy(o => o.ItemTypeId).ThenBy(o => o.DisplayOrder).ToList();
return entlist;
@ -239,7 +254,7 @@ namespace Shentun.Peis.Diagnosises
var createEntity = ObjectMapper.Map<CreateDiagnosisDto, Diagnosis>(input);
var entity = await _manager.CreateAsync(createEntity);
entity = await Repository.InsertAsync(entity, true);
var entdto =await GetAsync(entity.Id);
var entdto = await GetAsync(entity.Id);
return entdto;
}
/// <summary>
@ -268,7 +283,7 @@ namespace Shentun.Peis.Diagnosises
{
return base.DeleteAsync(id);
}
/// <summary>
/// 修改排序 置顶,置底

5
src/Shentun.Peis.Application/Suggestions/SuggestionAppService.cs

@ -41,7 +41,7 @@ namespace Shentun.Peis.Suggestions
public async Task CreateSuggestionManyAsync(CreateSuggestionManyDto input)
{
//先按诊断ID删除所有建议
await _manager.CheckAndDeleteInDiagnosisIdAsync(input.DiagnosisId);
await _manager.CheckAndDeleteInDiagnosisIdAsync(input.DiagnosisId, input.SuggestionType);
if (input.Details.Any())
{
@ -52,7 +52,8 @@ namespace Shentun.Peis.Suggestions
{
DiagnosisId = input.DiagnosisId,
DisplayOrder = input.Details.IndexOf(item) + 1,
SuggestionContent = item.SuggestionContent
SuggestionContent = item.SuggestionContent,
SuggestionType = input.SuggestionType
};
suggestions.Add(_manager.CreateAsync(entity));

23
src/Shentun.Peis.Domain.Shared/Enums/SuggestionTypeFlag.cs

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace Shentun.Peis.Enums
{
public static class SuggestionTypeFlag
{
/// <summary>
/// 医学解释
/// </summary>
[Description("医学解释")]
public const char MedicalInterpretation = '0';
/// <summary>
/// 健康指导
/// </summary>
[Description("健康指导")]
public const char HealthGuidance = '1';
}
}

9
src/Shentun.Peis.Domain/Suggestions/SuggestionManager.cs

@ -36,16 +36,15 @@ namespace Shentun.Peis.Suggestions
return entity;
}
/// <summary>
/// 按诊断删除建议
/// </summary>
/// <param name="DiagnosisId">诊断ID</param>
/// <param name="diagnosisId">诊断ID</param>
/// <param name="suggestionType"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public async Task CheckAndDeleteInDiagnosisIdAsync(Guid DiagnosisId)
public async Task CheckAndDeleteInDiagnosisIdAsync(Guid diagnosisId, char suggestionType = '0')
{
var suggestionList = await _repository.GetListAsync(m => m.DiagnosisId == DiagnosisId);
var suggestionList = await _repository.GetListAsync(m => m.DiagnosisId == diagnosisId && m.SuggestionType == suggestionType);
if (suggestionList.Any())
{

Loading…
Cancel
Save