提交merge1.3
This commit is contained in:
@@ -1,60 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.appservice;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
|
||||
|
||||
/**
|
||||
* 住院登记 应用实现
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/07
|
||||
*/
|
||||
public interface IAdmissionAppService {
|
||||
|
||||
/**
|
||||
* 病获取住院信息初期数据列表
|
||||
*
|
||||
* @return 住院信息初期数据列表
|
||||
*/
|
||||
R<?> getAdmissionInfoInit();
|
||||
|
||||
/**
|
||||
* 获取住院信息 分页显示
|
||||
*
|
||||
* @param admissionSearchParam 查询参数
|
||||
* @param searchKey 模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 住院信息
|
||||
*/
|
||||
R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam, String searchKey, Integer pageNo,
|
||||
Integer pageSize, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 住院无档登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记信息
|
||||
*/
|
||||
R<?> addAdmissionInfo(AdmissionUpDto admissionUpDto);
|
||||
|
||||
/**
|
||||
* 登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记信息
|
||||
*/
|
||||
R<?> editAdmissionInfo(AdmissionUpDto admissionUpDto);
|
||||
|
||||
/**
|
||||
* 住院登记详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 住院登记详细查询结果
|
||||
*/
|
||||
R<?> getAdmissionOne(@RequestParam Long id);
|
||||
|
||||
}
|
||||
@@ -1,268 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.appservice.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.administration.domain.Account;
|
||||
import com.openhis.administration.domain.Encounter;
|
||||
import com.openhis.administration.domain.EncounterLocation;
|
||||
import com.openhis.administration.service.IAccountService;
|
||||
import com.openhis.administration.service.IEncounterLocationService;
|
||||
import com.openhis.administration.service.IEncounterService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.inpatientmanage.appservice.IAdmissionAppService;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionDto;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionInitPageDto;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
|
||||
import com.openhis.web.inpatientmanage.mapper.AdmissionMapper;
|
||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
||||
|
||||
/**
|
||||
* 住院管理 实现类
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/07
|
||||
*/
|
||||
@Service
|
||||
public class AdmissionAppServiceImpl implements IAdmissionAppService {
|
||||
|
||||
@Resource
|
||||
private AdmissionMapper admissionMapper;
|
||||
|
||||
@Resource
|
||||
private IPatientInformationService patientInformationService;
|
||||
|
||||
@Resource
|
||||
private IEncounterService encounterService;
|
||||
|
||||
@Resource
|
||||
private IEncounterLocationService encounterLocationService;
|
||||
|
||||
@Resource
|
||||
private IAccountService accountService;
|
||||
|
||||
/**
|
||||
* 病获取住院信息初期数据列表
|
||||
*
|
||||
* @return 住院信息初期数据列表
|
||||
*/
|
||||
@Override
|
||||
public R<?> getAdmissionInfoInit() {
|
||||
|
||||
AdmissionInitPageDto initDto = new AdmissionInitPageDto();
|
||||
// 入院类型列表
|
||||
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions1 = Stream.of(AdmissionType.values())
|
||||
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
initDto.setAdmissionTypeList(statusEnumOptions1);
|
||||
|
||||
// 入院方式列表
|
||||
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions2 = Stream.of(AdmissionMethod.values())
|
||||
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
initDto.setAdmissionMethodList(statusEnumOptions2);
|
||||
|
||||
// 优先级编码列表:患者病情下拉选
|
||||
List<AdmissionInitPageDto.statusEnumOption> statusEnumOptions3 = Stream.of(PriorityLevel.values())
|
||||
.map(status -> new AdmissionInitPageDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
initDto.setPriorityEnumList(statusEnumOptions3);
|
||||
|
||||
return R.ok(initDto);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取住院信息 分页显示
|
||||
*
|
||||
* @param admissionSearchParam 查询参数
|
||||
* @param searchKey 模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 住院信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam, String searchKey, Integer pageNo,
|
||||
Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<AdmissionDto> queryWrapper = HisQueryUtils.buildQueryWrapper(admissionSearchParam, searchKey,
|
||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name, CommonConstants.FieldName.PyStr,
|
||||
CommonConstants.FieldName.WbStr)),
|
||||
request);
|
||||
|
||||
// 分页查询,查询住院
|
||||
IPage<AdmissionDto> admissionInfoPage = admissionMapper.getPage(new Page<>(pageNo, pageSize),
|
||||
EncounterClass.AMB.getValue(), LocationForm.WARD.getValue(), queryWrapper);
|
||||
|
||||
admissionInfoPage.getRecords().forEach(e -> {
|
||||
// 性别枚举类回显赋值
|
||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||
// 计算年龄
|
||||
// e.setAgeString(AgeCalculatorUtil.getAge(e.getBirthDate()));
|
||||
|
||||
});
|
||||
|
||||
// 返回【住院信息列表DTO】分页
|
||||
return R.ok(admissionInfoPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院无档登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> addAdmissionInfo(AdmissionUpDto admissionUpDto) {
|
||||
|
||||
// 1.添加病人信息
|
||||
PatientInformationDto patientInformationDto = convertToPatientInformationDto(admissionUpDto);
|
||||
|
||||
R<?> addPatientResult = patientInformationService.addPatient(patientInformationDto);
|
||||
// 检查返回值的状态码
|
||||
boolean insertPatientSuccess = (addPatientResult.getCode() == 200);
|
||||
|
||||
// 2.添加就诊信息,3.添加就诊账户,4.添加就诊病区
|
||||
admissionUpDto.setYbClassEnum(EncounterYbClass.ORDINARY_HOSPITALIZATION.getValue());
|
||||
boolean encounterLocationAndAccountSuccess = handleEncounterLocationAccount(admissionUpDto);
|
||||
|
||||
if (insertPatientSuccess && encounterLocationAndAccountSuccess) {
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"住院无档登记"}));
|
||||
} else {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, null));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> editAdmissionInfo(AdmissionUpDto admissionUpDto) {
|
||||
|
||||
// 1.修改病人信息
|
||||
PatientInformationDto patientInformationDto = convertToPatientInformationDto(admissionUpDto);
|
||||
|
||||
R<?> editPatientResult = patientInformationService.editPatient(patientInformationDto);
|
||||
// 检查返回值的状态码
|
||||
boolean updatePatientSuccess = (editPatientResult.getCode() == 200);
|
||||
|
||||
// 2.修改就诊信息,3.添加就诊账户,4.添加就诊病区
|
||||
boolean encounterLocationAndAccountSuccess = handleEncounterLocationAccount(admissionUpDto);
|
||||
|
||||
if (updatePatientSuccess && encounterLocationAndAccountSuccess) {
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"住院登记"}));
|
||||
} else {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院登记,添加就诊账户和就诊病区
|
||||
*
|
||||
* @param admissionUpDto 住院登记信息
|
||||
* @return 住院登记详细查询结果
|
||||
*/
|
||||
public boolean handleEncounterLocationAccount(AdmissionUpDto admissionUpDto) {
|
||||
|
||||
// 2.修改或者插入就诊信息
|
||||
Encounter encounter = new Encounter();
|
||||
encounter.setId(admissionUpDto.getId()).setPatientId(admissionUpDto.getPatientId())
|
||||
.setStatusEnum(EncounterStatus.IN_PROGRESS.getValue()).setOrganizationId(admissionUpDto.getOrganizationId())
|
||||
.setAdmitSourceCode(admissionUpDto.getAdmitSourceCode()).setInWayCode(admissionUpDto.getInWayCode())
|
||||
.setStartTime(admissionUpDto.getStartTime()).setClassEnum(EncounterClass.IMP.getValue())
|
||||
.setPriorityEnum(admissionUpDto.getPriorityEnum()).setYbClassEnum(admissionUpDto.getYbClassEnum())
|
||||
.setSubjectStatusEnum(EncounterSubjectStatus.PLANNED.getValue());
|
||||
|
||||
boolean encounterSuccess = encounterService.saveOrUpdateEncounter(encounter);
|
||||
|
||||
// 3.添加就诊账户account
|
||||
Account account = new Account();
|
||||
account.setName(admissionUpDto.getName()).setPatientId(admissionUpDto.getPatientId())
|
||||
.setEncounterId(admissionUpDto.getId())
|
||||
// 账户状态是有效的
|
||||
.setStatusEnum(AccountStatus.ACTIVE.getValue())
|
||||
// 结账状态是可用的
|
||||
.setBillingStatusEnum(AccountBillingStatus.OPEN.getValue());
|
||||
boolean updateAccountSuccess = accountService.saveOrUpdateAccount(account);
|
||||
|
||||
// 4.添加就诊病区location
|
||||
EncounterLocation encounterLocation = new EncounterLocation();
|
||||
encounterLocation.setLocationId(admissionUpDto.getWardLocationId()).setEncounterId(admissionUpDto.getId())
|
||||
.setFormEnum(LocationForm.WARD.getValue()).setStartTime(admissionUpDto.getStartTime())
|
||||
.setStatusEnum(EncounterActivityStatus.ACTIVE.getValue());
|
||||
boolean encounterLocationSuccess = encounterLocationService.saveOrUpdateEncounterLocation(encounterLocation);
|
||||
|
||||
return encounterSuccess && updateAccountSuccess && encounterLocationSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院登记详细查询
|
||||
*
|
||||
* @param id 就诊ID
|
||||
* @return 住院登记详细查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getAdmissionOne(@RequestParam Long id) {
|
||||
|
||||
// 获取租户ID
|
||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||
// 根据ID查询 住院登记详细
|
||||
AdmissionUpDto admissionUpDto = admissionMapper.getAdmissionOne(EncounterClass.IMP.getValue(),
|
||||
EncounterStatus.DISCHARGED.getValue(), LocationForm.BED.getValue(), LocationForm.WARD.getValue(),
|
||||
ParticipantType.ADMITTER.getCode(), LocationBedStatus.O.getValue(), id, tenantId);
|
||||
|
||||
// 查询患者病情站诊断
|
||||
// List<String> descriptionList = nurseStationPendAdmAppMapper.getDescriptionList(id);
|
||||
// 诊断病情拼接
|
||||
// if (descriptionList != null && !descriptionList.isEmpty()) {
|
||||
// admissionUpDto.setDescriptions(String.join(CommonConstants.Common.COMMA, descriptionList));
|
||||
// }
|
||||
|
||||
return R.ok(admissionUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 AdmissionUpDto 的字段值手动设置到 PatientInformationDto 中
|
||||
*
|
||||
* @param admissionUpDto 源对象
|
||||
* @return 目标对象
|
||||
*/
|
||||
public PatientInformationDto convertToPatientInformationDto(AdmissionUpDto admissionUpDto) {
|
||||
return new PatientInformationDto().setId(admissionUpDto.getPatientId()).setName(admissionUpDto.getName())
|
||||
.setGenderEnum(admissionUpDto.getGenderEnum()).setBirthDate(admissionUpDto.getBirthDate())
|
||||
.setMaritalStatusEnum(admissionUpDto.getMaritalStatusEnum()).setPrfsEnum(admissionUpDto.getPrfsEnum())
|
||||
.setPhone(admissionUpDto.getPhone()).setAddress(admissionUpDto.getAddress())
|
||||
.setNationalityCode(admissionUpDto.getNationalityCode()).setIdCard(admissionUpDto.getIdCard())
|
||||
.setPyStr(admissionUpDto.getPyStr()).setWbStr(admissionUpDto.getWbStr())
|
||||
.setWorkCompany(admissionUpDto.getWorkCompany()).setNativePlace(admissionUpDto.getNativePlace())
|
||||
.setCountryCode(admissionUpDto.getCountryCode()).setLinkName(admissionUpDto.getLinkName())
|
||||
.setLinkRelationCode(admissionUpDto.getLinkRelationCode()).setLinkTelcom(admissionUpDto.getLinkTelcom())
|
||||
.setOrganizationId(admissionUpDto.getOrganizationId());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.controller;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.inpatientmanage.appservice.IAdmissionAppService;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionSearchParam;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/inpatient-manage")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class AdmissionController {
|
||||
|
||||
@Resource
|
||||
private IAdmissionAppService admissionAppService;
|
||||
|
||||
/**
|
||||
* 获取住院信息初期数据列表
|
||||
*
|
||||
* @return 住院信息初期数据列表
|
||||
*/
|
||||
@GetMapping("/init")
|
||||
public R<?> getAdmissionInfoInit() {
|
||||
return admissionAppService.getAdmissionInfoInit();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取住院信息 分页显示
|
||||
*
|
||||
* @param admissionSearchParam 查询参数
|
||||
* @param searchKey 模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 住院信息
|
||||
*/
|
||||
@GetMapping("/admission-page")
|
||||
R<?> getAdmissionInfoPage(AdmissionSearchParam admissionSearchParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
return admissionAppService.getAdmissionInfoPage(admissionSearchParam, searchKey, pageNo, pageSize, request);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院无档登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记详细信息
|
||||
*/
|
||||
@PostMapping("/admission-information")
|
||||
public R<?> addAdmissionInfo(@Validated @RequestBody AdmissionUpDto admissionUpDto) {
|
||||
return admissionAppService.addAdmissionInfo(admissionUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登记
|
||||
*
|
||||
* @param admissionUpDto 住院登记详细信息
|
||||
*/
|
||||
@PutMapping("/admission-information")
|
||||
public R<?> editAdmissionInfo(@Validated @RequestBody AdmissionUpDto admissionUpDto) {
|
||||
// 调用服务层更新病人信息
|
||||
return admissionAppService.editAdmissionInfo(admissionUpDto);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询登记详情
|
||||
*
|
||||
* @param id 就诊ID
|
||||
* @return 登记详情
|
||||
*/
|
||||
@GetMapping("/admission-one")
|
||||
public R<?> getDeviceOne(@RequestParam Long id) {
|
||||
|
||||
return admissionAppService.getAdmissionOne(id);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.dto;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 住院登记信息
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/07
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AdmissionDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 患者ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/** 群组ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupId;
|
||||
|
||||
/** 就诊编码 */
|
||||
private String encounterBusNo;
|
||||
|
||||
/** 状态编码 */
|
||||
private Integer statusEnum;
|
||||
|
||||
/** 类别编码 */
|
||||
private Integer classEnum;
|
||||
|
||||
/** 类别医保编码 */
|
||||
private Integer ybClassEnum;
|
||||
|
||||
/** 机构id(科室) */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||
private Long organizationId;
|
||||
private String organizationId_dictText;
|
||||
|
||||
/** 入院类型 */
|
||||
@Dict(dictCode = "admit_source_code")
|
||||
private String admitSourceCode;
|
||||
private String admitSourceCode_dictText;
|
||||
|
||||
/** 入院方式 */
|
||||
@Dict(dictCode = "in_way_code")
|
||||
private String inWayCode;
|
||||
private String inWayCode_dictText;
|
||||
|
||||
/** 患者姓名 */
|
||||
private String name;
|
||||
|
||||
/** 患者院内编码/病历号 */
|
||||
private String patientBusNo;
|
||||
|
||||
/** 性别编码 */
|
||||
private Integer genderEnum;
|
||||
private String genderEnum_enumText;
|
||||
|
||||
/** 生日 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date birthDate;
|
||||
|
||||
/** 病人年龄 */
|
||||
private String ageString;
|
||||
|
||||
/** 身份证号 */
|
||||
private String idCard;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 入院病区 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
|
||||
private Long wardLocationId;
|
||||
private String wardLocationId_dictText;
|
||||
|
||||
/** 登记员 */
|
||||
private String createBy;
|
||||
|
||||
/** 创建时间 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 住院登记初始化页面信息
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/07
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AdmissionInitPageDto {
|
||||
|
||||
//获取入院类型列表
|
||||
private List<statusEnumOption> admissionTypeList;
|
||||
//获取入院方式列表
|
||||
private List<statusEnumOption> admissionMethodList;
|
||||
//优先级编码列表
|
||||
private List<statusEnumOption> priorityEnumList;
|
||||
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class statusEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public statusEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 住院登记查询参数
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/08
|
||||
*/
|
||||
@Data
|
||||
public class AdmissionSearchParam {
|
||||
|
||||
/** 状态编码 */
|
||||
private Integer statusEnum;
|
||||
|
||||
}
|
||||
@@ -1,179 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.dto;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 住院登记信息
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/07
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AdmissionUpDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@NotNull(message = "就诊ID不能为空")
|
||||
private Long id;
|
||||
|
||||
/** 患者ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/** 群组ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupId;
|
||||
|
||||
/** 就诊编码 */
|
||||
private String encounterBusNo;
|
||||
|
||||
/** 状态编码 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 类别编码 */
|
||||
private Integer classEnum;
|
||||
|
||||
/** 类别医保编码 */
|
||||
private Integer ybClassEnum;
|
||||
private String ybClassEnum_enumText;
|
||||
|
||||
/** 优先级编码 */
|
||||
private Integer priorityEnum;
|
||||
private String priorityEnum_enumText;
|
||||
|
||||
/** 分类编码 */
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 服务ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long serviceTypeId;
|
||||
|
||||
/** 就诊对象状态 */
|
||||
private Integer subjectStatusEnum;
|
||||
|
||||
/** 开始时间 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
|
||||
/** 结束时间 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date endTime;
|
||||
|
||||
/** 机构id(科室) */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||
private Long organizationId;
|
||||
private String organizationId_dictText;
|
||||
|
||||
/** 入院类型 */
|
||||
@Dict(dictCode = "admit_source_code")
|
||||
private String admitSourceCode;
|
||||
private String admitSourceCode_dictText;
|
||||
|
||||
/** 入院方式 */
|
||||
@Dict(dictCode = "in_way_code")
|
||||
private String inWayCode;
|
||||
private String inWayCode_dictText;
|
||||
|
||||
/** 住院次数 */
|
||||
private Integer hospitalizationCount;
|
||||
|
||||
/** 患者姓名 */
|
||||
private String name;
|
||||
|
||||
/** 患者院内编码/病历号 */
|
||||
private String patientBusNo;
|
||||
|
||||
/** 性别编码 */
|
||||
private Integer genderEnum;
|
||||
private String genderEnum_enumText;
|
||||
|
||||
/** 生日 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date birthDate;
|
||||
|
||||
/** 婚姻状态 */
|
||||
private Integer maritalStatusEnum;
|
||||
private String maritalStatusEnum_enumText;
|
||||
|
||||
/** 职业编码 */
|
||||
private Integer prfsEnum;
|
||||
private String prfsEnum_enumText;
|
||||
|
||||
/** 电话 */
|
||||
@Size(min = 11, max = 11, message = "电话长度必须为11位")
|
||||
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "电话格式不正确")
|
||||
private String phone;
|
||||
|
||||
/** 地址 */
|
||||
private String address;
|
||||
|
||||
/** 民族 */
|
||||
private String nationalityCode;
|
||||
|
||||
/** 身份证号 */
|
||||
@NotBlank(message = "身份证号不能为空")
|
||||
@Size(min = 18, max = 18, message = "身份证号必须是18位")
|
||||
@Pattern(regexp = "^[0-9Xx]{18}$", message = "身份证号格式不正确")
|
||||
private String idCard;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 工作单位 */
|
||||
private String workCompany;
|
||||
|
||||
/** 籍贯 */
|
||||
private String nativePlace;
|
||||
|
||||
/** 国家编码 */
|
||||
private String countryCode;
|
||||
|
||||
/** 联系人 */
|
||||
private String linkName;
|
||||
|
||||
/** 联系人关系 */
|
||||
private Integer linkRelationCode;
|
||||
|
||||
/** 联系人电话 */
|
||||
@Size(min = 11, max = 11, message = "电话长度必须为11位")
|
||||
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "电话格式不正确")
|
||||
private String linkTelcom;
|
||||
|
||||
/** 病人年龄 */
|
||||
private String ageString;
|
||||
|
||||
/** 门诊诊断 */
|
||||
private String descriptions;
|
||||
|
||||
/** 接诊医生 */
|
||||
private String doctorName;
|
||||
|
||||
/** 入院病区 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
|
||||
private Long wardLocationId;
|
||||
private String wardLocationId_dictText;
|
||||
|
||||
/** 床位数 */
|
||||
private String bedCount;
|
||||
|
||||
}
|
||||
@@ -297,13 +297,6 @@ public class PatientHomeDto {
|
||||
private Integer surgeryStatusEnum;
|
||||
private String surgeryStatusEnum_enumText;
|
||||
|
||||
/**
|
||||
* 过敏源类别
|
||||
*/
|
||||
@Dict(dictCode = "aise_code")
|
||||
private String categoryCode;
|
||||
private String categoryCode_dictText;
|
||||
|
||||
/**
|
||||
* 入院科室名称
|
||||
*/
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.openhis.web.inpatientmanage.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionDto;
|
||||
import com.openhis.web.inpatientmanage.dto.AdmissionUpDto;
|
||||
|
||||
/**
|
||||
* 住院登记
|
||||
*
|
||||
* @author liuhr
|
||||
* @since 2025/04/08
|
||||
*/
|
||||
@Repository
|
||||
public interface AdmissionMapper {
|
||||
|
||||
/**
|
||||
* 住院登记信息分页查询
|
||||
*
|
||||
* @param page 分页
|
||||
* @param classEnum 类别编码(1:住院类型)
|
||||
* @param formEnum 类别编码(1:住院类型)
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 住院登记信息
|
||||
*/
|
||||
IPage<AdmissionDto> getPage(@Param("page") Page<AdmissionDto> page, @Param("classEnum") Integer classEnum,
|
||||
@Param("formEnum") Integer formEnum, @Param(Constants.WRAPPER) QueryWrapper<AdmissionDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 住院登记详情
|
||||
*
|
||||
* @param classEnum 类别编码(1:住院类型)
|
||||
* @param statusEnum 状态编码(4:出院状态)
|
||||
* @param bedForm 床:8
|
||||
* @param wardForm 病区:4
|
||||
* @param operational 床位状态(4:占用)
|
||||
* @param typeCode 就诊参与者身份类型 (1:接诊医生)
|
||||
* @param id 就诊ID
|
||||
* @param tenantId 租户
|
||||
* @return 住院登记详情
|
||||
*/
|
||||
AdmissionUpDto getAdmissionOne(@Param("classEnum") Integer classEnum, @Param("statusEnum") Integer statusEnum,
|
||||
@Param("bedForm") Integer bedForm, @Param("wardForm") Integer wardForm, @Param("typeCode") String typeCode,
|
||||
@Param("operational") Integer operational, @Param("id") Long id, @Param("tenantId") Integer tenantId);
|
||||
}
|
||||
Reference in New Issue
Block a user