This commit is contained in:
guorui
2025-03-05 11:24:30 +08:00
22 changed files with 1197 additions and 109 deletions

View File

@@ -3,11 +3,21 @@
*/
package com.openhis.web.outpatientservice.controller;
import com.core.common.core.domain.R;
import com.openhis.common.enums.AccountStatus;
import com.openhis.common.enums.PriorityLevel;
import com.openhis.web.basicservice.dto.HealthcareServiceInitDto;
import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 门诊挂号 controller
*/
@@ -17,6 +27,18 @@ import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor
public class OutpatientRegistrationController {
/**
* 门诊挂号基础数据初始化
*/
@GetMapping(value = "/init")
public R<?> init() {
OutpatientRegistrationInitDto outpatientRegistrationInitDto = new OutpatientRegistrationInitDto();
// 优先级
List<OutpatientRegistrationInitDto.priorityLevelOption> priorityLevelOptionOptions = Stream.of(PriorityLevel.values())
.map(e -> new OutpatientRegistrationInitDto.priorityLevelOption(e.getValue(), e.getInfo()))
.collect(Collectors.toList());
outpatientRegistrationInitDto.setPriorityLevelOptionOptions(priorityLevelOptionOptions);
return R.ok(outpatientRegistrationInitDto);
}
}

View File

@@ -0,0 +1,14 @@
package com.openhis.web.outpatientservice.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 门诊挂号 新增数据
*/
@Data
@Accessors(chain = true)
public class OutpatientRegistrationAddDto {
}

View File

@@ -0,0 +1,32 @@
package com.openhis.web.outpatientservice.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 门诊挂号 init基础数据
*/
@Data
@Accessors(chain = true)
public class OutpatientRegistrationInitDto {
private List<priorityLevelOption> priorityLevelOptionOptions;
/**
* 优先级
*/
@Data
public static class priorityLevelOption {
private Integer value;
private String label;
public priorityLevelOption(Integer value, String label) {
this.value = value;
this.label = label;
}
}
}

View File

@@ -1,7 +1,5 @@
package com.openhis.web.patientmanage.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,9 +11,10 @@ import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.openhis.common.enums.AdministrativeGender;
import com.openhis.common.enums.EncounterSubjectStatus;
import com.openhis.common.utils.EnumUtils;
import com.openhis.web.patientmanage.dto.OutpatientRecordDto;
import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam;
import com.openhis.web.patientmanage.dto.PatientListDto;
import com.openhis.web.patientmanage.mapper.PatientManageMapper;
import lombok.extern.slf4j.Slf4j;
@@ -45,24 +44,6 @@ public class OutpatientRecordController {
return R.ok(listDoctorNames);
}
/**
* 获取性别列表
*/
@GetMapping("/list-administrativegender")
public R<?> getAdministrativeGender() {
// 获取性别
List<AdministrativeGender> statusList = Arrays.asList(AdministrativeGender.values());
List<PatientListDto> dtos = new ArrayList<>();
// 取得更新值
for (AdministrativeGender status : statusList) {
PatientListDto dto = new PatientListDto();
dto.setValue(status.getValue());
dto.setInfo(status.getInfo());
dtos.add(dto);
}
return R.ok(dtos);
}
/**
* 分页查询门诊记录,可选条件
*
@@ -83,10 +64,17 @@ public class OutpatientRecordController {
// 查询总记录数
long total = patientManageMapper.countOutpatientRecords(outpatientRecordSearchParam);
// 创建Page对象并设置属性
Page<OutpatientRecordDto> OutpatientRecordPage = new Page<>(pageNo, pageSize, total);
OutpatientRecordPage.setRecords(listOutpatientRecords);
Page<OutpatientRecordDto> outpatientRecordPage = new Page<>(pageNo, pageSize, total);
outpatientRecordPage.setRecords(listOutpatientRecords);
outpatientRecordPage.getRecords().forEach(e -> {
// 性别枚举类回显赋值
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
// 就诊对象状态枚举类回显赋值
e.setSubjectStatusEnum_enumText(
EnumUtils.getInfoByValue(EncounterSubjectStatus.class, e.getSubjectStatusEnum()));
});
return R.ok(OutpatientRecordPage);
return R.ok(outpatientRecordPage);
}
}

View File

@@ -30,12 +30,14 @@ public class OutpatientRecordDto {
/** 性别编码 */
private Integer genderEnum;
private String genderEnum_enumText;
/** 就诊时间 */
private Date encounterTime;
/** 就诊对象状态 */
private Integer subjectStatusEnum;
private String subjectStatusEnum_enumText;
/** 机构名称/接诊医院 */
private String organizationName;

