From 4e1413521f69c515fafbe60e8112bf489e05d338 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Fri, 14 Mar 2025 18:01:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E5=98=B1=E6=9F=A5=E8=AF=A2=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDoctorStationAdviceAppService.java | 6 + .../DoctorStationAdviceAppServiceImpl.java | 24 ++++ .../DoctorStationAdviceController.java | 17 +++ .../web/doctorstation/dto/AdviceBaseDto.java | 114 ++++++++++++++++++ .../doctorstation/dto/AdviceInventoryDto.java | 50 ++++++++ .../web/doctorstation/dto/AdvicePriceDto.java | 36 ++++++ .../mapper/DoctorStationAdviceAppMapper.java | 22 ++++ .../DoctorStationAdviceAppMapper.xml | 111 +++++++++++++++++ .../common/constant/CommonConstants.java | 11 ++ .../common/enums/ActivityDefCategory.java | 3 +- .../openhis/common/enums/ConditionCode.java | 21 ++++ 11 files changed, 414 insertions(+), 1 deletion(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceInventoryDto.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionCode.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java index 20475bf8..c4e8ab49 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java @@ -1,8 +1,14 @@ package com.openhis.web.doctorstation.appservice; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.openhis.web.doctorstation.dto.AdviceBaseDto; + /** * 医生站-医嘱/处方 应用Service */ public interface IDoctorStationAdviceAppService { + IPage getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId, + Integer pageNo, Integer pageSize); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index 3b1d36c0..86dfc13d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -1,8 +1,13 @@ package com.openhis.web.doctorstation.appservice.impl; +import javax.annotation.Resource; + import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService; +import com.openhis.web.doctorstation.dto.AdviceBaseDto; +import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper; /** * 医生站-医嘱/处方 应用实现类 @@ -10,4 +15,23 @@ import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService; @Service public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAppService { + @Resource + DoctorStationAdviceAppMapper doctorStationAdviceAppMapper; + + /** + * + * @param adviceBaseDto + * @param searchKey + * @param locationId + * @param pageNo + * @param pageSize + * @return + */ + @Override + public IPage getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId, + Integer pageNo, Integer pageSize) { + + return null; + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java index c2c5c3c0..0f0a3171 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java @@ -3,9 +3,15 @@ */ package com.openhis.web.doctorstation.controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import com.core.common.core.domain.R; +import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService; +import com.openhis.web.doctorstation.dto.AdviceBaseDto; + import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -18,4 +24,15 @@ import lombok.extern.slf4j.Slf4j; @AllArgsConstructor public class DoctorStationAdviceController { + private final IDoctorStationAdviceAppService iDoctorStationAdviceAppService; + + @GetMapping(value = "/advice-base-info") + public R getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "locationId") Long locationId, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return null; + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java new file mode 100644 index 00000000..71c56910 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java @@ -0,0 +1,114 @@ +package com.openhis.web.doctorstation.dto; + +import java.util.List; + +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; + +/** + * 医嘱基础 dto + */ +@Data +@Accessors(chain = true) +public class AdviceBaseDto { + + /** 医嘱类型 */ + private String adviceType; // 1:药品 , 2: 耗材 , 3:检查检验 + + /** 医嘱定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long adviceDefinitionId; + + /** 医嘱名称 */ + private String adviceName; + + /** + * 医嘱编码 + */ + private String adviceBusNo; + + /** 拼音码 */ + private String pyStr; + + /** 五笔码 */ + private String wbStr; + + /** 医保编码 */ + private String ybNo; + + /** 商品名称 */ + private String productName; + + /** 包装单位 */ + @Dict(dictCode = "unit_code") + private String unitCode; + private String unitCode_dictText; + + /** 最小单位 */ + @Dict(dictCode = "unit_code") + private String minUnitCode; + private String minUnitCode_dictText; + + /** + * 规格 + */ + private String volume; + + /** + * 用法 + */ + @Dict(dictCode = "method_code") + private String methodCode; + private String methodCode_dictText; + + /** + * 使用频次 + */ + @Dict(dictCode = "rate_code") + private String rateCode; + private String rateCode_dictText; + + /** + * 单次剂量 + */ + private String dose; + + /** 剂量单位 */ + @Dict(dictCode = "unit_code") + private String doseUnitCode; + private String doseUnitCode_dictText; + + /** + * 供应商 + */ + private String supplier; + + /** + * 生产厂家 + */ + private String manufacturer; + + /** 费用定价主表ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long chargeItemDefinitionId; + + /** + * 医嘱对应表名 + */ + private String adviceTableName; + + /** + * 医嘱库存集合 + */ + private List inventoryList; + + /** + * 医嘱价格集合 + */ + private List priceList; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceInventoryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceInventoryDto.java new file mode 100644 index 00000000..b7e0899a --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceInventoryDto.java @@ -0,0 +1,50 @@ +package com.openhis.web.doctorstation.dto; + +import java.math.BigDecimal; + +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; + +/** + * 医嘱库存 dto + */ +@Data +@Accessors(chain = true) +public class AdviceInventoryDto { + + /** 物理表名 */ + private String itemTable; + + /** 实例id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long itemId; + + /** 当前库存数量(包装单位) */ + private BigDecimal baseQuantity; + + /** 包装单位 */ + @Dict(dictCode = "unit_code") + private String baseUnitCode; + private String baseUnitCode_dictText; + + /** 当前库存数量(最小单位) */ + private BigDecimal minQuantity; + + /** 最小单位 */ + @Dict(dictCode = "unit_code") + private String minUnitCode; + private String minUnitCode_dictText; + + /** 产品批号 */ + private String lotNumber; + + /** + * 库房名称 + */ + private String locationName; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java new file mode 100644 index 00000000..0429f458 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java @@ -0,0 +1,36 @@ +package com.openhis.web.doctorstation.dto; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 医嘱价格 dto + */ +@Data +@Accessors(chain = true) +public class AdvicePriceDto { + + /** + * 费用定价名称 + */ + private String chargeName; + + /** 费用定价主表ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionId; + + /** 命中条件 */ + private String conditionCode; + + /** 命中值 */ + private String conditionValue; + + /** 价格 */ + private BigDecimal price; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java index 97aaa589..6274b3d2 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java @@ -1,11 +1,33 @@ package com.openhis.web.doctorstation.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.doctorstation.dto.AdviceBaseDto; + /** * 医生站-医嘱/处方 应用Mapper */ @Repository public interface DoctorStationAdviceAppMapper { + /** + * 查询医嘱信息 + * + * @param page 分页参数 + * @param medicationTableName 药品定义表名 + * @param deviceTableName 耗材定义表名 + * @param activityTableName 诊疗定义表名 + * @param queryWrapper 查询条件 + * @return 医嘱信息 + */ + IPage getAdviceBaseInfo(@Param("page") Page page, + @Param("medicationTableName") String medicationTableName, @Param("deviceTableName") String deviceTableName, + @Param("activityTableName") String activityTableName, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml index 5195b207..f12e9f96 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml @@ -4,5 +4,116 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + \ No newline at end of file diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java index f7ad3d4d..29afa93c 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java @@ -130,4 +130,15 @@ public class CommonConstants { String TCM_DIAGNOSIS = "中医诊断"; } + /** + * sql条件常量 + */ + public interface SqlCondition { + /** + * 关于库存的表名str + */ + String ABOUT_INVENTORY_TABLE_STR = + "'med_medication_definition', 'adm_device_definition', 'wor_activity_definition'"; + } + } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java index 004aefbe..213fc839 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java @@ -1,12 +1,13 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum ActivityDefCategory { +public enum ActivityDefCategory implements HisEnumInterface { MEDICAL_SERVICE_ITEM(1, "medical_service_item", "医疗服务项"), TREATMENT_SURGERY(2, "treatment_surgery", "手术与治疗"); diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionCode.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionCode.java new file mode 100644 index 00000000..fdac0c47 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionCode.java @@ -0,0 +1,21 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 命中条件枚举 + */ +@Getter +@AllArgsConstructor +public enum ConditionCode implements HisEnumInterface { + + UNIT_PRODUCT_BATCH_NUM(1, "unit_product_batch_num", "单位,产品批号"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; +}