This commit is contained in:
anxin
2025-02-26 18:32:49 +08:00
21 changed files with 1160 additions and 40 deletions

View File

@@ -0,0 +1,227 @@
package com.openhis.web.datadictionary.controller;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.bean.BeanUtils;
import com.openhis.administration.domain.DeviceDefinition;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.mapper.DeviceDefinitionMapper;
import com.openhis.administration.service.IDeviceDefinitionService;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.OrganizationType;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.dto.DeviceManageDto;
import com.openhis.web.datadictionary.dto.DeviceManageInitDto;
import com.openhis.web.datadictionary.dto.DeviceManageSelParam;
import com.openhis.web.datadictionary.dto.DeviceManageUpDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* TODO:器材目录
*
* @author lpt
* @date 2025-02-20
*/
@RestController
@RequestMapping("/datadictionary/device")
@Slf4j
@AllArgsConstructor
public class DeviceManageController {
private final IDeviceDefinitionService iDeviceDefinitionService;
private final DeviceDefinitionMapper DeviceDefinitionMapper;
private final IOrganizationService iOrganizationService;
/**
* TODO: 器材目录初期查询
*
* @return
*/
@GetMapping("/init")
public R<?> getDeviceManageInit() {
DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto();
// 获取状态
List<DeviceManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
deviceManageInitDto.setStatusFlagOptions(statusEnumOptions);
// 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT);
List<Organization> organizations = iOrganizationService.list(queryWrapper);
List<DeviceManageInitDto.exeOrganization> exeOrganizations = organizations.stream()
.map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList());
deviceManageInitDto.setExeOrganizations(exeOrganizations);
// 获取分类
List<DeviceManageInitDto.deviceCategory> deviceCategories = Stream.of(DeviceCategory.values())
.map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo()))
.collect(Collectors.toList());
deviceManageInitDto.setDeviceCategories(deviceCategories);
return R.ok(deviceManageInitDto);
}
/**
* 查询器材目录分页列表
*
* @param DeviceManageSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
@GetMapping("/information-page")
public R<?> getDevicePage(DeviceManageSelParam DeviceManageSelParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<DeviceDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(DeviceManageSelParam, searchKey,
new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByAsc("bus_no");
// 分页查询
Page<DeviceManageDto> deviceManagePage =
HisPageUtils.selectPage(DeviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class);
// 返回【器材目录列表DTO】分页
return R.ok(deviceManagePage);
}
/**
* 根据id查询器材详情
*
* @param id 器材ID
* @return
*/
@GetMapping("/information-one/{id}")
public R<?> getDeviceOne(@PathVariable("id") Long id) {
// 根据ID查询【器材目录】
DeviceDefinition byId = iDeviceDefinitionService.getById(id);
return R.ok(byId);
}
/**
* 器材目录编辑
*
* @param DeviceManageDto 器材目录列表
* @return
*/
@PutMapping("/information")
public R<?> editDevice(@RequestBody DeviceManageUpDto DeviceManageDto) {
DeviceDefinition DeviceDefinition = new DeviceDefinition();
BeanUtils.copyProperties(DeviceManageDto, DeviceDefinition);
// 更新器材信息
return iDeviceDefinitionService.updateById(DeviceDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 器材目录停用
*
* @param ids 器材目录ID列表
* @return
*/
@PutMapping("/information-stop")
public R<?> editDeviceStop(@RequestBody List<Long> ids) {
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
DeviceDefinition DeviceDefinition = new DeviceDefinition();
DeviceDefinition.setId(detail);
DeviceDefinition.setStatusEnum(PublicationStatus.RETIRED);
DeviceDefinitionList.add(DeviceDefinition);
}
// 更新器材信息
return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 器材目录启用
*
* @param ids 器材目录ID列表
* @return
*/
@PutMapping("/information-start")
public R<?> editDeviceStart(@RequestBody List<Long> ids) {
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
DeviceDefinition DeviceDefinition = new DeviceDefinition();
DeviceDefinition.setId(detail);
DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE);
DeviceDefinitionList.add(DeviceDefinition);
}
// 更新器材信息
return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 新增外来器材目录
*
* @param DeviceManageUpDto 器材目录
* @return
*/
@PostMapping("/information")
public R<?> addDevice(@Validated @RequestBody DeviceManageUpDto DeviceManageUpDto) {
DeviceDefinition DeviceDefinition = new DeviceDefinition();
BeanUtils.copyProperties(DeviceManageUpDto, DeviceDefinition);
// 新增外来器材目录
DeviceDefinition.setStatusEnum(PublicationStatus.DRAFT);
return iDeviceDefinitionService.addDevice(DeviceDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
/**
* 新增医保器材目录
*
* @param DeviceManageUpDto 器材目录
* @return
*/
@PostMapping("/information-yb")
public R<?> addYbDevice(@RequestBody DeviceManageUpDto DeviceManageUpDto) {
return null;
}
/**
* 器材目录导出
*
* @param DeviceManageDto 器材目录
* @return
*/
@GetMapping("/information-export")
public R<?> exportDevice(@RequestBody DeviceManageDto DeviceManageDto) {
return null;
}
}

View File

@@ -0,0 +1,226 @@
package com.openhis.web.datadictionary.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import com.openhis.administration.domain.Location;
import com.openhis.common.enums.ConditionDefinitionSource;
import com.openhis.web.basedatamanage.dto.OrganizationQueryDto;
import com.openhis.web.basicservice.dto.HealthcareServiceInitDto;
import com.openhis.web.datadictionary.dto.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.bean.BeanUtils;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.OrganizationType;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.workflow.domain.ActivityDefinition;
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
import com.openhis.workflow.service.IActivityDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* TODO:诊疗目录
*
* @author lpt
* @date 2025-02-20
*/
@RestController
@RequestMapping("/datadictionary/diagnosistreatment")
@Slf4j
@AllArgsConstructor
public class DiagnosisTreatmentController {
private final IActivityDefinitionService iActivityDefinitionService;
private final ActivityDefinitionMapper activityDefinitionMapper;
private final IOrganizationService iOrganizationService;
/**
* 诊疗目录初期查询
*
* @return
*/
@GetMapping("/init")
public R<?> getDiseaseTreatmentInit() {
DiagnosisTreatmentInitDto diagnosisTreatmentInitDto = new DiagnosisTreatmentInitDto();
// 获取状态
List<DiagnosisTreatmentInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setStatusFlagOptions(statusEnumOptions);
// 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT);
List<Organization> organizations = iOrganizationService.list(queryWrapper);
List<DiagnosisTreatmentInitDto.exeOrganization> exeOrganizations = organizations.stream()
.map(exeOrg -> new DiagnosisTreatmentInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
// 获取诊疗分类
return R.ok(diagnosisTreatmentInitDto);
}
/**
* 查询诊疗目录分页列表
*
* @param DiagnosisTreatmentSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
@GetMapping("/information-page")
public R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<ActivityDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByAsc("bus_no");
// 分页查询
Page<DiagnosisTreatmentDto> diseaseTreatmentPage = HisPageUtils.selectPage(activityDefinitionMapper,
queryWrapper, pageNo, pageSize, DiagnosisTreatmentDto.class);
// 返回【诊疗目录列表DTO】分页
return R.ok(diseaseTreatmentPage);
}
/**
* 根据id查询诊疗详情
*
* @param id 诊疗ID
* @return
*/
@GetMapping("/information-one/{id}")
public R<?> getDiseaseTreatmentOne(@PathVariable("id") Long id) {
DiagnosisTreatmentDto diagnosisTreatmentDto = new DiagnosisTreatmentDto();
// 根据ID查询【诊疗目录】
ActivityDefinition activityDefinition = iActivityDefinitionService.getById(id);
BeanUtils.copyProperties(activityDefinition, diagnosisTreatmentDto);
return R.ok(diagnosisTreatmentDto);
}
/**
* 诊疗目录编辑
*
* @param diagnosisTreatmentUpDto 诊疗目录列表
* @return
*/
@PutMapping("/information")
public R<?> editDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 更新诊疗信息
return iActivityDefinitionService.updateById(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 诊疗目录停用
*
* @param ids 诊疗目录ID列表
* @return
*/
@PutMapping("/information-stop")
public R<?> editDiseaseTreatmentStop(@RequestBody List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.RETIRED);
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 诊疗目录启用
*
* @param ids 诊疗目录ID列表
* @return
*/
@PutMapping("/information-start")
public R<?> editDiseaseTreatmentStart(@RequestBody List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.ACTIVE);
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 新增外来诊疗目录
*
* @param diagnosisTreatmentUpDto 诊疗目录
* @return
*/
@PostMapping("/information")
public R<?> addDiseaseTreatment(@Validated @RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 新增外来诊疗目录
ActivityDefinition.setStatusEnum(PublicationStatus.DRAFT);
return iActivityDefinitionService.addDiagnosisTreatment(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
/**
* 新增医保诊疗目录
*
* @param diagnosisTreatmentUpDto 诊疗目录
* @return
*/
@PostMapping("/information-yb")
public R<?> addYbDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
return null;
}
/**
* 诊疗目录导出
*
* @param diagnosisTreatmentDto 诊疗目录
* @return
*/
@GetMapping("/information-export")
public R<?> exportDiseaseTreatment(@RequestBody DiagnosisTreatmentDto diagnosisTreatmentDto) {
return null;
}
}

View File

@@ -53,7 +53,7 @@ public class DiseaseManageController {
* @return
*/
@GetMapping("/information-init")
public R<?> getDiseaseCategory() {
public R<?> getDiseaseInit() {
DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto();
// 获取疾病目录种类
List<DiseaseManageInitDto.diseaseCategory> diseaseCategoryList = Stream.of(ConditionDefinitionSource.values())

View File

@@ -2,6 +2,8 @@ package com.openhis.web.datadictionary.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
@@ -21,6 +23,7 @@ import com.openhis.medication.domain.MedicationDetail;
import com.openhis.medication.service.IMedicationDefinitionService;
import com.openhis.medication.service.IMedicationService;
import com.openhis.web.datadictionary.dto.MedicationManageDto;
import com.openhis.web.datadictionary.dto.MedicationManageInitDto;
import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper;
@@ -44,7 +47,23 @@ public class MedicationManageController {
private final MedicationManageSearchMapper medicationManageSearchMapper;
/**
* 查询病种目录分页列表
* 药品目录初始化
*
* @return
*/
@GetMapping("/information-init")
public R<?> getMedicationInit() {
MedicationManageInitDto medicationManageInitDto = new MedicationManageInitDto();
// 获取状态
List<MedicationManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
medicationManageInitDto.setStatusFlagOptions(statusEnumOptions);
return R.ok(medicationManageInitDto);
}
/**
* 查询药品目录分页列表
*
* @param searchKey 查询条件
* @param statusEnum 查询条件-状态

View File

@@ -0,0 +1,103 @@
package com.openhis.web.datadictionary.dto;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 器材目录分页检索
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DeviceManageDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编码 */
private String busNo;
/** 器材名称 */
private String name;
/** 器材名称拼音 */
private String pyStr;
/** 器材五笔拼音 */
private String wbStr;
/** 器材分类 */
private DeviceCategory categoryEnum;
/** 器材种类 */
private String typeCode;
/** 包装单位 */
private String unitCode;
/** 包装规格 */
private String size;
/** 拆零比 */
private BigDecimal partPercent;
/** 最小使用单位 */
private String minUnitCode;
/** 产品型号 */
private String modelNumber;
/** 高值器材标志 */
private Integer hvcmFlag;
/** 销售单位 */
private String salesUnitCode;
/** 批准文号 */
private String approvalNumber;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 状态 */
private PublicationStatus statusEnum;
/** 生产厂家 */
private Long manufacturerId;
/** 供应商 */
private Long supplyId;
/** 说明 */
private String description;
/** 适用范围 */
private String jurisdiction;
/** 执行科室 */
private Long ruleId;
/** 器材版本 */
private String version;
/** 主要成分 */
private String substanceText;
/** 过敏标记 */
private Integer allergenFlag;
}

View File

@@ -0,0 +1,64 @@
package com.openhis.web.datadictionary.dto;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 器材目录初始dto
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DeviceManageInitDto {
private List<statusEnumOption> statusFlagOptions;
private List<deviceCategory> deviceCategories;
private List<exeOrganization> exeOrganizations;
/**
* 状态
*/
@Data
public static class statusEnumOption {
private Integer value;
private String info;
public statusEnumOption(Integer value, String info) {
this.value = value;
this.info = info;
}
}
/**
* 器材分类
*/
@Data
public static class deviceCategory {
private Integer value;
private String info;
List<deviceCategory> children = new ArrayList<>();
public deviceCategory(Integer value, String info) {
this.value = value;
this.info = info;
}
}
/**
* 执行机构
*/
@Data
public static class exeOrganization {
private Long value;
private String label;
public exeOrganization(Long value, String label) {
this.value = value;
this.label = label;
}
}
}

View File

@@ -0,0 +1,30 @@
package com.openhis.web.datadictionary.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 器材目录分页检索条件
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DeviceManageSelParam {
/** 器材分类 */
private Integer categoryEnum;
/** 器材种类 */
private String typeCode;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 状态 */
private Integer statusEnum;
/** 执行科室 */
private Long ruleId;
}

View File

@@ -0,0 +1,103 @@
package com.openhis.web.datadictionary.dto;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.DeviceCategory;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 器材目录更新
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DeviceManageUpDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 编码 */
@NotBlank(message = "器材编码不能为空")
private String busNo;
/** 器材名称 */
@NotBlank(message = "器材名称不能为空")
private String name;
/** 器材名称拼音 */
private String pyStr;
/** 器材五笔拼音 */
private String wbStr;
/** 器材分类 */
private DeviceCategory categoryEnum;
/** 器材种类 */
private String typeCode;
/** 包装单位 */
private String unitCode;
/** 包装规格 */
private String size;
/** 拆零比 */
private BigDecimal partPercent;
/** 最小使用单位 */
private String minUnitCode;
/** 产品型号 */
private String modelNumber;
/** 高值器材标志 */
private Integer hvcmFlag;
/** 销售单位 */
private String salesUnitCode;
/** 批准文号 */
private String approvalNumber;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 生产厂家 */
private Long manufacturerId;
/** 供应商 */
private Long supplyId;
/** 说明 */
private String description;
/** 适用范围 */
private String jurisdiction;
/** 执行科室 */
private Long ruleId;
/** 器材版本 */
private String version;
/** 主要成分 */
private String substanceText;
/** 过敏标记 */
private Integer allergenFlag;
}

View File

@@ -0,0 +1,67 @@
package com.openhis.web.datadictionary.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 诊疗目录分页检索
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiagnosisTreatmentDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 目录类别 */
private Integer categoryEnum;
/** 编码 */
private String busNo;
/** 项目名称 */
private String name;
/** 项目名称拼音 */
private String pyStr;
/** 五笔拼音 */
private String wbStr;
/** 类型 */
private Integer typeEnum;
/** 使用单位 */
private String permittedUnitCode;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 状态 */
private PublicationStatus statusEnum;
/** 身体部位 */
private String bodySiteCode;
/** 所需标本 */
private String specimenCode;
/** 说明 */
private String descriptionText;
/** 规则id */
private Integer ruleId;
}

View File

@@ -0,0 +1,79 @@
package com.openhis.web.datadictionary.dto;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 诊疗目录初期查询
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiagnosisTreatmentInitDto {
private List<statusEnumOption> statusFlagOptions;
private List<diseaseTreatmentCategory> diseaseTreatmentCategoryList;
private List<exeOrganization> exeOrganizations;
/**
* 状态
*/
@Data
public static class statusEnumOption {
private Integer value;
private String info;
public statusEnumOption(Integer value, String info) {
this.value = value;
this.info = info;
}
}
/**
* 诊疗分类
*/
@Data
public static class diseaseTreatmentCategory {
private Integer value;
private String info;
List<diseaseTreatmentType> children = new ArrayList<>();
public diseaseTreatmentCategory(Integer value, String info) {
this.value = value;
this.info = info;
}
}
/**
* 诊疗类型
*/
@Data
public static class diseaseTreatmentType {
private Integer value;
private String info;
List<diseaseTreatmentType> children = new ArrayList<>();
public diseaseTreatmentType(Integer value, String info) {
this.value = value;
this.info = info;
}
}
/**
* 执行机构
*/
@Data
public static class exeOrganization {
private Long value;
private String label;
public exeOrganization(Long value, String label) {
this.value = value;
this.label = label;
}
}
}

View File

@@ -0,0 +1,31 @@
package com.openhis.web.datadictionary.dto;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 诊疗目录分页检索条件
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiagnosisTreatmentSelParam {
/** 目录类别 */
private Integer categoryEnum;
/** 类型 */
private Integer typeEnum;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 规则id */
private Integer ruleId;
/** 状态 */
private Integer statusEnum;
}

View File

@@ -0,0 +1,66 @@
package com.openhis.web.datadictionary.dto;
import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 诊疗目录分页更新
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiagnosisTreatmentUpDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 目录类别 */
private Integer categoryEnum;
/** 编码 */
@NotBlank(message = "项目编码不能为空")
private String busNo;
/** 项目名称 */
@NotBlank(message = "项目名称不能为空")
private String name;
/** 项目名称拼音 */
private String pyStr;
/** 五笔拼音 */
private String wbStr;
/** 类型 */
private Integer typeEnum;
/** 使用单位 */
private String permittedUnitCode;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 身体部位 */
private String bodySiteCode;
/** 所需标本 */
private String specimenCode;
/** 说明 */
private String descriptionText;
/** 规则id */
private Integer ruleId;
}

View File

@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
/**
* 疾病目录种别dto
* 疾病目录初始dto
*
* @author lpt
* @date 2025-02-25

View File

@@ -1,23 +0,0 @@
package com.openhis.web.datadictionary.dto;
import com.core.common.core.domain.entity.SysDept;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.ArrayList;
import java.util.List;
/**
* 疾病目录种别dto
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiseaseSourceDto {
private Integer value;
private String code;
private String info;
List<DiseaseSourceDto> children = new ArrayList<>();
}

View File

@@ -0,0 +1,32 @@
package com.openhis.web.datadictionary.dto;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 药品目录初始dto
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class MedicationManageInitDto {
private List<statusEnumOption> statusFlagOptions;
/**
* 状态
*/
@Data
public static class statusEnumOption {
private Integer value;
private String info;
public statusEnumOption(Integer value, String info) {
this.value = value;
this.info = info;
}
}
}

View File

@@ -1,14 +1,14 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
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.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -81,7 +81,7 @@ public class DeviceDefinition extends HisBaseEntity {
private Integer ybMatchFlag;
/** 状态 */
private Integer statusEnum;
private PublicationStatus statusEnum;
/** 生产厂家 */
private Long manufacturerId;
@@ -107,5 +107,4 @@ public class DeviceDefinition extends HisBaseEntity {
/** 过敏标记 */
private Integer allergenFlag;
}

View File

@@ -11,4 +11,19 @@ import com.openhis.administration.domain.DeviceDefinition;
*/
public interface IDeviceDefinitionService extends IService<DeviceDefinition> {
/**
* 新增器材目录
*
* @param deviceDefinition 耗材器材实体
* @return
*/
boolean addDevice(DeviceDefinition deviceDefinition);
/**
* 新增医保器材目录
*
* @param deviceDefinition 器材目录实体
* @return
*/
boolean addYbDevice(DeviceDefinition deviceDefinition);
}

View File

@@ -1,19 +1,50 @@
package com.openhis.administration.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.DeviceDefinition;
import com.openhis.administration.mapper.DeviceDefinitionMapper;
import com.openhis.administration.service.IDeviceDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* 器材定义管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Slf4j
@Service
public class DeviceDefinitionServiceImpl extends ServiceImpl<DeviceDefinitionMapper, DeviceDefinition> implements IDeviceDefinitionService {
@AllArgsConstructor
public class DeviceDefinitionServiceImpl extends ServiceImpl<DeviceDefinitionMapper, DeviceDefinition>
implements IDeviceDefinitionService {
private final DeviceDefinitionMapper deviceDefinitionMapper;
@Override
public boolean addDevice(DeviceDefinition deviceDefinition) {
// 根据器材编码判断器材是否存在
List<DeviceDefinition> activityDefinitions = deviceDefinitionMapper.selectList(
new LambdaQueryWrapper<DeviceDefinition>().eq(DeviceDefinition::getBusNo, deviceDefinition.getBusNo()));
if (activityDefinitions.size() > 0) {
return false;
}
// 新增器材项目
int insert = deviceDefinitionMapper.insert(deviceDefinition);
if (insert != 1) {
return false;
}
return true;
}
@Override
public boolean addYbDevice(DeviceDefinition deviceDefinition) {
return false;
}
}

View File

@@ -1,13 +1,11 @@
package com.openhis.workflow.domain;
import java.math.BigDecimal;
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.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -59,7 +57,7 @@ public class ActivityDefinition extends HisBaseEntity {
private Integer ybMatchFlag;
/** 状态 */
private Integer statusEnum;
private PublicationStatus statusEnum;
/** 身体部位 */
private String bodySiteCode;
@@ -68,10 +66,9 @@ public class ActivityDefinition extends HisBaseEntity {
private String specimenCode;
/** 说明 */
private String description;
private String descriptionText;
/** 规则id */
private Integer ruleId;
}

View File

@@ -11,4 +11,19 @@ import com.openhis.workflow.domain.ActivityDefinition;
*/
public interface IActivityDefinitionService extends IService<ActivityDefinition> {
/**
* 新增诊疗目录
*
* @param activityDefinition 诊疗目录实体
* @return
*/
boolean addDiagnosisTreatment(ActivityDefinition activityDefinition);
/**
* 新增医保诊疗目录
*
* @param activityDefinition 诊疗目录实体
* @return
*/
boolean addYbDiagnosisTreatment(ActivityDefinition activityDefinition);
}

View File

@@ -1,19 +1,58 @@
package com.openhis.workflow.service.impl;
import org.springframework.stereotype.Service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.workflow.domain.ActivityDefinition;
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
import com.openhis.workflow.service.IActivityDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* 诊疗定义管理Service业务层处理
*
* @author system
* @date 2025-02-20
*/
@Slf4j
@Service
public class ActivityDefinitionServiceImpl extends ServiceImpl<ActivityDefinitionMapper, ActivityDefinition> implements IActivityDefinitionService {
@AllArgsConstructor
public class ActivityDefinitionServiceImpl extends ServiceImpl<ActivityDefinitionMapper, ActivityDefinition>
implements IActivityDefinitionService {
private final ActivityDefinitionMapper activityDefinitionMapper;
/**
* 增加外来诊疗项目
*
* @param activityDefinition 诊疗项目实体
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addDiagnosisTreatment(ActivityDefinition activityDefinition) {
// 根据诊疗编码判断诊疗项目是否存在
List<ActivityDefinition> activityDefinitions =
activityDefinitionMapper.selectList(new LambdaQueryWrapper<ActivityDefinition>()
.eq(ActivityDefinition::getBusNo, activityDefinition.getBusNo()));
if (activityDefinitions.size() > 0) {
return false;
}
// 新增诊疗项目
int insert = activityDefinitionMapper.insert(activityDefinition);
if (insert != 1) {
return false;
}
return true;
}
@Override
public boolean addYbDiagnosisTreatment(ActivityDefinition activityDefinition) {
return false;
}
}