View File

@@ -25,7 +25,7 @@ public class OutpatientRecordSearchParam {
private String doctorName;
/** 筛选开始时间 */
private Date startTime;
private Date beginTime;
/** 筛选结束时间 */
private Date endTime;

View File

@@ -106,13 +106,13 @@
pt.name,
pt.id_card,
c.description,
pt.bus_no,
e.bus_no,
pt.bus_no as patientBusNo,
e.bus_no as encounterBusNo,
pt.gender_enum,
e.start_time,
e.start_time as encounterTime,
e.subject_status_enum,
ogt.name,
p.name,
ogt.name as organizationName,
p.name as doctorName,
pt.phone
FROM
adm_encounter e

View File

@@ -1,4 +1,5 @@
package com.openhis.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -8,7 +9,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
public enum EncounterClass {
public enum EncounterClass implements HisEnumInterface {
IMP(1, "IMP", "住院"),
AMB(2, "AMB", "门诊"),

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum EncounterStatus {
public enum EncounterStatus implements HisEnumInterface {
PLANNED(1, "draft", "已安排"),
IN_PROGRESS(2, "in-progress", "进行中"),

View File

@@ -3,10 +3,12 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 就诊对象状态
*/
@Getter
@AllArgsConstructor
public enum EncounterSubjectStatus {
public enum EncounterSubjectStatus implements HisEnumInterface {
PLANNED(1, "arrived", "已到达"),
TRIAGED(2, "triaged", "已分诊"),

View File

@@ -3,38 +3,12 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
/*代码值 代码名称 对应7.28医疗类别med_type 在2203接口用到此信息
25 异地住院
26 单病种住院
27 自主就医
81 意外伤害门诊
15 特药
28 日间手术
61 照护保险
11 普通门诊
12 门诊挂号
13 急诊
14 门诊慢特病
990404 门诊特检特治(限吉林市)
21 普通住院
22 外伤住院
23 转外诊治住院
24 急诊转住院
41 定点药店购药
51 生育门诊
52 生育住院
5212 生育新生儿费用
16 中医特色门诊
29 起付线治疗
9107 体检
3101 低自付住院
3102 低自付门诊
140104 门诊慢病
140201 门诊特病
2114 舒缓疗护住院*/
/**
* 医保类别
*/
@Getter
@AllArgsConstructor
public enum EncounterYbClass {
public enum EncounterYbClass implements HisEnumInterface {
// 住院服务
ORDINARY_HOSPITALIZATION(21, "21" , "普通住院"),
FOREIGN_HOSPITALIZATION(25,"25", "异地住院"),

View File

@@ -1,19 +1,17 @@
package com.openhis.administration.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 就诊管理Entity实体
*
@@ -25,54 +23,86 @@ import lombok.experimental.Accessors;
@EqualsAndHashCode(callSuper = false)
public class Encounter extends HisBaseEntity {
/** ID */
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 患者ID */
/**
* 患者ID
*/
private Long patientId;
/** 群组ID */
/**
* 群组ID
*/
private Long groupId;
/** 就诊编码 */
/**
* 就诊编码
*/
private String busNo;
/** 状态编码 */
/**
* 状态编码
*/
private Integer statusEnum;
/** 类别编码 */
/**
* 类别编码
*/
private Integer classEnum;
/** 类别医保编码 */
/**
* 类别医保编码
*/
private Integer ybClassEnum;
/** 类别编码补充 */
/**
* 类别编码补充
*/
private String classJson;
/** 优先级编码 */
/**
* 优先级编码
*/
private Integer priorityEnum;
/** 分类编码 */
/**
* 分类编码
*/
private Integer typeEnum;
/** 服务ID */
/**
* 服务ID
*/
private Long serviceTypeId;
/** 就诊对象状态 */
/**
* 就诊对象状态
*/
private Integer subjectStatusEnum;
/** 开始时间 */
/**
* 开始时间
*/
private Date startTime;
/** 结束时间 */
/**
* 结束时间
*/
private Date endTime;
/** 机构id */
/**
* 机构id
*/
private Long organizationId;
/** 就诊序号 */
/**
* 就诊序号
*/
private Integer displayOrder;
}