医嘱查询代码初始化
This commit is contained in:
@@ -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<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
||||
Integer pageNo, Integer pageSize);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<AdviceInventoryDto> inventoryList;
|
||||
|
||||
/**
|
||||
* 医嘱价格集合
|
||||
*/
|
||||
private List<AdvicePriceDto> priceList;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<AdviceBaseDto> getAdviceBaseInfo(@Param("page") Page<AdviceBaseDto> page,
|
||||
@Param("medicationTableName") String medicationTableName, @Param("deviceTableName") String deviceTableName,
|
||||
@Param("activityTableName") String activityTableName,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<AdviceBaseDto> queryWrapper);
|
||||
|
||||
}
|
||||
|
||||
@@ -4,5 +4,116 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper">
|
||||
|
||||
<select id="getAdviceBaseInfo" resultType="com.openhis.web.doctorstation.dto.AdviceBaseDto">
|
||||
SELECT abi.tenant_id,
|
||||
abi.advice_type,
|
||||
abi.advice_definition_id,
|
||||
abi.advice_name,
|
||||
abi.advice_bus_no,
|
||||
abi.py_str,
|
||||
abi.wb_str,
|
||||
abi.yb_no,
|
||||
abi.product_name,
|
||||
abi.unit_code,
|
||||
abi.min_unit_code,
|
||||
abi.volume,
|
||||
abi.method_code,
|
||||
abi.rate_code,
|
||||
abi.dose,
|
||||
abi.dose_unit_code,
|
||||
abi.supplier,
|
||||
abi.manufacturer,
|
||||
abi.charge_item_definition_id,
|
||||
abi.advice_table_name
|
||||
from (
|
||||
SELECT T1.tenant_id,
|
||||
'1' AS advice_type,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T2.total_volume AS volume,
|
||||
T2.method_code AS method_code,
|
||||
T2.rate_code AS rate_code,
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T4.NAME AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name
|
||||
FROM med_medication_definition AS t1
|
||||
LEFT JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T3 ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T4 ON T4.ID = T1.manufacturer_id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0'
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
WHERE T1.delete_flag = '0'
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
'2' AS advice_type,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.SIZE AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T3.NAME AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2 ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T3 ON T3.ID = T1.manufacturer_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0'
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
WHERE T1.delete_flag = '0'
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
'3' AS advice_type,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
WHERE T1.delete_flag = '0') AS abi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user