diff --git a/openhis-server-new/core-admin/pom.xml b/openhis-server-new/core-admin/pom.xml index 8fc2c124da333e9da01130c81eb1b159059b342b..227e9fe0a6e24075c5663a44eca5b2a45f414b21 100644 --- a/openhis-server-new/core-admin/pom.xml +++ b/openhis-server-new/core-admin/pom.xml @@ -36,11 +36,13 @@ io.swagger swagger-models + 1.6.2 + - com.mysql - mysql-connector-j + mysql + mysql-connector-java diff --git a/openhis-server-new/core-common/pom.xml b/openhis-server-new/core-common/pom.xml index b73c4296c864aacb24384579df628cedec9eb06e..fb1779627562c81263408d6ece06f26a83ab8f12 100644 --- a/openhis-server-new/core-common/pom.xml +++ b/openhis-server-new/core-common/pom.xml @@ -77,10 +77,6 @@ com.alibaba.fastjson2 fastjson2 - - com.alibaba - fastjson - @@ -140,6 +136,7 @@ com.belerweb pinyin4j + 2.5.1 diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/annotation/ExcelExtra.java b/openhis-server-new/core-common/src/main/java/com/core/common/annotation/ExcelExtra.java new file mode 100644 index 0000000000000000000000000000000000000000..9431c01fefdef5c86750ca1a30675ea184d29e52 --- /dev/null +++ b/openhis-server-new/core-common/src/main/java/com/core/common/annotation/ExcelExtra.java @@ -0,0 +1,38 @@ +package com.core.common.annotation; + +import java.lang.annotation.*; + +/** + * Excel额外表头信息注解 + * + * @author swb + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ExcelExtra { + /** + * 表头名称 + */ + String name(); + + /** + * 日期格式,如:yyyy-MM-dd HH:mm:ss + */ + String dateFormat() default ""; + + /** + * 排序(越小越靠前) + */ + int sort() default 0; + + /** + * 默认值 + */ + String defaultValue() default ""; + + /** + * 是否导出 + */ + boolean isExport() default true; +} \ No newline at end of file diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java b/openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java similarity index 77% rename from openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java rename to openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java index 0e8b0f4fa16c49d01a3f2ea0ba9ebd3bffcac7a4..f59c8060b33f24a3aeaf183cbe618092718b62d8 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java +++ b/openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java @@ -1,10 +1,13 @@ -package com.openhis.common.enums; +package com.core.common.enums; + +import lombok.Getter; /** * 删除标识 * * @author system */ +@Getter public enum DelFlag { /** * 未删除 @@ -25,18 +28,6 @@ public enum DelFlag { this.info = info; } - public String getCode() { - return code; - } - - public String getInfo() { - return info; - } - - public Integer getValue() { - return value; - } - public static DelFlag getByValue(Integer value) { if (value == null) { return null; diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/enums/DeleteFlag.java b/openhis-server-new/core-common/src/main/java/com/core/common/enums/DeleteFlag.java deleted file mode 100644 index 1668d5367ac1fcdb384d18946ac6531c45ec2cb9..0000000000000000000000000000000000000000 --- a/openhis-server-new/core-common/src/main/java/com/core/common/enums/DeleteFlag.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.core.common.enums; - -/** - * 删除标志 - * - * @author system - */ -public enum DeleteFlag { - NOT_DELETED("0", "未删除"), DELETED("1", "已删除"); - - private final String code; - private final String info; - - DeleteFlag(String code, String info) { - this.code = code; - this.info = info; - } - - public String getCode() { - return code; - } - - public String getInfo() { - return info; - } -} diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/enums/TenantOptionDict.java b/openhis-server-new/core-common/src/main/java/com/core/common/enums/TenantOptionDict.java index a03a2d0fd37a5e94d99db26e5f30f9ebad7289b1..5ac09b28b1f9005dd248228465a2d2740d269779 100644 --- a/openhis-server-new/core-common/src/main/java/com/core/common/enums/TenantOptionDict.java +++ b/openhis-server-new/core-common/src/main/java/com/core/common/enums/TenantOptionDict.java @@ -160,7 +160,7 @@ public enum TenantOptionDict { /** * 电子发票开关 */ - INVOICE_SWITCH("invoiceSwitch", "电子发票开关 (0:关闭 1:开启)", 56), + INVOICE_SWITCH("invoiceSwitch", "电子发票开关", 56), /** * 医嘱定价来源 @@ -170,41 +170,153 @@ public enum TenantOptionDict { /** * 三方支付(签到) */ - THREE_PART_SIGN_URL("threePartSignUrl", "三方支付GET请求", 58), + THREE_PART_SIGN_URL("threePartSignUrl", "三方支付【签到】请求路径", 58), + /** + * 三方支付(签到) + */ + THREE_PART_SIGN_STATIC_PARAM("threePartSignStaticParam", "三方支付【签到】固定参数", 59), + /** + * 三方支付(签到) + */ + THREE_PART_SIGN_ACTIVE_PARAM("threePartSignActiveParam", "三方支付【签到】可变参数", 60), + /** + * 三方支付(签到) + */ + THREE_PART_SIGN_MAPPING_METHOD("threePartSignMappingMethod", "三方支付【签到】请求方式", 61), + /** + * 三方支付(消费) + */ + THREE_PART_PAY_URL("threePartPayUrl", "三方支付【消费】请求路径", 62), + /** + * 三方支付(消费) + */ + THREE_PART_PAY_STATIC_PARAM("threePartPayStaticParam", "三方支付【消费】固定参数", 63), + /** + * 三方支付(消费) + */ + THREE_PART_PAY_ACTIVE_PARAM("threePartPayActiveParam", "三方支付【消费】可变参数", 64), /** * 三方支付(消费) */ - THREE_PART_PAY_URL("threePartPayUrl", "三方支付GET请求", 59), + THREE_PART_PAY_MAPPING_METHOD("threePartPayMappingMethod", "三方支付【消费】请求方式", 65), /** * 三方支付(退费) */ - THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付GET请求", 60), + THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付【退费】请求路径", 66), + /** + * 三方支付(退费) + */ + THREE_PART_RETURN_STATIC_PARAM("threePartReturnStaticParam", "三方支付【退费】固定参数", 67), + /** + * 三方支付(退费) + */ + THREE_PART_RETURN_ACTIVE_PARAM("threePartReturnActiveParam", "三方支付【退费】可变参数", 68), + /** + * 三方支付(退费) + */ + THREE_PART_RETURN_MAPPING_METHOD("threePartReturnMappingMethod", "三方支付【退费】请求方式", 69), /** * 三方支付(隔天退费) */ - THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付GET请求", 61), + THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付【隔天退费】请求路径", 70), + /** + * 三方支付(隔天退费) + */ + THREE_PART_NEXT_DAY_RETURN_STATIC_PARAM("threePartNextDayReturnStaticParam", "三方支付【隔天退费】固定参数", 71), + /** + * 三方支付(隔天退费) + */ + THREE_PART_NEXT_DAY_RETURN_ACTIVE_PARAM("threePartNextDayReturnActiveParam", "三方支付【隔天退费】可变参数", 72), + /** + * 三方支付(隔天退费) + */ + THREE_PART_NEXT_DAY_RETURN_MAPPING_METHOD("threePartNextDayReturnMappingMethod", "三方支付【隔天退费】请求方式", 73), /** * 三方支付路径(支付结果查询) */ - THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付GET请求", 62), + THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付【支付结果查询】请求路径", 74), + /** + * 三方支付(支付结果查询) + */ + THREE_PART_PAY_QUERY_STATIC_PARAM("threePartPayQueryStaticParam", "三方支付【支付结果查询】固定参数", 75), + /** + * 三方支付(支付结果查询) + */ + THREE_PART_PAY_QUERY_ACTIVE_PARAM("threePartPayQueryActiveParam", "三方支付【支付结果查询】可变参数", 76), + /** + * 三方支付(支付结果查询) + */ + THREE_PART_PAY_QUERY_MAPPING_METHOD("threePartPayQueryMappingMethod", "三方支付【支付结果查询】请求方式", 77), /** * 三方支付路径(退费结果查询) */ - THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付GET请求", 63), + THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付【退费结果查询】请求路径", 78), + /** + * 三方支付(退费结果查询) + */ + THREE_PART_RETURN_QUERY_STATIC_PARAM("threePartReturnQueryStaticParam", "三方支付【退费结果查询】固定参数", 79), + /** + * 三方支付(退费结果查询) + */ + THREE_PART_RETURN_QUERY_ACTIVE_PARAM("threePartReturnQueryActiveParam", "三方支付【退费结果查询】可变参数", 80), + /** + * 三方支付(退费结果查询) + */ + THREE_PART_RETURN_QUERY_MAPPING_METHOD("threePartReturnQueryMappingMethod", "三方支付【退费结果查询】请求方式", 81), /** * 三方支付路径(隔天退费结果查询) */ - THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付GET请求", 64), + THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付【隔天退费结果查询】请求路径", 82), + /** + * 三方支付(隔天退费结果查询) + */ + THREE_PART_NEXT_DAY_RETURN_QUERY_STATIC_PARAM("threePartNextDayReturnQueryStaticParam", "三方支付【隔天退费结果查询】固定参数", 83), + /** + * 三方支付(隔天退费结果查询) + */ + THREE_PART_NEXT_DAY_RETURN_QUERY_ACTIVE_PARAM("threePartNextDayReturnQueryActiveParam", "三方支付【隔天退费结果查询】可变参数", 84), + /** + * 三方支付(隔天退费结果查询) + */ + THREE_PART_NEXT_DAY_RETURN_QUERY_MAPPING_METHOD("threePartNextDayReturnQueryMappingMethod", "三方支付【隔天退费结果查询】请求方式", + 85), + + /** + * 三方支付(签出) + */ + THREE_PART_SIGN_OUT_URL("threePartSignOutUrl", "三方支付【签出】请求路径", 86), + /** + * 三方支付(签出) + */ + THREE_PART_SIGN_OUT_STATIC_PARAM("threePartSignOutStaticParam", "三方支付【签出】固定参数", 87), + /** + * 三方支付(签出) + */ + THREE_PART_SIGN_OUT_ACTIVE_PARAM("threePartSignOutActiveParam", "三方支付【签出】可变参数", 88), + /** + * 三方支付(签出) + */ + THREE_PART_SIGN_OUT_MAPPING_METHOD("threePartSignOutMappingMethod", "三方支付【签出】请求方式", 89), + + /** + * 三方支付(签出) + */ + YB_INPATIENT_SETTLEMENT_UP_URL("ybInpatientSetlUp", "选填4101或4101A", 90), + + /** + * PACS查看报告地址 + */ + PACS_REPORT_URL("pacsReportUrl", "PACS查看报告地址", 91), /** - * 三方支付参数 + * LIS查看报告地址 */ - THREE_PART_PARAM("threePartParam", "三方支付GET请求", 65); + LIS_REPORT_URL("lisReportUrl", "LIS查看报告地址", 92); private final String code; private final String name; diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/utils/NewExcelUtil.java b/openhis-server-new/core-common/src/main/java/com/core/common/utils/NewExcelUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..b41f18a060599d68b80676dd8007e460b493230d --- /dev/null +++ b/openhis-server-new/core-common/src/main/java/com/core/common/utils/NewExcelUtil.java @@ -0,0 +1,1837 @@ +package com.core.common.utils; + +import java.io.*; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.RegExUtils; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ooxml.POIXMLDocumentPart; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.ss.util.RegionUtil; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.*; +import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.core.common.annotation.Excel; +import com.core.common.annotation.Excel.ColumnType; +import com.core.common.annotation.Excel.Type; +import com.core.common.annotation.ExcelExtra; +import com.core.common.annotation.Excels; +import com.core.common.config.CoreConfig; +import com.core.common.core.domain.AjaxResult; +import com.core.common.core.text.Convert; +import com.core.common.exception.UtilException; +import com.core.common.utils.file.FileTypeUtils; +import com.core.common.utils.file.FileUtils; +import com.core.common.utils.file.ImageUtils; +import com.core.common.utils.poi.ExcelHandlerAdapter; +import com.core.common.utils.reflect.ReflectUtils; + +/** + * Excel相关处理 + * + * @author system + */ +public class NewExcelUtil { + public static final String FORMULA_REGEX_STR = "=|-|\\+|@"; + public static final String[] FORMULA_STR = {"=", "-", "+", "@"}; + /** + * Excel sheet最大行数,默认65536 + */ + public static final int sheetSize = 65536; + private static final Logger log = LoggerFactory.getLogger(NewExcelUtil.class); + /** + * 数字格式 + */ + private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00"); + /** + * 用于dictType属性数据存储,避免重复查缓存 + */ + public Map sysDictMap = new HashMap(); + /** + * 实体对象 + */ + public Class clazz; + /** + * 需要显示列属性 + */ + public String[] includeFields; + /** + * 需要排除列属性 + */ + public String[] excludeFields; + /** + * 工作表名称 + */ + private String sheetName; + /** + * 导出类型(EXPORT:导出数据;IMPORT:导入模板) + */ + private Type type; + /** + * 工作薄对象 + */ + private Workbook wb; + /** + * 工作表对象 + */ + private Sheet sheet; + /** + * 样式列表 + */ + private Map styles; + /** + * 导入导出数据列表 + */ + private List list; + /** + * 注解列表 + */ + private List fields; + /** + * 当前行号 + */ + private int rownum; + /** + * 标题 + */ + private String title; + /** + * 最大高度 + */ + private short maxHeight; + /** + * 合并后最后行数 + */ + private int subMergedLastRowNum = 0; + /** + * 合并后开始行数 + */ + private int subMergedFirstRowNum = 1; + /** + * 对象的子列表方法 + */ + private Method subMethod; + /** + * 对象的子列表属性 + */ + private List subFields; + /** + * 统计列表 + */ + private Map statistics = new HashMap(); + + /** + * 构造方法 + * + * @param clazz 实体类类型 + */ + public NewExcelUtil(Class clazz) { + this.clazz = clazz; + } + + /** + * 获取画布 + * + * @param sheet 工作表 + * @return 绘图对象 + */ + public static Drawing getDrawingPatriarch(Sheet sheet) { + if (sheet.getDrawingPatriarch() == null) { + sheet.createDrawingPatriarch(); + } + return sheet.getDrawingPatriarch(); + } + + /** + * 解析导出值 0=男,1=女,2=未知 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String convertByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[0].equals(value)) { + propertyString.append(itemArray[1] + separator); + break; + } + } + } else { + if (itemArray[0].equals(propertyValue)) { + return itemArray[1]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 反向解析值 男=0,女=1,未知=2 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String reverseByExp(String propertyValue, String converterExp, String separator) { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(propertyValue, separator)) { + for (String value : propertyValue.split(separator)) { + if (itemArray[1].equals(value)) { + propertyString.append(itemArray[0] + separator); + break; + } + } + } else { + if (itemArray[1].equals(propertyValue)) { + return itemArray[0]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 解析字典值 + * + * @param dictValue 字典值 + * @param dictType 字典类型 + * @param separator 分隔符 + * @return 字典标签 + */ + public static String convertDictByExp(String dictValue, String dictType, String separator) { + return DictUtils.getDictLabel(dictType, dictValue, separator); + } + + /** + * 反向解析值字典值 + * + * @param dictLabel 字典标签 + * @param dictType 字典类型 + * @param separator 分隔符 + * @return 字典值 + */ + public static String reverseDictByExp(String dictLabel, String dictType, String separator) { + return DictUtils.getDictValue(dictType, dictLabel, separator); + } + + /** + * 获取Excel2003图片 + * + * @param sheet 当前sheet对象 + * @param workbook 工作簿对象 + * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData + */ + public static Map getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) { + Map sheetIndexPicMap = new HashMap(); + List pictures = workbook.getAllPictures(); + if (!pictures.isEmpty()) { + for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) { + HSSFClientAnchor anchor = (HSSFClientAnchor)shape.getAnchor(); + if (shape instanceof HSSFPicture) { + HSSFPicture pic = (HSSFPicture)shape; + int pictureIndex = pic.getPictureIndex() - 1; + HSSFPictureData picData = pictures.get(pictureIndex); + String picIndex = anchor.getRow1() + "_" + anchor.getCol1(); + sheetIndexPicMap.put(picIndex, picData); + } + } + return sheetIndexPicMap; + } else { + return sheetIndexPicMap; + } + } + + /** + * 获取Excel2007图片 + * + * @param sheet 当前sheet对象 + * @param workbook 工作簿对象 + * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData + */ + public static Map getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) { + Map sheetIndexPicMap = new HashMap(); + for (POIXMLDocumentPart dr : sheet.getRelations()) { + if (dr instanceof XSSFDrawing) { + XSSFDrawing drawing = (XSSFDrawing)dr; + List shapes = drawing.getShapes(); + for (XSSFShape shape : shapes) { + if (shape instanceof XSSFPicture) { + XSSFPicture pic = (XSSFPicture)shape; + XSSFClientAnchor anchor = pic.getPreferredSize(); + CTMarker ctMarker = anchor.getFrom(); + String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); + sheetIndexPicMap.put(picIndex, pic.getPictureData()); + } + } + } + } + return sheetIndexPicMap; + } + + /** + * 仅在Excel中显示列属性 + * + * @param fields 列属性名 示例[单个"name"/多个"id","name"] + */ + public void showColumn(String... fields) { + this.includeFields = fields; + } + + /** + * 隐藏Excel中列属性 + * + * @param fields 列属性名 示例[单个"name"/多个"id","name"] + */ + public void hideColumn(String... fields) { + this.excludeFields = fields; + } + + /** + * 创建excel第一行标题 + */ + public void createTitle() { + if (StringUtils.isNotEmpty(title)) { + subMergedFirstRowNum++; + subMergedLastRowNum++; + int titleLastCol = this.fields.size() - 1; + if (isSubList()) { + titleLastCol = titleLastCol + subFields.size() - 1; + } + Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion( + new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), titleLastCol)); + } + } + + /** + * 创建对象的子列表名称 + */ + public void createSubHead() { + if (isSubList()) { + subMergedFirstRowNum++; + subMergedLastRowNum++; + Row subRow = sheet.createRow(rownum); + int excelNum = 0; + for (Object[] objects : fields) { + Excel attr = (Excel)objects[1]; + Cell headCell1 = subRow.createCell(excelNum); + headCell1.setCellValue(attr.name()); + headCell1.setCellStyle( + styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor()))); + excelNum++; + } + int headFirstRow = excelNum - 1; + int headLastRow = headFirstRow + subFields.size() - 1; + if (headLastRow > headFirstRow) { + sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow)); + } + rownum++; + } + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(InputStream is) { + List list = null; + try { + list = importExcel(is, 0); + } catch (Exception e) { + log.error("导入Excel异常{}", e.getMessage()); + throw new UtilException(e.getMessage()); + } finally { + IOUtils.closeQuietly(is); + } + return list; + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @param titleNum 标题占用行数 + * @return 转换后集合 + */ + public List importExcel(InputStream is, int titleNum) throws Exception { + return importExcel(StringUtils.EMPTY, is, titleNum); + } + + /** + * 对excel表单指定表格索引名转换成list + * + * @param sheetName 表格索引名 + * @param titleNum 标题占用行数 + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception { + this.type = Type.IMPORT; + this.wb = WorkbookFactory.create(is); + List list = new ArrayList(); + // 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet + Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); + if (sheet == null) { + throw new IOException("文件sheet不存在"); + } + boolean isXSSFWorkbook = !(wb instanceof HSSFWorkbook); + Map pictures; + if (isXSSFWorkbook) { + pictures = getSheetPictures07((XSSFSheet)sheet, (XSSFWorkbook)wb); + } else { + pictures = getSheetPictures03((HSSFSheet)sheet, (HSSFWorkbook)wb); + } + // 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1 + int rows = sheet.getLastRowNum(); + if (rows > 0) { + // 定义一个map用于存放excel列的序号和field. + Map cellMap = new HashMap(); + // 获取表头 + Row heard = sheet.getRow(titleNum); + for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { + Cell cell = heard.getCell(i); + if (StringUtils.isNotNull(cell)) { + String value = this.getCellValue(heard, i).toString(); + cellMap.put(value, i); + } else { + cellMap.put(null, i); + } + } + // 有数据时才处理 得到类的所有field. + List fields = this.getFields(); + Map fieldsMap = new HashMap(); + for (Object[] objects : fields) { + Excel attr = (Excel)objects[1]; + Integer column = cellMap.get(attr.name()); + if (column != null) { + fieldsMap.put(column, objects); + } + } + for (int i = titleNum + 1; i <= rows; i++) { + // 从第2行开始取数据,默认第一行是表头. + Row row = sheet.getRow(i); + // 判断当前行是否是空行 + if (isRowEmpty(row)) { + continue; + } + T entity = null; + for (Map.Entry entry : fieldsMap.entrySet()) { + Object val = this.getCellValue(row, entry.getKey()); + + // 如果不存在实例则新建. + entity = (entity == null ? clazz.newInstance() : entity); + // 从map中得到对应列的field. + Field field = (Field)entry.getValue()[0]; + Excel attr = (Excel)entry.getValue()[1]; + // 取得类型,并根据对象类型设置值. + Class fieldType = field.getType(); + if (String.class == fieldType) { + String s = Convert.toStr(val); + if (StringUtils.endsWith(s, ".0")) { + val = StringUtils.substringBefore(s, ".0"); + } else { + String dateFormat = field.getAnnotation(Excel.class).dateFormat(); + if (StringUtils.isNotEmpty(dateFormat)) { + val = parseDateToStr(dateFormat, val); + } else { + val = Convert.toStr(val); + } + } + } else if ((Integer.TYPE == fieldType || Integer.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toInt(val); + } else if ((Long.TYPE == fieldType || Long.class == fieldType) + && StringUtils.isNumeric(Convert.toStr(val))) { + val = Convert.toLong(val); + } else if (Double.TYPE == fieldType || Double.class == fieldType) { + val = Convert.toDouble(val); + } else if (Float.TYPE == fieldType || Float.class == fieldType) { + val = Convert.toFloat(val); + } else if (BigDecimal.class == fieldType) { + val = Convert.toBigDecimal(val); + } else if (Date.class == fieldType) { + if (val instanceof String) { + val = DateUtils.parseDate(val); + } else if (val instanceof Double) { + val = DateUtil.getJavaDate((Double)val); + } + } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) { + val = Convert.toBool(val, false); + } + if (StringUtils.isNotNull(fieldType)) { + String propertyName = field.getName(); + if (StringUtils.isNotEmpty(attr.targetAttr())) { + propertyName = field.getName() + "." + attr.targetAttr(); + } + if (StringUtils.isNotEmpty(attr.readConverterExp())) { + val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); + } else if (StringUtils.isNotEmpty(attr.dictType())) { + if (!sysDictMap.containsKey(attr.dictType() + val)) { + String dictValue = + reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); + sysDictMap.put(attr.dictType() + val, dictValue); + } + val = sysDictMap.get(attr.dictType() + val); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + val = dataFormatHandlerAdapter(val, attr, null); + } else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures)) { + PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey()); + if (image == null) { + val = ""; + } else { + byte[] data = image.getData(); + val = FileUtils.writeImportBytes(data); + } + } + ReflectUtils.invokeSetter(entity, propertyName, val); + } + } + list.add(entity); + } + } + return list; + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + */ + public AjaxResult exportExcel(List list, String sheetName) { + return exportExcel(list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult exportExcel(List list, String sheetName, String title) { + this.init(list, sheetName, title, Type.EXPORT); + return exportExcel(); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName) { + exportExcel(response, list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(list, sheetName, title, Type.EXPORT); + exportExcel(response); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @return 结果 + */ + public AjaxResult importTemplateExcel(String sheetName) { + return importTemplateExcel(sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult importTemplateExcel(String sheetName, String title) { + this.init(null, sheetName, title, Type.IMPORT); + return exportExcel(); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName) { + importTemplateExcel(response, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(null, sheetName, title, Type.IMPORT); + exportExcel(response); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response HTTP响应对象 + */ + public void exportExcel(HttpServletResponse response) { + try { + writeSheet(); + wb.write(response.getOutputStream()); + } catch (Exception e) { + log.error("导出Excel异常{}", e.getMessage()); + } finally { + IOUtils.closeQuietly(wb); + } + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @return 结果 + */ + public AjaxResult exportExcel() { + OutputStream out = null; + try { + writeSheet(); + String filename = encodingFilename(sheetName); + out = new FileOutputStream(getAbsoluteFile(filename)); + wb.write(out); + return AjaxResult.success(filename); + } catch (Exception e) { + log.error("导出Excel异常{}", e.getMessage()); + throw new UtilException("导出Excel失败,请联系网站管理员!"); + } finally { + IOUtils.closeQuietly(wb); + IOUtils.closeQuietly(out); + } + } + + /** + * 根据Excel注解创建表格头样式 + * + * @param wb 工作薄对象 + * @param styles 样式列表 + * @return 自定义样式列表 + */ + private Map annotationHeaderStyles(Workbook wb, Map styles) { + Map headerStyles = new HashMap(); + for (Object[] os : fields) { + Excel excel = (Excel)os[1]; + String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); + if (!headerStyles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(excel.headerBackgroundColor().index); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short)10); + headerFont.setBold(true); + headerFont.setColor(excel.headerColor().index); + style.setFont(headerFont); + // 设置表格头单元格文本形式 + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + headerStyles.put(key, style); + } + } + return headerStyles; + } + + /** + * 根据Excel注解创建表格列样式 + * + * @param wb 工作薄对象 + * @return 自定义样式列表 + */ + private Map annotationDataStyles(Workbook wb) { + Map styles = new HashMap(); + for (Object[] os : fields) { + Field field = (Field)os[0]; + Excel excel = (Excel)os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + ParameterizedType pt = (ParameterizedType)field.getGenericType(); + Class subClass = (Class)pt.getActualTypeArguments()[0]; + List subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + for (Field subField : subFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + annotationDataStyles(styles, subField, subExcel); + } + } else { + annotationDataStyles(styles, field, excel); + } + } + return styles; + } + + /** + * 根据Excel注解创建表格列样式 + * + * @param styles 自定义样式列表 + * @param field 属性列信息 + * @param excel 注解信息 + */ + public void annotationDataStyles(Map styles, Field field, Excel excel) { + String key = StringUtils.format("data_{}_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor(), + excel.cellType()); + if (!styles.containsKey(key)) { + CellStyle style = wb.createCellStyle(); + style.setAlignment(excel.align()); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + style.setFillForegroundColor(excel.backgroundColor().getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short)10); + dataFont.setColor(excel.color().index); + style.setFont(dataFont); + if (ColumnType.TEXT == excel.cellType()) { + DataFormat dataFormat = wb.createDataFormat(); + style.setDataFormat(dataFormat.getFormat("@")); + } + styles.put(key, style); + } + } + + /** + * 创建单元格 + * + * @param attr Excel注解 + * @param row 行对象 + * @param column 列索引 + * @return 单元格对象 + */ + public Cell createHeadCell(Excel attr, Row row, int column) { + // 创建列 + Cell cell = row.createCell(column); + // 写入列信息 + cell.setCellValue(attr.name()); + setDataValidation(attr, row, column); + cell.setCellStyle(styles.get("header")); // 使用 header 样式 + if (isSubList()) { + // 填充默认样式,防止合并单元格样式失效 + sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}_{}", attr.align(), + attr.color(), attr.backgroundColor(), attr.cellType()))); + if (attr.needMerge()) { + sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); + } + } + return cell; + } + + /** + * 设置单元格信息 + * + * @param value 单元格值 + * @param attr 注解相关 + * @param cell 单元格信息 + */ + public void setCellVo(Object value, Excel attr, Cell cell) { + if (ColumnType.STRING == attr.cellType() || ColumnType.TEXT == attr.cellType()) { + String cellValue = Convert.toStr(value); + // 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。 + if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) { + cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0"); + } + if (value instanceof Collection && StringUtils.equals("[]", cellValue)) { + cellValue = StringUtils.EMPTY; + } + cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix()); + } else if (ColumnType.NUMERIC == attr.cellType()) { + if (StringUtils.isNotNull(value)) { + cell.setCellValue( + StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); + } + } else if (ColumnType.IMAGE == attr.cellType()) { + ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short)cell.getColumnIndex(), + cell.getRow().getRowNum(), (short)(cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1); + String imagePath = Convert.toStr(value); + if (StringUtils.isNotEmpty(imagePath)) { + byte[] data = ImageUtils.getImage(imagePath); + getDrawingPatriarch(cell.getSheet()).createPicture(anchor, + cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + } + } + } + + /** + * 获取图片类型,设置图片插入类型 + * + * @param value 图片字节数组 + * @return 图片类型 + */ + public int getImageType(byte[] value) { + String type = FileTypeUtils.getFileExtendName(value); + if ("JPG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_JPEG; + } else if ("PNG".equalsIgnoreCase(type)) { + return Workbook.PICTURE_TYPE_PNG; + } + return Workbook.PICTURE_TYPE_JPEG; + } + + /** + * 创建表格样式 + * + * @param attr Excel注解 + * @param row 行对象 + * @param column 列索引 + */ + public void setDataValidation(Excel attr, Row row, int column) { + if (attr.name().indexOf("注:") >= 0) { + sheet.setColumnWidth(column, 6000); + } else { + // 设置列宽 + sheet.setColumnWidth(column, (int)((attr.width() + 0.72) * 256)); + } + if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0 || attr.comboReadDict()) { + String[] comboArray = attr.combo(); + if (attr.comboReadDict()) { + if (!sysDictMap.containsKey("combo_" + attr.dictType())) { + String labels = DictUtils.getDictLabels(attr.dictType()); + sysDictMap.put("combo_" + attr.dictType(), labels); + } + String val = sysDictMap.get("combo_" + attr.dictType()); + comboArray = StringUtils.split(val, DictUtils.SEPARATOR); + } + if (comboArray.length > 15 || StringUtils.join(comboArray).length() > 255) { + // 如果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到 + setXSSFValidationWithHidden(sheet, comboArray, attr.prompt(), 1, 100, column, column); + } else { + // 提示信息或只能选择不能输入的列内容. + setPromptOrValidation(sheet, comboArray, attr.prompt(), 1, 100, column, column); + } + } + } + + /** + * 添加单元格 + * + * @param attr Excel注解 + * @param row 行对象 + * @param vo 数据对象 + * @param field 字段 + * @param column 列索引 + * @return 单元格对象 + */ + public Cell addCell(Excel attr, Row row, T vo, Field field, int column) { + Cell cell = null; + try { + // 设置行高 + row.setHeight(maxHeight); + // 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列. + if (attr.isExport()) { + // 创建cell + cell = row.createCell(column); + if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) { + CellRangeAddress cellAddress = + new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column); + sheet.addMergedRegion(cellAddress); + } + cell.setCellStyle(styles.get("data")); // 使用 data 样式 + // 用于读取对象中的属性 + Object value = getTargetValue(vo, field, attr); + String dateFormat = attr.dateFormat(); + String readConverterExp = attr.readConverterExp(); + String separator = attr.separator(); + String dictType = attr.dictType(); + if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { + cell.setCellValue(parseDateToStr(dateFormat, value)); + } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) { + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); + } else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) { + if (!sysDictMap.containsKey(dictType + value)) { + String lable = convertDictByExp(Convert.toStr(value), dictType, separator); + sysDictMap.put(dictType + value, lable); + } + cell.setCellValue(sysDictMap.get(dictType + value)); + } else if (value instanceof BigDecimal && -1 != attr.scale()) { + cell.setCellValue((((BigDecimal)value).setScale(attr.scale(), attr.roundingMode())).doubleValue()); + } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) { + cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell)); + } else { + // 设置列类型 + setCellVo(value, attr, cell); + } + addStatisticsData(column, Convert.toStr(value), attr); + } + } catch (Exception e) { + log.error("导出Excel失败{}", e); + } + return cell; + } + + /** + * 设置 POI XSSFSheet 单元格提示或选择框 + * + * @param sheet 表单 + * @param textlist 下拉框显示的内容 + * @param promptContent 提示内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + */ + public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, + int firstCol, int endCol) { + DataValidationHelper helper = sheet.getDataValidationHelper(); + DataValidationConstraint constraint = + textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1"); + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); + } + sheet.addValidationData(dataValidation); + } + + /** + * 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框). + * + * @param sheet 要设置的sheet. + * @param textlist 下拉框显示的内容 + * @param promptContent 提示内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + */ + public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, + int endRow, int firstCol, int endCol) { + String hideSheetName = "combo_" + firstCol + "_" + endCol; + Sheet hideSheet = wb.createSheet(hideSheetName); // 用于存储 下拉菜单数据 + for (int i = 0; i < textlist.length; i++) { + hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]); + } + // 创建名称,可被其他单元格引用 + Name name = wb.createName(); + name.setNameName(hideSheetName + "_data"); + name.setRefersToFormula(hideSheetName + "!$A$1:$A$" + textlist.length); + DataValidationHelper helper = sheet.getDataValidationHelper(); + // 加载下拉列表内容 + DataValidationConstraint constraint = helper.createFormulaListConstraint(hideSheetName + "_data"); + // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + // 数据有效性对象 + DataValidation dataValidation = helper.createValidation(constraint, regions); + if (StringUtils.isNotEmpty(promptContent)) { + // 如果设置了提示信息则鼠标放上去提示 + dataValidation.createPromptBox("", promptContent); + dataValidation.setShowPromptBox(true); + } + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } else { + dataValidation.setSuppressDropDownArrow(false); + } + + sheet.addValidationData(dataValidation); + // 设置hiddenSheet隐藏 + wb.setSheetHidden(wb.getSheetIndex(hideSheet), true); + } + + /** + * 数据处理器 + * + * @param value 数据值 + * @param excel 数据注解 + * @param cell 单元格对象 + * @return 格式化后的数据值 + */ + public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell) { + try { + Object instance = excel.handler().newInstance(); + Method formatMethod = excel.handler().getMethod("format", + new Class[] {Object.class, String[].class, Cell.class, Workbook.class}); + value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb); + } catch (Exception e) { + log.error("不能格式化数据 " + excel.handler(), e.getMessage()); + } + return Convert.toStr(value); + } + + /** + * 合计统计信息 + * + * @param index 列索引 + * @param text 文本值 + * @param entity Excel注解 + */ + private void addStatisticsData(Integer index, String text, Excel entity) { + if (entity != null && entity.isStatistics()) { + Double temp = 0D; + if (!statistics.containsKey(index)) { + statistics.put(index, temp); + } + try { + temp = Double.valueOf(text); + } catch (NumberFormatException e) { + } + statistics.put(index, statistics.get(index) + temp); + } + } + + /** + * 创建统计行 + */ + public void addStatisticsRow() { + if (statistics.size() > 0) { + Row row = sheet.createRow(sheet.getLastRowNum() + 1); + Set keys = statistics.keySet(); + Cell cell = row.createCell(0); + cell.setCellStyle(styles.get("total")); + cell.setCellValue("合计"); + + for (Integer key : keys) { + cell = row.createCell(key); + cell.setCellStyle(styles.get("total")); + cell.setCellValue(DOUBLE_FORMAT.format(statistics.get(key))); + } + statistics.clear(); + } + } + + /** + * 编码文件名 + * + * @param filename 文件名 + * @return 编码后的文件名 + */ + public String encodingFilename(String filename) { + filename = UUID.randomUUID() + "_" + filename + ".xlsx"; + return filename; + } + + /** + * 获取下载路径 + * + * @param filename 文件名称 + * @return 绝对路径 + */ + public String getAbsoluteFile(String filename) { + String downloadPath = CoreConfig.getDownloadPath() + filename; + File desc = new File(downloadPath); + if (!desc.getParentFile().exists()) { + desc.getParentFile().mkdirs(); + } + return downloadPath; + } + + /** + * 获取bean中的属性值 + * + * @param vo 实体对象 + * @param field 字段 + * @param excel 注解 + * @return 最终的属性值 + * @throws Exception + */ + private Object getTargetValue(T vo, Field field, Excel excel) throws Exception { + Object o = field.get(vo); + if (StringUtils.isNotEmpty(excel.targetAttr())) { + String target = excel.targetAttr(); + if (target.contains(".")) { + String[] targets = target.split("[.]"); + for (String name : targets) { + o = getValue(o, name); + } + } else { + o = getValue(o, target); + } + } + return o; + } + + /** + * 以类的属性的get方法方法形式获取值 + * + * @param o 对象 + * @param name 属性名 + * @return value 属性值 + * @throws Exception + */ + private Object getValue(Object o, String name) throws Exception { + if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) { + Class clazz = o.getClass(); + Field field = clazz.getDeclaredField(name); + field.setAccessible(true); + o = field.get(o); + } + return o; + } + + /** + * 得到所有定义字段 + */ + private void createExcelField() { + this.fields = getFields(); + this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel)objects[1]).sort())) + .collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** + * 添加字段信息 + * + * @param fields 字段列表 + * @param field 字段对象 + */ + public void addField(List fields, Field field) { + // 单注解 + if (field.isAnnotationPresent(Excel.class)) { + Excel attr = field.getAnnotation(Excel.class); + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) { + field.setAccessible(true); + fields.add(new Object[] {field, attr}); + } + if (Collection.class.isAssignableFrom(field.getType())) { + subMethod = getSubMethod(field.getName(), clazz); + ParameterizedType pt = (ParameterizedType)field.getGenericType(); + Class subClass = (Class)pt.getActualTypeArguments()[0]; + this.subFields = FieldUtils.getFieldsListWithAnnotation(subClass, Excel.class); + } + } + + // 多注解 + if (field.isAnnotationPresent(Excels.class)) { + Excels attrs = field.getAnnotation(Excels.class); + Excel[] excels = attrs.value(); + for (Excel attr : excels) { + if (StringUtils.isNotEmpty(includeFields)) { + if (ArrayUtils.contains(this.includeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { + field.setAccessible(true); + fields.add(new Object[] {field, attr}); + } + } else { + if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr()) + && (attr != null && (attr.type() == Type.ALL || attr.type() == type))) { + field.setAccessible(true); + fields.add(new Object[] {field, attr}); + } + } + } + } + } + + /** + * 根据注解获取最大行高 + * + * @return 行高 + */ + public short getRowHeight() { + double maxHeight = 0; + for (Object[] os : this.fields) { + Excel excel = (Excel)os[1]; + maxHeight = Math.max(maxHeight, excel.height()); + } + return (short)(maxHeight * 20); + } + + /** + * 创建一个工作簿 + */ + public void createWorkbook() { + this.wb = new SXSSFWorkbook(500); + this.sheet = wb.createSheet(); + wb.setSheetName(0, sheetName); + this.styles = createStyles(wb); + } + + /** + * 创建工作表 + * + * @param sheetNo sheet数量 + * @param index 序号 + */ + public void createSheet(int sheetNo, int index) { + // 设置工作表的名称. + if (sheetNo > 1 && index > 0) { + this.sheet = wb.createSheet(); + this.createTitle(); + wb.setSheetName(index, sheetName + index); + } + } + + /** + * 获取单元格值 + * + * @param row 获取的行 + * @param column 获取单元格列号 + * @return 单元格值 + */ + public Object getCellValue(Row row, int column) { + if (row == null) { + return row; + } + Object val = ""; + try { + Cell cell = row.getCell(column); + if (StringUtils.isNotNull(cell)) { + if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { + val = cell.getNumericCellValue(); + if (DateUtil.isCellDateFormatted(cell)) { + val = DateUtil.getJavaDate((Double)val); // POI Excel 日期格式转换 + } else { + if ((Double)val % 1 != 0) { + val = new BigDecimal(val.toString()); + } else { + val = new DecimalFormat("0").format(val); + } + } + } else if (cell.getCellType() == CellType.STRING) { + val = cell.getStringCellValue(); + } else if (cell.getCellType() == CellType.BOOLEAN) { + val = cell.getBooleanCellValue(); + } else if (cell.getCellType() == CellType.ERROR) { + val = cell.getErrorCellValue(); + } + + } + } catch (Exception e) { + return val; + } + return val; + } + + /** + * 判断是否是空行 + * + * @param row 判断的行 + * @return 是否为空行 + */ + private boolean isRowEmpty(Row row) { + if (row == null) { + return true; + } + for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) { + Cell cell = row.getCell(i); + if (cell != null && cell.getCellType() != CellType.BLANK) { + return false; + } + } + return true; + } + + /** + * 格式化不同类型的日期对象 + * + * @param dateFormat 日期格式 + * @param val 被格式化的日期对象 + * @return 格式化后的日期字符 + */ + public String parseDateToStr(String dateFormat, Object val) { + if (val == null) { + return ""; + } + String str; + if (val instanceof Date) { + str = DateUtils.parseDateToStr(dateFormat, (Date)val); + } else if (val instanceof LocalDateTime) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime)val)); + } else if (val instanceof LocalDate) { + str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate)val)); + } else { + str = val.toString(); + } + return str; + } + + /** + * 是否有对象的子列表 + * + * @return 是否有子列表 + */ + public boolean isSubList() { + return StringUtils.isNotNull(subFields) && subFields.size() > 0; + } + + /** + * 是否有对象的子列表,集合不为空 + * + * @param vo 数据对象 + * @return 是否有子列表值 + */ + public boolean isSubListValue(T vo) { + return StringUtils.isNotNull(subFields) && subFields.size() > 0 && StringUtils.isNotNull(getListCellValue(vo)) + && getListCellValue(vo).size() > 0; + } + + /** + * 获取集合的值 + * + * @param obj 对象 + * @return 集合值 + */ + public Collection getListCellValue(Object obj) { + Object value; + try { + value = subMethod.invoke(obj, new Object[] {}); + } catch (Exception e) { + return new ArrayList(); + } + return (Collection)value; + } + + /** + * 获取对象的子列表方法 + * + * @param name 名称 + * @param pojoClass 类对象 + * @return 子列表方法 + */ + public Method getSubMethod(String name, Class pojoClass) { + StringBuffer getMethodName = new StringBuffer("get"); + getMethodName.append(name.substring(0, 1).toUpperCase()); + getMethodName.append(name.substring(1)); + Method method = null; + try { + method = pojoClass.getMethod(getMethodName.toString(), new Class[] {}); + } catch (Exception e) { + log.error("获取对象异常{}", e.getMessage()); + } + return method; + } + + /** + * 额外字段列表 + */ + private List extraFields; + + /** + * 需要隐藏的额外表头字段 + */ + private String[] hiddenExtraFields; + + /** + * 隐藏额外表头字段 + * + * @param fields 额外表头字段名 + */ + public void hideExtraColumn(String... fields) { + this.hiddenExtraFields = fields; + } + + /** + * 检查额外字段是否需要隐藏 + * + * @param fieldName 字段名 + * @return 是否需要隐藏 + */ + private boolean isExtraFieldHidden(String fieldName) { + return hiddenExtraFields != null && ArrayUtils.contains(hiddenExtraFields, fieldName); + } + + /** + * 初始化额外字段 + */ + private void createExcelExtraField() { + this.extraFields = getExtraFields(); + this.extraFields = this.extraFields.stream() + .sorted(Comparator.comparing(objects -> ((ExcelExtra)objects[1]).sort())).collect(Collectors.toList()); + } + + /** + * 获取额外字段注解信息(过滤隐藏字段) + * + * @return 额外字段列表 + */ + public List getExtraFields() { + List extraFields = new ArrayList<>(); + List tempFields = new ArrayList<>(); + tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); + + for (Field field : tempFields) { + if (field.isAnnotationPresent(ExcelExtra.class)) { + ExcelExtra attr = field.getAnnotation(ExcelExtra.class); + // 检查字段是否需要隐藏 + if (attr != null && attr.isExport() && !isExtraFieldHidden(field.getName())) { + field.setAccessible(true); + extraFields.add(new Object[] {field, attr}); + } + } + } + return extraFields; + } + + /** + * 创建额外表头信息 每个表头占三个单元格:标签单元格,值单元格合并居中显示 + * + * @param entity 实体对象 + */ + public void createExtraHeader(T entity) { + if (entity == null || extraFields == null || extraFields.isEmpty()) { + return; + } + + try { + int currentRowNum = rownum; + + for (Object[] os : extraFields) { + Field field = (Field)os[0]; + ExcelExtra attr = (ExcelExtra)os[1]; + + // 检查字段是否需要隐藏 + if (isExtraFieldHidden(field.getName())) { + continue; + } + + Row row = sheet.createRow(currentRowNum++); + + // 创建标签单元格(第0列) + Cell labelCell = row.createCell(0); + labelCell.setCellValue(attr.name()); + labelCell.setCellStyle(styles.get("extraLabel")); + + // 创建值单元格(第1列) + Cell valueCell = row.createCell(1); + Object value = field.get(entity); + String cellValue = formatExtraCellValue(value, attr); + valueCell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue); + valueCell.setCellStyle(styles.get("extraValue")); + + // 创建合并区域(第1列到第2列) + CellRangeAddress mergedRegion = new CellRangeAddress(row.getRowNum(), row.getRowNum(), 1, 2); + sheet.addMergedRegion(mergedRegion); + + // 手动设置合并区域的边框,确保完整显示 + RegionUtil.setBorderTop(BorderStyle.THIN, mergedRegion, sheet); + RegionUtil.setBorderBottom(BorderStyle.THIN, mergedRegion, sheet); + RegionUtil.setBorderLeft(BorderStyle.THIN, mergedRegion, sheet); + RegionUtil.setBorderRight(BorderStyle.THIN, mergedRegion, sheet); + RegionUtil.setTopBorderColor(IndexedColors.BLACK.getIndex(), mergedRegion, sheet); + RegionUtil.setBottomBorderColor(IndexedColors.BLACK.getIndex(), mergedRegion, sheet); + RegionUtil.setLeftBorderColor(IndexedColors.BLACK.getIndex(), mergedRegion, sheet); + RegionUtil.setRightBorderColor(IndexedColors.BLACK.getIndex(), mergedRegion, sheet); + } + + // 设置列宽 + sheet.setColumnWidth(0, 15 * 256); // 标签列宽 + sheet.setColumnWidth(1, 20 * 256); // 值列宽 + sheet.setColumnWidth(2, 20 * 256); // 值列宽 + + // 更新当前行号,在额外表头和数据表头之间空一行 + rownum = currentRowNum + 1; + subMergedFirstRowNum = rownum; + subMergedLastRowNum = rownum; + + } catch (Exception e) { + log.error("创建额外表头失败: {}", e.getMessage()); + } + } + + /** + * 格式化额外表头单元格值 + * + * @param value 值 + * @param attr 额外注解 + * @return 格式化后的值 + */ + private String formatExtraCellValue(Object value, ExcelExtra attr) { + if (value == null) { + return ""; + } + + if (StringUtils.isNotEmpty(attr.dateFormat())) { + return parseDateToStr(attr.dateFormat(), value); + } + + return Convert.toStr(value); + } + + /** + * 重写 init 方法,初始化额外字段 + * + * @param list 数据列表 + * @param sheetName 工作表名称 + * @param title 标题 + * @param type 类型 + */ + public void init(List list, String sheetName, String title, Type type) { + if (list == null) { + list = new ArrayList(); + } + this.list = list; + this.sheetName = sheetName; + this.type = type; + this.title = title; + createExcelField(); + createExcelExtraField(); // 初始化额外字段 + createWorkbook(); + createTitle(); + createSubHead(); + } + + /** + * 创建表格样式 + * + * @param wb 工作簿 + * @return 样式映射 + */ + private Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + // 标题样式(合并居中,加粗,浅灰色背景) + CellStyle titleStyle = wb.createCellStyle(); + titleStyle.setAlignment(HorizontalAlignment.CENTER); + titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short)16); + titleFont.setBold(true); + titleStyle.setFont(titleFont); + titleStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + titleStyle.setBorderBottom(BorderStyle.THIN); + titleStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + styles.put("title", titleStyle); + + // 表头样式(浅灰色背景,加粗,居中,细边框) + CellStyle headerStyle = wb.createCellStyle(); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + headerStyle.setBorderTop(BorderStyle.THIN); + headerStyle.setBorderBottom(BorderStyle.THIN); + headerStyle.setBorderLeft(BorderStyle.THIN); + headerStyle.setBorderRight(BorderStyle.THIN); + + headerStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); + headerStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + headerStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + headerStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); + + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short)11); + headerFont.setBold(true); + headerStyle.setFont(headerFont); + styles.put("header", headerStyle); + + // 数据行样式(居中,细边框) + CellStyle dataStyle = wb.createCellStyle(); + dataStyle.setAlignment(HorizontalAlignment.CENTER); + dataStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + dataStyle.setBorderTop(BorderStyle.THIN); + dataStyle.setBorderBottom(BorderStyle.THIN); + dataStyle.setBorderLeft(BorderStyle.THIN); + dataStyle.setBorderRight(BorderStyle.THIN); + + dataStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); + dataStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + dataStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + dataStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); + + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short)10); + dataStyle.setFont(dataFont); + styles.put("data", dataStyle); + + // 额外表头标签样式(浅灰色背景,加粗,居中,细边框) + CellStyle extraLabelStyle = wb.createCellStyle(); + extraLabelStyle.setAlignment(HorizontalAlignment.CENTER); + extraLabelStyle.setVerticalAlignment(VerticalAlignment.CENTER); + extraLabelStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + extraLabelStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + extraLabelStyle.setBorderTop(BorderStyle.THIN); + extraLabelStyle.setBorderBottom(BorderStyle.THIN); + extraLabelStyle.setBorderLeft(BorderStyle.THIN); + extraLabelStyle.setBorderRight(BorderStyle.THIN); + extraLabelStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); + extraLabelStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + extraLabelStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + extraLabelStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); + + Font extraLabelFont = wb.createFont(); + extraLabelFont.setFontName("Arial"); + extraLabelFont.setFontHeightInPoints((short)10); + extraLabelFont.setBold(true); + extraLabelStyle.setFont(extraLabelFont); + styles.put("extraLabel", extraLabelStyle); + + // 额外表头值样式(居中,细边框) + CellStyle extraValueStyle = wb.createCellStyle(); + extraValueStyle.setAlignment(HorizontalAlignment.CENTER); + extraValueStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + extraValueStyle.setBorderTop(BorderStyle.THIN); + extraValueStyle.setBorderBottom(BorderStyle.THIN); + extraValueStyle.setBorderLeft(BorderStyle.THIN); + extraValueStyle.setBorderRight(BorderStyle.THIN); + extraValueStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); + extraValueStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + extraValueStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + extraValueStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); + + Font extraValueFont = wb.createFont(); + extraValueFont.setFontName("Arial"); + extraValueFont.setFontHeightInPoints((short)10); + extraValueStyle.setFont(extraValueFont); + styles.put("extraValue", extraValueStyle); + + // 统计行样式(居中,细边框) + CellStyle totalStyle = wb.createCellStyle(); + totalStyle.setAlignment(HorizontalAlignment.CENTER); + totalStyle.setVerticalAlignment(VerticalAlignment.CENTER); + + totalStyle.setBorderTop(BorderStyle.THIN); + totalStyle.setBorderBottom(BorderStyle.THIN); + totalStyle.setBorderLeft(BorderStyle.THIN); + totalStyle.setBorderRight(BorderStyle.THIN); + totalStyle.setTopBorderColor(IndexedColors.BLACK.getIndex()); + totalStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + totalStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + totalStyle.setRightBorderColor(IndexedColors.BLACK.getIndex()); + + Font totalFont = wb.createFont(); + totalFont.setFontName("Arial"); + totalFont.setFontHeightInPoints((short)10); + totalFont.setBold(true); + totalStyle.setFont(totalFont); + styles.put("total", totalStyle); + + // 合并注解样式(可选) + styles.putAll(annotationHeaderStyles(wb, styles)); + styles.putAll(annotationDataStyles(wb)); + + return styles; + } + + /** + * 创建工作表 + */ + public void writeSheet() { + // 取出一共有多少个sheet. + int sheetNo = Math.max(1, (int)Math.ceil(list.size() * 1.0 / sheetSize)); + for (int index = 0; index < sheetNo; index++) { + createSheet(sheetNo, index); + + // 创建标题 + createTitle(); + + // 创建额外表头(如果有数据的话使用第一条数据的额外信息) + if (list != null && !list.isEmpty()) { + createExtraHeader(list.get(0)); + } + + // 产生一行 + Row row = sheet.createRow(rownum); + int column = 0; + + // 严格按照排序后的字段列表创建表头 + for (Object[] os : fields) { + Field field = (Field)os[0]; + Excel excel = (Excel)os[1]; + if (Collection.class.isAssignableFrom(field.getType())) { + // 对于子列表字段,也要按照子字段的排序创建表头 + if (subFields != null) { + List sortedSubFields = + subFields.stream().filter(subField -> subField.isAnnotationPresent(Excel.class)) + .sorted(Comparator.comparing(subField -> { + Excel subExcel = subField.getAnnotation(Excel.class); + return subExcel.sort(); + })).collect(Collectors.toList()); + + for (Field subField : sortedSubFields) { + Excel subExcel = subField.getAnnotation(Excel.class); + this.createHeadCell(subExcel, row, column++); + } + } + } else { + this.createHeadCell(excel, row, column++); + } + } + + if (Type.EXPORT.equals(type)) { + fillExcelData(index, row); + addStatisticsRow(); + } + } + } + + /** + * 获取字段注解信息 - 确保排序正确 + * + * @return 字段列表 + */ + public List getFields() { + List fields = new ArrayList(); + List tempFields = new ArrayList<>(); + tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); + + if (StringUtils.isNotEmpty(includeFields)) { + for (Field field : tempFields) { + if (ArrayUtils.contains(this.includeFields, field.getName()) + || field.isAnnotationPresent(Excels.class)) { + addField(fields, field); + } + } + } else if (StringUtils.isNotEmpty(excludeFields)) { + for (Field field : tempFields) { + if (!ArrayUtils.contains(this.excludeFields, field.getName())) { + addField(fields, field); + } + } + } else { + for (Field field : tempFields) { + addField(fields, field); + } + } + + // 严格按照sort排序,确保needMerge=true的字段也能正确排序 + return fields.stream().sorted(Comparator.comparing(objects -> { + Excel excel = (Excel)objects[1]; + return excel.sort(); + })).collect(Collectors.toList()); + } + + /** + * 填充excel数据 - 优化合并单元格的数据填充顺序 + * + * @param index 索引 + * @param row 行对象 + */ + @SuppressWarnings("unchecked") + public void fillExcelData(int index, Row row) { + int startNo = index * sheetSize; + int endNo = Math.min(startNo + sheetSize, list.size()); + int rowNo = (1 + rownum) - startNo; + + for (int i = startNo; i < endNo; i++) { + rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; + row = sheet.createRow(rowNo); + // 得到导出对象. + T vo = (T)list.get(i); + Collection subList = null; + if (isSubList()) { + if (isSubListValue(vo)) { + subList = getListCellValue(vo); + subMergedLastRowNum = subMergedLastRowNum + subList.size(); + } else { + subMergedFirstRowNum++; + subMergedLastRowNum++; + } + } + + int column = 0; + // 严格按照排序后的字段顺序填充数据 + for (Object[] os : fields) { + Field field = (Field)os[0]; + Excel excel = (Excel)os[1]; + if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) { + boolean subFirst = false; + for (Object obj : subList) { + if (subFirst) { + rowNo++; + row = sheet.createRow(rowNo); + } + // 子字段也要排序 + List subFields = FieldUtils.getFieldsListWithAnnotation(obj.getClass(), Excel.class); + List sortedSubFields = subFields.stream().sorted(Comparator.comparing(subField -> { + Excel subExcel = subField.getAnnotation(Excel.class); + return subExcel.sort(); + })).collect(Collectors.toList()); + + int subIndex = 0; + for (Field subField : sortedSubFields) { + if (subField.isAnnotationPresent(Excel.class)) { + subField.setAccessible(true); + Excel attr = subField.getAnnotation(Excel.class); + this.addCell(attr, row, (T)obj, subField, column + subIndex); + } + subIndex++; + } + subFirst = true; + } + this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size(); + } else { + this.addCell(excel, row, vo, field, column++); + } + } + } + } +} \ No newline at end of file diff --git a/openhis-server-new/core-flowable/pom.xml b/openhis-server-new/core-flowable/pom.xml index a96ef821e05671727278eaf603f8368803605591..2c04776950aeb6b29355ab16a1b6c80d855fb9ac 100644 --- a/openhis-server-new/core-flowable/pom.xml +++ b/openhis-server-new/core-flowable/pom.xml @@ -80,6 +80,7 @@ com.googlecode.aviator aviator + 5.3.3 diff --git a/openhis-server-new/core-framework/src/main/java/com/core/framework/config/MybatisPlusConfig.java b/openhis-server-new/core-framework/src/main/java/com/core/framework/config/MybatisPlusConfig.java index 1c1d5661c3c9e82fe29aba9a9066e0e4a4f25f49..c745a6769209185055163d615593f4f51b802fdb 100644 --- a/openhis-server-new/core-framework/src/main/java/com/core/framework/config/MybatisPlusConfig.java +++ b/openhis-server-new/core-framework/src/main/java/com/core/framework/config/MybatisPlusConfig.java @@ -99,7 +99,7 @@ public class MybatisPlusConfig { "med_medication_definition", "med_medication_dispense", "med_medication_request", "wor_activity_definition", "wor_device_dispense", "wor_device_request", "wor_inventory_item", "wor_service_request", "wor_service_request_detail", "wor_supply_delivery", "wor_supply_request", - "sys_operation_record")); + "sys_operation_record","doc_inventory_item_static")); @Override public boolean ignoreTable(String tableName) { diff --git a/openhis-server-new/core-framework/src/main/java/com/core/framework/config/SecurityConfig.java b/openhis-server-new/core-framework/src/main/java/com/core/framework/config/SecurityConfig.java index e6bf5241f900f1e10c96bca84c1f5270f77b1410..5154bbd20184efaa834cc3713dd7fb4a4e8c5044 100644 --- a/openhis-server-new/core-framework/src/main/java/com/core/framework/config/SecurityConfig.java +++ b/openhis-server-new/core-framework/src/main/java/com/core/framework/config/SecurityConfig.java @@ -1,9 +1,5 @@ package com.core.framework.config; -import com.core.framework.config.properties.PermitAllUrlProperties; -import com.core.framework.security.filter.JwtAuthenticationTokenFilter; -import com.core.framework.security.handle.AuthenticationEntryPointImpl; -import com.core.framework.security.handle.LogoutSuccessHandlerImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -11,7 +7,7 @@ import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.ProviderManager; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; @@ -21,12 +17,17 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic import org.springframework.security.web.authentication.logout.LogoutFilter; import org.springframework.web.filter.CorsFilter; +import com.core.framework.config.properties.PermitAllUrlProperties; +import com.core.framework.security.filter.JwtAuthenticationTokenFilter; +import com.core.framework.security.handle.AuthenticationEntryPointImpl; +import com.core.framework.security.handle.LogoutSuccessHandlerImpl; + /** * spring security配置 - * + * * @author system */ -@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) +@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true) @Configuration public class SecurityConfig { /** @@ -85,38 +86,38 @@ public class SecurityConfig { @Bean protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { return httpSecurity - // CSRF禁用,因为不使用session - .csrf(csrf -> csrf.disable()) - // 禁用HTTP响应标头 - .headers((headersCustomizer) -> { - headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.sameOrigin()); - }) - // 认证失败处理类 - .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler)) - // 基于token,所以不需要session - .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - // 注解标记允许匿名访问的url - .authorizeHttpRequests((requests) -> { - permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); - // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/login", "/register", "/captchaImage").permitAll() - // 静态资源,可匿名访问 - .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**") - .permitAll() - .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**") - .permitAll() - .antMatchers("/patientmanage/information/**") - .permitAll() - // 除上面外的所有请求全部需要鉴权认证 - .anyRequest().authenticated(); - }) - // 添加Logout filter - .logout(logout -> logout.logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler)) - // 添加JWT filter - .addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class) - // 添加CORS filter - .addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class) - .addFilterBefore(corsFilter, LogoutFilter.class).build(); + // CSRF禁用,因为不使用session + .csrf(csrf -> csrf.disable()) + // 禁用HTTP响应标头 + .headers((headersCustomizer) -> { + headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.sameOrigin()); + }) + // 认证失败处理类 + .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler)) + // 基于token,所以不需要session + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + // 注解标记允许匿名访问的url + .authorizeHttpRequests((requests) -> { + permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); + // 对于登录login 注册register 验证码captchaImage 允许匿名访问 + requests.antMatchers("/login", "/register", "/captchaImage").permitAll() + // 静态资源,可匿名访问 + .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**") + .permitAll() + .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**") + .permitAll() + .antMatchers("/patientmanage/information/**") + .permitAll() + // 除上面外的所有请求全部需要鉴权认证 + .anyRequest().authenticated(); + }) + // 添加Logout filter + .logout(logout -> logout.logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler)) + // 添加JWT filter + .addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class) + // 添加CORS filter + .addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class) + .addFilterBefore(corsFilter, LogoutFilter.class).build(); } /** diff --git a/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java b/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java index e217d679cc541dd304ae2e9352674cbff8a409e9..cc3127c97b9875aa89c9fbc91e6e357ac4547760 100644 --- a/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java +++ b/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/SysLoginService.java @@ -6,6 +6,7 @@ import java.util.Optional; import javax.annotation.Resource; +import com.core.common.enums.DelFlag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; @@ -23,7 +24,6 @@ import com.core.common.core.domain.entity.SysUser; import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUserExtend; import com.core.common.core.redis.RedisCache; -import com.core.common.enums.DeleteFlag; import com.core.common.enums.TenantStatus; import com.core.common.exception.ServiceException; import com.core.common.exception.user.*; @@ -281,7 +281,7 @@ public class SysLoginService { throw new ServiceException("所属医院停用"); } // 租户删除状态校验 - if (DeleteFlag.DELETED.getCode().equals(currentTenant.getDeleteFlag())) { + if (DelFlag.YES.getCode().equals(currentTenant.getDeleteFlag())) { throw new ServiceException("所属医院不存在"); } diff --git a/openhis-server-new/core-generator/src/main/java/com/core/generator/util/GenUtils.java b/openhis-server-new/core-generator/src/main/java/com/core/generator/util/GenUtils.java index 08179835c67e9bd71c8904cb37884b51588171da..82319b3adb9a2ade830d34c00fdff58902f00f45 100644 --- a/openhis-server-new/core-generator/src/main/java/com/core/generator/util/GenUtils.java +++ b/openhis-server-new/core-generator/src/main/java/com/core/generator/util/GenUtils.java @@ -52,6 +52,9 @@ public class GenUtils { case "yb": genTable.setPackageName(GenConfig.getPackageName() + ".ybcatalog"); break; + case "lab": + genTable.setPackageName(GenConfig.getPackageName() + ".lab"); + break; default: genTable.setPackageName(GenConfig.getPackageName() + ".errortable"); } diff --git a/openhis-server-new/core-generator/src/main/resources/generator.yml b/openhis-server-new/core-generator/src/main/resources/generator.yml index a353d51e0f6316129e8653f74fab34c758495f78..5ca5c560c29a017519f0a009c7bce104f318c809 100644 --- a/openhis-server-new/core-generator/src/main/resources/generator.yml +++ b/openhis-server-new/core-generator/src/main/resources/generator.yml @@ -7,4 +7,4 @@ gen: # 自动去除表前缀,默认是false autoRemovePre: true # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) - tablePrefix: cod_,adm_,cli_,dia_,med_,wor_,fin_,def_,doc_,yb_ \ No newline at end of file + tablePrefix: cod_,adm_,cli_,dia_,med_,wor_,fin_,def_,doc_,yb_,lab_ \ No newline at end of file diff --git a/openhis-server-new/core-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/openhis-server-new/core-generator/src/main/resources/mapper/generator/GenTableMapper.xml index d20d21124d347030578fd306248a9d126c888944..486765fbf33f8e64f25466b0cb8e87e5eacfa6dd 100644 --- a/openhis-server-new/core-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/openhis-server-new/core-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -99,14 +99,15 @@ + SELECT ii.item_name , + ii.item_no , + ii.item_id , + ii.py_str , + ii.wb_str , + ii.unit_code , + ii.min_unit_code , + ii.part_percent, + ii.category_code, + ii.manufacturer_text, + ii.total_volume + FROM ( SELECT mmd.tenant_id , + mmd."name" AS item_name , + mmd.id AS item_id , + mmd.bus_no AS item_no, + mmd.py_str , + mmd.wb_str , + mmd.unit_code , + mmd.min_unit_code , + mmd.part_percent, + mmd.category_code, + mmd.manufacturer_text, + mm.total_volume + FROM med_medication_definition mmd + LEFT JOIN med_medication mm + ON mmd.id = mm.medication_def_id + AND mm.delete_flag = '0' + WHERE mmd.delete_flag = '0' + ) AS ii + ${ew.customSqlSegment} + ORDER BY ii.py_str + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml index 10f0043ebf0a252ca1801a033c3bd38715aaf0fe..29e2ccbd0a958ada4788857f7b82188775bf5307 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/LossReportFormMapper.xml @@ -4,20 +4,20 @@ + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductDetailAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductDetailAppMapper.xml index 18aedec2866ae21a37d11b812762e3bddee413fe..c76a1ae0571bc92098f50979ef2f31ad9d332919 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductDetailAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductDetailAppMapper.xml @@ -28,6 +28,7 @@ ii.min_unit_code, ii.part_percent, ii.approval_number, + ii.item_id, ii.dose_form_code, ii.total_volume, ii.sale_price, @@ -61,6 +62,7 @@ mmd.min_unit_code, mmd.part_percent, mmd.approval_number, + mmd.id AS item_id, mm.dose_form_code, mm.total_volume, acid.price AS sale_price, @@ -121,6 +123,7 @@ add2.min_unit_code, add2.part_percent, add2.approval_number, + add2.id AS item_id, NULL AS dose_form_code, add2.size AS total_volume, acid.price AS sale_price, @@ -157,9 +160,10 @@ ORDER BY ii.py_str - + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml index 9a00915e8f6f25151c33063820c79b08a4c8a035..90aa26d0ad859bb2279b82cdf38a90dd19463344 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml @@ -5,19 +5,19 @@ SELECT T6.tenant_id, - T6.id AS item_Id, --Id - T6.bus_no AS item_bus_no, --编码 - T6.item_type, --药品类型 - T6.medication_type, -- 药品类型 - T6.item_name, --名称 - T6.total_volume, --规格 - T6.lot_number, --产品批号 - T6.yb_no, --医保编码 - T6.measurement_unit_code, -- 计量单位 - T6.unit_code, --药品单位(包装单位)(大单位) - T6.min_unit_code, --最小单位(小单位) - T6.part_percent, --拆零比 - T6.stocktaking_unit_code, --常规单位(小单位) - T6.quantity AS total_quantity, --当前库存数量(常规单位)(小单位) - T6.price, --采购单价(大单位) - T6.manufacturer_text, --生产厂商文本 - T6.location_id AS purpose_location_id, --仓库 - T6.location_store_id AS purpose_location_store_id, --库位 - T6.supplier_id, -- 供应商id - T6.supplier_name, -- 供应商名称 - T6.start_time, -- 生产日期 - T6.end_time, -- 有效期 - T6.form_enum AS purpose_type_enum --仓库类型 + T6.id AS item_Id, -- Id + T6.bus_no AS item_bus_no, -- 编码 + T6.item_type, -- 药品类型 + T6.medication_type, -- 药品类型 + T6.item_name, -- 名称 + T6.total_volume, -- 规格 + T6.lot_number, -- 产品批号 + T6.yb_no, -- 医保编码 + T6.measurement_unit_code, -- 计量单位 + T6.unit_code, -- 药品单位(包装单位)(大单位) + T6.min_unit_code, -- 最小单位(小单位) + T6.part_percent, -- 拆零比 + T6.stocktaking_unit_code, -- 常规单位(小单位) + T6.quantity AS total_quantity, -- 当前库存数量(常规单位)(小单位) + T6.price, -- 采购单价(大单位) + T6.manufacturer_text, -- 生产厂商文本 + T6.location_id AS purpose_location_id, -- 仓库 + T6.location_store_id AS purpose_location_store_id, -- 库位 + T6.supplier_id, -- 供应商id + T6.supplier_name, -- 供应商名称 + T6.start_time, -- 生产日期 + T6.end_time, -- 有效期 + T6.form_enum AS purpose_type_enum -- 仓库类型 FROM (SELECT T1.tenant_id, T2.id, T2.bus_no, @@ -214,8 +215,8 @@ T2.manufacturer_text, T1.location_id, T1.location_store_id, - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 T1.production_date AS start_time, T1.expiration_date AS end_time, T5.form_enum @@ -238,7 +239,7 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T1.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 WHERE T1.delete_flag = '0' AND T1.inventory_status_enum = #{inventoryStatusEnum} AND T1.location_id = #{sourceLocationId} @@ -263,8 +264,8 @@ T4.manufacturer_text, T1.location_id, T1.location_store_id, - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 T1.production_date AS start_time, T1.expiration_date AS end_time, T5.form_enum @@ -284,7 +285,7 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T1.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 WHERE T1.delete_flag = '0' AND T1.inventory_status_enum = #{inventoryStatusEnum} AND T1.location_id = #{sourceLocationId} @@ -295,20 +296,20 @@ + + + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml index 20d2483807a48f39ee7fa08d6111ef824938889d..81ae99021966c57c1e908a6a94faa7391e339105 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductTransferMapper.xml @@ -55,11 +55,12 @@ + + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml index a7609190f58b64b3da4195933ccf8ec22b9b7c10..e023bc6ec26f5ebb09bde1401e0845b9f634ceab 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/PurchaseReturnMapper.xml @@ -8,94 +8,95 @@ WHEN T1.type_enum = #{purchaseReturn} THEN T1.item_quantity ELSE 0 - END AS item_quantity, --退库数量 + END AS item_quantity, -- 退库数量 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT COALESCE(SUM(T9.item_quantity), 0) - FROM wor_supply_request AS T9 - WHERE T9.original_bus_no = T1.original_bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - AND T9.status_enum = #{agree} - ) - ELSE ( - SELECT COALESCE(SUM(T9.item_quantity), 0) - FROM wor_supply_request AS T9 - WHERE T9.original_bus_no = T1.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - AND T9.status_enum = #{agree} - ) - END AS returned_quantity, --已退数量 + THEN (SELECT COALESCE(SUM(T9.item_quantity), 0) + FROM wor_supply_request AS T9 + WHERE T9.original_bus_no = T1.original_bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0' + AND T9.status_enum = #{agree}) + ELSE (SELECT COALESCE(SUM(T9.item_quantity), 0) + FROM wor_supply_request AS T9 + WHERE T9.original_bus_no = T1.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0' + AND T9.status_enum = #{agree}) + END AS returned_quantity, -- 已退数量 CASE WHEN T1.type_enum = #{purchaseReturn} THEN T1.id ELSE NULL - END AS id, --采购退货id + END AS id, -- 采购退货id CASE WHEN T1.type_enum = #{purchaseReturn} THEN NULL ELSE T1.id - END AS purchase_id, --采购入库id - T2.quantity AS quantity, --库存数量 + END AS purchase_id, -- 采购入库id + T2.quantity AS quantity, -- 库存数量 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT T9.item_quantity - FROM wor_supply_request AS T9 - WHERE T1.original_bus_no = T9.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - ) + THEN (SELECT T9.item_quantity + FROM wor_supply_request AS T9 + WHERE T1.original_bus_no = T9.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0') ELSE T3.quantity - END AS purchase_quantity, --采购数量 - T11.amount AS price, --采购单价 + END AS purchase_quantity, -- 采购数量 + T11.amount AS price, -- 采购单价 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT T9.unit_code - FROM wor_supply_request AS T9 - WHERE T1.original_bus_no = T9.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - ) + THEN (SELECT T9.unit_code + FROM wor_supply_request AS T9 + WHERE T1.original_bus_no = T9.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0') ELSE T1.unit_code - END AS purchase_unit_code, --采购单位 - T1.unit_code AS measurement_unit_code, -- 物品计量单位 - T4.unit_code, -- 包装单位 - T4.min_unit_code, -- 最小单位 - T5."name" AS purpose_location_name, --仓库 - T6."name" AS purpose_location_store_name, --货位 - T4."name" AS item_name, --药品 - T1.lot_number, --批次号 - T1.reason, --退货原因 - T1.remake, --备注 - T1.item_id, --物品编码 - T1.purpose_location_id, --目的仓库ID - T1.purpose_location_store_id, --目的货位ID - T1.purpose_type_enum, -- 目的仓库类型 - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 - T8.total_volume, -- 规格 - T4.manufacturer_text AS manufacturer, -- 生产厂商 + END AS purchase_unit_code, -- 采购单位 + T1.unit_code AS measurement_unit_code, -- 物品计量单位 + T4.unit_code, -- 包装单位 + T4.min_unit_code, -- 最小单位 + T5."name" AS purpose_location_name, -- 仓库 + T6."name" AS purpose_location_store_name, -- 货位 + T4."name" AS item_name, -- 药品 + T1.lot_number, -- 批次号 + T1.reason, -- 退货原因 + T1.remake, -- 备注 + T1.item_id, -- 物品编码 + T1.purpose_location_id, -- 目的仓库ID + T1.purpose_location_store_id, -- 目的货位ID + T1.purpose_type_enum, -- 目的仓库类型 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 + T8.total_volume, -- 规格 + T4.manufacturer_text , -- 生产厂商 #{medicine} AS item_type, - T1.start_time, -- 开始时间 - T1.end_time, -- 结束时间 - T1.invoice_no, -- 发票号 - T1.trace_no, -- 追溯码 - T2.packaging_levels, -- 追溯码包装层级 + T1.start_time, -- 开始时间 + T1.end_time, -- 结束时间 + T1.invoice_no, -- 发票号 + T1.trace_no, -- 追溯码 + T2.packaging_levels, -- 追溯码包装层级 CASE WHEN T1.type_enum = #{purchaseReturn} THEN T1.practitioner_id ELSE NULL - END AS practitioner_id, --经手人 + END AS practitioner_id, -- 经手人 T1.occurrence_time, - T4.part_percent --拆零比 + T4.part_percent, -- 拆零比 + CASE + WHEN T1.type_enum = #{purchaseReturn} + THEN (SELECT name + FROM adm_practitioner ap + WHERE ap.delete_flag = '0' + AND ap.tenant_id = 1 + AND ap.id = T1.practitioner_id) + ELSE NULL + END AS practitioner_name -- 经手人姓名 FROM wor_supply_request T1 LEFT JOIN wor_inventory_item T2 ON T1.item_id = T2.item_id @@ -127,7 +128,8 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T2.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 + WHERE T1.bus_no = #{busNo} AND T1.item_table = #{medicationTableName} AND T1.delete_flag = '0' @@ -138,94 +140,95 @@ WHEN T1.type_enum = #{purchaseReturn} THEN T1.item_quantity ELSE NULL - END AS item_quantity, --退库数量 + END AS item_quantity, -- 退库数量 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT COALESCE(SUM(T9.item_quantity), 0) - FROM wor_supply_request AS T9 - WHERE T9.original_bus_no = T1.original_bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - AND T9.status_enum = #{agree} - ) - ELSE ( - SELECT COALESCE(SUM(T9.item_quantity), 0) - FROM wor_supply_request AS T9 - WHERE T9.original_bus_no = T1.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - AND T9.status_enum = #{agree} - ) - END AS returned_quantity, --已退数量 + THEN (SELECT COALESCE(SUM(T9.item_quantity), 0) + FROM wor_supply_request AS T9 + WHERE T9.original_bus_no = T1.original_bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0' + AND T9.status_enum = #{agree}) + ELSE (SELECT COALESCE(SUM(T9.item_quantity), 0) + FROM wor_supply_request AS T9 + WHERE T9.original_bus_no = T1.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0' + AND T9.status_enum = #{agree}) + END AS returned_quantity, -- 已退数量 CASE WHEN T1.type_enum = #{purchaseReturn} THEN T1.id ELSE NULL - END AS id, --采购退货id + END AS id, -- 采购退货id CASE WHEN T1.type_enum = #{purchaseReturn} THEN NULL ELSE T1.id - END AS purchase_id, --采购入库id - T2.quantity AS quantity, --库存数量 + END AS purchase_id, -- 采购入库id + T2.quantity AS quantity, -- 库存数量 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT T9.item_quantity - FROM wor_supply_request AS T9 - WHERE T1.original_bus_no = T9.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - ) + THEN (SELECT T9.item_quantity + FROM wor_supply_request AS T9 + WHERE T1.original_bus_no = T9.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0') ELSE T3.quantity - END AS purchase_quantity, --采购数量 - T11.amount AS price, --采购单价 + END AS purchase_quantity, -- 采购数量 + T11.amount AS price, -- 采购单价 CASE WHEN T1.type_enum = #{purchaseReturn} - THEN ( - SELECT T9.unit_code - FROM wor_supply_request AS T9 - WHERE T1.original_bus_no = T9.bus_no - AND T9.item_id = T1.item_id - AND T9.lot_number = T1.lot_number - AND T9.delete_flag = '0' - ) + THEN (SELECT T9.unit_code + FROM wor_supply_request AS T9 + WHERE T1.original_bus_no = T9.bus_no + AND T9.item_id = T1.item_id + AND T9.lot_number = T1.lot_number + AND T9.delete_flag = '0') ELSE T1.unit_code - END AS purchase_unit_code, --采购单位 - T1.unit_code AS measurement_unit_code, -- 物品计量单位 - T4.unit_code, -- 包装单位 - T4.min_unit_code, -- 最小单位 - T5."name" AS purpose_location_name, --仓库 - T6."name" AS purpose_location_store_name, --货位 - T4."name" AS item_name, --药品 - T1.lot_number, --批次号 - T1.reason, --退货原因 - T1.remake, --备注 - T1.item_id, --物品编码 - T1.purpose_location_id, --目的仓库ID - T1.purpose_location_store_id, --目的货位ID - T1.purpose_type_enum, -- 目的仓库类型 - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 - T4."size" AS total_volume, -- 规格 - T4.manufacturer_text AS manufacturer, -- 生产厂商 + END AS purchase_unit_code, -- 采购单位 + T1.unit_code AS measurement_unit_code, -- 物品计量单位 + T4.unit_code, -- 包装单位 + T4.min_unit_code, -- 最小单位 + T5."name" AS purpose_location_name, -- 仓库 + T6."name" AS purpose_location_store_name, -- 货位 + T4."name" AS item_name, -- 药品 + T1.lot_number, -- 批次号 + T1.reason, -- 退货原因 + T1.remake, -- 备注 + T1.item_id, -- 物品编码 + T1.purpose_location_id, -- 目的仓库ID + T1.purpose_location_store_id, -- 目的货位ID + T1.purpose_type_enum, -- 目的仓库类型 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 + T4."size" AS total_volume, -- 规格 + T4.manufacturer_text , -- 生产厂商 #{device} AS item_type, - T1.start_time, -- 开始时间 - T1.end_time, -- 结束时间 - T1.invoice_no, -- 发票号 - T1.trace_no, -- 追溯码 - T2.packaging_levels, -- 追溯码包装层级 + T1.start_time, -- 开始时间 + T1.end_time, -- 结束时间 + T1.invoice_no, -- 发票号 + T1.trace_no, -- 追溯码 + T2.packaging_levels, -- 追溯码包装层级 CASE WHEN T1.type_enum = #{purchaseReturn} THEN T1.practitioner_id ELSE NULL - END AS practitioner_id, --经手人 + END AS practitioner_id, -- 经手人 T1.occurrence_time, - T4.part_percent --拆零比 + T4.part_percent, -- 拆零比 + CASE + WHEN T1.type_enum = #{purchaseReturn} + THEN (SELECT name + FROM adm_practitioner ap + WHERE ap.delete_flag = '0' + AND ap.tenant_id = 1 + AND ap.id = T1.practitioner_id) + ELSE NULL + END AS practitioner_name -- 经手人姓名 FROM wor_supply_request T1 LEFT JOIN wor_inventory_item T2 ON T2.item_id = T1.item_id @@ -254,11 +257,12 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T2.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 WHERE T1.bus_no = #{busNo} AND T1.item_table = #{deviceTableName} AND T1.delete_flag = '0' + SELECT T1.bus_no, T1.original_bus_no, - T1.item_quantity AS item_quantity, --退库数量 + T1.item_quantity AS item_quantity, -- 退库数量 ( SELECT COALESCE(SUM(T9.item_quantity), 0) FROM wor_supply_request AS T9 WHERE T9.original_bus_no = T1.original_bus_no @@ -296,10 +300,10 @@ AND T9.delete_flag = '0' AND T9.status_enum = #{statusEnum} ) - AS returned_quantity, --已退数量 - T1.id , --采购退货id - NULL AS purchase_id, --采购入库id - T2.quantity AS quantity, --库存数量 + AS returned_quantity, -- 已退数量 + T1.id , -- 采购退货id + NULL AS purchase_id, -- 采购入库id + T2.quantity AS quantity, -- 库存数量 ( SELECT T9.item_quantity FROM wor_supply_request AS T9 WHERE T1.original_bus_no = T9.bus_no @@ -307,41 +311,41 @@ AND T9.lot_number = T1.lot_number AND T9.delete_flag = '0' ) - AS purchase_quantity, --采购数量 - T11.amount AS price, --采购单价 + AS purchase_quantity, -- 采购数量 + T11.amount AS price, -- 采购单价 ( SELECT T9.unit_code FROM wor_supply_request AS T9 WHERE T1.original_bus_no = T9.bus_no AND T9.item_id = T1.item_id AND T9.lot_number = T1.lot_number AND T9.delete_flag = '0' - ) AS purchase_unit_code, --采购单位 - T1.unit_code AS measurement_unit_code, -- 物品计量单位 - T4.unit_code, -- 包装单位 - T4.min_unit_code, -- 最小单位 - T5."name" AS purpose_location_name, --仓库 - T6."name" AS purpose_location_store_name, --货位 - T4."name" AS item_name, --药品 - T1.lot_number, --批次号 - T1.reason, --退货原因 - T1.remake, --备注 - T1.item_id, --物品编码 - T1.purpose_location_id, --目的仓库ID - T1.purpose_location_store_id, --目的货位ID - T1.purpose_type_enum, -- 目的仓库类型 - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 - T8.total_volume, -- 规格 - T4.manufacturer_text AS manufacturer, -- 生产厂商 + ) AS purchase_unit_code, -- 采购单位 + T1.unit_code AS measurement_unit_code, -- 物品计量单位 + T4.unit_code, -- 包装单位 + T4.min_unit_code, -- 最小单位 + T5."name" AS purpose_location_name, -- 仓库 + T6."name" AS purpose_location_store_name, -- 货位 + T4."name" AS item_name, -- 药品 + T1.lot_number, -- 批次号 + T1.reason, -- 退货原因 + T1.remake, -- 备注 + T1.item_id, -- 物品编码 + T1.purpose_location_id, -- 目的仓库ID + T1.purpose_location_store_id, -- 目的货位ID + T1.purpose_type_enum, -- 目的仓库类型 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 + T8.total_volume, -- 规格 + T4.manufacturer_text , -- 生产厂商 #{medicine} AS item_type, - T1.start_time, -- 开始时间 - T1.end_time, -- 结束时间 - T1.invoice_no, -- 发票号 - T1.trace_no, -- 追溯码 - T2.packaging_levels, -- 追溯码包装层级 - T1.practitioner_id , --经手人 - T1.occurrence_time,--制单日期 - T4.part_percent --拆零比 + T1.start_time, -- 开始时间 + T1.end_time, -- 结束时间 + T1.invoice_no, -- 发票号 + T1.trace_no, -- 追溯码 + T2.packaging_levels, -- 追溯码包装层级 + T1.practitioner_id , -- 经手人 + T1.occurrence_time,-- 制单日期 + T4.part_percent -- 拆零比 FROM wor_supply_request T1 LEFT JOIN wor_inventory_item T2 ON T1.item_id = T2.item_id @@ -373,7 +377,7 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T2.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum IN @@ -386,7 +390,7 @@ UNION SELECT T1.bus_no, T1.original_bus_no, - T1.item_quantity AS item_quantity, --退库数量 + T1.item_quantity AS item_quantity, -- 退库数量 ( SELECT COALESCE(SUM(T9.item_quantity), 0) FROM wor_supply_request AS T9 WHERE T9.original_bus_no = T1.original_bus_no @@ -394,51 +398,51 @@ AND T9.lot_number = T1.lot_number AND T9.delete_flag = '0' AND T9.status_enum = #{statusEnum} - ) AS returned_quantity, --已退数量 - T1.id , --采购退货id - NULL AS purchase_id, --采购入库id - T2.quantity AS quantity, --库存数量 + ) AS returned_quantity, -- 已退数量 + T1.id , -- 采购退货id + NULL AS purchase_id, -- 采购入库id + T2.quantity AS quantity, -- 库存数量 ( SELECT T9.item_quantity FROM wor_supply_request AS T9 WHERE T1.original_bus_no = T9.bus_no AND T9.item_id = T1.item_id AND T9.lot_number = T1.lot_number AND T9.delete_flag = '0' - ) AS purchase_quantity, --采购数量 - T11.amount AS price, --采购单价 + ) AS purchase_quantity, -- 采购数量 + T11.amount AS price, -- 采购单价 ( SELECT T9.unit_code FROM wor_supply_request AS T9 WHERE T1.original_bus_no = T9.bus_no AND T9.item_id = T1.item_id AND T9.lot_number = T1.lot_number AND T9.delete_flag = '0' - ) AS purchase_unit_code, --采购单位 - T1.unit_code AS measurement_unit_code, -- 物品计量单位 - T4.unit_code, -- 包装单位 - T4.min_unit_code, -- 最小单位 - T5."name" AS purpose_location_name, --仓库 - T6."name" AS purpose_location_store_name, --货位 - T4."name" AS item_name, --药品 - T1.lot_number, --批次号 - T1.reason, --退货原因 - T1.remake, --备注 - T1.item_id, --物品编码 - T1.purpose_location_id, --目的仓库ID - T1.purpose_location_store_id, --目的货位ID - T1.purpose_type_enum, -- 目的仓库类型 - T1.supplier_id, -- 供应商id - T7."name" AS supplier_name, -- 供应商名称 - T4."size" AS total_volume, -- 规格 - T4.manufacturer_text AS manufacturer, -- 生产厂商 + ) AS purchase_unit_code, -- 采购单位 + T1.unit_code AS measurement_unit_code, -- 物品计量单位 + T4.unit_code, -- 包装单位 + T4.min_unit_code, -- 最小单位 + T5."name" AS purpose_location_name, -- 仓库 + T6."name" AS purpose_location_store_name, -- 货位 + T4."name" AS item_name, -- 药品 + T1.lot_number, -- 批次号 + T1.reason, -- 退货原因 + T1.remake, -- 备注 + T1.item_id, -- 物品编码 + T1.purpose_location_id, -- 目的仓库ID + T1.purpose_location_store_id, -- 目的货位ID + T1.purpose_type_enum, -- 目的仓库类型 + T1.supplier_id, -- 供应商id + T7."name" AS supplier_name, -- 供应商名称 + T4."size" AS total_volume, -- 规格 + T4.manufacturer_text , -- 生产厂商 #{device} AS item_type, - T1.start_time, -- 开始时间 - T1.end_time, -- 结束时间 - T1.invoice_no, -- 发票号 - T1.trace_no, -- 追溯码 - T2.packaging_levels, -- 追溯码包装层级 - T1.practitioner_id, --经手人 - T1.occurrence_time,--制单日期 - T4.part_percent --拆零比 + T1.start_time, -- 开始时间 + T1.end_time, -- 结束时间 + T1.invoice_no, -- 发票号 + T1.trace_no, -- 追溯码 + T2.packaging_levels, -- 追溯码包装层级 + T1.practitioner_id, -- 经手人 + T1.occurrence_time,-- 制单日期 + T4.part_percent -- 拆零比 FROM wor_supply_request T1 LEFT JOIN wor_inventory_item T2 ON T2.item_id = T1.item_id @@ -467,7 +471,7 @@ ON T11.definition_id = T10.id AND T11.delete_flag = '0' AND T11.condition_value = T2.lot_number - AND T11.condition_code = '1'--1:批号进价 + AND T11.condition_code = '1'-- 1:批号进价 WHERE T1.purpose_location_id = #{locationId} AND T1.status_enum = #{statusEnum} AND T1.type_enum IN diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReceiptApprovalMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReceiptApprovalMapper.xml index a57b5d95fdc3b994033f6053eac76946ad0aac0a..1d92010d2d0f1285cfe4ee7313dd61cb16a3331f 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReceiptApprovalMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReceiptApprovalMapper.xml @@ -3,12 +3,12 @@ SELECT T1.id AS definition_id, - T1.instance_id, - T1.charge_name, - T1.price AS sell_price, - T2.condition_code, - T2.condition_value, - T2.amount AS unit_price, - T3.unit_code, - T3.min_unit_code + T1.instance_id, + T1.charge_name, + T1.price AS sell_price, + T2.condition_code, + T2.condition_value, + T2.amount AS unit_price, + T3.unit_code, + T3.min_unit_code FROM adm_charge_item_definition AS T1 - LEFT JOIN adm_charge_item_def_detail AS T2 - ON T1.id = T2.definition_id - AND T2.delete_flag = '0' - LEFT JOIN med_medication_definition AS T3 - ON T1.instance_id = T3.id - AND T3.delete_flag = '0' - LEFT JOIN adm_device_definition AS T4 - ON T1.instance_id = T4.id - AND T4.delete_flag = '0' - WHERE T1.instance_id IN - - #{itemId} - + LEFT JOIN adm_charge_item_def_detail AS T2 + ON T1.id = T2.definition_id + AND T2.delete_flag = '0' + LEFT JOIN med_medication_definition AS T3 + ON T1.instance_id = T3.id + AND T3.delete_flag = '0' + LEFT JOIN adm_device_definition AS T4 + ON T1.instance_id = T4.id + AND T4.delete_flag = '0' + WHERE T1.instance_id IN + + #{itemId} + + + UPDATE sys_user set del_flag = '1' WHERE user_id = #{userId} + + delete from sys_user_role diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/InpatientChargeAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/InpatientChargeAppMapper.xml index 905c9621a2f030cbb155559c566f8f549f5ec464..e58f918e6d1cb540ff08bd7b3bdabbd82766a324 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/InpatientChargeAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/InpatientChargeAppMapper.xml @@ -7,6 +7,7 @@ SELECT T4.encounter_id, T4.encounter_bus_no, T4.patient_id, + T4.encounter_status, T4.reception_time, T4.patient_name, T4.patient_bus_no, @@ -15,8 +16,7 @@ T4.id_card, T4.start_time, T4.patient_py_str, - T4.patient_wb_str, - T4.status_enum + T4.patient_wb_str FROM ( SELECT T1.id AS encounter_id, T1.bus_no AS encounter_bus_no, @@ -24,37 +24,36 @@ T1.reception_time, T1.delete_flag, T1.tenant_id, + T1.start_time, + T1.status_enum AS encounter_status, T2."name" AS patient_name, T2.bus_no AS patient_bus_no, T2.gender_enum, T2.birth_date, - T1.start_time, T2.id_card, T2.py_str AS patient_py_str, - T2.wb_str AS patient_wb_str, - T3.status_enum + T2.wb_str AS patient_wb_str FROM adm_encounter AS T1 LEFT JOIN adm_patient AS T2 ON T1.patient_id = T2.id - INNER JOIN adm_charge_item AS T3 - ON T3.encounter_id = T1.id - AND T3.delete_flag = '0' WHERE T1.delete_flag = '0' AND T1.class_enum = #{classEnum} + AND T1.status_enum IN (#{dischargedFromHospital},#{alreadySettled}) GROUP BY T1.id, T1.bus_no, T1.patient_id, T1.reception_time, T1.delete_flag, T1.tenant_id, + T1.start_time, + T1.status_enum, T2."name", T2.bus_no, T2.gender_enum, T2.birth_date, T2.id_card, T2.py_str, - T2.wb_str, - T3.status_enum + T2.wb_str ORDER BY T1.bus_no DESC ) AS T4 ${ew.customSqlSegment} @@ -132,8 +131,6 @@ , #{refunded} , #{partRefund}) AND T1.context_enum != #{register} - AND T1.entered_date >= #{startTime} - AND T1.entered_date <= #{endTime} AND T1.delete_flag = '0' \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml index 7612803ddab60d7b6059ba9b1e1727d5c0b700de..a14229d420f3cecb9e74f0a9fe7558f052092f12 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientChargeAppMapper.xml @@ -77,7 +77,6 @@ T1.unit_price, T1.total_price, mmr.prescription_no, - mmr.prescription_no, mmr.method_code, mmr.rate_code, mmr.dose, @@ -147,4 +146,97 @@ AND T1.delete_flag = '0' + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml index 5d028643387d4cef5d10f3fbfaadb58dee009102..ea63ef28a59da57faf0dfed06c6ba11777bc2229 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml @@ -75,10 +75,6 @@ T2.unit_code, T1.unit_price, T1.total_price, - T3.status_enum AS dispense_status, - T3.not_performed_reason_enum AS not_performed_reason, - 0 AS service_status, - T3.id AS dispense_id, T2.id AS request_id, T7.name AS item_name, T10.id AS payment_id, @@ -87,9 +83,6 @@ LEFT JOIN med_medication_request AS T2 ON T2.id = T1.service_id AND T2.delete_flag = '0' - LEFT JOIN med_medication_dispense AS T3 - ON T3.med_req_id = T2.id - AND T3.delete_flag = '0' LEFT JOIN med_medication_definition AS T7 ON T1.product_id = T7.id AND T7.delete_flag = '0' @@ -117,10 +110,6 @@ T4.unit_code, T1.unit_price, T1.total_price, - T5.status_enum AS dispense_status, - T5.not_performed_reason_enum AS not_performed_reason, - 0 AS service_status, - T5.id AS dispense_id, T4.id AS request_id, T8.name AS item_name, T10.id AS payment_id, @@ -129,9 +118,6 @@ LEFT JOIN wor_device_request AS T4 ON T4.id = T1.service_id AND T4.delete_flag = '0' - LEFT JOIN wor_device_dispense AS T5 - ON T5.device_req_id = T4.id - AND T5.delete_flag = '0' LEFT JOIN adm_device_definition AS T8 ON T1.product_id = T8.id AND T8.delete_flag = '0' @@ -159,10 +145,6 @@ T6.unit_code, T1.unit_price, T1.total_price, - 0 AS dispense_status, - null AS not_performed_reason, - T6.status_enum AS service_status, - null AS dispense_id, T6.id AS request_id, T9.name AS item_name, T10.id AS payment_id, @@ -282,10 +264,7 @@ aci.service_table, mmr.prescription_no, mmr.id AS request_id, - dis.status_enum AS dispense_status, 0 AS service_status, - dis.dispense_quantity, - dis.id AS dispense_id, mmd."name" AS item_name, fpr.id AS payment_id, fpr.enterer_id, @@ -310,9 +289,6 @@ ON aci.service_id = mmr.refund_medicine_id AND mmr.refund_medicine_id IS NOT NULL AND mmr.delete_flag = '0' - LEFT JOIN med_medication_dispense dis - ON mmr.id = dis.med_req_id - AND dis.delete_flag = '0' INNER JOIN med_medication_definition mmd ON aci.product_id = mmd.id AND mmd.delete_flag = '0' @@ -350,10 +326,7 @@ aci.service_table, wdr.prescription_no, wdr.id AS request_id, - wdd.status_enum AS dispense_status, 0 AS service_status, - wdd.dispense_quantity, - wdd.id AS dispense_id, dev."name" AS item_name, fpr.id AS payment_id, fpr.enterer_id, @@ -378,9 +351,6 @@ ON aci.service_id = wdr.refund_device_id AND wdr.refund_device_id IS NOT NULL AND wdr.delete_flag = '0' - LEFT JOIN wor_device_dispense wdd - ON wdr.id = wdd.device_req_id - AND wdd.delete_flag = '0' INNER JOIN adm_device_definition dev ON aci.product_id = dev.id AND dev.delete_flag = '0' @@ -418,10 +388,7 @@ aci.service_table, wsr.prescription_no, wsr.id AS request_id, - 0 AS dispense_status, wsr.status_enum AS service_status, - 0 AS dispense_quantity, - null AS dispense_id, wad."name" AS item_name, fpr.id AS payment_id, fpr.enterer_id, diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml index 3bcb03a0491739a4c3fe76bb50df44b0a2477835..b9e5c2b074a8ea84cbfeb78213f36673c86d478a 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml @@ -10,14 +10,16 @@ T3.NAME, T3.gender_enum, T3.py_str, - T3.wb_str + T3.wb_str, + T3.dr_profttl_code FROM ( SELECT T1.tenant_id, T1.ID, T1.NAME, T1.gender_enum, T1.py_str, - T1.wb_str + T1.wb_str, + T1.dr_profttl_code FROM adm_practitioner AS T1 WHERE T1.delete_flag = '0' AND EXISTS(SELECT 1 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/common/CommonAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/common/CommonAppMapper.xml index 0169f66af54bc0c094ba97668f7716fe9a7f2095..9673933aec51bb546211f165ece1ee92144e6d59 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/common/CommonAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/common/CommonAppMapper.xml @@ -31,6 +31,7 @@ + @@ -265,7 +266,7 @@ - AND T1.location_id IN (#{orgLocationId}, #{objLocationId}) + AND T1.location_id IN (#{orgLocationId}) AND T1.location_id = #{orgLocationId} @@ -332,179 +333,180 @@ - + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml index fbde8058605291d05a54686e8f62e075a307d274..2effbdb8f4be6e75595d36fabec6378858405947 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml @@ -41,7 +41,8 @@ abi.position_id, abi.restricted_flag, abi.restricted_scope, - abi.dosage_instruction + abi.dosage_instruction, + abi.chrgitm_lv from ( (SELECT @@ -82,7 +83,8 @@ T6.def_location_id AS position_id, t1.restricted_flag AS restricted_flag, t1.restricted_scope AS restricted_scope, - T1.dosage_instruction AS dosage_instruction + T1.dosage_instruction AS dosage_instruction, + T1.chrgitm_lv as chrgitm_lv FROM med_medication_definition AS t1 INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum} @@ -93,7 +95,7 @@ AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum} LEFT JOIN adm_organization_location AS T6 ON T6.distribution_category_code = T1.category_code - AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND + AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time) WHERE T1.delete_flag = '0' AND T2.status_enum = #{statusEnum} @@ -154,7 +156,8 @@ T5.def_location_id AS position_id, 0 AS restricted_flag, '' AS restricted_scope, - '' AS dosage_instruction + '' AS dosage_instruction, + T1.chrgitm_lv as chrgitm_lv FROM adm_device_definition AS T1 LEFT JOIN adm_supplier AS T2 ON T2.ID = T1.supply_id @@ -162,7 +165,7 @@ LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum} LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code - AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND + AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time) WHERE T1.delete_flag = '0' @@ -220,7 +223,8 @@ T3.organization_id AS position_id, 0 AS restricted_flag, '' AS restricted_scope, - '' AS dosage_instruction + '' AS dosage_instruction, + T1.chrgitm_lv as chrgitm_lv FROM wor_activity_definition AS T1 LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = T1.ID @@ -414,7 +418,8 @@ T1.dispense_per_duration AS dispense_per_duration, T2.part_percent AS part_percent, ccd.name AS condition_definition_name, - T1.sort_number AS sort_number + T1.sort_number AS sort_number, + T1.based_on_id AS based_on_id FROM med_medication_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id AND T2.delete_flag = '0' @@ -433,7 +438,7 @@ AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId} AND T1.refund_medicine_id IS NULL - ORDER BY T1.status_enum,T1.sort_number,T1.group_id) + ORDER BY T1.status_enum,T1.sort_number) UNION ALL (SELECT 2 AS advice_type, T1.id AS request_id, @@ -464,7 +469,8 @@ null AS dispense_per_duration, T2.part_percent AS part_percent, '' AS condition_definition_name, - 99 AS sort_number + 99 AS sort_number, + T1.based_on_id AS based_on_id FROM wor_device_request AS T1 LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id AND T2.delete_flag = '0' @@ -511,7 +517,8 @@ null AS dispense_per_duration, 1 AS part_percent, '' AS condition_definition_name, - 99 AS sort_number + 99 AS sort_number, + T1.based_on_id AS based_on_id FROM wor_service_request AS T1 LEFT JOIN wor_activity_definition AS T2 ON T2.ID = T1.activity_id @@ -520,7 +527,6 @@ T3.service_table = #{WOR_SERVICE_REQUEST} LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0' WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum} - AND T1.based_on_table is null AND T1.parent_id IS NULL AND T1.refund_service_id IS NULL @@ -596,4 +602,28 @@ AND tad.item_no = #{itemNo} + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationMainAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationMainAppMapper.xml index 37d06e11b97b96ee400e585831f53aea6b537a11..4a206cbcbd0da8b355896fd9d05d97bc66f7bc08 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationMainAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationMainAppMapper.xml @@ -14,7 +14,6 @@ T10.phone, T10.birth_date, T10.status_enum, - T10.allergy_history_flag, T10.account_id, T10.type_code, T10.contract_name, @@ -48,11 +47,7 @@ T1.create_time AS register_time, T1.reception_time AS reception_time, T1.organization_id AS org_id, - T8.bus_no AS bus_no, - CASE - WHEN T9.patient_id IS NOT NULL THEN 1 - ELSE 0 - END AS allergy_history_flag + T8.bus_no AS bus_no FROM adm_encounter AS T1 LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0' LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0' @@ -71,8 +66,6 @@ LEFT JOIN adm_account AS T6 ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' and T6.encounter_flag = '1' LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0' LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0' - LEFT JOIN cli_allergy_intolerance AS T9 - ON T1.patient_id = T9.patient_id AND T9.clinical_status_enum != #{ClinicalStatus} AND T9.delete_flag = '0' WHERE T1.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml index 8efadbbb90224d6870f1e68ea335bf39501fe52c..ca9c59435e4ffa4bc434cbb6822714e8891a3a16 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml @@ -41,7 +41,7 @@ GROUP BY dd.id, dd.primary_menu_enum , dd.sub_menu - + ORDER BY dd.display_order diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalcharge/AdvancePaymentManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalcharge/AdvancePaymentManageAppMapper.xml index 7a6d302f404175d0612efbfbbe92fa31bcd00853..982175fd0f098e1cb38ea159fd5d43a3a4c1266d 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalcharge/AdvancePaymentManageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalcharge/AdvancePaymentManageAppMapper.xml @@ -6,85 +6,90 @@ @@ -145,4 +169,20 @@ , '%') + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml index 0de7769d17f49c599770cf81fa16bc7c1439d4a1..3d3a537e696541db225de2e413391bbfdd61c5d3 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/ATDManageAppMapper.xml @@ -23,10 +23,12 @@ ii.bed_id, ii.bed_name, ii.organization_name, - ii.contract_name + ii.contract_name, + COALESCE(ii.time1, ii.time2, ii.time3) AS admission_time FROM ( WITH locations AS ( SELECT ael.encounter_id, + ael.start_time as admission_time, al.form_enum, al.id AS location_id, al."name" AS location_name @@ -58,7 +60,10 @@ alb.location_id AS bed_id, alb.location_name AS bed_name, ao."name" AS organization_name, - fc.contract_name + fc.contract_name, + alw.admission_time as time1, + alh.admission_time as time2, + alb.admission_time as time3 FROM adm_encounter ae LEFT JOIN adm_patient ap ON ae.patient_id = ap.id @@ -85,7 +90,8 @@ WHERE ae.delete_flag = '0' AND ae.class_enum = #{imp} AND ae.status_enum != #{toBeRegistered} - GROUP BY ae.id, + GROUP BY ae.tenant_id, + ae.id, ae.bus_no, ae.status_enum, ae.start_time, @@ -105,7 +111,10 @@ alb.location_id, alb.location_name, ao."name", - fc.contract_name + fc.contract_name, + alw.admission_time, + alh.admission_time, + alb.admission_time ORDER BY ae.bus_no DESC ) AS ii ${ew.customSqlSegment} @@ -190,6 +199,7 @@ AND bed.delete_flag = '0' AND bed.status_enum != #{inactive} GROUP BY bed.id, + bed.bus_no, bed.tenant_id, bed."name", bed.status_enum, @@ -214,112 +224,107 @@ + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml index 84b1e6f5f2711638fc4278e5a6a7e04e85612ee8..15aa547ce11d5be345d6320eecd501c09cb20099 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml @@ -23,83 +23,90 @@ ii.house_name, ii.bed_id, ii.bed_name, - ii.organization_name - FROM ( - WITH locations AS ( - SELECT ael.encounter_id, - al.form_enum, - al.id AS location_id, - al."name" AS location_name - FROM adm_encounter_location ael - LEFT JOIN adm_location al - ON ael.location_id = al.id - AND al.delete_flag = '0' - WHERE ael.status_enum = #{active} - AND ael.delete_flag = '0' - ) - SELECT ae.tenant_id, - ae.id AS encounter_id, - ae.bus_no, - ae.status_enum AS encounter_status, - ae.start_time, - ae.end_time, - ae.admit_source_code, - ae.priority_enum, - ae.organization_id, - ap."name" AS patient_name, - ap.py_str AS patient_py_str, - ap.wb_str AS patient_wb_str, - ap.gender_enum, - ap.birth_date, - alw.location_id AS ward_id, - alw.location_name AS ward_name, - alh.location_id AS house_id, - alh.location_name AS house_name, - alb.location_id AS bed_id, - alb.location_name AS bed_name, - ao."name" AS organization_name - FROM adm_encounter ae - LEFT JOIN adm_patient ap - ON ae.patient_id = ap.id - AND ap.delete_flag = '0' - LEFT JOIN locations alw - ON alw.encounter_id = ae.id - AND alw.form_enum = #{ward} - LEFT JOIN locations alh - ON alh.encounter_id = ae.id - AND alh.form_enum = #{house} - LEFT JOIN locations alb - ON alb.encounter_id = ae.id - AND alb.form_enum = #{bed} - LEFT JOIN adm_organization ao - ON ao.id = ae.organization_id - AND ao.delete_flag = '0' - WHERE ae.delete_flag = '0' - AND ae.class_enum = #{imp} - AND ae.status_enum != #{toBeRegistered} - AND ae.status_enum != #{registered} - GROUP BY ae.id, + ii.organization_name, + ii.patient_id, + ii.account_id + FROM (WITH locations AS (SELECT ael.encounter_id, + al.form_enum, + al.id AS location_id, + al."name" AS location_name + FROM adm_encounter_location ael + LEFT JOIN adm_location al + ON ael.location_id = al.id + AND al.delete_flag = '0' + WHERE ael.status_enum = #{active} + AND ael.delete_flag = '0') + SELECT ae.tenant_id, + ae.id AS encounter_id, ae.bus_no, - ae.status_enum, + ae.status_enum AS encounter_status, ae.start_time, ae.end_time, ae.admit_source_code, ae.priority_enum, ae.organization_id, - ap."name", - ap.py_str, - ap.wb_str, + ap."name" AS patient_name, + ap.py_str AS patient_py_str, + ap.wb_str AS patient_wb_str, ap.gender_enum, ap.birth_date, - alw.location_id, - alw.location_name, - alh.location_id, - alh.location_name, - alb.location_id, - alb.location_name, - ao."name" - ORDER BY ae.bus_no DESC - ) AS ii + ap.id as patient_id, + alw.location_id AS ward_id, + alw.location_name AS ward_name, + alh.location_id AS house_id, + alh.location_name AS house_name, + alb.location_id AS bed_id, + alb.location_name AS bed_name, + ao."name" AS organization_name, + aa.id AS account_id + FROM adm_encounter ae + LEFT JOIN adm_patient ap + ON ae.patient_id = ap.id + AND ap.delete_flag = '0' + LEFT JOIN locations alw + ON alw.encounter_id = ae.id + AND alw.form_enum = #{ward} + LEFT JOIN locations alh + ON alh.encounter_id = ae.id + AND alh.form_enum = #{house} + LEFT JOIN locations alb + ON alb.encounter_id = ae.id + AND alb.form_enum = #{bed} + LEFT JOIN adm_organization ao + ON ao.id = ae.organization_id + AND ao.delete_flag = '0' + LEFT JOIN adm_account aa + ON ae.id = aa.encounter_id + AND aa.delete_flag = '0' + WHERE ae.delete_flag = '0' + AND ae.class_enum = #{imp} + AND ae.status_enum != #{toBeRegistered} + AND ae.status_enum != #{registered} + AND aa.type_code = #{personalCashAccount} + GROUP BY ae.id, + ae.bus_no, + ae.status_enum, + ae.start_time, + ae.end_time, + ae.admit_source_code, + ae.priority_enum, + ae.organization_id, + ap."name", + ap.py_str, + ap.wb_str, + ap.gender_enum, + ap.birth_date, + ap.id, + alw.location_id, + alw.location_name, + alh.location_id, + alh.location_name, + alb.location_id, + alb.location_name, + ao."name", + aa.id, + ae.tenant_id + ORDER BY ae.bus_no DESC) AS ii ${ew.customSqlSegment} + SELECT ID AS instance_id, + NAME AS instance_name, + permitted_unit_code + FROM wor_activity_definition + WHERE delete_flag = '0' + AND status_enum = #{status} + AND category_code = #{basicService} + + + + + + + + + + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/MedicineSummaryAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/MedicineSummaryAppMapper.xml index 1198aee0af3ffbad43e8a7459c83e203794d3152..7b12760f66cf3464c93890252db339dc17fde584 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/MedicineSummaryAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/MedicineSummaryAppMapper.xml @@ -260,6 +260,8 @@ mmd.unit_code , mmd.min_unit_code , mmd.part_percent , + mmd.manufacturer_text, + mmd.category_code, mm.total_volume , wsr.lot_number, wsr.item_quantity diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml index e8c452a8979e75935fcf400f8855cd4d481fad5a..f024a2dc8c606190f538c87a4f1b84f3ac0eac9b 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/NurseBillingAppMapper.xml @@ -2,5 +2,302 @@ + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/OrgDeviceStockTakeAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/OrgDeviceStockTakeAppMapper.xml index fd82cb3cbe93181580a5b336052482690031ad72..ad46fb0d4543c5bab1619eea293159b8484e31b5 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/OrgDeviceStockTakeAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inhospitalnursestation/OrgDeviceStockTakeAppMapper.xml @@ -62,7 +62,13 @@ AND T7.delete_flag = '0' LEFT JOIN adm_charge_item AS T8 ON T1.id = T8.service_id AND T8.delete_flag = '0' - WHERE T1.delete_flag = '0') AS ii + LEFT JOIN adm_encounter AS T9 ON T1.encounter_id = T9.id + AND T9.delete_flag = '0' + WHERE T1.delete_flag = '0' + AND T9.class_enum = #{imp} + AND T1.status_enum = #{requestStatus} + AND T2.status_enum = #{dispenseStatus} + AND T8.status_enum = #{chargeItemStatus}) AS ii ${ew.customSqlSegment} diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/PatientHomeAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/PatientHomeAppMapper.xml index fff5da8be32f05696215ecc54d7ab3215d5e0362..fc4d50b5c5415fffc4f82589f5ec8d0f8a7e1586 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/PatientHomeAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/PatientHomeAppMapper.xml @@ -54,7 +54,6 @@ T8.end_time AS surgeryEndTime, -- 手术结束时间 T9.id AS encounterLocationId, -- 就诊位置ID T9.location_id, -- 床位号 - T10.category_code, -- 过敏原 T11."name" AS caty, -- 入院科室 T12."name" AS mainDiagnosis -- 主要诊断 FROM adm_patient AS T1 @@ -119,9 +118,6 @@ ON T2.id = T9.encounter_id -- 就诊ID AND T9.form_enum = 8 AND T9.delete_flag = '0' - LEFT JOIN cli_allergy_intolerance T10 - ON T1.id = T10.patient_id -- 患者ID - AND T10.delete_flag = '0' LEFT JOIN adm_organization T11 ON T2.organization_id = T11.id AND T11.type_enum = 2 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/GroupRecMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/GroupRecMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1b11a152b8f4a8654551a671b3b454e89b64f5c --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/GroupRecMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/LisReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/LisReportMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..bdba87a4832b34c30a2a9f99e1eafcfba7a1ca1e --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/LisReportMapper.xml @@ -0,0 +1,140 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/SampleCollectMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/SampleCollectMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..0590863c49f368963a179277be8c555a3bbeedb1 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/SampleCollectMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml index 0061ad9f907181f6d67a63e5198f061b43e5fa92..dc94133d48a6fb91ef181b50d04c28f44ebc2fe9 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml @@ -2,102 +2,6 @@ - - \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientSkinTestAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientSkinTestAppMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e96e44e9cca9fd5c1f24b80f4a0d8ae91ad55c2 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientSkinTestAppMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientTreatmentAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientTreatmentAppMapper.xml index d930e55c5725a3b36d4950d9c5a3843c1c9f5b0b..2ad7bfdb49b9ddc0b859e010fdc5797b5b7dcb4c 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientTreatmentAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientTreatmentAppMapper.xml @@ -23,14 +23,19 @@ T2.birth_date FROM adm_encounter AS T1 INNER JOIN adm_patient AS T2 - ON T1.patient_id = T2.id - AND T2.delete_flag = '0' - INNER JOIN wor_service_request AS T3 - ON T1.id = T3.encounter_id - AND T3.refund_service_id IS NULL - AND T3.delete_flag = '0' + ON T1.patient_id = T2.id + AND T2.delete_flag = '0' + LEFT JOIN wor_service_request AS T3 + ON T1.id = T3.encounter_id + AND T3.refund_service_id IS NULL + AND T3.delete_flag = '0' + LEFT JOIN wor_device_request AS T4 + ON T1.id = T4.encounter_id + AND T4.refund_device_id IS NULL + AND T4.delete_flag = '0' WHERE T1.class_enum = #{amb} - AND T3.status_enum IN (#{completed},#{cancelled}) + AND (T3.status_enum IN (#{completed},#{cancelled}) + OR T4.status_enum IN (#{completed},#{cancelled})) AND T1.delete_flag = '0' GROUP BY T1.tenant_id, T1.id, @@ -75,8 +80,8 @@ ae.tenant_id, wsr.id AS request_id, wsr.status_enum AS service_status, - NULL AS dispense_id, - NULL AS dispense_status, + NULL::bigint AS dispense_id, + 0 AS dispense_status, wsr.quantity AS execute_num, NULL AS quantity, wsr.unit_code, @@ -110,13 +115,13 @@ AND wad.delete_flag = '0' WHERE wsr.status_enum = #{reqCompleted} AND ae.delete_flag = '0' - UNION ALL + UNION SELECT ae.id AS encounter_id, ae.tenant_id, mmr.id AS request_id, NULL AS service_status, - dis.id AS dispense_id, - dis.status_enum AS dispense_status, + NULL::bigint AS dispense_id, + 0 AS dispense_status, mmr.execute_num, mmr.quantity, mmr.unit_code, @@ -141,9 +146,6 @@ ON ae.id = mmr.encounter_id AND mmr.refund_medicine_id IS NULL AND mmr.delete_flag = '0' - LEFT JOIN med_medication_dispense dis - ON dis.med_req_id = mmr.id - AND dis.delete_flag = '0' INNER JOIN med_medication_definition mmd ON mmr.medication_id = mmd.id AND (mmd.skin_test_flag = 1 OR mmd.inject_flag = 1) @@ -155,80 +157,79 @@ ON aci.service_id = mmr.id AND aci.delete_flag = '0' AND aci.refund_id IS NULL - WHERE dis.status_enum != #{draft} - AND ae.delete_flag = '0' - UNION ALL + WHERE mmr.status_enum = #{reqCompleted} + AND ae.delete_flag = '0' + UNION SELECT ae.id AS encounter_id, - ae.tenant_id, - wdr.id AS request_id, - NULL AS service_status, - wdd.id AS dispense_id, - wdd.status_enum AS dispense_status, - NULL AS execute_num, - wdr.quantity, - wdr.unit_code, - wdr.bus_no, - aci.status_enum AS charge_status, - aci.unit_price, - aci.total_price, - #{worDeviceRequest} AS request_table, - NULL AS service_category, - dev.category_code AS device_category, - NULL AS med_category, - dev."name" AS item_name, - dev.py_str, - dev.wb_str, - dev.size, - NULL AS group_id, - NULL AS sort_number, - NULL AS method_code, - NULL AS dispense_per_duration + ae.tenant_id, + wdr.id AS request_id, + NULL AS service_status, + wdd.id AS dispense_id, + wdd.status_enum AS dispense_status, + NULL AS execute_num, + wdr.quantity, + wdr.unit_code, + wdr.bus_no, + aci.status_enum AS charge_status, + aci.unit_price, + aci.total_price, + #{worDeviceRequest} AS request_table, + NULL AS service_category, + dev.category_code AS device_category, + NULL AS med_category, + dev."name" AS item_name, + dev.py_str, + dev.wb_str, + dev.size, + NULL AS group_id, + NULL AS sort_number, + NULL AS method_code, + NULL AS dispense_per_duration FROM adm_encounter ae - INNER JOIN wor_device_request wdr - ON wdr.encounter_id = ae.id - AND wdr.delete_flag = '0' - AND wdr.refund_device_id IS NULL - LEFT JOIN wor_device_dispense wdd - ON wdd.device_req_id = wdr.id - AND wdd.delete_flag = '0' - LEFT JOIN adm_charge_item aci - ON aci.service_id = wdr.id - AND aci.delete_flag = '0' - AND aci.refund_id IS NULL - INNER JOIN adm_device_definition dev - ON dev.id = wdr.device_def_id - AND dev.delete_flag = '0' + INNER JOIN wor_device_request wdr + ON wdr.encounter_id = ae.id + AND wdr.delete_flag = '0' + LEFT JOIN wor_device_dispense wdd + ON wdd.device_req_id = wdr.id + AND wdd.delete_flag = '0' + LEFT JOIN adm_charge_item aci + ON aci.service_id = wdr.id + AND aci.delete_flag = '0' + INNER JOIN adm_device_definition dev + ON dev.id = wdr.device_def_id + AND dev.delete_flag = '0' WHERE wdd.status_enum != #{draft} - AND ae.delete_flag = '0' + AND ae.delete_flag = '0' ) AS ii ${ew.customSqlSegment} ORDER BY ii.sort_number + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/MedicationDetailsMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/MedicationDetailsMapper.xml index 06741892e47471c97e79a29b19550a2ec54e490e..72b1b090e9796397c441a221ae1fa1524de6df8b 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/MedicationDetailsMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/MedicationDetailsMapper.xml @@ -53,7 +53,7 @@ ON wdd.device_req_id = wdr.id AND wdr.delete_flag = '0' INNER JOIN adm_charge_item aci - ON aci.service_id = wdd.device_req_id + ON aci.service_id = wdr.refund_device_id AND aci.delete_flag = '0' WHERE wdd.status_enum = #{refunded} AND wdd.delete_flag = '0' diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/ReturnMedicineMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/ReturnMedicineMapper.xml index a436d1c2907d970b44271a669fbffb87a0823bb2..f3a6fa767046bb806286a525c35cc154634d6e57 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/ReturnMedicineMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/ReturnMedicineMapper.xml @@ -19,7 +19,8 @@ ae.id AS encounter_id, ae.bus_no AS encounter_no, ae.tenant_id, - mmr.status_enum AS refund_enum, + ae.class_enum, + mmd.status_enum AS refund_enum, ap."name" AS patient_name, ap.wb_str AS patient_wb_str, ap.py_str AS patient_py_str, @@ -30,18 +31,24 @@ FROM adm_encounter ae LEFT JOIN med_medication_request mmr ON mmr.encounter_id = ae.id + AND mmr.delete_flag = '0' + LEFT JOIN med_medication_dispense mmd + ON mmd.med_req_id = mmr.id + AND mmd.delete_flag = '0' LEFT JOIN adm_patient ap ON ae.patient_id = ap.id + AND ap.delete_flag = '0' LEFT JOIN adm_organization ao ON ao.id = ae.organization_id + AND ao.delete_flag = '0' WHERE mmr.refund_medicine_id IS NOT NULL - AND ae.class_enum = #{amb} UNION SELECT ae.reception_time, ae.id AS encounter_id, ae.bus_no AS encounter_no, ae.tenant_id, - wdr.status_enum AS refund_enum, + ae.class_enum, + wdd.status_enum AS refund_enum, ap."name" AS patient_name, ap.wb_str AS patient_wb_str, ap.py_str AS patient_py_str, @@ -52,12 +59,17 @@ FROM adm_encounter ae LEFT JOIN wor_device_request wdr ON wdr.encounter_id = ae.id + AND wdr.delete_flag = '0' + LEFT JOIN wor_device_dispense wdd + ON wdd.device_req_id = wdr.id + AND wdd.delete_flag = '0' LEFT JOIN adm_patient ap ON ae.patient_id = ap.id + AND ap.delete_flag = '0' LEFT JOIN adm_organization ao ON ao.id = ae.organization_id + AND ao.delete_flag = '0' WHERE wdr.refund_device_id IS NOT NULL - AND ae.class_enum = #{amb} ) AS ii ${ew.customSqlSegment} ORDER BY ii.reception_time DESC @@ -68,31 +80,33 @@ - SELECT - T1.id AS dispense_id, - T1.unit_code AS dispense_unit, - T1.quantity, - T1.location_id, - T1.lot_number, - T1.dispense_quantity, - T2.id AS inventory_id, - T2.unit_code AS inventory_unit_code, - T2.quantity AS inventory_quantity, - T2.inventory_status_enum, - T2.expiration_date, - T3.part_percent, - T3."name" AS item_name, - T3.id AS item_id + SELECT T1.id AS dispense_id, + T1.unit_code AS dispense_unit, + T1.quantity, + T1.location_id, + T1.lot_number, + T1.dispense_quantity, + T1.status_enum AS dispense_status, + T1.trace_no, + T1.med_req_id AS request_id, + T2.id AS inventory_id, + T2.unit_code AS inventory_unit_code, + T2.quantity AS inventory_quantity, + T2.inventory_status_enum, + T2.expiration_date, + T3.part_percent, + T3."name" AS item_name, + T1.medication_id AS item_id FROM med_medication_dispense AS T1 - INNER JOIN wor_inventory_item AS T2 - ON T1.medication_id = T2.item_id - AND T2.delete_flag = '0' - AND T2.item_table = #{medMedicationDefinition} - AND T1.lot_number = T2.lot_number - AND T1.location_id = T2.location_id - INNER JOIN med_medication_definition AS T3 - ON T1.medication_id = T3.id - AND T3.delete_flag = '0' + INNER JOIN wor_inventory_item AS T2 + ON T1.medication_id = T2.item_id + AND T2.delete_flag = '0' + AND T2.item_table = #{medMedicationDefinition} + AND T1.lot_number = T2.lot_number + AND T1.location_id = T2.location_id + INNER JOIN med_medication_definition AS T3 + ON T1.medication_id = T3.id + AND T3.delete_flag = '0' WHERE T1.id IN #{medDispenseId} @@ -104,31 +118,33 @@ UNION - SELECT - T4.id AS dispense_id, - T4.unit_code AS dispense_unit, - T4.quantity, - T4.location_id, - T4.lot_number, - T4.dispense_quantity, - T2.id AS inventory_id, - T2.unit_code AS inventory_unit_code, - T2.quantity AS inventory_quantity, - T2.inventory_status_enum, - T2.expiration_date, - T5.part_percent, - T5."name" AS item_name, - T5.id AS item_id + SELECT T4.id AS dispense_id, + T4.unit_code AS dispense_unit, + T4.quantity, + T4.location_id, + T4.lot_number, + T4.dispense_quantity, + T4.status_enum AS dispense_status, + T4.trace_no, + T4.device_req_id AS request_id, + T2.id AS inventory_id, + T2.unit_code AS inventory_unit_code, + T2.quantity AS inventory_quantity, + T2.inventory_status_enum, + T2.expiration_date, + T5.part_percent, + T5."name" AS item_name, + T4.device_def_id AS item_id FROM wor_device_dispense AS T4 - INNER JOIN wor_inventory_item AS T2 - ON T4.device_def_id = T2.item_id - AND T2.delete_flag = '0' - AND T2.item_table = #{admDeviceDefinition} - AND T4.lot_number = T2.lot_number - AND T4.location_id = T2.location_id - INNER JOIN adm_device_definition AS T5 - ON T4.device_def_id = T5.id - AND T5.delete_flag = '0' + INNER JOIN wor_inventory_item AS T2 + ON T4.device_def_id = T2.item_id + AND T2.delete_flag = '0' + AND T2.item_table = #{admDeviceDefinition} + AND T4.lot_number = T2.lot_number + AND T4.location_id = T2.location_id + INNER JOIN adm_device_definition AS T5 + ON T4.device_def_id = T5.id + AND T5.delete_flag = '0' WHERE T4.id IN #{devDispenseId} @@ -143,9 +159,9 @@ SELECT mmd.status_enum AS refund_enum, mmr.refund_medicine_id, mmr.id AS request_id, - mmr.quantity, + mmd.quantity, mmr.unit_code, - mmr.lot_number, + mmd.lot_number, mmr.status_enum AS req_status, mmd.dispense_quantity, mmd.id AS dispense_id, @@ -157,7 +173,7 @@ mmd.trace_no FROM med_medication_request mmr LEFT JOIN med_medication_dispense mmd - ON mmr.refund_medicine_id = mmd.med_req_id + ON mmr.id = mmd.med_req_id AND mmd.delete_flag = '0' INNER JOIN med_medication_definition med ON mmr.medication_id = med.id @@ -172,13 +188,10 @@ AND mmr.encounter_id = #{encounterId} AND aci.service_table =#{medMedicationRequest} - AND mmr.status_enum IN (#{inRefund},#{completed}) - - - AND mmr.status_enum = #{inRefund} + AND mmd.status_enum IN (#{refunded},#{pendingRefund}) - - AND mmr.status_enum = #{completed} + + AND mmd.status_enum = #{refundStatus} AND mmr.delete_flag = '0' UNION @@ -187,7 +200,7 @@ wdr.id AS request_id, wdr.quantity, wdr.unit_code, - wdr.lot_number, + wdd.lot_number, wdr.status_enum AS req_status, wdd.dispense_quantity, wdd.id AS dispense_id, @@ -199,7 +212,7 @@ wdd.trace_no FROM wor_device_request wdr LEFT JOIN wor_device_dispense wdd - ON wdr.refund_device_id = wdd.device_req_id + ON wdr.id = wdd.device_req_id AND wdd.delete_flag = '0' INNER JOIN adm_device_definition dev ON wdr.device_def_id = dev.id @@ -213,15 +226,12 @@ WHERE wdr.refund_device_id IS NOT NULL AND wdr.encounter_id =#{encounterId} AND aci.service_table =#{worDeviceRequest} - - AND wdr.status_enum IN (#{inRefund},#{completed}) - - - AND wdr.status_enum = #{inRefund} - - - AND wdr.status_enum = #{completed} - + + AND wdd.status_enum IN (#{refunded},#{pendingRefund}) + + + AND wdd.status_enum = #{refundStatus} + AND wdr.delete_flag = '0' - SELECT ii.tenant_id, - ii.bus_no,--单据号 - ii.request_id,--供应请求id - ii.delivery_id,--供应发放id - ii.item_table,--项目表 - ii.item_name,--项目名 - ii.item_id,--项目id - ii.total_volume,--规格 - ii.lot_number,--批号 - ii.quantity,--请求数 - ii.unit_code,--单位 - ii.max_unit_code,--常规单位 - ii.min_unit_code,--最小单位 - ii.source_location_id,--发放地点 - ii.source_location_name, - ii.org_id,--申请科室 - ii.org_name, - ii.applicant_id,--领药人 - ii.applicant_name, - ii.apply_time,--申请时间 - ii.status_enum,--状态 - ii.patient_info --患者信息 - FROM (SELECT T1.tenant_id, - T1.bus_no,--单据号 - T1.id AS request_id,--供应请求id - T2.id AS delivery_id,--供应发放id - T1.item_table,--项目表 - T3.name AS item_name,--项目名 - T1.item_id,--项目id - T4.total_volume,--规格 - T1.lot_number,--批号 - T1.item_quantity AS quantity,--请求数 - T1.unit_code,--单位 - T3.unit_code AS max_unit_code,--常规单位 - T3.min_unit_code,--最小单位 - T1.source_location_id,--发放地点 - T5.name AS source_location_name, - T1.purpose_location_id AS org_id,--申请科室 - T6.name AS org_name, - T1.applicant_id,--领药人 - T7.name AS applicant_name, - T1.apply_time,--申请时间 - T1.status_enum,--状态 - STRING_AGG(CONCAT(T11.name, ' : ', T12.inpatient_bed), ',' ORDER BY T11.name, - T12.inpatient_bed) AS patient_info -- 患者信息 - FROM wor_supply_request T1 - LEFT JOIN wor_supply_delivery AS T2 - ON T2.request_id = T1.id - AND T2.delete_flag = '0' - LEFT JOIN med_medication_definition AS T3 - ON T1.item_id = T3.id - AND T3.delete_flag = '0' - LEFT JOIN med_medication AS T4 - ON T3.id = T4.medication_def_id - AND T4.delete_flag = '0' - LEFT JOIN adm_location AS T5 - ON T1.source_location_id = T5.id - AND T5.delete_flag = '0' - LEFT JOIN adm_organization AS T6 - ON T1.purpose_location_id = T6.id - AND T6.delete_flag = '0' - LEFT JOIN adm_practitioner AS T7 - ON T1.applicant_id = T7.id - AND T7.delete_flag = '0' - LEFT JOIN (SELECT id, - encounter_id, - patient_id - FROM (SELECT id, - encounter_id, - patient_id, - ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY id) AS rn - FROM med_medication_dispense - WHERE delete_flag = '0') t - WHERE rn = 1) AS T8 - ON CONCAT(',', T2.based_on_ids, ',') LIKE CONCAT('%,', T8.id, ',%') - LEFT JOIN (SELECT STRING_AGG(T10.NAME, '_' ORDER BY T10.bus_no) AS inpatient_bed, T9.encounter_id - FROM adm_encounter_location T9 - LEFT JOIN adm_location AS T10 - ON T10.id = T9.location_id - AND T10.delete_flag = '0' - WHERE T9.status_enum = '2' - AND T9.delete_flag = '0' - GROUP BY T9.encounter_id) AS T12 ON T8.encounter_id = T12.encounter_id - LEFT JOIN adm_patient AS T11 - ON T11.id = T8.patient_id - AND T11.delete_flag = '0' - WHERE T1.item_table = 'med_medication_definition' - AND T1.type_enum = 23 - AND T1.category_enum = 21 - AND T1.delete_flag = '0' - GROUP BY T1.tenant_id, - T1.bus_no, - T1.id, - T2.id, - T1.item_table, - T3.name, - T1.item_id, - T4.total_volume, - T1.lot_number, - T1.item_quantity, - T1.unit_code, - T3.unit_code, - T3.min_unit_code, - T1.source_location_id, - T5.name, - T1.purpose_location_id, - T6.name, - T1.applicant_id, - T7.name, - T1.apply_time, - T1.status_enum - ) AS ii - ${ew.customSqlSegment} - - - diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml index 298dcbe65336501f8fa4f717f271cb8dda6c7135..04570b1cafda5205fe89052d508ebbb7d13bddda 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml @@ -1,6 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - SELECT ii.department_name, ii.doctor_id, ii.doctor_name, @@ -77,6 +125,7 @@ ii.request_id, ii.tcm_flag, ii.item_name, + ii.merchandise_name, ii.item_id, ii.total_volume, ii.unit_code, @@ -89,6 +138,7 @@ ii.dose_unit_code, ii.dispense_per_quantity, ii.dispense_per_duration, + ii.request_quantity, ii.quantity, ii.dispense_id, ii.unit_price, @@ -100,17 +150,25 @@ ii.skin_test_flag, ii.group_id, ii.manufacturer_text, - ii.trace_no + ii.trace_no, + ii.max_unit_code, + ii.part_percent, + ii.inventory_id, + ii.inventory_unit_code, + ii.inventory_quantity, + ii.inventory_lot_number, + ii.expiration_date, + ii.med_type_code FROM ( SELECT T8."name" AS department_name, T9.id AS doctor_id, T9."name" AS doctor_name, T3.category_code AS item_type, T7."name" AS condition_name, T2.prescription_no, - T2.lot_number, T2.id AS request_id, T2.tcm_flag, T3."name" AS item_name, + T3.merchandise_name, T3.id AS item_id, T4.total_volume, T1.unit_code, @@ -120,9 +178,11 @@ T2.rate_code, T1.location_id, T1.method_code, + T1.lot_number, T2.dose_unit_code, T2.dispense_per_quantity, T2.dispense_per_duration, + T2.quantity AS request_quantity, T1.quantity, T1.id AS dispense_id, T5.unit_price, @@ -135,7 +195,15 @@ T2.group_id AS group_id, T1.tenant_id, T3.manufacturer_text, - T1.trace_no + T1.trace_no, + T3.unit_code AS max_unit_code, + T3.part_percent, + T14.id AS inventory_id, + T14.unit_code AS inventory_unit_code, + T14.quantity AS inventory_quantity, + T14.lot_number AS inventory_lot_number, + T14.expiration_date, + T15.med_type_code FROM med_medication_dispense AS T1 LEFT JOIN med_medication_request AS T2 ON T1.med_req_id = T2.id @@ -170,6 +238,13 @@ LEFT JOIN adm_location AS T13 ON T1.location_id = T13.id AND T13.delete_flag = '0' + LEFT JOIN wor_inventory_item AS T14 + ON T2.medication_id = T14.item_id + AND T1.location_id = T14.location_id + AND T14.delete_flag = '0' + LEFT JOIN adm_encounter_diagnosis AS T15 + ON T2.encounter_diagnosis_id = T15.id + AND T15.delete_flag = '0' WHERE T1.delete_flag = '0' -- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查 AND @@ -182,18 +257,53 @@ T1.status_enum = #{completed} + AND T14.inventory_status_enum = #{active} ORDER BY prescription_no DESC ) AS ii ${ew.customSqlSegment} + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/AdviceManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/AdviceManageAppMapper.xml index 99ef61142bb20748b421750faf02af82945b16df..9d34e1bf0fd460fdc7726884ef0a4bdc48fb6d77 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/AdviceManageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/AdviceManageAppMapper.xml @@ -86,12 +86,12 @@ AND ae.class_enum = #{classEnum} AND ae.status_enum = #{status} AND EXISTS( - SELECT 1 - FROM adm_practitioner_role - WHERE delete_flag = '0' - AND practitioner_id = #{practitionerId} - AND org_id = ae.organization_id - )) AS rpmi + SELECT 1 + FROM adm_practitioner_role + WHERE delete_flag = '0' + AND practitioner_id = #{practitionerId} + AND org_id = ae.organization_id + )) AS rpmi ${ew.customSqlSegment} @@ -125,7 +125,8 @@ T2.part_percent AS part_percent, ccd.name AS condition_definition_name, T1.therapy_enum AS therapyEnum, - T1.sort_number AS sort_number + T1.sort_number AS sort_number, + T1.based_on_id AS based_on_id FROM med_medication_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id AND T2.delete_flag = '0' @@ -175,7 +176,8 @@ T2.part_percent AS part_percent, '' AS condition_definition_name, 2 AS therapyEnum, - 99 AS sort_number + 99 AS sort_number, + T1.based_on_id AS based_on_id FROM wor_device_request AS T1 LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id AND T2.delete_flag = '0' @@ -222,7 +224,8 @@ 1 AS part_percent, '' AS condition_definition_name, T1.therapy_enum AS therapyEnum, - 99 AS sort_number + 99 AS sort_number, + T1.based_on_id AS based_on_id FROM wor_service_request AS T1 LEFT JOIN wor_activity_definition AS T2 ON T2.ID = T1.activity_id @@ -231,7 +234,6 @@ T3.service_table = #{WOR_SERVICE_REQUEST} LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0' WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum} - AND T1.based_on_table is null AND T1.parent_id IS NULL AND T1.encounter_id = #{encounterId} diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ChargeReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ChargeReportMapper.xml index 8099a01bef4eec69bab86ecfc3c6a13b358888b4..b6bd28cc79f00386e29f90c236efec2fa46d2f73 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ChargeReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ChargeReportMapper.xml @@ -1,168 +1,219 @@ - - + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/MedicationInboundReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/MedicationInboundReportMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..dec4bf375893f5110c5162f4b5c0c6780828740e --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/MedicationInboundReportMapper.xml @@ -0,0 +1,46 @@ + + + + + + + diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d661740cb4265127c76c9fd558545eb47597ea2 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportMapper.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/tencentJH/TencentAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/tencentJH/TencentAppMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d163450d660db446c68684aff65dfaa6a1d3af3 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/tencentJH/TencentAppMapper.xml @@ -0,0 +1,184 @@ + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbElepMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbElepMapper.xml index 3eb87500fa2e78903520559e723fa33321633fc5..5429927272dac044ea1165c7cf7f484abfe65666 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbElepMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbElepMapper.xml @@ -93,7 +93,8 @@ T5.create_time AS mdtrt_time, --挂号日期 T1.issue_time AS prsc_time, --处方开立日期 --诊断信息 - T8.name AS condition_name --诊断名 + T8.name AS condition_name, --诊断名 + T12.name AS special_condition_name --诊断名 FROM elep_medication_request AS T1 LEFT JOIN (SELECT drug.medical_catalog_code, drug.registered_name, @@ -127,8 +128,11 @@ ON T1.condition_id = T11.id AND T11.delete_flag = '0' LEFT JOIN cli_condition_definition AS T8 - ON T11.definition_id = T8.id + ON T1.condition_def_id = T8.id AND T8.delete_flag = '0' + LEFT JOIN cli_condition_definition AS T12 + ON T1.opsp_dise_code = T12.yb_no + AND T12.delete_flag = '0' LEFT JOIN yb_elep_medresult_info AS T9 ON T1.hi_rxno = T9.hi_rxno LEFT JOIN (SELECT hi_rxno, rx_stas_codg, rx_stas_name diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbMapper.xml index 19bf0cc3ea2a460dad17f85b8cc1b07935e79639..8ffb73eb10bbd4ccc75680bd008bfa9f67747596 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/ybmanage/YbMapper.xml @@ -185,4 +185,76 @@ WHERE T1.id = #{paymentId} GROUP BY T5."name", T5.yb_no + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/properties/yb.properties b/openhis-server-new/openhis-application/src/main/resources/properties/yb.properties index d78bf8236a49fa01e3515278cd828c1fb95c1f08..b96d8c96bca96d66c38d27085abef31fbac0ee85 100644 --- a/openhis-server-new/openhis-application/src/main/resources/properties/yb.properties +++ b/openhis-server-new/openhis-application/src/main/resources/properties/yb.properties @@ -1,5 +1,5 @@ ybapp.config.url=http://localhost:18079/openhis/yb/yb ybapp.config.api.key=your_api_key_123 ybapp.config.timeout=5000 -ybapp.config.fixmedinsCode=H22010200 +ybapp.config.fixmedinsCode=H22010402403 ybapp.config.eleUrl=http://localhost:18079/openhis/yb/ybElep \ No newline at end of file diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java index f3ede49be66769edd472d4a7d706c7b311122230..a2c0ef87b297677050530cf45298941ade8fed36 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java @@ -1,5 +1,7 @@ package com.openhis.common.constant; +import java.math.BigDecimal; + /** * 常量 * @@ -41,6 +43,11 @@ public class CommonConstants { */ String SS_DD_FORMAT = "%s-%s-%d-%d"; + /** + * 拼接符(s-d-d) + */ + String S_DD_FORMAT = "%s-%d-%d"; + /** * 逗号 */ @@ -70,6 +77,16 @@ public class CommonConstants { * 地区码 */ String AREA_CODE = "000000"; + + /** + * GET + */ + String REQUEST_MAPPING_METHOD_GET = "GET"; + + /** + * POST + */ + String REQUEST_MAPPING_METHOD_POST = "POST"; } /** @@ -280,6 +297,11 @@ public class CommonConstants { */ String MedCategoryCode = "med_category_code"; + /** + * 耗材分类 + */ + String DevCategoryCode = "dev_category_code"; + /** * 门诊号 */ @@ -320,7 +342,7 @@ public class CommonConstants { String ChargeTime = "charge_time"; /** - * 审批时间 + * 申请人 */ String ApplicantName = "applicant_name"; @@ -339,6 +361,11 @@ public class CommonConstants { */ String ItemId = "item_id"; + /** + * 项目编号 + */ + String ItemNo = "item_no"; + /** * 项目所在表 */ @@ -358,11 +385,22 @@ public class CommonConstants { * 校对人Id */ String PerformerCheckId = "performer_check_id"; + /** * 单位 */ String UnitCode = "unit_code"; + /** + * 用法 + */ + String MethodCode = "method_code"; + + /** + * 用药频次 + */ + String RateCode = "rate_code"; + /** * 住院开始时间 */ @@ -387,6 +425,17 @@ public class CommonConstants { * 过期天数 */ String RemainingDays = "remaining_days"; + + + /** + * 追溯码 + */ + String TraceNo = "trace_no"; + + /** + * encounter状态 + */ + String StatusEnum = "status_enum"; } /** @@ -544,4 +593,129 @@ public class CommonConstants { String DisDeviceDoctorName = "张桂英"; } + /** + * excel导出常量 + */ + public interface ExcelOut { + // "0"的 + String CONSTANTZERO = "0"; + // 0.00 + String CONSTANT_ZERO_DML = "0.00"; + // 药品 + String MEDICATION = "药品"; + // 耗材 + String DEVICE = "耗材"; + // 未知类型 + String UNKONWN_TYPE = "未知类型"; + // 否 + String NO = "否"; + // 是 + String YES = "是"; + // BigDecimal类型的0 + BigDecimal ZERO = new BigDecimal(0); + // 元 + String YUAN = "元"; + + } + + /** + * excel导出的sheet名称 + */ + public interface SheetName { + /** + * 发药明细 + */ + String SHEET_NAME_DRUG_DETAIL = "发药明细"; + /** + * 住院发药单 + */ + String INPATIENT_DISPENSING = "住院发药单"; + /** + * 库存明细记录 + */ + String INVENTORY_DETAIL_RECORD = "库存明细记录"; + /** + * 住院汇总单 + */ + String INPATIENT_AGGREGATE_ORDER = "住院汇总单"; + /** + * 调拨单据明细 + */ + String TRANSFER_DOCUMENT_DETAIL = "调拨单据明细"; + /** + * 入库单明细 + */ + String WAREHOUSE_ENTRY_DETAIL = "入库单明细"; + /** + * 盘点单明细 + */ + String INVENTORY_LIST_DETAIL = "盘点单明细"; + /** + * 采购退货明细 + */ + String PURCHASE_RETURN_DETAIL = "采购退货明细"; + /** + * 报损单据明细 + */ + String LOSS_REPORT_DETAIL = "报损单据明细"; + /** + * 领用单据明细 + */ + String REQUISITION_FORM_DETAIL = "领用单据明细"; + /** + * 退库单据明细 + */ + String RETURN_WAREHOUSE_DETAIL = "退库单据明细"; + /** + * 年度药品总收入 + */ + String ANNUAL_TOTAL_DRUG_REVENUE = "年度药品总收入"; + /** + * 药品调拨详情 + */ + String DRUG_TRANSFER_DETAILS = "药品调拨详情"; + + /** + * 库存审批详情 + */ + String INVENTORY_APPROVAL_DETAILS = "库存审批详情"; + + } + + /** + * 导出时需要隐藏的列 + */ + public interface CellName { + /** + * 源仓库 + */ + String SOURCE_LOCATION_NAME = "sourceLocationName"; + /** + * 目的仓库 + */ + String PURPOSE_LOCATION_NAME = "purposeLocationName"; + + } + + /** + * 工具方法常量 + */ + public interface UtilMethodConstant { + /** + * 是否四舍五入(与余数作比较)的临界值 例:0.86 -> 0.85 0.88 -> 0.90 + */ + Double THRESHOLD_VALUE = 0.02; + } + + /** + * 数字常量 + */ + public interface NumConstant { + /** + * 数字 1 + */ + Integer ONE = 1; + + } + } diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java index cf4ec26c886f814f1aa3c6d1c88507be93b5beba..5c79f9b47a9b3b0321f0a479e472f4eafa7c5df0 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java @@ -35,9 +35,9 @@ public enum ActivityDefCategory implements HisEnumInterface { ANESTHESIA(25, "25", "麻醉"), /** - * 护理 + * 护理级别 */ - NURSING(26, "26", "护理"), + NURSING(26, "26", "护理级别"), /** * 膳食 @@ -77,7 +77,7 @@ public enum ActivityDefCategory implements HisEnumInterface { /** * 死亡 */ - death(36, "36", "死亡"), + DEATH(36, "36", "死亡"), /** * 产后 @@ -107,7 +107,47 @@ public enum ActivityDefCategory implements HisEnumInterface { /** * 隔离等级 */ - ISOLATION_LEVEL(42, "42", "隔离等级"); + ISOLATION_LEVEL(42, "42", "隔离等级"), + + /** + * 口腔检查 + */ + ORAL_EXAMINATION(43, "43", "口腔检查"), + + /** + * 内镜检查 + */ + ENDOSCOPY(44, "44", "内镜检查"), + + /** + * 内镜治疗 + */ + ENDOSCOPIC_THERAPY(45, "45", "内镜治疗"), + + /** + * 基础服务 + */ + BASIC_SERVICE(46, "46", "基础服务"), + + /** + * 诊断费 + */ + DIAGNOSIS_FEE(47, "47", "诊断费"), + + /** + * 预防接种手续费 + */ + VACCINATION_HANDLING_FEE(48, "48", "预防接种手续费"), + + /** + * 口腔治疗 + */ + ORAL_TREATMENT(49, "49", "口腔治疗"), + + /** + * 护理项目 + */ + NURSING_PROJECT(50, "50", "护理项目"); @EnumValue private final Integer value; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java index 8c478bb1bd192baf99da4b155a299e5b889321e1..d9ad71d7f185566cf7206ef6b0e0468a3a6f8c44 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java @@ -3,12 +3,15 @@ */ package com.openhis.common.enums; +import lombok.Getter; + /** * 采番前缀枚举 * * @author zxy * @date 2025-02-24 */ +@Getter public enum AssignSeqEnum { /** @@ -357,7 +360,12 @@ public enum AssignSeqEnum { /** * 耗材汇总单号 */ - DEVICE_SUMMARY_NO("69", "耗材汇总单号", "DSN"); + DEVICE_SUMMARY_NO("69", "耗材汇总单号", "DSN"), + + /** + * 自动备份单据号 + */ + AUTO_BACKUP_NO("70", "自动备份单据号", "ABU"); private final String code; private final String info; @@ -368,16 +376,4 @@ public enum AssignSeqEnum { this.info = info; this.prefix = prefix; } - - public String getCode() { - return code; - } - - public String getInfo() { - return info; - } - - public String getPrefix() { - return prefix; - } } \ No newline at end of file diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/CatalogType.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/CatalogType.java index abfb4d1633d20140c2c00a540941a224def208b7..920404eebcdce6cff32b14c3455af4d1fc93acb5 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/CatalogType.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/CatalogType.java @@ -18,39 +18,39 @@ import lombok.Getter; public enum CatalogType { /** - * MEMBER_FIRST + * 西药中成药目录 */ CATALOG_TYPE_1301(1301, "西药中成药目录"), /** - * MEMBER_FIRST + * 中药饮片目录 */ CATALOG_TYPE_1302(1302, "中药饮片目录"), /** - * MEMBER_FIRST + * 医疗机构制剂目录 */ CATALOG_TYPE_1303(1303, "医疗机构制剂目录"), /** - * MEMBER_FIRST + * 民族药品目录 */ CATALOG_TYPE_1304(1304, "民族药品目录"), /** - * MEMBER_FIRST + * 医疗服务项目目录 */ CATALOG_TYPE_1305(1305, "医疗服务项目目录"), /** - * MEMBER_FIRST + * 医用耗材目录 */ CATALOG_TYPE_1306(1306, "医用耗材目录"), /** - * MEMBER_FIRST + * 疾病与诊断目录 */ CATALOG_TYPE_1307(1307, "疾病与诊断目录"), /** - * MEMBER_FIRST + * 手术操作目录 */ CATALOG_TYPE_1308(1308, "手术操作目录"), /** - * MEMBER_FIRST + * 门诊慢特病种目录 */ CATALOG_TYPE_1309(1309, "门诊慢特病种目录"), /** diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java index 3f7ea6628b34ac3193d5a06c428993cc39e13c1e..ef47f871b601cf70aa3b36885c579e6c62fef6e9 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ClinicalStatus.java @@ -14,7 +14,12 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum ClinicalStatus implements HisEnumInterface { - ACTIVE(1, "active", "阳性"), INACTIVE(2, "inactive", "阴性"), RESOLVED(3, "resolved", "已解决"), + ACTIVE(1, "active", "阳性"), + + INACTIVE(2, "inactive", "阴性"), + + RESOLVED(3, "resolved", "已解决"), + UNKNOWN(4, "unknown", "未知"); @EnumValue diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Criticality.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Criticality.java index fd1d31b1d8838425981f964b380b02249aa1085c..ff84feb24800f454803d254e2cd142f799887caf 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Criticality.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Criticality.java @@ -17,7 +17,9 @@ import lombok.Getter; public enum Criticality implements HisEnumInterface { LOW(0, "low", "低"), + HIGH(1, "high", "高"), + UNASSESSABLE(2, "unassessable", "无法评估"); @EnumValue diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java index 2b2896e2fc41f86f078e3c874a3c3c22498b0d9e..f2bd03a3e83d2fffdb271eb93a6c07b16a7e5bd5 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java @@ -77,10 +77,16 @@ public enum DispenseStatus implements HisEnumInterface { * 已配药 */ PREPARED(14, "PR", "已配药"), + /** * 撤回 */ - CANCELLED(15, "CA", "撤回"); + CANCELLED(15, "CA", "撤回"), + + /** + * 待退药 + */ + PENDING_REFUND(16, "PRD", "待退药"); private Integer value; private String code; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocDefinitionEnum.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocDefinitionEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..eda2fd1898a6f675378eccde7d4e88e40ef568b2 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocDefinitionEnum.java @@ -0,0 +1,25 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 来源(Source)类型 + * + * @author swb + * @date 2025-11-26 + */ +@Getter +@AllArgsConstructor +public enum DocDefinitionEnum{ + ADMISSION_VITAL_SIGNS("1", "ADMISSION_VITAL_SIGNS", "入院体征"), + TEMPERATURE("4", "TEMPERATURE", "体温单"), + NURSING_RECORD("3", "NURSING_RECORD", "护理记录"); + + @EnumValue + private final String value; + private final String code; + private final String info; +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocStatusEnum.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocStatusEnum.java index d8579ba9e1719db99f3a3fb56b38bb2d5c470ca7..f6cb2264be5cd9ac20b43877093ef7894239b075 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocStatusEnum.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocStatusEnum.java @@ -12,8 +12,8 @@ import lombok.Getter; public enum DocStatusEnum implements HisEnumInterface { DRAFT(0, "DRAFT", "草稿/暂存"), SAVED(1, "SAVED", "提交"), - ARCHIVED(2, "ARCHIVED", "归档"), - UPDATED(3, "UPDATED", "修改"); + ARCHIVED(2, "ARCHIVED", "归档"); +// UPDATED(3, "UPDATED", "修改"); @EnumValue private final Integer value; private final String code; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/EncounterZyStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/EncounterZyStatus.java index 9a86f5890b0e2da285e4bbe4c4f8237273e396af..bfd34b53d9d2f74ad7e8998b612b13e2842f2023 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/EncounterZyStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/EncounterZyStatus.java @@ -17,13 +17,13 @@ public enum EncounterZyStatus implements HisEnumInterface { AWAITING_DISCHARGE(3, "awaiting-discharge", "待出院"), - DISCHARGED_FROM_HOSPITAL(4, "discharged-from-hospital", "已出院"), + DISCHARGED_FROM_HOSPITAL(4, "discharged-from-hospital", "待出院结算"), ADMITTED_TO_THE_HOSPITAL(5, "admitted-to-the-hospital", "已入院"), PENDING_TRANSFER(6, "pending-transfer", "待转科"), - ALREADY_SETTLED(7, "already-settled", "已结算"); + ALREADY_SETTLED(7, "already-settled", "已结算出院"); @EnumValue private final Integer value; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentCategory.java new file mode 100644 index 0000000000000000000000000000000000000000..9cca15155bd9017e98bdbf404f8fa71c42089e51 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentCategory.java @@ -0,0 +1,53 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum InstrumentCategory implements HisEnumInterface{ + + /** + * 仪器种类 + */ + INSTRUMENT_TYPE_BLOOD_CELL_ANALYZER(1, "Blood Cell Analyzer", "血细胞分析仪"), + INSTRUMENT_TYPE_BLOOD_COAGULATION_ANALYZER(2, "Blood Coagulation Analyzer", "血凝仪"), + INSTRUMENT_TYPE_URINE_ANALYZER(3, "Urine Analyzer", "尿液分析仪"), + INSTRUMENT_TYPE_BLOOD_GAS_ANALYZER(4, "Blood Gas Analyzer", "血气分析仪"), + INSTRUMENT_TYPE_BIOCHEMICAL_ANALYZER(5, "Biochemical Analyzer", "生化分析仪"), + INSTRUMENT_TYPE_R_COUNTER(6, "R Counter", "R-计数器"), + INSTRUMENT_TYPE_GENE_AMPLIFICATION_INSTRUMENT(7, "Gene Amplification Instrument", "基因扩增仪"), + INSTRUMENT_TYPE_SEQUENCER(8, "Sequencer", "测序仪"), + INSTRUMENT_TYPE_ENZYME_LABELED_INSTRUMENT(9, "Enzyme Labeled Instrument", "酶标仪"), + INSTRUMENT_TYPE_ELECTROLYTE_ANALYZER(10, "Electrolyte Analyzer", "电解质分析仪"), + INSTRUMENT_TYPE_BACTERIAL_IDENTIFICATION_INSTRUMENT(11, "Bacterial Identification Instrument", "细菌鉴定仪"), + INSTRUMENT_TYPE_MANUAL_ANALYSIS(12, "Manual Analysis", "手工分析"), + INSTRUMENT_TYPE_ELECTROPHORESIS(13, "Electrophoresis", "电泳仪"), + INSTRUMENT_TYPE_SPECIFIC_PROTEIN_ANALYZER(14, "Specific Protein Analyzer", "特定蛋白分析仪"), + INSTRUMENT_TYPE_GLYCOHEMOGLOBIN_ANALYZER(15, "Glycohemoglobin Analyzer", "糖化血红蛋白分析仪"), + INSTRUMENT_TYPE_FLOW_CYTOMETER(16, "Flow Cytometer", "流式细胞仪"), + INSTRUMENT_TYPE_BLOOD_TYPE_ANALYZER(17, "Blood Type Analyzer", "血型分析仪"), + INSTRUMENT_TYPE_HS_CRP_ANALYZER(18, "High-Sensitivity CRP Analyzer", "超敏CRP分析仪"), + INSTRUMENT_TYPE_BLOOD_RHEOLOGY_ANALYZER(19, "Blood Rheology Analyzer", "血流变分析仪"), + INSTRUMENT_TYPE_BLOOD_CULTURE_ANALYZER(20, "Blood Culture Analyzer", "血培养仪"); + + + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static InstrumentCategory getByValue(Integer value) { + if (value == null) { + return null; + } + for (InstrumentCategory val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentStatus.java similarity index 48% rename from openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java rename to openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentStatus.java index a4bff69b135faf33d91ede1738774d4f8e93394f..38e40d3b02e942409e66753110defc3ba30a62d7 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentStatus.java @@ -1,27 +1,45 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; - import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum DeviceCategory implements HisEnumInterface { - ACTIVE(1, "1", "有源的"), COMMUNICATING(2, "2", "通讯类"), HOMEUSE(3, "3", "非院内使用"), IMPLANTABLE(4, "4", "植入类"), - IN_VITRO(5, "5", "试管类"), POINT_OF_CARE(6, "6", "床旁类"), SINGLE_USE(7, "7", "单次消耗类"), REUSABLE(8, "8", "可重用的"), - SOFTWARE(9, "9", "软件类"), DME(10, "10", "治疗设备"); +public enum InstrumentStatus implements HisEnumInterface{ + + /** + * 仪器状态 + */ + NORMAL(1, "Normal", "日常"), + + /** + * 仪器闲置 + */ + IDLE(2, "Idle", "闲置"), + + /** + * 仪器报损 + */ + DAMAGED(3, "Damaged", "报损"), + + /** + * 仪器故障 + */ + FAULTY(4, "Faulty", "故障"); + + @EnumValue private final Integer value; private final String code; private final String info; - public static DeviceCategory getByValue(Integer value) { + public static InstrumentStatus getByValue(Integer value) { if (value == null) { return null; } - for (DeviceCategory val : values()) { + for (InstrumentStatus val : values()) { if (val.getValue().equals(value)) { return val; } diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/NursingOrdersClass.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/NursingOrdersClass.java index d8a5ec4fe93d5f52b6e07d6c92be2b20d4548cec..d109eea228be932cf10cf5befc0c11c239e9ec07 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/NursingOrdersClass.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/NursingOrdersClass.java @@ -19,9 +19,9 @@ import lombok.Getter; public enum NursingOrdersClass implements HisEnumInterface { /** - * 护理 + * 护理级别 */ - NURSING(26, "26", "护理"), + NURSING(26, "26", "护理级别"), /** * 病情 diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ObservationType.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ObservationType.java new file mode 100644 index 0000000000000000000000000000000000000000..9506f46eb527a6dcbb0176519a3ba0271e6732a0 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ObservationType.java @@ -0,0 +1,67 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ObservationType implements HisEnumInterface{ + /** + * OBSERVATION_TYPE: 实验室检查:如血液、尿液等实验室检查结果 + */ + OBSERVATION_TYPE_LABORATORY_TEST(1, "Laboratory Test", "实验室检查"), + + /** + * OBSERVATION_TYPE: 临床症状:如体温、呼吸等临床观察症状 + */ + OBSERVATION_TYPE_CLINICAL_SYMPTOMS(2, "Clinical Symptoms", "临床症状"), + + /** + * OBSERVATION_TYPE: 影像学检查:如X光、CT扫描等影像学检查 + */ + OBSERVATION_TYPE_IMAGING_EXAMINATION(3, "Imaging Examination", "X光、CT扫描影像学"), + + /** + * OBSERVATION_TYPE: 生理指标:如血压、心率、体温等常规生理参数 + */ + OBSERVATION_TYPE_PHYSIOLOGICAL_PARAMETERS(4, "Physiological Parameters", "常规生理"), + + /** + * OBSERVATION_TYPE: 药物反应:观察药物治疗后的效果 + */ + OBSERVATION_TYPE_DRUG_REACTION(5, "Drug Reaction", "药物治疗"), + + /** + * OBSERVATION_TYPE: 病理检查:如组织切片、病理学诊断结果 + */ + OBSERVATION_TYPE_PATHOLOGY_TEST(6, "Pathology Test", "组织切片、病理学诊断"), + + /** + * OBSERVATION_TYPE: 基因检测:基因组或遗传相关检查 + */ + OBSERVATION_TYPE_GENETIC_TEST(7, "Genetic Test", "基因组检查"), + + /** + * OBSERVATION_TYPE: 其他 + */ + OBSERVATION_TYPE_OTHER(8, "Other", "其他类型"); + + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static ObservationType getByValue(Integer value) { + if (value == null) { + return null; + } + for (ObservationType val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ProcedureCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ProcedureCategory.java index 59908b88c276d0c76e492db6f62014a4dd56e79b..6251c917a3ddab25a76c76bc2eead64942ee6a97 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ProcedureCategory.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ProcedureCategory.java @@ -24,7 +24,8 @@ public enum ProcedureCategory { OUTPATIENT_ADVICE(10, "10", "门诊医嘱"), - INPATIENT_ADVICE(11, "11", "住院医嘱"); + INPATIENT_ADVICE(11, "11", "住院医嘱"), + INPATIENT_NURSE_ADVICE(12, "12", "住院护理医嘱"); @EnumValue private final Integer value; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ReportCodeEnum.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ReportCodeEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..de982dcaa4ea989f5f18699f153eeb704a058f8d --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ReportCodeEnum.java @@ -0,0 +1,18 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ReportCodeEnum { + ANNUAL_TOTAL_DRUG_INCOME("1", "ANNUAL_TOTAL_DRUG_INCOME", "年度药品总收入"), + PRODUCT_TRANSFER("2", "PRODUCT_TRANSFER", "药品调拨"); + + @EnumValue + private final String value; + private final String code; + private final String info; +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Severity.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Severity.java index fc30f6ec15e42fed8f7d665a153b759347178454..a008872820e93286062628f36b53c513c00c622e 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Severity.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/Severity.java @@ -16,7 +16,9 @@ import lombok.Getter; public enum Severity implements HisEnumInterface { MILD(0, "mild", "轻微"), + MODERATE(1, "moderate", "中度"), + SEVERE(2, "severe", "严重"); @EnumValue diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java similarity index 52% rename from openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java rename to openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java index 9e51e1d3f97c15cde8d5a075df06f1ad21aa3fd7..d4e7a57b9f3c415f8186b4c1258cf8b0759a6d54 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java @@ -1,32 +1,40 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; - import lombok.AllArgsConstructor; import lombok.Getter; -/** - * 过敏与不耐受中验证状态 - * - * @author liuhr - * @date 2025/3/6 - */ @Getter @AllArgsConstructor -public enum VerificationStatus implements HisEnumInterface { - UNCONFIRMED(1, "unconfirmed", "未确认"), CONFIRMED(2, "confirmed", "已确认"), REFUTED(3, "refuted", "已反驳"), - ENTERED_IN_ERROR(4, "entered-in-error", "输入错误"); +public enum SpecCollectStatus implements HisEnumInterface{ + + /** + * 待采集 + */ + + PENDING(0, "Pending", "待采集"), + + /** + * 已采集 + */ + COLLECTED(1, "COLLECTED", "已采集"), + + /** + * 已接收 + */ + RECEIVED(2, "COLLECTED", "已接收"); + @EnumValue private final Integer value; private final String code; private final String info; - public static VerificationStatus getByValue(Integer value) { + public static SpecCollectStatus getByValue(Integer value) { if (value == null) { return null; } - for (VerificationStatus val : values()) { + for (SpecCollectStatus val : values()) { if (val.getValue().equals(value)) { return val; } diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecimenType.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecimenType.java new file mode 100644 index 0000000000000000000000000000000000000000..64f298f40a4d827075cbfd7f895ca9fd65af6fcc --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecimenType.java @@ -0,0 +1,44 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum SpecimenType implements HisEnumInterface{ + + /** + * 样本种类 + */ + SPECIMEN_TYPE_BLOOD(1, "Blood", "血液样本"), + SPECIMEN_TYPE_URINE(2, "Urine", "尿液样本"), + SPECIMEN_TYPE_SALIVA(3, "Saliva", "唾液样本"), + SPECIMEN_TYPE_TISSUE(4, "Tissue", "组织样本"), + SPECIMEN_TYPE_CSF(5, "Cerebrospinal Fluid", "脑脊液样本"), + SPECIMEN_TYPE_SPUTUM(6, "Sputum", "痰液样本"), + SPECIMEN_TYPE_FECES(7, "Feces", "粪便样本"), + SPECIMEN_TYPE_SWAB(8, "Swab", "拭子样本"), + SPECIMEN_TYPE_BONE_MARROW(9, "Bone Marrow", "骨髓样本"), + SPECIMEN_TYPE_SEMEN(10, "Semen", "精液样本"), + SPECIMEN_TYPE_AMNIOTIC_FLUID(11, "Amniotic Fluid", "羊水样本"), + SPECIMEN_TYPE_HAIR(12, "Hair", "毛发样本"), + SPECIMEN_TYPE_NAIL(13, "Nail", "指甲样本"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static SpecimenType getByValue(Integer value) { + if (value == null) { + return null; + } + for (SpecimenType val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TemperatureChartEnum.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TemperatureChartEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..5f822b2eee437049c53da4f43098e697ca657920 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TemperatureChartEnum.java @@ -0,0 +1,32 @@ +package com.openhis.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 体温单枚举 + * + * @author swb + * @date 2025-11-21 + */ +@Getter +@AllArgsConstructor +public enum TemperatureChartEnum { + BREATH("001", "breathe", "呼吸"), + PULSE("002", "pulse", "脉搏"), + TEMPERATURE("003", "temperature", "体温"), + BLOOD_PRESSURE("008", "bloodPressure", "血压"), + PAIN_SCORE("016", "painScore", "疼痛等级"), + POSTOP_DAYS("031", "", "术后天数"), + HEIGHT("","height","身高"), + WEIGHT("","weight","体重"), + OUTPUT("","output","出量"), + INPUT("","input","入量"), + HEART_RATE("","heartRate","心率"), + TIME_POINT("","timePoint","时间点"), + WARD_ADMISSION("9500", "", "入科"); + + private final String code; + private final String typeCode; + private final String description; +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TraceNoStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TraceNoStatus.java index aefe9c0790d8dd67e0d231fd911fa696b2312e15..550f34eb58b136ea598b65c18de87b7df078a0f4 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TraceNoStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TraceNoStatus.java @@ -10,7 +10,9 @@ public enum TraceNoStatus implements HisEnumInterface { IN(1, "1", "进"), - OUT(2, "2", "出"),; + OUT(2, "2", "出"), + + IN_STOCK(3, "3", "在库"); @EnumValue private final Integer value; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbEncounterZyStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbEncounterZyStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..fbaebfcc85d1cf1f60ee1db850e9f307e637c27e --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbEncounterZyStatus.java @@ -0,0 +1,37 @@ +package com.openhis.common.enums.ybenums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.openhis.common.enums.HisEnumInterface; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum YbEncounterZyStatus implements HisEnumInterface { + + + TO_BE_REGISTERED(1, "to-be-registered", "待登记"), + + ADMITTED_TO_THE_HOSPITAL(2, "admitted-to-the-hospital", "已登记"), + + DISCHARGED_FROM_HOSPITAL(3, "discharged-from-hospital", "已出院"), + + ALREADY_SETTLED(4, "already-settled", "已结算"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static YbEncounterZyStatus getByValue(Integer value) { + if (value == null) { + return null; + } + for (YbEncounterZyStatus val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbMdcsType.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbMdcsType.java new file mode 100644 index 0000000000000000000000000000000000000000..68f1e5ca5a6a938673474e1d66856c2971c94f35 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbMdcsType.java @@ -0,0 +1,66 @@ +package com.openhis.common.enums.ybenums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.openhis.common.enums.ClaimType; +import com.openhis.common.enums.HisEnumInterface; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum YbMdcsType { + + /** 职工基本医疗保险 */ + EMPLOYEE_BASIC(310,"310", "职工基本医疗保险"), + + /** 离休人员医疗保障 */ + RETIRED_PERSONNEL(340,"340", "离休人员医疗保障"), + + /** 一至六级残疾军人医疗补助 */ + DISABLED_SOLDIER(350,"350", "一至六级残疾军人医疗补助"), + + /** 老红军医疗保障 */ + RED_ARMY_VETERAN(360,"360", "老红军医疗保障"), + + /** 新型农村合作医疗 */ + NEW_RURAL_COOPERATIVE(380,"380", "新型农村合作医疗"), + + /** 城乡居民基本医疗保险 */ + URBAN_RURAL_RESIDENT(390,"390", "城乡居民基本医疗保险"), + + /** 城镇居民基本医疗保险 */ + URBAN_RESIDENT(391,"391", "城镇居民基本医疗保险"), + + /** 其他医疗保险 */ + OTHER(999,"999", "其他医疗保险"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static YbMdcsType getByValue(Integer value) { + if (value == null) { + return null; + } + for (YbMdcsType val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } + + + public static YbMdcsType getByCode(String code) { + if (code == null|| code.isEmpty()) { + return null; + } + for (YbMdcsType val : values()) { + if (val.getCode().equals(code)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbPayment.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbPayment.java index 3fa16896d5d552c39729ea3589b768f606208069..d277de0325db94ffd53e69cee855594fa309260d 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbPayment.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbPayment.java @@ -156,18 +156,28 @@ public enum YbPayment { // 医保结算返回值记录枚举 FULAMT_OWNPAY_AMT(1, 2, null, "全自费金额"), // PSN_PART_AMT(2,2,null,"个人负担总金额"), - OVERLMT_SELFPAY(3, 2, null, "超限价自费费用"), PRESELFPAY_AMT(4, 2, null, "先行自付金额"), INSCP_SCP_AMT(5, 2, null, "符合政策范围金额"), - ACT_PAY_DEDC(6, 2, null, "实际支付起付线"), POOL_PROP_SELFPAY(7, 2, null, "基本医疗保险统筹基金支付比例"), BALC(8, 2, null, "余额"), + OVERLMT_SELFPAY(3, 2, null, "超限价自费费用"), + PRESELFPAY_AMT(4, 2, null, "先行自付金额"), + INSCP_SCP_AMT(5, 2, null, "符合政策范围金额"), + ACT_PAY_DEDC(6, 2, null, "实际支付起付线"), + POOL_PROP_SELFPAY(7, 2, null, "基本医疗保险统筹基金支付比例"), + BALC(8, 2, null, "余额"), // 基金类型,下述仅作记录 - BIRTH_FUND(510100, 2, YB_FUND_PAY, "生育基金"), RETIREE_MEDICAL(340100, 2, YB_FUND_PAY, "离休人员医疗保障基金"), + BIRTH_FUND(510100, 2, YB_FUND_PAY, "生育基金"), + RETIREE_MEDICAL(340100, 2, YB_FUND_PAY, "离休人员医疗保障基金"), URBAN_BASIC_MEDICAL(390100, 2, YB_FUND_PAY, "城乡居民基本医疗保险基金"), - URBAN_SERIOUS_ILLNESS(390200, 2, YB_FUND_PAY, "城乡居民大病医疗保险基金"), MEDICAL_ASSISTANCE(610100, 2, YB_FUND_PAY, "医疗救助基金"), - GOVERNMENT_SUBSIDY(640100, 2, YB_FUND_PAY, "政府兜底基金"), ACCIDENT_INSURANCE(390400, 2, YB_FUND_PAY, "意外伤害基金"), - CARE_INSURANCE(620100, 2, YB_FUND_PAY, "照护保险基金"), FINANCIAL_FUND(360100, 2, YB_FUND_PAY, "财政基金"), - HOSPITAL_ADVANCE(999900, 2, YB_FUND_PAY, "医院垫付"), SUPPLEMENTARY_INSURANCE(390300, 2, YB_FUND_PAY, "城乡居民大病补充保险基金"), + URBAN_SERIOUS_ILLNESS(390200, 2, YB_FUND_PAY, "城乡居民大病医疗保险基金"), + MEDICAL_ASSISTANCE(610100, 2, YB_FUND_PAY, "医疗救助基金"), + GOVERNMENT_SUBSIDY(640100, 2, YB_FUND_PAY, "政府兜底基金"), + ACCIDENT_INSURANCE(390400, 2, YB_FUND_PAY, "意外伤害基金"), + CARE_INSURANCE(620100, 2, YB_FUND_PAY, "照护保险基金"), + FINANCIAL_FUND(360100, 2, YB_FUND_PAY, "财政基金"), + HOSPITAL_ADVANCE(999900, 2, YB_FUND_PAY, "医院垫付"), + SUPPLEMENTARY_INSURANCE(390300, 2, YB_FUND_PAY, "城乡居民大病补充保险基金"), BASIC_MEDICAL_INSURANCE_FOR_URBAN_EMPLOYEES(310201, 2, YB_FUND_PAY, "城镇职工基本医疗保险个人账户基金"), - E_WALLET(999981, 2, YB_FUND_PAY, "电子钱包"), HEALTHCARE_PREPAYMENT(360300, 2, YB_FUND_PAY, "保健预支基金"), + E_WALLET(999981, 2, YB_FUND_PAY, "电子钱包"), + HEALTHCARE_PREPAYMENT(360300, 2, YB_FUND_PAY, "保健预支基金"), // 师大中银支付 BPC_PAY(500000, 2, SELF_PAY, "BPC支付"), diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/HisQueryUtils.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/HisQueryUtils.java index 94435f4727614c1b5f653274318f8fd2421ccf8f..452d24eafc73b1a4273f8fbfbd4cdd4de679e28c 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/HisQueryUtils.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/HisQueryUtils.java @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.core.common.utils.DateUtils; import com.core.common.utils.SecurityUtils; +import com.core.framework.config.TenantContext; import com.openhis.common.constant.CommonConstants; /** @@ -146,6 +147,8 @@ public class HisQueryUtils { // 获取当前登录用户的租户 ID if (SecurityUtils.getAuthentication() != null) { return SecurityUtils.getLoginUser().getTenantId(); + } else if (TenantContext.getCurrentTenant() != null) { + return TenantContext.getCurrentTenant(); } return 0; } diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/PageUtils.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/PageUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..e4fbf1fec7f21c9afc93337b5cf1b70ddfd96c58 --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/PageUtils.java @@ -0,0 +1,56 @@ +package com.openhis.common.utils; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.ArrayList; +import java.util.List; + +/** + * 分页工具类 + */ +public class PageUtils { + + /** + * 手动分页 + * + * @param allList 数据 + * @param pageNo 页码 + * @param pageSize 每页大小 + * @return 分页数据 + */ + public static Page buildPage(List allList, long pageNo, long pageSize) { + Page page = new Page<>(); + + int total = allList.size(); + if (total == 0) { + page.setRecords(new ArrayList<>()); + page.setTotal(0); + page.setCurrent(pageNo); + page.setSize(pageSize); + page.setPages(0L); + return page; + } + + // 计算分页起始位置 + int startIndex = (int)((pageNo - 1) * pageSize); + if (startIndex >= total) { + // 如果起始位置超过总数,返回最后一页 + startIndex = (int)((total - 1) / pageSize * pageSize); + pageNo = (total + pageSize - 1) / pageSize; + } + + int endIndex = (int)Math.min(startIndex + pageSize, total); + + // 获取当前页数据 + List currentPageList = allList.subList(startIndex, endIndex); + + // 设置分页信息 + page.setRecords(new ArrayList<>(currentPageList)); + page.setCurrent(pageNo); + page.setSize(pageSize); + page.setTotal(total); + page.setPages((total + pageSize - 1) / pageSize); // 计算总页数 + + return page; + } +} diff --git a/openhis-server-new/openhis-domain/pom.xml b/openhis-server-new/openhis-domain/pom.xml index 34c31894f7c4c28c586e86e1b22356598446959a..6abb2553b3a0e2d3b78dbf7ec69508f2ffba9707 100644 --- a/openhis-server-new/openhis-domain/pom.xml +++ b/openhis-server-new/openhis-domain/pom.xml @@ -15,13 +15,26 @@ 领域 + + + + org.apache.maven.plugins + maven-compiler-plugin + + 16 + 16 + + + + - - com.alibaba.fastjson2 - fastjson2 + com.alibaba + fastjson + 2.0.43 + compile org.apache.httpcomponents @@ -31,12 +44,12 @@ com.openhis openhis-common + 0.0.1-SNAPSHOT - - org.springframework.boot - spring-boot-starter-web - provided + com.opencsv + opencsv + 5.7.1 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java index f24816e12b71364e2d125ed08288f81cdce5f134..4a3c48f3028640fe89baabd52f0cbe4c3e4f962b 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItem.java @@ -160,4 +160,16 @@ public class ChargeItem extends HisBaseEntity { /** 发放ID */ private Long dispenseId; + + /** + * 系统优惠价格 + */ + private BigDecimal systemDiscountPrice; + + /** + * 人为二次调价 + */ + private BigDecimal manualAdjustedPrice; + + } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Device.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Device.java index 5907cd0bbfde0d1246dd83561b8338dd69929932..3c956389dc184d8f748dc9341c1819a3d5eaef65 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Device.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Device.java @@ -1,14 +1,11 @@ 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.DeviceSafety; import lombok.Data; import lombok.EqualsAndHashCode; @@ -70,7 +67,7 @@ public class Device extends HisBaseEntity { private String partNumber; /** 器材种类 */ - private DeviceCategory categoryEnum; + private Integer categoryEnum; /** 器材类型 */ private String typeCode; @@ -93,5 +90,4 @@ public class Device extends HisBaseEntity { /** 器材安全 */ private DeviceSafety safetyEnum; - } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java index 21b59a5570428537fdae8135f56963fa900c9507..1c3f13b031b660eee8aae995bf2cd9d123f6db6c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java @@ -6,8 +6,8 @@ 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 com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,6 +27,7 @@ public class DeviceDefinition extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 编码 */ diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Instrument.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Instrument.java new file mode 100644 index 0000000000000000000000000000000000000000..4d21d8b5d29fb0550236c67e8c64bd973a4e1bfa --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Instrument.java @@ -0,0 +1,113 @@ +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.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 存储各类仪器的信息,包括设备基本信息、状态、维护记录等Entity实体 + * + * @author system + * @date 2025-09-19 + */ +@Data +@TableName("adm_instrument") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class Instrument extends HisBaseEntity { + + /** 仪器的唯一标识符,使用自增序列 */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 仪器编号,唯一且不能为空 */ + private String instrumentCode; + + /** 仪器名称,必填项 */ + private String instrumentName; + + /** 仪器主编号 */ + private String instrumentMainCode; + + /** 仪器类型,选择项 */ + private Integer instrumentTypeEnum; + + /** 仪器型号 */ + private String instrumentModel; + + /** 生产厂家 */ + private String manufacturer; + + /** 仪器序列号 */ + private String serialNumber; + + /** 购买公司 */ + private String purchasingCompany; + + /** 联系人员 */ + private String contactPerson; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + /** 购买日期 */ + private Date purchaseDate; + + /** 原价格 */ + private BigDecimal originalPrice; + + /** 成交价格 */ + private BigDecimal transactionPrice; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + /** 安装日期 */ + private Date installationDate; + + /** 安装人员 */ + private String installationPerson; + + /** 维护人员 */ + private String maintenancePerson; + + /** 使用科室 */ + private Long orgId; + + /** 鉴定人员 */ + private String identificationPerson; + + /** 记录温度,选择项 */ + private String recordedTemperature; + + /** 仪器附件 */ + private String accessories; + + /** 仪器状态 */ + private Integer instrumentStatusEnum; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + /** 报损日期 */ + private Date damageReportDate; + + /** 可复查仪器 是否 */ + private Integer recheckableInstrumentEnum; + + /** 使用状态,是否 */ + private Integer usageStatusEnum; + + /** 停用原因 */ + private String decommissionReason; + + /** 备注 */ + private String remarks; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ObservationDefinition.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ObservationDefinition.java new file mode 100644 index 0000000000000000000000000000000000000000..d1d059efa75d25c17e806cf89da41078d086948a --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ObservationDefinition.java @@ -0,0 +1,55 @@ +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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 观测定义Entity实体 + * + * @author system + * @date 2025-09-23 + */ +@Data +@TableName("adm_observation_definition") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class ObservationDefinition extends HisBaseEntity { + + /** $column.columnComment */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 观测名称,用于标识观测的具体名称 */ + private String name; + + /** 观测代码,用于唯一标识一个观测项 */ + private String code; + + /** 观测类型,例如:实验室、临床症状等 */ + private Integer observationTypeEnum; + + /** 参考范围,例如:3.0-6.0 mg/dL,用于指示正常范围 */ + private String referenceRange; + + /** 观测仪器id */ + private Long instrumentId; + + /** 状态 */ + private Integer statusEnum; + + /** 删除状态) */ + private String deleteFlag; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/OrganizationLocation.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/OrganizationLocation.java index 66f498459316288de219c6fe59ba1b79d23f15c6..f94002f435598672f2dbaf235c0e0b040c869c2c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/OrganizationLocation.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/OrganizationLocation.java @@ -60,4 +60,9 @@ public class OrganizationLocation extends HisBaseEntity { /** 显示顺序 */ private Integer displayOrder; + /** + * 项目编码 | 药品:1 耗材:2 + */ + private String itemCode; + } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/SpecimenDefinition.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/SpecimenDefinition.java new file mode 100644 index 0000000000000000000000000000000000000000..24f69fd70a29e7ce47d0204c8436b110b1c4ffd9 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/SpecimenDefinition.java @@ -0,0 +1,75 @@ +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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 样本定义Entity实体 + * + * @author system + * @date 2025-09-05 + */ +@Data +@TableName("adm_specimen_definition") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class SpecimenDefinition extends HisBaseEntity { + + /** $column.columnComment */ + @JsonSerialize(using = ToStringSerializer.class) + @TableId(type = IdType.ASSIGN_ID) + + private Long id; + + /** 样本类型 */ + private Integer specimenTypeEnum; + + /** 样本名称 */ + private String specimenName; + + /** 自定义码 */ + private String customCode; + + /** 类型顺序 */ + private Integer typeOrder; + + /** 外部代码 */ + private String externalCode; + + /** 序号 */ + private Integer serialNumber; + + /** 全网型 */ + private String globalType; + + /** 拼音 */ + private String pyStr; + + /** 五笔 */ + private String wbStr; + + /** 样本类 */ + private String specimenClass; + + /** 扩展类型 */ + private String extendedType; + + /** WHONET代码 */ + private String whonetCode; + + + /** 状态 */ + private Integer statusEnum; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/InstrumentMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/InstrumentMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..3f7b346e474c8b4dd5be75f8f8317e3f977a73e6 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/InstrumentMapper.java @@ -0,0 +1,17 @@ +package com.openhis.administration.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.administration.domain.Instrument; + +/** + * 存储各类仪器的信息,包括设备基本信息、状态、维护记录等Mapper接口 + * + * @author system + * @date 2025-09-19 + */ +@Repository +public interface InstrumentMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ObservationDefinitionMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ObservationDefinitionMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..627dd007a13df77effb05a55d5488437a69599a5 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ObservationDefinitionMapper.java @@ -0,0 +1,17 @@ +package com.openhis.administration.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.administration.domain.ObservationDefinition; + +/** + * 观测定义Mapper接口 + * + * @author system + * @date 2025-09-23 + */ +@Repository +public interface ObservationDefinitionMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/SpecimenDefinitionMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/SpecimenDefinitionMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..43b4c16d8750ce98646f896559b776c04adbd8bb --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/SpecimenDefinitionMapper.java @@ -0,0 +1,17 @@ +package com.openhis.administration.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.administration.domain.SpecimenDefinition; + +/** + * 样本定义Mapper接口 + * + * @author system + * @date 2025-09-05 + */ +@Repository +public interface SpecimenDefinitionMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java index f83a8f96ffbce05cbb671affb73671f079175a82..215149d8d65d0edebb3cf18ce131faf35860caeb 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IChargeItemService.java @@ -124,4 +124,19 @@ public interface IChargeItemService extends IService { */ void updatePlannedChargeStatus(List procedureIdList); + /** + * 根据encounterId查询收费项 + * + * @param id + * @return + */ + List getChargeItemByEncounterId(Long id); + + /** + * 根据encounterId查询收费项 + * + * @param id + * @return + */ + List getChargeItemByEncounterId(Long id,String tableName,List serviceId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInstrumentService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInstrumentService.java new file mode 100644 index 0000000000000000000000000000000000000000..92252309b022762d609f57395808fbcadfa017a0 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInstrumentService.java @@ -0,0 +1,14 @@ +package com.openhis.administration.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.administration.domain.Instrument; + +/** + * 存储各类仪器的信息,包括设备基本信息、状态、维护记录等Service接口 + * + * @author system + * @date 2025-09-19 + */ +public interface IInstrumentService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInvoiceService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInvoiceService.java index 6b23bc3898a18a87443a0dcc9f229eff6194f50c..ebd9e9a536cf31b81542dc4965b8c86f1707c628 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInvoiceService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInvoiceService.java @@ -18,4 +18,12 @@ public interface IInvoiceService extends IService { * @return */ Long addInvoice(Invoice invoice); + + /** + * 根据付款单ID查询发票 + * + * @param id 付款单ID + * @return + */ + Invoice getByPaymentId(Long id); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java index e27a53f76eeec8d938dd9c0ebb42b4722bf20108..7746df5b011b6f41b90f56ca6845b80f5a29e9d1 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ILocationService.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.Location; import com.openhis.administration.dto.LocationDataDto; +import liquibase.pro.packaged.L; import org.apache.ibatis.annotations.Param; /** @@ -110,4 +111,11 @@ public interface ILocationService extends IService { **/ List searchLocationDataByIds(@Param("locationIds") List locationIds); + /** + * 获取所有位置信息 + * + * @return 所有位置信息列表 + */ + List< Location> getLocationList(); + } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IObservationDefinitionService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IObservationDefinitionService.java new file mode 100644 index 0000000000000000000000000000000000000000..03bb912c2c554f27b5d8cca2bed6f0a086d9a15e --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IObservationDefinitionService.java @@ -0,0 +1,14 @@ +package com.openhis.administration.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.administration.domain.ObservationDefinition; + +/** + * 观测定义Service接口 + * + * @author system + * @date 2025-09-23 + */ +public interface IObservationDefinitionService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientIdentifierService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientIdentifierService.java index a1c6c97f6e04d1a5992515e4571833d454017005..8547334237451aed75344b0087450d2bc552dacb 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientIdentifierService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientIdentifierService.java @@ -3,6 +3,8 @@ package com.openhis.administration.service; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.PatientIdentifier; +import java.util.List; + /** * 患者标识管理Service接口 * @@ -16,7 +18,7 @@ public interface IPatientIdentifierService extends IService { * * @param patientId 患者Id */ - PatientIdentifier selectByPatientId(Long patientId); + List selectByPatientId(Long patientId); /** * 查询病人标识 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ISpecimenDefinitionService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ISpecimenDefinitionService.java new file mode 100644 index 0000000000000000000000000000000000000000..6bbe404a8e48d5253dd33dc63012d8c70054b99b --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ISpecimenDefinitionService.java @@ -0,0 +1,16 @@ +package com.openhis.administration.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.core.common.core.domain.R; +import com.openhis.administration.domain.SpecimenDefinition; + +import javax.servlet.http.HttpServletRequest; + +/** + * 样本定义Service接口 + * + * @author system + * @date 2025-09-05 + */ +public interface ISpecimenDefinitionService extends IService { +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java index 1bf1ea5ae42336715c6c58f64650b5252e90e82d..a4e750a3a377662372487f2952a9165b4915d997 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java @@ -10,7 +10,7 @@ import com.openhis.administration.domain.ChargeItemDefDetail; import com.openhis.administration.mapper.ChargeItemDefDetailAppMapper; import com.openhis.administration.service.IChargeItemDefDetailService; import com.openhis.common.enums.ConditionCode; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; /** * 费用定价管理子Service业务层处理 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefinitionServiceImpl.java index f2f45630f519697003c86dc81fb1275df3bb4e6f..fbc108b18456f73da79e2a8d6c80abe0631bcd15 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefinitionServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefinitionServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; import com.core.common.utils.DateUtils; import com.openhis.administration.domain.ChargeItemDefDetail; import com.openhis.administration.domain.ChargeItemDefinition; @@ -20,7 +21,6 @@ import com.openhis.administration.service.IChargeItemDefDetailService; import com.openhis.administration.service.IChargeItemDefinitionService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.enums.ConditionCode; -import com.openhis.common.enums.DelFlag; import com.openhis.common.enums.PublicationStatus; import com.openhis.common.enums.Whether; @@ -50,7 +50,7 @@ public class ChargeItemDefinitionServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ChargeItemDefinition::getDeleteFlag, DelFlag.NO.getValue()); + queryWrapper.eq(ChargeItemDefinition::getDeleteFlag, DelFlag.NO.getCode()); // 拼接查询条件 if (chargeItemDefinition.getStatusEnum() != null) { @@ -177,7 +177,7 @@ public class ChargeItemDefinitionServiceImpl extends ServiceImpl getChargeItemByEncounterId(Long id) { + return baseMapper.selectList(new LambdaUpdateWrapper().eq(ChargeItem::getEncounterId, id) + .eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); + } + + @Override + public List getChargeItemByEncounterId(Long id, String tableName, List serviceId) { + return baseMapper.selectList(new LambdaUpdateWrapper().eq(ChargeItem::getEncounterId, id) + .in(ChargeItem::getEncounterId, serviceId) + .eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode())); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java index 0aae96abd0060da2882f4662d19a7eea681abed4..02055cbff1985750a8192338245505220328fcb7 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java @@ -9,10 +9,10 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; import com.openhis.administration.domain.EncounterLocation; import com.openhis.administration.mapper.EncounterLocationMapper; import com.openhis.administration.service.IEncounterLocationService; -import com.openhis.common.enums.DelFlag; import com.openhis.common.enums.EncounterActivityStatus; import com.openhis.common.enums.LocationForm; @@ -73,7 +73,7 @@ public class EncounterLocationServiceImpl extends ServiceImpl implements IInstrumentService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/InvoiceServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/InvoiceServiceImpl.java index c1d477484f85005b871a316e2a1199f39f83cfcf..2436922058517590ac7912e4431b49387ce8eb8c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/InvoiceServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/InvoiceServiceImpl.java @@ -2,6 +2,7 @@ package com.openhis.administration.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.core.common.enums.DelFlag; import com.core.common.utils.SecurityUtils; import com.openhis.administration.domain.Supplier; import com.openhis.common.enums.SupplyStatus; @@ -46,4 +47,9 @@ public class InvoiceServiceImpl extends ServiceImpl impl return invoice.getId(); } + @Override + public Invoice getByPaymentId(Long id) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(Invoice::getReconciliationId, id) + .eq(Invoice::getDeleteFlag, DelFlag.NO.getCode())); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java index 06defde04be08097fc7f70151ae260df751e9e41..37ca91bfd9e523cf44883e1d70108e7eb3ef38d6 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/LocationServiceImpl.java @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Location; import com.openhis.administration.mapper.LocationMapper; import com.openhis.administration.service.ILocationService; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.LocationForm; import com.openhis.common.enums.LocationStatus; @@ -190,4 +190,13 @@ public class LocationServiceImpl extends ServiceImpl i return this.locationMapper.searchLocationDataByIds(locationIds); } + /** + * 获取所有位置信息 + * + * @return 所有位置信息列表 + */ + @Override public List getLocationList() { + return baseMapper.selectList(new LambdaQueryWrapper()); + } + } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ObservationDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ObservationDefinitionServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b7be7617f7fb5abab0d69aa533c833ab1c57bc2c --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ObservationDefinitionServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.administration.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.administration.domain.ObservationDefinition; +import com.openhis.administration.mapper.ObservationDefinitionMapper; +import com.openhis.administration.service.IObservationDefinitionService; + +/** + * 观测定义Service业务层处理 + * + * @author system + * @date 2025-09-23 + */ +@Service +public class ObservationDefinitionServiceImpl extends ServiceImpl implements IObservationDefinitionService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java index c0dbd63b6123865c9b053ffbffe92f55ff8794ea..d77161fb9fbe5c007072d966c249708ab7964d68 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/OrganizationServiceImpl.java @@ -2,9 +2,8 @@ package com.openhis.administration.service.impl; import java.util.List; -import com.openhis.administration.domain.Practitioner; import com.openhis.administration.dto.OrgDataDto; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientIdentifierServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientIdentifierServiceImpl.java index 9bf7c345d2c5185a170b8a57f62eede3a3f4599b..12299c9c2d0fafded484529daecb7d4c091fc5f5 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientIdentifierServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientIdentifierServiceImpl.java @@ -10,6 +10,8 @@ import com.openhis.administration.domain.PatientIdentifier; import com.openhis.administration.mapper.PatientIdentifierMapper; import com.openhis.administration.service.IPatientIdentifierService; +import java.util.List; + /** * 患者标识管理Service业务层处理 * @@ -29,12 +31,11 @@ public class PatientIdentifierServiceImpl extends ServiceImpl selectByPatientId(Long patientId) { // 构造查询条件 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PatientIdentifier::getPatientId, patientId); - - return baseMapper.selectOne(queryWrapper); + return baseMapper.selectList(queryWrapper); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientStudentServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientStudentServiceImpl.java index f9e2033b2d84bad5342fed140a1458bd1ee4302c..b9e015776a909962138ec3283755dec8e4711a74 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientStudentServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientStudentServiceImpl.java @@ -12,7 +12,7 @@ import com.openhis.administration.domain.Patient; import com.openhis.administration.domain.PatientStudent; import com.openhis.administration.mapper.PatientStudentMapper; import com.openhis.administration.service.IPatientStudentService; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.PhysicalExamResult; /** diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java index cee113f06257684cdc63d4527e8c84b45304b894..08d54956cfbe1c22480951465a7d583c987238c4 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PractitionerServiceImpl.java @@ -2,7 +2,7 @@ package com.openhis.administration.service.impl; import java.util.List; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SpecimenDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SpecimenDefinitionServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bc55001137d685e5a702607c193cf91e5d594536 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SpecimenDefinitionServiceImpl.java @@ -0,0 +1,23 @@ +package com.openhis.administration.service.impl; + +import com.core.common.core.domain.R; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.administration.domain.SpecimenDefinition; +import com.openhis.administration.mapper.SpecimenDefinitionMapper; +import com.openhis.administration.service.ISpecimenDefinitionService; + +import javax.servlet.http.HttpServletRequest; + +/** + * 样本定义Service业务层处理 + * + * @author system + * @date 2025-09-05 + */ +@Service +public class SpecimenDefinitionServiceImpl extends ServiceImpl implements ISpecimenDefinitionService { + + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java index 2a008d5117b4469ebc1f4d2cf057a7c5c5a6ba1e..20a1ca3da75d9b863f5f6c218f91719a90d4fe6f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SupplierServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Supplier; import com.openhis.administration.mapper.SupplierMapper; import com.openhis.administration.service.ISupplierService; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.SupplierType; import com.openhis.common.enums.Whether; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java index 4e98f4ed7a02cc7ceeb9c3b6a6e6c1aa05fdf07b..bc1d2fdd07edcce59023e349c8f4e8515d7907ab 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java @@ -71,7 +71,7 @@ public class AllergyIntolerance extends HisBaseEntity { private Date recordedDate; /** 最后反应发生日期 */ - private Date lastReactionOccurrence ; + private Date lastReactionOccurrence; /** 曝光路线 */ private String exposureRoute; @@ -82,4 +82,19 @@ public class AllergyIntolerance extends HisBaseEntity { /** 删除状态 */ private String deleteFlag; + /** + * 药品定义id + */ + private Long medicationId; + + /** + * 批次号 + */ + private String lotNumber; + + /** + * 就诊id + */ + private Long encounterId; + } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java index d0f44f5872af954575be0435ecfdcdb636f9d173..40b8b01462f8c9f7b7c0e77be0a7db99fe405a57 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IAllergyIntoleranceService.java @@ -1,7 +1,6 @@ package com.openhis.clinical.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.administration.domain.Encounter; import com.openhis.clinical.domain.AllergyIntolerance; /** @@ -12,19 +11,4 @@ import com.openhis.clinical.domain.AllergyIntolerance; */ public interface IAllergyIntoleranceService extends IService { - /** - * 更新或者保存过敏与不耐受 - * - * @param allergyIntolerance 过敏与不耐受实体 - */ - boolean saveOrUpdateAllergyIntolerance(AllergyIntolerance allergyIntolerance); - - /** - * 根据药品请求id,获取皮试结果 - * - * @param serviceRequestId 药品请求id - * @return 皮试结果 - */ - Integer getPsResultByRequestId(Long serviceRequestId); - } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IProcedureService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IProcedureService.java index 0e52a28508fbdda13ae3451925adc42065fc255a..2ccf0b57c2d17a585c4800f1ca723a4f31d9ae91 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IProcedureService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/IProcedureService.java @@ -36,14 +36,15 @@ public interface IProcedureService extends IService { * @param eventStatus 执行状态 * @param procedureCategory 执行种类 * @param locationId 执行位置 + * @param expectedDate 预计执行时间 * @param exeDate 执行时间 * @param groupId 组号 * @param refundId 取消执行id * @return 执行id */ Long addProcedureRecord(Long encounterId, Long patientId, Long requestId, String requestTable, - EventStatus eventStatus, ProcedureCategory procedureCategory, Long locationId, Date exeDate, Long groupId, - Long refundId); + EventStatus eventStatus, ProcedureCategory procedureCategory, Long locationId, Date expectedDate, Date exeDate, + Long groupId, Long refundId); /** * 添加药品执行记录 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java index 31160c16164d87b329750a25fe54ee7011e6d32d..e347ec707488e0795bb9f92f0de89fa6d76294c5 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/AllergyIntoleranceServiceImpl.java @@ -1,16 +1,11 @@ package com.openhis.clinical.service.impl; -import com.openhis.common.enums.ClinicalStatus; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.clinical.domain.AllergyIntolerance; import com.openhis.clinical.mapper.AllergyIntoleranceMapper; import com.openhis.clinical.service.IAllergyIntoleranceService; -import com.openhis.common.enums.VerificationStatus; -import com.openhis.workflow.mapper.ServiceRequestMapper; /** * 过敏与不耐受Service业务层处理 @@ -22,55 +17,4 @@ import com.openhis.workflow.mapper.ServiceRequestMapper; public class AllergyIntoleranceServiceImpl extends ServiceImpl implements IAllergyIntoleranceService { - @Autowired - ServiceRequestMapper serviceRequestMapper; - - /** - * 更新或者保存过敏与不耐受 - * - * @param allergyIntolerance 过敏与不耐受实体 - */ - @Override - public boolean saveOrUpdateAllergyIntolerance(AllergyIntolerance allergyIntolerance) { - - // 创建 LambdaQueryWrapper - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(AllergyIntolerance::getId, allergyIntolerance.getId()).eq(AllergyIntolerance::getPatientId, - allergyIntolerance.getPatientId()); - - // 查询是否存在记录 - AllergyIntolerance existingEncounter = baseMapper.selectOne(queryWrapper); - if (existingEncounter != null) { - // 如果记录存在,更新记录 - allergyIntolerance.setId(existingEncounter.getId()); // 设置主键 - return baseMapper.updateById(allergyIntolerance) > 0; - } else { - // 如果记录不存在,插入新记录 - return baseMapper.insert(allergyIntolerance) > 0; - } - } - - /** - * 根据药品请求id,获取皮试结果 - * - * @param serviceRequestId 服务请求id - * @return 皮试结果 - */ - @Override - public Integer getPsResultByRequestId(Long serviceRequestId) { - - // 创建 LambdaQueryWrapper - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(AllergyIntolerance::getRequestId, serviceRequestId) - // 皮试结果是已确认的 - .eq(AllergyIntolerance::getVerificationStatusEnum, VerificationStatus.CONFIRMED) - .eq(AllergyIntolerance::getDeleteFlag, '0'); - // 根据服务请求id,获取皮试结果 - AllergyIntolerance allergyIntolerance = baseMapper.selectOne(queryWrapper); - if (allergyIntolerance == null) { - //没查到默认返回 未知 - return ClinicalStatus.UNKNOWN.getValue(); - } - return allergyIntolerance.getVerificationStatusEnum(); - } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionDefinitionServiceImpl.java index 4005a35e76e1e44a2aea2e2076c55b13b630de36..c17ce9fcf718f2f7e61b902a80976f059436e2f9 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionDefinitionServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionDefinitionServiceImpl.java @@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.clinical.domain.ConditionDefinition; import com.openhis.clinical.mapper.ConditionDefinitionMapper; import com.openhis.clinical.service.IConditionDefinitionService; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.utils.HisQueryUtils; import lombok.AllArgsConstructor; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java index 32edaacb31110435ae94b27e76c8f9df7bde0ae0..f81d7a343a699a2f26725be11b064acec28e6f51 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java @@ -4,7 +4,7 @@ import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ProcedureServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ProcedureServiceImpl.java index 65138da063015285e45d01923998a510d4287847..72fae0c381f413708eeb01d93e1283a027195322 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ProcedureServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ProcedureServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; import com.core.common.utils.DateUtils; import com.core.common.utils.SecurityUtils; import com.openhis.clinical.domain.Procedure; @@ -16,7 +17,6 @@ import com.openhis.clinical.mapper.ProcedureMapper; import com.openhis.clinical.service.IProcedurePerformerService; import com.openhis.clinical.service.IProcedureService; import com.openhis.common.constant.CommonConstants; -import com.openhis.common.enums.DelFlag; import com.openhis.common.enums.EventStatus; import com.openhis.common.enums.ProcedureCategory; import com.openhis.medication.domain.MedicationRequest; @@ -60,15 +60,16 @@ public class ProcedureServiceImpl extends ServiceImpl { + /** + * 根据病历ID、病人ID和体温单ID获取温度单信息 + * + * @param encounterId 病历ID + * @param patientId 病人ID + * @param tempId 体温单ID + * @param source 来源 + * @return 体温单信息 + */ + List getTempList(@Param("encounterId") Long encounterId, @Param("patientId") Long patientId, + @Param("tempId") Long tempId, @Param("source") String source); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/IDocInventoryItemStaticService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/IDocInventoryItemStaticService.java index 880663752836cebaecbe98f73b85e3cd5df1d230..420f1f22963ffdaf7d9a465ad3e4b89f8d209497 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/IDocInventoryItemStaticService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/IDocInventoryItemStaticService.java @@ -3,6 +3,8 @@ */ package com.openhis.document.service; +import java.util.List; + import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.document.domain.DocInventoryItemStatic; @@ -12,4 +14,15 @@ import com.openhis.document.domain.DocInventoryItemStatic; * @author zwh * @date 2025-11-04 */ -public interface IDocInventoryItemStaticService extends IService {} +public interface IDocInventoryItemStaticService extends IService { + + /** + * 获取物品的库存备份信息 + * + * @param itemIdList 物品id + * @param busNo 备份单据号 + * @param locationId 库房id + * @return 库存备份信息 + */ + List getInventoryItemStaticByItemId(List itemIdList, String busNo, Long locationId); +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/impl/DocInventoryItemStaticServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/impl/DocInventoryItemStaticServiceImpl.java index 33017c3a5f6da0feb7cba83b3eb4b7be47792934..4ba0506698419729f7fc489371ebc4f41440257f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/impl/DocInventoryItemStaticServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/document/service/impl/DocInventoryItemStaticServiceImpl.java @@ -3,9 +3,13 @@ */ package com.openhis.document.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.core.common.enums.DelFlag; import com.openhis.document.domain.DocInventoryItemStatic; import com.openhis.document.mapper.DocInventoryItemStaticMapper; import com.openhis.document.service.IDocInventoryItemStaticService; @@ -18,4 +22,24 @@ import com.openhis.document.service.IDocInventoryItemStaticService; */ @Service public class DocInventoryItemStaticServiceImpl extends ServiceImpl - implements IDocInventoryItemStaticService {} + implements IDocInventoryItemStaticService { + + /** + * 根据物品id获取物品的库存备份信息 + * + * @param itemIdList 物品id + * @return 库存备份信息 + */ + @Override + public List getInventoryItemStaticByItemId(List itemIdList, String busNo, + Long locationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (itemIdList != null && !itemIdList.isEmpty()) { + queryWrapper.in(DocInventoryItemStatic::getItemId, itemIdList); + } + queryWrapper.eq(DocInventoryItemStatic::getBusNo, busNo) + .eq(DocInventoryItemStatic::getDeleteFlag, DelFlag.NO.getCode()) + .eq(DocInventoryItemStatic::getLocationId, locationId).orderByDesc(DocInventoryItemStatic::getCreateTime); + return baseMapper.selectList(queryWrapper); + } +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/domain/ThreePartPayCallBack.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/domain/ThreePartPayCallBack.java index a6bd5ffc3d3b1b48ed157605b434799974c94380..2fc2b956f25152dc64d286b75aed3cc7c1cf530a 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/domain/ThreePartPayCallBack.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/domain/ThreePartPayCallBack.java @@ -3,6 +3,9 @@ package com.openhis.financial.domain; 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 lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -11,15 +14,16 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - * 第三方支付回调实体(下方备注信息以中银支付为模板) + * 第三方支付回调实体(下方备注信息以中银支付为模板,其中会产生冗余字段或者重复字段,这些字段均以第三方平台返回内容为主) */ @Data @TableName("fin_three_part_pay_call_back") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -public class ThreePartPayCallBack { +public class ThreePartPayCallBack extends HisBaseEntity { @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private BigDecimal id; /** @@ -130,15 +134,82 @@ public class ThreePartPayCallBack { /** * 付款主键ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long paymentId; /** * 前台UI序号 */ - private Long index; + private Long payIndex; /** * 时间戳(中银建议) */ - private Long time; + private Long payTime; + + /** + * 交易日 + */ + private String settleDate; + /** + * 交易时间 + */ + private String settleTime; + /** + * 清算时间 + */ + private String clearDate; + /** + * 校验数据 + */ + private String secretKey; + /** + * 卡类型 + */ + private String cardType; + /** + * 第三方优惠说明 + */ + private String otherMsg; + /** + * 第三方平台 + */ + private String otherPlatform; + /** + * 支付方式 + */ + private String payMethod; + /** + * 查询结果 + */ + private String queryResult; + /** + * 查询结果 + */ + private String queryResultMsg; + /** + * 请求执行结果 + */ + private String executeResult; + /** + * 支付结果 + */ + private String payResult; + /** + * 卡号 + */ + private String accountNo; + /** + * 凭证号 + */ + private String receiptNo; + /** + * 错误信息 + */ + private String errMsg; + /** + * 批次号 + */ + private String lotNo; + } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/mapper/PaymentRecDetailMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/mapper/PaymentRecDetailMapper.java index e88abe5911c65e0cd26afcdfa347af1b688dbbd2..e049d41115fa4d2a4a10b155b09f58142ddbe449 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/mapper/PaymentRecDetailMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/mapper/PaymentRecDetailMapper.java @@ -24,5 +24,5 @@ public interface PaymentRecDetailMapper extends BaseMapper { * @param paymentIdList 集合 * @return 集合 */ - List getListByReconciliationIds(@Param("paymentIdList") List paymentIdList); + List getListByReconciliationIds(@Param("paymentIdList") List paymentIdList,@Param("kindEnum") Integer kindEnum); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentRecDetailService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentRecDetailService.java index 8be403be04e8bcb4f5ad59baf64d0148cdfd5e8e..0e87842e50206967814fe071ba32f7249a0cce10 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentRecDetailService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/IPaymentRecDetailService.java @@ -29,6 +29,6 @@ public interface IPaymentRecDetailService extends IService { * @param paymentIdList 集合 * @return 集合 */ - List getListByReconciliationIds(List paymentIdList); + List getListByReconciliationIds(List paymentIdList,Integer kindEnum); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/ThreePartPayCallBackService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/ThreePartPayCallBackService.java index 35138711fd90c58715fa007b372b25f305397c0a..f610febe9781b0006da66d25390e46543daff752 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/ThreePartPayCallBackService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/ThreePartPayCallBackService.java @@ -4,4 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.financial.domain.ThreePartPayCallBack; public interface ThreePartPayCallBackService extends IService { + + ThreePartPayCallBack getByPayment(Long paymentId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ContractServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ContractServiceImpl.java index b2ab929564c0ec4fbb0ad8df63bc6543d8e72852..c6291f319f2123be33b3cce578f44c5874be0aa9 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ContractServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ContractServiceImpl.java @@ -14,7 +14,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.core.common.core.redis.RedisCache; -import com.core.common.enums.DeleteFlag; +import com.core.common.enums.DelFlag; import com.core.common.utils.SecurityUtils; import com.openhis.common.constant.YbCommonConstants; import com.openhis.common.enums.Whether; @@ -56,7 +56,7 @@ public class ContractServiceImpl extends ServiceImpl i @Override public IPage getTenantContractPage(Integer tenantId, Integer pageNum, Integer pageSize) { return baseMapper.selectPage(new Page<>(pageNum, pageSize), new LambdaQueryWrapper() - .eq(Contract::getTenantId, tenantId).eq(Contract::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode())); + .eq(Contract::getTenantId, tenantId).eq(Contract::getDeleteFlag, DelFlag.NO.getCode())); } /** @@ -99,7 +99,7 @@ public class ContractServiceImpl extends ServiceImpl i @Override public void delTenantContract(Long id) { baseMapper.update(new Contract(), new LambdaUpdateWrapper().eq(Contract::getId, id) - .set(Contract::getDeleteFlag, DeleteFlag.DELETED.getCode())); + .set(Contract::getDeleteFlag, DelFlag.YES.getCode())); } /** diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentRecDetailServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentRecDetailServiceImpl.java index 3f2bf19a1b8128b84f083cf181b5627b75a74dca..c7af627343ed8e23c87eb1c07453f7f48b6504de 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentRecDetailServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentRecDetailServiceImpl.java @@ -41,7 +41,7 @@ public class PaymentRecDetailServiceImpl extends ServiceImpl getListByReconciliationIds(List paymentIdList) { - return baseMapper.getListByReconciliationIds(paymentIdList); + public List getListByReconciliationIds(List paymentIdList,Integer kindEnum) { + return baseMapper.getListByReconciliationIds(paymentIdList,kindEnum); } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java index 21526634f4d2d38bd3b72c908bd18d68a2273da5..68d6494228e9c6f7856c4d25ee18216bc3bf2ce0 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/PaymentReconciliationServiceImpl.java @@ -32,7 +32,7 @@ import com.openhis.administration.service.impl.PatientServiceImpl; import com.openhis.administration.service.impl.PatientStudentServiceImpl; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.YbCommonConstants; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.ItemType; import com.openhis.common.enums.PaymentKind; import com.openhis.common.enums.PaymentStatus; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ThreePartPayCallBackServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ThreePartPayCallBackServiceImpl.java index c300feb2885f6cb0a256ef787f8edd652b6b02d8..58c9ca59453f0a76b5236482bc212694c185c368 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ThreePartPayCallBackServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/service/impl/ThreePartPayCallBackServiceImpl.java @@ -1,11 +1,22 @@ package com.openhis.financial.service.impl; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; +import com.openhis.common.constant.YbCommonConstants; import com.openhis.financial.domain.ThreePartPayCallBack; import com.openhis.financial.mapper.ThreePartPayCallBackMapper; import com.openhis.financial.service.ThreePartPayCallBackService; -import org.springframework.stereotype.Service; @Service -public class ThreePartPayCallBackServiceImpl extends ServiceImpl implements ThreePartPayCallBackService { +public class ThreePartPayCallBackServiceImpl extends ServiceImpl + implements ThreePartPayCallBackService { + @Override + public ThreePartPayCallBack getByPayment(Long paymentId) { + return baseMapper + .selectOne(new LambdaQueryWrapper().eq(ThreePartPayCallBack::getPaymentId, paymentId) + .eq(ThreePartPayCallBack::getDeleteFlag, DelFlag.NO.getCode()).last(YbCommonConstants.sqlConst.LIMIT1)); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefDeviceDef.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefDeviceDef.java new file mode 100644 index 0000000000000000000000000000000000000000..1923feabc1dc163d34c07dd82f218e545a9399bd --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefDeviceDef.java @@ -0,0 +1,61 @@ +package com.openhis.lab.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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 耗材和设备定义Entity实体 + * + * @author system + * @date 2025-10-10 + */ +@Data +@TableName("lab_activity_def_device_def") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class ActivityDefDeviceDef extends HisBaseEntity { + + /** $column.columnComment */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 测试定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long activityDefinitionId; + + /** 耗材id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long deviceDefinitionId; + + /** 耗材名称 */ + private String deviceDefinitionName; + + /** 仪器id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long instrumentId; + + /** 仪器名称 */ + private String instrumentName; + + /** 耗材使用数量 */ + private Integer deviceQuantity; + + /** 删除状态 */ + private String deleteFlag; + + /** $column.columnComment */ + private String activityDefinitionName; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefObservationDef.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefObservationDef.java new file mode 100644 index 0000000000000000000000000000000000000000..da73e5513cb4744c11c0f5719714fc8f166ba417 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefObservationDef.java @@ -0,0 +1,55 @@ +package com.openhis.lab.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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 观测指标定义Entity实体 + * + * @author system + * @date 2025-10-10 + */ +@Data +@TableName("lab_activity_def_observation_def") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class ActivityDefObservationDef extends HisBaseEntity { + + /** $column.columnComment */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Integer id; + + /** 活动定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long activityDefinitionId; + + /** 活动名称 */ + private String activityDefinitionName; + + /** 观测定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long observationDefinitionId; + + /** 观测指标名称(如ALT、AST等) */ + private String observationName; + + + /** 观测编码(如ALT、AST等) */ + private String observationCode; + + /** 删除状态 */ + private String deleteFlag; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefSpecimenDef.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefSpecimenDef.java new file mode 100644 index 0000000000000000000000000000000000000000..87a91efaca9481942b784fe9d8980ca0143c9fa1 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefSpecimenDef.java @@ -0,0 +1,59 @@ +package com.openhis.lab.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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 样本定义Entity实体 + * + * @author system + * @date 2025-10-10 + */ +@Data +@TableName("lab_activity_def_specimen_def") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class ActivityDefSpecimenDef extends HisBaseEntity { + + /** $column.columnComment */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Integer id; + + /** 测试定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long activityDefinitionId; + + /** $column.columnComment */ + private String activityDefinitionName; + + /** 测试定义ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long specimenDefinitionId; + + /** 样本量 */ + private Integer specimenVolume; + /** 样本名称 */ + private String specimenName; + + /** 样本量单位 */ + private String specimenUnit; + + /** 采样方法 */ + private String samplingMethod; + + /** 删除状态,N为未删除,Y为已删除 */ + private String deleteFlag; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Observation.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Observation.java new file mode 100644 index 0000000000000000000000000000000000000000..1615ca4fdef4c3ce94d54a63c35dc1e99156e8bf --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Observation.java @@ -0,0 +1,60 @@ +package com.openhis.lab.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.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 【请填写功能名称】Entity实体 + * + * @author system + * @date 2025-10-10 + */ +@Data +@TableName("lab_observation") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class Observation extends HisBaseEntity { + + /** 观察记录的唯一标识符 */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 患者ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + + /** 就诊ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** 关联的样本ID */ + private Long specimenId; + + /** 观察定义ID */ + private Long observationDefinitionId; + + /** 观察结果,可能是文本描述或数值 */ + private String observationResult; + + /** 观察的日期和时间 */ + private Date observationDate; + + /** 执行观察的技术员ID */ + private Long technicianId; + + /** 删除状态,默认为未删除 */ + private String deleteFlag; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Specimen.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Specimen.java new file mode 100644 index 0000000000000000000000000000000000000000..67140179e8281238549fadbb9e69482b3de48452 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Specimen.java @@ -0,0 +1,68 @@ +package com.openhis.lab.domain; + +import java.math.BigDecimal; +import java.util.Date; + + +import com.baomidou.mybatisplus.annotation.*; +import com.core.common.core.domain.HisBaseEntity; + + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 【请填写功能名称】Entity实体 + * + * @author system + * @date 2025-10-10 + */ +@Data +@TableName("lab_specimen") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class Specimen extends HisBaseEntity { + + /** 样本的唯一标识符 */ + @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** 与该样本相关的患者ID */ + private Long patientId; + + /** 与该样本相关的ENCounterID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** 与该样本相关的申请服务id */ + @JsonSerialize(using = ToStringSerializer.class) + private Long serviceId; + + /** 样本定义ID,对应 adm_specimen_definition 表的 id */ + private Long specimenDefinitionId; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + /* 样本的采集日期和时间 */ + private Date collectionDate; + +// private String chargeName; // 项目名称 +// private String specimenName; // 样本名称 +// private String doctorName; // 开单医生 + + private Integer specimenVolume; //样本量 + private String specimenUnit; //样本单位 + + /** 样本接收日期 */ + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Date receivedDate; + + /** 采集状态,默认为待采集 */ + private Integer collectionStatusEnum; + + + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefDeviceDefMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefDeviceDefMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..e9139bbe9636523ae0c0c528e10e486967a4abb7 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefDeviceDefMapper.java @@ -0,0 +1,17 @@ +package com.openhis.lab.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.lab.domain.ActivityDefDeviceDef; + +/** + * 耗材和设备定义Mapper接口 + * + * @author system + * @date 2025-10-10 + */ +@Repository +public interface ActivityDefDeviceDefMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefObservationDefMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefObservationDefMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..01317de9b18f09bc059c39110b3303125bce5430 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefObservationDefMapper.java @@ -0,0 +1,17 @@ +package com.openhis.lab.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.lab.domain.ActivityDefObservationDef; + +/** + * 观测指标定义Mapper接口 + * + * @author system + * @date 2025-10-10 + */ +@Repository +public interface ActivityDefObservationDefMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefSpecimenDefMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefSpecimenDefMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..382603ac20edd71c348fdc9f3cc74a44439efeed --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefSpecimenDefMapper.java @@ -0,0 +1,17 @@ +package com.openhis.lab.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.lab.domain.ActivityDefSpecimenDef; + +/** + * 样本定义Mapper接口 + * + * @author system + * @date 2025-10-10 + */ +@Repository +public interface ActivityDefSpecimenDefMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ObservationMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ObservationMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..42537c2476cca7c27bae4ce9a9ac1e90cb5f3c63 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ObservationMapper.java @@ -0,0 +1,17 @@ +package com.openhis.lab.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.lab.domain.Observation; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author system + * @date 2025-10-10 + */ +@Repository +public interface ObservationMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/SpecimenMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/SpecimenMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..5d37bd94fc4cbc685a0274e25b769a90bb3b3fcf --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/SpecimenMapper.java @@ -0,0 +1,18 @@ +package com.openhis.lab.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.lab.domain.Specimen; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author system + * @date 2025-10-10 + */ +@Mapper +public interface SpecimenMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefDeviceDefService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefDeviceDefService.java new file mode 100644 index 0000000000000000000000000000000000000000..5f349b4e94e43f102822e49affcc5958ffdae006 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefDeviceDefService.java @@ -0,0 +1,14 @@ +package com.openhis.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.lab.domain.ActivityDefDeviceDef; + +/** + * 耗材和设备定义Service接口 + * + * @author system + * @date 2025-10-10 + */ +public interface IActivityDefDeviceDefService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefObservationDefService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefObservationDefService.java new file mode 100644 index 0000000000000000000000000000000000000000..76e140a9628d6a0d00b48a09b0a7a144ad3dbd88 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefObservationDefService.java @@ -0,0 +1,14 @@ +package com.openhis.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.lab.domain.ActivityDefObservationDef; + +/** + * 观测指标定义Service接口 + * + * @author system + * @date 2025-10-10 + */ +public interface IActivityDefObservationDefService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefSpecimenDefService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefSpecimenDefService.java new file mode 100644 index 0000000000000000000000000000000000000000..d5aee671c5217490f5ac9e7fe6192160b4f5b6f3 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefSpecimenDefService.java @@ -0,0 +1,14 @@ +package com.openhis.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.lab.domain.ActivityDefSpecimenDef; + +/** + * 样本定义Service接口 + * + * @author system + * @date 2025-10-10 + */ +public interface IActivityDefSpecimenDefService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IObservationService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IObservationService.java new file mode 100644 index 0000000000000000000000000000000000000000..1fe4b354dbd62fee370b2b28b3e7653806c481a9 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IObservationService.java @@ -0,0 +1,14 @@ +package com.openhis.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.lab.domain.Observation; + +/** + * 【请填写功能名称】Service接口 + * + * @author system + * @date 2025-10-10 + */ +public interface IObservationService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/ISpecimenService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/ISpecimenService.java new file mode 100644 index 0000000000000000000000000000000000000000..4dc18b2e9c445c45a80116a4baec0499de83ceb8 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/ISpecimenService.java @@ -0,0 +1,14 @@ +package com.openhis.lab.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.lab.domain.Specimen; + +/** + * Service接口 + * + * @author system + * @date 2025-10-10 + */ +public interface ISpecimenService extends IService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefDeviceDefServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefDeviceDefServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2f952ca025fb5f5f9ac9e129ba89df2b9e33839a --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefDeviceDefServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.lab.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.lab.domain.ActivityDefDeviceDef; +import com.openhis.lab.mapper.ActivityDefDeviceDefMapper; +import com.openhis.lab.service.IActivityDefDeviceDefService; + +/** + * 耗材和设备定义Service业务层处理 + * + * @author system + * @date 2025-10-10 + */ +@Service +public class ActivityDefDeviceDefServiceImpl extends ServiceImpl implements IActivityDefDeviceDefService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefObservationDefServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefObservationDefServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..12082ea966edce198d7a3b42c1559d8d4aec7f70 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefObservationDefServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.lab.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.lab.domain.ActivityDefObservationDef; +import com.openhis.lab.mapper.ActivityDefObservationDefMapper; +import com.openhis.lab.service.IActivityDefObservationDefService; + +/** + * 观测指标定义Service业务层处理 + * + * @author system + * @date 2025-10-10 + */ +@Service +public class ActivityDefObservationDefServiceImpl extends ServiceImpl implements IActivityDefObservationDefService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefSpecimenDefServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefSpecimenDefServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..800babf9fa2b9a38b863c5b4a361e10a9545e06e --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefSpecimenDefServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.lab.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.lab.domain.ActivityDefSpecimenDef; +import com.openhis.lab.mapper.ActivityDefSpecimenDefMapper; +import com.openhis.lab.service.IActivityDefSpecimenDefService; + +/** + * 样本定义Service业务层处理 + * + * @author system + * @date 2025-10-10 + */ +@Service +public class ActivityDefSpecimenDefServiceImpl extends ServiceImpl implements IActivityDefSpecimenDefService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ObservationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ObservationServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..02ae1898f56fb9320e2ccafcd1e27a4137e73830 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ObservationServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.lab.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.lab.domain.Observation; +import com.openhis.lab.mapper.ObservationMapper; +import com.openhis.lab.service.IObservationService; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author system + * @date 2025-10-10 + */ +@Service +public class ObservationServiceImpl extends ServiceImpl implements IObservationService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/SpecimenServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/SpecimenServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..2133b75598edc1498b66ae0183004134857d6086 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/SpecimenServiceImpl.java @@ -0,0 +1,19 @@ +package com.openhis.lab.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.lab.domain.Specimen; +import com.openhis.lab.mapper.SpecimenMapper; +import com.openhis.lab.service.ISpecimenService; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author system + * @date 2025-10-10 + */ +@Service +public class SpecimenServiceImpl extends ServiceImpl implements ISpecimenService { + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java index c080d451c12a3fc459f8dc7d006b3af5c33e168a..80b76fca75a3dfb38834cf68d5e64f51d0d018d7 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationDispenseServiceImpl.java @@ -17,7 +17,7 @@ import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.DateUtils; import com.openhis.common.enums.AssignSeqEnum; import com.openhis.common.enums.DbOpType; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.DispenseStatus; import com.openhis.medication.domain.MedicationDispense; import com.openhis.medication.domain.MedicationRequest; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationRequestServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationRequestServiceImpl.java index 1930ba286c38083076c18d5238b518838a435939..354158d20c6845fe8e2155c8e148a432df9c681d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationRequestServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationRequestServiceImpl.java @@ -8,7 +8,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.RequestStatus; import com.openhis.medication.domain.MedicationRequest; import com.openhis.medication.mapper.MedicationRequestMapper; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java index e8516f816f66a9a2f659190fabbc7835994b0a4b..a4fcbeccd39a645ba546f1d4f9a4c6ecf5a67cac 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationServiceImpl.java @@ -2,8 +2,6 @@ package com.openhis.medication.service.impl; import java.util.List; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.medication.dto.AdjustPriceMedListDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,7 +10,7 @@ import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.core.common.utils.bean.BeanUtils; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.medication.domain.Medication; import com.openhis.medication.domain.MedicationDetail; import com.openhis.medication.mapper.MedicationMapper; @@ -46,7 +44,7 @@ public class MedicationServiceImpl extends ServiceImpl() - .eq(Medication::getDeleteFlag, DelFlag.NO.getValue()).in(Medication::getId, medicationIdList)); + .eq(Medication::getDeleteFlag, DelFlag.NO.getCode()).in(Medication::getId, medicationIdList)); } return null; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/nenu/service/impl/GfRatioServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/nenu/service/impl/GfRatioServiceImpl.java index 7628cc7d9f23719e7b737cec40f4a4ec486a90b9..7e8afa41ad9dc92d30f233e4a62a575dd73e1202 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/nenu/service/impl/GfRatioServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/nenu/service/impl/GfRatioServiceImpl.java @@ -12,8 +12,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.core.common.enums.DeleteFlag; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.GfRatioType; import com.openhis.common.enums.ItemType; import com.openhis.common.enums.ybenums.YbChrgitmLv; @@ -87,7 +86,7 @@ public class GfRatioServiceImpl extends ServiceImpl impl // 查询DB中的所有大项比例 List gfRatioList = this.list(new LambdaQueryWrapper().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue()) - .eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode())); + .eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode())); // 做成医保分项+医保等级拼接的Map Map gfRatioMap = gfRatioList.stream().collect(Collectors.toMap(e -> e.getYbClass() + e.getYbLv(), Function.identity())); diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/EncounterAutoRoll.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/EncounterAutoRoll.java new file mode 100644 index 0000000000000000000000000000000000000000..41124047af15baa9a7f5e58657dadd2e2f4495f2 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/EncounterAutoRoll.java @@ -0,0 +1,58 @@ +package com.openhis.template.domain; + +import java.math.BigDecimal; + +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 lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 住院就诊滚方绑定 + */ +@Data +@TableName("tmp_encounter_auto_roll") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class EncounterAutoRoll extends HisBaseEntity { + + /** ID */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** 状态 */ + private Integer statusEnum; + + /** + * 就诊id + */ + private Long encounterId; + + /** + * 实例表名 + */ + private String instanceTable; + + /** + * 实例id + */ + private Long instanceId; + + /** 数量 */ + private BigDecimal quantity; + + /** + * 参与者id + */ + private Long practitionerId; + + /** + * 参与者科室id + */ + private Long organizationId; + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/mapper/EncounterAutoRollMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/mapper/EncounterAutoRollMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..ab6533dbf63a156210a9570c51a918240dbd2053 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/mapper/EncounterAutoRollMapper.java @@ -0,0 +1,18 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.template.mapper; + +import org.springframework.stereotype.Repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.template.domain.EncounterAutoRoll; + +/** + * 住院就诊滚方绑定 + * + * @author zwh + * @date 2025-04-09 + */ +@Repository +public interface EncounterAutoRollMapper extends BaseMapper {} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/IEncounterAutoRollService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/IEncounterAutoRollService.java new file mode 100644 index 0000000000000000000000000000000000000000..8ad69e2b9ea522042549dcf9384ca02b47cb46a6 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/IEncounterAutoRollService.java @@ -0,0 +1,15 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.template.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.template.domain.EncounterAutoRoll; + +/** + * 住院就诊滚方绑定 + * + * @author zwh + * @date 2025-04-09 + */ +public interface IEncounterAutoRollService extends IService {} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/impl/EncounterAutoRollServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/impl/EncounterAutoRollServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..d98a5cb2d87d9922030b767464213b6cb167c464 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/impl/EncounterAutoRollServiceImpl.java @@ -0,0 +1,21 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.template.service.impl; + +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.template.domain.EncounterAutoRoll; +import com.openhis.template.mapper.EncounterAutoRollMapper; +import com.openhis.template.service.IEncounterAutoRollService; + +/** + * 住院就诊滚方绑定 + * + * @author zwh + * @date 2025-04-09 + */ +@Service +public class EncounterAutoRollServiceImpl extends ServiceImpl + implements IEncounterAutoRollService {} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IActivityDefinitionService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IActivityDefinitionService.java index 1203ba68eb9937d88587fbce42f0f6eff906f62d..7522931fe237a557b613a60a2881602b5212f88d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IActivityDefinitionService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IActivityDefinitionService.java @@ -43,18 +43,40 @@ public interface IActivityDefinitionService extends IService /** * Desc: 根据 项目id数组 加载 诊疗数据集合 + * * @param itemIds * @Author raymond * @Date 12:20 2025/10/18 * @return java.util.List **/ List searchActivityDefinitionByIds(@Param("itemIds") List itemIds); + /** * Desc: 根据关键字查询 如果关键字为空,查询10条,否则返回查询到的所有 + * * @param keyWord * @Author raymond * @Date 07:53 2025/10/22 * @return java.util.List **/ List searchActivityListByKeyWord(String keyWord); + + /** + * 查询某一类的服务 + * + * @param productIdList id集合 + * @param activityDefCategory 类型 + * @return 查询结果 + */ + List getListByIds(List productIdList, Integer activityDefCategory); + + /** + * 查询某一类的服务 + * + * @param productIdList id集合 + * @param typeEnum 类型 + * @return 查询结果 + */ + List getListByTypeEnum(List productIdList, Integer typeEnum); + } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IDeviceDispenseService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IDeviceDispenseService.java index 7a9e95912f205ccde29788c600000b32e743258d..ec00b12a47269e033867a820e65dfdb3504af43a 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IDeviceDispenseService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IDeviceDispenseService.java @@ -6,6 +6,7 @@ import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.Practitioner; +import com.openhis.medication.domain.MedicationDispense; import com.openhis.workflow.domain.DeviceDispense; import com.openhis.workflow.domain.DeviceRequest; @@ -128,4 +129,12 @@ public interface IDeviceDispenseService extends IService { * @param medDispenseId 发放id列表 */ void updateDispenseStatusSummarized(List medDispenseId, String busNo); + + /** + * 通过请求id获取耗材发放信息 + * + * @param requestIdList 请求id + * @return 发放信息 + */ + List selectByRequestIdList(List requestIdList); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IServiceRequestService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IServiceRequestService.java index 9f5cb880a80f0b2cd98f52f60667b83c237a9a65..594e54c3e194086b6ccd1fcfdd1a02880d929b48 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IServiceRequestService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/IServiceRequestService.java @@ -118,4 +118,12 @@ public interface IServiceRequestService extends IService { * @return 请求信息列表 */ List getServiceRequestByActivityId(Long activityId); + + /** + * 查询诊疗对应的服务申请 + * + * @param encounterId 就诊id + * @return 请求信息列表 + */ + List getServiceRequestListByEncounterId(Long encounterId); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ActivityDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ActivityDefinitionServiceImpl.java index ab9f04103ea0d61f67e39b5af664d971733ad468..88fa52deaebe249e3ae3af70a768387b2c0705ef 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ActivityDefinitionServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ActivityDefinitionServiceImpl.java @@ -2,15 +2,16 @@ package com.openhis.workflow.service.impl; import java.util.List; -import com.openhis.medication.dto.AdjustPriceMedListDto; -import com.openhis.workflow.dto.ActivityDto; +import com.core.common.enums.DelFlag; 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.common.enums.PublicationStatus; +import com.openhis.medication.dto.AdjustPriceMedListDto; import com.openhis.workflow.domain.ActivityDefinition; +import com.openhis.workflow.dto.ActivityDto; import com.openhis.workflow.mapper.ActivityDefinitionMapper; import com.openhis.workflow.service.IActivityDefinitionService; @@ -80,4 +81,25 @@ public class ActivityDefinitionServiceImpl extends ServiceImpl getListByIds(List productIdList, Integer activityDefCategory) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (activityDefCategory != null) { + queryWrapper.eq(ActivityDefinition::getCategoryCode, activityDefCategory); + } + queryWrapper.in(ActivityDefinition::getId, productIdList).eq(ActivityDefinition::getDeleteFlag, + DelFlag.NO.getCode()); + return baseMapper.selectList(queryWrapper); + } + + @Override + public List getListByTypeEnum(List productIdList, Integer typeEnum) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (typeEnum != null) { + queryWrapper.eq(ActivityDefinition::getTypeEnum, typeEnum); + } + queryWrapper.in(ActivityDefinition::getId, productIdList).eq(ActivityDefinition::getDeleteFlag, + DelFlag.NO.getCode()); + return baseMapper.selectList(queryWrapper); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceDispenseServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceDispenseServiceImpl.java index c56436e94a45bc50e32a65a83c225ac0aab91cb8..e786959d63f1beadeaccf7fc553632bcad4286d8 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceDispenseServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceDispenseServiceImpl.java @@ -13,11 +13,11 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; import com.core.common.utils.AssignSeqUtil; import com.openhis.administration.domain.Practitioner; import com.openhis.common.enums.AssignSeqEnum; import com.openhis.common.enums.DbOpType; -import com.openhis.common.enums.DelFlag; import com.openhis.common.enums.DispenseStatus; import com.openhis.workflow.domain.DeviceDispense; import com.openhis.workflow.domain.DeviceRequest; @@ -335,4 +335,16 @@ public class DeviceDispenseServiceImpl extends ServiceImpl selectByRequestIdList(List requestIdList) { + return baseMapper.selectList(new LambdaQueryWrapper() + .in(DeviceDispense::getDeviceReqId, requestIdList).eq(DeviceDispense::getDeleteFlag, DelFlag.NO.getCode())); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceRequestServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceRequestServiceImpl.java index 2405b0fdeb344c343bc0942f66bc6a0e470cd335..3d69739501192a737d03603fad5e8838564965cd 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceRequestServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/DeviceRequestServiceImpl.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Practitioner; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.RequestStatus; import com.openhis.workflow.domain.DeviceRequest; import com.openhis.workflow.mapper.DeviceRequestMapper; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/InventoryItemServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/InventoryItemServiceImpl.java index 17b4dc155c925dade1bb6cd3b2a159cb499f5177..13919c7f54c6ef4c939d0bf9b7d01ea1ba545979 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/InventoryItemServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/InventoryItemServiceImpl.java @@ -3,18 +3,16 @@ package com.openhis.workflow.service.impl; import java.math.BigDecimal; import java.util.Date; import java.util.List; -import java.util.Set; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.openhis.workflow.dto.AdjustPriceDto; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.PublicationStatus; import com.openhis.workflow.domain.InventoryItem; +import com.openhis.workflow.dto.AdjustPriceDto; import com.openhis.workflow.mapper.InventoryItemMapper; import com.openhis.workflow.service.IInventoryItemService; @@ -70,7 +68,7 @@ public class InventoryItemServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() .eq(InventoryItem::getItemId, itemId).eq(InventoryItem::getLotNumber, lotNumber) - .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()) + .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getCode()) .eq(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()); if (locationId != null) { queryWrapper.eq(InventoryItem::getLocationId, locationId); @@ -90,7 +88,7 @@ public class InventoryItemServiceImpl extends ServiceImpl selectInventoryByItemIdList(List itemIdList, Integer tenantId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(InventoryItem::getItemId, itemIdList) - .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()) + .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getCode()) .eq(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()); // 查询取库房信息 return baseMapper.selectList(queryWrapper); @@ -104,7 +102,7 @@ public class InventoryItemServiceImpl extends ServiceImpl selectAllInventory() { LambdaQueryWrapper queryWrapper = - new LambdaQueryWrapper().eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()); + new LambdaQueryWrapper().eq(InventoryItem::getDeleteFlag, DelFlag.NO.getCode()); // 查询取库房信息 return baseMapper.selectList(queryWrapper); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java index ddfe71b4c865bddb8066e726b0e889df5ccbb216..763508f61d87fb68449c0ab218cf48a23c3bf838 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/ServiceRequestServiceImpl.java @@ -13,7 +13,7 @@ import com.core.common.utils.DateUtils; import com.core.common.utils.SecurityUtils; import com.openhis.administration.domain.Practitioner; import com.openhis.common.constant.CommonConstants; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.RequestStatus; import com.openhis.workflow.domain.ServiceRequest; import com.openhis.workflow.mapper.ServiceRequestMapper; @@ -225,4 +225,15 @@ public class ServiceRequestServiceImpl extends ServiceImpl() .eq(ServiceRequest::getActivityId, activityId).eq(ServiceRequest::getDeleteFlag, DelFlag.NO.getCode())); } + + /** + * 获取执行过的诊疗数据 + * + * @param encounterId ID + */ + @Override + public List getServiceRequestListByEncounterId(Long encounterId) { + return baseMapper.selectList(new LambdaQueryWrapper() + .eq(ServiceRequest::getEncounterId, encounterId).eq(ServiceRequest::getDeleteFlag, DelFlag.NO.getCode())); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyDeliveryServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyDeliveryServiceImpl.java index 8bc99799aa7b1299d373a8250360347bb24a41a5..d6f7288006f416fd91a7ea411697fb1d0dc9b80e 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyDeliveryServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyDeliveryServiceImpl.java @@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.core.common.utils.DateUtils; import com.core.common.utils.SecurityUtils; import com.openhis.common.constant.CommonConstants; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.common.enums.DispenseStatus; import com.openhis.common.enums.SupplyType; import com.openhis.workflow.domain.SupplyDelivery; @@ -159,7 +159,7 @@ public class SupplyDeliveryServiceImpl extends ServiceImpl yb2402InputInpatientDiseInfo; + List diseinfo; /** * 出院信息 */ - Yb2402InputInpatientDscgInfo yb2402InputInpatientDscgInfo; + Yb2402InputInpatientDscgInfo dscginfo; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2404InputInpatient.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2404InputInpatient.java index b018a616433afeea923dca8bab4465ce46cecbf0..e847b5a3586c5340ba37a6798e13d3453432c74f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2404InputInpatient.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2404InputInpatient.java @@ -33,4 +33,10 @@ public class Yb2404InputInpatient { */ @JSONField(name = "exp_content") private String expContent; + + /** + * 字段扩展 + */ + @JSONField(name = "insuplc_admdvs") + private String insuplcAdmdvs; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2601InputParam.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2601InputParam.java new file mode 100644 index 0000000000000000000000000000000000000000..0a31001ca00bcb8067a531a0b5230ecdf6cf59c6 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2601InputParam.java @@ -0,0 +1,20 @@ +package com.openhis.yb.dto; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +@Data +public class Yb2601InputParam { + + @JSONField(name = "psn_no") + private String psnNo; + + @JSONField(name = "oinfno") + private String oinfno; + + @JSONField(name = "omsgid") + private String omsgid; + + @JSONField(name = "insuplc_admdvs") + private String insuplcAdmdvs; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputData.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputData.java new file mode 100644 index 0000000000000000000000000000000000000000..9d789a2d9fa5bd1a236b01d6a75f43a33ff2d7e4 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputData.java @@ -0,0 +1,46 @@ +package com.openhis.yb.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +public class Yb4101AInputData { + + /** + * 结算清单信息 + */ + Yb4101AInputSetlinfo setlinfo; + + /** + * 门诊慢特病诊断信息 + */ + List opspdiseinfo; + + /** + * 住院诊断信息 + */ + List diseinfo; + + /** + * 手术操作信息 + */ + List oprninfo; + + /** + * 住院ICU信息 + */ + List icuinfo; + + /** + * 住院血Press信息 + */ + List bldinfo; + + /** + * 住院项目信息 + */ + List iteminfo; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputIteminfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputIteminfo.java new file mode 100644 index 0000000000000000000000000000000000000000..ca55bb304701082fbc077f170bf31c6bac9b1ab0 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputIteminfo.java @@ -0,0 +1,61 @@ +package com.openhis.yb.dto; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * 【4101A】收费项目信息(节点标识:iteminfo) + * + * @author Thanking + */ +@Data +@Accessors(chain = true) +public class Yb4101AInputIteminfo { + + /** + * 医疗收费项目 + */ + @NotBlank + @Length(max = 6) + @JSONField(name = "med_chrgitm") + private String medChrgitm; + + /** + * 金额 + */ + @NotBlank + @JSONField(name = "amt") + private String amt; + + /** + * 甲类费用合计 + */ + @JSONField(name = "claa_sumfee") + private String claaSumfee; + + /** + * 乙类金额 + */ + @JSONField(name = "clab_amt") + private Date clabAmt; + + /** + * 全自费金额 + */ + @Length(max = 6) + @JSONField(name = "fulamt_ownpay_amt") + private String fulamtOwnpayAmt; + + /** + * 其他金额 + */ + @JSONField(name = "oth_amt") + private String othAmt; + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputOprninfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputOprninfo.java index 0701ae4bd759187ecb67646a7d522911e2be5987..c988e6886334054d6139bfecfde2c5fe288c5f9d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputOprninfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputOprninfo.java @@ -45,6 +45,13 @@ public class Yb4101AInputOprninfo { @JSONField(name = "oprn_oprt_code") private String oprnOprtCode; + /** + * 手术操作代码 + */ + @JSONField(name = "oprn_oprt_begntime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date oprnOprtDate; + /** * 麻醉方式:参照麻醉-方法代码 */ diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputData.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputData.java new file mode 100644 index 0000000000000000000000000000000000000000..6a652c7c86379b2047d8fbb28f70a09a677297b7 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputData.java @@ -0,0 +1,46 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class Yb4101InputData { + + /** + * 住院结算信息 + */ + Yb4101InputSetlinfo setlinfo; + + /** + * 重症监护信息 + */ + List icuinfo; + + /** + * 手术操作信息 + */ + List oprninfo; + + /** + * 收费项目信息 + */ + List iteminfo; + + /** + * 住院诊断信息 + */ + List diseinfo; + + /** + * 门诊慢特病诊断信息 + */ + List opspdiseinfo; + + /** + * 基金支付信息 + */ + List payinfo; + + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputDiseinfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputDiseinfo.java new file mode 100644 index 0000000000000000000000000000000000000000..881ba38b2eecf5e84858e4515209fde5e3d15fa3 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputDiseinfo.java @@ -0,0 +1,21 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +@Data +public class Yb4101InputDiseinfo { + /** 诊断类别 */ + private String diagType; + + /** 诊断代码 */ + private String diagCode; + + /** 诊断名称 */ + private String diagName; + + /** 入院病情类型 */ + private String admCondType; + + /** 主诊断标志 */ + private String maindiagFlag; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIcuinfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIcuinfo.java new file mode 100644 index 0000000000000000000000000000000000000000..a01fcc7d869c9f369bdd126ea632ab0d64dbfd4d --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIcuinfo.java @@ -0,0 +1,22 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Yb4101InputIcuinfo { + + /** 重症监护病房类型 */ + private String scsCutdWardType; + + /** 重症监护进入时间 */ + private Date scsCutdInpoolTime; + + /** 重症监护退出时间 */ + private Date scsCutdExitTime; + + /** 重症监护合计时长 - 格式:天数/小时数/分钟数,例:1/13/24 */ + private String scsCutdSumDura; + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIteminfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIteminfo.java new file mode 100644 index 0000000000000000000000000000000000000000..92f69c13f27ac2c01be22c41541932722b491b0d --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIteminfo.java @@ -0,0 +1,24 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class Yb4101InputIteminfo { + + /** 医疗收费项目 - 参照医疗收费项目类别 */ + private String medChrgitm; + + /** 金额 */ + private BigDecimal amt; + + /** 甲类费用合计 */ + private BigDecimal claaSumfee; + + /** 乙类金额 */ + private BigDecimal clabAmt; + + /** 全自费金额 */ + private BigDecimal fulamtOwnpayAmt; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOprninfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOprninfo.java new file mode 100644 index 0000000000000000000000000000000000000000..d9bdbc8bf29037b9245b77f93ab3cab1c4d707a1 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOprninfo.java @@ -0,0 +1,37 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Yb4101InputOprninfo { + + /** 手术操作类别 */ + private String oprnOprtType; + + /** 手术操作名称 */ + private String oprnOprtName; + + /** 手术操作代码 */ + private String oprnOprtCode; + + /** 手术操作日期 */ + private Date oprnOprtDate; + + /** 麻醉方式 - 参照麻醉-方法代码 */ + private String anstWay; + + /** 术者医师姓名 */ + private String operDrName; + + /** 术者医师代码 */ + private String operDrCode; + + /** 麻醉医师姓名 */ + private String anstDrName; + + /** 麻醉医师代码 */ + private String anstDrCode; + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOpspdiseinfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOpspdiseinfo.java new file mode 100644 index 0000000000000000000000000000000000000000..7b8a623010b602ba132baeafa09afab733a596c5 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOpspdiseinfo.java @@ -0,0 +1,22 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +@Data +public class Yb4101InputOpspdiseinfo { + + /** 诊断名称 - 与结算时慢特病种保持一致 */ + private String diagName; + + /** 诊断代码 - 与结算时慢特病种保持一致 */ + private String diagCode; + + /** 手术操作名称 */ + private String oprnOprtName; + + /** 手术操作代码 */ + private String oprnOprtCode; + + /** 主诊断标志 */ + private String maindiagFlag; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputPayinfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputPayinfo.java new file mode 100644 index 0000000000000000000000000000000000000000..0e04650fe68f338f40a5fc5976389c324cf361d7 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputPayinfo.java @@ -0,0 +1,17 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class Yb4101InputPayinfo { + /** + * 基金支付类别 + */ + private String fundPayType; + /** + * 基金支付金额 + */ + private BigDecimal fundPayamt; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputSetlinfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputSetlinfo.java new file mode 100644 index 0000000000000000000000000000000000000000..56543d71ed102cdf3207771945670e13be9d2c07 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputSetlinfo.java @@ -0,0 +1,256 @@ +package com.openhis.yb.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class Yb4101InputSetlinfo { + + /** 就诊ID */ + private String mdtrtId; + + /** 结算ID */ + private String setlId; + + /** 定点医药机构名称 */ + private String fixmedinsName; + + /** 定点医药机构编号 */ + private String fixmedinsCode; + + /** 医保结算等级 */ + private String hiSetlLv; + + /** 医保编号 */ + private String hiNo; + + /** 病案号 */ + private String medcasno; + + /** 申报时间 */ + private Date dclaTime; + + /** 人员姓名 */ + private String psnName; + + /** 性别 */ + private String gend; + + /** 出生日期 */ + private Date brdy; + + /** 年龄 */ + private BigDecimal age; + + /** 国籍 */ + private String ntly; + + /** (年龄不足1周岁)年龄 */ + private Integer nwbAge; + + /** 民族 */ + private String naty; + + /** 患者证件类别 */ + private String patnCertType; + + /** 证件号码 */ + private String certno; + + /** 职业 */ + private String prfs; + + /** 现住址 */ + private String currAddr; + + /** 单位名称 */ + private String empName; + + /** 单位地址 */ + private String empAddr; + + /** 单位电话 */ + private String empTel; + + /** 邮编 */ + private String poscode; + + /** 联系人姓名 */ + private String conerName; + + /** 与患者关系 */ + private String patnRlts; + + /** 联系人地址 */ + private String conerAddr; + + /** 联系人电话 */ + private String conerTel; + + /** 医保类型 */ + private String hiType; + + /** 参保地 */ + private String insuplc; + + /** 特殊人员类型 */ + private String spPsnType; + + /** 新生儿入院类型 */ + private String nwbAdmType; + + /** 新生儿出生体重 */ + private BigDecimal nwbBirWt; + + /** 新生儿入院体重 */ + private BigDecimal nwbAdmWt; + + /** 门诊慢特病诊断科别 */ + private String opspDiagCaty; + + /** 门诊慢特病就诊日期 */ + private Date opspMdtrtDate; + + /** 住院医疗类型 */ + private String iptMedType; + + /** 入院途径 */ + private String admWay; + + /** 治疗类别 */ + private String trtType; + + /** 入院时间 */ + private Date admTime; + + /** 入院科别 */ + private String admCaty; + + /** 转科科别 */ + private String refldeptDept; + + /** 出院时间 */ + private Date dscgTime; + + /** 出院科别 */ + private String dscgCaty; + + /** 实际住院天数 */ + private Integer actIptDays; + + /** 门(急)诊西医诊断 */ + private String otpWmDise; + + /** 西医诊断疾病代码 */ + private String wmDiseCode; + + /** 门(急)诊中医诊断 */ + private String otpTcmDise; + + /** 中医诊断代码 */ + private String tcmDiseCode; + + /** 诊断代码计数 */ + private Integer diagCodeCnt; + + /** 主诊断标志 */ + private String maindiagFlag; + + /** 手术操作代码计数 */ + private Integer oprnOprtCodeCnt; + + /** 呼吸机使用时长 */ + private String ventUsedDura; + + /** 颅脑损伤患者入院前昏迷时长 */ + private String pwcryBfadmComaDura; + + /** 颅脑损伤患者入院后昏迷时长 */ + private String pwcryAfadmComaDura; + + /** 输血品种 */ + private String bldCat; + + /** 输血量 */ + private BigDecimal bldAmt; + + /** 输血计量单位 */ + private String bldUnt; + + /** 特级护理天数 */ + private Integer spgaNurscareDays; + + /** 一级护理天数 */ + private Integer lv1NurscareDays; + + /** 二级护理天数 */ + private Integer scdNurscareDays; + + /** 三级护理天数 */ + private Integer lv3NurscareDays; + + /** 离院方式 */ + private String dscgWay; + + /** 拟接收机构名称 */ + private String acpMedinsName; + + /** 拟接收机构代码 */ + private String acpOptinsCode; + + /** 票据代码 */ + private String billCode; + + /** 票据号码 */ + private String billNo; + + /** 业务流水号 */ + private String bizSn; + + /** 出院31天内再住院计划标志 */ + private String daysRinpFlag31; + + /** 出院31天内再住院目的 */ + private String daysRinpPup31; + + /** 主诊医师姓名 */ + private String chfpdrName; + + /** 主诊医师代码 */ + private String chfpdrCode; + + /** 结算开始日期 */ + private Date setlBegnDate; + + /** 结算结束日期 */ + private Date setlEndDate; + + /** 个人自付 */ + private BigDecimal psnSelfpay; + + /** 个人自费 */ + private BigDecimal psnOwnpay; + + /** 个人账户支出 */ + private BigDecimal acctPay; + + /** 个人现金支付 */ + private BigDecimal psnCashpay; + + /** 医保支付方式 */ + private String hiPaymtd; + + /** 医保机构 */ + private String hsorg; + + /** 医保机构经办人 */ + private String hsorgOpter; + + /** 医疗机构填报部门 */ + private String medinsFillDept; + + /** 医疗机构填报人 */ + private String medinsFillPsn; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4102InputStastInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4102InputStastInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..d193cea924411e02ca5a840c5395837daadee10a --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4102InputStastInfo.java @@ -0,0 +1,23 @@ +package com.openhis.yb.dto; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +@Data +public class Yb4102InputStastInfo { + /** + * 患者编号 + */ + @JSONField(name = "psn_no") + private String psnNo; + /** + * 结算单编号 + */ + @JSONField(name = "setl_id") + private String setlId; + /** + * 统计类别 + */ + @JSONField(name = "stas_type") + private String stasType; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4104InputDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4104InputDto.java new file mode 100644 index 0000000000000000000000000000000000000000..112492e80b13fe2ed9afbadd1bbd634ee3f5457f --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4104InputDto.java @@ -0,0 +1,49 @@ +package com.openhis.yb.dto; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.Data; + +@Data +public class Yb4104InputDto { + + /** + * 患者编号 + */ + @JSONField(name = "setl_ym", format = "yyyyMM") + private String setlYm; + /** + * 患者编号 + */ + @JSONField(name = "psn_no") + private String psnNo; + /** + * 结算单编号 + */ + @JSONField(name = "setl_id") + private String setlId; + /** + * 错误等级 + */ + @JSONField(name = "err_lv") + private String errLv; + /** + * 回退标志 + */ + @JSONField(name = "retn_flag") + private String retnFlag; + /** + * 统计类别 + */ + @JSONField(name = "stas_type") + private String stasType; + /** + * 当前页数 + */ + @JSONField(name = "page_num") + private String pageNum; + /** + * 本页数据量 + */ + @JSONField(name = "page_size") + private String pageSize; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputBaseInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputBaseInfoDto.java new file mode 100644 index 0000000000000000000000000000000000000000..b5f9c797ea3ef9913c73e418abf24317c7f20fe0 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputBaseInfoDto.java @@ -0,0 +1,695 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.yb.dto; + +import java.math.BigDecimal; +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 【4401】基本信息 + * + * @author SunJQ + * @date 2025-11-17 + */ +@Data +@Accessors(chain = true) +public class Yb4401InputBaseInfoDto { + + /** + * 格式:定点医药机构编号+院内唯一流水号 + */ + private String mdtrtSn; + + /** + * 就诊ID + */ + private String mdtrtId; + + /** + * 人员编号 + */ + private String psnNo; + + /** + * 患者住院次数 + */ + private String patnIptCnt; + + /** + * 住院号 + */ + private String iptNo; + + /** + * 病案号 + */ + private String medcasno; + + /** + * 人员姓名 + */ + private String psnName; + + /** + * 性别 + */ + private String gend; + + /** + * 出生日期 + */ + private String brdy; + + /** + * 国籍 + */ + private String ntly; + + /** + * 国籍名称 + */ + private String ntlyName; + + /** + * 新生儿出生体重 + */ + private String nwbBirWt; + + /** + * 新生儿入院体重 + */ + private String nwbAdmWt; + + /** + * 出生地 + */ + private String birplc; + + /** + * 籍贯 + */ + private String napl; + + /** + * 民族名称 + */ + private String natyName; + + /** + * 民族 + */ + private String naty; + + /** + * 证件号码 + */ + private String certno; + + /** + * 职业 + */ + private String prfs; + + /** + * 婚姻状态 + */ + private String mrgStas; + + /** + * 现住址-邮政编码 + */ + private String currAddrPoscode; + + /** + * 现住址 + */ + private String currAddr; + + /** + * 个人联系电话 + */ + private String psnTel; + + /** + * 户口地址-省(自治区、直辖市) + */ + private String resdAddrProv; + + /** + * 户口地址-市(地区) + */ + private String resdAddrCity; + + /** + * 户口地址-县(区) + */ + private String resdAddrCoty; + + /** + * 户口地址-乡(镇、街道办事处) + */ + private String resdAddrSubd; + + /** + * 户口地址-村(街、路、弄等) + */ + private String resdAddrVil; + + /** + * 户口地址-门牌号码 + */ + private String resdAddrHousnum; + + /** + * 户口地址-邮政编码 + */ + private String resdAddrPoscode; + + /** + * 户口地址 + */ + private String resdAddr; + + /** + * 工作单位联系电话 + */ + private String emprTel; + + /** + * 工作单位-邮政编码 + */ + private String emprPoscode; + + /** + * 工作单位及地址 + */ + private String emprAddr; + + /** 联系人电话 */ + private String conerTel; + + /** + * 联系人姓名 + */ + private String conerName; + + /** + * 联系人地址 + */ + private String conerAddr; + + /** + * 与联系人关系代码 + */ + private String conerRltsCode; + + /** + * 入院途径名称 + */ + private String admWayName; + + /** + * 入院途径代码 + */ + private String admWayCode; + + /** + * 治疗类别名称 + */ + private String trtTypeName; + + /** + * 治疗类别 + */ + private String trtType; + + /** + * 入院科别 + */ + private String admCaty; + + /** + * 入院病房 + */ + private String admWard; + + /** + * 入院日期 + */ + private Date admDate; + + /** + * 出院日期 + */ + private Date dscgDate; + + /** + * 出院科别 + */ + private String dscgCaty; + + /** + * 转科科别名称 + */ + private String refldeptCatyName; + + /** + * 出院病房 + */ + private String dscgWard; + + /** + * 住院天数 + */ + private Integer iptDays; + + /** 药物过敏标志 */ + private String drugDicmFlag; + + /** + * 过敏药物名称 + */ + private String dicmDrugName; + + /** + * 死亡患者尸检标志 + */ + private String dieAutpFlag; + + /** ABO血型代码 */ + private String aboCode; + + /** + * ABO血型名称 + */ + private String aboName; + + /** + * Rh血型代码 + */ + private String rhCode; + + /** + * RH血型 + */ + private String rhName; + + /** + * 死亡标志 + */ + private String dieFlag; + + /** + * 科主任姓名 + */ + private String deptdrtName; + + /** + * 主任(副主任)医师姓名 + */ + private String chfdrName; + + /** + * 主治医生姓名 + */ + private String atddrName; + + /** + * 主诊医师姓名 + */ + private String chfpdrName; + + /** + * 住院医师姓名 + */ + private String iptDrName; + + /** + * 责任护士姓名 + */ + private String respNursName; + + /** + * 进修医师姓名 + */ + private String trainDrName; + + /** + * 实习医师姓名 + */ + private String intnDrName; + + /** + * 编码员姓名 + */ + private String codrName; + + /** + * 质控医师姓名 + */ + private String qltctrlDrName; + + /** + * 质控护士姓名 + */ + private String qltctrlNursName; + + /** + * 病案质量名称 + */ + private String medcasQltName; + + /** + * 病案质量代码 + */ + private String medcasQltCode; + + /** + * 质控日期 + */ + private Date qltctrlDate; + + /** + * 离院方式名称 + */ + private String dscgWayName; + + /** + * 离院方式 + */ + private String dscgWay; + + /** + * 拟接收医疗机构代码 + */ + private String acpMedinsCode; + + /** + * 拟接收医疗机构名称 + */ + private String acpMedinsName; + + /** + * 出院31天内再住院计划标志 + */ + private String dscg31daysRinpFlag; + + /** + * 出院31天内再住院目的 + */ + private String dscg31daysRinpPup; + + /** + * 损伤、中毒的外部原因 + */ + private String damgIntxExtRea; + + /** + * 损伤、中毒的外部原因疾病编码 + */ + private String damgIntxExtReaDisecode; + + /** + * 颅脑损伤患者入院前昏迷时长 + */ + private String brnDamgBfadmComaDura; + + /** + * 颅脑损伤患者入院后昏迷时长 + */ + private String brnDamgAfadmComaDura; + + /** + * 呼吸机使用时长 + */ + private String ventUsedDura; + + /** + * 确诊日期 + */ + private Date cnfmDate; + + /** + * 患者疾病诊断对照 + */ + private String patnDiseDiagCrsp; + + /** + * 住院患者疾病诊断对照代码 + */ + private String patnDiseDiagCrspCode; + + /** + * 住院患者诊断符合情况 + */ + private String iptPatnDiagInscp; + + /** + * 住院患者诊断符合情况代码 + */ + private String iptPatnDiagInscpCode; + + /** + * 出院治疗结果 + */ + private String dscgTrtRslt; + + /** + * 出院治疗结果代码 + */ + private String dscgTrtRsltCode; + + /** + * 医疗机构组织机构代码 + */ + private String medinsOrgcode; + + /** + * 年龄 + */ + private BigDecimal age; + + /** + * 过敏源 + */ + private String aise; + + /** + * 研究生实习医师姓名 + */ + private String poteIntnDrName; + + /** + * 乙肝表面抗原(HBsAg) + */ + private String hbsag; + + /** + * 丙型肝炎抗体(HCV-Ab) + */ + private String hcvAb; + + /** + * 艾滋病毒抗体(hiv-ab) + */ + private String hivAb; + + /** + * 抢救次数 + */ + private Integer rescCnt; + + /** + * 抢救成功次数 + */ + private Integer rescSuccCnt; + + /** + * 手术、治疗、检查、诊断为本院第一例 + */ + private String hospDiseFsttime; + + /** + * 医保基金付费方式名称 + */ + private String hifPayWayName; + + /** + * 医保基金付费方式代码 + */ + private String hifPayWayCode; + + /** + * 医疗费用支付方式名称 + */ + private String medFeePaymtdName; + + /** + * 医疗费用支付方式代码 + */ + private String medfeePaymtdCode; + + /** + * 自付金额 + */ + private BigDecimal selfpayAmt; + + /** + * 医疗费总额 + */ + private BigDecimal medfeeSumamt; + + /** + * 一般医疗服务费 + */ + private BigDecimal ordnMedServfee; + + /** + * 一般治疗操作费 + */ + private BigDecimal ordnTrtOprtFee; + + /** + * 护理费 + */ + private BigDecimal nursFee; + + /** + * 综合医疗服务类其他费用 + */ + private BigDecimal comMedServOthFee; + + /** + * 病理诊断费 + */ + private BigDecimal palgDiagFee; + + /** + * 实验室诊断费 + */ + private BigDecimal labDiagFee; + + /** + * 影像学诊断费 + */ + private BigDecimal rdhyDiagFee; + + /** + * 临床诊断项目费 + */ + private BigDecimal clncDiseFee; + + /** + * 非手术治疗项目费 + */ + private BigDecimal nsrgtrtItemFee; + + /** + * 临床物理治疗费 + */ + private BigDecimal clncPhysTrtFee; + + /** + * 手术治疗费 + */ + private BigDecimal rgtrtTrtFee; + + /** + * 麻醉费 + */ + private BigDecimal anstFee; + + /** + * 手术费 + */ + private BigDecimal rgtrtFee; + + /** + * 康复费 + */ + private BigDecimal rhabFee; + + /** + * 中医治疗费 + */ + private BigDecimal tcmTrtFee; + + /** + * 西药费 + */ + private BigDecimal wmFee; + + /** + * 抗菌药物费用 + */ + private BigDecimal abtlMednFee; + + /** + * 中成药费 + */ + private BigDecimal tcmpatFee; + + /** + * 中药饮片费 + */ + private BigDecimal tcmherbFee; + + /** + * 血费 + */ + private BigDecimal bloFee; + + /** + * 白蛋白类制品费 + */ + private BigDecimal albuFee; + + /** + * 球蛋白类制品费 + */ + private BigDecimal glonFee; + + /** + * 凝血因子类制品费 + */ + private BigDecimal clotfacFee; + + /** + * 细胞因子类制品费 + */ + private BigDecimal cykiFee; + + /** + * 检查用一次性医用材料费 + */ + private BigDecimal examDspoMatlFee; + + /** + * 治疗用一次性医用材料费 + */ + private BigDecimal trtDspoMatlFee; + + /** + * 手术用一次性医用材料费 + */ + private BigDecimal oprnDspoMatlFee; + + /** + * 其他费 + */ + private BigDecimal othFee; + + /** + * 有效标志 + */ + private String valiFlag; + + /** + * 定点医药机构编号 + */ + private String fixmedinsCode; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDiseInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDiseInfoDto.java new file mode 100644 index 0000000000000000000000000000000000000000..e62921adb54e3b9d6eb0b1b09f63092ec6a87066 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDiseInfoDto.java @@ -0,0 +1,113 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.yb.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 【4401】诊断信息 + * + * @author SunJQ + * @date 2025-11-17 + */ +@Data +@Accessors(chain = true) +public class Yb4401InputDiseInfoDto { + + /** + * 病理号 + */ + private String palgNo; + + /** + * 住院患者疾病诊断类型代码 + */ + private String iptPatnDisediagTypeCode; + + /** + * 疾病诊断类型 + */ + private String disediagType; + + /** + * 主诊断标志 + */ + private String maindiagFlag; + + /** + * 诊断代码 + */ + private String diagCode; + + /** + * 诊断名称 + */ + private String diagName; + + /** + * 院内诊断代码 + */ + private String inhospDiagCode; + + /** + * 院内诊断名称 + */ + private String inhospDiagName; + + /** + * 入院疾病病情名称 + */ + private String admDiseCondName; + + /** + * 入院疾病病情代码 + */ + private String admDiseCondCode; + + /** + * 入院病情 + */ + private String admCond; + + /** + * 入院时病情代码 + */ + private String admCondCode; + + /** + * 最高诊断依据 + */ + private String highDiagEvid; + + /** + * 分化程度 + */ + private String bkupDeg; + + /** + * 分化程度代码 + */ + private String bkupDegCode; + + /** + * 有效标志 + */ + private String valiFlag; + + /** + * 住院病案首页流水号 + */ + private String iptMedcasHmpgSn; + + /** + * 就医流水号 + */ + private String mdtrtSn; + + /** + * 定点医药机构编号 + */ + private String fixmedinsCode; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDto.java new file mode 100644 index 0000000000000000000000000000000000000000..0c5d5b1f799e722be5930f4934eab570eb47e565 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDto.java @@ -0,0 +1,27 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.yb.dto; + +import java.util.List; + +import lombok.Data; + +/** + * 【4401】 + * + * @author SunJQ + * @date 2025-11-17 + */ +@Data +public class Yb4401InputDto { + + private Yb4401InputBaseInfoDto baseinfo; + + private List diseinfo; + + private List oprninfo; + + private List icuinfo; + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputIcuInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputIcuInfoDto.java new file mode 100644 index 0000000000000000000000000000000000000000..e9bdb002f4784073d297928ef9c6e6db1087df88 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputIcuInfoDto.java @@ -0,0 +1,74 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.yb.dto; + +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 【4401】重症监护信息 + * + * @author SunJQ + * @date 2025-11-17 + */ +@Data +@Accessors(chain = true) +public class Yb4401InputIcuInfoDto { + /** + * 重症监护室代码 + */ + private String icuCodeid; + + /** + * 进入监护室时间 + */ + private Date inpoolIcuTime; + + /** + * 退出监护室时间 + */ + private Date outIcuTime; + + /** + * 医疗机构组织机构代码 + */ + private String medinsOrgcode; + + /** + * 护理等级代码 + */ + private String nurscareLvCode; + + /** + * 护理等级名称 + */ + private String nurscareLvName; + + /** + * 护理天数 + */ + private Integer nurscareDays; + + /** + * 重返重症监护室标志 + */ + private String backIcu; + + /** + * 有效标志 + */ + private String valiFlag; + + /** + * 住院病案首页流水号 + */ + private String iptMedcasHmpgSn; + + /** + * 就医流水号 + */ + private String mdtrtSn; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputOprnInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputOprnInfoDto.java new file mode 100644 index 0000000000000000000000000000000000000000..4ed4097ed44fde9ba97222b91de7d8d4a88cffab --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputOprnInfoDto.java @@ -0,0 +1,215 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.yb.dto; + +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 【4401】手术信息 + * + * @author SunJQ + * @date 2025-11-17 + */ +@Data +@Accessors(chain = true) +public class Yb4401InputOprnInfoDto { + + /** + * 手术操作日期 + */ + private Date oprnOprtDate; + + /** + * 手术操作名称 + */ + private String oprnOprtName; + + /** + * 手术操作代码 + */ + private String oprnOprtCode; + + /** + * 手术操作序列号 + */ + private String oprnOprtSn; + + /** + * 手术级别代码 + */ + private String oprnLvCode; + + /** + * 手术级别名称 + */ + private String oprnLvName; + + /** + * 手术者姓名 + */ + private String operName; + + /** + * 助手Ⅰ姓名 + */ + private String asit1Name; + + /** + * 助手Ⅱ姓名 + */ + private String asitName2; + + /** + * 手术切口愈合等级 + */ + private String sincHealLv; + + /** + * 手术切口愈合等级代码 + */ + private String sincHealLvCode; + + /** + * 麻醉-方法名称 + */ + private String anstMtdName; + + /** + * 麻醉-方法代码 + */ + private String anstMtdCode; + + /** + * 麻醉医师姓名 + */ + private String anstDrName; + + /** + * 手术操作部位 + */ + private String oprnOperPart; + + /** + * 手术操作部位代码 + */ + private String oprnOperPartCode; + + /** + * 手术持续时间 + */ + private String oprnConTime; + + /** + * 麻醉分级名称 + */ + private String anstLvName; + + /** + * 麻醉分级代码 + */ + private String anstLvCode; + + /** + * 手术患者类型 + */ + private String oprnPatnType; + + /** + * 手术患者类型代码 + */ + private String oprnPatnTypeCode; + + /** + * 主要手术标志 + */ + private String mainOprnFlag; + + /** + * 麻醉ASA分级代码 + */ + private String anstAsaLvCode; + + /** + * 麻醉ASA分级名称 + */ + private String anstAsaLvName; + + /** + * 麻醉药物代码 + */ + private String anstMednCode; + + /** + * 麻醉药物名称 + */ + private String anstMednName; + + /** + * 麻醉药物剂量 + */ + private String anstMednDos; + + /** + * 计量单位 + */ + private String unt; + + /** + * 麻醉开始时间 + */ + private Date anstBegntime; + + /** + * 麻醉结束时间 + */ + private Date anstEndtime; + + /** + * 麻醉合并症代码 + */ + private String anstCopnCode; + + /** + * 麻醉合并症名称 + */ + private String anstCopnName; + + /** + * 麻醉合并症描述 + */ + private String anstCopnDscr; + + /** + * 复苏室开始时间 + */ + private Date pacuBegntime; + + /** + * 复苏室结束时间 + */ + private Date pacuEndtime; + + /** + * 取消手术标志 + */ + private String cancOprnFlag; + + /** + * 有效标志 + */ + private String valiFlag; + + /** + * 住院病案首页流水号 + */ + private String iptMedcasHmpgSn; + + /** + * 就医流水号 + */ + private String mdtrtSn; +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientPreSettleMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientPreSettleMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..cd36d3b35e17669ef8f1f5a6935ec75e6bd743b4 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientPreSettleMapper.java @@ -0,0 +1,10 @@ +package com.openhis.yb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.yb.domain.InpatientPreSettle; +import com.openhis.yb.domain.InpatientSettle; +import org.springframework.stereotype.Repository; + +@Repository +public interface InpatientPreSettleMapper extends BaseMapper { +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientRegMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientRegMapper.java index 6baffce4851b71ac2a44b33466b03e3e0ac3c9f1..43676fb488c537cadc3bce9bb564d85e9a888049 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientRegMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientRegMapper.java @@ -6,6 +6,7 @@ package com.openhis.yb.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.openhis.yb.domain.FinancialReconcileRecord; import com.openhis.yb.domain.InpatientReg; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; /** @@ -16,4 +17,6 @@ import org.springframework.stereotype.Repository; */ @Repository public interface InpatientRegMapper extends BaseMapper { + + InpatientReg selectInpatientInfoByEncounterId(@Param("encounterId") String encounterId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientDischargeService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientDischargeService.java index 5f696bc55810f5b9756374e2f086b2e8a7fa88b1..8a76eb84e80f10a89714dc77f9fdd875c8a7aaa1 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientDischargeService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientDischargeService.java @@ -8,7 +8,7 @@ import com.openhis.yb.domain.InpatientDischarge; import com.openhis.yb.domain.InpatientReg; /** - * TODO:请概括描述当前接口的主要用途和注意事项 + * 出院办理服务接口 * * @author SunJQ * @date 2025-07-31 @@ -17,4 +17,5 @@ import com.openhis.yb.domain.InpatientReg; public interface IInpatientDischargeService extends IService { + InpatientDischarge getByMdtrtId(String mdtrtId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientFeeDetailService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientFeeDetailService.java index 80bee2521782f023e3e14c7bbce5235e021d807e..0c7c21b273f9b5f8016bd79e8e5255cc1b84ebe5 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientFeeDetailService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientFeeDetailService.java @@ -4,5 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.yb.domain.InfoPerson; import com.openhis.yb.domain.InpatientFeeDetail; +import java.util.List; + public interface IInpatientFeeDetailService extends IService { + /** + * 获取住院费用明细列表 + * @param mdtrtId 医保就诊id + * @return 集合 + */ + List getFeeDetailList(String mdtrtId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientPreSettleService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientPreSettleService.java new file mode 100644 index 0000000000000000000000000000000000000000..63b241b0332963c7046a4410bb4fe1d1bc16c8c5 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientPreSettleService.java @@ -0,0 +1,11 @@ +package com.openhis.yb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.yb.domain.InpatientPreSettle; +import com.openhis.yb.domain.InpatientSettle; + +import java.util.List; + +public interface IInpatientPreSettleService extends IService { + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientRegService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientRegService.java index 79d69e5a4a2fb5a20b7811953a0c2a40b66cafe3..7045465d1fc8fb31b7d254f0b142da1660a7a812 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientRegService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientRegService.java @@ -22,4 +22,18 @@ public interface IInpatientRegService extends IService { * @return 医保住院挂号信息 */ InpatientReg getInpatientRegByIptNo(String busNo); + + /** + * 根据mdtrtId查询住院挂号信息 + * @param mdtrtId 业务流水号 + * @return 医保住院挂号信息 + */ + InpatientReg getInpatientRegByMdtrtId(String mdtrtId); + + /** + * 根据encounterId查询住院挂号信息 + * @param mdtrtId 业务流水号 + * @return 医保住院挂号信息 + */ + InpatientReg getInpatientRegByEncounterId(String mdtrtId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientSettleService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientSettleService.java index 58545a98ff6bf44e3a2316d28ac975a9350d10ac..621686d20ff0521183f9cdff91c9dea020973012 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientSettleService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientSettleService.java @@ -1,14 +1,24 @@ package com.openhis.yb.service; +import java.util.List; + import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.yb.domain.InpatientSettle; public interface IInpatientSettleService extends IService { /** * 根据医保结算id找到住院结算id + * * @param ybSettleIds * @return */ InpatientSettle getBySettleId(String ybSettleIds); + /** + * 根据就诊id查询到患者结算信息集合 + * + * @param mdtrtId + * @return + */ + List getByMdtrtId(String mdtrtId); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java index 5aae9af74a81ad20a1da1a5bf2c8dc41077ffb3f..4df3c050cfcc9e11bbbb9c260babfc5cd094e106 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbDao.java @@ -16,6 +16,7 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.validation.constraints.NotNull; +import com.core.common.enums.DelFlag; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -161,6 +162,8 @@ public class YbDao { @Autowired private IInpatientFeeDetailService inpatientFeeDetailService; @Autowired + private IInpatientPreSettleService inpatientPreSettleService; + @Autowired private YbParamBuilderUtil ybUtil; @Autowired private IMedicationDispenseService medicationDispenseService; @@ -1249,7 +1252,7 @@ public class YbDao { public PatientInfoDto getPatent(Info1101Output perInfo) { // 查患者信息 Patient patient = - iPatientService.getOne(new LambdaQueryWrapper().eq(Patient::getIdCard, perInfo.getCertno())); + iPatientService.getOne(new LambdaQueryWrapper().eq(Patient::getIdCard, perInfo.getCertno()).last(YbCommonConstants.sqlConst.LIMIT1)); if (patient == null) { patient = new Patient(); // 处理性别字段 @@ -2186,7 +2189,7 @@ public class YbDao { chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto); } } - // 计算医疗总费用 + // 计算医疗总费用(这里总费用的计算方式很多种,现在用的是最老笨的,除了这个还可以去2303和2302去取值) BigDecimal medfee_sumamt = BigDecimal.ZERO; for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) { medfee_sumamt = medfee_sumamt.add(chargeItemBaseInfoDto.getTotalPrice()); @@ -2516,8 +2519,8 @@ public class YbDao { } // 拼装参数 - yb2402InputParam.setYb2402InputInpatientDiseInfo(yb2402InputInpatientDiseInfos); - yb2402InputParam.setYb2402InputInpatientDscgInfo(yb2402InputInpatientDscgInfo); + yb2402InputParam.setDiseinfo(yb2402InputInpatientDiseInfos); + yb2402InputParam.setDscginfo(yb2402InputInpatientDscgInfo); return yb2402InputParam; } @@ -2860,4 +2863,101 @@ public class YbDao { inpatientRegInfoUpdateRecordeService.save(inpatientRegInfoUpdateRecorde); } + + public void updateInpatientRegById(InpatientReg inpatientReg) { + inpatientRegService.updateById(inpatientReg); + } + + public void save2301YbFeeDetail(List yb2301OutputResults,List feedetail,Long encounterId) { + + List feeDetailList = new ArrayList<>(); + InpatientFeeDetail inpatientFeeDetail; + for (Yb2301OutputResult yb2301OutputResult : yb2301OutputResults) { + Optional first = feedetail.stream().filter(yb2301InputFeeDetail -> yb2301InputFeeDetail.getFeedetlSn().equals(yb2301OutputResult.getFeedetlSn())).findFirst(); + if (!first.isPresent()) { + continue; + } + Yb2301InputFeeDetail yb2301InputFeeDetail = first.get(); + inpatientFeeDetail = new InpatientFeeDetail(); + inpatientFeeDetail.setFeedetlSn(yb2301OutputResult.getFeedetlSn()) + .setDetItemFeeSumamt(yb2301OutputResult.getDetItemFeeSumamt()) + .setInitFeedetlSn(yb2301InputFeeDetail.getInitFeedetlSn()) + .setMdtrtId(yb2301InputFeeDetail.getMdtrtId()) + .setDrordNo(yb2301InputFeeDetail.getDrordNo()) + .setPsnNo(yb2301InputFeeDetail.getPsnNo()) + .setMedType(yb2301InputFeeDetail.getMedType()) + .setFeeOcurTime(yb2301InputFeeDetail.getFeeOcurTime()) + .setMedinsListCodg(yb2301InputFeeDetail.getMedinsListCodg()) + .setDetItemFeeSumamt(yb2301OutputResult.getDetItemFeeSumamt()) + .setCnt(yb2301InputFeeDetail.getCnt()) + .setPric(yb2301InputFeeDetail.getPric()) + .setBilgDeptCodg(yb2301InputFeeDetail.getBilgDeptCodg()) + .setBilgDeptName(yb2301InputFeeDetail.getBilgDeptName()) + .setBilgDrCodg(yb2301InputFeeDetail.getBilgDrCodg()) + .setBilgDrName(yb2301InputFeeDetail.getBilgDrName()) + .setPricUplmtAmt(yb2301OutputResult.getPricUplmtAmt()) + .setSelfpayProp(yb2301OutputResult.getSelfpayProp()) + .setFulamtOwnpayAmt(yb2301OutputResult.getFulamtOwnpayAmt()) + .setOverlmtAmt(yb2301OutputResult.getOverlmtAmt()) + .setPreselfpayAmt(yb2301OutputResult.getPreselfpayAmt()) + .setInscpScpAmt(yb2301OutputResult.getInscpScpAmt()) + .setChrgitmLv(yb2301OutputResult.getChrgitmLv()) + .setMedChrgitmType(yb2301OutputResult.getMedChrgitmType()) + .setBasMednFlag(yb2301OutputResult.getBasMednFlag()) + .setHiNegoDrugFlag(yb2301OutputResult.getHiNegoDrugFlag()) + .setChldMedcFlag(yb2301OutputResult.getChldMedcFlag()) + .setListSpItemFlag(yb2301OutputResult.getListSpItemFlag()) + .setLmtUsedFlag(yb2301OutputResult.getLmtUsedFlag()) + .setDrtReimFlag(yb2301OutputResult.getDrtReimFlag()) + .setEncounterId(encounterId); + // + + feeDetailList.add(inpatientFeeDetail); + } + + inpatientFeeDetailService.saveBatch(feeDetailList); + + } + + public void save2303InpatientPreSettle(Yb2303OutputSetInfo yb2303OutputSetInfo) { + InpatientPreSettle inpatientPreSettle = new InpatientPreSettle(); + + inpatientPreSettle.setPsnNo(yb2303OutputSetInfo.getPsnNo()) + .setPsnName(yb2303OutputSetInfo.getPsnName()) + .setPsnCertType(yb2303OutputSetInfo.getPsnCertType()) + .setCertno(yb2303OutputSetInfo.getCertno()) + .setGend(yb2303OutputSetInfo.getGend()) + .setNaty(yb2303OutputSetInfo.getNaty()) + .setBrdy(yb2303OutputSetInfo.getBrdy()) + .setAge(yb2303OutputSetInfo.getAge()) + .setPsnType(yb2303OutputSetInfo.getPsnType()) + .setCvlservFlag(yb2303OutputSetInfo.getCvlservFlag()) + .setSetlTime(yb2303OutputSetInfo.getSetlTime()) + .setMedType(yb2303OutputSetInfo.getMedType()) + .setActPayDedc(yb2303OutputSetInfo.getActPayDedc()) + .setHifpPay(yb2303OutputSetInfo.getHifpPay()) + .setPoolPropSelfpay(yb2303OutputSetInfo.getPoolPropSelfpay()) + .setCvlservPay(yb2303OutputSetInfo.getCvlservPay()) + .setHifesPay(yb2303OutputSetInfo.getHifesPay()) + .setHifmiPay(yb2303OutputSetInfo.getHifmiPay()) + .setHifobPay(yb2303OutputSetInfo.getHifobPay()) + .setMafPay(yb2303OutputSetInfo.getMafPay()) + .setOthPay(yb2303OutputSetInfo.getOthPay()) + .setFundPaySumamt(yb2303OutputSetInfo.getFundPaySumamt()) + .setPsnPartAmt(yb2303OutputSetInfo.getPsnPartAmt()) + .setAcctPay(yb2303OutputSetInfo.getAcctPay()) + .setPsnCashPay(yb2303OutputSetInfo.getPsnCashPay()) + .setHospPartAmt(yb2303OutputSetInfo.getHospPartAmt()) + .setBalc(yb2303OutputSetInfo.getBalc()) + .setAcctMulaidPay(yb2303OutputSetInfo.getAcctMulaidPay()) + .setMedinsSetlId(yb2303OutputSetInfo.getMedinsSetlId()) + .setClrOptins(yb2303OutputSetInfo.getClrOptins()) + .setClrWay(yb2303OutputSetInfo.getClrWay()) + .setClrType(yb2303OutputSetInfo.getClrType()) + .setHifdmPay(yb2303OutputSetInfo.getHifdmPay()); + //inpatientPreSettle.setInputParam(JSON.toJSONString(yb2303OutputSetInfo)); + inpatientPreSettle.setOutputResult(JSON.toJSONString(yb2303OutputSetInfo)); + + inpatientPreSettleService.save(inpatientPreSettle); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbHttpUtils.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbHttpUtils.java index 2d505be91d1dc610a26416199af0ed5cbab1d39e..590381d70bbb38cc856c0c750afcabb43d40ee2d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbHttpUtils.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbHttpUtils.java @@ -11,8 +11,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; -import com.openhis.yb.domain.InpatientDischarge; -import com.openhis.yb.domain.InpatientReg; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; @@ -50,6 +48,7 @@ import com.openhis.financial.domain.Contract; import com.openhis.financial.service.IContractService; import com.openhis.financial.service.impl.ContractServiceImpl; import com.openhis.yb.domain.ClinicReg; +import com.openhis.yb.domain.InpatientReg; import com.openhis.yb.dto.*; import com.openhis.yb.model.Clinic2207OrderModel; import com.openhis.yb.model.Clinic2207OrderParam; @@ -589,10 +588,10 @@ public class YbHttpUtils { return result; } - public Result merchandise(Medical3505Param medical3505Param) { + public Result merchandise(Medical3505Param medical3505Param, Contract contract) { // 发送请求 String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/merchandise", - medical3505Param, null); + medical3505Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } @@ -607,10 +606,10 @@ public class YbHttpUtils { return result; } - public Result cancelMerchandise(Medical3506Param medical3506Param) { + public Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract) { // 发送请求 String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-merchandise", - medical3506Param, null); + medical3506Param, contract); if (StringUtils.isEmpty(s)) { throw new ServiceException("未接收到医保返回参数"); } @@ -708,6 +707,42 @@ public class YbHttpUtils { return result; } + public Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract) { + // 发送请求 + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3512-info", + inventory3512Param, contract); + if (StringUtils.isEmpty(s)) { + throw new ServiceException("未接收到医保返回参数"); + } + // 参数处理 + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(s, Result.class); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + public Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract) { + // 发送请求 + String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3513-info", + inventory3513Param, contract); + if (StringUtils.isEmpty(s)) { + throw new ServiceException("未接收到医保返回参数"); + } + // 参数处理 + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(s, Result.class); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + /** * 发送http请求(2025/05/02经测试,若以自带的工具类发送请求失败,故使用原peis系统中成功调用的写法重新封装) * @@ -722,8 +757,8 @@ public class YbHttpUtils { baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo(parseObject(JSON.toJSONString(o)), contract)).setData(o); logger.info("【请求路径】:" + url + ";【入参】: " + JSON.toJSONString(baseParam)); // 创建Http请求 - RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000) - .setSocketTimeout(30000).build(); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(300000) + .setConnectionRequestTimeout(300000).setSocketTimeout(300000).build(); CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build(); CloseableHttpResponse response = null; // 发送请求 @@ -1095,18 +1130,18 @@ public class YbHttpUtils { Result result = null; try { result = mapper.readValue(resultString, Result.class); - if (result == null) { - throw new ServiceException("未接收到医保返回参数"); - } else if (result.getCode() == 200) { - System.out.println(result.getResult().toString()); - return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class); - } else { - throw new ServiceException(result.getMessage()); - } } catch (Exception e) { logger.error(e.getMessage(), e); } - return null; + + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class); + } else { + return new FileResult().setErrMsg(result.getMessage()); + } } /** @@ -1115,7 +1150,7 @@ public class YbHttpUtils { * @param fileResult * @return */ - public FileResult downLoadFile(FileResult fileResult) { + public String downLoadFile(FileResult fileResult) { String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/download", fileResult, null); if (StringUtils.isEmpty(resultString)) { @@ -1131,7 +1166,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { System.out.println(result.getResult().toString()); - return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class); + return result.getResult().toString(); } else { throw new ServiceException(result.getMessage()); } @@ -1144,13 +1179,13 @@ public class YbHttpUtils { /** * 【2401】住院办理 * - * @param yb2401InputInpatientMdtrtInfo 入參 + * @param jsonObject 入參 * @return 結果 */ - public InpatientReg inpatientReg(Yb2401InputInpatientMdtrtInfo yb2401InputInpatientMdtrtInfo) { + public InpatientReg inpatientReg(JSONObject jsonObject, String contractNo) { String resultString = - httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpatient-reg", - yb2401InputInpatientMdtrtInfo, contractServiceImpl.getContract(yb2401InputInpatientMdtrtInfo.getMdtrtareaAdmvs())); + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpatient-reg", jsonObject, + contractServiceImpl.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } @@ -1174,10 +1209,49 @@ public class YbHttpUtils { return null; } - public InpatientDischarge inpatientCheckOut(Contract contract,Yb2402InputParam yb2402InputInpatientDscgInfo) { + /** + * 【2404】住院办理撤销 + * + * @param yb2404InputInpatient 入參 + * @return 結果 + */ + public void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo) { String resultString = - httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/discharge-patient", - yb2402InputInpatientDscgInfo, contract); + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-inpatient-reg", + yb2404InputInpatient, contractServiceImpl.getContract(contractNo)); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【2404】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2404】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 【2402】出院办理 + * + * @param yb2402InputInpatientDscgInfo 参数 + * @param contractNo 合同编号 + * @return 结果 + */ + public Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo) { + String resultString = + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/discharge-patient", + yb2402InputInpatientDscgInfo, iContractService.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } @@ -1191,7 +1265,7 @@ public class YbHttpUtils { throw new ServiceException("未接收到医保返回参数"); } else if (result.getCode() == 200) { System.out.println(result.getResult().toString()); - return JSON.parseObject(result.getResult().toString(), InpatientDischarge.class); + return JSON.parseObject(result.getResult().toString(), Yb2402InputParam.class); } else { throw new ServiceException(result.getMessage()); } @@ -1201,10 +1275,48 @@ public class YbHttpUtils { return null; } - public void updateInpatientInfo(Yb2403InputParam yb2405InputInpatient) { + /** + * 【2405】出院办理撤销 + * + * @param yb2405InputInpatient 入參 + * @return 結果 + */ + public void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo) { + String resultString = + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-discharge-patient", + yb2405InputInpatient, contractServiceImpl.getContract(contractNo)); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【2404】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2404】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 【2403】 更改住院信息 + * + * @param yb2403InputInpatient 参数 + * @param contractNo 结果 + */ + public void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo) { String resultString = - httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/change-inpatient-info", - yb2405InputInpatient, null); + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/change-inpatient-info", + yb2403InputInpatient, iContractService.getContract(contractNo)); if (StringUtils.isEmpty(resultString)) { throw new ServiceException("未接收到医保返回参数"); } @@ -1224,6 +1336,148 @@ public class YbHttpUtils { } } catch (Exception e) { logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); } } + + public void emrUp(Yb4401InputDto yb4401InputDto) { + String resultString = + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/emr-up", yb4401InputDto, null); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【4401】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4401】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return; + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + /** + * 【2601】冲正交易 + * + * @param toReverse 冲正参数 + * @param contract 省市医保 + */ + public void ybToReverse(Yb2601InputParam toReverse, Contract contract) { + String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/to-reverse", + toReverse, contract); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【4401】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4401】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return; + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + public void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract) { + + String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-up", + yb4101AInputData, contract); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【4101A】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4101A】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return; + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + } + + public void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo) { + String resultString = + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-status-up", + yb4102InputStastInfo, null); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【4102】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【4102】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return; + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + + } + + public void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract) { + String resultString = + httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-2302-fee-detail", + yb2302InpatientParam, contract); + if (StringUtils.isEmpty(resultString)) { + throw new ServiceException("未接收到医保返回参数"); + } + System.out.println("【2302】返回参数:" + JSON.toJSONString(resultString)); + logger.info("【2302】返回参数:" + resultString); + ObjectMapper mapper = new ObjectMapper(); + Result result = null; + try { + result = mapper.readValue(resultString, Result.class); + if (result == null) { + throw new ServiceException("未接收到医保返回参数"); + } else if (result.getCode() == 200) { + System.out.println(result.getResult().toString()); + return; + } else { + throw new ServiceException(result.getMessage()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java index 1457c5c86ae0c04c9d5fa1b4b159b05669fa3bdc..0c86ff876d45b09834579eca30af0bb0b12852f1 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/YbManager.java @@ -4,8 +4,12 @@ package com.openhis.yb.service; import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -700,9 +704,9 @@ public class YbManager { * @param medical3505Param 发药详细信息 * @return 结果 */ - public R merchandise(Medical3505Param medical3505Param) { + public R merchandise(Medical3505Param medical3505Param, Contract contract) { - Result result = ybHttpService.merchandise(medical3505Param); + Result result = ybHttpService.merchandise(medical3505Param, contract); Medical3505Result medical3505Result = JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class); if ("1".equals(medical3505Result.getRetRslt())) { @@ -717,10 +721,11 @@ public class YbManager { * 【3506】商品销售退货 * * @param medical3506Param 退货详细信息 + * @param contract 合同信息 * @return 结果 */ - public R cancelMerchandise(Medical3506Param medical3506Param) { - Result result = ybHttpService.cancelMerchandise(medical3506Param); + public R cancelMerchandise(Medical3506Param medical3506Param, Contract contract) { + Result result = ybHttpService.cancelMerchandise(medical3506Param, contract); Medical3505Result medical3505Result = JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class); if ("1".equals(medical3505Result.getRetRslt())) { @@ -915,28 +920,62 @@ public class YbManager { Yb2301InputFeeDetail yb2301InputFeeDetail; List yb2301InputFeeDetailList = new ArrayList(); - // int i = 1; - for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) { - yb2301InputFeeDetail = new Yb2301InputFeeDetail(); - yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo()).setMdtrtId(inpatientReg.getMdtrtId()) - .setPsnNo(inpatientReg.getPsnNo()).setMedType(String.valueOf(encounter.getYbClassEnum())) - .setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate()).setMedListCodg(chargeItemBaseInfoDto.getYbNo()) - .setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo()) - .setDetItemFeeSumamt(chargeItemBaseInfoDto.getTotalPrice()) - .setCnt(chargeItemBaseInfoDto.getQuantityValue()).setPric(chargeItemBaseInfoDto.getUnitPrice()) - .setBilgDeptName(chargeItemBaseInfoDto.getDeptName()).setBilgDrName(chargeItemBaseInfoDto.getDoctName()) - .setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo()) - .setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo()); - - yb2301InputFeeDetailList.add(yb2301InputFeeDetail); + BigDecimal quantity = BigDecimal.ZERO; + // 分组分类 + Map> groupByTable = + chargeItemBaseInfoDtosList.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getServiceTable)); + for (Map.Entry> stringListEntry : groupByTable.entrySet()) { + Map> groupById = + stringListEntry.getValue().stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getServiceId)); + for (Map.Entry> longListEntry : groupById.entrySet()) { + quantity = BigDecimal.ZERO; + for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : longListEntry.getValue()) { + quantity = quantity.add(chargeItemBaseInfoDto.getQuantityValue()); + } + + ChargeItemBaseInfoDto chargeItemBaseInfoDto = longListEntry.getValue().get(0); + + yb2301InputFeeDetail = new Yb2301InputFeeDetail(); + yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo()) + .setMdtrtId(inpatientReg.getMdtrtId()).setPsnNo(inpatientReg.getPsnNo()) + .setMedType(String.valueOf(encounter.getYbClassEnum())) + .setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate()) + .setMedListCodg(chargeItemBaseInfoDto.getYbNo()) + .setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo()) + // 2025-11-13 李方案住院部分的totalprice不可直接用,要用单价乘以数量,并且比如患者一天一袋氯化钠注射液,预结算的时候要根据同表同id进行归类计算 + .setDetItemFeeSumamt(quantity.multiply(chargeItemBaseInfoDto.getUnitPrice())).setCnt(quantity) + .setPric(chargeItemBaseInfoDto.getUnitPrice()).setBilgDeptName(chargeItemBaseInfoDto.getDeptName()) + .setBilgDrName(chargeItemBaseInfoDto.getDoctName()) + .setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo()) + .setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo()); + + yb2301InputFeeDetailList.add(yb2301InputFeeDetail); + } } + // int i = 1; + // for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) { + // yb2301InputFeeDetail = new Yb2301InputFeeDetail(); + // yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo()).setMdtrtId(inpatientReg.getMdtrtId()) + // .setPsnNo(inpatientReg.getPsnNo()).setMedType(String.valueOf(encounter.getYbClassEnum())) + // .setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate()).setMedListCodg(chargeItemBaseInfoDto.getYbNo()) + // .setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo()) + // //2025-11-13 李方案住院部分的totalprice不可直接用,要用单价乘以数量,并且比如患者一天一袋氯化钠注射液,预结算的时候要根据同表同id进行归类计算 + // .setDetItemFeeSumamt(chargeItemBaseInfoDto.getQuantityValue().multiply(chargeItemBaseInfoDto.getUnitPrice())) + // .setCnt(chargeItemBaseInfoDto.getQuantityValue()).setPric(chargeItemBaseInfoDto.getUnitPrice()) + // .setBilgDeptName(chargeItemBaseInfoDto.getDeptName()).setBilgDrName(chargeItemBaseInfoDto.getDoctName()) + // .setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo()) + // .setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo()); + // yb2301InputFeeDetailList.add(yb2301InputFeeDetail); + // } + Yb2301InputFeeDetailModel yb2301InputFeeDetailModel = new Yb2301InputFeeDetailModel(); yb2301InputFeeDetailModel.setFeedetail(yb2301InputFeeDetailList) .setInsuplcAdmdvs(inpatientReg.getInsuplcAdmdvs()); List yb2301OutputResults = ybHttpService.upload2301FeeDetail(yb2301InputFeeDetailModel); // todo :数据保存 + ybBaseService.save2301YbFeeDetail(yb2301OutputResults, yb2301InputFeeDetailList, encounter.getId()); // for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtos) { // if (chargeItemBaseInfoDto.getContractNo().equals(CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)) { @@ -974,6 +1013,7 @@ public class YbManager { throw new ServiceException("医保预结算失败"); } // todo:数据保存 + ybBaseService.save2303InpatientPreSettle(yb2303OutputSetInfo); return yb2303OutputSetInfo; } @@ -1012,6 +1052,5 @@ public class YbManager { return yb2305OutputSetlInfo; } - public void hospitalAdmission() { - } + public void hospitalAdmission() {} } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/ClinicUnSettleServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/ClinicUnSettleServiceImpl.java index 933831a21b0ce0a0871a9827a3d4de128f3b235d..2bf0b58d337adc49854d09e703d3b94ceb5f9abb 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/ClinicUnSettleServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/ClinicUnSettleServiceImpl.java @@ -6,7 +6,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.yb.domain.ClinicUnSettle; import com.openhis.yb.mapper.ClinicUnSettleMapper; import com.openhis.yb.service.IClinicUnSettleService; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientDischargeServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientDischargeServiceImpl.java index 871014f57aca23c3749f95598b9421eec9e6b24b..12b72eff673eb1e75dc876e8a47ff8506843df46 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientDischargeServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientDischargeServiceImpl.java @@ -5,17 +5,15 @@ package com.openhis.yb.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; +import com.openhis.common.constant.YbCommonConstants; import com.openhis.yb.domain.InpatientDischarge; -import com.openhis.yb.domain.InpatientReg; import com.openhis.yb.mapper.InpatientDischargeMapper; -import com.openhis.yb.mapper.InpatientRegMapper; import com.openhis.yb.service.IInpatientDischargeService; -import com.openhis.yb.service.IInpatientRegService; import org.springframework.stereotype.Service; /** - * TODO:请概括描述当前类的主要用途和注意事项 + * 医保出院Mapper * * @author SunJQ * @date 2025-07-31 @@ -23,6 +21,9 @@ import org.springframework.stereotype.Service; @Service public class InpatientDischargeServiceImpl extends ServiceImpl implements IInpatientDischargeService { - - + @Override + public InpatientDischarge getByMdtrtId(String mdtrtId) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(InpatientDischarge::getMdtrtId, mdtrtId) + .eq(InpatientDischarge::getDeleteFlag, DelFlag.NO.getCode()).last(YbCommonConstants.sqlConst.LIMIT1)); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientFeeDetailServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientFeeDetailServiceImpl.java index 88ac252875ae8f39744592dcebd5e5ca16dc7bea..dd2a71ae1e5f3f89ea518236e8fd307f5cf5874c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientFeeDetailServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientFeeDetailServiceImpl.java @@ -1,11 +1,18 @@ package com.openhis.yb.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.yb.domain.InpatientFeeDetail; import com.openhis.yb.mapper.InpatientFeeDetailMapper; import com.openhis.yb.service.IInpatientFeeDetailService; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class InpatientFeeDetailServiceImpl extends ServiceImpl implements IInpatientFeeDetailService { + @Override + public List getFeeDetailList(String mdtrtId) { + return baseMapper.selectList(new LambdaQueryWrapper().eq(InpatientFeeDetail::getMdtrtId, mdtrtId)); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientPreSettleServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientPreSettleServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f6971c7e65e175201e6ddf480611c0dfe7fdc205 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientPreSettleServiceImpl.java @@ -0,0 +1,21 @@ +package com.openhis.yb.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.enums.DelFlag; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.yb.domain.InpatientPreSettle; +import com.openhis.yb.domain.InpatientSettle; +import com.openhis.yb.mapper.InpatientPreSettleMapper; +import com.openhis.yb.mapper.InpatientSettleMapper; +import com.openhis.yb.service.IInpatientPreSettleService; +import com.openhis.yb.service.IInpatientSettleService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class InpatientPreSettleServiceImpl extends ServiceImpl + implements IInpatientPreSettleService { + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientRegServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientRegServiceImpl.java index 0ba8e4e8d9140f4bc627927f8503ff082a4ee4ae..a0d9db0c94b1efde8df64af0ed4c485630481ae3 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientRegServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientRegServiceImpl.java @@ -5,7 +5,7 @@ package com.openhis.yb.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.openhis.common.enums.DelFlag; +import com.core.common.enums.DelFlag; import com.openhis.yb.domain.InpatientReg; import com.openhis.yb.mapper.InpatientRegMapper; import com.openhis.yb.service.IInpatientRegService; @@ -26,4 +26,15 @@ public class InpatientRegServiceImpl extends ServiceImpl().eq(InpatientReg::getIptNo, busNo) .eq(InpatientReg::getDeleteFlag, DelFlag.NO.getCode())); } + + @Override + public InpatientReg getInpatientRegByMdtrtId(String mdtrtId) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(InpatientReg::getMdtrtId, mdtrtId) + .eq(InpatientReg::getDeleteFlag, DelFlag.NO.getCode())); + } + + @Override + public InpatientReg getInpatientRegByEncounterId(String encounterId) { + return baseMapper.selectInpatientInfoByEncounterId(encounterId); + } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientSettleServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientSettleServiceImpl.java index 3646a739ddf85f638eaff177ac931337ca9dde75..2b613af5fda550f51c8c905907db03ef7a90907b 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientSettleServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientSettleServiceImpl.java @@ -1,18 +1,30 @@ package com.openhis.yb.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.common.constant.YbCommonConstants; -import com.openhis.common.enums.Whether; +import com.core.common.enums.DelFlag; import com.openhis.yb.domain.InpatientSettle; import com.openhis.yb.mapper.InpatientSettleMapper; import com.openhis.yb.service.IInpatientSettleService; -import org.springframework.stereotype.Service; @Service -public class InpatientSettleServiceImpl extends ServiceImpl implements IInpatientSettleService { +public class InpatientSettleServiceImpl extends ServiceImpl + implements IInpatientSettleService { @Override public InpatientSettle getBySettleId(String ybSettleIds) { - return baseMapper.selectOne(new LambdaQueryWrapper().eq(InpatientSettle::getSetlId,ybSettleIds).eq(InpatientSettle::getDeleteFlag, Whether.NO.getValue()).last(YbCommonConstants.sqlConst.LIMIT1)); + return baseMapper + .selectOne(new LambdaQueryWrapper().eq(InpatientSettle::getSetlId, ybSettleIds) + .eq(InpatientSettle::getDeleteFlag, DelFlag.NO.getCode()).last(YbCommonConstants.sqlConst.LIMIT1)); + } + + @Override + public List getByMdtrtId(String mdtrtId) { + return baseMapper.selectList(new LambdaQueryWrapper().eq(InpatientSettle::getMdtrtId, mdtrtId) + .eq(InpatientSettle::getDeleteFlag, DelFlag.NO.getCode())); } } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/util/YbParamBuilderUtil.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/util/YbParamBuilderUtil.java index 667b34674488e42ce9880f9f066aac92c1c69775..539ca6a79a97c2e35ed7a976813bba08dfb20b8c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/util/YbParamBuilderUtil.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/util/YbParamBuilderUtil.java @@ -271,8 +271,9 @@ public class YbParamBuilderUtil { List encounterDiagnosis = iEncounterDiagnosisService.list(new LambdaQueryWrapper() .eq(EncounterDiagnosis::getEncounterId, encounterId).eq(EncounterDiagnosis::getTenantId, tenantId) - .eq(EncounterDiagnosis::getMedTypeCode, ybMedType.getValue()));// 2025/08/05 - // 农大患者结算慢病时会上传普通门诊的疾病,医保回复该参保人未做该病种的门慢门特备案,故此修正根据门诊类型去上传 + .eq(EncounterDiagnosis::getMedTypeCode, ybMedType.getValue())); + // 2025/08/05 + // 农大患者结算慢病时会上传普通门诊的疾病,医保回复该参保人未做该病种的门慢门特备案,故此修正根据门诊类型去上传 for (EncounterDiagnosis diagnosis : encounterDiagnosis) { if (Objects.equals(Whether.YES.getValue(), diagnosis.getMaindiseFlag())) { mainEncounterDiagnosis = diagnosis; @@ -2369,6 +2370,9 @@ public class YbParamBuilderUtil { if (jsonObj != null && jsonObj.get("insuplc_admdvs") != null) { baseInfo.setInsuplcAdmdvs(String.valueOf(jsonObj.get("insuplc_admdvs"))); } + if (jsonObj != null && jsonObj.get("filePath") != null) { + baseInfo.setFilePath(String.valueOf(jsonObj.get("filePath"))); + } // 异地患者问题 // if (contract.getBusNo() != null) { // baseInfo.setInsuplcAdmdvs(contract.getBusNo()); diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogDrugInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogDrugInfo.java index c4f61d049d7493f921b1209bd681a7a83dd7df30..480c97f81f63b649a8e00bca29c25bc64292eb5d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogDrugInfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogDrugInfo.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,294 +27,391 @@ public class CatalogDrugInfo { /** 医疗目录编码 */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String medicalCatalogCode; /** 药品商品名 */ + @CsvBindByPosition(position = 1) private String drugTradeName; /** 通用名编号 */ + @CsvBindByPosition(position = 2) private String genericNameId; /** 药品通用名 */ + @CsvBindByPosition(position = 3) private String drugGenericName; /** 化学名称 */ + @CsvBindByPosition(position = 4) private String chemicalName; /** 别名 */ + @CsvBindByPosition(position = 5) private String alias; /** 英文名称 */ + @CsvBindByPosition(position = 6) private String englishName; /** 注册名称 */ + @CsvBindByPosition(position = 7) private String registeredName; /** 药监本位码 */ + @CsvBindByPosition(position = 8) private String drugSupervisionCode; /** 药品剂型 */ + @CsvBindByPosition(position = 9) private String drugForm; /** 药品剂型名称 */ + @CsvBindByPosition(position = 10) private String drugFormName; /** 药品类别 */ + @CsvBindByPosition(position = 11) private String drugCategory; /** 药品类别名称 */ + @CsvBindByPosition(position = 12) private String drugCategoryName; /** 药品规格 */ + @CsvBindByPosition(position = 13) private String drugSpecification; /** 药品规格代码 */ + @CsvBindByPosition(position = 14) private String drugSpecCode; /** 注册剂型 */ + @CsvBindByPosition(position = 15) private String registeredForm; /** 注册规格 */ + @CsvBindByPosition(position = 16) private String registeredSpec; /** 注册规格代码 */ + @CsvBindByPosition(position = 17) private String registeredSpecCode; /** 每次用量 */ + @CsvBindByPosition(position = 18) private String dosage; /** 使用频次 */ + @CsvBindByPosition(position = 19) private String frequency; /** 酸根盐基 */ + @CsvBindByPosition(position = 20) private String acidBase; /** 国家药品编号 */ + @CsvBindByPosition(position = 21) private String nationalDrugCode; /** 用法 */ + @CsvBindByPosition(position = 22) private String usage; /** 中成药标志 */ + @CsvBindByPosition(position = 23) private String tcmFlag; /** 生产地类别 */ + @CsvBindByPosition(position = 24) private String productionAreaType; /** 生产地类别名称 */ + @CsvBindByPosition(position = 25) private String productionAreaName; /** 计价单位类型 */ + @CsvBindByPosition(position = 26) private String pricingUnitType; /** 非处方药标志 */ + @CsvBindByPosition(position = 27) private String otcFlag; /** 非处方药标志名称 */ + @CsvBindByPosition(position = 28) private String otcFlagName; /** 包装材质 */ + @CsvBindByPosition(position = 29) private String packagingMaterial; /** 包装材质名称 */ + @CsvBindByPosition(position = 30) private String packagingMaterialName; /** 包装规格 */ + @CsvBindByPosition(position = 31) private String packagingSpec; /** 包装数量 */ + @CsvBindByPosition(position = 32) private String packagingQuantity; /** 功能主治 */ + @CsvBindByPosition(position = 33) private String functionIndication; /** 给药途径 */ + @CsvBindByPosition(position = 34) private String administrationRoute; /** 说明书 */ + @CsvBindByPosition(position = 35) private String instructions; /** 开始日期 */ + @CsvBindByPosition(position = 36) private String startDate; /** 结束日期 */ + @CsvBindByPosition(position = 37) private String endDate; /** 最小使用单位 */ + @CsvBindByPosition(position = 38) private String minUseUnit; /** 最小销售单位 */ + @CsvBindByPosition(position = 39) private String minSaleUnit; /** 最小计量单位 */ + @CsvBindByPosition(position = 40) private String minMeasurementUnit; /** 最小包装数量 */ + @CsvBindByPosition(position = 41) private String minPackageQuantity; /** 最小包装单位 */ + @CsvBindByPosition(position = 42) private String minPackageUnit; /** 最小制剂单位 */ + @CsvBindByPosition(position = 43) private String minPreparationUnit; /** 最小包装单位名称 */ + @CsvBindByPosition(position = 44) private String minPackageUnitName; /** 最小制剂单位名称 */ + @CsvBindByPosition(position = 45) private String minPreparationUnitName; /** 转换比 */ + @CsvBindByPosition(position = 46) private String conversionRatio; /** 药品有效期 */ + @CsvBindByPosition(position = 47) private String shelfLife; /** 最小计价单位 */ + @CsvBindByPosition(position = 48) private String minPricingUnit; /** 五笔助记码 */ + @CsvBindByPosition(position = 49) private String wubiCode; /** 拼音助记码 */ + @CsvBindByPosition(position = 50) private String pinyinCode; /** 分包装厂家 */ + @CsvBindByPosition(position = 51) private String repackager; /** 生产企业编号 */ + @CsvBindByPosition(position = 52) private String manufacturerCode; /** 生产企业名称 */ + @CsvBindByPosition(position = 53) private String manufacturerName; /** 特殊限价药品标志 */ + @CsvBindByPosition(position = 54) private String specialPriceLimitFlag; /** 特殊药品标志 */ + @CsvBindByPosition(position = 55) private String specialDrugFlag; /** 限制使用范围 */ + @CsvBindByPosition(position = 56) private String useRestriction; /** 限制使用标志 */ + @CsvBindByPosition(position = 57) private String useRestrictionFlag; /** 药品注册证号 */ + @CsvBindByPosition(position = 58) private String registrationCertNo; /** 药品注册证号开始日期 */ + @CsvBindByPosition(position = 59) private String regCertStartDate; /** 药品注册证号结束日期 */ + @CsvBindByPosition(position = 60) private String regCertEndDate; /** 批准文号 */ + @CsvBindByPosition(position = 61) private String approvalNo; /** 批准文号开始日期 */ + @CsvBindByPosition(position = 62) private String approvalStartDate; /** 批准文号结束日期 */ + @CsvBindByPosition(position = 63) private String approvalEndDate; /** 市场状态 */ + @CsvBindByPosition(position = 64) private String marketStatus; /** 市场状态名称 */ + @CsvBindByPosition(position = 65) private String marketStatusName; /** 药品注册批件电子档案 */ + @CsvBindByPosition(position = 66) private String regDocumentArchive; /** 药品补充申请批件电子档案 */ + @CsvBindByPosition(position = 67) private String suppApplicationArchive; /** 国家医保药品目录备注 */ + @CsvBindByPosition(position = 68) private String nationalInsuranceNotes; /** 基本药物标志名称 */ + @CsvBindByPosition(position = 69) private String essentialDrugFlagName; /** 基本药物标志 */ + @CsvBindByPosition(position = 70) private String essentialDrugFlag; /** 增值税调整药品标志 */ + @CsvBindByPosition(position = 71) private String vatAdjustmentFlag; /** 增值税调整药品名称 */ + @CsvBindByPosition(position = 72) private String vatAdjustmentName; /** 上市药品目录集药品 */ + @CsvBindByPosition(position = 73) private String listedDrugFlag; /** 医保谈判药品标志 */ + @CsvBindByPosition(position = 74) private String negotiationDrugFlag; /** 医保谈判药品名称 */ + @CsvBindByPosition(position = 75) private String negotiationDrugName; /** 卫健委药品编码 */ + @CsvBindByPosition(position = 76) private String nhcDrugCode; /** 备注 */ + @CsvBindByPosition(position = 77) private String remarks; /** 有效标志 */ + @CsvBindByPosition(position = 78) private String validFlag; /** 唯一记录号 */ + @CsvBindByPosition(position = 79) private String uniqueRecordId; /** 数据创建时间 */ + @CsvBindByPosition(position = 80) private String createdAt; /** 数据更新时间 */ + @CsvBindByPosition(position = 81) private String updatedAt; /** 版本号 */ + @CsvBindByPosition(position = 82) private String version; /** 版本名称 */ + @CsvBindByPosition(position = 83) private String versionName; /** 儿童用药 */ + @CsvBindByPosition(position = 84) private String pediatricUse; /** 公司名称 */ + @CsvBindByPosition(position = 85) private String companyName; /** 仿制药一致性评价药品 */ + @CsvBindByPosition(position = 86) private String genericEvaluationFlag; /** 经销企业 */ + @CsvBindByPosition(position = 87) private String distributionCompany; /** 经销企业联系人 */ + @CsvBindByPosition(position = 88) private String distributionContact; /** 经销企业授权书电子档案 */ + @CsvBindByPosition(position = 89) private String distributionAuthArchive; /** 国家医保药品目录剂型 */ + @CsvBindByPosition(position = 90) private String insuranceForm; /** 国家医保药品目录甲乙类标识 */ + @CsvBindByPosition(position = 91) private String insuranceClass; /** 上市许可证持有人 */ + @CsvBindByPosition(position = 92) private String marketingAuthorizationHolder; /** 下发标志 */ + @CsvBindByPosition(position = 93) private String releaseFlag; /** 传输数据ID */ + @CsvBindByPosition(position = 94) private String transmissionDataId; /** 生效时间 */ + @CsvBindByPosition(position = 95) private String validFrom; /** 失效时间 */ + @CsvBindByPosition(position = 96) private String validTo; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalConsumables.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalConsumables.java index ee71a46b50c3d49bfc4f2d2595125ce415f27e42..432de9186ca4c9d08c8aab54bfbdbf5500221325 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalConsumables.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalConsumables.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,216 +27,287 @@ public class CatalogMedicalConsumables { /** 医疗目录编码 */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String medicalCatalogCode; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String consumableName; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String deviceUniqueId; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String insuranceGenericCode; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String insuranceGenericName; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String productModel; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String specCode; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String specification; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String consumableCategory; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String specModel; /** $column.columnComment */ + @CsvBindByPosition(position = 10) private String materialCode; /** $column.columnComment */ + @CsvBindByPosition(position = 11) private String materialType; /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String packageSpec; /** $column.columnComment */ + @CsvBindByPosition(position = 13) private String packageQuantity; /** $column.columnComment */ + @CsvBindByPosition(position = 14) private String packageMaterial; /** $column.columnComment */ + @CsvBindByPosition(position = 15) private String packageUnit; /** $column.columnComment */ + @CsvBindByPosition(position = 16) private String conversionRatio; /** $column.columnComment */ + @CsvBindByPosition(position = 17) private String minUsageUnit; /** $column.columnComment */ + @CsvBindByPosition(position = 18) private String productionAreaType; /** $column.columnComment */ + @CsvBindByPosition(position = 19) private String productionAreaName; /** $column.columnComment */ + @CsvBindByPosition(position = 20) private String productStandard; /** $column.columnComment */ + @CsvBindByPosition(position = 21) private String expiryDate; /** $column.columnComment */ + @CsvBindByPosition(position = 22) private String structureComposition; /** $column.columnComment */ + @CsvBindByPosition(position = 23) private String applicableScope; /** $column.columnComment */ + @CsvBindByPosition(position = 24) private String usageMethod; /** $column.columnComment */ + @CsvBindByPosition(position = 25) private String imageCode; /** $column.columnComment */ + @CsvBindByPosition(position = 26) private String qualityStandard; /** $column.columnComment */ + @CsvBindByPosition(position = 27) private String instructions; /** $column.columnComment */ + @CsvBindByPosition(position = 28) private String proofMaterials; /** $column.columnComment */ + @CsvBindByPosition(position = 29) private String specialDeviceFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 30) private String specialDeviceName; /** $column.columnComment */ + @CsvBindByPosition(position = 31) private String kitName; /** $column.columnComment */ + @CsvBindByPosition(position = 32) private String kitFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 33) private String usageRestrictionFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 34) private String insuranceRestriction; /** $column.columnComment */ + @CsvBindByPosition(position = 35) private String minSaleUnit; /** 高值耗材标志(true:是 false:否) */ + @CsvBindByPosition(position = 36) private String highValueFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 37) private String medicalMaterialCode; /** $column.columnComment */ + @CsvBindByPosition(position = 38) private String implantFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 39) private String sterilizationFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 40) private String sterilizationName; /** $column.columnComment */ + @CsvBindByPosition(position = 41) private String implantInterventionFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 42) private String implantInterventionName; /** $column.columnComment */ + @CsvBindByPosition(position = 43) private String disposableFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 44) private String disposableFlagName; /** $column.columnComment */ + @CsvBindByPosition(position = 45) private String registrantName; /** $column.columnComment */ + @CsvBindByPosition(position = 46) private String startDate; /** $column.columnComment */ + @CsvBindByPosition(position = 47) private String endDate; /** $column.columnComment */ + @CsvBindByPosition(position = 48) private String deviceManagementCategory; /** $column.columnComment */ + @CsvBindByPosition(position = 49) private String deviceCategoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 50) private String registrationNo; /** $column.columnComment */ + @CsvBindByPosition(position = 51) private String registeredProductName; /** $column.columnComment */ + @CsvBindByPosition(position = 52) private String structureDetails; /** $column.columnComment */ + @CsvBindByPosition(position = 53) private String otherContent; /** $column.columnComment */ + @CsvBindByPosition(position = 54) private String approvalDate; /** $column.columnComment */ + @CsvBindByPosition(position = 55) private String registrantAddress; /** $column.columnComment */ + @CsvBindByPosition(position = 56) private String certEffectiveStart; /** $column.columnComment */ + @CsvBindByPosition(position = 57) private String certEffectiveEnd; /** $column.columnComment */ + @CsvBindByPosition(position = 58) private String manufacturerCode; /** $column.columnComment */ + @CsvBindByPosition(position = 59) private String manufacturerName; /** $column.columnComment */ + @CsvBindByPosition(position = 60) private String productionAddress; /** $column.columnComment */ + @CsvBindByPosition(position = 61) private String agentCompany; /** $column.columnComment */ + @CsvBindByPosition(position = 62) private String agentAddress; /** $column.columnComment */ + @CsvBindByPosition(position = 63) private String productionCountry; /** $column.columnComment */ + @CsvBindByPosition(position = 64) private String serviceAgency; /** $column.columnComment */ + @CsvBindByPosition(position = 65) private String certArchivePath; /** $column.columnComment */ + @CsvBindByPosition(position = 66) private String productImages; /** 有效标志(true:有效 false:无效) */ + @CsvBindByPosition(position = 67) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 68) private String uniqueRecordId; /** $column.columnComment */ + @CsvBindByPosition(position = 69) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 70) private String versionName; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalHerbInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalHerbInfo.java index a3b6147d1430844643e08fcd55af41603dabd985..89fb69acb52f232f82844708510221932546fd98 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalHerbInfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalHerbInfo.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,96 +27,135 @@ public class CatalogMedicalHerbInfo { /** 医疗目录编码 */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String medicalCatalogCode; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String singleDrugName; /** 单复方标志(true:复方 false:单方) */ + @CsvBindByPosition(position = 2) private String singleCompoundFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String qualityGrade; /** 中草药年份 */ + @CsvBindByPosition(position = 4) private String herbalYear; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String medicinalPart; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String safeDosage; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String conventionalUsage; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String propertiesTaste; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String meridianAttribution; /** $column.columnComment */ + @CsvBindByPosition(position = 10) private String species; /** $column.columnComment */ + @CsvBindByPosition(position = 11) private String startDate; /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String endDate; /** 有效标志(true:有效 false:无效) */ + @CsvBindByPosition(position = 13) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 14) private String uniqueRecordId; + /** 数据创建时间 - 新增 */ + @CsvBindByPosition(position = 15) + private String createTime; + + /** 数据更新时间 - 新增 */ + @CsvBindByPosition(position = 16) + private String updateTime; + /** $column.columnComment */ + @CsvBindByPosition(position = 17) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 18) private String versionName; /** $column.columnComment */ + @CsvBindByPosition(position = 19) private String herbName; /** $column.columnComment */ + @CsvBindByPosition(position = 20) private String indications; /** $column.columnComment */ + @CsvBindByPosition(position = 21) private String processingMethod; /** $column.columnComment */ + @CsvBindByPosition(position = 22) private String efficacyClassification; /** $column.columnComment */ + @CsvBindByPosition(position = 23) private String herbSource; /** $column.columnComment */ + @CsvBindByPosition(position = 24) private String nationalInsurancePolicy; /** $column.columnComment */ + @CsvBindByPosition(position = 25) private String provincialInsurancePolicy; /** $column.columnComment */ + @CsvBindByPosition(position = 26) private String standardName; /** $column.columnComment */ + @CsvBindByPosition(position = 27) private String standardPage; /** $column.columnComment */ + @CsvBindByPosition(position = 28) private String electronicRecord; /** $column.columnComment */ + @CsvBindByPosition(position = 29) private String issuanceFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 30) private String transferDataId; /** $column.columnComment */ + @CsvBindByPosition(position = 31) private String effectiveTime; /** $column.columnComment */ + @CsvBindByPosition(position = 32) private String expiryTime; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalService.java index e09a5cd3b218a055540c28c7847a362c3c79a967..179ba391236e74f4b12682288821b4fa23e297ee 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogMedicalService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,63 +27,83 @@ public class CatalogMedicalService { /** 医疗目录编码 */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String medicalCatalogCode; /** 计价单位 */ + @CsvBindByPosition(position = 1) private String billingUnit; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String billingUnitName; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String medicalItemDesc; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String exclusionContent; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String medicalItemConnotation; /** 有效标志(true:有效 false:无效) */ + @CsvBindByPosition(position = 6) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String remarks; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String serviceCategory; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String medicalServiceName; /** $column.columnComment */ + @CsvBindByPosition(position = 10) private String projectDescription; /** $column.columnComment */ + @CsvBindByPosition(position = 11) private String startDate; /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String endDate; /** 唯一记录号(UUID) */ + @CsvBindByPosition(position = 13) private String uniqueRecordId; /** $column.columnComment */ + @CsvBindByPosition(position = 14) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 15) private String versionName; /** $column.columnComment */ + @CsvBindByPosition(position = 16) private String issuanceFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 17) private String transferDataId; /** $column.columnComment */ + @CsvBindByPosition(position = 18) private String effectiveTime; /** $column.columnComment */ + @CsvBindByPosition(position = 19) private String expiryTime; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSpecialInsuranceDisease.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSpecialInsuranceDisease.java index 08881c0d17fbed473db5bfdfeb09e4e055d355bb..efeed1f779702ae1008c457e7a2712bd2a1be341 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSpecialInsuranceDisease.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSpecialInsuranceDisease.java @@ -1,6 +1,9 @@ package com.openhis.ybcatalog.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -11,20 +14,37 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class CatalogSpecialInsuranceDisease { + @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String diseaseCode; // 门慢门特病种目录代码 + @CsvBindByPosition(position = 1) private String diseaseCategoryName; // 门慢门特病种大类名称 + @CsvBindByPosition(position = 2) private String diseaseSubcategoryName; // 门慢门特病种细分类名称 + @CsvBindByPosition(position = 3) private String medicalInsuranceZone; // 医保区划 + @CsvBindByPosition(position = 4) private String remark; // 备注 + @CsvBindByPosition(position = 5) private String validFlag; // 有效标志 + @CsvBindByPosition(position = 6) private String uniqueRecordId; // 唯一记录号 + @CsvBindByPosition(position = 7) private String dataCreateTime; // 数据创建时间 + @CsvBindByPosition(position = 8) private String dataUpdateTime; // 数据更新时间 + @CsvBindByPosition(position = 9) private String versionNumber; // 版本号 + @CsvBindByPosition(position = 10) private String diseaseDescription; // 病种内涵 + @CsvBindByPosition(position = 11) private String versionName; // 版本名称 + @CsvBindByPosition(position = 12) private String guidePageNumber; // 诊疗指南页码 + @CsvBindByPosition(position = 13) private String guideElectronicFile; // 诊疗指南电子档案 + @CsvBindByPosition(position = 14) private String diseaseName; // 门慢门特病种名称 + @CsvBindByPosition(position = 15) private String diseaseCategoryCode; // 门慢门特病种大类代码 } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSurgeryStandardDirectory.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSurgeryStandardDirectory.java index 951b21a81d8efa63bd905c4762af78c784621607..4ce61cebfc19aa0f09cee58138773060bc1e3ba0 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSurgeryStandardDirectory.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogSurgeryStandardDirectory.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,69 +27,99 @@ public class CatalogSurgeryStandardDirectory { /** $column.columnComment */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String id; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String chapter; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String chapterCodeRange; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String chapterName; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String categoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String categoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String subcategoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String subcategoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String itemCode; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String itemName; /** $column.columnComment */ + @CsvBindByPosition(position = 10) private String operationCode; /** $column.columnComment */ + @CsvBindByPosition(position = 11) private String operationName; /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String usageFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 13) private String groupStandardOperationCode; /** $column.columnComment */ + @CsvBindByPosition(position = 14) private String groupStandardOperationName; /** $column.columnComment */ + @CsvBindByPosition(position = 15) private String clinicalVersionOperationCode; /** $column.columnComment */ + @CsvBindByPosition(position = 16) private String clinicalVersionOperationName; /** $column.columnComment */ + @CsvBindByPosition(position = 17) private String remarks; /** $column.columnComment */ + @CsvBindByPosition(position = 18) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 19) private String uniqueRecordId; + /** 数据创建时间 - 新增 */ + @CsvBindByPosition(position = 20) + private String createTime; + + /** 数据更新时间 - 新增 */ + @CsvBindByPosition(position = 21) + private String updateTime; + /** $column.columnComment */ + @CsvBindByPosition(position = 22) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 23) private String versionName; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogWesternDisease.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogWesternDisease.java index 98d89df3a9f4dd1cbf6e9f97b36784f64912a39e..28acdd240ce1c49e0474a4cdf2c34c21a8612574 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogWesternDisease.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogWesternDisease.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,69 +27,91 @@ public class CatalogWesternDisease { /** $column.columnComment */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String diseaseId; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String chapter; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String chapterCodeRange; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String chapterName; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String sectionCodeRange; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String sectionName; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String categoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String categoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String subcategoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String subcategoryName; /** 诊断代码 */ + @CsvBindByPosition(position = 10) private String diagnosisCode; /** $column.columnComment */ + @CsvBindByPosition(position = 11) private String diagnosisName; /** 使用标记(true:启用 false:停用) */ + @CsvBindByPosition(position = 12) private String usageFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 13) private String gbDiagnosisCode; /** $column.columnComment */ + @CsvBindByPosition(position = 14) private String gbDiagnosisName; /** $column.columnComment */ + @CsvBindByPosition(position = 15) private String clinicalCode; /** $column.columnComment */ + @CsvBindByPosition(position = 16) private String clinicalName; /** $column.columnComment */ + @CsvBindByPosition(position = 17) private String remarks; /** 有效标志(true:有效 false:无效) */ + @CsvBindByPosition(position = 18) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 19) private String uniqueRecordId; /** $column.columnComment */ + @CsvBindByPosition(position = 22) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 23) private String versionName; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZyDiseaseDiagnosis.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZyDiseaseDiagnosis.java index 33087520b3b59ac1795c0b01f8c7a599ac416742..ed255e8e0f3d67a2f77d071da98a23e6780fb780 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZyDiseaseDiagnosis.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZyDiseaseDiagnosis.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,39 +27,51 @@ public class CatalogZyDiseaseDiagnosis { /** $column.columnComment */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String id; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String categoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String categoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String specialtySystemCategoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String specialtySystemCategoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String diseaseCategoryCode; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String diseaseCategoryName; /** $column.columnComment */ + @CsvBindByPosition(position = 7) private String remarks; /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String validFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String uniqueRecordId; /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String versionNumber; /** $column.columnComment */ + @CsvBindByPosition(position = 13) private String versionName; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZySyndrome.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZySyndrome.java index 97fa7a00a0715c6c6e3a616324d79421956de2ad..25fa4bcef9fcd14ea5076dfd5f07b77d16d39f0e 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZySyndrome.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/domain/CatalogZySyndrome.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.opencsv.bean.CsvBindByPosition; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -26,39 +27,59 @@ public class CatalogZySyndrome { /** $column.columnComment */ @TableId(type = IdType.ASSIGN_ID) + @CsvBindByPosition(position = 0) private String tcmSyndromeId; /** $column.columnComment */ + @CsvBindByPosition(position = 1) private String syndromeClassCode; /** $column.columnComment */ + @CsvBindByPosition(position = 2) private String syndromeClassName; /** $column.columnComment */ + @CsvBindByPosition(position = 3) private String syndromePropertyCode; /** $column.columnComment */ + @CsvBindByPosition(position = 4) private String syndromeProperty; /** $column.columnComment */ + @CsvBindByPosition(position = 5) private String syndromeTypeCode; /** $column.columnComment */ + @CsvBindByPosition(position = 6) private String syndromeTypeName; /** $column.columnComment */ + @CsvBindByPosition(position = 7) + private String remark; + + /** $column.columnComment */ + @CsvBindByPosition(position = 8) private String activeFlag; /** $column.columnComment */ + @CsvBindByPosition(position = 9) private String uniqueRecordId; /** $column.columnComment */ + @CsvBindByPosition(position = 10) private String craetTime; /** $column.columnComment */ + @CsvBindByPosition(position = 11) + private String updateTime; + + /** $column.columnComment */ + @CsvBindByPosition(position = 12) private String version; /** $column.columnComment */ + @CsvBindByPosition(position = 13) private String versionName; } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialDiseaseMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialDiseaseMapper.java index 16c6a8a9d24d7ff8742c4b2fa5b90d422f93aba6..0b4c66454ec5c34f64097154cd222288f8f25652 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialDiseaseMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialDiseaseMapper.java @@ -1,5 +1,6 @@ package com.openhis.ybcatalog.mapper; +import com.openhis.ybcatalog.domain.CatalogSpecialDisease; import org.springframework.stereotype.Repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -12,6 +13,6 @@ import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; * @date 2025-04-09 */ @Repository -public interface CatalogSpecialDiseaseMapper extends BaseMapper { +public interface CatalogSpecialDiseaseMapper extends BaseMapper { } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialInsuranceDiseaseMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialInsuranceDiseaseMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..8a623d8bbd28050feca89d57a60d88646a1212fd --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialInsuranceDiseaseMapper.java @@ -0,0 +1,10 @@ +package com.openhis.ybcatalog.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; +import org.springframework.stereotype.Repository; + +@Repository +public interface CatalogSpecialInsuranceDiseaseMapper extends BaseMapper { + +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogDrugInfoService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogDrugInfoService.java index 5c986199c7f46e9abbd8be3a803463f6be411d9b..565e982cb13a9d4b5745c0a8683461859a581901 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogDrugInfoService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogDrugInfoService.java @@ -16,6 +16,9 @@ import java.util.List; * @date 2025-04-09 */ public interface ICatalogDrugInfoService extends IService { + + + CatalogDrugInfo getByYbNo(String medicalCatalogCode, String version); // /** // * 获取药品信息 // * diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalConsumablesService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalConsumablesService.java index 77b9a399e76250a639dbde5218388165ca2556c5..261410c198afbcbf6eba57e883ca05b512af6485 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalConsumablesService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalConsumablesService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalConsumables; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogMedicalConsumables; * @date 2025-04-09 */ public interface ICatalogMedicalConsumablesService extends IService { - + CatalogMedicalConsumables getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalHerbInfoService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalHerbInfoService.java index ee5f75cc2a17470fbcbddd0ecd7abb4061b652a6..0f5a985171d00001ce33a31cb85efc856c76dab1 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalHerbInfoService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalHerbInfoService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalHerbInfo; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogMedicalHerbInfo; * @date 2025-04-09 */ public interface ICatalogMedicalHerbInfoService extends IService { - + CatalogMedicalHerbInfo getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalServiceService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalServiceService.java index d71c2dffc46d8a1749582e2546f210d8255d3e33..a8c8926d8c86a25c4831c39a3bafdd661cd445a8 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalServiceService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogMedicalServiceService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalService; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogMedicalService; * @date 2025-04-09 */ public interface ICatalogMedicalServiceService extends IService { - + CatalogMedicalService getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialDiseaseService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialDiseaseService.java index a901a3e4d34caefb99cc25e1220985ebbee9bebf..eaa6ffa10136c2d93975a2001bd7ffda90a64945 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialDiseaseService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialDiseaseService.java @@ -1,6 +1,8 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; +import com.openhis.ybcatalog.domain.CatalogSpecialDisease; import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; /** @@ -9,6 +11,6 @@ import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; * @author system * @date 2025-04-09 */ -public interface ICatalogSpecialDiseaseService extends IService { - +public interface ICatalogSpecialDiseaseService extends IService { + CatalogSpecialDisease getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialInsuranceDiseaseService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialInsuranceDiseaseService.java new file mode 100644 index 0000000000000000000000000000000000000000..5d3a7e5c13e61d329c88670f60ec01868f92f97a --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialInsuranceDiseaseService.java @@ -0,0 +1,9 @@ +package com.openhis.ybcatalog.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; +import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; + +public interface ICatalogSpecialInsuranceDiseaseService extends IService { + CatalogSpecialInsuranceDisease getByYbNo(String medicalCatalogCode, String version); +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSurgeryStandardDirectoryService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSurgeryStandardDirectoryService.java index 895c449217f7d4c143fd335b6e6e2648099db8a1..6eec882db1e12585cf1ddf9ea4be4be8b98970dd 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSurgeryStandardDirectoryService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSurgeryStandardDirectoryService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogSurgeryStandardDirectory; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogSurgeryStandardDirectory; * @date 2025-04-09 */ public interface ICatalogSurgeryStandardDirectoryService extends IService { - + CatalogSurgeryStandardDirectory getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogWesternDiseaseService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogWesternDiseaseService.java index 9665f44ae3fc6673f4b33cb96e72b3ff72cdcdff..679a7bc43e30b13ce6fcc5c107ecfe8ba8f7740f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogWesternDiseaseService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogWesternDiseaseService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogWesternDisease; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogWesternDisease; * @date 2025-04-09 */ public interface ICatalogWesternDiseaseService extends IService { - + CatalogWesternDisease getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZyDiseaseDiagnosisService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZyDiseaseDiagnosisService.java index 6708fb82f0d238e9dc30b520885313b3a917978d..f591b7fcc3f7fc5ea62ad69842ccf6b748f88d1c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZyDiseaseDiagnosisService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZyDiseaseDiagnosisService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogZyDiseaseDiagnosis; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogZyDiseaseDiagnosis; * @date 2025-04-09 */ public interface ICatalogZyDiseaseDiagnosisService extends IService { - + CatalogZyDiseaseDiagnosis getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZySyndromeService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZySyndromeService.java index 19a6a2df86916b90dd40813d02c8a1fb8b5afa4d..389a766da27101d659ceb98fd02a0c5fcabaad23 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZySyndromeService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogZySyndromeService.java @@ -1,6 +1,7 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogZySyndrome; /** @@ -10,5 +11,5 @@ import com.openhis.ybcatalog.domain.CatalogZySyndrome; * @date 2025-04-09 */ public interface ICatalogZySyndromeService extends IService { - + CatalogZySyndrome getByYbNo(String medicalCatalogCode, String version); } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogDrugInfoServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogDrugInfoServiceImpl.java index 343dd4ce41e9cbec35287dffe27e523b934d2f10..50902adbc9ca1228ff3d8469314ec841e529be27 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogDrugInfoServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogDrugInfoServiceImpl.java @@ -3,6 +3,7 @@ package com.openhis.ybcatalog.service.impl; 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.openhis.common.constant.YbCommonConstants; import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.mapper.CatalogDrugInfoMapper; import com.openhis.ybcatalog.service.ICatalogDrugInfoService; @@ -28,4 +29,8 @@ public class CatalogDrugInfoServiceImpl extends ServiceImpl page = new Page<>(pageNo, pageSize); // return (baseMapper.selectPage(page, new LambdaQueryWrapper().like(CatalogDrugInfo::getRegisteredName, searchKey).or().like(CatalogDrugInfo::getPinyinCode, searchKey).or().like(CatalogDrugInfo::getWubiCode, searchKey))); // } + + public CatalogDrugInfo getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogDrugInfo::getMedicalCatalogCode,medicalCatalogCode).eq(CatalogDrugInfo::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalConsumablesServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalConsumablesServiceImpl.java index ccaaad58f62a5d9ac568e9e0fb0f8ce940750835..fdf275412191d7a48f2cd1435dbc0c6fb8c64bfa 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalConsumablesServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalConsumablesServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogMedicalConsumablesService; */ @Service public class CatalogMedicalConsumablesServiceImpl extends ServiceImpl implements ICatalogMedicalConsumablesService { - + public CatalogMedicalConsumables getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogMedicalConsumables::getMedicalCatalogCode,medicalCatalogCode).eq(CatalogMedicalConsumables::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalHerbInfoServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalHerbInfoServiceImpl.java index d480d0baaf786a36c248c42af9fa153eecee2d4f..cc6796d022a82f3a012625240c302b7736da5653 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalHerbInfoServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalHerbInfoServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogMedicalHerbInfoService; */ @Service public class CatalogMedicalHerbInfoServiceImpl extends ServiceImpl implements ICatalogMedicalHerbInfoService { - + public CatalogMedicalHerbInfo getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogMedicalHerbInfo::getMedicalCatalogCode,medicalCatalogCode).eq(CatalogMedicalHerbInfo::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalServiceServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalServiceServiceImpl.java index d00089c9eac7dcfe0375292635e7b2f895309341..dae9b8a188f493797f1e1877955f6e21bb07ee02 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalServiceServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogMedicalServiceServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogMedicalServiceService; */ @Service public class CatalogMedicalServiceServiceImpl extends ServiceImpl implements ICatalogMedicalServiceService { - + public CatalogMedicalService getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogMedicalService::getMedicalCatalogCode,medicalCatalogCode).eq(CatalogMedicalService::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialDiseaseServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialDiseaseServiceImpl.java index 87e5f6ebee80013a25c6ac227f84be89a00603e0..aa553165507ccc832382b08d6d71cc7ffa770d0b 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialDiseaseServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialDiseaseServiceImpl.java @@ -1,5 +1,9 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; +import com.openhis.ybcatalog.domain.CatalogSpecialDisease; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,6 +19,8 @@ import com.openhis.ybcatalog.service.ICatalogSpecialDiseaseService; */ @Service public class CatalogSpecialDiseaseServiceImpl extends - ServiceImpl implements ICatalogSpecialDiseaseService { - + ServiceImpl implements ICatalogSpecialDiseaseService { + public CatalogSpecialDisease getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogSpecialDisease::getDiseaseCatalogCode,medicalCatalogCode).eq(CatalogSpecialDisease::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialInsuranceDiseaseServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialInsuranceDiseaseServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..310164cf1f37090433b36f190f9978a7f3db336a --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialInsuranceDiseaseServiceImpl.java @@ -0,0 +1,17 @@ +package com.openhis.ybcatalog.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; +import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; +import com.openhis.ybcatalog.mapper.CatalogSpecialInsuranceDiseaseMapper; +import com.openhis.ybcatalog.service.ICatalogSpecialInsuranceDiseaseService; +import org.springframework.stereotype.Service; + +@Service +public class CatalogSpecialInsuranceDiseaseServiceImpl extends ServiceImpl implements ICatalogSpecialInsuranceDiseaseService { + public CatalogSpecialInsuranceDisease getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogSpecialInsuranceDisease::getDiseaseCode,medicalCatalogCode).eq(CatalogSpecialInsuranceDisease::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSurgeryStandardDirectoryServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSurgeryStandardDirectoryServiceImpl.java index 46bf5e8f32a2be24ce74e72d035b6a820e21b6b0..10610ad569ea6b79b67136539185ba8c713c9fa5 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSurgeryStandardDirectoryServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSurgeryStandardDirectoryServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogSurgeryStandardDirectoryService; */ @Service public class CatalogSurgeryStandardDirectoryServiceImpl extends ServiceImpl implements ICatalogSurgeryStandardDirectoryService { - + public CatalogSurgeryStandardDirectory getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogSurgeryStandardDirectory::getId,medicalCatalogCode).eq(CatalogSurgeryStandardDirectory::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogWesternDiseaseServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogWesternDiseaseServiceImpl.java index 47f3448f52a09c6eeaa5c75efcba3e6a80701f89..0d5482a86fe00991198f047c8416cad4c09a6f1a 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogWesternDiseaseServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogWesternDiseaseServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogWesternDiseaseService; */ @Service public class CatalogWesternDiseaseServiceImpl extends ServiceImpl implements ICatalogWesternDiseaseService { - + public CatalogWesternDisease getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogWesternDisease::getDiseaseId,medicalCatalogCode).eq(CatalogWesternDisease::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZyDiseaseDiagnosisServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZyDiseaseDiagnosisServiceImpl.java index e62f8b59d29be9addcbb7b03f5a1f1f9f59f20fc..b4627b0265f39b9cbbfa8bed96c649391740df7f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZyDiseaseDiagnosisServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZyDiseaseDiagnosisServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogZyDiseaseDiagnosisService; */ @Service public class CatalogZyDiseaseDiagnosisServiceImpl extends ServiceImpl implements ICatalogZyDiseaseDiagnosisService { - + public CatalogZyDiseaseDiagnosis getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogZyDiseaseDiagnosis::getId,medicalCatalogCode).eq(CatalogZyDiseaseDiagnosis::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZySyndromeServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZySyndromeServiceImpl.java index ab75747f2513141fd2142ce7062c1c9c0ef04a61..75f2c920a90f5be4e5e54c269fadef8a9f1ccf86 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZySyndromeServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogZySyndromeServiceImpl.java @@ -1,5 +1,8 @@ package com.openhis.ybcatalog.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.openhis.common.constant.YbCommonConstants; +import com.openhis.ybcatalog.domain.CatalogDrugInfo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,5 +18,7 @@ import com.openhis.ybcatalog.service.ICatalogZySyndromeService; */ @Service public class CatalogZySyndromeServiceImpl extends ServiceImpl implements ICatalogZySyndromeService { - + public CatalogZySyndrome getByYbNo(String medicalCatalogCode, String version) { + return baseMapper.selectOne(new LambdaQueryWrapper().eq(CatalogZySyndrome::getTcmSyndromeId,medicalCatalogCode).eq(CatalogZySyndrome::getVersionName,version).last(YbCommonConstants.sqlConst.LIMIT1)); + } } \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/InstrumentMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/InstrumentMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..5bbc3154b30db6e71f7dbe6dd4f9b17bea7ca66b --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/InstrumentMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ObservationDefinitionMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ObservationDefinitionMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..06ef4df64b7ecf3f88004f0b7e2bcd94ecb8a278 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ObservationDefinitionMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/SpecimenDefinitionMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/SpecimenDefinitionMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3773627a8ea19173f85b7cddfdc148f68b83af4 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/SpecimenDefinitionMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/document/DocStatisticsMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/document/DocStatisticsMapper.xml index a5c5ae2cfb73c67bc0c3a364e05389eca51b56e4..ed98a1e20b9c031d5ffc0cc41620a196f54d1126 100644 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/document/DocStatisticsMapper.xml +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/document/DocStatisticsMapper.xml @@ -4,4 +4,20 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/financial/PaymentRecDetailMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/financial/PaymentRecDetailMapper.xml index de8980485b56d76f4f251da82c335614fd588669..a7b91206e5cd5ffb75d1a5e75cb67043ccd1b05d 100644 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/financial/PaymentRecDetailMapper.xml +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/financial/PaymentRecDetailMapper.xml @@ -40,13 +40,14 @@ FROM fin_payment_rec_detail T1 LEFT JOIN adm_account T2 ON T1.account_id = T2."id" + LEFT JOIN fin_payment_reconciliation T3 ON T3.ID = T1.reconciliation_id AND T2.delete_flag = '0' WHERE T1.reconciliation_id IN #{item} - AND T1.delete_flag = '0' + AND T3.kind_enum = #{kindEnum} AND T1.pay_enum NOT IN (310201,8,1,2,3,4,5,6,7,9,510100,340100,390100,390200,610100,640100,390400,620100,360100,999900,390300,9999981,360300) AND T1.delete_flag = '0'; diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefDeviceDefMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefDeviceDefMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..75dd4a91ac5252c8b3df769519ef0fe907c0c8c7 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefDeviceDefMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefObservationDefMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefObservationDefMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..779ea70883990c8595c6f2729fc8062d1bd1120b --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefObservationDefMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefSpecimenDefMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefSpecimenDefMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..252b32c66c05a729c3e458bb92428122e1e160cc --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefSpecimenDefMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ObservationMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ObservationMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..c18cec64ac9d676130685f5a00dbbaa2bb7385bb --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ObservationMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/SpecimenMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/SpecimenMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..d80d461a9fabfe4900dc6ee23f593d6cd97a91c4 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/SpecimenMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/template/EncounterAutoRollMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/template/EncounterAutoRollMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..f155920f7dc63856a2df9a030eb641dcda822340 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/template/EncounterAutoRollMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientDischargeMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientDischargeMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..a144804bc13d85dd8da822ad58c38cb0df8abc1f --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientDischargeMapper.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientFeeDetailMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientFeeDetailMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..f2844361bfc97dcae939559765559177e68ee4ba --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientFeeDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientPreSettleMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientPreSettleMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..df32e5596f2f60393235cd87ef3cbe0df3e304e0 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientPreSettleMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegInfoUpdateRecordeMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegInfoUpdateRecordeMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..88dc40204e265371714d613652f34517e4350f02 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegInfoUpdateRecordeMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..7bcac50387f7a37fcaefb3fb4cbfda566b944853 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegMapper.xml @@ -0,0 +1,51 @@ + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientSettleMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientSettleMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..15937ace021680c3e15df9547e9fca8b28adf0e4 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientSettleMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-einvoiceapp/pom.xml b/openhis-server-new/openhis-einvoiceapp/pom.xml deleted file mode 100644 index 7294902ae61edb4086058d6fe0acdf0182c279b2..0000000000000000000000000000000000000000 --- a/openhis-server-new/openhis-einvoiceapp/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - openhis-server - com.openhis - 0.0.1-SNAPSHOT - - 4.0.0 - - openhis-einvoiceapp - - - 17 - 17 - - - - - - - - - - - - org.springframework.boot - spring-boot-starter - - - - com.alibaba.fastjson2 - fastjson2 - - - org.apache.httpcomponents - httpclient - - - - com.openhis - openhis-common - - - - - com.yomahub - liteflow-spring-boot-starter - - - org.springframework.boot - spring-boot-configuration-processor - true - - - cn.hutool - hutool-all - - - - org.bouncycastle - bcprov-jdk15on - - - - - com.itextpdf - kernel - - - org.apache.httpcomponents - httpmime - - - - - com.itextpdf - itextpdf - - - com.itextpdf - itext-asian - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - true - - - - - repackage - - - - - - org.apache.maven.plugins - maven-war-plugin - ${maven-war-plugin.version} - - false - ${project.artifactId} - - - - ${project.artifactId} - - - \ No newline at end of file diff --git a/openhis-server-new/openhis-miniapp/pom.xml b/openhis-server-new/openhis-miniapp/pom.xml index 6f22ccc70adbaca53682b6c152d3feb9d971e99f..7b2515739051683194a7ce59638e7ebb1a0f7034 100644 --- a/openhis-server-new/openhis-miniapp/pom.xml +++ b/openhis-server-new/openhis-miniapp/pom.xml @@ -21,6 +21,7 @@ com.openhis openhis-domain + 0.0.1-SNAPSHOT @@ -30,6 +31,7 @@ org.springframework.boot spring-boot-maven-plugin + 2.5.15 true @@ -44,12 +46,20 @@ org.apache.maven.plugins maven-war-plugin - ${maven-war-plugin.version} + 3.1.0 false ${project.artifactId} + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + ${project.artifactId} diff --git a/openhis-server-new/openhis-miniapp/src/main/java/com/openhis/OpenHisMiniApp.java b/openhis-server-new/openhis-miniapp/src/main/java/com/openhis/OpenHisMiniApp.java new file mode 100644 index 0000000000000000000000000000000000000000..08547d6d95b0048b0fabc9656f192f109b21bf0f --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/java/com/openhis/OpenHisMiniApp.java @@ -0,0 +1,26 @@ +package com.openhis; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; + +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.core", "com.openhis"}) +public class OpenHisMiniApp { + public static void main(String[] args) throws UnknownHostException { + // System.setProperty("spring.devtools.restart.enabled", "false"); + ConfigurableApplicationContext application = SpringApplication.run(OpenHisMiniApp.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = env.getProperty("server.servlet.context-path"); + System.out.println("\n----------------------------------------------------------\n\t" + + "Application OpenHis is running! Access URLs:\n\t" + "Local: \t\thttp://localhost:" + port + path + + "/\n\t" + "External: \thttp://" + ip + ":" + port + path + "/\n" + + "----------------------------------------------------------"); + } +} diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/META-INF/spring-devtools.properties b/openhis-server-new/openhis-miniapp/src/main/resources/META-INF/spring-devtools.properties new file mode 100644 index 0000000000000000000000000000000000000000..37e7b5806ee4a61e35699d6f114f906efad2e500 --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/META-INF/spring-devtools.properties @@ -0,0 +1 @@ +restart.include.json=/com.alibaba.fastjson2.*.jar \ No newline at end of file diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/application-druid.yml b/openhis-server-new/openhis-miniapp/src/main/resources/application-druid.yml new file mode 100644 index 0000000000000000000000000000000000000000..aedc76396359d71b3c29b64b9746a121ace53de9 --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/application-druid.yml @@ -0,0 +1,61 @@ +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: org.postgresql.Driver + druid: + # 主库数据源 + master: + url: jdbc:postgresql://od32215110g.vicp.fun:15008/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8 + username: postgres + password: root + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置连接超时时间 + connectTimeout: 30000 + # 配置网络超时时间 + socketTimeout: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 # FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: openhis + login-password: 123456 + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/application.yml b/openhis-server-new/openhis-miniapp/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..f07ee76f60548ab4c5e1443a3a5ba8eaf27ca82c --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/application.yml @@ -0,0 +1,149 @@ +# 项目相关配置 +core: + # 名称 + name: OpenHis-MiniApp + # 版本 + version: 0.0.1 + # 版权年份 + copyrightYear: 2025 + # 文件路径 + profile: D:/home/uploadPath + # 获取ip地址开关 + addressEnabled: false + # 验证码类型 math 数字计算 char 字符验证 + captchaType: math + +# 开发环境配置 +server: + # 服务器的HTTP端口,默认为18080,此服务为18081 + port: 18081 + servlet: + # 应用的访问路径 + context-path: /openhis + tomcat: + # tomcat的URI编码 + uri-encoding: UTF-8 + # 连接数满后的排队数,默认为100 + accept-count: 1000 + threads: + # tomcat最大线程数,默认为200 + max: 800 + # Tomcat启动初始化的线程数,默认值10 + min-spare: 100 + +# 日志配置 +logging: + level: + com.openhis: debug + org.springframework: warn + +# 用户配置 +user: + password: + # 密码最大错误次数 + maxRetryCount: 5 + # 密码锁定时间(默认10分钟) + lockTime: 10 + +# Spring配置 +spring: + main: + allow-circular-references: true + # 资源信息 + messages: + # 国际化资源文件路径 + basename: i18n/messages + profiles: + active: druid + # 文件上传 + servlet: + multipart: + # 单个文件大小 + max-file-size: 10MB + # 设置总上传的文件大小 + max-request-size: 20MB + # 服务模块 + devtools: + restart: + # 热部署开关 + enabled: true + # redis 配置 + redis: + # 地址 + host: 192.168.30.199 + # 端口,默认为6379 + port: 6379 + # 数据库索引 + database: 2 + # 密码 + password: redis + # 连接超时时间 + timeout: 10s + lettuce: + pool: + # 连接池中的最小空闲连接 + min-idle: 0 + # 连接池中的最大空闲连接 + max-idle: 8 + # 连接池的最大数据库连接数 + max-active: 8 + # #连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1ms + # 文言 + messages: + basename: i18n/general_message/messages + encoding: utf-8 + +# token配置 +token: + # 令牌自定义标识 + header: Authorization + # 令牌密钥 + secret: abcdefghijklmnopqrstuvwxyz + # 令牌有效期(默认30分钟) + expireTime: 30 + +# MyBatis配置 +mybatis-plus: + # 搜索指定包别名 + typeAliasesPackage: com.core.**.domain,com.openhis.**.domain + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath*:mapper/**/*Mapper.xml + # 加载全局的配置文件 + configLocation: classpath:mybatis/mybatis-config.xml + +# PageHelper分页插件 +pagehelper: + #helperDialect: mysql + supportMethodsArguments: true + params: count=countSql + # 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式 + auto-dialect: true + # 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 + auto-runtime-dialect: true + +# Swagger配置 +swagger: + # 是否开启swagger + enabled: true + # 请求前缀 + pathMapping: /dev-api + +# 防止XSS攻击 +xss: + # 过滤开关 + enabled: true + # 排除链接(多个用逗号分隔) + excludes: /system/notice + # 匹配链接 + urlPatterns: /system/*,/monitor/*,/tool/* + +# flowable相关表 +flowable: + # true 会对数据库中所有表进行更新操作。如果表不存在,则自动创建(建议开发时使用) + database-schema-update: false + # 关闭定时任务JOB + async-executor-activate: false + + + diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/banner.txt b/openhis-server-new/openhis-miniapp/src/main/resources/banner.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e99e749e9269bed23d46fec3c5da4c96be6bc73 --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/banner.txt @@ -0,0 +1,10 @@ + + :::::::: ::::::::: :::::::::: :::: ::: ::: ::: ::::::::::: :::::::: ::: ::: ::::::::::: :::: ::: ::::::::::: ::: ::::::::: ::::::::: + :+: :+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+:+: :+:+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+: :+: + +:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ + +#+ +:+ +#++:++#+ +#++:++# +#+ +:+ +#+ +#++:++#++ +#+ +#++:++#++ +#+ +:+ +#+ +#+ +#+ +:+ +#+ +#+ +#++:++#++: +#++:++#+ +#++:++#+ + +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+ +#+ +#+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# +######## ### ########## ### #### ### ### ########### ######## ### ### ########### ### #### ########### ### ### ### ### + +Application Version: ${core.version} diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/i18n/messages.properties b/openhis-server-new/openhis-miniapp/src/main/resources/i18n/messages.properties new file mode 100644 index 0000000000000000000000000000000000000000..4550ad8169580f18c081db46ea6c21d8bd22c10a --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/i18n/messages.properties @@ -0,0 +1,46 @@ +#错误消息 +not.null=* 必须填写 +user.jcaptcha.error=验证码错误 +user.jcaptcha.expire=验证码已失效 +user.not.exists=用户不存在/密码错误 +user.password.not.match=用户不存在/密码错误 +user.password.retry.limit.count=密码输入错误{0}次 +user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟 +user.password.delete=对不起,您的账号已被删除 +user.blocked=用户已封禁,请联系管理员 +role.blocked=角色已封禁,请联系管理员 +login.blocked=很遗憾,访问IP已被列入系统黑名单 +user.logout.success=退出成功 +length.not.valid=长度必须在{min}到{max}个字符之间 +user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头 +user.password.not.valid=* 5-50个字符 +user.email.not.valid=邮箱格式错误 +user.mobile.phone.number.not.valid=手机号格式错误 +user.login.success=登录成功 +user.register.success=注册成功 +user.notfound=请重新登录 +user.forcelogout=管理员强制退出,请重新登录 +user.unknown.error=未知错误,请重新登录 +##文件上传消息 +upload.exceed.maxSize=上传的文件大小超出限制的文件大小!
允许的文件最大大小是:{0}MB! +upload.filename.exceed.length=上传的文件名最长{0}个字符 +##权限 +no.permission=您没有数据的权限,请联系管理员添加权限 [{0}] +no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}] +no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}] +no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}] +no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}] +no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}] + + + +apl.common.M00001={0}添加成功 +apl.common.M00002={0}保存成功 +apl.common.M00003={0}已经存在 +apl.common.M00004={0}操作成功 +apl.common.M00005={0}删除成功 +apl.common.M00006=操作失败,该数据已被他人删除,请刷新后重试 +apl.common.M00007=操作失败,该数据已被他人更改,请刷新后重试 +apl.common.M00008=请勿重复提交 +apl.common.M00009=查询成功 +apl.common.M00010=操作失败,请联系管理员 diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/logback.xml b/openhis-server-new/openhis-miniapp/src/main/resources/logback.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc63c1094e18d1fd4b3e94f5e0e1c3332b11575f --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/logback.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/sys-info.log + + + + ${log.path}/sys-info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/sys-error.log + + + + ${log.path}/sys-error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + ${log.path}/sys-user.log + + + ${log.path}/sys-user.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/openhis-server-new/openhis-miniapp/src/main/resources/mybatis/mybatis-config.xml b/openhis-server-new/openhis-miniapp/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 0000000000000000000000000000000000000000..c39d4382117f59778e72bb6252e6823a32e625b7 --- /dev/null +++ b/openhis-server-new/openhis-miniapp/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + diff --git a/openhis-server-new/pom.xml b/openhis-server-new/pom.xml index a9bb21f49cc3b23f906b72457aeec7fc048d1547..2a9e65e18699452045349d4b5981cc7448b12542 100644 --- a/openhis-server-new/pom.xml +++ b/openhis-server-new/pom.xml @@ -4,13 +4,6 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.5.15 - - - com.openhis openhis-server 0.0.1-SNAPSHOT @@ -23,13 +16,15 @@ 0.0.1-SNAPSHOT UTF-8 UTF-8 - 17 + 1.8 3.1.1 - 1.2.27 + 2.5.15 + 1.2.23 1.21 3.0.0 2.3.3 1.4.7 + 2.0.53 6.6.5 2.13.0 4.1.2 @@ -38,128 +33,17 @@ 9.0.96 1.2.13 + 5.7.12 + 5.3.39 1.18.26 3.5.3 6.8.0 42.2.27 - 5.3.3 - 1.5.21 - 2.0.58 - 1.6.2 - 2.5.1 - 2.12.4.1 - 5.3.8 - 1.69 - 7.1.2 - 5.5.12 - 5.2.0 - 9.4.0 - - - org.projectlombok - lombok - true - provided - - - - - com.mysql - mysql-connector-j - ${mysql-connector-j.version} - - - - - com.itextpdf - itextpdf - ${itextpdf.version} - - - com.itextpdf - itext-asian - ${itext-asian.version} - - - - cn.hutool - hutool-all - ${hutool-all.version} - - - - org.bouncycastle - bcprov-jdk15on - ${bcprov-jdk15on.version} - - - - - com.itextpdf - kernel - ${kernel.version} - - - - - - com.core - core-admin - ${project.version} - - - - - com.yomahub - liteflow-spring-boot-starter - ${liteflow-spring-boot-starter.version} - - - - - com.belerweb - pinyin4j - ${pinyin4j.version} - - - - - io.swagger - swagger-models - ${swagger-models.version} - - - - com.alibaba.fastjson2 - fastjson2 - ${fastjson2.version} - - - - com.alibaba - fastjson - ${fastjson2.version} - - - - - io.swagger - swagger-annotations - ${swagger-annotations.version} - - - - - - com.googlecode.aviator - aviator - ${aviator.version} - @@ -238,6 +122,68 @@ ${mybatis-plus.version} + + + org.projectlombok + lombok + ${lombok.version} + + + + + org.springframework + spring-framework-bom + ${spring-framework.version} + pom + import + + + + + org.springframework.security + spring-security-bom + ${spring-security.version} + pom + import + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + ch.qos.logback + logback-core + ${logback.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + + org.apache.tomcat.embed + tomcat-embed-core + ${tomcat.version} + + + org.apache.tomcat.embed + tomcat-embed-el + ${tomcat.version} + + + org.apache.tomcat.embed + tomcat-embed-websocket + ${tomcat.version} + @@ -301,6 +247,13 @@ ${velocity.version} + + + com.alibaba.fastjson2 + fastjson2 + ${fastjson.version} + + io.jsonwebtoken @@ -315,6 +268,14 @@ ${kaptcha.version} + + + io.swagger + swagger-annotations + 1.5.21 + compile + + org.flowable @@ -322,6 +283,13 @@ ${flowable.version} + + + com.googlecode.aviator + aviator + 5.3.3 + + org.postgresql postgresql @@ -336,6 +304,7 @@ openhis-application openhis-domain openhis-common + core-admin core-framework core-system @@ -343,7 +312,6 @@ core-generator core-common core-flowable - openhis-einvoiceapp pom @@ -352,10 +320,10 @@ org.apache.maven.plugins maven-compiler-plugin - ${maven-compiler-plugin.version} + 3.1 - ${java.version} - ${java.version} + 17 + 17 ${project.build.sourceEncoding} diff --git a/openhis-ui-vue3/HospitalRecordForm.vue b/openhis-ui-vue3/HospitalRecordForm.vue deleted file mode 100644 index 66fbfcad4bfccee73991b4cf36db5b358b8f2d78..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/HospitalRecordForm.vue +++ /dev/null @@ -1,116 +0,0 @@ - -// 表单数据 -const formData = reactive({ - admission: { - confirmDate: '2023年10月28日', - dischargeTime: '2023年11月13日 08时14分', - hospitalDays: '17' - }, - diagnosis: { - mainDiagnosis: '腰椎间盘突出症(L4-5)', - otherDiagnosis: '' - } -}); - -// 打印表单 -const printForm = () => { - // 创建一个新的打印窗口 - const printWindow = window.open('', '_blank'); - - // 构建打印内容 - const printContent = ` - - - - 住院病案首页 - - - -
-
吉林大学第一医院
-
-
-
组织机构代码:(${formData.hospital.orgCode || ''})
-
医疗付费方式:(${formData.hospital.paymentMethod || ''})
-
-
- 住院病案首页 -
-
-
-
- - - - -
-
住院信息
-
-
- -
${formData.admission.admitTime || ''}
-
-
- -
${formData.admission.departmentAdmitTime || ''}
-
-
- -
${formData.admission.dischargeTime || ''}
-
-
-
-
- -
${formData.admission.hospitalDays || ''}
-
-
-
- - - - - - - - `; - - // 将内容写入打印窗口并打印 - printWindow.document.write(printContent); - printWindow.document.close(); -}; diff --git a/openhis-ui-vue3/index.html b/openhis-ui-vue3/index.html index 1c09afa31a6d1110478ab6cf7c00d2f00f3a6b05..b55771307589329a551eb74326f0aa0b75b5ae43 100644 --- a/openhis-ui-vue3/index.html +++ b/openhis-ui-vue3/index.html @@ -9,7 +9,7 @@ content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> - + 医院信息管理系统 +
+ +

一、基础信息

+ + +
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ + +
+ +
+
+ +
+ +
+
+ + + + + + + +
+ +
+
+
+
+ +

二、诊断

+ + + + + + + + + + + + + + + + +
+
+ + + + + + diff --git a/openhis-ui-vue3/src/template/FallBedFallAssessment.vue b/openhis-ui-vue3/src/template/FallBedFallAssessment.vue index 0d680f04e7e43405483106551425e1a151bad5b6..f5b17944750748603f89724120ece9a8c03603fc 100644 --- a/openhis-ui-vue3/src/template/FallBedFallAssessment.vue +++ b/openhis-ui-vue3/src/template/FallBedFallAssessment.vue @@ -1,7 +1,7 @@ - + -->
@@ -202,9 +202,17 @@ defineOptions({ }); import { ref, reactive, computed, onMounted } from 'vue'; import { ElMessage } from 'element-plus'; - -// import { webapp_ws_ajax_run, urlAddRandomNo } from '@/utils/grwebapp'; -// import { useRoute, useRouter } from 'vue-router'; +import { useRoute, useRouter } from 'vue-router'; +import { patientInfo } from '../views/doctorstation/components/store/patient'; + +// 定义props和emits +const props = defineProps({ + patientInfo: { + type: Object, + default: () => ({}), + }, +}); +const emits = defineEmits(['submitOk']); // 响应式数据 const route = useRoute(); @@ -515,29 +523,48 @@ const onSubmit = async () => { if (isFormEmpty.value) { ElMessage.error('请填写跌倒/坠床评估护理记录单后再进行操作'); - } else { - form.totalScore = totalScore.value; + return; + } - // 模拟保存数据,不再调用后端API - console.log('保存的数据:', form); + // 表单验证通过,收集数据 + form.totalScore = totalScore.value; + try { + // 准备保存的数据 + const saveData = { + ...form, + // 添加患者相关信息 + patientId: patientId.value, + visitId: visitId.value, + wardCode: wardCode.value, + // 确保选中项数组存在 + bedFallRiskAssessmentList: form.bedFallRiskAssessmentList || [], + patientCareSessionsCheckedList: form.patientCareSessionsCheckedList || [], + }; + + // 提交表单数据 + console.log('提交保存的数据:', saveData); + emits('submitOk', saveData); + + // 更新本地数据 if (updateFlag.value) { - // 模拟更新操作 + // 更新操作 const updatedIndex = tableDataSource.value.findIndex((item) => item.id === updateId.value); if (updatedIndex !== -1) { tableDataSource.value[updatedIndex].content = { ...form }; } - ElMessage.success('模拟更新成功'); + ElMessage.success('更新成功'); } else { - // 模拟新增操作 + // 新增操作 const newRecord = { id: Date.now().toString(), content: { ...form }, }; tableDataSource.value.unshift(newRecord); - ElMessage.success('模拟新增成功'); + ElMessage.success('保存成功'); } + // 处理返回逻辑 if (admissionDataForm.value !== undefined) { const admissionDataBack = JSON.parse(admissionDataForm.value); admissionDataBack.project2 = totalScore.value; @@ -558,7 +585,11 @@ const onSubmit = async () => { } } + // 重置表单 reset(); + } catch (error) { + console.error('保存失败:', error); + ElMessage.error('保存失败,请重试'); } }; @@ -815,7 +846,13 @@ onMounted(() => { wardCode.value = window.localStorage.getItem('wardInfo') || ''; admissionDataForm.value = route.params.admissionData; - // 自动初始化表格数据,不再依赖患者ID参数 + // 获取患者信息 + if (patientInfo.value) { + patientId.value = patientInfo.value.patientId || ''; + visitId.value = patientInfo.value.visitId || ''; + } + + // 自动初始化表格数据 // 延迟执行,确保所有数据都已初始化 setTimeout(() => { init(); @@ -828,6 +865,9 @@ onMounted(() => { }, 100); } }); + +// 暴露接口 +defineExpose({ form, submit: onSubmit, reset }); \ No newline at end of file + diff --git a/openhis-ui-vue3/src/template/ProgressNoteform.vue b/openhis-ui-vue3/src/template/ProgressNoteform.vue new file mode 100644 index 0000000000000000000000000000000000000000..72eb0f73ecadce32b7f446d1198caabf9698e9a0 --- /dev/null +++ b/openhis-ui-vue3/src/template/ProgressNoteform.vue @@ -0,0 +1,393 @@ + + + + + diff --git a/openhis-ui-vue3/src/template/img/logo.png b/openhis-ui-vue3/src/template/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..739c94d7895f75f1e7d2b0d64bea3969004ff98a Binary files /dev/null and b/openhis-ui-vue3/src/template/img/logo.png differ diff --git a/openhis-ui-vue3/src/template/imgs/logo.png b/openhis-ui-vue3/src/template/imgs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..739c94d7895f75f1e7d2b0d64bea3969004ff98a Binary files /dev/null and b/openhis-ui-vue3/src/template/imgs/logo.png differ diff --git a/openhis-ui-vue3/src/template/inHospitalCaseForm.vue b/openhis-ui-vue3/src/template/inHospitalCaseForm.vue new file mode 100644 index 0000000000000000000000000000000000000000..c30def338d75da667a4cbea7e5cc8f3d7e43b68f --- /dev/null +++ b/openhis-ui-vue3/src/template/inHospitalCaseForm.vue @@ -0,0 +1,351 @@ + + + + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/template/inHospitalSurgicalRecord.vue b/openhis-ui-vue3/src/template/inHospitalSurgicalRecord.vue index 7696def0a9ccf2e7e90ca754a77aebcefde1c136..0a77f861b08712ba98855e86d4419239ae3d9187 100644 --- a/openhis-ui-vue3/src/template/inHospitalSurgicalRecord.vue +++ b/openhis-ui-vue3/src/template/inHospitalSurgicalRecord.vue @@ -14,7 +14,7 @@ label-width="120px" label-align="left" class="doc-content" - style="height: 60vh; overflow: scroll;" + style="height: 60vh; overflow: scroll" >
@@ -23,29 +23,29 @@ - + - +
- +
- + - + - + - + - + - + - + - + @@ -90,11 +90,15 @@

三、手术详情

- + - + - + @@ -102,12 +106,20 @@ - + - + - - + + - +
- + ml
- + - + - + - + - + - + @@ -177,24 +197,27 @@

五、签署确认

-
+
请手术者亲笔签名
- +
请记录者(如第一助手)签字
- +
@@ -212,12 +235,21 @@ \ No newline at end of file + diff --git a/openhis-ui-vue3/src/template/inHosptialCommunicate.vue b/openhis-ui-vue3/src/template/inHosptialCommunicate.vue index 1c81e14e2e1d5a1a0478aa5634e683bb022e0cb5..b193f15fcfba46452794413e7d69c59f00603511 100644 --- a/openhis-ui-vue3/src/template/inHosptialCommunicate.vue +++ b/openhis-ui-vue3/src/template/inHosptialCommunicate.vue @@ -22,29 +22,29 @@ - + - +
- +
- + - + - + - + - + @@ -77,7 +77,7 @@

三、病情与诊断

- + - +
- +

四、治疗与检查计划

- + - - + +

六、签署确认

-
+
请填写患者或家属签字
- + - + - + - +
请填写沟通医师签字
- +
@@ -208,13 +219,53 @@ \ No newline at end of file + diff --git a/openhis-ui-vue3/src/template/nursingRecordSheet.vue b/openhis-ui-vue3/src/template/nursingRecordSheet.vue index f3d354f33881ed28ff2ebfe3b101ebb08cce51af..5c9e1df87b69a564444c4177dcc913122f48ff52 100644 --- a/openhis-ui-vue3/src/template/nursingRecordSheet.vue +++ b/openhis-ui-vue3/src/template/nursingRecordSheet.vue @@ -6,7 +6,7 @@ + + + - + +
@@ -184,7 +217,11 @@ import { deletePharmacyDepartment, } from './components/pharmacyDepartment'; const { proxy } = getCurrentInstance(); -const { distribution_category_code } = proxy.useDict('distribution_category_code'); +const { distribution_category_code, med_category_code, device_category_code } = proxy.useDict( + 'distribution_category_code', + 'med_category_code', + 'device_category_code' +); import { nextTick } from 'vue'; const diagnosisTreatmentList = ref([]); @@ -293,10 +330,6 @@ function handleSelectionChange(selection) { } function openAddPharmacyDepartment() { - if (data.isAdding) { - proxy.$message.warning('请先保存当前行后再新增!'); - return; - } const newRow = { id: '', organizationId: '', diff --git a/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/components/api.js b/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/components/api.js index e28adfe8d060ce9de37a1d823e33253a3362ec19..8009e1431c1df2dcb6ac030feb1629fdbef1408c 100644 --- a/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/components/api.js +++ b/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/components/api.js @@ -36,7 +36,8 @@ export function updateWarehouse(data) { // 删除 export function deleteWarehouse(data) { return request({ - url: '/base-data-manage/location/location?locationId=' + data.locationId, + // url: '/base-data-manage/location/location?locationId=' + data.locationId, + url: '/base-data-manage/location/location?busNo=' + data.busNo, method: 'delete', }) } diff --git a/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/index.vue b/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/index.vue index a71209e7321a125566434fed2a1566cffdd36b7c..3e4cba3b3ff4b4c1fdcff43fc6843b0627a49c01 100644 --- a/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/warehouseLocation/index.vue @@ -295,7 +295,8 @@ function submitForm() { // 删除 function handelDelete(data) { loading.value = true; - deleteWarehouse({ locationId: data.id }).then((res) => { + console.log(data, 'data'); + deleteWarehouse({ busNo: data.busNo }).then((res) => { proxy.$modal.msgSuccess('操作成功'); loading.value = false; getPageList(); diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue index 632d9837f0d40eb0c0a9d2474c61eb21d6336aba..f9a5e91623c080ac8b6d87b1776b0844ab756eea 100644 --- a/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue +++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue @@ -160,6 +160,7 @@ @click=" () => { form.ybNo = item.ybNo; + form.busNo = item.busNo; form.price = item.retailPrice; } " @@ -679,6 +680,7 @@ const transformFormData = (form) => { ybNo, title, comment, + busNo, } = form.value; return { @@ -696,6 +698,7 @@ const transformFormData = (form) => { appointmentRequiredFlag, extraDetails, comment, + busNo, }, chargeItemDefinitionFormData: { id, @@ -734,6 +737,7 @@ const transformFormEditData = (form) => { ybNo, title, comment, + busNo, } = form.value; return { @@ -751,6 +755,7 @@ const transformFormEditData = (form) => { appointmentRequiredFlag, extraDetails, comment, + busNo, }, }; }; diff --git a/openhis-ui-vue3/src/views/catalog/device/components/deviceDialog.vue b/openhis-ui-vue3/src/views/catalog/device/components/deviceDialog.vue index 0a93e7f2bc1a7081e1ec0ee5e357ba3bcf9c2e8a..b1cf12c63e330d073481ae40190f8d67ede0d61a 100644 --- a/openhis-ui-vue3/src/views/catalog/device/components/deviceDialog.vue +++ b/openhis-ui-vue3/src/views/catalog/device/components/deviceDialog.vue @@ -261,7 +261,7 @@ clearable filterable style="width: 240px" - :disabled="form.isEditInfoDisable === 1" + :disabled="form.isEditInfoDisable === 1 || form.isEditInfoDisable === 2" > + + -
- +
+ - + 确认退药 扫码 - - + + - + @@ -74,29 +134,30 @@ \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js index b3d29145fda02b26a35daa368ec246927b2af8e9..84ba1e4a8fcc20f9cdbf6f65464e3d2b85bf4072 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js +++ b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js @@ -1,34 +1,77 @@ -import request from '@/utils/request' +import request from '@/utils/request'; -export function listSkinRecord(query) { +/** + * 获取患者列表 + */ +export function getList(queryParams) { return request({ - url: '/outpatient-manage/skin-test/outpatient-record-page', + url: '/outpatient-manage/treatment/encounter-list', method: 'get', - params: query - }) + params: queryParams, + }); } -export function lists() { +/** + * 获取皮试记录列表 + */ +export function listSkinRecord(queryParams) { return request({ - url: '/outpatient-manage/skin-test/init', + url: '/outpatient-manage/skin-test/record-info', method: 'get', - }) + params: queryParams, + }); } +/**后台没有对应接口,暂无 + * 更新护士签名 + */ +export function updateNurseSign(data) { + return request({ + url: '/outpatient-manage/skin-test/nurse-sign', + method: 'put', + data: data, + }); +} +/** + * 更新皮试记录 + */ export function updateSkinTestRecord(data) { - return request({ - url: '/outpatient-manage/skin-test/outpatient-record-skin-test', - method: 'put', - data: data - }) - } + return request({ + url: '/outpatient-manage/skin-test/save-record-info', + method: 'post', + data: data, + }); +} + +/** + * 初始化选项 + */ +export function lists() { + return request({ + url: '/outpatient-manage/skin-test/init', + method: 'get', + }); +} - - export function updateNurseSign(data) { - return request({ - url: '/outpatient-manage/skin-test/outpatient-record-sign-check', - method: 'put', - data: data - }) - } \ No newline at end of file +/** + * 获取护士列表 + */ +export function getNurseList(queryParams) { + return request({ + url: '/app-common/nurse-list', + method: 'get', + params: queryParams, + }); +} + +/** + * 新增皮试记录 + */ +export function addSkinTestRecord(data) { + return request({ + url: '/outpatient-manage/skin-test/save-record-info', + method: 'post', + data: data, + }); +} diff --git a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue index 6d8638bb4fe711e05b63ecde13846368b9014967..321b0555c817d45494332b607f0237fe24b99fe0 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue +++ b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue @@ -1,507 +1,620 @@ - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/doctorstation/components/api.js b/openhis-ui-vue3/src/views/doctorstation/components/api.js index 2652c093994338004e2ff5620b39dbf240c8f4eb..38deebda193b8c5798e910715533007daecea4b0 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/api.js +++ b/openhis-ui-vue3/src/views/doctorstation/components/api.js @@ -1,4 +1,4 @@ -import request from '@/utils/request' +import request from '@/utils/request'; // 病历相关接口 /** * 获取患者列表 @@ -7,8 +7,8 @@ export function getList(queryParams) { return request({ url: '/doctor-station/main/patient-info', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -18,8 +18,8 @@ export function getEmrHistoryList(queryParams) { return request({ url: '/doctor-station/emr/emr-page', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -29,8 +29,8 @@ export function getEmrTemplateList(queryParams) { return request({ url: '/doctor-station/emr/emr-template-page', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -40,7 +40,7 @@ export function receiveEncounter(encounterId) { return request({ url: '/doctor-station/main/receive-encounter?encounterId=' + encounterId, method: 'get', - }) + }); } /** @@ -50,7 +50,7 @@ export function leaveEncounter(encounterId) { return request({ url: '/doctor-station/main/leave-encounter?encounterId=' + encounterId, method: 'get', - }) + }); } /** @@ -60,7 +60,7 @@ export function completeEncounter(encounterId) { return request({ url: '/doctor-station/main/complete-encounter?encounterId=' + encounterId, method: 'get', - }) + }); } /** @@ -70,39 +70,39 @@ export function saveEmr(data) { return request({ url: '/doctor-station/emr/emr', method: 'post', - data: data - }) + data: data, + }); } /** * 删除病历模板 */ -export function deleteEmrTemplate(id){ +export function deleteEmrTemplate(id) { return request({ url: '/doctor-station/emr/emr-template?id=' + id, method: 'delete', - }) + }); } /** * 获取病历详情 */ -export function getEmrDetail(encounterId){ +export function getEmrDetail(encounterId) { return request({ url: '/doctor-station/emr/emr-detail?encounterId=' + encounterId, method: 'get', - }) + }); } /** * 保存病历模板 */ -export function saveEmrTemplate(data){ +export function saveEmrTemplate(data) { return request({ url: '/doctor-station/emr/emr-template', method: 'post', - data: data - }) + data: data, + }); } // 诊断相关接口 @@ -111,10 +111,10 @@ export function saveEmrTemplate(data){ */ export function saveDiagnosis(data) { return request({ - url: '/doctor-station/diagnosis/save-doctor-diagnosis', + url: '/doctor-station/diagnosis/save-doctor-diagnosisnew', method: 'post', - data: data - }) + data: data, + }); } /** @@ -124,8 +124,8 @@ export function saveDiagnosisBind(data) { return request({ url: '/doctor-station/diagnosis/diagnosis-belong-binding', method: 'post', - data: data - }) + data: data, + }); } /** * 删除诊断绑定 @@ -134,7 +134,7 @@ export function deleteDiagnosisBind(id) { return request({ url: '/doctor-station/diagnosis/diagnosis-belong-binding?id=' + id, method: 'delete', - }) + }); } /** @@ -144,8 +144,8 @@ export function getDiagnosisDefinitionList(queryParams) { return request({ url: '/doctor-station/diagnosis/condition-definition-metadata', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -155,7 +155,7 @@ export function getConditionDefinitionInfo(patientId) { return request({ url: '/doctor-station/diagnosis/get-condition-definition-class?patientId=' + patientId, method: 'get', - }) + }); } /** @@ -165,40 +165,51 @@ export function diagnosisInit() { return request({ url: '/doctor-station/diagnosis/init', method: 'get', - }) + }); } /** - * + * * 获取诊断回显数据 */ export function getEncounterDiagnosis(encounterId) { return request({ url: '/doctor-station/diagnosis/get-encounter-diagnosis?encounterId=' + encounterId, method: 'get', - }) + }); } /** - * + * + * 获取诊断集合数据 + */ +export function getDiagnosisListEle(searchKey,encounterId) { + return request({ + url: '/doctor-station/diagnosis/get-encounter-diagnosis-ele?searchKey=' + searchKey+'&encounterId='+encounterId, + method: 'get', + }); +} + +/** + * * 获取诊断集合数据 */ export function getDiagnosisList(searchKey) { - return request({ - url: '/doctor-station/diagnosis/get-diagnosis-list?searchKey=' + searchKey, - method: 'get', - }) + return request({ + url: '/doctor-station/diagnosis/get-diagnosis-list?searchKey=' + searchKey, + method: 'get', + }); } /** - * + * * 删除就诊诊断 */ export function delEncounterDiagnosis(conditionId) { return request({ url: '/doctor-station/diagnosis/encounter-diagnosis?conditionId=' + conditionId, method: 'delete', - }) + }); } // 处方相关接口 @@ -209,8 +220,8 @@ export function getAdviceBaseInfo(queryParams) { return request({ url: '/doctor-station/advice/advice-base-info', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** * 保存处方(单条) @@ -219,8 +230,8 @@ export function savePrescription(data) { return request({ url: '/doctor-station/advice/save-advice', method: 'post', - data: data - }) + data: data, + }); } /** * 签发处方 @@ -229,8 +240,8 @@ export function savePrescriptionSign(data) { return request({ url: '/doctor-station/advice/sign-advice', method: 'post', - data: data - }) + data: data, + }); } /** * 处方签退 @@ -239,8 +250,8 @@ export function singOut(data) { return request({ url: '/doctor-station/advice/sign-off', method: 'post', - data: data - }) + data: data, + }); } /** * 获取患者本次就诊处方 @@ -249,7 +260,7 @@ export function getPrescriptionList(encounterId) { return request({ url: '/doctor-station/advice/request-base-info?encounterId=' + encounterId, method: 'get', - }) + }); } /** * 获取科室列表 @@ -258,7 +269,7 @@ export function getOrgTree() { return request({ url: '/base-data-manage/organization/organization', method: 'get', - }) + }); } /** * 获取退费账单 @@ -267,7 +278,7 @@ export function getEncounterPatientPayment(encounterId) { return request({ url: '/charge-manage/refund/patient-payment?encounterId=' + encounterId, method: 'get', - }) + }); } /** * 申请退费 @@ -276,11 +287,10 @@ export function refundPayment(data) { return request({ url: '/charge-manage/refund/refund-payment', method: 'post', - data: data - }) + data: data, + }); } - // 电子处方相关接口 /** * 电子处方查询 @@ -289,8 +299,8 @@ export function getVeriPrescriptionInfo(queryParams) { return request({ url: '/ybelep-request/get-PrescriptionInfo', method: 'get', - params: queryParams - }) + params: queryParams, + }); } // 处方开立相关接口 @@ -301,16 +311,16 @@ export function getAllMedicationInfo(queryParams) { return request({ url: '/doctor-station/elep/get-allMedicationInfo', method: 'get', - params: queryParams - }) + params: queryParams, + }); } // 当返回的list为空时在调用get-allMedicationInfo export function getAllMedicationUsualInfo(queryParams) { return request({ url: '/doctor-station/elep/get-allMedicationUsualInfo', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** * 电子处方下拉框 @@ -318,8 +328,8 @@ export function getAllMedicationUsualInfo(queryParams) { export function elepPrescriptionInit() { return request({ url: '/doctor-station/elep/init', - method: 'get' - }) + method: 'get', + }); } /** @@ -329,8 +339,8 @@ export function getPrescriptionInfo(queryParams) { return request({ url: '/doctor-station/elep/get-prescriptionInfo', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -340,8 +350,8 @@ export function getMedicationInfo(queryParams) { return request({ url: '/doctor-station/elep/get-medicationInfo', method: 'get', - params: queryParams - }) + params: queryParams, + }); } /** @@ -350,8 +360,8 @@ export function getMedicationInfo(queryParams) { export function prescriptionNoInit() { return request({ url: '/doctor-station/elep/prescriptionNoInit', - method: 'get' - }) + method: 'get', + }); } /** @@ -361,8 +371,8 @@ export function savePrescriptionInfo(data) { return request({ url: '/doctor-station/elep/save-prescriptionInfo', method: 'post', - data: data - }) + data: data, + }); } /** @@ -372,8 +382,8 @@ export function updatePrescriptionInfo(data) { return request({ url: '/doctor-station/elep/update-prescriptionInfo', method: 'post', - data: data - }) + data: data, + }); } /** @@ -383,8 +393,8 @@ export function deletePrescriptionInfo(data) { return request({ url: '/doctor-station/elep/delete-prescriptionInfo', method: 'post', - data: data - }) + data: data, + }); } /** @@ -394,8 +404,8 @@ export function issuancePrescription(prescriptionNoList) { return request({ url: '/doctor-station/elep/issuance-prescription', method: 'post', - data: prescriptionNoList - }) + data: prescriptionNoList, + }); } /** @@ -405,8 +415,8 @@ export function getAdviceHistoryInfo(params) { return request({ url: '/doctor-station/advice/request-history-info', method: 'get', - params: params - }) + params: params, + }); } /** @@ -416,8 +426,8 @@ export function updateGroupId(data) { return request({ url: '/doctor-station/advice/update-groupid', method: 'put', - data: data - }) + data: data, + }); } /** @@ -427,8 +437,8 @@ export function getOrderGroupList(params) { return request({ url: '/personalization/order-group/order-group', method: 'get', - params: params - }) + params: params, + }); } /** @@ -438,11 +448,10 @@ export function getContract(params) { return request({ url: '/doctor-station/advice/get-encounter-contract', method: 'get', - params: params - }) + params: params, + }); } - /** * 取得药品最新数据 */ @@ -450,8 +459,8 @@ export function queryYbCatalogue(params) { return request({ url: '/yb-request/query-yb-catalogue', method: 'post', - params: params - }) + params: params, + }); } /** @@ -461,8 +470,8 @@ export function getChronicDisease(params) { return request({ url: '/yb-request/getConditionDefinition', method: 'get', - params: params - }) + params: params, + }); } /** @@ -472,8 +481,8 @@ export function getTcmMedicine(params) { return request({ url: '/doctor-station/chinese-medical/tcm-advice-base-info', method: 'get', - params: params - }) + params: params, + }); } /** @@ -483,8 +492,8 @@ export function getTcmCondition(params) { return request({ url: '/doctor-station/chinese-medical/condition-info', method: 'get', - params: params - }) + params: params, + }); } /** @@ -494,8 +503,8 @@ export function getTcmSyndrome(params) { return request({ url: '/doctor-station/chinese-medical/syndrome-info', method: 'get', - params: params - }) + params: params, + }); } /** @@ -505,8 +514,8 @@ export function getTcmDiagnosis(params) { return request({ url: '/doctor-station/chinese-medical/get-tcm-encounter-diagnosis', method: 'get', - params: params - }) + params: params, + }); } /** @@ -516,8 +525,20 @@ export function saveTcmDiagnosis(data) { return request({ url: '/doctor-station/chinese-medical/save-tcm-diagnosis', method: 'post', - data: data - }) + data: data, + }); +} + + +/** + * 保存中医诊断 + */ +export function updateTcmDiagnosis(data) { + return request({ + url: '/doctor-station/chinese-medical/update-tcm-diagnosis', + method: 'post', + data: data, + }); } /** @@ -527,7 +548,7 @@ export function deleteTcmDiagnosis(syndromeGroupNo) { return request({ url: '/doctor-station/chinese-medical/tcm-diagnosis?syndromeGroupNo=' + syndromeGroupNo, method: 'delete', - }) + }); } /** @@ -537,8 +558,8 @@ export function saveTcmAdvice(data) { return request({ url: '/doctor-station/chinese-medical/save-tcm-advice', method: 'post', - data: data - }) + data: data, + }); } /** @@ -548,8 +569,8 @@ export function signTcmAdvice(data) { return request({ url: '/doctor-station/chinese-medical/sign-tcm-advice', method: 'post', - data: data - }) + data: data, + }); } /** @@ -559,8 +580,8 @@ export function signOutTcmAdvice(data) { return request({ url: '/doctor-station/chinese-medical/sign-tcm-off', method: 'post', - data: data - }) + data: data, + }); } /** @@ -570,11 +591,10 @@ export function getTcmAdviceList(params) { return request({ url: '/doctor-station/chinese-medical/tcm-request-base-info', method: 'get', - params: params - }) + params: params, + }); } - /** * 获取预约记录 */ @@ -582,8 +602,8 @@ export function getReservationInfo(params) { return request({ url: '/doctor-station/reservation-record/reservation-info', method: 'get', - params: params - }) + params: params, + }); } /** @@ -593,8 +613,8 @@ export function addReservationInfo(data) { return request({ url: '/doctor-station/reservation-record/save-reservation', method: 'post', - data: data - }) + data: data, + }); } /** @@ -604,8 +624,8 @@ export function editReservationInfo(data) { return request({ url: '/doctor-station/reservation-record/edit-reservation', method: 'put', - data: data - }) + data: data, + }); } /** @@ -615,17 +635,16 @@ export function delReservationInfo(id) { return request({ url: '/doctor-station/reservation-record/del-reservation', method: 'delete', - params: id - }) + params: id, + }); } - // 查询初期所需数据 export function getInit() { return request({ url: '/charge-manage/register/init', - method: 'get' - }) + method: 'get', + }); } /** @@ -635,8 +654,8 @@ export function queryParticipantList(params) { return request({ url: '/app-common/practitioner-list', method: 'get', - params: params - }) + params: params, + }); } /** @@ -646,7 +665,7 @@ export function getOrgList() { return request({ url: '/base-data-manage/organization/organization', method: 'get', - }) + }); } /** @@ -656,8 +675,8 @@ export function wardList(params) { return request({ url: '/app-common/ward-list', method: 'get', - params: params - }) + params: params, + }); } /** @@ -667,8 +686,8 @@ export function handleHospitalization(data) { return request({ url: '/inhospital-charge/register/by-doctor', method: 'post', - data: data - }) + data: data, + }); } /** @@ -678,8 +697,8 @@ export function getEnPrescriptionInfo(data) { return request({ url: '/doctor-station/main/prescription-page-info', method: 'get', - params: data - }) + params: data, + }); } /** @@ -689,8 +708,8 @@ export function getOrderGroup(data) { return request({ url: '/personalization/orders-group-package/group-package-for-order', method: 'get', - params: data - }) + params: data, + }); } /** @@ -700,8 +719,8 @@ export function getBindDevice(data) { return request({ url: '/doctor-station/advice/order-bind-info', method: 'get', - params: data - }) + params: data, + }); } /** @@ -711,6 +730,46 @@ export function isFoodDiseasesNew(params) { return request({ url: '/external-integration/foodborne-acquisition/is-food-diseases-new', method: 'get', - params: params - }) + params: params, + }); +} + +// 是否入院登记 +export function isHospitalization(params) { + return request({ + url: '/inhospital-charge/register/isRegister', + method: 'get', + params: params, + }); +} + +// 校验三十天内是否开过相同检查检验项目 +export function checkServicesHistory(params) { + return request({ + url: '/doctor-station/advice/proof-test-history', + method: 'get', + params: params, + }); +} + +/** + * 查询检验报告 url + */ +export function getProofResult(queryParams) { + return request({ + url: '/doctor-station/advice/proof-result', + method: 'get', + params: queryParams, + }); +} + +/** + * 查询检查报告 url + */ +export function getTestResult(queryParams) { + return request({ + url: '/doctor-station/advice/test-result', + method: 'get', + params: queryParams, + }); } diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue index 7454ad5b59fa3ac8b26d788901ddd71eecf93dba..bbdee4d5d1a6e8acf0963fd2c2ced0a95156baea 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue @@ -91,7 +91,9 @@ import { getTcmCondition, getTcmSyndrome, saveTcmDiagnosis, + updateTcmDiagnosis, } from '@/views/doctorstation/components/api'; +import { update } from 'lodash'; const props = defineProps({ openAddDiagnosisDialog: { @@ -102,6 +104,10 @@ const props = defineProps({ type: Object, required: true, }, + updateZy: { + type: Object, + required: true, + }, }); const conditionList = ref([]); @@ -118,64 +124,183 @@ function handleOpen() { getTcmCondition().then((res) => { conditionList.value = res.data.records; }); + tcmDiagonsisSaveList.value=[]; + tcmDiagonsisList.value=[]; + debugger; + if (props.updateZy.length>0) { + props.updateZy.forEach((item) => { + let updateIds=item.updateId.split("-"); + let name=item.name.split("-"); + tcmDiagonsisSaveList.value.push({ + conditionId: updateIds[0], + definitionId: item.illnessDefinitionId, + ybNo: item.ybNo, + syndromeGroupNo: item.syndromeGroupNo, + verificationStatusEnum: 4, + medTypeCode: '11', + diagSrtNo:item.diagSrtNo, + }); + tcmDiagonsisList.value.push({ + conditionName: name[0], + syndromeGroupNo: item.syndromeGroupNo, + }); + tcmDiagonsisSaveList.value.push({ + conditionId: updateIds[1], + definitionId: item.symptomDefinitionId, + ybNo: item.symptomYbNo, + syndromeGroupNo: item.syndromeGroupNo, + diagSrtNo:item.diagSrtNo, + }); + tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = name[1]; + console.log("这是修改时带入的数据"); + console.log(tcmDiagonsisList.value); + console.log(tcmDiagonsisSaveList.value); + syndromeSelected.value = true; + }); + } } // 点击诊断列表处理,点击以后才显示证候列表 function handleClickRow(row) { - if (syndromeSelected.value || tcmDiagonsisList.value == 0) { + if (syndromeSelected.value || tcmDiagonsisList.value.length == 0) { + syndromeSelected.value = false; selectedDisease.value = true; - syndromeSelected.value = false; timestamp.value = Date.now(); getTcmSyndrome().then((res) => { syndromeList.value = res.data.records; }); - tcmDiagonsisSaveList.value.push({ - definitionId: row.id, - ybNo: row.ybNo, - syndromeGroupNo: timestamp.value, - verificationStatusEnum: 4, - medTypeCode: '11', - }); - tcmDiagonsisList.value.push({ - conditionName: row.name, - syndromeGroupNo: timestamp.value, - }); + + if (props.updateZy.length>0) { + props.updateZy.forEach((item) => { + let updateIds=item.updateId.split("-"); + tcmDiagonsisSaveList.value.push({ + updateId:updateIds[0], + conditionId: updateIds[0], + definitionId: row.id, + ybNo: row.ybNo, + syndromeGroupNo: timestamp.value, + verificationStatusEnum: 4, + medTypeCode: '11', + diagSrtNo:item.diagSrtNo, + }); + debugger; + if(tcmDiagonsisList.value.length>0){ + tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName = row.name; + }else{ + tcmDiagonsisList.value.push({ + conditionName: row.name, + syndromeGroupNo: timestamp.value, + }); + } + }); + }else{ + tcmDiagonsisSaveList.value.push({ + definitionId: row.id, + ybNo: row.ybNo, + syndromeGroupNo: timestamp.value, + verificationStatusEnum: 4, + medTypeCode: '11', + }); + tcmDiagonsisList.value.push({ + conditionName: row.name, + syndromeGroupNo: timestamp.value, + }); + } + + + } + + // tcmDiagonsisList.value.push({ + // conditionName: row.name, + // syndromeGroupNo: timestamp.value, + // }); + } -} function clickSyndromeRow(row) { - tcmDiagonsisSaveList.value.push({ - definitionId: row.id, - ybNo: row.ybNo, - syndromeGroupNo: timestamp.value, + debugger; + let flag=true; + tcmDiagonsisList.value.forEach( item => { + if(tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName==item.conditionName){ + if(item.syndromeName==row.name ){ + proxy.$modal.msgWarning('不能存在完全相同的诊断和证侯'); + flag=false; + } + } }); - tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name; - syndromeSelected.value = true; + if(flag){ + if(props.updateZy.length>0){ + props.updateZy.forEach((item) => { + let updateIds=item.updateId.split("-"); + tcmDiagonsisSaveList.value.push({ + updateId:updateIds[1], + conditionId: updateIds[1], + definitionId: row.id, + ybNo: row.ybNo, + syndromeGroupNo: timestamp.value, + }); + tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name; + syndromeSelected.value = true; + }); + + }else{ + tcmDiagonsisSaveList.value.push({ + definitionId: row.id, + ybNo: row.ybNo, + syndromeGroupNo: timestamp.value, + }); + tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name; + syndromeSelected.value = true; + } + + + // tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name; + // syndromeSelected.value = true; + } } // 删除诊断 function removeDiagnosis(row, index) { tcmDiagonsisList.value.splice(index, 1); - tcmDiagonsisSaveList.value = tcmDiagonsisSaveList.filter((item) => { + tcmDiagonsisSaveList.value = tcmDiagonsisSaveList.value.filter((item) => { return item.syndromeGroupNo !== row.syndromeGroupNo; }); + } function save() { - saveTcmDiagnosis({ - patientId: props.patientInfo.patientId, - encounterId: props.patientInfo.encounterId, - diagnosisChildList: tcmDiagonsisSaveList.value, - }).then((res) => { - if (res.code == 200) { - emit('close'); - proxy.$modal.msgSuccess('诊断已保存'); - } - }); + if(props.updateZy.length>0){ + updateTcmDiagnosis({ + patientId: props.patientInfo.patientId, + encounterId: props.patientInfo.encounterId, + diagnosisChildList: tcmDiagonsisSaveList.value, + }).then((res) => { + if (res.code == 200) { + emit('close'); + proxy.$modal.msgSuccess('诊断已保存'); + } + }); + }else{ + saveTcmDiagnosis({ + patientId: props.patientInfo.patientId, + encounterId: props.patientInfo.encounterId, + diagnosisChildList: tcmDiagonsisSaveList.value, + }).then((res) => { + if (res.code == 200) { + emit('close'); + proxy.$modal.msgSuccess('诊断已保存'); + } + }); + } + } function submit() { - if (tcmDiagonsisSaveList.value.length > 0 && syndromeSelected.value) { + debugger; + if ( + tcmDiagonsisSaveList.value.length > 0 && + (syndromeSelected.value || tcmDiagonsisSaveList.value.length % 2 == 0) + ) { save(); } else { proxy.$modal.msgWarning('请选择证候'); diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue index ace2f5a356bf94ca464e092484018beb1a2a199b..4c60e2f54a635855d4921ba3ffa9bd6b52b6cd21 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -2,33 +2,64 @@
- + - + @@ -80,7 +86,10 @@ const { proxy } = getCurrentInstance(); import { ElMessageBox } from 'element-plus'; import PatientInfoComp from './patientInfo.vue'; import RegisterForm from './registerForm.vue'; -import { noFilesRegister, registerInHospital, getInit } from './api'; +import { noFilesRegister, registerInHospital, getInit, getProvincesAndCities } from './api'; +import { useRouter } from 'vue-router'; +import printUtils from '@/utils/printUtils'; +const router = useRouter(); const emits = defineEmits(['okAct', 'cancelAct']); const props = defineProps({ @@ -103,6 +112,10 @@ const props = defineProps({ type: Boolean, default: false, }, + isRegistered: { + type: Boolean, + default: false, // false 表示待登记,true 表示已登记 + }, }); watch( @@ -122,6 +135,7 @@ import { ElMessage } from 'element-plus'; const width = '1128px'; const patientApiInfo = ref({}); const initOptions = ref({}); +const payEnum = ref(220400); /* 取消 */ const cancelAct = () => { @@ -131,12 +145,31 @@ const patientInfoRef = ref(); /* 预交金 */ const advancePaymentVisible = ref(false); -/* 保存 */ +const jumpToYbRegisterEdit = () => { + router + .push({ + path: '/ybmanagement/ybInhospital/ybregisterEdit', + query: { + encounterId: '1993854019030441985', + }, + }) + .catch((error) => { + console.error('跳转医保登记页面失败:', error); + }); +}; +/* 登记 */ const handleSubmit = () => { - let params = {}; + let params = { + inHospitalInfo: {}, + payEnum: 0, + }; + params.inHospitalInfo.payEnum = payEnum.value; + params.payEnum = payEnum.value; + debugger; if (props.noFile) { RegisterFormRef.value.validateData(async () => { params.inHospitalInfo = RegisterFormRef.value.submitForm; + params.inHospitalInfo.payEnum = payEnum.value; params.patientInformation = patientInfoRef.value.getPatientForm(); if (params.patientInformation.idCard) { // 验证身份证号长度是否为18位 @@ -151,13 +184,57 @@ const handleSubmit = () => { } } console.log('params', params); + debugger; params.inHospitalInfo.balanceAmount = advance.value; const performRegistration = () => { noFilesRegister(params).then((res) => { if (res.code == 200) { - emits('okAct'); ElMessage.success(res.msg); advancePaymentVisible.value = true; + ElMessage.success(res.msg); + // 打印预交金收据 + printDepositReceipt(props.patientInfo, params.inHospitalInfo); + // 询问是否需要医保登记 + ElMessageBox.confirm('是否需要进行医保登记?', '医保登记确认', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'info', + }) + .then(() => { + // 准备传递的数据 + const cardData = { + patientInfo: params.patientInformation, + inHospitalInfo: params.inHospitalInfo, + encounterId: params.inHospitalInfo.encounterId, + }; + + // 跳转到医保登记页面 + try { + router + .push({ + path: '/ybmanagement/ybInhospital/ybregisterEdit', + query: { + encounterId: props.patientInfo.encounterId, + cardData: encodeURIComponent(JSON.stringify(cardData)), + cardType: 'inHospital', + operationType: 'HospitalizationRegistration', + }, + }) + .then(() => { + console.log('路由跳转成功'); + }) + .catch((error) => { + console.error('路由跳转失败:', error); + ElMessage.error('跳转到医保登记页面失败'); + }); + } catch (error) { + console.error('跳转异常:', error); + } + }) + .catch(() => { + // 用户取消医保登记,关闭当前弹窗 + emits('okAct'); + }); } else { ElMessage.error(res.msg); } @@ -184,11 +261,60 @@ const handleSubmit = () => { params = { ...params, ...RegisterFormRef.value.submitForm }; console.log('params', params); const performRegistration = () => { + console.log('params', params); registerInHospital(params).then((res) => { if (res.code == 200) { - emits('okAct'); ElMessage.success(res.msg); advancePaymentVisible.value = true; + + // 打印预交金收据 + printDepositReceipt( + props.patientInfo, + params, + RegisterFormRef.value.medicalInsuranceTitle + ); + + // 询问是否需要医保登记 + ElMessageBox.confirm('是否需要进行医保登记?', '医保登记确认', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'info', + }) + .then(() => { + // 准备传递的数据 + const cardData = { + patientInfo: props.patientInfo, + inHospitalInfo: params, + }; + + // 跳转到医保登记页面 + try { + router + .push({ + path: '/ybmanagement/ybInhospital/ybregisterEdit', + query: { + encounterId: props.patientInfo.encounterId, + cardData: encodeURIComponent(JSON.stringify(cardData)), + cardType: 'inHospital', + operationType: 'HospitalizationRegistration', + certType: props.patientInfo.certType, + }, + }) + .then(() => { + console.log('路由跳转成功'); + }) + .catch((error) => { + console.error('路由跳转失败:', error); + ElMessage.error('跳转到医保登记页面失败'); + }); + } catch (error) { + console.error('跳转异常:', error); + } + }) + .catch(() => { + // 用户取消医保登记,关闭当前弹窗 + emits('okAct'); + }); } else { ElMessage.error(res.msg); } @@ -239,18 +365,22 @@ const RegisterFormRef = ref(); const feeTypeOptions = reactive([ { type: 'hipCash', + payEnum: 220400, label: '现金', }, { type: 'hipAlipay', + payEnum: 220200, label: '支付宝', }, { type: 'wechat', + payEnum: 220100, label: '微信', }, { type: 'hipPayCard', + payEnum: 220300, label: '银行卡', }, ]); @@ -279,7 +409,119 @@ const onChangFeeType = () => { medicalInsuranceVisible.value = true; }; -/* */ +/* 打印预交金收据 */ +const printDepositReceipt = async (patientInfo, inHospitalInfo, medicalInsuranceTitle) => { + try { + // 构造支付方式详情文本 + const paymentDetails = `现金 ${ + currentFeeType.value === 'hipCash' ? advance.value || '0.00' : '0.00' + } 微信 ${currentFeeType.value === 'wechat' ? advance.value || '0.00' : '0.00'} 支付宝 ${ + currentFeeType.value === 'hipAlipay' ? advance.value || '0.00' : '0.00' + } 银行 ${currentFeeType.value === 'hipPayCard' ? advance.value || '0.00' : '0.00'}`; + + // 构造打印数据 + const printData = { + // 患者基本信息 + patientName: patientInfo.patientName || '', // 姓名 + patientId: patientInfo.idCard || patientInfo.patientCode || '', // ID号 + contractName: patientInfo.contractName || '自费', // 医保类别 + + // 住院信息 + encounterNo: inHospitalInfo.encounterNo || '', // 住院号 + inHospitalOrgName: inHospitalInfo.inHospitalOrgName || '', // 机构名称 + + // 费用信息 + balanceAmount: advance.value || '0.00', // 金额 + amountInWords: convertToChineseNumber(advance.value || '0.00'), // 人民币大写 + + // 支付方式详情 + paymentDetails: paymentDetails, + + // 时间信息 + currentTime: new Date().toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + }), + + // 其他信息 + cashier: userStore?.nickName || '', // 收款人(收费员) + medicalInsuranceTitle: medicalInsuranceTitle || '', // 医保标题信息 + }; + + console.log(printData, 'dayin 预交金printData'); + + // 直接导入并使用指定的预交金打印模板 + const templateModule = await import('@/components/Print/AdvancePayment.json'); + let template = templateModule.default || templateModule; + + // 使用printUtils执行打印 + await printUtils.executePrint(printData, template); + console.log('预交金收据打印成功'); + } catch (error) { + console.error('打印失败:', error); + ElMessage.error('打印失败: ' + error.message); + } +}; + +/* 将数字转换为人民币大写 */ +const convertToChineseNumber = (amount) => { + // 数字转大写 + const digits = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; + const units = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']; + const decimalUnits = ['角', '分']; + + let [integer, decimal] = amount.toString().split('.'); + decimal = decimal || '00'; + decimal = decimal.padEnd(2, '0').substring(0, 2); + + let result = ''; + + // 处理整数部分 + if (parseInt(integer) === 0) { + result += '零元'; + } else { + for (let i = 0; i < integer.length; i++) { + const digit = parseInt(integer[i]); + const position = integer.length - i - 1; + + if (digit !== 0) { + result += digits[digit] + units[position]; + } else { + // 避免连续的零 + if (i > 0 && parseInt(integer[i - 1]) !== 0) { + result += digits[digit]; + } + // 但需要保留万、亿等单位 + if (position % 4 === 0 && position > 0) { + result += units[position]; + } + } + } + result += '元'; + } + + // 处理小数部分 + if (parseInt(decimal) === 0) { + result += '整'; + } else { + if (parseInt(decimal[0]) > 0) { + result += digits[parseInt(decimal[0])] + decimalUnits[0]; + } + if (parseInt(decimal[1]) > 0) { + result += digits[parseInt(decimal[1])] + decimalUnits[1]; + } + } + + return result; +}; + +/* 导入用户信息 */ +import useUserStore from '@/store/modules/user'; +const userStore = useUserStore(); \ No newline at end of file + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue index ea3436673ade7a4ff286e962340da2ebdc771402..32f990ed3b2f028c90a8f58147e2aa59ad4d99d8 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue @@ -4,42 +4,284 @@ * @Description: 检查申请详情 --> - - \ No newline at end of file + +const isFieldMatched = (key) => { + return key in labelMap; +}; + +const getFieldLabel = (key) => { + return labelMap[key] || key; +}; + +const hasMatchedFields = computed(() => { + if (!descJsonData.value) return false; + return Object.keys(descJsonData.value).some((key) => isFieldMatched(key)); +}); + +const handleViewDetail = (row) => { + currentDetail.value = row; + // 解析 descJson + if (row.descJson) { + try { + descJsonData.value = JSON.parse(row.descJson); + } catch (e) { + console.error('解析 descJson 失败:', e); + descJsonData.value = null; + } + } else { + descJsonData.value = null; + } + detailDialogVisible.value = true; +}; + +watch( + () => patientInfo.value?.encounterId, + (val) => { + if (val) { + fetchData(); + } else { + tableData.value = []; + } + }, + { immediate: true } +); + +defineExpose({ + refresh: fetchData, +}); + + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/nursingStatus.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/nursingStatus.vue index da0dc2e02622b7b83383902fc91c8174508c710b..5433c00a2765143badbbd4594b8ebe31e87f46df 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/nursingStatus.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/nursingStatus.vue @@ -24,7 +24,12 @@ @@ -139,8 +144,8 @@
- 取消 - 确定 + 取消 + 确定
@@ -376,8 +381,17 @@ const fetchNursingStatusData = () => { loading.value = false; if (res.code === 200 && res.data) { + let nursingList = []; + let nursingOrderNameList = ['I级护理', 'II级护理', 'III级护理', '特级护理']; + nursingOrderNameList.forEach((str) => { + (res.data.nursingList || []).forEach((item) => { + if (item.nursingOrderName == str) { + nursingList.push(item); + } + }); + }); // 填充各列表数据 - nursingLevelList.value = res.data.nursingList || []; + nursingLevelList.value = nursingList || []; conditionList.value = res.data.conditionList || []; dietList.value = res.data.dietList || []; positionList.value = res.data.positionList || []; diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/reportQuery.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/reportQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..55bb5311564f105f267d61876ed4619c46dd29a4 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/reportQuery.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue index 458042db46bb5121e65773967cfceb6444fd79b2..3ea3e16d1905c293890988fa9a21225ec469ab30 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue @@ -4,33 +4,284 @@ * @Description: 手术申请详情 --> + - + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue index 2dc410cbafcc2af7c45c225054f9b74e7ed7c27c..1f7bf3958cb036c4368c44d59427c3684f8c27b0 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue @@ -4,34 +4,284 @@ * @Description: 检验申请 --> + - + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue index 77359f8964077ff31d63ae2c6387d8591d0c463e..d02b0ed81fbc82a4bc8076e796bd766ac6d5950d 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue @@ -20,7 +20,7 @@
证候
- + \ No newline at end of file + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue index cc7c0f92edcfded83fbe87897523229656aacc47..6704db9d4063259c0629f06407743c0a3f464ada 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue @@ -73,23 +73,35 @@ :value="item.value" /> - + + + 转科 - 出院 + + 出院 + + 护理状态 + 刷新数据
- + 总金额:{{ - scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' + scope.row.totalPrice + ? Number(scope.row.totalPrice).toFixed(2) + ' 元' + : '0.00 元' }}
@@ -527,9 +566,12 @@ placeholder="请选择执行科室" />
- - 总金额:{{ - scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' + + 总金额: + {{ + scope.row.totalPrice + ? Number(scope.row.totalPrice).toFixed(2) + ' 元' + : '0.00 元' }} @@ -545,38 +587,8 @@
- - - - - - - + + @@ -747,7 +760,7 @@
- - + /> +
+ + + + @@ -2148,10 +2406,16 @@ defineExpose({ getListInfo, getDiagnosisInfo }); .inpatientDoctor-order-table { flex: auto; width: 100%; + min-height: 0; + overflow: auto; } .applicationForm-bottom-btn { flex: none; height: 40px; + position: sticky; + bottom: 0; + z-index: 10; + background: #fff; } } - \ No newline at end of file + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue index f94d3bceb39d338e2ea084b0133aff53e0afa8c4..b892676d168ab9719b41250fcbd7b5baa0f9c36d 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue @@ -21,7 +21,7 @@ @@ -186,7 +186,7 @@ onMounted(() => { queryPatientData() }) const getList = () => { - getPatientList({ status: 5 }).then((res) => { + getPatientList({ status: 5, searchKey: searchData.keyword }).then((res) => { cardAllData.value = res.data.records }) } diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js index 25415ce263c6f9d49d69182e0bac7d63086e40d7..be2702957c286199211f0a4b981ace1bccb3b7a0 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js @@ -1,18 +1,34 @@ /* * @Author: sjjh * @Date: 2025-09-20 17:02:37 - * @Description: + * @Description: */ -import request from '@/utils/request' +import request from '@/utils/request'; // ====== 文书记录 -// 新增记录 +// 保存或更新记录 +export function saveOrUpdateRecord(data) { + return request({ + url: '/document/record/saveOrUpdateRecord', + method: 'post', + data, + }); +} +// 新增记录 export function addRecord(data) { return request({ url: '/document/record/addRecord', method: 'post', - data - }) + data, + }); +} +// 删除历史记录 +export function deleteRecord(ids) { + return request({ + url: '/document/record/deleteRecord', + method: 'delete', + data: ids, + }); } // 根据患者ID或就诊ID获取文书记录列表,只针对不需返回患者具体信息的列表,体温单除外,单独处理 @@ -20,15 +36,15 @@ export function getRecordByEncounterIdList(params) { return request({ url: '/document/record/getRecordByEncounterIdList', method: 'get', - params - }) + params, + }); } // 初始化文书定义 export function init() { return request({ url: '/document/record/init', method: 'get', - }) + }); } // ====== 文书模板 @@ -37,24 +53,22 @@ export function addTemplate(data) { return request({ url: '/document/template/add', method: 'post', - data - }) + data, + }); } // export function getListByDefinitionId(definitionId) { return request({ url: '/document/template/getListByDefinitionId', method: 'get', - params: {definitionId} - }) + params: { definitionId }, + }); } // 更新模板 export function updateTemplate(data) { return request({ url: '/document/template/update', method: 'put', - data - }) + data, + }); } - - diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/history.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/history.vue index 1824a9d5ad6081dad7e073c0b9ec6235b24a00f4..3929bf5006c2295fe0a42029efc13fe4abe56882 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/history.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/history.vue @@ -8,14 +8,25 @@
-
- +
+ {{ item.name }}({{ item.recordTime }}) + + + +
@@ -24,10 +35,11 @@ diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/template.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/template.vue index 5e741e5b3e273e9d5ea5e0cd6d00c55059783e6c..9a5e1e0330f578e46c16042ecce3e3698615140a 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/template.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/template.vue @@ -9,17 +9,15 @@
-->
- + -
{{ item.name }} - - -
- +
+ {{ item.name }} + + + + +
@@ -33,7 +31,8 @@ import { getListByDefinitionId } from '../api'; import { ElTree } from 'element-plus'; import { ElMessageBox, ElMessage, ElLoading } from 'element-plus'; import { patientInfo } from '../../store/patient.js'; -const emits = defineEmits(['templateClick','edit']); +import { Edit } from '@element-plus/icons-vue'; +const emits = defineEmits(['templateClick', 'edit']); const props = defineProps({ definitionId: { type: String, @@ -55,13 +54,12 @@ const queryParams = ref({ const templateData = ref([]); const queryList = async () => { try { - if ( unref(definitionId)&&unref(definitionId) !== '') { + if (unref(definitionId) && unref(definitionId) !== '') { const res = await getListByDefinitionId(unref(definitionId)); templateData.value = res.data || []; - }else{ + } else { templateData.value = []; } - } catch (error) { ElMessage.error('获取模板失败'); templateData.value = []; @@ -73,40 +71,60 @@ const handleNodeClick = (data) => { const handleEdit = (data) => { emits('edit', data); }; + +// 删除模板 +const handleDelete = async (item) => { + try { + ElMessageBox.confirm('确定要删除该模板吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + await deleteTemplate(item.id); + ElMessage.success('删除成功'); + queryList(); + }); + } catch (error) { + if (error !== 'cancel') { + ElMessage.error('删除失败'); + } + } +}; + const currentSelectTemplate = ref({}); defineExpose({ queryList }); diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/templateEdit.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/templateEdit.vue index 008f1fbed10bfdf80ce67723b5b975c925e6c5dd..418efbbf9e831406c8efce02daa845a4192067c4 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/templateEdit.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/components/templateEdit.vue @@ -7,7 +7,7 @@ destroy-on-close @open="handleOpen" > - + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/index.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/index.vue index 8be4e468dbde2d0518e713c7745ac7b023ecca6c..cb8cbb5ced6bfc016910a8c166e978dbc73b35a8 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/index.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/index.vue @@ -5,8 +5,20 @@ --> \ No newline at end of file + +.right-aligned { + :deep(.el-input__inner) { + text-align: center; + } +} + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue new file mode 100644 index 0000000000000000000000000000000000000000..dc20d79dc5b1e8b96f0b1005449620b8e2b6a2e5 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue @@ -0,0 +1,1116 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue index 6b68fb26709396ef3aa2cb79136d198012d13807..6b70e0a8698e59c13516289e393216754b3d37bb 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue @@ -9,16 +9,20 @@ - Config - Config - Config + + + + + + +
+ + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue deleted file mode 100644 index b2e7d47f641cae51442b5f7a172dc3cb412c25df..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/prescriptionList.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/prescriptionList.vue index 4449bbdfa931b772c591f309a6137afe9f228d49..32d57f80152f75bcaa3369d8401b8fc8146da506 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/prescriptionList.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/prescriptionList.vue @@ -29,6 +29,15 @@
+ 实际执行时间: + 全选: @@ -173,7 +184,7 @@ - + + + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue b/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue new file mode 100644 index 0000000000000000000000000000000000000000..ed5fe554ff09d309a55d2b3508ca055f5b990c66 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue @@ -0,0 +1,648 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js b/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js new file mode 100644 index 0000000000000000000000000000000000000000..9b30d3c05ffc56210e54540adca824276623a37e --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js @@ -0,0 +1,177 @@ +import request from '@/utils/request'; + +/** + * 获取初始化 + */ +export function getInit(queryParams) { + return request({ + url: '/nurse-station/atd-manage/init', + method: 'get', + params: queryParams, + }); +} + +/** + * 获取患者列表 + */ +export function getPendingInfo(queryParams) { + return request({ + url: '/nurse-station/atd-manage/admission-patient', + method: 'get', + params: queryParams, + }); +} + +/** + * 获取床位列表 + */ +export function getBedInfo(queryParams) { + return request({ + url: '/nurse-station/atd-manage/admission-bed', + method: 'get', + params: queryParams, + }); +} + +/** + * 获取患者详细信息 + */ +export function getPatientInfo(queryParams) { + return request({ + url: '/nurse-station/atd-manage/admission-patient-info', + method: 'get', + params: queryParams, + }); +} + +/** + * 获取医生列表 + */ +export function getDoctorInfo(queryParams) { + return request({ + url: '/charge-manage/register/practitioner-metadata?orgId=' + queryParams.organizationId, + method: 'get', + }); +} + +/** + * 获取护士列表 + */ +export function getNurseInfo(queryParams) { + return request({ + url: '/app-common/nurse-list?orgId=' + queryParams.organizationId, + method: 'get', + }); +} + +/** + * 入科床位分配 + */ +export function bedAssignment(data) { + return request({ + url: '/nurse-station/atd-manage/bed-assignment', + method: 'post', + data: data, + }); +} + +/** + * 获取病区 + */ +export function childLocationList(queryParams) { + return request({ + url: '/app-common/child-location-list', + method: 'get', + params: queryParams, + }); +} + +export function getPractitionerWard(queryParams) { + return request({ + url: '/app-common/practitioner-ward', + method: 'get', + params: queryParams, + }); +} + +export function getPrescriptionList(queryParams) { + return request({ + url: '/nurse-station/advice-process/inpatient-advice', + method: 'get', + params: queryParams, + }); +} + +export function getPersonAccount(queryParams) { + return request({ + url: '/nurse-station/atd-manage/get-amount?encounterId' + queryParams.encounterId, + method: 'get', + }); +} +export function getDRMedication(queryParams) { + return request({ + url: '/nurse-station/atd-manage/get-dr-medication?encounterId=' + queryParams.encounterId, + method: 'get', + }); +} +export function updateTransferDepartment(encounterId) { + return request({ + url: '/nurse-station/atd-manage/transfer-department', + method: 'put', + params: { + encounterId: encounterId, + }, + }); +} +export function updateOutHospital(encounterId) { + return request({ + url: '/nurse-station/atd-manage/transfer-department', + method: 'put', + params: { + encounterId: encounterId, + }, + }); +} +// 获取数据源 +export function getDataSource() { + return request({ + url: '/nurse-station/auto-roll/source-info', + method: 'get', + }); +} +// 保存住院就诊的滚方信息 +export function saveInpatientRoll(data) { + return request({ + url: '/nurse-station/auto-roll/save-binding', + method: 'post', + data: data, + }); +} +// 查询住院就诊的滚方信息 +export function getRollInfoPage(id) { + return request({ + url: `/nurse-station/auto-roll/encounter-info?encounterId=${id}`, + method: 'get', + }); +} +// 启用 +export function enableRoll(id) { + return request({ + url: `/nurse-station/auto-roll/active?id=${id}`, + method: 'put', + }); +} +// 停用 +export function stopRoll(id) { + return request({ + url: `/nurse-station/auto-roll/retired?id=${id}`, + method: 'put', + }); +} +// 删除 +export function deleteRoll(id) { + return request({ + url: `/nurse-station/auto-roll/delete-binding?id=${id}`, + method: 'delete', + }); +} diff --git a/openhis-ui-vue3/src/views/inpatientNurse/rollFee/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/rollFee/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..ff703479abde06be6695c1fcd736f0549e35b945 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/rollFee/index.vue @@ -0,0 +1,618 @@ + + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue index c0a0f1380cc8a68d2652b9d539e199676780e777..4cbdb5bc72c54ca5fb86029fa3323d52b60d898f 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue @@ -67,9 +67,7 @@
- 新增 + 新增
@@ -133,7 +131,7 @@ @close="closePatientDetialDialog" /> - +
@@ -173,7 +171,7 @@ const queryParams = ref({ orgId: userStore.orgId, }); -const data1 = reactive({ +const data1 = reactive({ patientInfo: {}, grParamBOS: { age: '', @@ -192,10 +190,10 @@ const data1 = reactive({ total: '', hospDate: '', operaDate: '', - outdate: '' + outdate: '', }, rows: [], - types: [] + types: [], }); const patientData = ref({}); const integerPoints = [2, 6, 10, 14, 18, 22]; @@ -268,7 +266,7 @@ function init1(data) { console.log('体温单初始化', data); const inDate = data.grParamBOS.hospDate; const outdate = data.grParamBOS.outdate; - week.value = Math.floor(dateDiff(inDate, outdate) / 7); + week.value = Math.floor(dateDiff(inDate, outdate) / 10); setTemperatureComp(data); } @@ -276,6 +274,8 @@ function init1(data) { * 点击患者列表行 获取患者体温单数据 */ function viewPatient(row) { + console.log('1232312123221231'); + patientInfo.value = row; console.log('点击患者列表行 获取患者体温单数据', row); chargeLoading.value = true; @@ -375,7 +375,7 @@ function getSignsCharts() { function getPatientList() {} // 体温单控件数据设置 function setTemperatureComp(data) { - console.log(data,'体温单控件数据设置'); + console.log(JSON.stringify(), '体温单控件数据设置'); if (data !== undefined) { inputData.value = data; } @@ -434,12 +434,12 @@ function sliceData(data) { const datas = cloneDeep(data); datas.rows = rows; datas.types = types; - console.log(datas,"666666666666666666") + console.log(datas, '666666666666666666'); return datas; } // 计算时间差 function dateDiff(start, end) { - let diffTime = start ? moment(new Date()).diff(moment(start.substring(0, 10))) / 1000 :start; + let diffTime = start ? moment(new Date()).diff(moment(start.substring(0, 10))) / 1000 : start; if (end) { diffTime = moment(end.substring(0, 10)).diff(moment(start.substring(0, 10))) / 1000; } @@ -475,39 +475,45 @@ function printPage() { clone.style.transformOrigin = 'top left'; clone.style.width = 'calc(210mm * 1.11)'; clone.style.height = 'calc(297mm * 1.11)'; - clone.style.marginLeft = '50px'; + clone.style.marginLeft = '50px'; // 插入到 body 中以便 html2pdf 渲染 document.body.appendChild(clone); // 设置 html2pdf 配置 const opt = { - margin: 0, - filename: '体温单.pdf', - image: { type: 'jpeg', quality: 1 }, - html2canvas: { scale: 2, useCORS: true }, // 启用跨域资源支持 - jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }, - pagebreak: { mode: ['avoid-all'] }, + margin: 0, + filename: '体温单.pdf', + image: { type: 'jpeg', quality: 1 }, + html2canvas: { scale: 2, useCORS: true }, // 启用跨域资源支持 + jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }, + pagebreak: { mode: ['avoid-all'] }, onclone: (clonedDoc) => { const chart = clonedDoc.getElementById(clone.id); if (chart) { chart.style.width = '210mm'; // 强制 A4 宽度 chart.style.margin = '0 auto'; } - } + }, }; // 导出为 PDF 并打印 - html2pdf().from(clone).set(opt).toPdf().get('pdf').then(function (pdf) { - pdf.autoPrint(); // 自动打印 - window.open(pdf.output('bloburl'), '_blank'); // 在新窗口打开 PDF(以便用户确认) - }).finally(() => { - document.body.removeChild(clone); // 清理临时元素 - }); + html2pdf() + .from(clone) + .set(opt) + .toPdf() + .get('pdf') + .then(function (pdf) { + pdf.autoPrint(); // 自动打印 + window.open(pdf.output('bloburl'), '_blank'); // 在新窗口打开 PDF(以便用户确认) + }) + .finally(() => { + document.body.removeChild(clone); // 清理临时元素 + }); } // 转化时间 function formatDateTo(dateStr) { - const [formattedDate, timePartWithSeconds] = dateStr ? dateStr.split('T'): ['', '']; + const [formattedDate, timePartWithSeconds] = dateStr ? dateStr.split('T') : ['', '']; const [formattedHour, minutePart] = timePartWithSeconds.split(':'); const formattedTime = `${formattedHour}:${minutePart}`; @@ -580,7 +586,7 @@ function formatHourTimes(dateStr, temperaturePulses) { * 打开体征录入 */ function openAddTprDialog() { - patientData.value = patientInfo.value + patientData.value = patientInfo.value; openAddTpr.value = true; // patientId.value = row.id; nextTick(() => { @@ -633,4 +639,4 @@ function closePatientDetialDialog(str) { max-height: 270mm; overflow: hidden; } - \ No newline at end of file + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/api/api.js b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/api/api.js new file mode 100644 index 0000000000000000000000000000000000000000..203825c6a6c01397244ee440a1095209818b7fd6 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/api/api.js @@ -0,0 +1,34 @@ +import request from '@/utils/request'; + +// 查询诊疗项目列表 +export function getTemperatureType(data) { + return request({ + url: '/document/definition/getDefinitionId', + method: 'get', + params: data, + }); +} +// 根据时间查询体温单数据 +export function getTemperatureHistory(data) { + return request({ + url: '/document/record/getRecordByEncounterIdAndTimeList', + method: 'get', + params: data, + }); +} +// 体温单保存 +export function addRecord(data) { + return request({ + url: '/document/record/saveOrUpdateRecord', + method: 'post', + data, + }); +} +// 体温单图表展示 +export function temChar(data) { + return request({ + url: '/document/record/temperature-chart', + method: 'get', + params: data, + }); +} diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue new file mode 100644 index 0000000000000000000000000000000000000000..b3d64a4d833686f4965d1f9f5e14a6be75e264ab --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue @@ -0,0 +1,1199 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue new file mode 100644 index 0000000000000000000000000000000000000000..9bb9ce3274a6e4f20f2e8b2e1301cd05d560f1ca --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue @@ -0,0 +1,746 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..8ed15e47ad1b65797e5c22af103d0f7951dbf152 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js b/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js new file mode 100644 index 0000000000000000000000000000000000000000..08b809568c41c76411224d4475fb4fa5d5ff940b --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function collectionList(query) { + return request({ + url: '/inspection/collection/information-page', + method: 'get', + params: query + }) +} + +// 修改参数配置 +export function editStatus(ids,type) { + return request({ + url: '/inspection/collection/information-status', + method: 'post', + data: { + ids: ids, + type: type + } + }) +} + + diff --git a/openhis-ui-vue3/src/views/inspection/groupRec/index.vue b/openhis-ui-vue3/src/views/inspection/groupRec/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..b17de3bb4bb2942611d331b133a01b08dacd1f1c --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/groupRec/index.vue @@ -0,0 +1,269 @@ + + + diff --git a/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js b/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js new file mode 100644 index 0000000000000000000000000000000000000000..d4efd43c86132b0d3065ade7716118a218a80562 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js @@ -0,0 +1,82 @@ +import request from '@/utils/request.js' + +// 查询器材目录列表 +export function getInstrumentList(query) { + return request({ + url: '/inspection/instrument/information-page', + method: 'get', + params: query + }) +} + +// 查询器材目录详细 +export function getInstrumentOne(id) { + return request({ + url: '/inspection/instrument/information-one', + method: 'get', + params: { id } // 确保参数正确传递 + }) +} + +// 新增器材目录 +export function addInstrument(data) { + return request({ + url: '/inspection/instrument/information', + method: 'post', + data: data + }) +} + +// 修改器材目录 +export function editInstrument(data) { + return request({ + url: '/inspection/instrument/information', + method: 'post', + data: data + }) +} + +// // 删除器材目录 +// export function delUser(userId) { +// return request({ +// url: '/system/user/' + userId, +// method: 'delete' +// }) +// } + +// 器材目录分类查询 +export function getInstrumentInit() { + return request({ + url: '/inspection/instrument/init', + method: 'get' + }) +} + +export function editInstrumentStatus(ids,type) { + return request({ + url: '/inspection/instrument/information-status', + method: 'post', + data: { + ids: ids, + type: type + } + }) +} + +// 查询部门树形数据 +export function deptTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/organization/organization', + method: 'get', + params: queryParams + }) +} + +// 查询地点树形数据 +export function locationTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/location/location-page-tree', + method: 'get', + params: queryParams + }) +} diff --git a/openhis-ui-vue3/src/views/inspection/instrument/components/instrumentDialog.vue b/openhis-ui-vue3/src/views/inspection/instrument/components/instrumentDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..6390c89461188c2e919a55aafdd196513e2178c5 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/instrument/components/instrumentDialog.vue @@ -0,0 +1,402 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/instrument/index.vue b/openhis-ui-vue3/src/views/inspection/instrument/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e0d4087fa47750b651eac5103421ef4cd2afd5dc --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/instrument/index.vue @@ -0,0 +1,505 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js b/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js new file mode 100644 index 0000000000000000000000000000000000000000..3bca60606a237c6a8dd60a9481883d4b10713546 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js @@ -0,0 +1,36 @@ +import request from '@/utils/request' + +// 初始化 +export function getItemList(query) { + return request({ + url: '/inspection/lisConfig/init-page', + method: 'get', + params: query + }) +} + +export function getItemDetailList(id) { + return request({ + url: '/inspection/lisConfig/info-detail', + method: 'get', + params: {id} + }) +} +export function getInfoList(query) { + return request({ + url: '/inspection/lisConfig/init-list', + method: 'get', + params: query + }) +} +export function saveAllConfig(data) { + return request({ + url: '/inspection/lisConfig/saveAll', + method: 'post', + data: data + }) +} + + + + diff --git a/openhis-ui-vue3/src/views/inspection/lisconfig/index.vue b/openhis-ui-vue3/src/views/inspection/lisconfig/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..4fd736a499bbec35c31344fd75719e42d12013c2 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/lisconfig/index.vue @@ -0,0 +1,503 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/observation/components/observation.js b/openhis-ui-vue3/src/views/inspection/observation/components/observation.js new file mode 100644 index 0000000000000000000000000000000000000000..ba7be2b6e2e2b9ef04db4ea438234be3a577f2f9 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/observation/components/observation.js @@ -0,0 +1,66 @@ +import request from '@/utils/request.js' + +// 查询器材目录列表 +export function getObservationList(query) { + return request({ + url: '/inspection/observation/information-page', + method: 'get', + params: query + }) +} + +// 查询器材目录详细 +export function getObservationOne(id) { + return request({ + url: '/inspection/observation/information-one', + method: 'get', + params: { id } // 确保参数正确传递 + }) +} + +// 新增器材目录 +export function addObservation(data) { + return request({ + url: '/inspection/observation/information', + method: 'post', + data: data + }) +} + +// 修改器材目录 +export function editObservation(data) { + return request({ + url: '/inspection/observation/information', + method: 'post', + data: data + }) +} + +// // 删除器材目录 +// export function delUser(userId) { +// return request({ +// url: '/system/user/' + userId, +// method: 'delete' +// }) +// } + +// 器材目录分类查询 +export function getObservationInit() { + return request({ + url: '/inspection/observation/init', + method: 'get' + }) +} + +export function editObservationStatus(ids,type) { + return request({ + url: '/inspection/observation/information-status', + method: 'post', + data: { + ids: ids, + type: type + } + }) +} + + diff --git a/openhis-ui-vue3/src/views/inspection/observation/components/observationDialog.vue b/openhis-ui-vue3/src/views/inspection/observation/components/observationDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..37d400601623a0a0520c691ae17dbeedb6638111 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/observation/components/observationDialog.vue @@ -0,0 +1,231 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/observation/index.vue b/openhis-ui-vue3/src/views/inspection/observation/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..355c8d85a670020d23fc8e93ddd75b506c4f1c76 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/observation/index.vue @@ -0,0 +1,370 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/report/components/report.js b/openhis-ui-vue3/src/views/inspection/report/components/report.js new file mode 100644 index 0000000000000000000000000000000000000000..49ed9c1381cc5b9f7fd6c93419f55e711d3d1377 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/report/components/report.js @@ -0,0 +1,22 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function reportList(query) { + return request({ + url: '/inspection/laboratory/information-page', + method: 'get', + params: query + }) +} + +export function reports (id) { + return request({ + url: '/inspection/laboratory/reports/' + id, + method: 'get' + }) + +} + + + + diff --git a/openhis-ui-vue3/src/views/inspection/report/index.vue b/openhis-ui-vue3/src/views/inspection/report/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..a6616add5a64effe97786aa13ef6e52619419f10 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/report/index.vue @@ -0,0 +1,216 @@ + + + diff --git a/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js b/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js new file mode 100644 index 0000000000000000000000000000000000000000..08b809568c41c76411224d4475fb4fa5d5ff940b --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function collectionList(query) { + return request({ + url: '/inspection/collection/information-page', + method: 'get', + params: query + }) +} + +// 修改参数配置 +export function editStatus(ids,type) { + return request({ + url: '/inspection/collection/information-status', + method: 'post', + data: { + ids: ids, + type: type + } + }) +} + + diff --git a/openhis-ui-vue3/src/views/inspection/sampleCollection/index.vue b/openhis-ui-vue3/src/views/inspection/sampleCollection/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..f562eaae2bdf28da1c4b0617685179b304672a4e --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/sampleCollection/index.vue @@ -0,0 +1,268 @@ + + + diff --git a/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js b/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js new file mode 100644 index 0000000000000000000000000000000000000000..c50fc5dcedd6036cb1b4ae38d12298aed62a8d91 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js @@ -0,0 +1,77 @@ +import request from '@/utils/request.js' + + +export function getSpecimenList(query) { + return request({ + url: '/inspection/specimen/information-page', + method: 'get', + params: query + }) +} + + +export function getSpecimenOne(id) { + return request({ + url: '/inspection/specimen/information-one', + method: 'get', + params: { id } // 确保参数正确传递 + }) +} + + +export function addSpecimen(data) { + return request({ + url: '/inspection/specimen/information', + method: 'post', + data: data + }) +} + +export function editSpecimen(data) { + return request({ + url: '/inspection/specimen/information', + method: 'post', + data: data + }) +} + + +// 目录分类查询 +export function getSpecimenInit() { + return request({ + url: '/inspection/specimen/init', + method: 'get' + }) +} + + +export function editSpecimenStatus(ids,type) { + return request({ + url: '/inspection/specimen/information-status', + method: 'post', + data: { + ids: ids, + type: type + } + }) +} + +// 查询部门树形数据 +export function deptTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/organization/organization', + method: 'get', + params: queryParams + }) +} + +// 查询地点树形数据 +export function locationTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/location/location-page-tree', + method: 'get', + params: queryParams + }) +} + + diff --git a/openhis-ui-vue3/src/views/inspection/sampleType/components/specimenDialog.vue b/openhis-ui-vue3/src/views/inspection/sampleType/components/specimenDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..fc2b691145a66705015f8cbebc4e5e27686b1f7a --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/sampleType/components/specimenDialog.vue @@ -0,0 +1,285 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inspection/sampleType/index.vue b/openhis-ui-vue3/src/views/inspection/sampleType/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..44ce5fe491fec617b9a47564b43c180e13ac0393 --- /dev/null +++ b/openhis-ui-vue3/src/views/inspection/sampleType/index.vue @@ -0,0 +1,414 @@ + + + + diff --git a/openhis-ui-vue3/src/views/medicationmanagement/billapproval/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/billapproval/index.vue index 53609866fabfc9e43fe6bda01ce3067757381c81..24d7ef71e70acc3da03b8c801512a267b5c96bc0 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/billapproval/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/billapproval/index.vue @@ -41,6 +41,15 @@ @change="handleDateQuery" value-format="YYYY-MM-DD" /> + + 导出 + + +
@@ -159,6 +170,8 @@ import { } from './components/api'; import { useStore } from '@/store/store'; import { formatDate } from '@/utils/index'; +import ChkstockDetailsDialog from '@/views/medicationmanagement/chkstock/components/chkstockDetailsDialog.vue'; +import TransferDetailsDialog from '@/views/medicationmanagement/transferManagent/components/transferDetailsDialog.vue'; import useTagsViewStore from '@/store/modules/tagsView'; const router = useRouter(); const route = useRoute(); @@ -166,6 +179,7 @@ const store = useStore(); const { proxy } = getCurrentInstance(); const emit = defineEmits(['selectAdviceBase']); const total = ref(0); +const isApply = ref(false); const queryParams = ref({ pageNo: 1, pageSize: 10, @@ -248,19 +262,17 @@ function handelApply(row) { // 审批,查看 function handelApplys(row, view) { - if (row.typeEnum == 2) { + if (row.typeEnum == 100086) { //商品调拨 // 跳转到审核页面 router.replace({ path: '/medicationmanagement/transferManagement/transferManagent', query: { supplyBusNo: row.supplyBusNo, view: view }, }); - } else if (row.typeEnum == 8) { + } else if (row.typeEnum == 8 || row.typeEnum == 2) { //8 批量 - router.replace({ - path: '/medicationmanagement/transferManagement/batchTransfer', - query: { supplyBusNo: row.supplyBusNo, view: view }, - }); + isApply.value = true; + proxy.$refs['tranDetailsDialogRef'].open(row.supplyBusNo); } else if (row.typeEnum == 7) { //领用出库审批通过 router.replace({ @@ -274,11 +286,9 @@ function handelApplys(row, view) { query: { supplyBusNo: row.supplyBusNo, view: view }, }); } else if (row.typeEnum == 4) { + isApply.value = true; //盘点审批 - router.replace({ - path: '/medicationmanagement/chkstock/chkstockPart', - query: { supplyBusNo: row.supplyBusNo, view: view }, - }); + proxy.$refs['detailsDialogRef'].open(row.supplyBusNo); } else if (row.typeEnum == 10) { // 批量盘点 router.replace({ @@ -320,7 +330,15 @@ function handleDateQuery(value) { queryParams.value.applyTimeETime = undefined; } } - +function handleExport() { + proxy.downloadGet( + 'inventory-manage/receipt/export-excel', + { + ...queryParams.value, + }, + `库存审批单_${proxy.formatDateStr(new Date(), 'YYYY-MM-DD')}.xlsx` + ); +} optionInit(); function optionInit() { init().then((res) => { diff --git a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/components/medicineList.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/components/medicineList.vue index 5235607db16d9c3227f35818f7f73c52076b2fee..33cb0681e5f013019b0c0b0ede1bbc1a2eb1070e 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/components/medicineList.vue @@ -35,7 +35,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - +
diff --git a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/index.vue index 640c2d61994279abe3faa41a182ba18703d0d5d2..bfb448fa61a91a3e54f2bcc955922cdfd508c94a 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockBatch/index.vue @@ -37,6 +37,8 @@ > + + 导出 @@ -1042,7 +1044,7 @@ function selectRow(rowValue, index) { form.purchaseinventoryList[index].volume = rowValue.volume; form.purchaseinventoryList[index].minUnitCode = rowValue.minUnitCode; form.purchaseinventoryList[index].unitCode = rowValue.unitCode; - form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; + form.purchaseinventoryList[index].manufacturerText = rowValue.manufacturerText; form.purchaseinventoryList[index].partPercent = rowValue.partPercent; form.purchaseinventoryList[index].unitList = rowValue.unitList[0]; form.purchaseinventoryList[index].lotNumber = rowValue.lotNumber; @@ -1080,7 +1082,7 @@ function selectRow(rowValue, index) { // form.purchaseinventoryList[index].itemQuantity = ''; // form.purchaseinventoryList[index].reasonCode = ''; // form.purchaseinventoryList[index].reason = ''; -// form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; +// form.purchaseinventoryList[index].manufacturerText = rowValue.manufacturerText; // form.purchaseinventoryList[index].unitCodeList = [ // {id:1,name:rowValue.unitCode_dictText,unitName:rowValue.unitCode_dictText,code:rowValue.unitCode}, // {id:2,name:rowValue.minUnitCode_dictText,unitName:rowValue.minUnitCode_dictText,code:rowValue.minUnitCode}]; @@ -1559,7 +1561,7 @@ function getDetailAll() { // form.purchaseinventoryList[index].statusMaxvalue = false e.volume = e.totalVolume; e.name = e.itemName; - e.manufacturer = e.manufacturerText; + e.manufacturerText = e.manufacturerText; if (e.purposeTypeEnum) { warehous_type.value.map((item) => { if (item.value == e.purposeTypeEnum) { @@ -1689,7 +1691,7 @@ function getDetail(type) { form.purchaseinventoryList[index].statusMaxvalue = false; e.volume = e.totalVolume; e.name = e.itemName; - e.manufacturer = e.manufacturerText; + e.manufacturerText = e.manufacturerText; if (e.purposeTypeEnum) { warehous_type.value.map((item) => { if (item.value == e.purposeTypeEnum) { @@ -2072,7 +2074,7 @@ function handleReject() { store.clearCurrentDataPLPDALL(); // 跳转到审核页面 router.replace({ - path: '/aaaa/medicationmanagement/billapproval', + path: '/aaaa/billapproval', query: { type: 'chkstockBatch' }, }); } @@ -2089,7 +2091,7 @@ function handelApply() { store.clearCurrentDataPLPDALL(); // 跳转到审核页面 router.replace({ - path: '/aaaa/medicationmanagement/billapproval', + path: '/aaaa/billapproval', query: { type: 'chkstockBatch' }, }); } @@ -2363,6 +2365,22 @@ function handleTraceNo(value, row, index) { } getStockReceiptTypeList(); // 详情页查询下拉树结构 getbusNo(); // 单据号取得 + +// 导出 +const exportRequiredParams = ref({ + pageNo: 1, + pageSize: 10, + busNo: route.query.supplyBusNo +}); +function handleExport() { + proxy.downloadGet( + '/inventory-manage/stocktaking/excel-out', + { + ...exportRequiredParams.value, + }, + `批量盘点单明细_${proxy.formatDateStr(new Date(), 'YYYY-MM-DD')}.xlsx` + ); +} \ No newline at end of file +.custom-tree-node { + display: flex; + align-items: center; +} + +.title { + font-weight: bold; + font-size: large; + margin-bottom: 10px; +} + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/chkstockDetailsDialog.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/chkstockDetailsDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..6fb198dea49d0107ea573ae203ee46a77db0ddb2 --- /dev/null +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/chkstockDetailsDialog.vue @@ -0,0 +1,267 @@ + + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue index ad607c875ad24bf10055b7116fb38af19ffb43ab..324e6d68af0c4fdfe4b4b7edb4e094bae256d183 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue @@ -40,12 +40,6 @@ label="产品批号" align="center" prop="lotNumber" - /> - - + --> - + 批量保存 - + 导出 @@ -751,7 +751,7 @@ function addNewRow() { itemType: '', itemType_enumText: '', lotNumber: '', - manufacturer: '', + manufacturerText: '', minUnitCode: '', minUnitCode_dictText: '', name: '', @@ -878,7 +878,7 @@ function getTransferProductDetails() { form.purchaseinventoryList[index].statusMaxvalue = false; e.volume = e.totalVolume; e.name = e.itemName; - e.manufacturer = e.manufacturerText; + e.manufacturerText = e.manufacturerText; e.lossReason = e.reason; if (e.purposeTypeEnum) { warehous_type.value.map((item) => { @@ -1023,7 +1023,7 @@ function handleReject() { store.clearCurrentDataBS(); // 跳转到审核页面 router.replace({ - path: '/aaaa/medicationmanagement/billapproval', + path: '/aaaa/billapproval', query: { type: 'lossReporting' }, }); } @@ -1039,7 +1039,7 @@ function handelApply() { store.clearCurrentDataBS(); // 跳转到审核页面 router.replace({ - path: '/aaaa/medicationmanagement/billapproval', + path: '/aaaa/billapproval', query: { type: 'lossReporting' }, }); } @@ -1095,7 +1095,7 @@ function selectRow(rowValue, index) { form.purchaseinventoryList[index].volume = rowValue.volume; form.purchaseinventoryList[index].minUnitCode = rowValue.minUnitCode; form.purchaseinventoryList[index].unitCode = rowValue.unitCode; - form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; + form.purchaseinventoryList[index].manufacturerText = rowValue.manufacturerText; form.purchaseinventoryList[index].partPercent = rowValue.partPercent; form.purchaseinventoryList[index].unitList = rowValue.unitList[0]; form.purchaseinventoryList[index].lotNumber = rowValue.lotNumber; @@ -1552,7 +1552,7 @@ function edit() { ...item, name: item.itemName, volume: item.volume, - manufacturer: item.supplierName, + manufacturerText: item.supplierName, totalQuantity: item.totalQuantity, totalPurposeQuantity: item.totalPurposeQuantity, startTime: formatDateymd(item.startTime), @@ -1655,6 +1655,22 @@ getTransferProductDetails(); // show, // edit, // }); + +// 导出 +const exportRequiredParams = ref({ + pageNo: 1, + pageSize: 10, + busNo: route.query.supplyBusNo +}); +function handleExport() { + proxy.downloadGet( + '/inventory-manage/loss/excel-out', + { + ...exportRequiredParams.value, + }, + `报损单据明细_${proxy.formatDateStr(new Date(), 'YYYY-MM-DD')}.xlsx` + ); +} diff --git a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/medicineList.vue b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/medicineList.vue index 0e95d20be43e1cf152755dc5f8b113f75ded7087..413a17174bfd30679443d573da9b48dfdbeeedb6 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/medicineList.vue @@ -46,7 +46,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - + diff --git a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/templateJson.json b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/templateJson.json index 928a36ed3473016c73cdfb3bbb3330e10034317d..b5117aaf914ce2662c0f710cfcfa3d070ecc16a2 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/templateJson.json +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/components/templateJson.json @@ -33,7 +33,7 @@ "top": 13.5, "height": 12, "width": 75, - "title": "长春大学医院", + "title": "长春市朝阳区中医院医院", "coordinateSync": false, "widthHeightSync": false, "fontSize": 12, @@ -84,7 +84,7 @@ "top": 33, "height": 9.75, "width": 120, - "title": "机构:长春大学医院", + "title": "机构:长春市朝阳区中医院医院", "coordinateSync": false, "widthHeightSync": false, "qrCodeLevel": 0 @@ -161,9 +161,9 @@ "tableSummaryTitle": true, "tableSummary": "", "width": 84.09807741407441, - "field": "manufacturer", + "field": "manufacturerText", "checked": true, - "columnId": "manufacturer", + "columnId": "manufacturerText", "fixed": false, "rowspan": 1, "colspan": 1 @@ -336,4 +336,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue index a8a32021cd20abf9d8bc93b74ee0d412b20cbb1f..2712e566942b4f9f0f50580363169410e3d7e532 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseDocument/index.vue @@ -31,6 +31,9 @@ 打印单据 + + 导出 + diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/index.vue index a84b5d6b086ca8eefa0b5ed7f6523bbff1f065d7..03389971e1001a6e3c43969be8089a645d80e15f 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/index.vue @@ -1,7 +1,7 @@ - - - @@ -366,7 +422,7 @@ + diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/DischargeDiagnosis.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/DischargeDiagnosis.vue new file mode 100644 index 0000000000000000000000000000000000000000..1ce72cee8f6127b5650488365420f295b55acf91 --- /dev/null +++ b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/DischargeDiagnosis.vue @@ -0,0 +1,232 @@ + + + diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/accomplishList.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/accomplishList.vue deleted file mode 100644 index 7df18833d9313b8f6fb693a40b154c0d9d56896f..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/accomplishList.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/api.js b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/api.js index 155719790b980bf28e8575de0c5a3f1f29ee69ea..3f4a5e09c86165fbe2a9342aefa4f85ea00f76de 100644 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/api.js +++ b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/api.js @@ -1,29 +1,12 @@ -import request from '@/utils/request' +import request from '@/utils/request'; // 获取住院信息初期数据列表 export function getInit(query) { return request({ url: '/inpatient-manage/init', method: 'get', - params: query - }) -} - -// 获取住院信息 分页显示 -// export function getAdmissionPage(query) { -// return request({ -// url: '/inpatient-manage/admission-page', -// method: 'get', -// params: query -// }) -// } -// 获取住院信息 分页显示 新 -export function getAdmissionPage(query) { - return request({ - url: '/inhospital-charge/register/register-info', - method: 'get', - params: query - }) + params: query, + }); } // 住院无档登记 @@ -31,8 +14,8 @@ export function addAdmissionInfo(data) { return request({ url: '/inpatient-manage/admission-information', method: 'post', - data: data - }) + data: data, + }); } // 住院登记 @@ -40,8 +23,8 @@ export function admissionInfo(data) { return request({ url: '/inpatient-manage/admission-information', method: 'put', - data: data - }) + data: data, + }); } /** @@ -51,7 +34,7 @@ export function getOrgList() { return request({ url: '/base-data-manage/organization/organization', method: 'get', - }) + }); } /** @@ -60,8 +43,8 @@ export function getOrgList() { export function wardList() { return request({ url: '/app-common/ward-list', - method: 'get' - }) + method: 'get', + }); } /** @@ -71,56 +54,39 @@ export function diagnosisInit() { return request({ url: '/doctor-station/diagnosis/init', method: 'get', - }) + }); } // 查询患者相关 export function patientlLists() { return request({ url: '/patient-manage/information/init', - method: 'get' - }) + method: 'get', + }); } // 查询患者相关 export function doctorList(id) { return request({ url: '/inpatient-manage/doctor-list?orgId=' + id, - method: 'get' - }) + method: 'get', + }); } // 查询患者相关 export function getPatientInfo(id, statusEnum) { return request({ url: `/inpatient-manage/admission-one?id=${id}&statusEnum=${statusEnum}`, - method: 'get' - }) -} - - -// 获取患者基础信息 -export function getPatientBasicInfo(patientId) { - return request({ - url: `/inhospital-charge/register/patient-info?patientId=${patientId}`, - method: 'get' - }) -} - -// 获取患者入院信息 -export function getInHospitalInfo(encounterId) { - return request({ - url: `/inhospital-charge/register/in-hospital-info?encounterId=${encounterId}`, - method: 'get' - }) + method: 'get', + }); } // 获取病区床位信息 export function getBedInfo(wardBusNo) { return request({ url: `/inhospital-charge/register/beds-num?wardBusNo=${wardBusNo}`, - method: 'get' - }) + method: 'get', + }); } // 住院登记 @@ -128,8 +94,8 @@ export function registerInHospital(data) { return request({ url: '/inhospital-charge/register/by-cashier', method: 'post', - data: data - }) + data: data, + }); } // 无档登记 @@ -137,16 +103,16 @@ export function noFilesRegister(data) { return request({ url: '/inhospital-charge/register/no-files', method: 'post', - data: data - }) + data: data, + }); } // 表单初始化 export function patientFormInit() { return request({ url: '/patient-manage/information/init', - method: 'get' - }) + method: 'get', + }); } // 合同 @@ -154,7 +120,7 @@ export function getContractList() { return request({ url: '/app-common/contract-list', method: 'get', - }) + }); } /** @@ -164,6 +130,108 @@ export function getDiagnosisDefinitionList(queryParams) { return request({ url: '/doctor-station/diagnosis/condition-definition-metadata', method: 'get', - params: queryParams - }) -} \ No newline at end of file + params: queryParams, + }); +} + +// 获取患者基础信息 +export function getPatientBasicInfo(patientId) { + return request({ + url: `/inhospital-charge/register/patient-info?patientId=${patientId}`, + method: 'get', + }); +} +// ------------------------------------------------------------------------- +// 查询住院登记信息 +export function getRegisteInfoPage(query) { + return request({ + url: '/yb-inpatient-request/register-info', + method: 'get', + params: query, + }); +} + +// 医保登记按钮 获取信息 +export function getInHospitalInfo(encounterId) { + return request({ + url: `/yb-inpatient-request/in-hospital-info?encounterId=${encounterId}`, + method: 'get', + }); +} +//医保登记按钮 保存 +export function saveEmr(data) { + return request({ + url: '/yb-inpatient-request/inpatient-reg', + method: 'post', + data: data, + }); +} + +//医保出院按钮 信息获取 +export function getInpatientCheckInfo(data) { + return request({ + url: '/yb-inpatient-request/inpatient-check-info', + method: 'post', + data: data, + }); +} +//医保出院按钮 保存 +export function checkOutInpatient(data) { + return request({ + url: '/yb-inpatient-request/inpatient-check-out', + method: 'post', + data: data, + }); +} +//信息变更按钮 获取信息 +export function getInpatientRegInfo(data) { + return request({ + url: '/yb-inpatient-request/inpatient-reg-info', + method: 'get', + data: data, + }); +} +//信息变更按钮 保存 +export function updateInpatientRegInfo(data) { + return request({ + url: '/yb-inpatient-request/update-inpatient-reg', + method: 'post', + data: data, + }); +} + +// 入院撤销 +export function cancelInpatientRegister(data) { + return request({ + url: '/yb-inpatient-request/cancel-inpatient-reg', + method: 'get', + data: data, + }); +} +//出院撤销 +export function cancelDischargeRegister(data) { + return request({ + url: '/yb-inpatient-request/cancel-inpatient-check-out', + method: 'get', + data: data, + }); +} +//病案上传 +export function uploadEmr(data) { + return request({ + url: '/yb-inpatient-request/emr-up', + method: 'post', + data: data, + }); +} + +// 获取患者医保信息 +export function gerPreInfo(data) { + return request({ + url: '/yb-inpatient-request/inpatient-per-info', + method: 'post', + data: data, + }); +} + + diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/awaitList.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/awaitList.vue deleted file mode 100644 index 2078561e6d1150280db6b07c61272aa090997aa6..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/awaitList.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/existList.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/existList.vue deleted file mode 100644 index e7514ef4c2c215734c87695813421a42089ee526..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/existList.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/index.js b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/index.js deleted file mode 100644 index ab87123db884ed282256672db41d1ab5f88def29..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import AwaitList from "./awaitList.vue"; -import AccomplishList from "./accomplishList.vue"; -import ExistList from "./existList.vue"; -export {AwaitList,AccomplishList,ExistList} \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfo.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfo.vue deleted file mode 100644 index 20b450923365198dc5bd71a64c7f98386f029076..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfo.vue +++ /dev/null @@ -1,407 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfoForm.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfoForm.vue deleted file mode 100644 index 9730e335aca5fcf397ba87ff0b05066260c937b8..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientInfoForm.vue +++ /dev/null @@ -1,392 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientRegister.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientRegister.vue deleted file mode 100644 index cc08aaea6201a98c29e75cb5f2721e06751af7f2..0000000000000000000000000000000000000000 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/patientRegister.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerEdit.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerEdit.vue new file mode 100644 index 0000000000000000000000000000000000000000..fa9afa9e88d928abc84a43d4fee61736a0b9c5bb --- /dev/null +++ b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerEdit.vue @@ -0,0 +1,537 @@ + + + + diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerForm.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerForm.vue index 652a373ab94ebc6f169e36cc813aa614b1b721e7..8febd24c63ef2fd6f3f92d43c180ea75fe77cca2 100644 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerForm.vue +++ b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/components/registerForm.vue @@ -1,440 +1,450 @@ - +defineExpose({ validateData, submitForm, resetForm }); + diff --git a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/index.vue b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/index.vue index b6fd40977ad9a5c1e8eef6671ebeeb7c3ba3fd82..5ea795c45a476c70147fc55f397188bb3e9e547e 100644 --- a/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/index.vue +++ b/openhis-ui-vue3/src/views/ybmanagement/inhospital/register/index.vue @@ -1,31 +1,276 @@ - + +getList(); + diff --git "a/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/~$\345\217\221\347\211\210\346\227\245\345\277\227.docx" "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/~$\345\217\221\347\211\210\346\227\245\345\277\227.docx" new file mode 100644 index 0000000000000000000000000000000000000000..1fa7bb829c5018c80e4088a6dc1cac205c656586 Binary files /dev/null and "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/~$\345\217\221\347\211\210\346\227\245\345\277\227.docx" differ diff --git "a/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\344\275\217\351\231\242\346\212\244\345\243\253\345\210\222\344\273\267\345\212\237\350\203\275\350\257\264\346\230\216.docx" "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\344\275\217\351\231\242\346\212\244\345\243\253\345\210\222\344\273\267\345\212\237\350\203\275\350\257\264\346\230\216.docx" new file mode 100644 index 0000000000000000000000000000000000000000..e3275dd5714284eab2696818de5606bceb569e48 Binary files /dev/null and "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\344\275\217\351\231\242\346\212\244\345\243\253\345\210\222\344\273\267\345\212\237\350\203\275\350\257\264\346\230\216.docx" differ diff --git "a/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\345\217\221\347\211\210\345\206\205\345\256\271.docx" "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\345\217\221\347\211\210\345\206\205\345\256\271.docx" new file mode 100644 index 0000000000000000000000000000000000000000..6bcf367a6691322e00dee0e3e70ecc4ae620d045 Binary files /dev/null and "b/\345\217\221\347\211\210\350\256\260\345\275\225/2025-11-28/\345\217\221\347\211\210\345\206\205\345\256\271.docx" differ diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/0000\346\270\205\345\272\223\350\204\232\346\234\254.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/0000\346\270\205\345\272\223\350\204\232\346\234\254.sql" index 92d11501959385ee01a2f6851ab35fc8f2e374f1..6ec7b754927375a3d1bd0f45514df5231fb2233e 100644 --- "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/0000\346\270\205\345\272\223\350\204\232\346\234\254.sql" +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/0000\346\270\205\345\272\223\350\204\232\346\234\254.sql" @@ -1,7 +1,20 @@ +--注执行以下脚本会删除所有相关数据,请谨慎使用(一般是在试运行后正式使用前清理业务数据) + TRUNCATE TABLE adm_encounter ;-- 清空就诊记录表 TRUNCATE TABLE adm_encounter_location;-- 清空就诊地点表 TRUNCATE TABLE adm_encounter_reason;-- 清空就诊原因表 TRUNCATE TABLE adm_encounter_diagnosis;-- 清空就诊诊断表 TRUNCATE TABLE adm_encounter_participant;-- 清空就诊参与者表 TRUNCATE TABLE adm_charge_item;-- 清空费用项目表 -TRUNCATE TABLE elep_medication_request;-- 清空用药申请表 \ No newline at end of file +TRUNCATE TABLE elep_medication_request;-- 清空用药申请表 + + + + +--清理 药品 、耗材、诊疗、费用定义数据,一般不进行操作(生产环境切勿操作),如需清理请解除以下注释 +-- TRUNCATE TABLE med_medication_definition;-- 清空药品定义表 +-- TRUNCATE TABLE med_medication ;-- 清空药品表 +-- TRUNCATE TABLE adm_device_definition;-- 清空耗材定义表 +-- TRUNCATE TABLE wor_activity_definition;-- 清空诊疗定义表 +-- TRUNCATE TABLE adm_charge_item_definition;-- 清空费用定义表 +-- TRUNCATE TABLE adm_charge_item_def_detail;-- 清空费用定义明细表 \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-19 ALTER TABLE PUBLIC.doc_statistics ADD COLUMN definition_id.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-19 ALTER TABLE PUBLIC.doc_statistics ADD COLUMN definition_id.sql" new file mode 100644 index 0000000000000000000000000000000000000000..07c33da633b4ae5d65ade84496d2fd8e21506065 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-19 ALTER TABLE PUBLIC.doc_statistics ADD COLUMN definition_id.sql" @@ -0,0 +1,3 @@ +ALTER TABLE PUBLIC.doc_statistics ADD COLUMN definition_id INT8 NULL; + +COMMENT ON COLUMN PUBLIC.doc_statistics.definition_id IS '文书ID'; \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-21 ALTER TABLE public.doc_statistics ADD COLUMN time_point.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-21 ALTER TABLE public.doc_statistics ADD COLUMN time_point.sql" new file mode 100644 index 0000000000000000000000000000000000000000..0fa20ee67a0cc6ec89a4c569fc18fdeb3884292a --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/2025-11-21 ALTER TABLE public.doc_statistics ADD COLUMN time_point.sql" @@ -0,0 +1,4 @@ + +ALTER TABLE public.doc_statistics ADD COLUMN time_point VARCHAR NULL; + +COMMENT ON COLUMN public.doc_statistics.time_point IS '时间点'; \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511131215 add_table doc_inventory_item_static.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511131215 add_table doc_inventory_item_static.sql" new file mode 100644 index 0000000000000000000000000000000000000000..8eb828f89e55a50549eb2a0a00e48a3b9b41fb76 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511131215 add_table doc_inventory_item_static.sql" @@ -0,0 +1,30 @@ +ALTER TABLE public.doc_inventory_item_static RENAME COLUMN category_code TO dev_category_code; +ALTER TABLE public.doc_inventory_item_static ADD med_category_code varchar(255) DEFAULT '0'::character varying NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.med_category_code IS '药品类别'; +ALTER TABLE public.doc_inventory_item_static ADD total_price numeric(20, 6) NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.total_price IS '采购总价(包装单位)'; +ALTER TABLE public.doc_inventory_item_static ADD total_sale_price numeric(20, 6) NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.total_sale_price IS '销售总价(包装单位)'; +ALTER TABLE public.doc_inventory_item_static ADD remaining_days int4 NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.remaining_days IS '剩余过期天数'; +ALTER TABLE public.doc_inventory_item_static ADD inventory_id int8 NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.inventory_id IS '库存id'; +ALTER TABLE public.doc_inventory_item_static ADD yb_no varchar(255) DEFAULT ''::character varying NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.yb_no IS '医保码'; +ALTER TABLE public.doc_inventory_item_static ADD remainder numeric(20, 6) DEFAULT 0 NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.remainder IS '包装单位数量(余数部分)'; +ALTER TABLE public.doc_inventory_item_static ADD approval_number varchar(255) DEFAULT ''::character varying NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.approval_number IS '批准文号'; +ALTER TABLE public.doc_inventory_item_static ALTER COLUMN med_category_code DROP NOT NULL; +ALTER TABLE public.doc_inventory_item_static ALTER COLUMN med_category_code DROP DEFAULT; +ALTER TABLE public.doc_inventory_item_static ALTER COLUMN dev_category_code DROP NOT NULL; +ALTER TABLE public.doc_inventory_item_static ALTER COLUMN dev_category_code DROP DEFAULT; +ALTER TABLE public.doc_inventory_item_static ADD static_no varchar(255) DEFAULT ''::character varying NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static.static_no IS '项目编号'; +COMMENT ON COLUMN public.doc_inventory_item_static.bus_no IS '备份单据编号'; +ALTER TABLE public.doc_inventory_item_static RENAME COLUMN static_no TO item_no; +ALTER TABLE public.doc_inventory_item_static ADD "number" numeric(20, 6) DEFAULT 0 NOT NULL; +COMMENT ON COLUMN public.doc_inventory_item_static."number" IS '包装单位数量(整数部分)'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511131215 add_table doc_inventory_item_static', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511171215 add_table tmp_encounter_auto_roll.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511171215 add_table tmp_encounter_auto_roll.sql" new file mode 100644 index 0000000000000000000000000000000000000000..64f4e013c546be11e847874c8dbf5293fd714cfc --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511171215 add_table tmp_encounter_auto_roll.sql" @@ -0,0 +1,35 @@ +-- public.tmp_encounter_auto_roll definition +-- Drop table +-- DROP TABLE public.tmp_encounter_auto_roll; +CREATE TABLE PUBLIC.tmp_encounter_auto_roll ( + ID bigserial NOT NULL, + status_enum INT4 DEFAULT 2 NOT NULL, + encounter_id INT8 NOT NULL, + instance_table VARCHAR ( 255 ) DEFAULT '' :: CHARACTER VARYING NOT NULL, + instance_id INT8 NOT NULL, + quantity NUMERIC ( 20, 6 ) DEFAULT 0 NOT NULL, + tenant_id INT8 NOT NULL, + delete_flag INT4 DEFAULT 0 NOT NULL, + create_by VARCHAR ( 32 ) DEFAULT '' :: CHARACTER VARYING NOT NULL, + create_time TIMESTAMPTZ ( 6 ) NOT NULL, + update_by VARCHAR ( 32 ) NULL, + update_time TIMESTAMPTZ ( 6 ) NULL, + CONSTRAINT tmp_encounter_auto_roll_pkey PRIMARY KEY ( ID ) +); +COMMENT ON TABLE PUBLIC.tmp_encounter_auto_roll IS '住院就诊滚方绑定'; +-- Column comments +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.ID IS 'ID'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.status_enum IS '状态'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.encounter_id IS '就诊id'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.instance_table IS '实例表名'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.instance_id IS '实例id'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.quantity IS '数量'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.tenant_id IS '租户ID'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.delete_flag IS '删除状态'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.create_by IS '创建人'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.create_time IS '创建时间'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.update_by IS '更新人'; +COMMENT ON COLUMN PUBLIC.tmp_encounter_auto_roll.update_time IS '更新时间'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511171215 add_table tmp_encounter_auto_roll', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191103 ALTER TABLE PUBLIC.doc_record ADD COLUMN print_count.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191103 ALTER TABLE PUBLIC.doc_record ADD COLUMN print_count.sql" new file mode 100644 index 0000000000000000000000000000000000000000..f7bcd5ab25563a1ed26a174092ba0858b4ff4dc1 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191103 ALTER TABLE PUBLIC.doc_record ADD COLUMN print_count.sql" @@ -0,0 +1,8 @@ +-- 添加不能为空且默认值为0的字段 +ALTER TABLE PUBLIC.doc_record ADD COLUMN print_count INT4 NOT NULL DEFAULT 0; +-- 添加字段备注 +COMMENT ON COLUMN PUBLIC.doc_record.print_count IS '打印次数'; + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511191103 ALTER TABLE PUBLIC.doc_record ADD COLUMN print_count', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191303 alter_table doc_statistics_definition.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191303 alter_table doc_statistics_definition.sql" new file mode 100644 index 0000000000000000000000000000000000000000..ea4e4730173c2b81535e89021482ce588703e3fa --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191303 alter_table doc_statistics_definition.sql" @@ -0,0 +1,6 @@ +ALTER TABLE PUBLIC.doc_statistics_definition ADD COLUMN type_code VARCHAR(20) NULL; +COMMENT ON COLUMN PUBLIC.doc_statistics_definition.type_code IS '类型代码'; + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511191303 alter_table doc_statistics_definition', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191403 alter_table doc_statistics.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191403 alter_table doc_statistics.sql" new file mode 100644 index 0000000000000000000000000000000000000000..e283e816d079b64a0c923e5804ce52418253f3de --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511191403 alter_table doc_statistics.sql" @@ -0,0 +1,5 @@ +ALTER TABLE PUBLIC.doc_statistics ADD COLUMN definition_id INT8 NULL; +COMMENT ON COLUMN PUBLIC.doc_statistics.definition_id IS '文书ID'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511191403 alter_table doc_statistics', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201011 alter_table doc_inventory_item_static.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201011 alter_table doc_inventory_item_static.sql" new file mode 100644 index 0000000000000000000000000000000000000000..baece04aa67c17a9592cb6d4371400dc0ed98401 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201011 alter_table doc_inventory_item_static.sql" @@ -0,0 +1,5 @@ +ALTER TABLE public.doc_inventory_item_static ALTER COLUMN delete_flag TYPE bpchar(1) USING delete_flag::bpchar(1); + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511201011 alter_table doc_inventory_item_static', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201214 alter_table wor_inventory_item.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201214 alter_table wor_inventory_item.sql" new file mode 100644 index 0000000000000000000000000000000000000000..4c79096ed4937ac895e86eb09b3359fd50b62f28 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201214 alter_table wor_inventory_item.sql" @@ -0,0 +1,5 @@ +ALTER TABLE public.wor_inventory_item ALTER COLUMN delete_flag TYPE bpchar(1) USING delete_flag::bpchar(1); + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511201214 alter_table wor_inventory_item', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201516 alter_table tmp_encounter_auto_roll.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201516 alter_table tmp_encounter_auto_roll.sql" new file mode 100644 index 0000000000000000000000000000000000000000..c78e152a331dbcc3a0a0fcae37292b90df12cf28 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511201516 alter_table tmp_encounter_auto_roll.sql" @@ -0,0 +1,8 @@ +ALTER TABLE public.tmp_encounter_auto_roll ADD practitioner_id int8 NULL; +COMMENT ON COLUMN public.tmp_encounter_auto_roll.practitioner_id IS '参与者id'; + +ALTER TABLE public.tmp_encounter_auto_roll ADD organization_id int8 NULL; +COMMENT ON COLUMN public.tmp_encounter_auto_roll.organization_id IS '参与者科室id'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511201516 alter_table tmp_encounter_auto_roll', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211515 alter_table doc_statistics.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211515 alter_table doc_statistics.sql" new file mode 100644 index 0000000000000000000000000000000000000000..bdbba9bd07e6a40eb3ad48d4a53981bf0ea364c5 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211515 alter_table doc_statistics.sql" @@ -0,0 +1,5 @@ +ALTER TABLE public.doc_statistics ADD COLUMN time_point VARCHAR NULL; +COMMENT ON COLUMN public.doc_statistics.time_point IS '时间点'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511211515 alter_table doc_statistics', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211815 alter_table doc_statistics.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211815 alter_table doc_statistics.sql" new file mode 100644 index 0000000000000000000000000000000000000000..f53a2b934ba8bd3ca93677ec344bd83a488fd4bd --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511211815 alter_table doc_statistics.sql" @@ -0,0 +1,4 @@ +ALTER TABLE public.doc_statistics DROP COLUMN time_point; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511211815 alter_table doc_statistics', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511221516 alter_table cli_allergy_intolerance.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511221516 alter_table cli_allergy_intolerance.sql" new file mode 100644 index 0000000000000000000000000000000000000000..585789b99ce35c8df68533a9216e1d70a67abde3 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511221516 alter_table cli_allergy_intolerance.sql" @@ -0,0 +1,11 @@ +ALTER TABLE public.cli_allergy_intolerance ADD medication_id int8 NULL; +COMMENT ON COLUMN public.cli_allergy_intolerance.medication_id IS '药品定义id'; + +ALTER TABLE public.cli_allergy_intolerance ADD lot_number varchar(255) NULL; +COMMENT ON COLUMN public.cli_allergy_intolerance.lot_number IS '批次号'; + +ALTER TABLE public.cli_allergy_intolerance ADD encounter_id int8 NULL; +COMMENT ON COLUMN public.cli_allergy_intolerance.encounter_id IS '就诊id'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511221516 alter_table cli_allergy_intolerance', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511271311 alter_table adm_organization_location.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511271311 alter_table adm_organization_location.sql" new file mode 100644 index 0000000000000000000000000000000000000000..3c76fa23d6969862d5867920d7cffe4a8a7d1b77 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511271311 alter_table adm_organization_location.sql" @@ -0,0 +1,5 @@ +ALTER TABLE public.adm_organization_location ADD item_code varchar(255) NULL; +COMMENT ON COLUMN public.adm_organization_location.item_code IS '项目编码'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('2202511271311 alter_table adm_organization_location', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511281422 inset_sys_menu.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511281422 inset_sys_menu.sql" new file mode 100644 index 0000000000000000000000000000000000000000..1fffc5239df7203d8af63a5f9be6cb27b61f0fc2 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202511281422 inset_sys_menu.sql" @@ -0,0 +1,5 @@ +INSERT INTO public.sys_menu ( menu_name, parent_id, order_num, "path", component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES( '库房对账', 322, 5, 'storeReconciliation', 'medicationmanagement/storeReconciliation/index', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-20 17:02:49.372', 'admin', '2025-11-20 17:04:09.794', NULL); + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202511281422 inset_sys_menu', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512020818 add_column_adm_charge_item.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512020818 add_column_adm_charge_item.sql" new file mode 100644 index 0000000000000000000000000000000000000000..2ee9f2af3d299895316197d7f09a74267d805e31 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512020818 add_column_adm_charge_item.sql" @@ -0,0 +1,10 @@ +ALTER TABLE "public"."adm_charge_item" + ADD COLUMN "system_discount_price" decimal(10,6), + ADD COLUMN "manual_adjusted_price" decimal(10,6); + +COMMENT ON COLUMN "public"."adm_charge_item"."system_discount_price" IS '系统内置折扣后价格(总价)'; + +COMMENT ON COLUMN "public"."adm_charge_item"."manual_adjusted_price" IS '人为调价后总价即系统内置价格后的人为调价'; + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202512020818 add_column_adm_charge_item', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512041212 add_table fin_three_part_pay_call_back.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512041212 add_table fin_three_part_pay_call_back.sql" new file mode 100644 index 0000000000000000000000000000000000000000..9e8cb10535ebc45b8c5184a4f792596fa5ceedbf --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/202512041212 add_table fin_three_part_pay_call_back.sql" @@ -0,0 +1,110 @@ + +-- ---------------------------- +-- Table structure for fin_three_part_pay_call_back +-- ---------------------------- +DROP TABLE IF EXISTS "public"."fin_three_part_pay_call_back"; +CREATE TABLE "public"."fin_three_part_pay_call_back" ( + "id" "pg_catalog"."numeric" NOT NULL, + "resp_code" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "resp_msg" "pg_catalog"."text" COLLATE "pg_catalog"."default", + "tran_type" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "txn_amt" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "pay_type" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "trace_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "txn_time" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "trade_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "trans_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "mid" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "mer_name" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "tid" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "mer_trade_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "vf_trade_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "discount_amt" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "qr_valid_time" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "scan_code" "pg_catalog"."text" COLLATE "pg_catalog"."default", + "org_tran_type" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "org_txn_name" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "pay_data" "pg_catalog"."text" COLLATE "pg_catalog"."default", + "pos_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "payment_id" "pg_catalog"."int8", + "pay_index" "pg_catalog"."int8", + "pay_time" "pg_catalog"."int8", + "delete_flag" "pg_catalog"."varchar" COLLATE "pg_catalog"."default" DEFAULT '0'::character varying, + "create_time" "pg_catalog"."timestamp" DEFAULT CURRENT_TIMESTAMP, + "create_by" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "update_time" "pg_catalog"."timestamp" DEFAULT CURRENT_TIMESTAMP, + "update_by" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "tenant_id" "pg_catalog"."int4", + "settle_date" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "settle_time" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "clear_date" "pg_catalog"."varchar" COLLATE "pg_catalog"."default" DEFAULT NULL::character varying, + "secret_key" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "card_type" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "other_msg" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "other_platform" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "pay_method" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "query_result" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "query_result_msg" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "execute_result" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "pay_result" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "account_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "receipt_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "err_msg" "pg_catalog"."varchar" COLLATE "pg_catalog"."default", + "lot_no" "pg_catalog"."varchar" COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."resp_code" IS '响应码:00 表示成功,其它表示失败'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."resp_msg" IS '响应码解释信息(需要Base64解密)'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."tran_type" IS '交易类型'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."txn_amt" IS '交易金额'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."trace_no" IS '终端流水号:终端号系统跟踪号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."txn_time" IS '交易时间:(yyyyMMddHHmmss)'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."trade_no" IS '支付订单号:银行返回系统订单号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."mer_trade_no" IS '商户系统订单号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."pos_no" IS 'POS机号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."settle_date" IS '交易日'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."settle_time" IS '交易时间'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."clear_date" IS '清算时间'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."secret_key" IS '校验密钥'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."card_type" IS '卡类型'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."other_msg" IS '第三方优惠说明'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."other_platform" IS '第三方平台'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."pay_method" IS '支付方式'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."query_result" IS '查询结果'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."query_result_msg" IS '查询结果说明'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."execute_result" IS '请求结果'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."pay_result" IS '支付结果'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."account_no" IS '卡号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."receipt_no" IS '凭证号'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."err_msg" IS '错误信息'; +COMMENT ON COLUMN "public"."fin_three_part_pay_call_back"."lot_no" IS '批次号'; +COMMENT ON TABLE "public"."fin_three_part_pay_call_back" IS '第三方支付回调表'; + +-- ---------------------------- +-- Indexes structure for table fin_three_part_pay_call_back +-- ---------------------------- +CREATE INDEX "idx_fin_three_part_mer_trade_no" ON "public"."fin_three_part_pay_call_back" USING btree ( + "mer_trade_no" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "idx_fin_three_part_mid_tid" ON "public"."fin_three_part_pay_call_back" USING btree ( + "mid" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "tid" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "idx_fin_three_part_payment_id" ON "public"."fin_three_part_pay_call_back" USING btree ( + "payment_id" "pg_catalog"."int8_ops" ASC NULLS LAST +); +CREATE INDEX "idx_fin_three_part_trade_no" ON "public"."fin_three_part_pay_call_back" USING btree ( + "trade_no" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "idx_fin_three_part_txn_time" ON "public"."fin_three_part_pay_call_back" USING btree ( + "txn_time" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table fin_three_part_pay_call_back +-- ---------------------------- +ALTER TABLE "public"."fin_three_part_pay_call_back" ADD CONSTRAINT "fin_three_part_pay_call_back_pkey" PRIMARY KEY ("id"); + + -- Insert migration record +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202512041212 add_table fin_three_part_pay_call_back', '1.0.0'); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\226\260\345\242\236\346\212\245\350\241\250.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\226\260\345\242\236\346\212\245\350\241\250.sql" new file mode 100644 index 0000000000000000000000000000000000000000..773f92adeb67a81f7381db09fa768e5897db1d99 --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\226\260\345\242\236\346\212\245\350\241\250.sql" @@ -0,0 +1,18 @@ +注意粘贴时替换蓝色背景parent_id +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '农大疾病统计', 2077, 14, 'diseaseDetails', 'medicationmanagement/statisticalManagement/diseaseDetails', NULL, NULL, '1', '0', 'C', '0', '0', NULL, NULL, 'admin', '2025-11-07 17:22:02.789998', NULL, NULL, NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '红旗在售药品明细', 2077, 13, 'medicationSaleDetails', 'medicationmanagement/statisticalManagement/medicationSaleDetails', NULL, NULL, '1', '0', 'C', '0', '0', NULL, NULL, 'admin', '2025-11-07 17:21:26.116454', NULL, NULL, NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '本年度收入与费用', 2077, 11, 'yearlyRevenueAndExpenses', 'medicationmanagement/statisticalManagement/yearlyRevenueAndExpenses', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-07 17:11:35.915738', 'admin', '2025-11-07 17:43:57.86807', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '患者明细', 2077, 10, 'patientDetails', 'medicationmanagement/statisticalManagement/patientDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-07 14:39:25.610092', 'admin', '2025-11-07 17:17:39.350742', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '药品入库情况', 2077, 12, 'medicationInboundDetails', 'medicationmanagement/statisticalManagement/medicationInboundDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-07 14:10:11.761728', 'admin', '2025-11-07 17:17:58.657013', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '30天回款率', 2077, 9, 'thirtyDayCollectionRate', 'medicationmanagement/statisticalManagement/thirtyDayCollectionRate', NULL, NULL, '1', '0', 'C', '0', '0', NULL, NULL, 'admin', '2025-11-07 13:28:40.973258', NULL, NULL, NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '药品费用增长率', 2077, 8, 'drugExpensesGrowthRate', 'medicationmanagement/statisticalManagement/drugExpensesGrowthRate', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-06 13:23:00.812609', 'admin', '2025-11-07 13:26:11.304488', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '非中选产品采购量占比', 2077, 7, 'nonWinQtyRatio', 'medicationmanagement/statisticalManagement/nonWinQtyRatio', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-06 11:34:59.566212', 'admin', '2025-11-06 13:28:16.121758', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '药品使用情况报表', 2077, 6, 'medicationUsageDetails', 'medicationmanagement/statisticalManagement/medicationUsageDetails', NULL, NULL, '1', '0', 'C', '0', '0', NULL, NULL, 'admin', '2025-11-06 11:30:08.818227', NULL, NULL, NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '药品出库情况', 2077, 5, 'medicationStockOutDetails', 'medicationmanagement/statisticalManagement/medicationStockOutDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-06 11:15:50.874906', 'admin', '2025-11-07 14:04:33.106983', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '线下采购占比报表', 2077, 4, 'offlinePurchaseRatioDetails', 'medicationmanagement/statisticalManagement/offlinePurchaseRatioDetails', NULL, NULL, '1', '0', 'C', '0', '0', NULL, NULL, 'admin', '2025-11-06 11:11:50.221865', NULL, NULL, NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '基本情况', 2077, 3, 'basicInformationDetails', 'medicationmanagement/statisticalManagement/basicInformationDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-06 10:12:35.512478', 'admin', '2025-11-07 14:01:41.079949', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '产品使用情况', 2077, 2, 'productUsageDetails', 'medicationmanagement/statisticalManagement/productUsageDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-06 10:11:26.203004', 'admin', '2025-11-06 13:28:25.624142', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '患者明细主报表', 2077, 1, 'patientMasterDetails', 'medicationmanagement/statisticalManagement/patientMasterDetails', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-05 22:54:46.254575', 'admin', '2025-11-06 09:05:43.082719', NULL); +INSERT INTO "public"."sys_menu" ( "menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '同一医生工作量统计', 2077, 1, 'physicianWorkloadStatisticsDetsils', 'medicationmanagement/statisticalManagement/physicianWorkloadStatisticsDetsils', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-17 09:10:22.616926', 'admin', '2025-11-17 10:31:44.061426', NULL); +INSERT INTO "public"."sys_menu" ( "menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '同一门诊科室工作量统计', 2077, 15, 'outpatientDepartmentMetrics', 'medicationmanagement/statisticalManagement/outpatientDepartmentMetrics', NULL, NULL, '1', '0', 'C', '0', '0', '', NULL, 'admin', '2025-11-10 09:34:16.273803', 'admin', '2025-11-14 09:42:03.010624', NULL); +INSERT INTO "public"."sys_menu" ("menu_name", "parent_id", "order_num", "path", "component", "query", "route_name", "is_frame", "is_cache", "menu_type", "visible", "status", "perms", "icon", "create_by", "create_time", "update_by", "update_time", "remark") VALUES ( '药剂科报表', 360, 6, '111', '', NULL, NULL, '1', '0', 'M', '0', '0', '', NULL, 'admin', '2025-11-05 22:52:47.557804', 'admin', '2025-11-07 17:17:20.600117', NULL); \ No newline at end of file diff --git "a/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\263\250\351\207\212.sql" "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\263\250\351\207\212.sql" new file mode 100644 index 0000000000000000000000000000000000000000..7efef95a840832324d377536ffb05d3877eea48b --- /dev/null +++ "b/\350\277\201\347\247\273\350\256\260\345\275\225-DB\345\217\230\346\233\264\350\256\260\345\275\225/\346\263\250\351\207\212.sql" @@ -0,0 +1,187 @@ +COMMENT ON COLUMN "public"."adm_charge_item_definition"."status_enum" IS '状态 + DRAFT(1, "draft", "草稿"), + + ACTIVE(2, "active", "启用"), + + RETIRED(3, "retired", "停用"), + + UNKNOWN(4, "unknown", "未知");'; + + + COMMENT ON COLUMN "public"."adm_charge_item_definition"."yb_type" IS '医保类别 +自费 1 +甲类 2 +乙类 3 +丙类 4'; + +COMMENT ON COLUMN "public"."med_medication_definition"."category_code" IS '药品分类 来源于字典med_category_code'; + +COMMENT ON COLUMN "public"."med_medication_request"."status_enum" IS '药品请求状态 + +/** + * 待发送 + */ + DRAFT(1, "draft", "待发送"), + + /** + * 已发送 + */ + ACTIVE(2, "active", "已发送"), + + /** + * 已完成 + */ + COMPLETED(3, "completed", "已完成"), + + /** + * 暂停 + */ + ON_HOLD(4, "on_hold", "暂停"), + + /** + * 待退 + */ + CANCELLED(5, "cancelled", "取消/待退"), + + /** + * 停嘱 + */ + STOPPED(6, "stopped", "停嘱"), + + /** + * 不执行 + */ + ENDED(7, "ended", "不执行"), + + /** + * 未知 + */ + UNKNOWN(9, "unknown", "未知");'; + + COMMENT ON COLUMN "public"."adm_charge_item"."status_enum" IS '状态 + +/** + * 草稿 + */ + DRAFT(0, "draft", "草稿"), + + /** + * 待收费 + */ + PLANNED(1, "planned", "待收费"), + + /** + * 待结算 + */ + BILLABLE(2, "billable", "待结算"), + + /** + * 不可收费 + */ + NOT_BILLABLE(3, "not-billable", "不可收费"), + + /** + * 终止 + */ + ABORTED(4, "aborted", "终止"), + + /** + * 已收费 + */ + BILLED(5, "billed ", "已收费"), + + /** + * 错误 + */ + ERROR(6, "entered-in-error", "错误"), + + /** + * 待退费 + */ + REFUNDING(7, "refunding", "待退费"), + + /** + * 已退费 + */ + REFUNDED(8, "refunded", "已退费"), + + /** + * 部分退费 + */ + PART_REFUND(9, "part-refund", "部分退费"), + + /** + * 未知 + */ + UNKNOWN(10, "unknown", "未知");'; + + COMMENT ON COLUMN "public"."med_medication_dispense"."status_enum" IS '药品发放状态 + /** + * 草稿 + */ + DRAFT(1, "DR", "草稿"), + + /** + * 待配药 + */ + PREPARATION(2, "PR", "待配药"), + + /** + * 待发药 + */ + IN_PROGRESS(3, "IN", "待发药"), + + /** + * 已发药 + */ + COMPLETED(4, "CO", "已发放"), + + /** + * 暂停 + */ + ON_HOLD(5, "ON", "暂停"), + + /** + * 停止 + */ + STOPPED(6, "ST", "停止"), + + /** + * 拒绝发药 + */ + DECLINED(7, "DE", "拒绝发药"), + + /** + * 已汇总 + */ + SUMMARIZED(8, "SR", "已汇总"), + + /** + * 部分发药 + */ + PART_COMPLETED(9, "PC", "部分发药"), + + /** + * 部分退药 + */ + PART_REFUND(10, "PR", "部分退药"), + + /** + * 已退药 + */ + REFUNDED(12, "RE", "已退药"), + + /** + * 未知 + */ + UNKNOWN(13, "UN", "未知"), + + /** + * 已配药 + */ + PREPARED(14, "PR", "已配药"), + + /** + * 撤回 + */ + CANCELLED(15, "CA", "撤回");'; \ No newline at end of file