diff --git a/openhis-server-new/core-admin/pom.xml b/openhis-server-new/core-admin/pom.xml index 10d95504..cbfcd0ca 100644 --- a/openhis-server-new/core-admin/pom.xml +++ b/openhis-server-new/core-admin/pom.xml @@ -41,13 +41,11 @@ io.swagger swagger-models - 1.6.2 - - mysql - mysql-connector-java + com.mysql + mysql-connector-j diff --git a/openhis-server-new/core-common/pom.xml b/openhis-server-new/core-common/pom.xml index 19132d79..b73c4296 100644 --- a/openhis-server-new/core-common/pom.xml +++ b/openhis-server-new/core-common/pom.xml @@ -77,6 +77,10 @@ com.alibaba.fastjson2 fastjson2 + + com.alibaba + fastjson + @@ -136,12 +140,6 @@ com.belerweb pinyin4j - 2.5.1 - - - - com.google.code.gson - gson 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 deleted file mode 100644 index 9431c01f..00000000 --- a/openhis-server-new/core-common/src/main/java/com/core/common/annotation/ExcelExtra.java +++ /dev/null @@ -1,38 +0,0 @@ -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/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 new file mode 100644 index 00000000..1668d536 --- /dev/null +++ b/openhis-server-new/core-common/src/main/java/com/core/common/enums/DeleteFlag.java @@ -0,0 +1,26 @@ +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 cb4a48ab..a03a2d0f 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 @@ -118,11 +118,11 @@ public enum TenantOptionDict { */ PACS_APP_SECRET("pacsAppSecret", "PACSAppSecret", 45), /** - * 电子发票-中转服务的路径 + * PACSAppSecret */ INVOICE_FORWARD_URL("invoiceUrl", "电子发票-中转服务的路径", 46), /** - * 电子发票-中转服务开关 + * PACSAppSecret */ FORWARD_SWITCH("forwardSwitch", "电子发票-中转服务开关", 47), /** @@ -160,7 +160,7 @@ public enum TenantOptionDict { /** * 电子发票开关 */ - INVOICE_SWITCH("invoiceSwitch", "电子发票开关", 56), + INVOICE_SWITCH("invoiceSwitch", "电子发票开关 (0:关闭 1:开启)", 56), /** * 医嘱定价来源 @@ -170,163 +170,41 @@ public enum TenantOptionDict { /** * 三方支付(签到) */ - 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_SIGN_URL("threePartSignUrl", "三方支付GET请求", 58), /** * 三方支付(消费) */ - THREE_PART_PAY_URL("threePartPayUrl", "三方支付【消费】请求路径", 62), - /** - * 三方支付(消费) - */ - THREE_PART_PAY_STATIC_PARAM("threePartPayStaticParam", "三方支付【消费】固定参数", 63), - /** - * 三方支付(消费) - */ - THREE_PART_PAY_ACTIVE_PARAM("threePartPayActiveParam", "三方支付【消费】可变参数", 64), - /** - * 三方支付(消费) - */ - THREE_PART_PAY_MAPPING_METHOD("threePartPayMappingMethod", "三方支付【消费】请求方式", 65), + THREE_PART_PAY_URL("threePartPayUrl", "三方支付GET请求", 59), /** * 三方支付(退费) */ - 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_RETURN_URL("threePartReturnUrl", "三方支付GET请求", 60), /** * 三方支付(隔天退费) */ - 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_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付GET请求", 61), /** * 三方支付路径(支付结果查询) */ - 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_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付GET请求", 62), /** * 三方支付路径(退费结果查询) */ - 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_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付GET请求", 63), /** * 三方支付路径(隔天退费结果查询) */ - 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_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付GET请求", 64), /** - * 三方支付(签出) + * 三方支付参数 */ - 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查看报告地址 - */ - LIS_REPORT_URL("lisReportUrl", "LIS查看报告地址", 92), - - /** - * 开药时药房允许多选开关 - */ - PHARMACY_MULTIPLE_CHOICE_SWITCH("pharmacyMultipleChoiceSwitch", "开药时药房允许多选开关", 93), - - /** - * PEIS服务地址 - */ - PEIS_SERVER_URL("peisServerUrl", "PEIS服务地址", 94); + THREE_PART_PARAM("threePartParam", "三方支付GET请求", 65); 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 deleted file mode 100644 index b41f18a0..00000000 --- a/openhis-server-new/core-common/src/main/java/com/core/common/utils/NewExcelUtil.java +++ /dev/null @@ -1,1837 +0,0 @@ -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 2c047769..a96ef821 100644 --- a/openhis-server-new/core-flowable/pom.xml +++ b/openhis-server-new/core-flowable/pom.xml @@ -80,7 +80,6 @@ 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 c745a676..1c1d5661 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","doc_inventory_item_static")); + "sys_operation_record")); @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 5154bbd2..e6bf5241 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,5 +1,9 @@ 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; @@ -7,7 +11,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.EnableMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; @@ -17,17 +21,12 @@ 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 */ -@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true) +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) @Configuration public class SecurityConfig { /** @@ -86,38 +85,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 cc3127c9..e217d679 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,7 +6,6 @@ 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; @@ -24,6 +23,7 @@ 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 (DelFlag.YES.getCode().equals(currentTenant.getDeleteFlag())) { + if (DeleteFlag.DELETED.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 82319b3a..08179835 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,9 +52,6 @@ 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 5ca5c560..a353d51e 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_,lab_ \ No newline at end of file + tablePrefix: cod_,adm_,cli_,dia_,med_,wor_,fin_,def_,doc_,yb_ \ 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 486765fb..d20d2112 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,15 +99,14 @@ - 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 29e2ccbd..10f0043e 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/ProductStocktakingMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ProductStocktakingMapper.xml index 90aa26d0..9a00915e 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, @@ -215,8 +214,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 @@ -239,7 +238,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} @@ -264,8 +263,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 @@ -285,7 +284,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} @@ -296,20 +295,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 89430ec9..20d24838 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 @@ -16,8 +16,7 @@ T2.approval_time, -- 审批时间 T2.applicant_id, -- 申请人ID T2.create_time, -- 制单时间 - T2.tenant_id, -- 租户ID - T2.total_amount + T2.tenant_id -- 租户ID FROM (SELECT T1.bus_no AS supply_bus_no, T1.status_enum, T1.type_enum, @@ -30,8 +29,7 @@ T2."name" AS source_location_name, -- 源仓库 T1.purpose_location_id, T3."name" AS purpose_location_name, -- 目的仓库 - T1.tenant_id, -- 租户ID - sum(T1.total_price) AS total_amount + T1.tenant_id -- 租户ID FROM wor_supply_request AS T1 LEFT JOIN adm_location T2 ON T1.source_location_id = T2.id @@ -57,12 +55,11 @@ - - - - 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 @@ -300,10 +296,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 @@ -311,41 +307,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 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, -- 生产厂商 #{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 @@ -377,7 +373,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 @@ -390,7 +386,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 @@ -398,51 +394,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 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, -- 生产厂商 #{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 @@ -471,7 +467,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/RequisitionIssueMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml index 9f603318..3cef1469 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/RequisitionIssueMapper.xml @@ -16,13 +16,12 @@ T2.approver_id,--审批人 T2.approval_time,--审批时间 T2.applicant_id,--申请人 - T2.create_time, -- 制单时间 + T2.create_time, -- 制单时间 T2.practitioner_id,--经手人 T2.tenant_id,--租户ID T2.purpose_location_id,--领用部门ID - T2.location_name, --领用部门名 - T2.total_amount--总金额 - FROM (SELECT T1.bus_no AS supply_bus_no, + T2.location_name --领用部门名 + FROM (SELECT T1.bus_no AS supply_bus_no, T1.status_enum, T1.approver_id, T1.approval_time, @@ -31,13 +30,12 @@ T1.practitioner_id, T1.tenant_id, T1.purpose_location_id,--领用部门ID - T4.name AS location_name, - SUM(T1.total_price) AS total_amount + T4.name AS location_name FROM wor_supply_request AS T1 - LEFT JOIN adm_location T3 - ON T1.source_location_id = T3.id - LEFT JOIN adm_organization T4 - ON T1.purpose_location_id = T4.id + LEFT JOIN adm_location T3 + ON T1.source_location_id = T3.id + LEFT JOIN adm_organization T4 + ON T1.purpose_location_id = T4.id WHERE T1.type_enum = #{issueInventory} AND T1.delete_flag = '0' GROUP BY T1.bus_no, @@ -50,17 +48,17 @@ T1.purpose_location_id, T4.name ORDER BY T1.bus_no desc - ) AS T2 - ${ew.customSqlSegment} + ) AS T2 + ${ew.customSqlSegment} + - diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml index f1fe861a..83ced0a0 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/Inventorymanage/ReturnIssueMapper.xml @@ -75,7 +75,7 @@ T2."yb_no",--医保编码 T3.total_volume,--药品规格 T4."name" AS supplier_name,--供应商名称 - T2.manufacturer_text , -- 生产厂商 + T2.manufacturer_text AS manufacturer, -- 生产厂商 T1.practitioner_id, -- 经办人 T5."name" AS practitioner_name,--经办人名称 T10.quantity AS total_quantity, -- 当前库存总数 @@ -146,7 +146,7 @@ T2."yb_no",--医保编码 T2."size" AS total_volume,--包装规格 T4."name" AS supplier_name, - T2.manufacturer_text , -- 生产厂商 + T2.manufacturer_text AS manufacturer, -- 生产厂商 T1.practitioner_id, -- 经办人 T5."name" AS practitioner_name, T10.quantity AS total_quantity, -- 当前库存总数 @@ -216,7 +216,7 @@ T2."yb_no",--医保编码 T3.total_volume,--药品规格 T4."name" AS supplier_name,--供应商名称 - T2.manufacturer_text , -- 生产厂商 + T2.manufacturer_text AS manufacturer, -- 生产厂商 T1.practitioner_id, -- 经办人 T5."name" AS practitioner_name,--经办人名称 T10.quantity AS total_quantity, -- 当前库存总数 @@ -293,7 +293,7 @@ T2."yb_no",--医保编码 T2."size" AS total_volume,--包装规格 T4."name" AS supplier_name, - T2.manufacturer_text , -- 生产厂商 + T2.manufacturer_text AS manufacturer, -- 生产厂商 T1.practitioner_id, -- 经办人 T5."name" AS practitioner_name, T10.quantity AS total_quantity, -- 当前库存总数 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml index aba5d087..35806d2a 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml @@ -89,10 +89,6 @@ - - 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 e27300d4..905c9621 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,7 +7,6 @@ SELECT T4.encounter_id, T4.encounter_bus_no, T4.patient_id, - T4.encounter_status, T4.reception_time, T4.patient_name, T4.patient_bus_no, @@ -17,62 +16,47 @@ T4.start_time, T4.patient_py_str, T4.patient_wb_str, - T4.balance_amount - FROM (SELECT T1.id AS encounter_id, - T1.bus_no AS encounter_bus_no, - T1.patient_id, - 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, - T2.id_card, - T2.py_str AS patient_py_str, - T2.wb_str AS patient_wb_str, - T3.balance_amount - FROM adm_encounter AS T1 - LEFT JOIN adm_patient AS T2 - ON T1.patient_id = T2.id - LEFT JOIN (SELECT aa.encounter_id, - (aa.balance_amount - - COALESCE(SUM(CASE - WHEN aci.status_enum IN (#{billed}, #{billable}) - THEN aci.total_price - ELSE 0 END), 0) + - COALESCE( - SUM(CASE WHEN aci.status_enum = #{refunded} THEN aci.total_price ELSE 0 END), - 0)) AS balance_amount - FROM adm_account aa - LEFT JOIN adm_charge_item aci ON aa.encounter_id = aci.encounter_id - AND aa.delete_flag = '0' - WHERE aa.type_code = #{personalCashAccount} - AND aa.delete_flag = '0' - GROUP BY aa.encounter_id, - aa.balance_amount) AS T3 ON T3.encounter_id = T1.id - 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.balance_amount - ORDER BY T1.bus_no DESC) AS T4 + T4.status_enum + FROM ( + SELECT T1.id AS encounter_id, + T1.bus_no AS encounter_bus_no, + T1.patient_id, + T1.reception_time, + T1.delete_flag, + T1.tenant_id, + 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 + 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} + GROUP BY T1.id, + T1.bus_no, + T1.patient_id, + T1.reception_time, + T1.delete_flag, + T1.tenant_id, + T2."name", + T2.bus_no, + T2.gender_enum, + T2.birth_date, + T2.id_card, + T2.py_str, + T2.wb_str, + T3.status_enum + ORDER BY T1.bus_no DESC + ) AS T4 ${ew.customSqlSegment} @@ -148,6 +132,8 @@ , #{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/OutpatientRefundAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRefundAppMapper.xml index ea63ef28..5d028643 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,6 +75,10 @@ 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, @@ -83,6 +87,9 @@ 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' @@ -110,6 +117,10 @@ 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, @@ -118,6 +129,9 @@ 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' @@ -145,6 +159,10 @@ 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, @@ -264,7 +282,10 @@ 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, @@ -289,6 +310,9 @@ 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' @@ -326,7 +350,10 @@ 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, @@ -351,6 +378,9 @@ 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' @@ -388,7 +418,10 @@ 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/datadictionary/MedicationManageSearchMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml index 1f6ce23e..21ba1920 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml @@ -75,8 +75,7 @@ T6.retail_price, T6.chrgitm_lv,--医保等级 T6.rx_flag,--处方标志 - T6.tenant_id, - T6.drug_69_code + T6.tenant_id FROM ( SELECT T2.id, @@ -102,7 +101,6 @@ T2.ddd_unit_code, T2.min_rate_code, T2.max_rate_code, - T1.drug_69_code, T1.bus_no, T1.name, T1.domain_enum, @@ -203,7 +201,6 @@ T2.ddd_unit_code, T2.min_rate_code, T2.max_rate_code, - T1.drug_69_code, T1.bus_no, T1.name, T1.domain_enum, 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 ca9c5943..8efadbbb 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 eaf9f0d4..7a6d302f 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,91 +6,85 @@ @@ -169,20 +145,4 @@ , '%') - \ 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 d14e1454..0de7769d 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,12 +23,10 @@ ii.bed_id, ii.bed_name, ii.organization_name, - ii.contract_name, - COALESCE(ii.time1, ii.time2, ii.time3) AS admission_time + ii.contract_name 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 @@ -60,10 +58,7 @@ alb.location_id AS bed_id, alb.location_name AS bed_name, ao."name" AS organization_name, - fc.contract_name, - alw.admission_time as time1, - alh.admission_time as time2, - alb.admission_time as time3 + fc.contract_name FROM adm_encounter ae LEFT JOIN adm_patient ap ON ae.patient_id = ap.id @@ -90,8 +85,7 @@ WHERE ae.delete_flag = '0' AND ae.class_enum = #{imp} AND ae.status_enum != #{toBeRegistered} - GROUP BY ae.tenant_id, - ae.id, + GROUP BY ae.id, ae.bus_no, ae.status_enum, ae.start_time, @@ -111,10 +105,7 @@ alb.location_id, alb.location_name, ao."name", - fc.contract_name, - alw.admission_time, - alh.admission_time, - alb.admission_time + fc.contract_name ORDER BY ae.bus_no DESC ) AS ii ${ew.customSqlSegment} @@ -199,7 +190,6 @@ 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, @@ -224,107 +214,112 @@ - - - - \ 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 15aa547c..84b1e6f5 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,90 +23,83 @@ ii.house_name, ii.bed_id, ii.bed_name, - 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, + 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, ae.bus_no, - ae.status_enum AS encounter_status, + ae.status_enum, 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."name", + ap.py_str, + ap.wb_str, ap.gender_enum, ap.birth_date, - 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 + 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 ${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/inpatientmanage/AdmissionMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/AdmissionMapper.xml new file mode 100644 index 00000000..263c9efb --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/AdmissionMapper.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + \ No newline at end of file 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 fc4d50b5..fff5da8b 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,6 +54,7 @@ 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 @@ -118,6 +119,9 @@ 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 deleted file mode 100644 index b1b11a15..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/GroupRecMapper.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ 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 deleted file mode 100644 index bdba87a4..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/LisReportMapper.xml +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - \ 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 deleted file mode 100644 index 0590863c..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inspection/SampleCollectMapper.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - \ 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 dc94133d..0061ad9f 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,6 +2,102 @@ + + \ 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 deleted file mode 100644 index 4e96e44e..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientSkinTestAppMapper.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index eead0b14..7e16754b 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -2,98 +2,153 @@ - + SELECT + T1.tenant_id, + T1.id, + T1.active_flag, + T1.temp_flag, + T1.name, + T1.name_json, + T1.bus_no, + T1.gender_enum, + T1.birth_date, + T1.deceased_date, + T1.marital_status_enum, + T1.prfs_enum, + T1.phone, + T1.address, + T1.address_province, + T1.address_city, + T1.address_district, + T1.address_street, + T1.address_json, + T1.nationality_code, + T1.id_card, + T1.py_str, + T1.wb_str, + T1.blood_abo, + T1.blood_rh, + T1.work_company, + T1.native_place, + T1.country_code, + T1.link_name, + T1.link_relation_code, + T1.link_telcom, + T1.link_jsons, + T1.organization_id, + T1.create_time, + T1.type_code, + T1.organization_name + FROM + ( + SELECT + pt.tenant_id, + pt.id, + pt.active_flag, + pt.temp_flag, + pt.name, + pt.name_json, + pt.bus_no, + pt.gender_enum, + pt.birth_date, + pt.deceased_date, + pt.marital_status_enum, + pt.prfs_enum, + pt.phone, + pt.address, + pt.address_province, + pt.address_city, + pt.address_district, + pt.address_street, + pt.address_json, + pt.nationality_code, + pt.id_card, + pt.py_str, + pt.wb_str, + pt.blood_abo, + pt.blood_rh, + pt.work_company, + pt.native_place, + pt.country_code, + pt.link_name, + pt.link_relation_code, + pt.link_telcom, + pt.link_jsons, + pt.organization_id, + pt.create_time, + api.type_code, + ogt.name as organization_name + FROM adm_patient pt + LEFT JOIN adm_organization ogt ON pt.organization_id = ogt.id + LEFT JOIN adm_patient_identifier api ON pt.id = api.patient_id + ORDER BY pt.bus_no DESC + ) AS T1 ${ew.customSqlSegment} - + SELECT MIN(p.name) AS practitioner_name + FROM adm_encounter_participant ep + LEFT JOIN adm_practitioner p ON ep.practitioner_id = p.id + WHERE ep.type_code = '1' + GROUP BY ep.practitioner_id + HAVING MIN(p.name) IS NOT NULL; + + \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/paymentmanage/EleInvoiceMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/paymentmanage/EleInvoiceMapper.xml index 89172ce1..cdf695c5 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/paymentmanage/EleInvoiceMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/paymentmanage/EleInvoiceMapper.xml @@ -71,11 +71,7 @@ SELECT DISTINCT T1.id AS payer_id, --患者id T1.name AS payer, --患者姓名 T1.bus_no AS case_number, --患者院内编码/病历号 - T1.gender_enum, - case T1.gender_enum when 0 then '男' - when 1 then '女' - else '未说明' end --性别 - AS gender_enum_enumText, + T1.gender_enum, --性别 T1.birth_date, --出生日期 T1.phone AS tel, --电话 T1.id_card AS card_no, --身份证号 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/InboundReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/InboundReportMapper.xml index df8d42a4..49183456 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/InboundReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/InboundReportMapper.xml @@ -126,129 +126,4 @@ ${ew.customSqlSegment} ORDER BY T10.supply_bus_no DESC - - diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/LossReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/LossReportMapper.xml index d5a7be1d..18221930 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/LossReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/LossReportMapper.xml @@ -107,110 +107,4 @@ ${ew.customSqlSegment} ORDER BY T9.supply_bus_no DESC - - 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 deleted file mode 100644 index dec4bf37..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/MedicationInboundReportMapper.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/OutboundReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/OutboundReportMapper.xml index 47b65104..64668c5b 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/OutboundReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/OutboundReportMapper.xml @@ -131,134 +131,4 @@ ${ew.customSqlSegment} ORDER BY T10.supply_bus_no DESC - - 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 deleted file mode 100644 index 2d661740..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/ReportMapper.xml +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/StocktakingReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/StocktakingReportMapper.xml index c7160fdb..868d131e 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/StocktakingReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/StocktakingReportMapper.xml @@ -4,52 +4,52 @@ - SELECT T9.id, --ID - T9.bus_no, --编码 - T9.name, --名称 - T9.total_volume, --规格 - T9.manufacturer_text, --厂家 - T9.lot_number, --产品批号 - T9.location_name, --目的仓库 - T9.unit_code, --小单位 - T9.item_quantity, --数量 - T9.approval_time, --审批时间 + SELECT T9.id, --ID + T9.bus_no, --编码 + T9.name, --名称 + T9.total_volume, --规格 + T9.manufacturer_text, --厂家 + T9.lot_number, --产品批号 + T9.location_name, --目的仓库 + T9.unit_code, --小单位 + T9.item_quantity, --数量 + T9.approval_time, --审批时间 T9.supply_bus_no,--单据号 T9.purpose_location_id,-- 目的仓库id T9.price,--采购单价 T9.location_store_name,--仓库货位 T9.total_price,--报损金额 - T9.name AS supplier,--供应商 - T9.approver_id, --审核人 - T9.occurrence_time, --制单日期 - T9.tenant_id -- 租户ID - FROM (SELECT T1.id, --ID - T2.bus_no, --编码 - T2.name, --名称 - T3.total_volume, --规格 - T2.manufacturer_text, --厂家 - T1.lot_number, --产品批号 - T5.name AS location_name, --目的仓库 - T1.unit_code, --小单位 - T1.item_quantity, --盈亏数量 + T9.name AS supplier,--供应商 + T9.approver_id, --审核人 + T9.occurrence_time, --制单日期 + T9.tenant_id -- 租户ID + FROM (SELECT T1.id, --ID + T2.bus_no, --编码 + T2.name, --名称 + T3.total_volume, --规格 + T2.manufacturer_text, --厂家 + T1.lot_number, --产品批号 + T5.name AS location_name, --目的仓库 + T1.unit_code, --小单位 + T1.item_quantity, --盈亏数量 T1.approval_time, --审批时间 - T1.bus_no AS supply_bus_no,--单据号 + T1.bus_no AS supply_bus_no,--单据号 T1.purpose_location_id,-- 目的仓库id T1.price,--采购单价 - T4.name AS location_store_name,--仓库货位 + T4.name AS location_store_name,--仓库货位 T1.total_price,--报损金额 - T9.name AS supplier,--供应商 - T1.approver_id, --审核人 - T1.occurrence_time, --制单日期 - T1.tenant_id -- 租户ID + T9.name AS supplier,--供应商 + T1.approver_id, --审核人 + T1.occurrence_time, --制单日期 + T1.tenant_id -- 租户ID FROM wor_aut_supply_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T1.item_id = T2.id @@ -173,25 +173,25 @@ AND T1.delete_flag = '0' AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time} UNION - SELECT T1.id, --ID - T6.bus_no, --编码 - T6.name, --名称 - T6.size AS total_volume, --规格(器材规格) - T6.manufacturer_text, --厂家 - T1.lot_number, --产品批号 - T5.name AS location_name, --目的仓库 - T1.unit_code, --小单位 - T1.item_quantity, --盈亏数量 - T1.approval_time, --审批时间 - T1.bus_no AS supply_bus_no,--单据号 + SELECT T1.id, --ID + T6.bus_no, --编码 + T6.name, --名称 + T6.size AS total_volume, --规格(器材规格) + T6.manufacturer_text, --厂家 + T1.lot_number, --产品批号 + T5.name AS location_name, --目的仓库 + T1.unit_code, --小单位 + T1.item_quantity, --盈亏数量 + T1.approval_time, --审批时间 + T1.bus_no AS supply_bus_no,--单据号 T1.purpose_location_id,-- 目的仓库id T1.price,--采购单价 - T4.name AS location_store_name,--仓库货位 + T4.name AS location_store_name,--仓库货位 T1.total_price,--报损金额 - T9.name AS supplier,--供应商 - T1.approver_id, --审核人 - T1.occurrence_time, --制单日期 - T1.tenant_id -- 租户ID + T9.name AS supplier,--供应商 + T1.approver_id, --审核人 + T1.occurrence_time, --制单日期 + T1.tenant_id -- 租户ID FROM wor_aut_supply_request AS T1 LEFT JOIN adm_device_definition AS T6 ON T1.item_id = T6.id @@ -212,113 +212,4 @@ AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time}) AS T9 ORDER BY T9.supply_bus_no DESC - - diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/TransferReportMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/TransferReportMapper.xml index 77a6fb32..ec894cd6 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/TransferReportMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/reportmanage/TransferReportMapper.xml @@ -125,128 +125,4 @@ ${ew.customSqlSegment} ORDER BY T6.supply_bus_no DESC - - 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 deleted file mode 100644 index 2d163450..00000000 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/tencentJH/TencentAppMapper.xml +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - \ 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 75c566e6..3eb87500 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 @@ -4,8 +4,6 @@ - - \ 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 b96d8c96..d78bf823 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=H22010402403 +ybapp.config.fixmedinsCode=H22010200 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/enums/ActivityDefCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ActivityDefCategory.java index 5c79f9b4..cf4ec26c 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,47 +107,7 @@ public enum ActivityDefCategory implements HisEnumInterface { /** * 隔离等级 */ - 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", "护理项目"); + ISOLATION_LEVEL(42, "42", "隔离等级"); @EnumValue private final Integer value; 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 920404ee..abfb4d16 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 ef47f871..3f7ea662 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,12 +14,7 @@ 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 ff84feb2..fd1d31b1 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,9 +17,7 @@ import lombok.Getter; public enum Criticality implements HisEnumInterface { LOW(0, "low", "低"), - HIGH(1, "high", "高"), - UNASSESSABLE(2, "unassessable", "无法评估"); @EnumValue diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java similarity index 77% rename from openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java rename to openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java index f59c8060..0e8b0f4f 100644 --- a/openhis-server-new/core-common/src/main/java/com/core/common/enums/DelFlag.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DelFlag.java @@ -1,13 +1,10 @@ -package com.core.common.enums; - -import lombok.Getter; +package com.openhis.common.enums; /** * 删除标识 * * @author system */ -@Getter public enum DelFlag { /** * 未删除 @@ -28,6 +25,18 @@ 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/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java new file mode 100644 index 00000000..a4bff69b --- /dev/null +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DeviceCategory.java @@ -0,0 +1,31 @@ +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", "治疗设备"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + + public static DeviceCategory getByValue(Integer value) { + if (value == null) { + return null; + } + for (DeviceCategory 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/DispenseStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DispenseStatus.java index f2bd03a3..2b2896e2 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,16 +77,10 @@ public enum DispenseStatus implements HisEnumInterface { * 已配药 */ PREPARED(14, "PR", "已配药"), - /** * 撤回 */ - CANCELLED(15, "CA", "撤回"), - - /** - * 待退药 - */ - PENDING_REFUND(16, "PRD", "待退药"); + CANCELLED(15, "CA", "撤回"); 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 deleted file mode 100644 index 0ff4131d..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/DocDefinitionEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -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; - - public static String getInfoByValue(String value){ - for(DocDefinitionEnum definition : DocDefinitionEnum.values()){ - if(definition.getValue().equals(value)){ - return definition.getInfo(); - } - } - return ""; - } -} 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 f6cb2264..d8579ba9 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 bfd34b53..9a86f589 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 deleted file mode 100644 index 9cca1515..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentCategory.java +++ /dev/null @@ -1,53 +0,0 @@ -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/InstrumentStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentStatus.java deleted file mode 100644 index 38e40d3b..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/InstrumentStatus.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.openhis.common.enums; - -import com.baomidou.mybatisplus.annotation.EnumValue; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -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 InstrumentStatus getByValue(Integer value) { - if (value == null) { - return null; - } - for (InstrumentStatus 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/NursingOrdersClass.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/NursingOrdersClass.java index d109eea2..d8a5ec4f 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 deleted file mode 100644 index 9506f46e..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ObservationType.java +++ /dev/null @@ -1,67 +0,0 @@ -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 6251c917..59908b88 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,8 +24,7 @@ public enum ProcedureCategory { OUTPATIENT_ADVICE(10, "10", "门诊医嘱"), - INPATIENT_ADVICE(11, "11", "住院医嘱"), - INPATIENT_NURSE_ADVICE(12, "12", "住院护理医嘱"); + INPATIENT_ADVICE(11, "11", "住院医嘱"); @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 deleted file mode 100644 index de982dca..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ReportCodeEnum.java +++ /dev/null @@ -1,18 +0,0 @@ -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 a0088728..fc30f6ec 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,9 +16,7 @@ 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/SpecimenType.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecimenType.java deleted file mode 100644 index 64f298f4..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecimenType.java +++ /dev/null @@ -1,44 +0,0 @@ -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 deleted file mode 100644 index c241cff6..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/TemperatureChartEnum.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.openhis.common.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 体温单枚举 - * - * @author swb - * @date 2025-11-21 - */ -@Getter -@AllArgsConstructor -public enum TemperatureChartEnum { - TEMPERATURE_CHINESE("00301","","体温拒测等汉字"), - BREATH("001", "breathe", "呼吸"), - PULSE("002", "pulse", "脉搏"), - TEMPERATURE("003", "temperature", "体温"), - BLOOD_PRESSURE("008", "bloodPressure", "血压"), - PAIN_SCORE("016", "painScore", "疼痛等级"), - POSTOP_DAYS("031", "", "术后天数"), - HEIGHT("030","height","身高"), - WEIGHT("009","weight","体重"), - OUTPUT("","output","出量"), - INPUT("006","input","入量"), - BOWEL_MOVEMENT_FREQUENCY("005","input","大便次数"), - URINATION_FREQUENCY("004","input","小便次数"), - URINE_VOLUME("011","input","尿量"), - OTHERS("007","input","其他"), - HEART_RATE("","heartRate","心率"), - TIME_POINT("","timePoint","时间点"), - OPERATION("9502", "", "手术"), - TRANSFER_DEPARTMENT("9506", "", "转科"), - 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 550f34eb..aefe9c07 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,9 +10,7 @@ public enum TraceNoStatus implements HisEnumInterface { IN(1, "1", "进"), - OUT(2, "2", "出"), - - IN_STOCK(3, "3", "在库"); + OUT(2, "2", "出"),; @EnumValue private final Integer value; diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java similarity index 52% rename from openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java rename to openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java index d4e7a57b..9e51e1d3 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SpecCollectStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/VerificationStatus.java @@ -1,40 +1,32 @@ 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 SpecCollectStatus implements HisEnumInterface{ - - /** - * 待采集 - */ - - PENDING(0, "Pending", "待采集"), - - /** - * 已采集 - */ - COLLECTED(1, "COLLECTED", "已采集"), - - /** - * 已接收 - */ - RECEIVED(2, "COLLECTED", "已接收"); - +public enum VerificationStatus implements HisEnumInterface { + UNCONFIRMED(1, "unconfirmed", "未确认"), CONFIRMED(2, "confirmed", "已确认"), REFUTED(3, "refuted", "已反驳"), + ENTERED_IN_ERROR(4, "entered-in-error", "输入错误"); @EnumValue private final Integer value; private final String code; private final String info; - public static SpecCollectStatus getByValue(Integer value) { + public static VerificationStatus getByValue(Integer value) { if (value == null) { return null; } - for (SpecCollectStatus val : values()) { + for (VerificationStatus val : values()) { if (val.getValue().equals(value)) { return val; } 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 deleted file mode 100644 index fbaebfcc..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbEncounterZyStatus.java +++ /dev/null @@ -1,37 +0,0 @@ -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 deleted file mode 100644 index 68f1e5ca..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/ybenums/YbMdcsType.java +++ /dev/null @@ -1,66 +0,0 @@ -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/utils/HisQueryUtils.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/HisQueryUtils.java index 83b30fb8..94435f47 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,7 +14,6 @@ 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; /** @@ -101,15 +100,6 @@ public class HisQueryUtils { return queryWrapper; } - // 新增SQL转义方法,防止注入风险 - private static String escapeSql(String value) { - if (value == null) { - return ""; - } - // 转义单引号(PostgreSQL中用两个单引号表示一个单引号) - return value.replace("'", "''"); - } - /** * 检查时间字符串是否符合指定格式 * @@ -156,8 +146,6 @@ 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 deleted file mode 100644 index e4fbf1fe..00000000 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/utils/PageUtils.java +++ /dev/null @@ -1,56 +0,0 @@ -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/src/main/java/com/openhis/administration/domain/Account.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Account.java index bc072512..d72b86d5 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Account.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Account.java @@ -5,8 +5,10 @@ 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 com.core.common.core.domain.HisBaseEntity; +import com.openhis.common.enums.AccountBillingStatus; +import com.openhis.common.enums.AccountStatus; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -64,7 +66,4 @@ public class Account extends HisBaseEntity { /** 是否为就诊登记使用 */ private Integer encounterFlag; - /** 险种类型 */ - private String insutype; - } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItemDefinition.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItemDefinition.java index c034e812..7bb64a9c 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItemDefinition.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ChargeItemDefinition.java @@ -6,8 +6,9 @@ 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.core.common.core.domain.HisBaseEntity; +import com.openhis.common.enums.PublicationStatus; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -66,9 +67,4 @@ public class ChargeItemDefinition extends HisBaseEntity { /** 基础价格 */ private BigDecimal price; - - /** - * 物价编码 - */ - private String priceCode; } 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 3c956389..5907cd0b 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,11 +1,14 @@ package com.openhis.administration.domain; +import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import com.core.common.core.domain.HisBaseEntity; +import com.openhis.common.enums.DeviceCategory; import com.openhis.common.enums.DeviceSafety; import lombok.Data; import lombok.EqualsAndHashCode; @@ -67,7 +70,7 @@ public class Device extends HisBaseEntity { private String partNumber; /** 器材种类 */ - private Integer categoryEnum; + private DeviceCategory categoryEnum; /** 器材类型 */ private String typeCode; @@ -90,4 +93,5 @@ 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 1c3f13b0..21b59a55 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.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.enums.DeviceCategory; +import com.openhis.common.enums.PublicationStatus; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,7 +27,6 @@ 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 deleted file mode 100644 index 4d21d8b5..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Instrument.java +++ /dev/null @@ -1,113 +0,0 @@ -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 deleted file mode 100644 index d1d059ef..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/ObservationDefinition.java +++ /dev/null @@ -1,55 +0,0 @@ -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 f94002f4..66f49845 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,9 +60,4 @@ 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/Patient.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java index 27801f38..e14e7970 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java @@ -6,9 +6,13 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; + import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; - +import com.openhis.common.enums.ActPriority; +import com.openhis.common.enums.PublicationStatus; +import com.openhis.common.enums.SupplyCategory; +import com.openhis.common.enums.SupplyStatus; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -128,4 +132,9 @@ public class Patient extends HisBaseEntity { /** 机构Id */ private Long organizationId; + public Patient() { + // 活动标识:启用 + this.activeFlag = PublicationStatus.ACTIVE.getValue(); + } + } 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 deleted file mode 100644 index 24f69fd7..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/SpecimenDefinition.java +++ /dev/null @@ -1,75 +0,0 @@ -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/dto/ChargeItemDefInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/ChargeItemDefInfo.java index 2bbe628b..b00fddb6 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/ChargeItemDefInfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/ChargeItemDefInfo.java @@ -61,10 +61,4 @@ public class ChargeItemDefInfo extends ChargeItem { /** 基础价格 */ private BigDecimal price; - - /** 基础价格 */ - private BigDecimal manualAdjustedPrice; - - /** 基础价格 */ - private BigDecimal systemDiscountPrice; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailDto.java deleted file mode 100644 index 7983c902..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailDto.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.openhis.administration.dto; - -import java.math.BigDecimal; -import java.util.Date; - -import com.core.common.annotation.Excel; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 费用明细Dto - * - * @author swb - * @date 2025-12-16 - */ -@Data -@Accessors(chain = true) -public class CostDetailDto { - /** - * 项目名称 - */ - @Excel(name = "项目名称", sort = 2) - private String chargeName; - - /** - * 费用类型 - */ - private Integer chargeItemEnum; - @Excel(name = "费用类型", sort = 3) - private String chargeItemEnum_enumText; - - /** - * 单价 - */ - @Excel(name = "单价", sort = 4, scale = 2) - private BigDecimal unitPrice; - - /** - * 数量 - */ - @Excel(name = "数量", sort = 5, scale = 0) - private BigDecimal quantityValue; - - /** - * 金额 - */ - @Excel(name = "金额", sort = 6, scale = 2) - private BigDecimal totalPrice; - - /** - * 执行科室 - */ - private Long orgId; - @Excel(name = "执行科室", sort = 7) - private String orgName; - - /** - * 执行人 - */ - @Excel(name = "执行人", sort = 8) - private String practitioner; - - /** - * 执行日期 - */ - @Excel(name = "执行日期", sort = 9, dateFormat = "yyyy-MM-dd") - private Date recordedTime; - - /** - * 医保类型 - */ - private Integer chrgitmLv; - @Excel(name = "医保类型", sort = 10) - private String chrgitmLv_enumText; - - /** - * 备注 - */ - @Excel(name = "备注", sort = 11) - private String remark; - - /** - * 住院患者id - */ - @JsonSerialize(using = ToStringSerializer.class) - private Long encounterId; - - /** - * 患者id - */ - @JsonSerialize(using = ToStringSerializer.class) - private Long patientId; - /** - * 患者姓名 - */ - private String patientName; - - /** - * 生日 - */ - private Date birthDate; - - /** - * 年龄 - */ - private String age; - - /** - * 性别 - */ - private Integer genderEnum; - private String genderEnum_enumText; - - /** - * 诊断 - */ - private String conditionNames; - /** - * 住院医生 - */ - private String admittingDoctorName; - - /** - * 余额 - */ - private BigDecimal balanceAmount; - - /** - * 住院号 - */ - private String BusNo; - - /** - * 床位名称 - */ - private String bedName; - - /** - * 费别 - */ - private String contractName; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailSearchParam.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailSearchParam.java deleted file mode 100644 index 369aa7fa..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/CostDetailSearchParam.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.openhis.administration.dto; - -import java.util.List; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 费用明细查询条件 - * - * @author swb - * @date 2025-12-15 - */ -@Data -@Accessors(chain = true) -public class CostDetailSearchParam { - /** - * 就诊ID列表 - */ - @JsonSerialize(using = ToStringSerializer.class) - private List encounterIds; - - /** - * 科室ID - */ - @JsonSerialize(using = ToStringSerializer.class) - private Long orgId; - - /** - * 费用类型ID - */ - private String chargeItemEnum; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/TracePatientInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/TracePatientInfoDto.java deleted file mode 100644 index 1f96f390..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/dto/TracePatientInfoDto.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.openhis.administration.dto; - -import java.util.Date; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 药品追溯患者信息Dto - * - * @author swb - * @date 2025-12-15 - */ -@Data -@Accessors(chain = true) -public class TracePatientInfoDto { - /** - * 姓名 - */ - private String name; - - /** - * 性别 - */ - private Integer genderEnum; - private String genderEnum_enumText; - - /** - * 生日 - */ - private Date birthDate; - /** - * 年龄 - */ - private String age; - - /** - * 手机号 - */ - private String phone; - - /** - * 挂号时间 - */ - - private Date registerTime; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ChargeItemMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ChargeItemMapper.java index 25049428..00111913 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ChargeItemMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ChargeItemMapper.java @@ -5,14 +5,10 @@ import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; import com.openhis.administration.domain.ChargeItem; import com.openhis.administration.dto.ChargeItemBaseInfoDto; import com.openhis.administration.dto.ChargeItemDefInfo; -import com.openhis.administration.dto.CostDetailDto; -import com.openhis.administration.dto.CostDetailSearchParam; /** * 费用项管理Mapper接口 @@ -38,22 +34,4 @@ public interface ChargeItemMapper extends BaseMapper { * @return 集合 */ List getChargeItemDefInfoByIds(@Param("chargeItemIds") List chargeItemIds); - - /** - * 查询费用明细 - * - * @param queryWrapper 查询条件 - * @param billable 待结算 - * @param billed 已收费 - * @param refunded 已退费 - * @param active 使用中 - * @param bed 床位 - * @param admittingDoctor 住院医生 - * @param personalCashAccount 个人现金账户 - * @return 费用明细分页列表 - */ - List getCostDetails(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, - @Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded, - @Param("active") Integer active, @Param("bed") Integer bed, @Param("admittingDoctor") String admittingDoctor, - @Param("personalCashAccount") String personalCashAccount); } \ 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 deleted file mode 100644 index 3f7b346e..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/InstrumentMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 627dd007..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/ObservationDefinitionMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 43b4c16d..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/SpecimenDefinitionMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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/mapper/TraceNoManageMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/TraceNoManageMapper.java index fe753da3..f091bf79 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/TraceNoManageMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/mapper/TraceNoManageMapper.java @@ -7,7 +7,6 @@ import org.springframework.stereotype.Repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.openhis.administration.domain.TraceNoManage; -import com.openhis.administration.dto.TracePatientInfoDto; /** * 【追溯码管理】Mapper接口 @@ -29,14 +28,4 @@ public interface TraceNoManageMapper extends BaseMapper { */ List getItemTraceNoInfo(@Param("itemTable") String itemTable, @Param("itemId") Long itemId, @Param("locationId") Long locationId, @Param("lotNumber") String lotNumber); - - /** - * 追溯患者信息 - * - * @param medId 药品定义ID - * @param dispenseStatus 药品发放状态 - * @return 患者信息列表 - */ - List tracePatient(@Param("medId") Long medId, @Param("dispenseStatus") Integer dispenseStatus, - @Param("traceNo") String traceNo); } \ 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 d41506d5..f83a8f96 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 @@ -2,13 +2,10 @@ package com.openhis.administration.service; import java.util.List; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.ChargeItem; import com.openhis.administration.dto.ChargeItemBaseInfoDto; import com.openhis.administration.dto.ChargeItemDefInfo; -import com.openhis.administration.dto.CostDetailDto; -import com.openhis.administration.dto.CostDetailSearchParam; /** * 费用项管理Service接口 @@ -127,36 +124,4 @@ 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); - - /** - * 查询费用明细 - * - * @param queryWrapper 查询条件 - * @param billable 待结算 - * @param billed 已收费 - * @param refunded 已退费 - * @param active 使用中 - * @param bed 床位 - * @param admittingDoctor 住院医生 - * @param personalCashAccount 个人现金账户 - * @return 费用明细分页列表 - */ - List getCostDetails(QueryWrapper queryWrapper, Integer billable, - Integer billed, Integer refunded, Integer active, Integer bed, String admittingDoctor, - String personalCashAccount); } 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 deleted file mode 100644 index 92252309..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IInstrumentService.java +++ /dev/null @@ -1,14 +0,0 @@ -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/IObservationDefinitionService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IObservationDefinitionService.java deleted file mode 100644 index 03bb912c..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IObservationDefinitionService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 85473342..a1c6c97f 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,8 +3,6 @@ package com.openhis.administration.service; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.PatientIdentifier; -import java.util.List; - /** * 患者标识管理Service接口 * @@ -18,7 +16,7 @@ public interface IPatientIdentifierService extends IService { * * @param patientId 患者Id */ - List selectByPatientId(Long patientId); + PatientIdentifier selectByPatientId(Long patientId); /** * 查询病人标识 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java index fed84b4b..cc3f1e98 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java @@ -1,7 +1,9 @@ package com.openhis.administration.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.administration.domain.Encounter; import com.openhis.administration.domain.Patient; +import com.openhis.administration.domain.PatientIdentifier; /** * 患者管理Service接口 @@ -25,4 +27,19 @@ public interface IPatientService extends IService { */ boolean savePatient(Patient patient); + /** + * 添加病人 + * + * @param patient 患者实体 + */ + boolean addPatient(Patient patient); + + /** + * 更新病人 + * + * @param patient 患者实体 + */ + boolean updatePatient(Patient patient); + + } \ No newline at end of file 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 deleted file mode 100644 index 6bbe404a..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/ISpecimenDefinitionService.java +++ /dev/null @@ -1,16 +0,0 @@ -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/EncounterLocationServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/EncounterLocationServiceImpl.java index 02055cbf..0aae96ab 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/ObservationDefinitionServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ObservationDefinitionServiceImpl.java deleted file mode 100644 index b7be7617..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/ObservationDefinitionServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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/PatientIdentifierServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientIdentifierServiceImpl.java index 12299c9c..9bf7c345 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,8 +10,6 @@ import com.openhis.administration.domain.PatientIdentifier; import com.openhis.administration.mapper.PatientIdentifierMapper; import com.openhis.administration.service.IPatientIdentifierService; -import java.util.List; - /** * 患者标识管理Service业务层处理 * @@ -31,11 +29,12 @@ public class PatientIdentifierServiceImpl extends ServiceImpl selectByPatientId(Long patientId) { + public PatientIdentifier selectByPatientId(Long patientId) { // 构造查询条件 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PatientIdentifier::getPatientId, patientId); - return baseMapper.selectList(queryWrapper); + + return baseMapper.selectOne(queryWrapper); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java index 7b139c82..f6caf85f 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java @@ -123,4 +123,51 @@ public class PatientServiceImpl extends ServiceImpl impl return patientExists; } + /** + * 添加病人 + * + * @param patient 患者实体 + */ + @Override + public boolean addPatient(Patient patient) { + Long organizationId = SecurityUtils.getLoginUser().getHospitalId(); + // 设置机构ID + patient.setOrganizationId(organizationId); + // 设置拼音首拼 + patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName())); + // 设置五笔首拼 + patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName())); + // 不存在重复的证件号,新增患者 + if (patient.getIdCard() == null || patient.getIdCard().isEmpty() ||idCardExists(patient) == null) { + // 添加患者 + return baseMapper.insert(patient) > 0; + } + return false; + } + + /** + * 更新病人 + * + * @param patient 患者实体 + */ + @Override + public boolean updatePatient(Patient patient) { + Patient patientExists = idCardExists(patient); + Long organizationId = SecurityUtils.getLoginUser().getHospitalId(); + // 设置机构ID + patient.setOrganizationId(organizationId); + // 设置拼音首拼 + patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName())); + // 设置五笔首拼 + patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName())); + // 根据证件号查询,不存在重复的证件号 + if (patientExists == null) { + // 患者修改了证件号码且不重复,更新患者 + return baseMapper.updateById(patient) > 0; + } else if (patientExists.getId().compareTo(patient.getId()) == 0) { + // 患者未修改证件号码,更新患者 + return baseMapper.updateById(patient) > 0; + } + return false; + } } \ No newline at end of file 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 4252ace0..b0809196 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.core.common.enums.DelFlag; +import com.openhis.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 deleted file mode 100644 index bc550011..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/service/impl/SpecimenDefinitionServiceImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -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/clinical/domain/AllergyIntolerance.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/domain/AllergyIntolerance.java index bc1d2fdd..4e98f4ed 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,19 +82,4 @@ 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 40b8b014..d0f44f58 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,6 +1,7 @@ package com.openhis.clinical.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.openhis.administration.domain.Encounter; import com.openhis.clinical.domain.AllergyIntolerance; /** @@ -11,4 +12,19 @@ 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 2ccf0b57..0e52a285 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,15 +36,14 @@ 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 expectedDate, Date exeDate, - Long groupId, Long refundId); + EventStatus eventStatus, ProcedureCategory procedureCategory, Long locationId, 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 e347ec70..31160c16 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,11 +1,16 @@ 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业务层处理 @@ -17,4 +22,55 @@ import com.openhis.clinical.service.IAllergyIntoleranceService; 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 247e5816..d692412a 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.core.common.enums.DelFlag; +import com.openhis.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 f81d7a34..32edaacb 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.core.common.enums.DelFlag; +import com.openhis.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 72fae0c3..65138da0 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,7 +9,6 @@ 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; @@ -17,6 +16,7 @@ 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,16 +60,15 @@ 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/financial/mapper/PaymentRecDetailMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/financial/mapper/PaymentRecDetailMapper.java index e049d411..e88abe59 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,@Param("kindEnum") Integer kindEnum); + List getListByReconciliationIds(@Param("paymentIdList") List paymentIdList); } \ 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 0e87842e..8be403be 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,Integer kindEnum); + List getListByReconciliationIds(List paymentIdList); } \ No newline at end of file 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 4ba2a89f..daba0620 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.DelFlag; +import com.core.common.enums.DeleteFlag; 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, DelFlag.NO.getCode())); + .eq(Contract::getTenantId, tenantId).eq(Contract::getDeleteFlag, DeleteFlag.NOT_DELETED.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, DelFlag.YES.getCode())); + .set(Contract::getDeleteFlag, DeleteFlag.DELETED.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 c7af6273..3f2bf19a 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,Integer kindEnum) { - return baseMapper.getListByReconciliationIds(paymentIdList,kindEnum); + public List getListByReconciliationIds(List paymentIdList) { + return baseMapper.getListByReconciliationIds(paymentIdList); } } \ No newline at end of file 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 deleted file mode 100644 index 1923feab..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefDeviceDef.java +++ /dev/null @@ -1,61 +0,0 @@ -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 deleted file mode 100644 index da73e551..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefObservationDef.java +++ /dev/null @@ -1,55 +0,0 @@ -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 deleted file mode 100644 index 87a91efa..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/ActivityDefSpecimenDef.java +++ /dev/null @@ -1,59 +0,0 @@ -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 deleted file mode 100644 index 1615ca4f..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Observation.java +++ /dev/null @@ -1,60 +0,0 @@ -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 deleted file mode 100644 index 67140179..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/domain/Specimen.java +++ /dev/null @@ -1,68 +0,0 @@ -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 deleted file mode 100644 index e9139bbe..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefDeviceDefMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 01317de9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefObservationDefMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 382603ac..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ActivityDefSpecimenDefMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 42537c24..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/ObservationMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 5d37bd94..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/mapper/SpecimenMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -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 deleted file mode 100644 index 5f349b4e..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefDeviceDefService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 76e140a9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefObservationDefService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index d5aee671..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IActivityDefSpecimenDefService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 1fe4b354..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/IObservationService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 4dc18b2e..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/ISpecimenService.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 2f952ca0..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefDeviceDefServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 12082ea9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefObservationDefServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 800babf9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ActivityDefSpecimenDefServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 02ae1898..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/ObservationServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 2133b755..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/lab/service/impl/SpecimenServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -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/MedicationRequestServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/medication/service/impl/MedicationRequestServiceImpl.java index 354158d2..1930ba28 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.core.common.enums.DelFlag; +import com.openhis.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/template/domain/EncounterAutoRoll.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/EncounterAutoRoll.java deleted file mode 100644 index 41124047..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/domain/EncounterAutoRoll.java +++ /dev/null @@ -1,58 +0,0 @@ -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 deleted file mode 100644 index ab6533db..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/mapper/EncounterAutoRollMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * 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 deleted file mode 100644 index 8ad69e2b..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/IEncounterAutoRollService.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * 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 deleted file mode 100644 index d98a5cb2..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/template/service/impl/EncounterAutoRollServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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/ISupplyRequestService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java index acc17337..585f972e 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/ISupplyRequestService.java @@ -25,14 +25,6 @@ public interface ISupplyRequestService extends IService { */ List getSupplyByBusNo(String busNo); - /** - * 通过单据号批量查询单据信息 - * - * @param busNoList 单据号 - * @return 单据信息 - */ - List getSupplyByBusNoBatch(List busNoList); - /** * 通过原始单据号查询单据信息 * 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 8b1cfbe3..17b4dc15 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 @@ -12,10 +12,9 @@ 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.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; @@ -71,7 +70,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.getCode()) + .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()) .eq(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()); if (locationId != null) { queryWrapper.eq(InventoryItem::getLocationId, locationId); @@ -91,7 +90,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.getCode()) + .eq(InventoryItem::getTenantId, tenantId).eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()) .eq(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()); // 查询取库房信息 return baseMapper.selectList(queryWrapper); @@ -105,7 +104,7 @@ public class InventoryItemServiceImpl extends ServiceImpl selectAllInventory() { LambdaQueryWrapper queryWrapper = - new LambdaQueryWrapper().eq(InventoryItem::getDeleteFlag, DelFlag.NO.getCode()); + new LambdaQueryWrapper().eq(InventoryItem::getDeleteFlag, DelFlag.NO.getValue()); // 查询取库房信息 return baseMapper.selectList(queryWrapper); } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestAutoServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestAutoServiceImpl.java index 440c0a6b..08e6c043 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestAutoServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/workflow/service/impl/SupplyRequestAutoServiceImpl.java @@ -1,11 +1,24 @@ package com.openhis.workflow.service.impl; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + import com.openhis.workflow.domain.SupplyRequestAuto; import com.openhis.workflow.mapper.SupplyRequestAutoMapper; import com.openhis.workflow.service.ISupplyRequestAutoService; 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.utils.DateUtils; +import com.core.common.utils.SecurityUtils; +import com.openhis.common.enums.DelFlag; +import com.openhis.common.enums.SupplyStatus; +import com.openhis.workflow.domain.SupplyRequest; +import com.openhis.workflow.mapper.SupplyRequestMapper; +import com.openhis.workflow.service.ISupplyRequestService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientFeeDetail.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientFeeDetail.java index 89e272b3..2a7aeccd 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientFeeDetail.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientFeeDetail.java @@ -218,7 +218,7 @@ public class InpatientFeeDetail extends HisBaseEntity implements Serializable { /** * 关联就诊id */ - private Long encounterId; + private String encounterId; private String inputParam; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientReg.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientReg.java index 078e06b3..6bf53db0 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientReg.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/domain/InpatientReg.java @@ -259,9 +259,4 @@ public class InpatientReg extends HisBaseEntity implements Serializable { private String inputParam; private String outputResult; - - /** - * 状态 - */ - private Integer status; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/BaseInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/BaseInfo.java index 3be9fb3a..56c5ec8d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/BaseInfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/BaseInfo.java @@ -17,8 +17,6 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class BaseInfo { - /** 文件相对路径 */ - private String filePath; /******************医保机构信息******************/ diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/FileResult.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/FileResult.java index e6a8d4d1..be5b7e3d 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/FileResult.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/FileResult.java @@ -34,13 +34,6 @@ public class FileResult { @JSONField(serialize=false) private byte[] fileData; - // 文件相对路径 - private String filePath; - // 医药机构编号 private String fixmedinsCode; - - // 文件数据 - @JSONField(serialize=false) - private String errMsg; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3511Param.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3511Param.java index e98a6916..10ee9044 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3511Param.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3511Param.java @@ -10,7 +10,6 @@ import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import org.springframework.format.annotation.DateTimeFormat; /** * 【3511】 @@ -43,15 +42,13 @@ public class MedicalInventory3511Param { /** * 开始日期 类型:日期型,格式yyyy-MM-dd,必填项 */ - @JSONField(name = "begndate") - @DateTimeFormat(pattern = "yyyy-MM-dd") + @JSONField(name = "begndate", format = "yyyy-MM-dd") private Date begndate; /** * 结束日期 类型:日期型,格式yyyy-MM-dd,必填项 */ - @JSONField(name = "enddate") - @DateTimeFormat(pattern = "yyyy-MM-dd") + @JSONField(name = "enddate", format = "yyyy-MM-dd") private Date enddate; /** diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Output.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Output.java deleted file mode 100644 index 3930386f..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Output.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.openhis.yb.dto; - -import com.alibaba.fastjson2.annotation.JSONField; -import lombok.Data; - -@Data -public class MedicalInventory3512Output { - - /** - * 定点医药机构编号 - */ - @JSONField(name ="fixmedinsCode") - private String fixmedinsCode; - - /** - * 医药机构目录编码 - */ - @JSONField(name ="medinsListCodg") - private String medinsListCodg; - - /** - * 定点医药机构批次流水号 - */ - @JSONField(name ="fixmedinsBchno") - private String fixmedinsBchno; - - /** - * 医疗目录编码 - */ - @JSONField(name ="medListCodg") - private String medListCodg; - - /** - * 医药机构目录名称 - */ - @JSONField(name ="medinsListName") - private String medinsListName; - - /** - * 药品追溯码 - */ - @JSONField(name ="drugTracCodg") - private String drugTracCodg; - - /** - * 有效标志 - */ - @JSONField(name ="valiFlag") - private String valiFlag; - - /** - * 经办人ID - */ - @JSONField(name ="opterId") - private String opterId; - - /** - * 创建人姓名 - */ - @JSONField(name ="crterName") - private String crterName; - - /** - * 创建人ID - */ - @JSONField(name ="crterId") - private String crterId; - - /** - * 经办机构编号 - */ - @JSONField(name ="optinsNo") - private String optinsNo; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Param.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Param.java deleted file mode 100644 index 34bb5ac5..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3512Param.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.openhis.yb.dto; - -import com.alibaba.fastjson2.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; - -@Data -public class MedicalInventory3512Param { - - /** - * 定点医药机构编号 - */ - @JSONField(name = "fixmedins_code") - private String fixmedinsCode; - - /** - * 医药机构目录编码 - */ - @JSONField(name ="medins_list_codg") - private String medinsListCodg; - - /** - * 定点医药机构批次流水号 - */ - @JSONField(name ="fixmedins_bchno") - private String fixmedinsBchno; - - /** - * 开始日期 - */ - @JSONField(name ="begndate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date begndate; - - /** - * 结束日期 - */ - @JSONField(name ="enddate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date enddate; - - /** - * 医疗目录编码 - */ - @JSONField(name ="med_list_codg") - private String medListCodg; - - /** - * 药品追溯码 - */ - @JSONField(name ="drug_trac_codg") - private String drugTracCodg; - - -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Output.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Output.java deleted file mode 100644 index 7e50c6c9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Output.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.openhis.yb.dto; - -import com.alibaba.fastjson2.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; - -import java.util.Date; - -@Data -public class MedicalInventory3513Output { - - /** - * 定点医药机构编号 - */ - @JSONField(name ="fixmedinsCode") - private String fixmedinsCode; - - /** - * 医疗目录编码 - */ - @JSONField(name ="medListCodg") - private String medListCodg; - - /** - * 医药机构目录编码 - */ - @JSONField(name ="medinsListCodg") - private String medinsListCodg; - - /** - * 医药机构目录名称 - */ - @JSONField(name ="medinsListName") - private String medinsListName; - - /** - * 定点医药机构批次流水号 - */ - @JSONField(name ="fixmedinsBchno") - private String fixmedinsBchno; - - /** - * 就诊ID - */ - @JSONField(name ="mdtrtId") - private String mdtrtId; - - /** - * 就诊结算类型 - */ - @JSONField(name ="mdtrtSetlType") - private String mdtrtSetlType; - - /** - * 记账流水号 - */ - @JSONField(name ="bkkpSn") - private String bkkpSn; - - /** - * 药品追溯码 - */ - @JSONField(name ="drugTracCodg") - private String drugTracCodg; - - /** - * 人员编号 - */ - @JSONField(name ="psnNo") - private String psnNo; - - /** - * 人员证件类型 - */ - @JSONField(name ="psnCertType") - private String psnCertType; - - /** - * 证件号码 - */ - @JSONField(name ="certno") - private String certno; - - /** - * 人员姓名 - */ - @JSONField(name ="psnName") - private String psnName; - - /** - * 备注 - */ - @JSONField(name ="memo") - private String memo; - - /** - * 拆零标志 - */ - @JSONField(name ="trdnFlag") - private String trdnFlag; - - /** - * 数据更新时间 - */ - @JSONField(name ="updtTime") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updtTime; - - /** - * 经办人姓名 - */ - @JSONField(name ="opterName") - private String opterName; - - /** - * 数据唯一记录号 - */ - @JSONField(name ="rid") - private String rid; - - /** - * 数据创建时间 - */ - @JSONField(name ="crteTime") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date crteTime; - - /** - * 经办时间 - */ - @JSONField(name ="optTime") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date optTime; - - /** - * 经办人ID - */ - @JSONField(name ="opterId") - private String opterId; - - /** - * 创建人姓名 - */ - @JSONField(name ="crterName") - private String crterName; - - /** - * 创建人ID - */ - @JSONField(name ="crterId") - private String crterId; - - /** - * 经办机构编号 - */ - @JSONField(name ="optinsNo") - private String optinsNo; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Param.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Param.java deleted file mode 100644 index a83de2e1..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/MedicalInventory3513Param.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.openhis.yb.dto; - -import com.alibaba.fastjson2.annotation.JSONField; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; - -@Data -public class MedicalInventory3513Param { - - /** - * 定点医药机构编号 - */ - @JSONField(name ="fixmedins_code") - private String fixmedinsCode; - - /** - * 医药机构目录编码 - */ - @JSONField(name ="medins_list_codg") - private String medinsListCodg; - - /** - * 定点医药机构批次流水号 - */ - @JSONField(name ="fixmedins_bchno") - private String fixmedinsBchno; - - /** - * 开始日期 - */ - @JSONField(name ="begndate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date begndate; - - /** - * 结束日期 - */ - @JSONField(name ="enddate") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date enddate; - - /** - * 医疗目录编码 - */ - @JSONField(name ="med_list_codg") - private String medListCodg; - - /** - * 就诊ID - */ - @JSONField(name ="mdtrt_id") - private String mdtrtId; - - /** - * 人员编号 - */ - @JSONField(name ="psn_no") - private String psnNo; - - /** - * 人员证件类型 - */ - @JSONField(name ="psn_cert_type") - private String psnCertType; - - /** - * 证件号码 - */ - @JSONField(name ="certno") - private String certno; - - /** - * 人员姓名 - */ - @JSONField(name ="psn_name") - private String psnName; - - /** - * 药品追溯码 - */ - @JSONField(name ="drug_trac_codg") - private String drugTracCodg; -} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/PatientInfoDto.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/PatientInfoDto.java index 96aadcfa..83836218 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/PatientInfoDto.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/PatientInfoDto.java @@ -1,7 +1,6 @@ package com.openhis.yb.dto; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -51,24 +50,6 @@ public class PatientInfoDto { /** 五笔码 */ private String wbStr; - //出生日期 - private Date brdy; - //年龄 - private Double age; - //参保地医保区划 - private String insuplcAdmdvs; - //险种类型 - private String insutype; - //余额 - private String balc; - //人员类别 - @TableField(exist = false) - private String psnType; - - //人员参保状态 - @TableField(exist = false) - private String psnInsuStas; - /** 机构Id */ private Long organizationId; diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2401InputInpatientDiseInfo.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2401InputInpatientDiseInfo.java index d8bfd848..77f617c3 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2401InputInpatientDiseInfo.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2401InputInpatientDiseInfo.java @@ -4,8 +4,6 @@ package com.openhis.yb.dto; import com.alibaba.fastjson2.annotation.JSONField; -import lombok.Data; -import lombok.experimental.Accessors; import java.util.Date; @@ -15,8 +13,6 @@ import java.util.Date; * @author SunJQ * @date 2025-07-29 */ -@Data -@Accessors(chain = true) public class Yb2401InputInpatientDiseInfo { /** * 人员编号 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2402InputParam.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2402InputParam.java index 5b6ee774..191c91bb 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2402InputParam.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2402InputParam.java @@ -18,9 +18,9 @@ public class Yb2402InputParam { /** * 出院诊断 */ - List diseinfo; + List yb2402InputInpatientDiseInfo; /** * 出院信息 */ - Yb2402InputInpatientDscgInfo dscginfo; + Yb2402InputInpatientDscgInfo yb2402InputInpatientDscgInfo; } 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 e847b5a3..b018a616 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,10 +33,4 @@ 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 deleted file mode 100644 index 0a31001c..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb2601InputParam.java +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100644 index 9d789a2d..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputData.java +++ /dev/null @@ -1,46 +0,0 @@ -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 deleted file mode 100644 index ca55bb30..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101AInputIteminfo.java +++ /dev/null @@ -1,61 +0,0 @@ -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 c988e688..0701ae4b 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,13 +45,6 @@ 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 deleted file mode 100644 index 6a652c7c..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputData.java +++ /dev/null @@ -1,46 +0,0 @@ -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 deleted file mode 100644 index 881ba38b..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputDiseinfo.java +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index a01fcc7d..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIcuinfo.java +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 92f69c13..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputIteminfo.java +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index d9bdbc8b..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOprninfo.java +++ /dev/null @@ -1,37 +0,0 @@ -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 deleted file mode 100644 index 7b8a6230..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputOpspdiseinfo.java +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 0e04650f..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputPayinfo.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 56543d71..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4101InputSetlinfo.java +++ /dev/null @@ -1,256 +0,0 @@ -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 deleted file mode 100644 index d193cea9..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4102InputStastInfo.java +++ /dev/null @@ -1,23 +0,0 @@ -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 deleted file mode 100644 index 112492e8..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4104InputDto.java +++ /dev/null @@ -1,49 +0,0 @@ -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 deleted file mode 100644 index b5f9c797..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputBaseInfoDto.java +++ /dev/null @@ -1,695 +0,0 @@ -/* - * 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 deleted file mode 100644 index e62921ad..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDiseInfoDto.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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 deleted file mode 100644 index 0c5d5b1f..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputDto.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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 deleted file mode 100644 index e9bdb002..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputIcuInfoDto.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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 deleted file mode 100644 index 4ed4097e..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/dto/Yb4401InputOprnInfoDto.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * 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 deleted file mode 100644 index cd36d3b3..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/mapper/InpatientPreSettleMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -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 43676fb4..6baffce4 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,7 +6,6 @@ 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; /** @@ -17,6 +16,4 @@ 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/IInpatientFeeDetailService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientFeeDetailService.java index 0c7c21b2..80bee252 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,13 +4,5 @@ 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 deleted file mode 100644 index 63b241b0..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/IInpatientPreSettleService.java +++ /dev/null @@ -1,11 +0,0 @@ -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 7045465d..79d69e5a 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,18 +22,4 @@ 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 621686d2..58545a98 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,24 +1,14 @@ 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/impl/ClinicUnSettleServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/ClinicUnSettleServiceImpl.java index 2bf0b58d..933831a2 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.core.common.enums.DelFlag; +import com.openhis.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/InpatientFeeDetailServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientFeeDetailServiceImpl.java index dd2a71ae..88ac2528 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,18 +1,11 @@ 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 deleted file mode 100644 index f6971c7e..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/yb/service/impl/InpatientPreSettleServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -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 a0d9db0c..0ba8e4e8 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.core.common.enums.DelFlag; +import com.openhis.common.enums.DelFlag; import com.openhis.yb.domain.InpatientReg; import com.openhis.yb.mapper.InpatientRegMapper; import com.openhis.yb.service.IInpatientRegService; @@ -26,15 +26,4 @@ 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 2b613af5..3646a739 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,30 +1,18 @@ 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.core.common.enums.DelFlag; +import com.openhis.common.enums.Whether; 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, 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())); + return baseMapper.selectOne(new LambdaQueryWrapper().eq(InpatientSettle::getSetlId,ybSettleIds).eq(InpatientSettle::getDeleteFlag, Whether.NO.getValue()).last(YbCommonConstants.sqlConst.LIMIT1)); } } 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 539ca6a7..667b3467 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,9 +271,8 @@ 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; @@ -2370,9 +2369,6 @@ 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 480c97f8..c4f61d04 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,7 +8,6 @@ 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; @@ -27,391 +26,294 @@ 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 432de918..ee71a46b 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,7 +8,6 @@ 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; @@ -27,287 +26,216 @@ 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 89fb69ac..a3b6147d 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,7 +8,6 @@ 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; @@ -27,135 +26,96 @@ 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 179ba391..e09a5cd3 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,7 +8,6 @@ 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; @@ -27,83 +26,63 @@ 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 efeed1f7..08881c0d 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,9 +1,6 @@ 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; @@ -14,37 +11,20 @@ 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 4ce61ceb..951b21a8 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,7 +8,6 @@ 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; @@ -27,99 +26,69 @@ 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 28acdd24..98d89df3 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,7 +8,6 @@ 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; @@ -27,91 +26,69 @@ 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 ed255e8e..33087520 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,7 +8,6 @@ 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; @@ -27,51 +26,39 @@ 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 25fa4bce..97fa7a00 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,7 +8,6 @@ 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; @@ -27,59 +26,39 @@ 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 0b4c6645..16c6a8a9 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,6 +1,5 @@ package com.openhis.ybcatalog.mapper; -import com.openhis.ybcatalog.domain.CatalogSpecialDisease; import org.springframework.stereotype.Repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -13,6 +12,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 deleted file mode 100644 index 8a623d8b..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/mapper/CatalogSpecialInsuranceDiseaseMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -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 565e982c..5c986199 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,9 +16,6 @@ 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 261410c1..77b9a399 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalConsumables; /** @@ -11,5 +10,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 0f5a9851..ee5f75cc 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalHerbInfo; /** @@ -11,5 +10,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 a8c8926d..d71c2dff 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogMedicalService; /** @@ -11,5 +10,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 eaa6ffa1..a901a3e4 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,8 +1,6 @@ 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; /** @@ -11,6 +9,6 @@ import com.openhis.ybcatalog.domain.CatalogSpecialInsuranceDisease; * @author system * @date 2025-04-09 */ -public interface ICatalogSpecialDiseaseService extends IService { - CatalogSpecialDisease getByYbNo(String medicalCatalogCode, String version); +public interface ICatalogSpecialDiseaseService extends IService { + } \ 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 deleted file mode 100644 index 5d3a7e5c..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/ICatalogSpecialInsuranceDiseaseService.java +++ /dev/null @@ -1,9 +0,0 @@ -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 6eec882d..895c4492 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogSurgeryStandardDirectory; /** @@ -11,5 +10,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 679a7bc4..9665f44a 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogWesternDisease; /** @@ -11,5 +10,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 f591b7fc..6708fb82 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogZyDiseaseDiagnosis; /** @@ -11,5 +10,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 389a766d..19a6a2df 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,7 +1,6 @@ package com.openhis.ybcatalog.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.openhis.ybcatalog.domain.CatalogDrugInfo; import com.openhis.ybcatalog.domain.CatalogZySyndrome; /** @@ -11,5 +10,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 50902adb..343dd4ce 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,7 +3,6 @@ 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; @@ -29,8 +28,4 @@ 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 fdf27541..ccaaad58 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 cc6796d0..d480d0ba 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 dae9b8a1..d00089c9 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 aa553165..87e5f6eb 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,9 +1,5 @@ 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; @@ -19,8 +15,6 @@ import com.openhis.ybcatalog.service.ICatalogSpecialDiseaseService; */ @Service public class CatalogSpecialDiseaseServiceImpl extends - 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)); - } + ServiceImpl implements ICatalogSpecialDiseaseService { + } \ 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 deleted file mode 100644 index 310164cf..00000000 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/ybcatalog/service/impl/CatalogSpecialInsuranceDiseaseServiceImpl.java +++ /dev/null @@ -1,17 +0,0 @@ -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 10610ad5..46bf5e8f 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 0d5482a8..47f3448f 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 b4627b02..e62f8b59 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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 75f2c920..ab75747f 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,8 +1,5 @@ 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; @@ -18,7 +15,5 @@ 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/ChargeItemMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ChargeItemMapper.xml index 6752dde5..78fabb21 100644 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ChargeItemMapper.xml +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ChargeItemMapper.xml @@ -164,8 +164,6 @@ T1.create_by, T1.update_time, T1.update_by, - T1.system_discount_price, - T1.manual_adjusted_price, T2.charge_name, T2.title, T2.status_enum, @@ -190,164 +188,4 @@ AND T1.delete_flag = '0' - - - \ 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 deleted file mode 100644 index 06ef4df6..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ObservationDefinitionMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index f3773627..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/SpecimenDefinitionMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/TraceNoManageMapper.xml b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/TraceNoManageMapper.xml index dd415054..f5c3d077 100644 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/TraceNoManageMapper.xml +++ b/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/TraceNoManageMapper.xml @@ -15,16 +15,17 @@ AND item_id = #{itemId} AND location_id = #{locationId} AND lot_number = #{lotNumber} - AND (trace_no) IN (SELECT trace_no - FROM adm_trace_no_manage - WHERE item_table = #{itemTable} - AND item_id = #{itemId} - AND location_id = #{locationId} - AND lot_number = #{lotNumber} - AND delete_flag = '0' - GROUP BY trace_no - HAVING SUM(CASE WHEN status_enum = 1 THEN 1 ELSE 0 END) > -- 进库次数 - SUM(CASE WHEN status_enum = 2 THEN 1 ELSE 0 END) -- 出库次数 + AND (trace_no) IN ( + SELECT trace_no + FROM adm_trace_no_manage + WHERE item_table = #{itemTable} + AND item_id = #{itemId} + AND location_id = #{locationId} + AND lot_number = #{lotNumber} + AND delete_flag = '0' + GROUP BY trace_no + HAVING SUM(CASE WHEN status_enum = 1 THEN 1 ELSE 0 END) > -- 进库次数 + SUM(CASE WHEN status_enum = 2 THEN 1 ELSE 0 END) -- 出库次数 ) AND delete_flag = '0' GROUP BY item_table, @@ -33,22 +34,4 @@ lot_number, trace_no - - \ 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 ed98a1e2..a5c5ae2c 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,20 +4,4 @@ "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 a7b91206..de898048 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,14 +40,13 @@ 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 T3.kind_enum = #{kindEnum} + AND T1.delete_flag = '0' 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 deleted file mode 100644 index 75dd4a91..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefDeviceDefMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index 779ea708..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefObservationDefMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index 252b32c6..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ActivityDefSpecimenDefMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index c18cec64..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/ObservationMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index d80d461a..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/lab/SpecimenMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index f155920f..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/template/EncounterAutoRollMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index a144804b..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientDischargeMapper.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ 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 deleted file mode 100644 index f2844361..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientFeeDetailMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index df32e559..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientPreSettleMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index 88dc4020..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegInfoUpdateRecordeMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 deleted file mode 100644 index 7bcac503..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientRegMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - \ 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 deleted file mode 100644 index 15937ace..00000000 --- a/openhis-server-new/openhis-domain/src/main/resources/mapper/yb/InpatientSettleMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ 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 7b251573..6f22ccc7 100644 --- a/openhis-server-new/openhis-miniapp/pom.xml +++ b/openhis-server-new/openhis-miniapp/pom.xml @@ -21,7 +21,6 @@ com.openhis openhis-domain - 0.0.1-SNAPSHOT @@ -31,7 +30,6 @@ org.springframework.boot spring-boot-maven-plugin - 2.5.15 true @@ -46,20 +44,12 @@ org.apache.maven.plugins maven-war-plugin - 3.1.0 + ${maven-war-plugin.version} 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 deleted file mode 100644 index 08547d6d..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/java/com/openhis/OpenHisMiniApp.java +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index 37e7b580..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/META-INF/spring-devtools.properties +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index aedc7639..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/application-druid.yml +++ /dev/null @@ -1,61 +0,0 @@ -# 数据源配置 -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 deleted file mode 100644 index f07ee76f..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/application.yml +++ /dev/null @@ -1,149 +0,0 @@ -# 项目相关配置 -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 deleted file mode 100644 index 2e99e749..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/banner.txt +++ /dev/null @@ -1,10 +0,0 @@ - - :::::::: ::::::::: :::::::::: :::: ::: ::: ::: ::::::::::: :::::::: ::: ::: ::::::::::: :::: ::: ::::::::::: ::: ::::::::: ::::::::: - :+: :+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+:+: :+:+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+: :+: - +:+ +:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ - +#+ +:+ +#++:++#+ +#++:++# +#+ +:+ +#+ +#++:++#++ +#+ +#++:++#++ +#+ +:+ +#+ +#+ +#+ +:+ +#+ +#+ +#++:++#++: +#++:++#+ +#++:++#+ - +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+ +#+ -#+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# -######## ### ########## ### #### ### ### ########### ######## ### ### ########### ### #### ########### ### ### ### ### - -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 deleted file mode 100644 index 4550ad81..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/i18n/messages.properties +++ /dev/null @@ -1,46 +0,0 @@ -#错误消息 -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 deleted file mode 100644 index bc63c109..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/logback.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - ${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 deleted file mode 100644 index c39d4382..00000000 --- a/openhis-server-new/openhis-miniapp/src/main/resources/mybatis/mybatis-config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/openhis-server-new/pom.xml b/openhis-server-new/pom.xml index e43646fb..cd3f8d96 100644 --- a/openhis-server-new/pom.xml +++ b/openhis-server-new/pom.xml @@ -4,6 +4,13 @@ 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 @@ -19,13 +26,11 @@ 17 3.13.0 3.1.1 - 2.5.15 - 1.2.23 + 1.2.27 1.21 3.0.0 2.3.3 1.4.7 - 2.0.53 6.6.5 2.13.0 4.1.2 @@ -34,12 +39,22 @@ 9.0.96 1.2.13 - 5.7.12 - 5.3.39 1.18.42 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 @@ -220,68 +235,6 @@ ${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} - @@ -345,13 +298,6 @@ ${velocity.version} - - - com.alibaba.fastjson2 - fastjson2 - ${fastjson.version} - - io.jsonwebtoken @@ -366,14 +312,6 @@ ${kaptcha.version} - - - io.swagger - swagger-annotations - 1.5.21 - compile - - org.flowable @@ -381,13 +319,6 @@ ${flowable.version} - - - com.googlecode.aviator - aviator - 5.3.3 - - org.postgresql postgresql @@ -402,7 +333,6 @@ openhis-application openhis-domain openhis-common - core-admin core-framework core-system @@ -410,6 +340,7 @@ core-generator core-common core-flowable + openhis-einvoiceapp pom @@ -418,10 +349,10 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + ${maven-compiler-plugin.version} - 17 - 17 + ${java.version} + ${java.version} ${project.build.sourceEncoding} diff --git a/openhis-ui-vue3/.gitignore b/openhis-ui-vue3/.gitignore index 78a752d8..b4d19a6f 100644 --- a/openhis-ui-vue3/.gitignore +++ b/openhis-ui-vue3/.gitignore @@ -21,3 +21,4 @@ selenium-debug.log package-lock.json yarn.lock +vite.config.js diff --git a/openhis-ui-vue3/HospitalRecordForm.vue b/openhis-ui-vue3/HospitalRecordForm.vue new file mode 100644 index 00000000..66fbfcad --- /dev/null +++ b/openhis-ui-vue3/HospitalRecordForm.vue @@ -0,0 +1,116 @@ + +// 表单数据 +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/src/action/nurseStation/temperatureSheet/ViewConfig.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/ViewConfig.js index 9c67a233..147bdc8f 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/ViewConfig.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/ViewConfig.js @@ -1,4 +1,4 @@ -import { bodyTemperature, TOP_KEYS, HEAD_HEIGHT, LINE_HEIGHT } from './config'; +import { bodyTemperature, TOP_KEYS, HEAD_HEIGHT, LINE_HEIGHT } from './config' export default class viewConfig { constructor({ @@ -12,44 +12,47 @@ export default class viewConfig { strokeWidth = 2, // stroke width of line and dots strokeLinecap = 'round', // stroke line cap of line strokeLinejoin = 'round', // stroke line join of line - renderData, + renderData } = {}) { // 基础配置赋值 - this.width = width; - this.height = height; - this.stroke = stroke; - this.strokeWidth = strokeWidth; - this.strokeLinecap = strokeLinecap; - this.renderData = renderData; - this.strokeLinejoin = strokeLinejoin; - this.marginRight = marginRight; - this.marginLeft = marginLeft; - this.marginBottom = marginBottom; - this.marginTop = marginTop; + this.width = width + this.height = height + this.stroke = stroke + this.strokeWidth = strokeWidth + this.strokeLinecap = strokeLinecap + this.renderData = renderData + this.strokeLinejoin = strokeLinejoin + this.marginRight = marginRight + this.marginLeft = marginLeft + this.marginBottom = marginBottom + this.marginTop = marginTop // 计算属性赋值 - this.contentWidth = width - marginLeft - marginRight; - this.step = this.contentWidth / 8; - this.bottomPos = height - HEAD_HEIGHT - marginTop - (marginBottom - 30); // 底部坐标,30是因为默认的30,忘记计算了,后续的按照30的偏移量计算 - this.tableHeight = height - marginBottom - HEAD_HEIGHT; - const { micoStep, verticalHeight } = this.utilsGetMicoPos(this.step, this.bottomPos); - this.micoStep = micoStep; - this.verticalHeight = verticalHeight; - this.X_OFFSET = micoStep / 2; // 为了让图标在小格子居中展示,需要进行一个偏移 - this.xRange = [this.step, width - marginLeft - marginRight]; // [60, 860] - this.topPos = marginTop + HEAD_HEIGHT; - this.topKeysPos = LINE_HEIGHT * (TOP_KEYS.length + 1); // 1 是时间那一行 - this.bottomKeysPosStart = this.topKeysPos + verticalHeight + 20; - this.yRange = [this.bottomKeysPosStart - 20, this.topKeysPos]; + this.contentWidth = width - marginLeft - marginRight + this.step = this.contentWidth / 8 + this.bottomPos = height - HEAD_HEIGHT - marginTop - (marginBottom - 30) // 底部坐标,30是因为默认的30,忘记计算了,后续的按照30的偏移量计算 + this.tableHeight = height - marginBottom - HEAD_HEIGHT + const { micoStep, verticalHeight } = this.utilsGetMicoPos( + this.step, + this.bottomPos + ) + this.micoStep = micoStep + this.verticalHeight = verticalHeight + this.X_OFFSET = micoStep / 2 // 为了让图标在小格子居中展示,需要进行一个偏移 + this.xRange = [this.step, width - marginLeft - marginRight] // [60, 860] + this.topPos = marginTop + HEAD_HEIGHT + this.topKeysPos = LINE_HEIGHT * (TOP_KEYS.length + 1) // 1 是时间那一行 + this.bottomKeysPosStart = this.topKeysPos + verticalHeight + 20 + this.yRange = [this.bottomKeysPosStart - 20, this.topKeysPos] } // 获取折线区域的高度 utilsGetMicoPos(step, botpos) { - const micoStep = (step * 7) / 42; // 折线小格子的宽度 - const verticalLength = bodyTemperature[1] - bodyTemperature[0]; // 根据体温来计算格子 - const verticalHeight = micoStep * 5 * verticalLength; + const micoStep = (step * 7) / 42 // 折线小格子的宽度 + const verticalLength = bodyTemperature[1] - bodyTemperature[0] // 根据体温来计算格子 + const verticalHeight = micoStep * 5 * verticalLength return { micoStep, - verticalHeight, - }; + verticalHeight + } } } diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/config.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/config.js index 6b6f65b6..87615efb 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/config.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/config.js @@ -1,215 +1,271 @@ -import dayjs from 'dayjs'; +import dayjs from 'dayjs' import { HospitalName, temperatureName, showPainFlag, getInfoKeys, - getBottomKeys, -} from './template'; + getBottomKeys +} from './template' // 存放体温单的配置信息 export const Header = { HospitalName, - temperatureName, -}; + temperatureName +} // 患者信息 -export const INFO_KEYS = getInfoKeys(); +export const INFO_KEYS = getInfoKeys() // 头部信息标签 export const TOP_KEYS = [ + //{ + // name: '患病日数', + // getValue: (i, renderData) => { + // const { beginDate, hospDays, outdate = '', dateClosed } = renderData.infoData + // const tieml = new Date() + // const timeNew = new Date((tieml / 1000 + 86400) * 1000) + // const todayDate = dayjs(timeNew).format('YYYY-MM-DD') + // const endDate = dayjs(outdate).add(1, 'day').format('YYYY-MM-DD') + // const eachTime = dayjs(beginDate) + // .add(i, 'day') + // .format('YYYY-MM-DD') + // if (eachTime === endDate || todayDate === eachTime) { + // dateClosed.stopNumber = true + // } + // return dateClosed.stopNumber ? hospDays + i + 1 : '' + // } + //}, { name: '日 期', getValue: (i, renderData) => { - const { beginDate, outdate = '', hospDate = '', dateClosed } = renderData.infoData; - const tieml = new Date(); - const timeNew = new Date((tieml / 1000 + 86400) * 1000); - const todayDate = dayjs(timeNew).format('YYYY-MM-DD'); - const endDate = dayjs(outdate).format('YYYY-MM-DD'); - const startDate = dayjs(hospDate).format('YYYY-MM-DD'); - let eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD'); + const { beginDate, outdate = '', hospDate = '', dateClosed } = renderData.infoData + const tieml = new Date() + const timeNew = new Date((tieml / 1000 + 86400) * 1000) + const todayDate = dayjs(timeNew).format('YYYY-MM-DD') + const endDate = dayjs(outdate).format('YYYY-MM-DD') + const startDate = dayjs(hospDate).format('YYYY-MM-DD') + let eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD') if (eachTime === endDate || eachTime === todayDate) { - dateClosed.stopTime = true; + dateClosed.stopTime = true } if ((startDate === eachTime && i === 0) || dayjs(eachTime).format('MM-DD') === '01-01') { - eachTime = dayjs(eachTime).format('YYYY年MM月DD日'); + eachTime = dayjs(eachTime).format('YYYY年MM月DD日') } else if (i === 0 || dayjs(eachTime).format('DD') === '01') { - eachTime = dayjs(eachTime).format('MM月DD日'); + eachTime = dayjs(eachTime).format('MM月DD日') } else { - eachTime = dayjs(eachTime).format('DD日'); + eachTime = dayjs(eachTime).format('DD日') } - return dateClosed.stopTime ? eachTime : ''; - }, + return dateClosed.stopTime ? eachTime : '' + } }, { name: '住院日数', getValue: (i, renderData) => { - const { beginDate, hospDays, outdate = '', dateClosed } = renderData.infoData; - const tieml = new Date(); - const timeNew = new Date((tieml / 1000 + 86400) * 1000); - const todayDate = dayjs(timeNew).format('YYYY-MM-DD'); - const endDate = dayjs(outdate).add(1, 'day').format('YYYY-MM-DD'); - const eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD'); + const { beginDate, hospDays, outdate = '', dateClosed } = renderData.infoData + const tieml = new Date() + const timeNew = new Date((tieml / 1000 + 86400) * 1000) + const todayDate = dayjs(timeNew).format('YYYY-MM-DD') + const endDate = dayjs(outdate).add(1, 'day').format('YYYY-MM-DD') + const eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD') if (eachTime === endDate || todayDate === eachTime) { - dateClosed.stopNumber = false; + dateClosed.stopNumber = false } - const num = dateClosed.stopNumber ? hospDays + i + 1 : ''; - let hosNum = ''; + const num = dateClosed.stopNumber ? hospDays + i + 1 : '' + let hosNum = '' if (num !== '') { - hosNum = '第' + '\xa0\xa0\xa0' + num + '\xa0\xa0\xa0' + '日'; + hosNum = '第' + "\xa0\xa0\xa0" + num + "\xa0\xa0\xa0" + '日' } else { - hosNum = '第' + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' + '日'; + hosNum = '第' + "\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0" + '日' } - return hosNum; - }, + return hosNum + } }, { name: '术/娩后日数', getValue: (i, renderData) => { - const { beginDate } = renderData.infoData; - const surgeryNumDays = renderData.surgeryNumDays; - const eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD'); - let num = surgeryNumDays.filter((item) => item.date === eachTime); - let hosNum = ''; + const { beginDate } = renderData.infoData + const surgeryNumDays = renderData.surgeryNumDays + const eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD') + let num = surgeryNumDays.filter(item => item.date === eachTime) + let hosNum = '' if (num.length > 0) { - hosNum = '第' + '\xa0\xa0\xa0' + num[0].typeValue + '\xa0\xa0\xa0' + '日'; + hosNum = '第' + "\xa0\xa0\xa0" + num[0].typeValue + "\xa0\xa0\xa0" + '日' } else { - hosNum = '第' + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' + '日'; + hosNum = '第' + "\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0" + '日' } - return hosNum; - }, - }, -]; + return hosNum + } + } +] // 最底部的字段绘制 -export const BOTTOM_KEYS = getBottomKeys(); +export const BOTTOM_KEYS = getBottomKeys() // 是否显示疼痛评分 -export const showPain = showPainFlag; +export const showPain = showPainFlag /** *********** 以下是固定选项 **************************/ -export const timeNumber = [2, 6, 10, 14, 18, 22]; // 时间展示 -export const nightTime = [2, 18, 22]; // 夜间红色高亮时间 +export const timeNumber = [2, 6, 10, 14, 18, 22] // 时间展示 +export const nightTime = [2, 18, 22] // 夜间红色高亮时间 +//export const leftTEXT1 = [ +// // ['脉3搏,(次/分), 180', '160', '140', '120', '100', '80', '60', '40'], +// // ['体4温,(℃), 42', '41', '40', '39', '38', '37', '36', '35'] + // // ['华氏,( °F), 107.6', '105.8', '104', '102.2', '100.4', '98.6', '96.8', '95'] + // ['华氏,( °F), ', '', '107', '106', '105', '104', '103', '102', '101', '100', '99', '98', '97', '96', '95', '94'] + // // ['摄氏,(℃), 42', '41', '40', '39', '38', '37', '36', '35'] +//] +//export const leftTEXT2 = [ +// ['摄氏,(℃), ', '42', '41', '40', '39', '38', '37', '36', '35'] +//] +//export const rightTEXT = [ + // [',, ', '180', '160', '140', '120', '100', '80', '60', '40'] +//] +//export const painTEXT = [ + // ['疼 痛'], + // ['8', '6', '4', '2'] +//] export const leftTEXT = [ ['脉搏,(次/分),', '180', '160', '140', '120', '100', '80', '60', '40'], - ['体温,(℃), ', '42', '41', '40', '39', '38', '37', '36', '35'], -]; -export const painTEXT = [['疼 痛 强 度'], ['10', '8', '6', '4', '2', '0']]; -export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡']; -export const otherItem = ['外出', '请假', '拒测', '离院', '其他']; + ['体温,(℃), ', '42', '41', '40', '39', '38', '37', '36', '35'] +] +export const painTEXT = [['疼 痛 强 度'], ['10', '8', '6', '4', '2', '0']] +export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡'] +export const otherItem = ['外出', '请假', '拒测', '离院', '其他'] export const sheetOptions = { - locations: [ - { - code: '1', - display: '体温', - }, - { - code: '2', - display: '口温', - }, - { - code: '3', - display: '肛温', - }, - { - code: '4', - display: '耳温', - }, - ], - breath: [ - { - code: '', - display: '自主呼吸', - }, - { - code: '®', - display: '机械通气', - }, - ], - poop: [ - { - code: '', - display: '正常', - }, - { - code: '※', - display: '失禁', - }, - { - code: '☆', - display: '人工肛门', - }, - { - code: '/E', - display: '灌肠', - }, - ], - pee: [ - { - code: '', - display: '正常', - }, - { - code: '※', - display: '失禁', - }, - { - code: 'C+', - display: '导尿', - }, - ], + locations: [{ + code: '1', + display: '体温' + }, { + code: '2', + display: '口温' + }, { + code: '3', + display: '肛温' + }, { + code: '4', + display: '耳温' + }], + breath: [{ + code: '', + display: '自主呼吸' + }, { + code: '®', + display: '机械通气' + }], + poop: [{ + code: '', + display: '正常' + }, { + code: '※', + display: '失禁' + }, { + code: '☆', + display: '人工肛门' + }, { + code: '/E', + display: '灌肠' + }], + pee: [{ + code: '', + display: '正常' + }, { + code: '※', + display: '失禁' + }, { + code: 'C+', + display: '导尿' + }], heart: ['窦性心律', '起搏心律', '房性心律', '异常心律'], - weight: ['正常', '卧床', '轮椅', '平车'], -}; + weight: ['正常', '卧床', '轮椅', '平车'] +} // 此处是显示数字的 要和leftTEXT保持一直 -export const bodyTemperature = [33, 43]; -export const starNumEnv = bodyTemperature[0]; // 开始体温 -export const endNumEnv = bodyTemperature[1]; // 结束体温 -export const heartRange = [0, 200]; -export const painScore = [0, 10]; +// export const bodyTemperature1 = [94, 107] +// export const starNumEnv1 = bodyTemperature1[0] // 开始体温 +// export const endNumEnv1 = bodyTemperature1[1] // 结束体温 +export const bodyTemperature = [33, 43] +export const starNumEnv = bodyTemperature[0] // 开始体温 +export const endNumEnv = bodyTemperature[1] // 结束体温 +export const heartRange = [0, 200] +export const painScore = [0, 10] // 中间图表字段对应 export const CHART_KEYS = [ { key: '001', code: 'breath', - name: '呼吸', + name: '呼吸' }, { key: '002', code: 'sphygmus', - name: '脉搏', + name: '脉搏' }, { key: '003', code: 'temperature', - name: '体温', + name: '体温' }, { key: '012', code: 'inOut', - name: '特殊标记', + name: '特殊标记' }, { key: '013', code: 'refuse', - name: '标记内容', + name: '标记内容' }, { key: '014', code: 'heartRate', - name: '心率', + name: '心率' }, { key: '015', code: 'lowerTemp', - name: '物理降温', + name: '物理降温' }, { key: '016', code: 'painScore', - name: '疼痛评分', - }, -]; + name: '疼痛评分' + } + // { + // key: '017', + // code: 'admission', + // name: '入院' + // }, + // { + // key: '018', + // code: 'bigSurgery', + // name: '大手术' + // }, + // { + // key: '019', + // code: 'smallSurgery', + // name: '小手术' + // }, + // { + // key: '020', + // code: 'discharge', + // name: '出院' + // }, + // { + // key: '021', + // code: 'parturition', + // name: '分娩' + // }, + // { + // key: '022', + // code: 'transfer', + // name: '转科' + // }, + // { + // key: '9507', + // code: 'death', + // name: '死亡' + // } +] + +export const HEAD_HEIGHT = 80 // 头部文字预留位置 +export const LINE_HEIGHT = 20 // 一行的行高 +export const textLeftMargin = 4 // 文字左边边距 +export const TEXT_MARGIN_BOTTOM = 6 // 文字向上偏移量 +export const symbolArrowHeight = 20 -export const HEAD_HEIGHT = 120; // 头部文字预留位置 -export const LINE_HEIGHT = 20; // 一行的行高 -export const textLeftMargin = 4; // 文字左边边距 -export const TEXT_MARGIN_BOTTOM = 6; // 文字向上偏移量 -export const symbolArrowHeight = 20; diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/dataProcess.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/dataProcess.js index bb4800ba..bbf15d79 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/dataProcess.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/dataProcess.js @@ -4,32 +4,42 @@ // index: 0 // value: 36 // } -export function getMaxList({ list = [], max = 0, min = 0, maxDefault = 0, minDefault = 0 } = {}) { - return list.map((item) => { - if ((item.value > max || item.value < min) && item.value !== null) { - const ismax = item.value > max; +export function getMaxList({ + list = [], + max = 0, + min = 0, + maxDefault = 0, + minDefault = 0 +} = {}) { + return list.map(item => { + if (((item.value > max) || (item.value < min)) && item.value !== null) { + const ismax = item.value > max return { ...item, value: ismax ? maxDefault : minDefault, sourceValue: item.value, ismax: ismax, max, - min, - }; + min + } } else { - return null; + return null } - }); + }) } -export function levelingData({ list = [], maxDefault = 0, minDefault = 0 }) { - return list.map((item) => { - if (item.value === null) return item; +export function levelingData({ + list = [], + maxDefault = 0, + minDefault = 0 +}) { + return list.map(item => { + if (item.value === null) return item if (item.value > maxDefault) { - item.value = maxDefault; + item.value = maxDefault } else if (item.value < minDefault) { - item.value = minDefault; + item.value = minDefault } - return item; - }); + return item + }) } diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/datas.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/datas.js index 0e41bfd5..dade0cfc 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/datas.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/datas.js @@ -1,22 +1,23 @@ export default { - grParamBOS: { - age: '24岁', - beginDate: '2021-07-30', - birth: 868723200000, - cwh: null, - cardNo: '0000001403', - hospDate: '2021-07-30', - hospDays: 238, - inDate: null, - inDiagName: '急性上呼吸道感染', - name: '于浩', - officeName: '住院科室', - title: '长春市朝阳区中医院', - operaDays: null, - outdate: null, - sex: '女', - weekNo: '34', - }, + grParamBOS: + { + age: '24岁', + beginDate: '2021-07-30', + birth: 868723200000, + cwh: null, + cardNo: '0000001403', + hospDate: '2021-07-30', + hospDays: 238, + inDate: null, + inDiagName: '急性上呼吸道感染', + name: '于浩', + officeName: '住院科室', + title: '某某医院', + operaDays: null, + outdate: null, + sex: '女', + weekNo: '34' + }, rows: [ { rowBOS: [ @@ -25,51 +26,51 @@ export default { date: '2022-04-25', times: '02:00:00', typeCode: '012', - typeValue: 'dd', + typeValue: 'dd' }, { collectionMode: null, date: '2022-03-25', times: '02:00:00', typeCode: '001', - typeValue: '50', + typeValue: '50' }, { collectionMode: null, date: '2022-03-25', times: '02:00:00', typeCode: '002', - typeValue: '65', + typeValue: '65' }, { collectionMode: null, date: '2022-03-25', times: '02:00:00', typeCode: '014', - typeValue: '98', + typeValue: '98' }, { collectionMode: 2, date: '2022-03-25', times: '02:00:00', typeCode: '003', - typeValue: '36.7', + typeValue: '36.7' }, { collectionMode: null, date: '2022-03-25', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '02:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -78,51 +79,51 @@ export default { date: '2022-03-25', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '06:00:00', typeCode: '001', - typeValue: '45', + typeValue: '45' }, { collectionMode: null, date: '2022-03-25', times: '06:00:00', typeCode: '002', - typeValue: '66', + typeValue: '66' }, { collectionMode: null, date: '2022-03-25', times: '06:00:00', typeCode: '014', - typeValue: '87', + typeValue: '87' }, { collectionMode: 4, date: '2022-03-25', times: '06:00:00', typeCode: '003', - typeValue: '36.5', + typeValue: '36.5' }, { collectionMode: null, date: '2022-03-25', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -131,51 +132,51 @@ export default { date: '2022-03-25', times: '10:00:00', typeCode: '012', - typeValue: '介入', + typeValue: '介入' }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '10:00:00', typeCode: '013', - typeValue: '十点半', - }, - ], + typeValue: '十点半' + } + ] }, { rowBOS: [ @@ -184,51 +185,51 @@ export default { date: '2022-03-25', times: '14:00:00', typeCode: '012', - typeValue: '手术', + typeValue: '手术' }, { collectionMode: null, date: '2022-03-25', times: '14:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-25', times: '14:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '14:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-25', times: '14:00:00', typeCode: '003', - typeValue: '37', + typeValue: '37' }, { collectionMode: null, date: '2022-03-25', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -237,51 +238,51 @@ export default { date: '2022-03-25', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '18:00:00', typeCode: '001', - typeValue: '70', + typeValue: '70' }, { collectionMode: null, date: '2022-03-25', times: '18:00:00', typeCode: '002', - typeValue: '65', + typeValue: '65' }, { collectionMode: null, date: '2022-03-25', times: '18:00:00', typeCode: '014', - typeValue: '110', + typeValue: '110' }, { collectionMode: 4, date: '2022-03-25', times: '18:00:00', typeCode: '003', - typeValue: '37.8', + typeValue: '37.8' }, { collectionMode: null, date: '2022-03-25', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -290,51 +291,51 @@ export default { date: '2022-03-25', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '22:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-25', times: '22:00:00', typeCode: '002', - typeValue: '68', + typeValue: '68' }, { collectionMode: null, date: '2022-03-25', times: '22:00:00', typeCode: '014', - typeValue: '109', + typeValue: '109' }, { collectionMode: 4, date: '2022-03-25', times: '22:00:00', typeCode: '003', - typeValue: '38.8', + typeValue: '38.8' }, { collectionMode: null, date: '2022-03-25', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -343,51 +344,51 @@ export default { date: '2022-03-26', times: '02:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '02:00:00', typeCode: '001', - typeValue: '70', + typeValue: '70' }, { collectionMode: null, date: '2022-03-26', times: '02:00:00', typeCode: '002', - typeValue: '66', + typeValue: '66' }, { collectionMode: null, date: '2022-03-26', times: '02:00:00', typeCode: '014', - typeValue: '113', + typeValue: '113' }, { collectionMode: 4, date: '2022-03-26', times: '02:00:00', typeCode: '003', - typeValue: '不升', + typeValue: '不升' }, { collectionMode: null, date: '2022-03-26', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '02:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -396,51 +397,51 @@ export default { date: '2022-03-26', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '06:00:00', typeCode: '001', - typeValue: '77', + typeValue: '77' }, { collectionMode: null, date: '2022-03-26', times: '06:00:00', typeCode: '002', - typeValue: '64', + typeValue: '64' }, { collectionMode: null, date: '2022-03-26', times: '06:00:00', typeCode: '014', - typeValue: '105', + typeValue: '105' }, { collectionMode: 4, date: '2022-03-26', times: '06:00:00', typeCode: '003', - typeValue: '37', + typeValue: '37' }, { collectionMode: null, date: '2022-03-26', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -449,51 +450,51 @@ export default { date: '2022-03-26', times: '10:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '10:00:00', typeCode: '001', - typeValue: '80', + typeValue: '80' }, { collectionMode: null, date: '2022-03-26', times: '10:00:00', typeCode: '002', - typeValue: '70', + typeValue: '70' }, { collectionMode: null, date: '2022-03-26', times: '10:00:00', typeCode: '014', - typeValue: '120', + typeValue: '120' }, { collectionMode: 4, date: '2022-03-26', times: '10:00:00', typeCode: '003', - typeValue: '39', + typeValue: '39' }, { collectionMode: null, date: '2022-03-26', times: '10:00:00', typeCode: '015', - typeValue: '37', + typeValue: '37' }, { collectionMode: null, date: '2022-03-26', times: '10:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -502,51 +503,51 @@ export default { date: '2022-03-26', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '14:00:00', typeCode: '001', - typeValue: '65', + typeValue: '65' }, { collectionMode: null, date: '2022-03-26', times: '14:00:00', typeCode: '002', - typeValue: '70', + typeValue: '70' }, { collectionMode: null, date: '2022-03-26', times: '14:00:00', typeCode: '014', - typeValue: '100', + typeValue: '100' }, { collectionMode: 3, date: '2022-03-26', times: '14:00:00', typeCode: '003', - typeValue: '38', + typeValue: '38' }, { collectionMode: null, date: '2022-03-26', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -555,51 +556,51 @@ export default { date: '2022-03-26', times: '18:00:00', typeCode: '012', - typeValue: '介入', + typeValue: '介入' }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '18:00:00', typeCode: '013', - typeValue: '事实上是', - }, - ], + typeValue: '事实上是' + } + ] }, { rowBOS: [ @@ -608,51 +609,51 @@ export default { date: '2022-03-26', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '22:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '22:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '22:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-26', times: '22:00:00', typeCode: '003', - typeValue: '37', + typeValue: '37' }, { collectionMode: null, date: '2022-03-26', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -661,51 +662,51 @@ export default { date: '2022-03-27', times: '02:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '02:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '02:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '02:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-27', times: '02:00:00', typeCode: '003', - typeValue: '36.5', + typeValue: '36.5' }, { collectionMode: null, date: '2022-03-27', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '02:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -714,51 +715,51 @@ export default { date: '2022-03-27', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '06:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '06:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '06:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-27', times: '06:00:00', typeCode: '003', - typeValue: '43', + typeValue: '43' }, { collectionMode: null, date: '2022-03-27', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -767,51 +768,51 @@ export default { date: '2022-03-27', times: '10:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '10:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '10:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '10:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-27', times: '10:00:00', typeCode: '003', - typeValue: '38', + typeValue: '38' }, { collectionMode: null, date: '2022-03-27', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '10:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -820,51 +821,51 @@ export default { date: '2022-03-27', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '14:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '14:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '14:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-27', times: '14:00:00', typeCode: '003', - typeValue: '39', + typeValue: '39' }, { collectionMode: null, date: '2022-03-27', times: '14:00:00', typeCode: '015', - typeValue: '38.6', + typeValue: '38.6' }, { collectionMode: null, date: '2022-03-27', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -873,51 +874,51 @@ export default { date: '2022-03-27', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -926,51 +927,51 @@ export default { date: '2022-03-27', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -979,51 +980,51 @@ export default { date: '2022-03-28', times: '02:00:00', typeCode: '012', - typeValue: '手术', + typeValue: '手术' }, { collectionMode: null, date: '2022-03-28', times: '02:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-28', times: '02:00:00', typeCode: '002', - typeValue: '98', + typeValue: '98' }, { collectionMode: null, date: '2022-03-28', times: '02:00:00', typeCode: '014', - typeValue: '90', + typeValue: '90' }, { collectionMode: 4, date: '2022-03-28', times: '02:00:00', typeCode: '003', - typeValue: '36.8', + typeValue: '36.8' }, { collectionMode: null, date: '2022-03-28', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '02:00:00', typeCode: '013', - typeValue: '三点四分', - }, - ], + typeValue: '三点四分' + } + ] }, { rowBOS: [ @@ -1032,51 +1033,51 @@ export default { date: '2022-03-28', times: '06:00:00', typeCode: '012', - typeValue: '请假', + typeValue: '请假' }, { collectionMode: null, date: '2022-03-28', times: '06:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '06:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '06:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-28', times: '06:00:00', typeCode: '003', - typeValue: '36.8', + typeValue: '36.8' }, { collectionMode: null, date: '2022-03-28', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '06:00:00', typeCode: '013', - typeValue: '七点半', - }, - ], + typeValue: '七点半' + } + ] }, { rowBOS: [ @@ -1085,51 +1086,51 @@ export default { date: '2022-03-28', times: '10:00:00', typeCode: '012', - typeValue: '外出', + typeValue: '外出' }, { collectionMode: null, date: '2022-03-28', times: '10:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '10:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '10:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-28', times: '10:00:00', typeCode: '003', - typeValue: '36.9', + typeValue: '36.9' }, { collectionMode: null, date: '2022-03-28', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '10:00:00', typeCode: '013', - typeValue: '十点', - }, - ], + typeValue: '十点' + } + ] }, { rowBOS: [ @@ -1138,51 +1139,51 @@ export default { date: '2022-03-28', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '14:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '14:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '14:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-28', times: '14:00:00', typeCode: '003', - typeValue: '33', + typeValue: '33' }, { collectionMode: null, date: '2022-03-28', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1191,51 +1192,51 @@ export default { date: '2022-03-28', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '18:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '18:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '18:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: 4, date: '2022-03-28', times: '18:00:00', typeCode: '003', - typeValue: '36', + typeValue: '36' }, { collectionMode: null, date: '2022-03-28', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1244,51 +1245,51 @@ export default { date: '2022-03-28', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1297,51 +1298,51 @@ export default { date: '2022-03-29', times: '02:00:00', typeCode: '012', - typeValue: '测试', + typeValue: '测试' }, { collectionMode: null, date: '2022-03-29', times: '02:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '02:00:00', typeCode: '002', - typeValue: '100', + typeValue: '100' }, { collectionMode: null, date: '2022-03-29', times: '02:00:00', typeCode: '014', - typeValue: '90', + typeValue: '90' }, { collectionMode: 4, date: '2022-03-29', times: '02:00:00', typeCode: '003', - typeValue: '36.9', + typeValue: '36.9' }, { collectionMode: null, date: '2022-03-29', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '02:00:00', typeCode: '013', - typeValue: '一点五十分', - }, - ], + typeValue: '一点五十分' + } + ] }, { rowBOS: [ @@ -1350,51 +1351,51 @@ export default { date: '2022-03-29', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '06:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '06:00:00', typeCode: '002', - typeValue: '110', + typeValue: '110' }, { collectionMode: null, date: '2022-03-29', times: '06:00:00', typeCode: '014', - typeValue: '100', + typeValue: '100' }, { collectionMode: 4, date: '2022-03-29', times: '06:00:00', typeCode: '003', - typeValue: '37.5', + typeValue: '37.5' }, { collectionMode: null, date: '2022-03-29', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1403,51 +1404,51 @@ export default { date: '2022-03-29', times: '10:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '10:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '10:00:00', typeCode: '002', - typeValue: '112', + typeValue: '112' }, { collectionMode: null, date: '2022-03-29', times: '10:00:00', typeCode: '014', - typeValue: '99', + typeValue: '99' }, { collectionMode: 4, date: '2022-03-29', times: '10:00:00', typeCode: '003', - typeValue: '38', + typeValue: '38' }, { collectionMode: null, date: '2022-03-29', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '10:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1456,51 +1457,51 @@ export default { date: '2022-03-29', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '14:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '14:00:00', typeCode: '002', - typeValue: '109', + typeValue: '109' }, { collectionMode: null, date: '2022-03-29', times: '14:00:00', typeCode: '014', - typeValue: '94', + typeValue: '94' }, { collectionMode: 4, date: '2022-03-29', times: '14:00:00', typeCode: '003', - typeValue: '37.6', + typeValue: '37.6' }, { collectionMode: null, date: '2022-03-29', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1509,51 +1510,51 @@ export default { date: '2022-03-29', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '18:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '18:00:00', typeCode: '002', - typeValue: '200', + typeValue: '200' }, { collectionMode: null, date: '2022-03-29', times: '18:00:00', typeCode: '014', - typeValue: '95', + typeValue: '95' }, { collectionMode: 4, date: '2022-03-29', times: '18:00:00', typeCode: '003', - typeValue: '不升', + typeValue: '不升' }, { collectionMode: null, date: '2022-03-29', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1562,51 +1563,51 @@ export default { date: '2022-03-29', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29', times: '22:00:00', typeCode: '001', - typeValue: '®', + typeValue: '®' }, { collectionMode: null, date: '2022-03-29', times: '22:00:00', typeCode: '002', - typeValue: '150', + typeValue: '150' }, { collectionMode: null, date: '2022-03-29', times: '22:00:00', typeCode: '014', - typeValue: '99', + typeValue: '99' }, { collectionMode: 4, date: '2022-03-29', times: '22:00:00', typeCode: '003', - typeValue: '38.5', + typeValue: '38.5' }, { collectionMode: null, date: '2022-03-29', times: '22:00:00', typeCode: '015', - typeValue: '38', + typeValue: '38' }, { collectionMode: null, date: '2022-03-29', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1615,51 +1616,51 @@ export default { date: '2022-03-30', times: '02:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '02:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1668,51 +1669,51 @@ export default { date: '2022-03-30', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1721,51 +1722,51 @@ export default { date: '2022-03-30', times: '10:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '10:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1774,51 +1775,51 @@ export default { date: '2022-03-30', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1827,51 +1828,51 @@ export default { date: '2022-03-30', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1880,51 +1881,51 @@ export default { date: '2022-03-30', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1933,51 +1934,51 @@ export default { date: '2022-03-31', times: '02:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '02:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -1986,51 +1987,51 @@ export default { date: '2022-03-31', times: '06:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '06:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -2039,51 +2040,51 @@ export default { date: '2022-03-31', times: '10:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '10:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -2092,51 +2093,51 @@ export default { date: '2022-03-31', times: '14:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '14:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -2145,51 +2146,51 @@ export default { date: '2022-03-31', times: '18:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '18:00:00', typeCode: '013', - typeValue: null, - }, - ], + typeValue: null + } + ] }, { rowBOS: [ @@ -2198,52 +2199,52 @@ export default { date: '2022-03-31', times: '22:00:00', typeCode: '012', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '001', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '002', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '014', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '003', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '015', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31', times: '22:00:00', typeCode: '013', - typeValue: null, - }, - ], - }, + typeValue: null + } + ] + } ], types: [ { @@ -2251,1029 +2252,1029 @@ export default { date: '2022-03-25 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '004', - typeValue: 36, + typeValue: 36 }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-25 00:00:00', times: null, typeCode: '031', - typeValue: '1', + typeValue: '1' }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-26 00:00:00', times: null, typeCode: '031', - typeValue: '2', + typeValue: '2' }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-27 00:00:00', times: null, typeCode: '031', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-28 00:00:00', times: null, typeCode: '031', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '005', - typeValue: '1³/E', + typeValue: '1³/E' }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-29 00:00:00', times: null, typeCode: '031', - typeValue: '4', + typeValue: '4' }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-30 00:00:00', times: null, typeCode: '031', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '016', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '004', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '005', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '006', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '007', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '008', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '009', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '010', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '020', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '021', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '022', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '023', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '024', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '025', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '026', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '027', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '028', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '029', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '030', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '011', - typeValue: null, + typeValue: null }, { collectionMode: null, date: '2022-03-31 00:00:00', times: null, typeCode: '031', - typeValue: null, - }, - ], -}; + typeValue: null + } + ] +} diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/drawfn.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/drawfn.js index 547bd101..da4ce6fa 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/drawfn.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/drawfn.js @@ -1,6 +1,6 @@ // 数据处理 -import * as d3 from 'd3'; -import { symbol } from 'd3-shape'; +import * as d3 from 'd3' +import { symbol } from 'd3-shape' import { getTypeData, getTypeDatas, @@ -13,19 +13,12 @@ import { getType, getHeartRate, disconnectEvents, - getBrokenLine, -} from './utils'; -import { - HEAD_HEIGHT, - LINE_HEIGHT, - TOP_KEYS, - BOTTOM_KEYS, - symbolArrowHeight, - textLeftMargin, -} from './config'; + getBrokenLine +} from './utils' +import { HEAD_HEIGHT, LINE_HEIGHT, TOP_KEYS, BOTTOM_KEYS, symbolArrowHeight, textLeftMargin} from './config' export const iconDrawObj = { // 绘制圆形图标 - getDrawRoundIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue', r = 5 }) => { + getDrawRoundIcon: ({ content,data, x, y, fill = 'blue',stroke = 'blue', r = 5 }) => { // 增加icon 红色空心 content .append('g') @@ -36,32 +29,23 @@ export const iconDrawObj = { .data(data) .join('circle') .attr('transform', (i) => { - const yVal = y(i) || 0; + const yVal = y(i) || 0 if (!yVal) { - return 'scale(0)'; + return 'scale(0)' } - return ''; + return '' }) .attr('cx', x) .attr('cy', y) .attr('r', (i) => { if (y(i)) { - return r; + return r } - return 0; - }); + return 0 + }) }, // 绘制圆形点图标 - getDrawRoundDotIcon: ({ - content, - data, - x, - y, - fill = 'white', - stroke = 'blue', - deepFill = 'blue', - r = 6, - }) => { + getDrawRoundDotIcon: ({ content, data, x, y, fill = 'white', stroke = 'blue', deepFill = 'blue', r = 6 }) => { content .append('g') .attr('fill', fill) @@ -71,11 +55,11 @@ export const iconDrawObj = { .data(data) .join('circle') .attr('transform', (i) => { - const yVal = y(i) || 0; + const yVal = y(i) || 0 if (!yVal) { - return 'scale(0)'; + return 'scale(0)' } - return ''; + return '' }) .attr('cx', x) .attr('cy', y) @@ -84,7 +68,7 @@ export const iconDrawObj = { .attr('cx', x) .attr('cy', y) .attr('r', 1) - .attr('fill', deepFill); + .attr('fill', deepFill) }, // 绘制x getDrawXIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue' }) => { @@ -97,43 +81,43 @@ export const iconDrawObj = { .data(data) .join('line') .attr('transform', (i) => { - let yVal = y; + let yVal = y if (typeof y === 'function') { - yVal = y(i) || 0; + yVal = y(i) || 0 } if (!yVal) { - return 'scale(0)'; + return 'scale(0)' } - return ''; + return '' }) - .attr('x1', function (d) { - return x(d) - 4; + .attr('x1', function(d) { + return x(d) - 4 }) - .attr('y1', function (d) { - return y(d) - 4; + .attr('y1', function(d) { + return y(d) - 4 }) - .attr('x2', function (d) { - return x(d) + 4; + .attr('x2', function(d) { + return x(d) + 4 }) - .attr('y2', function (d) { - return y(d) + 4; + .attr('y2', function(d) { + return y(d) + 4 }) .clone() - .attr('x1', function (d) { - return x(d) + 4; + .attr('x1', function(d) { + return x(d) + 4 }) - .attr('y1', function (d) { - return y(d) - 4; + .attr('y1', function(d) { + return y(d) - 4 }) - .attr('x2', function (d) { - return x(d) - 4; + .attr('x2', function(d) { + return x(d) - 4 + }) + .attr('y2', function(d) { + return y(d) + 4 }) - .attr('y2', function (d) { - return y(d) + 4; - }); }, // 绘制三角形 - drawThreeIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue', riangle = 48 }) => { + drawThreeIcon: ({ content, data, x,y, fill = 'blue', stroke = 'blue', riangle = 48 }) => { // 蓝色三角形 content .append('g') @@ -142,82 +126,74 @@ export const iconDrawObj = { .data(data) .join('g') .attr('transform', (i) => { - const yVal = y(i) || 0; + const yVal = y(i) || 0 if (!yVal) { - return 'scale(0)'; + return 'scale(0)' } - return `translate(${x(i)},${yVal})`; + return `translate(${x(i)},${yVal})` }) .append('path') .call((path) => { - const symbolThree = symbol(); - const symbolIndex = 5; - symbolThree.type(d3.symbols[symbolIndex]); - path.attr('d', symbolThree.size(riangle)).attr('fill', fill).attr('stroke', stroke); + const symbolThree = symbol() + const symbolIndex = 5 + symbolThree.type(d3.symbols[symbolIndex]) + path.attr('d', symbolThree.size(riangle)).attr('fill', fill) .attr('stroke', stroke) // .transition() // .duration(1500) // .attr('d', symbolThree.size(48)) - }); - }, -}; + }) + } +} export function getG(svg, viewConfig) { - return svg - .append('g') - .attr('transform', `translate(${viewConfig.marginLeft},${viewConfig.marginTop + HEAD_HEIGHT})`); + return svg .append('g') .attr( 'transform', `translate(${viewConfig.marginLeft},${viewConfig.marginTop + HEAD_HEIGHT})` ) } // 设置数据 export function getData(allData) { - const rowsData = allData.rows; // allData, '【全部数据】' - const infoData = allData.grParamBOS; - const typesData = getTypeDatas(allData.types, allData.grParamBOS.beginDate); - const selectOp = allData.selectOp; - const symbolTextArr = getTypeData('018', rowsData, false, allData.grParamBOS.beginDate); // 【特殊标记】 - const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate); // 不升 + const rowsData = allData.rows // allData, '【全部数据】' + const infoData = allData.grParamBOS + const typesData = getTypeDatas(allData.types, allData.grParamBOS.beginDate) + const selectOp = allData.selectOp + const symbolTextArr = getTypeData('018', rowsData, false, allData.grParamBOS.beginDate) // 【特殊标记】 + const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate) // 不升 // 体温单特殊数据 - const dicData = JSON.parse(window.localStorage.getItem('transDictCode')); - const signsManagementList = dicData - ? dicData - .filter((item) => item.name === '95')[0] - .concept.sort((a, b) => { - return a.displayOrder - b.displayOrder; - }) - : []; - const otherArr = []; + const dicData = JSON.parse(window.localStorage.getItem('transDictCode')) + const signsManagementList = dicData ? dicData.filter(item => item.name === '95')[0].concept.sort((a, b) => { return a.displayOrder - b.displayOrder }) :[] + const otherArr = [] if (signsManagementList.length > 0) { for (let j = 0; j < signsManagementList.length; j++) { - if ((signsManagementList[j].code !== '9502') & (signsManagementList[j].code !== '9503')) { - const otherArrItem = getTypeData( - signsManagementList[j].code, - rowsData, - false, - allData.grParamBOS.beginDate - ); - otherArr.push(otherArrItem); + if (signsManagementList[j].code !== '9502' & signsManagementList[j].code !== '9503') { + const otherArrItem = getTypeData(signsManagementList[j].code, rowsData, false, allData.grParamBOS.beginDate) + otherArr.push(otherArrItem) } } } - const surgeryNumDays = allData.types.filter((item) => item.typeCode === '031'); - const surgeryArr = getTypeData('9502', rowsData, false, allData.grParamBOS.beginDate); // '【手术】' - const minSurgeryArr = getTypeData('9503', rowsData, false, allData.grParamBOS.beginDate); // '【小手术】' - const temArr = getTypeData('00301', rowsData, false, allData.grParamBOS.beginDate); // '【体温拒测等】' - // const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate) // symbolGoUp, '不升' + const surgeryNumDays = allData.types.filter(item => item.typeCode === '031') + const surgeryArr = getTypeData('9502', rowsData, false, allData.grParamBOS.beginDate) // '【手术】' + const minSurgeryArr = getTypeData('9503', rowsData, false, allData.grParamBOS.beginDate) // '【小手术】' + const temArr = getTypeData('00301', rowsData, false, allData.grParamBOS.beginDate) // '【体温拒测等】' + // const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate) // symbolGoUp, '不升' // 35度线上的内容 - const symbolDegreesEvents = degreesOnline(symbolTextArr, selectOp, 0); - const symbolDegreesOnline = disconnectEvents(symbolTextArr, selectOp, 'isBeforeAfter', 0); + const symbolDegreesEvents = degreesOnline(symbolTextArr, selectOp, 0) + const symbolDegreesOnline = disconnectEvents( symbolTextArr, selectOp, 'isBeforeAfter', 0 ) // 40~42线上的内容 - const symbolTopOnline = degreesOnline(symbolTextArr, selectOp, 1); - const symbolTopDegreesOnline = disconnectEvents(symbolTextArr, selectOp, 'isBeforeAfter', 1); - const symbolContent = getTypeData('013', rowsData, false, allData.grParamBOS.beginDate); // symbolContent, '【标记内容】' - const mergeTag = setMergeTag(symbolTopOnline, symbolContent); // mergeTag, '【合并标记,标记内容】' + const symbolTopOnline = degreesOnline(symbolTextArr, selectOp, 1) + const symbolTopDegreesOnline = disconnectEvents( + symbolTextArr, + selectOp, + 'isBeforeAfter', + 1 + ) + const symbolContent = getTypeData('013', rowsData, false, allData.grParamBOS.beginDate) // symbolContent, '【标记内容】' + const mergeTag = setMergeTag(symbolTopOnline, symbolContent) // mergeTag, '【合并标记,标记内容】' // 产后日数 - infoData.postpartum = postpartumDays('031', typesData); // infoData, '产后日数' + infoData.postpartum = postpartumDays('031', typesData) // infoData, '产后日数' // 写死的先 infoData.dateClosed = { stopTime: true, // 控制结束日期 - stopNumber: true, // 控制住院天数 - }; + stopNumber: true // 控制住院天数 + } // 折线 const brokenLineData = getBrokenLine( '003', @@ -226,23 +202,22 @@ export function getData(allData) { symbolGoUp, symbolTopDegreesOnline, allData.grParamBOS.beginDate - ); + ) // 模拟数据 体温 - const datasetAnus = getTypeAnimalHeat('003', rowsData, '1', allData.grParamBOS.beginDate); // datasetAnus, '腋温【x】' - const bodyData = getTypeAnimalHeat('003', rowsData, '2', allData.grParamBOS.beginDate); // dbodyData, '口温' + const datasetAnus = getTypeAnimalHeat('003', rowsData, '1', allData.grParamBOS.beginDate) // datasetAnus, '腋温【x】' + const bodyData = getTypeAnimalHeat('003', rowsData, '2', allData.grParamBOS.beginDate) // dbodyData, '口温' // const datasetHeartrate = getTypeAnimalHeat('003', rowsData) - const datasetHeartrate = getTypeAnimalHeat('003', rowsData, '3', allData.grParamBOS.beginDate); // datasetHeartrate, '肛温【红空圆】' - const earCool = getTypeAnimalHeat('003', rowsData, '4', allData.grParamBOS.beginDate); // earCool, '耳朵温' - const painScore = getHeartRate( - // painScore, '疼痛' + const datasetHeartrate = getTypeAnimalHeat('003', rowsData, '3', allData.grParamBOS.beginDate) // datasetHeartrate, '肛温【红空圆】' + const earCool = getTypeAnimalHeat('003', rowsData, '4', allData.grParamBOS.beginDate) // earCool, '耳朵温' + const painScore = getHeartRate( // painScore, '疼痛' '016', rowsData, symbolDegreesOnline, symbolTopDegreesOnline, true, allData.grParamBOS.beginDate - ); - const allTemperatureData = [bodyData, datasetAnus, datasetHeartrate, earCool]; // 所有的温度记录 + ) + const allTemperatureData = [bodyData, datasetAnus, datasetHeartrate, earCool] // 所有的温度记录 // '脉搏【红实圆】' const datasetPulse = getHeartRate( '002', @@ -251,7 +226,7 @@ export function getData(allData) { symbolTopDegreesOnline, true, allData.grParamBOS.beginDate - ); + ) // 心率【空心】 const datasetHeartRate = getHeartRate( '014', @@ -260,14 +235,14 @@ export function getData(allData) { symbolTopDegreesOnline, true, allData.grParamBOS.beginDate - ); + ) // const allTemperatureData = getDrawData('003', rowsData, '1', allData.grParamBOS.beginDate) // datasetAnus, '腋温【x】' // const dataCool = getDrawCoolData('015', rowsData, true, allData.grParamBOS.beginDate) // dataCool, '【物理降温】' - const dataCool = getTypeData('015', rowsData, true, allData.grParamBOS.beginDate); // 【物理降温】 + const dataCool = getTypeData('015', rowsData, true, allData.grParamBOS.beginDate) // 【物理降温】 // 呼吸【黑实圆】 - const datasetPain = getTypeData('001', rowsData, false, allData.grParamBOS.beginDate); // 呼吸 + const datasetPain = getTypeData('001', rowsData, false, allData.grParamBOS.beginDate)// 呼吸 - const title = infoData.title; + const title = infoData.title return { title, datasetHeartRate, @@ -294,8 +269,8 @@ export function getData(allData) { temArr, surgeryArr, minSurgeryArr, - surgeryNumDays, - }; + surgeryNumDays + } } export function drawTopMask(svg, viewConfig) { @@ -314,17 +289,19 @@ export function drawTopMask(svg, viewConfig) { .attr('height', LINE_HEIGHT * (TOP_KEYS.length + 7.5) - 1) .attr('stroke', viewConfig.stroke) .attr('fill', '#fff') - .attr('style', 'stroke-width: 0'); + .attr('style', 'stroke-width: 0') - drawTopVerticalLine(svg, viewConfig); + drawTopVerticalLine(svg, viewConfig) } export function drawTopVerticalLine(svg, viewConfig) { // 补上下竖线 - let start = viewConfig.step; - const lineG = getG(svg, viewConfig).append('g').attr('class', 'maskline-top'); + let start = viewConfig.step + const lineG = getG(svg, viewConfig) + .append('g') + .attr('class', 'maskline-top') while (start < viewConfig.contentWidth) { - // const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth + // const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth lineG .append('line') .attr('fill', 'stroke') @@ -334,13 +311,13 @@ export function drawTopVerticalLine(svg, viewConfig) { .attr('x2', start) .attr('stroke', start > viewConfig.step ? '#B22222' : viewConfig.stroke) // .attr('stroke', isLastLine ? 'black' : (start > viewConfig.step ? '#B22222' : viewConfig.stroke)) - .attr('stroke-width', 4); // 设置线条宽度为2 - start = start + viewConfig.step; + .attr('stroke-width', 4) // 设置线条宽度为2 + start = start + viewConfig.step } } export function drawBottomMask(svg, viewConfig) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) // 遮罩层挡住超出的折线 g.append('rect') .attr('class', 'mask-rect') @@ -350,16 +327,18 @@ export function drawBottomMask(svg, viewConfig) { .attr('height', LINE_HEIGHT * (BOTTOM_KEYS.length + 5)) .attr('stroke', viewConfig.stroke) .attr('fill', '#ffffff') - .attr('style', 'stroke-width: 0'); - drawBottomMaskLine(svg, viewConfig); + .attr('style', 'stroke-width: 0') + drawBottomMaskLine(svg, viewConfig) } function drawBottomMaskLine(svg, viewConfig) { // 补上下竖线 - let start = viewConfig.step; - const lineG = getG(svg, viewConfig).append('g').attr('class', 'maskline'); + let start = viewConfig.step + const lineG = getG(svg, viewConfig) + .append('g') + .attr('class', 'maskline') while (start < viewConfig.contentWidth) { - // const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth; + // const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth; lineG .append('line') .attr('fill', 'stroke') @@ -369,14 +348,14 @@ function drawBottomMaskLine(svg, viewConfig) { .attr('x2', start) .attr('stroke', start > viewConfig.step ? '#B22222' : viewConfig.stroke) //.attr('stroke', isLastLine ? 'black' : (start > viewConfig.step ? '#B22222' : viewConfig.stroke)) - .attr('stroke-width', 4); // 设置线条宽度为2 - start = start + viewConfig.step; + .attr('stroke-width', 4) // 设置线条宽度为2 + start = start + viewConfig.step } } // 绘制特殊事件文字 --- 有时间 export function drawSpecialText(svg, viewConfig, textData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) g.append('g') .selectAll('text') .data(textData) @@ -384,46 +363,43 @@ export function drawSpecialText(svg, viewConfig, textData) { .attr('style', 'font-size:14px; fill: red;') .attr('class', 'mytext') .html((d, i) => { - const t = (d?.value || '').split(','); - let time = ''; + const t = (d?.value || '').split(',') + let time = '' if (t.length > 1) { - time = - t[0] + '于' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分'; + time = t[0] + '于' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分' // time = t[0] + '㇑' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分' } - const texts = time.split(''); + const texts = time.split('') return texts .map((text, i) => { - return `${text}`; + return `${text}` }) - .join(''); + .join('') }) .attr('x', (d, i) => { - return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin; + return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin }) .attr('y', () => { - return viewConfig.topKeysPos - textLeftMargin; - }); + return viewConfig.topKeysPos - textLeftMargin + }) } // 绘制特殊事件文字 --- 大手术小手术 export function drawSurgery(svg, viewConfig, textData) { - const g = getG(svg, viewConfig); - const textDatas = []; + const g = getG(svg, viewConfig) + const textDatas = [] if (textData.length > 0) { for (let j = 0; j < textData.length; j++) { - let item = {}; + let item = {} if (textData[j].value) { item = { index: textData[j].index, value: textData[j].value.split(',')[0], - date: textData[j].date, - }; + date: textData[j].date + } } else { - item = textData[j]; + item = textData[j] } - textDatas.push(item); + textDatas.push(item) } } g.append('g') @@ -433,39 +409,40 @@ export function drawSurgery(svg, viewConfig, textData) { .attr('style', 'font-size:15px; fill: red;') .attr('class', 'mytext') .html((d, i) => { - const texts = (d?.value || '').split(''); + const texts = (d?.value || '').split('') return texts .map((text, i) => { return `${text}`; + }" dy="${20}">${text}` }) - .join(''); - }) - .attr('x', (d, i) => { - return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2; + .join('') }) + .attr( + 'x', + (d, i) => { return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2 } + ) .attr('y', () => { - return viewConfig.topKeysPos - textLeftMargin; - }); + return viewConfig.topKeysPos - textLeftMargin + }) } // 绘制特殊事件文字 --- 无时间 export function drawSpecialNoTimeText(svg, viewConfig, textData) { - const g = getG(svg, viewConfig); - const textDatas = []; + const g = getG(svg, viewConfig) + const textDatas = [] if (textData.length > 0) { for (let j = 0; j < textData.length; j++) { - let item = {}; + let item = {} if (textData[j].value) { item = { index: textData[j].index, value: textData[j].value.split(',')[0], - date: textData[j].date, - }; + date: textData[j].date + } } else { - item = textData[j]; + item = textData[j] } - textDatas.push(item); + textDatas.push(item) } } g.append('g') @@ -475,7 +452,7 @@ export function drawSpecialNoTimeText(svg, viewConfig, textData) { .attr('style', 'font-size:15px; fill: red;') .attr('class', 'mytext') .html((d, i) => { - const texts = (d?.value || '').split(''); + const texts = (d?.value || '').split('') // let time = '' // if (t.length > 1) { // time = t[0] + '㇑' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分' @@ -483,38 +460,39 @@ export function drawSpecialNoTimeText(svg, viewConfig, textData) { // const texts = time.split('') return texts .map((text, i) => { - return `${text}`; + return `${text}` }) - .join(''); - }) - .attr('x', (d, i) => { - return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2; + .join('') }) + .attr( + 'x', + (d, i) => { return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2 } + ) .attr('y', () => { - return viewConfig.topKeysPos - textLeftMargin; - }); + return viewConfig.topKeysPos - textLeftMargin + }) } // 数字转换成文字 function transNum(num) { - const arr1 = ['', '十']; - const arr2 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; - const sw = num.split('')[0]; - const gw = num.split('')[1]; - const str1 = sw > 1 ? arr2[sw] + '十' : arr1[sw]; - let strNum = str1 + arr2[gw]; + const arr1 = ['', '十'] + const arr2 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'] + const sw = num.split('')[0] + const gw = num.split('')[1] + const str1 = sw > 1 ? arr2[sw] + '十' : arr1[sw] + let strNum = str1 + arr2[gw] // 若H为十点整小时,则把零去掉,若m为十分,则去掉零 if (strNum.indexOf('十') > 0 || strNum.indexOf('零') === 1) { - strNum = strNum.replace('零', ''); + strNum = strNum.replace('零', '') } - return strNum; + return strNum } // 绘制标签文字 export function drawTagText(svg, viewConfig, textData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) g.append('g') .selectAll('text') .data(textData) @@ -522,24 +500,25 @@ export function drawTagText(svg, viewConfig, textData) { .attr('style', 'font-size:14px; fill: black;') .attr('class', 'mytext') .html((d, i) => { - const texts = (d?.value || '').split(''); + const texts = (d?.value || '').split('') return texts .map((text, i) => { - return `${text}`; + return `${text}` }) - .join(''); + .join('') }) - .attr('x', (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin) + .attr( + 'x', + (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin + ) .attr('y', () => { - return viewConfig.topKeysPos - textLeftMargin + 198; - }); + return viewConfig.topKeysPos - textLeftMargin + 198 + }) } // 绘制特殊事件文字底部 export function drawBottomSpecialText(svg, viewConfig, textData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) g.append('g') .selectAll('text') .data(textData) @@ -547,20 +526,23 @@ export function drawBottomSpecialText(svg, viewConfig, textData) { .attr('style', 'font-size:14px; fill: blue;') .attr('class', 'mytext') .html((d, i) => { - const texts = (d?.value || '').split(''); + const texts = (d?.value || '').split('') return texts .map((text, i) => { return `${text}`; + }" dy="${20}">${text}` }) - .join(''); + .join('') }) - .attr('x', (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin) + .attr( + 'x', + (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin + ) .attr('y', (d) => { - const texts = (d?.value || '').split(''); - return viewConfig.bottomKeysPosStart - texts.length * LINE_HEIGHT - 6 - 58; - }); + const texts = (d?.value || '').split('') + return viewConfig.bottomKeysPosStart - texts.length * LINE_HEIGHT - 6 - 58 + }) } export function initArrow(svg) { @@ -574,9 +556,12 @@ export function initArrow(svg) { .attr('viewBox', '0 0 12 12') .attr('refX', '6') .attr('refY', '6') - .attr('orient', 'auto'); - const arrowPath = 'M2,2 L10,6 L2,10 L6,6 L2,2'; - arrowMarkerRed.append('path').attr('d', arrowPath).attr('fill', 'red'); + .attr('orient', 'auto') + const arrowPath = 'M2,2 L10,6 L2,10 L6,6 L2,2' + arrowMarkerRed + .append('path') + .attr('d', arrowPath) + .attr('fill', 'red') const arrowMarkerBlue = svg .append('defs') .append('marker') @@ -587,13 +572,16 @@ export function initArrow(svg) { .attr('viewBox', '0 0 12 12') .attr('refX', '6') .attr('refY', '6') - .attr('orient', 'auto'); - arrowMarkerBlue.append('path').attr('d', arrowPath).attr('fill', 'blue'); + .attr('orient', 'auto') + arrowMarkerBlue + .append('path') + .attr('d', arrowPath) + .attr('fill', 'blue') } export function lineArrow({ svg, viewConfig, scale, data } = {}) { - const g = getG(svg, viewConfig); - const vaildData = data.filter((item) => item); + const g = getG(svg, viewConfig) + const vaildData = data.filter((item) => item) // { // ...item, // value: ismax ? maxDefault : minDefault, @@ -607,85 +595,96 @@ export function lineArrow({ svg, viewConfig, scale, data } = {}) { .data(vaildData) .join('line') .attr('x1', (d, i) => { - return scale(d.index) + +viewConfig.X_OFFSET; + return scale(d.index) + +viewConfig.X_OFFSET }) .attr('y1', (d, i) => { if (d.ismax) { // 顶部箭头 - return viewConfig.topKeysPos + symbolArrowHeight * 1.5; + return viewConfig.topKeysPos + symbolArrowHeight * 1.5 } else { // 底部箭头 - return viewConfig.bottomKeysPosStart - symbolArrowHeight * 1.5; + return viewConfig.bottomKeysPosStart - symbolArrowHeight * 1.5 } }) .attr('x2', (d, i) => { - return scale(d.index) + +viewConfig.X_OFFSET; + return scale(d.index) + +viewConfig.X_OFFSET }) .attr('y2', (d, i) => { if (d.ismax) { // 顶部箭头 - return viewConfig.topKeysPos + symbolArrowHeight / 2; + return viewConfig.topKeysPos + symbolArrowHeight / 2 } else { // 底部箭头 - return viewConfig.bottomKeysPosStart - symbolArrowHeight / 2; + return viewConfig.bottomKeysPosStart - symbolArrowHeight / 2 } }) .attr('stroke', (d) => { - return d.ismax ? 'red' : 'blue'; + return d.ismax ? 'red' : 'blue' }) .attr('stroke-width', 2) .attr('marker-end', (d, i) => { - return d.ismax ? 'url(#redArrow)' : 'url(#blueArrow)'; - }); + return d.ismax ? 'url(#redArrow)' : 'url(#blueArrow)' + }) g.selectAll('text') .data(vaildData) .join('text') .attr('class', 'desctextname') .html((item, i) => { - const value = `${item.sourceValue}`.split(''); - const dotIndex = value.indexOf('.'); + const value = `${item.sourceValue}`.split('') + const dotIndex = value.indexOf('.') return value .map((d, index) => { - let y; - let multiple = index; - let addition = 0; // dot height + let y + let multiple = index + let addition = 0 // dot height if (item.ismax) { if (index >= dotIndex) { - addition = 8; - multiple = index - 1; + addition = 8 + multiple = index - 1 } y = viewConfig.topKeysPos + symbolArrowHeight * 1.5 + (2 + multiple * 1.5) * viewConfig.X_OFFSET + - addition; + addition } else { if (index >= dotIndex) { - addition = 9; - multiple = index - 1; + addition = 9 + multiple = index - 1 } y = viewConfig.bottomKeysPosStart - (2 + (value.length - multiple) * 1.5) * viewConfig.X_OFFSET + - addition; + addition } return ` - ${d}`; + ${d}` }) - .join(''); + .join('') }) .attr('x', (item, i) => { - return scale(item.index) + viewConfig.X_OFFSET - 4; + return scale(item.index) + viewConfig.X_OFFSET - 4 }) - .attr('y', (item) => { + .attr('y', item => { if (item.ismax) { - return viewConfig.topKeysPos + symbolArrowHeight * 1.5 + LINE_HEIGHT / 2; + return ( + viewConfig.topKeysPos + symbolArrowHeight * 1.5 + LINE_HEIGHT / 2 + ) } else { - return viewConfig.bottomKeysPosStart - symbolArrowHeight / 2 - LINE_HEIGHT / 2; + return ( + viewConfig.bottomKeysPosStart - + symbolArrowHeight / 2 - + LINE_HEIGHT / 2 + ) } }) - .attr('style', (item) => { - return `font-size:14px;fill:${item.ismax ? 'red' : 'blue'};font-weight: bold;`; - }); + .attr('style', item => { + return `font-size:14px;fill:${ + item.ismax ? 'red' : 'blue' + };font-weight: bold;` + }) } + diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/index.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/index.js index d1fd627c..470ab69c 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/index.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/index.js @@ -5,13 +5,14 @@ * @LastEditors: 程堡 * @Description: 体温单 * @FilePath: src\action\nurseStation\temperatureSheet\index.js - */ -import Request from '@/axios/index.js'; -const temperaturePath = 'app/temperature'; -const getTemperaturePath = 'app/temperature/by-encounter-id'; -const delTemperaturePath = 'app/temperature/retired'; +*/ +import Request from '@/axios/index.js' +const temperaturePath = 'app/temperature' +const getTemperaturePath = 'app/temperature/by-encounter-id' +const delTemperaturePath = 'app/temperature/retired' // import data from '../temperatureSheet/datas.js'; export const API = { + /** * @description 查询患者体温单 * @param encounterId @@ -22,24 +23,27 @@ export const API = { method: 'get', // 提交方法get verification: true, // 是否统一拦截验证 untoken: false, // 是否不带token - params: { - // 参数列表 - id, - }, - }); + params: { // 参数列表 + id + } + }) }, /** * @description 创建体温单 * @param encounterId */ - createTemperature(encounterId, hisNo, clinicCode, recordTime, type, content) { + createTemperature(encounterId, + hisNo, + clinicCode, + recordTime, + type, + content) { return Request({ url: temperaturePath, method: 'post', verification: true, untoken: false, - data: { - // 参数列表 + data: { // 参数列表 encounterId, hisNo, clinicCode, @@ -48,23 +52,28 @@ export const API = { operName: sessionStorage.getItem('userName'), type, content, - hospitalOrgId: sessionStorage.getItem('hospitalOrgId'), - }, - }); + hospitalOrgId: sessionStorage.getItem('hospitalOrgId') + } + }) }, /** * @description 修改体温单 * @param encounterId */ - updateTemperature(encounterId, hisNo, clinicCode, recordTime, type, content, id) { + updateTemperature(encounterId, + hisNo, + clinicCode, + recordTime, + type, + content, + id) { return Request({ url: temperaturePath, method: 'put', verification: true, untoken: false, - data: { - // 参数列表 + data: { // 参数列表 encounterId, hisNo, clinicCode, @@ -73,9 +82,9 @@ export const API = { operName: sessionStorage.getItem('userName'), type, content, - id, - }, - }); + id + } + }) }, /** * @description 删除记录 @@ -87,11 +96,10 @@ export const API = { method: 'post', verification: true, untoken: false, - data: { - // 参数列表 - id, - }, - }); + data: { // 参数列表 + id + } + }) }, /** * @description 获取患者时间线 @@ -99,22 +107,24 @@ export const API = { */ NewSheet(patientInfo) { return { - grParamBOS: { - age: patientInfo.age, - birth: 868723200000, - cwh: patientInfo.bedName, - cardNo: patientInfo.hisId, - hospDate: patientInfo.firstInBedTime.substring(0, 10), - inDate: patientInfo.firstInBedTime, - inDiagName: patientInfo.diag, - name: patientInfo.patientName, - deptName: patientInfo.deptName, - operaDays: null, - outdate: patientInfo.checkOutWardTime, - sex: patientInfo.gender.display, - }, + grParamBOS: + { + age: patientInfo.age, + birth: 868723200000, + cwh: patientInfo.bedName, + cardNo: patientInfo.hisId, + hospDate: patientInfo.firstInBedTime.substring(0, 10), + inDate: patientInfo.firstInBedTime, + inDiagName: patientInfo.diag, + name: patientInfo.patientName, + deptName: patientInfo.deptName, + operaDays: null, + outdate: patientInfo.checkOutWardTime, + sex: patientInfo.gender.display + }, rows: [], - types: [], - }; - }, -}; + types: [] + } + } + +} diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/line.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/line.js index 9639b840..913fbf6f 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/line.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/line.js @@ -1,19 +1,8 @@ -import * as d3 from 'd3'; -import { - iconDrawObj, - getG, - getData, - drawTopMask, - drawBottomMask, - initArrow, - lineArrow, - drawSpecialText, - drawSpecialNoTimeText, +import * as d3 from 'd3' +import { iconDrawObj, getG, getData, drawTopMask, drawBottomMask, initArrow, lineArrow, drawSpecialText, drawTagText, drawBottomSpecialText, drawSpecialNoTimeText, drawSurgery, - // drawTagText, - drawBottomSpecialText, -} from './drawfn'; -import { getMaxList } from './dataProcess'; +} from './drawfn' +import { getMaxList } from './dataProcess' import { timeNumber, nightTime, @@ -32,111 +21,105 @@ import { HEAD_HEIGHT, LINE_HEIGHT, textLeftMargin, - TEXT_MARGIN_BOTTOM, -} from './config'; -import ViewConfig from './ViewConfig'; -export function init(data = []) { - const ajaxData = getData(data); + TEXT_MARGIN_BOTTOM +} from './config' +import ViewConfig from './ViewConfig' +export async function init(data = []) { + const ajaxData = getData(data) const chart = ConnectedScatterplot({ x: (d) => d.year, y: (d) => d.gas, xType: d3.scaleBand, + // yDomain: [starNumEnv1, starNumEnv2, endNumEnv1, endNumEnv2], yDomain: [starNumEnv, endNumEnv], - width: 980, - height: 1350 + BOTTOM_KEYS.length * 20 + 7, + width: 1080, + height: 1290 + BOTTOM_KEYS.length * 20 + 7, marginLeft: 10, - marginRight: 10, + marginRight: 100, marginTop: 10, marginBottom: 80, duration: 5000, // for the intro animation; 0 to disable - renderData: ajaxData, - }); + renderData: ajaxData + }) + await nextTick() // 等待DOM更新 if (document.getElementById('my_dataviz').children.length > 0) { - document - .getElementById('my_dataviz') - .removeChild(document.getElementById('my_dataviz').children[0]); + document.getElementById('my_dataviz').removeChild(document.getElementById('my_dataviz').children[0]) } - document.getElementById('my_dataviz').appendChild(chart); + document.getElementById('my_dataviz').appendChild(chart) } - -// Copyright 2021 Observable, Inc. -// Released under the ISC license. -// https://observablehq.com/@d3/connected-scatterplot -// width = 640, // outer width, in pixels -// height = 400, // outer height, in pixels -// marginTop = 20, // top margin, in pixels -// marginRight = 20, // right margin, in pixels -// marginBottom = 50, // bottom margin, in pixels -// marginLeft = 30, // left margin, in pixels -// stroke = 'currentColor', // stroke color of line and dots -// strokeWidth = 2, // stroke width of line and dots -// strokeLinecap = 'round', // stroke line cap of line -// strokeLinejoin = 'round', // stroke line join of line -// renderData, function ConnectedScatterplot(options) { // 计算出各种位置常量 - const viewConfig = new ViewConfig(options); - let tooltip; + const viewConfig = new ViewConfig(options) + let tooltip const svg = d3 .create('svg') .attr('id', 'printsvg') .attr('width', viewConfig.width) .attr('height', viewConfig.height) .attr('viewBox', [0, 0, viewConfig.width, viewConfig.height]) - .attr('style', 'max-width: 100%; height: auto; height: intrinsic;') - .attr('transform', `translate(0,${viewConfig.marginTop})`); + .attr('style', 'height: auto; height: intrinsic;') + .attr('transform', `translate(0,${viewConfig.marginTop})`) setTimeout(() => { - tooltip = svg.append('g').style('pointer-events', 'none'); - }); - - const xScale = d3.scaleBand().domain(d3.range(42)).rangeRound(viewConfig.xRange); + tooltip = svg.append('g').style('pointer-events', 'none') + }) + const xScale = d3 + .scaleBand() + .domain(d3.range(42)) + .rangeRound(viewConfig.xRange) // 体温的 scale - const bodyScale = d3.scaleLinear([bodyTemperature[0], bodyTemperature[1]], viewConfig.yRange); + const bodyScale = d3.scaleLinear( + [bodyTemperature[0], bodyTemperature[1]], + viewConfig.yRange + ) + // const y2Scale = d3.scaleLinear() + // .domain([94, 107]) // 新的 y 轴范围 + // .range([viewConfig.height, 0]) // SVG 高度,0 表示顶端 // 心率的 Scale - const heartScale = d3.scaleLinear([heartRange[0], heartRange[1]], viewConfig.yRange); - // 疼痛的 scale - const painScale = d3.scaleLinear([painScore[0], painScore[1]], viewConfig.yRange); + const heartScale = d3.scaleLinear( + [heartRange[0], heartRange[1]], // [20, 180]; + viewConfig.yRange // [560,60]; + ) // 心率上限 const bodyOverflowData = getMaxList({ list: viewConfig.renderData.datasetHeartRate.flat(Infinity), max: heartRange[1], min: heartRange[0], maxDefault: 180, - minDefault: 40, - }); + minDefault: 40 + }) // 脉搏上限 const datasetPulse = getMaxList({ list: viewConfig.renderData.datasetPulse.flat(Infinity), max: heartRange[1], min: heartRange[0], maxDefault: 180, - minDefault: 40, - }); - // 口温下限 - const bodyData = getMaxList({ - list: viewConfig.renderData.bodyData, - max: bodyTemperature[1], + minDefault: 40 + }) + //口温下限 + const bodyData = getMaxList({ + list: viewConfig.renderData.bodyData, + max: bodyTemperature[1], min: bodyTemperature[0], - maxDefault: 42, - minDefault: 35, - }); + maxDefault: 42, + minDefault: 35 + }); // 腋温下限 const datasetAnus = getMaxList({ list: viewConfig.renderData.datasetAnus, max: bodyTemperature[1], min: bodyTemperature[0], maxDefault: 42, - minDefault: 35, - }); + minDefault: 35 + }) // 肛温下限 const datasetHeartrate = getMaxList({ list: viewConfig.renderData.datasetHeartrate, max: bodyTemperature[1], min: bodyTemperature[0], maxDefault: 42, - minDefault: 35, - }); + minDefault: 35 + }) // 耳温下限 const earCool = getMaxList({ @@ -144,23 +127,16 @@ function ConnectedScatterplot(options) { max: bodyTemperature[1], min: bodyTemperature[0], maxDefault: 42, - minDefault: 35, - }); - const allTemperature = [ - bodyOverflowData, - datasetPulse, - bodyData, - datasetAnus, - datasetHeartrate, - earCool, - ]; + minDefault: 35 + }) + const allTemperature = [bodyOverflowData, datasetPulse, bodyData, datasetAnus, datasetHeartrate, earCool] // viewConfig.renderData.bodyData = levelingData({ // list: viewConfig.renderData.bodyData, // maxDefault: 43, // minDefault: 33 // }) - initArrow(svg); + initArrow(svg) // ========================== // 开始调用绘制函数 // ========================== @@ -170,99 +146,93 @@ function ConnectedScatterplot(options) { // 4、绘制被遮挡的竖线格子 // 一定要按照循序调用 // 绘制脉搏体温 - drwaPulse(svg); + drwaPulse(svg) // 绘制折线区域格子 - drawbgLine(svg); + drawbgLine(svg) // 绘制红色竖线 - drwaVerticallLine(svg); + drwaVerticallLine(svg) // 绘制折线 - viewConfig.renderData.brokenLineData.forEach((item) => { - brokenLine(svg, item); - }); + viewConfig.renderData.brokenLineData.forEach(item => { + brokenLine(svg, item) + }) const tmpList = getIndexValue( viewConfig.renderData.bodyData, viewConfig.renderData.datasetAnus, viewConfig.renderData.datasetHeartrate, viewConfig.renderData.earCool - ); + ) // 绘制脉搏线条 viewConfig.renderData.datasetPulse.forEach((item) => { - const item2 = []; + const item2 = [] item.forEach((x) => { // const obj = tmpList.find((o) => o.index === x.index && o.value === heartScale(x.value)) - const obj = tmpList.find( - (o) => o.index === x.index && Math.abs(o.value - heartScale(x.value)) < 1 - ); + const obj = tmpList.find((o) => o.index === x.index && Math.abs(o.value - heartScale(x.value)) < 1) if (!obj) { - item2.push(x); + item2.push(x) } - }); - drawHeart(svg, item, true); - drawHeart(svg, item2, false); - }); + }) + drawHeart(svg, item, true) + drawHeart(svg, item2, false) + }) // 绘制心率线条 viewConfig.renderData.datasetHeartRate.forEach((item) => { - drawHeartRate(svg, item); - }); - // 绘制口温线条 + drawHeartRate(svg, item) + }) + // // 绘制口温线条 // drawPathBody(svg, viewConfig.renderData.bodyData) // 绘制腋温线条 - drawAnus(svg, viewConfig.renderData.datasetAnus); - // 绘制肛温线条 + drawAnus(svg, viewConfig.renderData.bodyData) + // // 绘制肛温线条 // drawJuhua(svg, viewConfig.renderData.datasetHeartrate) - // 绘制耳温 + // // 绘制耳温 // thermometer(svg, viewConfig.renderData.earCool) // 绘制疼痛 - if (showPain) { - viewConfig.renderData.painScore.forEach((item) => { - drawPain(svg, item); - }); - } + // if (showPain) { + // viewConfig.renderData.painScore.forEach(item => { + // drawPain(svg, item); + // }); + // } // 需要放在绘制折线后,起到遮挡折线的作用 // 绘制呼吸格子 - drwaBreathing( - svg, - viewConfig.renderData.datasetPain.filter((x) => x.value !== null) - ); + drwaBreathing(svg, viewConfig.renderData.datasetPain.filter(x => x.value !== null)) // 需要放在绘制呼吸后,绘制下划线 // 绘制底部横线和值 // ===================== // // 遮罩层挡住超出的折线 // // =====================// - drawTopMask(svg, viewConfig); - drawBottomMask(svg, viewConfig); + drawTopMask(svg, viewConfig) + drawBottomMask(svg, viewConfig) // 绘制底部线条 - drwaBottomLine(svg); - drwaBottomLineData(svg); + drwaBottomLine(svg) + drwaBottomLineData(svg) // 绘制顶部值 - drwaTopData(svg); - // 绘制特殊事件文字 入院 离院项目 - // drawSpecialText(svg, viewConfig, viewConfig.renderData.symbolTextArr) - // drawSpecialText(svg, viewConfig, viewConfig.renderData.symbolContent) - + drwaTopData(svg) // 绘制特殊事件文字---有时间 if (viewConfig.renderData.otherArr.length > 0) { for (let j = 0; j < viewConfig.renderData.otherArr.length; j++) { - drawSpecialText(svg, viewConfig, viewConfig.renderData.otherArr[j]); + drawSpecialText(svg, viewConfig, viewConfig.renderData.otherArr[j]) } } - - drawSurgery(svg, viewConfig, viewConfig.renderData.minSurgeryArr); - drawSurgery(svg, viewConfig, viewConfig.renderData.surgeryArr); - drawSpecialNoTimeText(svg, viewConfig, viewConfig.renderData.temArr); + + drawSurgery(svg, viewConfig, viewConfig.renderData.minSurgeryArr) + drawSurgery(svg, viewConfig, viewConfig.renderData.surgeryArr) + drawSpecialNoTimeText(svg, viewConfig, viewConfig.renderData.temArr) + //drawSpecialNoTimeText(svg, viewConfig, viewConfig.renderData.smallSurgerytArr) + //drawSpecialNoTimeText(svg, viewConfig, viewConfig.renderData.dischargeArr) + // drawSpecialNoTimeText(svg, viewConfig, viewConfig.renderData.transferArr) // 绘制标签文字 - // drawTagText(svg, viewConfig, viewConfig.renderData.symbolContent) + // drawTagText(svg, viewConfig, viewConfig.renderData.symbolContent) // drawBottomSpecialText(svg, viewConfig, viewConfig.renderData.symbolDegreesOnline); - drawBottomSpecialText(svg, viewConfig, viewConfig.renderData.symbolGoUp); - drawBottomSpecialText(svg, viewConfig, viewConfig.renderData.symbolDegreesEvents); + drawBottomSpecialText(svg, viewConfig, viewConfig.renderData.symbolGoUp) + drawBottomSpecialText(svg, viewConfig, viewConfig.renderData.symbolDegreesEvents) // 绘制降温的红圈和虚线 - drawCoolBody(svg, viewConfig.renderData.dataCool, viewConfig.renderData.allTemperatureData); - // 绘制同一时间心率和脉搏的虚线 - drawRateBody(svg, viewConfig.renderData.datasetPulse, viewConfig.renderData.datasetHeartRate); - drwaOtherInfo(svg, viewConfig.renderData.infoData); + drawCoolBody(svg, viewConfig.renderData.dataCool, viewConfig.renderData.allTemperatureData) + // 绘制同一时间心率和脉搏的阴影 + drawRateBody(svg, viewConfig.renderData.datasetPulse, viewConfig.renderData.datasetHeartRate) + drwaOtherInfo(svg, viewConfig.renderData.infoData) // 最后一步 // 绘制四周加粗边框 - drwaTabelBorder(svg); + drwaTabelBorder(svg) // ========== // // 最后展示浮层的内容 // ========== // @@ -271,20 +241,23 @@ function ConnectedScatterplot(options) { svg, viewConfig, scale: xScale, - data: item, - }); - }); + data: item + }) + }) // ========================== // 结束调用绘制函数 // ========================== - return svg.node(); + return svg.node() // 绘制最外面边框 function drwaTabelBorder(svg) { const g = svg .append('g') - .attr('transform', `translate(${viewConfig.marginLeft},${viewConfig.topPos})`); + .attr( + 'transform', + `translate(${viewConfig.marginLeft},${viewConfig.topPos})` + ) g.append('rect') .attr('x', 0) @@ -293,34 +266,38 @@ function ConnectedScatterplot(options) { .attr('height', viewConfig.tableHeight) .attr('stroke', viewConfig.stroke) .attr('fill', 'none') - .attr('style', 'stroke-width: 4'); + .attr('style', 'stroke-width: 4') } // 绘制所有竖线 function drwaVerticallLine(svg) { - const g = getG(svg, viewConfig); - let start = viewConfig.step; - g.attr('class', 'maskline2'); + const g = getG(svg, viewConfig) + let start = viewConfig.step + g.attr('class', 'maskline2') while (start < viewConfig.contentWidth) { + // const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth g.append('line') .attr('x1', start) .attr('y1', 0) .attr('y2', viewConfig.tableHeight) .attr('x2', start) .attr('stroke', start > viewConfig.step ? '#B22222' : viewConfig.stroke) - .attr('stroke-width', 4); // 设置线条宽度为2 - start = start + viewConfig.step; + // .attr('stroke', isLastLine ? 'black' : (start > viewConfig.step ? '#B22222' : viewConfig.stroke)) + .attr('stroke-width', 4) // 设置线条宽度为2 + start = start + viewConfig.step } } // 绘制底部的线条 function drwaBottomLine(svg) { // 补上下竖线 - let start = viewConfig.step; - const lineG = getG(svg, viewConfig).append('g').attr('class', 'maskline'); - const topPos = viewConfig.bottomKeysPosStart + 40; + let start = viewConfig.step + const lineG = getG(svg, viewConfig) + .append('g') + .attr('class', 'maskline') + const topPos = viewConfig.bottomKeysPosStart + 40 while (start < viewConfig.contentWidth) { BOTTOM_KEYS.forEach((item, i) => { - const step = viewConfig.step / item.times; - let itemStart = start; + const step = viewConfig.step / item.times + let itemStart = start for (let j = 0; j < 6; j++) { if (((j * viewConfig.step) / 6) % step === 0) { lineG @@ -330,266 +307,251 @@ function ConnectedScatterplot(options) { .attr('y1', topPos + i * LINE_HEIGHT) .attr('y2', topPos + (i + 1) * LINE_HEIGHT) .attr('x2', itemStart) - .attr('stroke', viewConfig.stroke); + .attr('stroke', viewConfig.stroke) } - itemStart += viewConfig.step / 6; + itemStart += viewConfig.step / 6 } - }); - start += viewConfig.step; + }) + start += viewConfig.step } } - // 绘制底部的线条和文字 - function drwaBottomLineData(svg) { - const g = getG(svg, viewConfig); - // 绘制底部的横向线条 - g.selectAll('line') - .data([...BOTTOM_KEYS]) - .join('line') - .attr('x1', 0) - .attr('y1', (d, i) => { - const isLast = i === BOTTOM_KEYS.length - 1; - return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT + (isLast ? 15 : 0); - // return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT // 2是呼吸,占了2行 - }) - .attr('y2', (d, i) => { - const isLast = i === BOTTOM_KEYS.length - 1; - return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT + (isLast ? 15 : 0); - // return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT - }) - .attr('x2', viewConfig.width - viewConfig.marginLeft - viewConfig.marginRight) - .attr('fill', 'none') - .attr('class', 'dataLine') - .attr('stroke', viewConfig.stroke) - .attr('stroke-width', 1) - .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); - const textArr = BOTTOM_KEYS; - const repeatArr = d3.range(8); - // 绘制文字 - textArr.map(({ key, name, times }, index) => { - if (key !== '100') { - if (times && times === 2) { - let str = []; - g.append('g') - .selectAll('text') - .data(repeatArr) - .join('text') - .attr('style', 'font-size:15px; font-weight:bold;fill: black') - .attr('class', 'mytext') - .text((i) => { - if (i == 0) { - return name; - } else { - const text = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; - if (text) { - str = text.split(','); - if (str.length > 1) { - return str[0]; + // 绘制底部的线条和文字 + function drwaBottomLineData(svg) { + const g = getG(svg, viewConfig) + // 绘制底部的横向线条 + g.selectAll('line') + .data([...BOTTOM_KEYS]) + .join('line') + .attr('x1', 0) + .attr('y1', (d, i) => { + const isLast = i === BOTTOM_KEYS.length - 1; + return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT + (isLast ? 15 : 0); + // return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT // 2是呼吸,占了2行 + }) + .attr('y2', (d, i) => { + const isLast = i === BOTTOM_KEYS.length - 1; + return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT + (isLast ? 15 : 0) + // return viewConfig.bottomKeysPosStart + (i + 2) * LINE_HEIGHT + }) + .attr( + 'x2', + viewConfig.width - viewConfig.marginLeft - viewConfig.marginRight + ) + .attr('fill', 'none') + .attr('class', 'dataLine') + .attr('stroke', viewConfig.stroke) + .attr('stroke-width', 1) + .attr('stroke-linejoin', viewConfig.strokeLinejoin) + .attr('stroke-linecap', viewConfig.strokeLinecap) + const textArr = BOTTOM_KEYS + const repeatArr = d3.range(8) + // 绘制文字 + textArr.map(({ key, name, times }, index) => { + if (key !== '100') { + if (times && times === 2) { + let str = [] + g.append('g') + .selectAll('text') + .data(repeatArr) + .join('text') + .attr('style', 'font-size:15px; font-weight:bold;fill: black') + .attr('class', 'mytext') + .text((i) => { + if (i == 0) { + return name + } else { + const text = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue + if (text) { + str = text.split(',') + if (str.length > 1) { + return str[0] + } } + return text } - return text; - } - }) - .attr('x', (i) => { - const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1; - if (i === 0) { - return textLeftMargin * 2; - } - return pos * viewConfig.step + textLeftMargin; - }) - .attr('y', () => { - return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM; - }); - g.append('g') - .selectAll('text') - .data(repeatArr) - .join('text') - .attr('style', 'font-size:15px; font-weight:bold;fill: black') - .attr('class', 'mytext') - .text((i) => { - if (i == 0) { - return ''; - } else { - const text = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; - if (text) { - str = text.split(','); - if (str.length > 1) { - return str[1]; + }) + .attr('x', (i) => { + const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1 + if (i === 0) { + return textLeftMargin * 2 + } + return pos * viewConfig.step + textLeftMargin + }) + .attr('y', () => { + return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + }) + g.append('g') + .selectAll('text') + .data(repeatArr) + .join('text') + .attr('style', 'font-size:15px; font-weight:bold;fill: black') + .attr('class', 'mytext') + .text((i) => { + if (i == 0) { + return '' + } else { + const text = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue + if (text) { + str = text.split(',') + if (str.length > 1) { + return str[1] + } } + return '' } - return ''; - } - }) - .attr('x', (i) => { - const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1; - if (i === 0) { - // return textLeftMargin * 2 - } - return pos * viewConfig.step + textLeftMargin + 60; - }) - .attr('y', () => { - return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM; - }); - } else if (key === '017') { - for (let j = 0; j < 8; j++) { - const testText = getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.typeValue; - if (j === 0) { - g.append('g') - .selectAll('text') - .data(repeatArr) - .join('text') - .attr('style', 'font-size:15px;') - .attr('class', 'mytext') - .text(name) - .attr('x', () => { - return textLeftMargin * 2 + 10; - }) - .attr('y', () => { - return ( - viewConfig.bottomKeysPosStart + - (index + 3) * LINE_HEIGHT - - TEXT_MARGIN_BOTTOM + - 1 - ); - }); - } else if (testText !== undefined) { - if (testText.length > 8) { - for (let i = 0; i < testText.length; i += 8) { - // 使用slice方法获取当前段的字符串 - const line = testText.slice(i, i + 8); - g.append('g') - .selectAll('text') - .data(repeatArr) - .join('text') - .attr('style', 'font-size:14px') - .attr('class', 'mytext') - .text(line) - .attr('x', () => { - const pos = - getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.index + 1; - - return pos * viewConfig.step + textLeftMargin; - }) - .attr('y', () => { - return ( - viewConfig.bottomKeysPosStart + - (index + 3) * LINE_HEIGHT - - TEXT_MARGIN_BOTTOM + - i * 2.5 - ); - }); + }) + .attr('x', (i) => { + const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1 + if (i === 0) { + // return textLeftMargin * 2 } - } else { + return pos * viewConfig.step + textLeftMargin + 60 + }) + .attr('y', () => { + return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + }) + } + else if (key === '017') { + for (let j = 0; j < 8; j++) { + const testText = getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.typeValue + if (j === 0){ g.append('g') .selectAll('text') .data(repeatArr) .join('text') - .attr('style', 'font-size:14px;') + .attr('style', 'font-size:15px;') .attr('class', 'mytext') - .text(testText) + .text(name) .attr('x', () => { - const pos = - getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.index + 1; - - return pos * viewConfig.step + textLeftMargin; + return textLeftMargin * 2 + 10 }) .attr('y', () => { - return ( - viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM - ); - }); + return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + 1 + }) + } + else if (testText !== undefined){ + if(testText.length > 8){ + for (let i = 0; i < testText.length; i += 8) { + // 使用slice方法获取当前段的字符串 + const line = testText.slice(i, i + 8); + g.append('g') + .selectAll('text') + .data(repeatArr) + .join('text') + .attr('style', 'font-size:14px') + .attr('class', 'mytext') + .text(line) + .attr('x', () => { + const pos = getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.index + 1 + + return pos * viewConfig.step + textLeftMargin + }) + .attr('y', () => { + return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + i*2.5 + }) + } + }else{ + g.append('g') + .selectAll('text') + .data(repeatArr) + .join('text') + .attr('style', 'font-size:14px;') + .attr('class', 'mytext') + .text(testText) + .attr('x', () => { + const pos = getTypeValue(key, viewConfig.renderData.typesData)[j - 1]?.index + 1 + + return pos * viewConfig.step + textLeftMargin + }) + .attr('y', () => { + return viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + }) + } } } - } - } else { + } + else { g.append('g') .selectAll('text') .data(repeatArr) .join('text') // .attr('style', 'font-size:15px; font-weight:bold') - .attr('style', (i, d) => { - // 使用回调函数来设置样式 - let textContent = - i === 0 - ? name - : getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; + .attr('style', (i, d) => { // 使用回调函数来设置样式 + let textContent = (i === 0) ? name : getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; let fontSize = '15px'; // 默认字体大小margin-left: 15px - + // 检查条件并设置不同的字体大小 if (key === '005' && textContent === '*') { fontSize = '30px'; // 或者你想要的任何特定大小 } - + // 构建并返回样式字符串 return `font-size: ${fontSize};font-weight:bold;`; // 注意这里只设置了字体大小,其他样式未受影响 }) .attr('class', 'mytext') .text((i) => { if (i === 0) { - return name; + return name } else { - let textValue = getTypeValue(key, viewConfig.renderData.typesData)[i - 1] - ?.typeValue; - return textValue; + let textValue = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue + return textValue } }) .attr('x', (i) => { - let nameLocation = textLeftMargin * 2 + 10; + let nameLocation = textLeftMargin * 2 + 10 if (i === 0) { - if (key === '006') { - nameLocation = textLeftMargin * 2 - 3; + if(key === '006'){ + nameLocation = textLeftMargin * 2 - 3 } - return nameLocation; + return nameLocation } - const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1; - const typesData = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]; + const pos = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.index + 1 + const typesData = getTypeValue(key, viewConfig.renderData.typesData)[i-1] if (typesData) { - const firstNameLength = typesData.typeValue.length; - if (firstNameLength === 1) { - return pos * viewConfig.step + textLeftMargin + 50; - } else if (firstNameLength === 2) { - return pos * viewConfig.step + textLeftMargin + 46; - } else if (firstNameLength === 3) { - return pos * viewConfig.step + textLeftMargin + 43; - } else if (firstNameLength === 4) { - if (typesData.typeCode === '010') { - return pos * viewConfig.step + textLeftMargin + 45; + const firstNameLength = typesData.typeValue.length + if (firstNameLength === 1) { + return pos * viewConfig.step + textLeftMargin + 50 + } else if (firstNameLength === 2) { + return pos * viewConfig.step + textLeftMargin + 46 + } else if (firstNameLength === 3) { + return pos * viewConfig.step + textLeftMargin + 43 + } else if (firstNameLength === 4) { + if (typesData.typeCode === '010') { + return pos * viewConfig.step + textLeftMargin + 45 + } else { + return pos * viewConfig.step + textLeftMargin + 40 + } + } else if (firstNameLength === 5) { + return pos * viewConfig.step + textLeftMargin + 38 + } else if (firstNameLength === 6) { + return pos * viewConfig.step + textLeftMargin + 32 + } else if (firstNameLength > 10) { + return pos * viewConfig.step + textLeftMargin } else { - return pos * viewConfig.step + textLeftMargin + 40; + return pos * viewConfig.step + textLeftMargin + 32 } - } else if (firstNameLength === 5) { - return pos * viewConfig.step + textLeftMargin + 38; - } else if (firstNameLength === 6) { - return pos * viewConfig.step + textLeftMargin + 32; - } else if (firstNameLength > 10) { - return pos * viewConfig.step + textLeftMargin; - } else { - return pos * viewConfig.step + textLeftMargin + 32; - } } else { - return pos * viewConfig.step + textLeftMargin + 30; + return pos * viewConfig.step + textLeftMargin + 30 } }) .attr('y', (i) => { - const daBianValue = getTypeValue(key, viewConfig.renderData.typesData)[i - 1] - ?.typeValue; - let textHeight = - viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM; - if (key === '005' && daBianValue === '*') { - textHeight = textHeight + 12; + const daBianValue = getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue + let textHeight = viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + if(key === '005' && daBianValue === '*'){ + textHeight = textHeight + 12 } - return textHeight; - }); - // .attr('y', () => { - // return ( - // viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + 1 - // ) - // }) + return textHeight + }) + // .attr('y', () => { + // return ( + // viewConfig.bottomKeysPosStart + (index + 3) * LINE_HEIGHT - TEXT_MARGIN_BOTTOM + 1 + // ) + // }) } } - }); - } + }) + } // 绘制底部的线条和文字 // function drwaBottomLineData(svg) { // const g = getG(svg, viewConfig) @@ -683,20 +645,20 @@ function ConnectedScatterplot(options) { // .selectAll('text') // .data(repeatArr) // .join('text') - + // // .attr('style', 'font-size:14px') - // .attr('style', (i, d) => { // 使用回调函数来设置样式 - // let textContent = (i === 0) ? name : getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; - // let fontSize = '14px'; // 默认字体大小margin-left: 5px - - // // 检查条件并设置不同的字体大小 - // if (key === '005' && textContent === '*') { - // fontSize = '30px'; // 或者你想要的任何特定大小 - // } - - // // 构建并返回样式字符串 - // return `font-size: ${fontSize};`; // 注意这里只设置了字体大小,其他样式未受影响 - // }) + // .attr('style', (i, d) => { // 使用回调函数来设置样式 + // let textContent = (i === 0) ? name : getTypeValue(key, viewConfig.renderData.typesData)[i - 1]?.typeValue; + // let fontSize = '14px'; // 默认字体大小margin-left: 5px + + // // 检查条件并设置不同的字体大小 + // if (key === '005' && textContent === '*') { + // fontSize = '30px'; // 或者你想要的任何特定大小 + // } + + // // 构建并返回样式字符串 + // return `font-size: ${fontSize};`; // 注意这里只设置了字体大小,其他样式未受影响 + // }) // .attr('class', 'mytext') // .text((i) => { // if (i === 0) { @@ -725,38 +687,45 @@ function ConnectedScatterplot(options) { // } // 绘制呼吸 function drwaBreathing(svg, breathData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) // 遮罩层挡住超出的折线 g.append('rect') .attr('class', 'mask-rect') .attr('x', 0) .attr('y', viewConfig.bottomKeysPosStart) - .attr('width', viewConfig.width - viewConfig.marginRight - viewConfig.marginLeft) + .attr( + 'width', + viewConfig.width - viewConfig.marginRight - viewConfig.marginLeft + ) .attr('height', viewConfig.micoStep * 2 - 1) .attr('stroke', viewConfig.stroke) .attr('fill', '#fff') - .attr('style', 'stroke-width: 0'); + .attr('style', 'stroke-width: 0') // 绘制横线 g.append('line') .attr('x1', 0) .attr('y1', viewConfig.bottomKeysPosStart) .attr('y2', viewConfig.bottomKeysPosStart) - .attr('x2', viewConfig.width - viewConfig.marginLeft - viewConfig.marginRight) + .attr( + 'x2', + viewConfig.width - viewConfig.marginLeft - viewConfig.marginRight + ) .attr('fill', 'none') .attr('class', 'dataLine') .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); - const textYPos = viewConfig.bottomKeysPosStart + LINE_HEIGHT + TEXT_MARGIN_BOTTOM; + .attr('stroke-linecap', viewConfig.strokeLinecap) + const textYPos = + viewConfig.bottomKeysPosStart + LINE_HEIGHT + TEXT_MARGIN_BOTTOM // 绘制汉字 g.append('text') .attr('style', 'font-size:15px;font-weight:bold') .text('呼 吸(次/分)') .attr('x', textLeftMargin * 2) - .attr('y', textYPos); + .attr('y', textYPos) // 绘制数据 - const data = d3.range(42); + const data = d3.range(42) g.append('g') .selectAll('text') .data(data) @@ -764,30 +733,30 @@ function ConnectedScatterplot(options) { .attr('style', 'font-size:14px') .attr('class', 'mytext') .text((d) => { - return breathData[d]?.value; + return breathData[d]?.value }) .attr('x', (i) => { - const index = breathData[i]?.index; - return viewConfig.step + index * viewConfig.micoStep + 3; + const index = breathData[i]?.index + return viewConfig.step + index * viewConfig.micoStep + 3 }) .attr('y', (i) => { if (i % 2) { - return textYPos + 10; + return textYPos + 10 } else { - return textYPos - 10; + return textYPos - 10 } - }); + }) // 绘制呼吸竖线 g.append('g') .selectAll('line') .data(data) .join('line') .attr('x1', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y1', viewConfig.bottomKeysPosStart + 2 * LINE_HEIGHT) .attr('x2', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y2', viewConfig.bottomKeysPosStart) .attr('fill', 'none') @@ -795,19 +764,36 @@ function ConnectedScatterplot(options) { .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) } // 绘制脉搏体温文字 function drwaPulse(svg) { // 左侧的文字 - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) g.append('line') .attr('class', 'slefline') .attr('y1', viewConfig.topKeysPos) // 这个还要修改一下 .attr('x1', viewConfig.step / 2) .attr('y2', viewConfig.bottomKeysPosStart) .attr('x2', viewConfig.step / 2) - .attr('stroke', viewConfig.stroke); + .attr('stroke', viewConfig.stroke) + // 画刻度尺 + + // for (let i = 5; i <= 70; i++) { + // const yPosition = viewConfig.topKeysPos + viewConfig.micoStep * 2.8 * i / 5 + 50 + // let lineLength = 9 // 设置加长的刻度线长度 + // if (i % 5 === 0) { + // lineLength = 16 + // } + // 画刻度线 + // g.append('line') + // .attr('x1', viewConfig.step / 2) // 刻度线的x坐标 + // .attr('y1', yPosition) + // .attr('x2', viewConfig.step / 2 - lineLength) // 刻度线的结束坐标 + // .attr('y2', yPosition) + // .attr('stroke', viewConfig.stroke) + //.attr('stroke-width', 2) + //} leftTEXT.map((texts, index) => { g.append('g') @@ -818,30 +804,30 @@ function ConnectedScatterplot(options) { .attr('class', 'mytext') .html((d, i) => { if (i === 0) { - const value = d.split(','); - return `${value[0]}${ - value[1] - }${value[2]}`; + const value = d.split(',') + return `${value[0]}${value[1]}${value[2]}` } - return `${d}`; + return `${d}` }) .attr('x', (d, i) => { // 调整坐标文字显示位置 if (i === 0) { if (index === 0) { - return viewConfig.micoStep * Math.max(index * 4, 1) - 12; + return viewConfig.micoStep * Math.max(index * 4, 1) - 12 } - return viewConfig.micoStep * Math.max(index * 4, 1) - 6; + return viewConfig.micoStep * Math.max(index * 4, 1) - 6 } - return viewConfig.micoStep * Math.max(index * 4, 0.9); + return viewConfig.micoStep * Math.max(index * 4, 0.9) }) .attr('y', (d, i) => { if (i === 0) { - return viewConfig.topKeysPos + viewConfig.micoStep * 1; + return viewConfig.topKeysPos + viewConfig.micoStep * 1 } - return viewConfig.topKeysPos + viewConfig.micoStep * 5 * i; - }); - }); + return viewConfig.topKeysPos + viewConfig.micoStep * 5 * i + }) + }) // 绘制疼痛表格 if (showPain) { @@ -856,7 +842,7 @@ function ConnectedScatterplot(options) { .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) painTEXT.map((texts, index) => { g.append('g') @@ -867,47 +853,38 @@ function ConnectedScatterplot(options) { .attr('class', 'mytext') .html((d, i) => { if (d.length > 2) { - const value = d.split(' '); - return `${value[0]}${value[1]}${ - value[2] - }${value[3]}`; + const value = d.split(' ') + return `${value[0]}${value[1]}${value[2]}${value[3]}` } else if (i === 0) { - return `${d}`; + return `${d}` } - return `${d}`; + return `${d}` }) .attr('x', (d, i) => { // 调整坐标文字显示位置 if (i === 0) { if (index === 0) { - return viewConfig.micoStep * Math.max(index * 4, 1) - 12; + return viewConfig.micoStep * Math.max(index * 4, 1) - 12 } - return viewConfig.micoStep * Math.max(index * 4, 1) - 6; + return viewConfig.micoStep * Math.max(index * 4, 1) - 6 } - return viewConfig.micoStep * Math.max(index * 4, 0.9); + return viewConfig.micoStep * Math.max(index * 4, 0.9) }) .attr('y', (d, i) => { if (i === 0) { - return viewConfig.bottomKeysPosStart - viewConfig.micoStep * 3.8 - 30; + return viewConfig.bottomKeysPosStart - viewConfig.micoStep * 3.8 - 30 } - return ( - viewConfig.bottomKeysPosStart - - viewConfig.micoStep * 3.8 + - viewConfig.micoStep * i - - 30 - ); - }); - }); + return viewConfig.bottomKeysPosStart - viewConfig.micoStep * 3.8 + viewConfig.micoStep * i - 30 + }) + }) } } // 绘制折线的背景格子 function drawbgLine(svg) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) // 绘制横线 - const horizontallength = (bodyTemperature[1] - bodyTemperature[0] + 1) * 5; - const horizontalData = [...new Array(horizontallength).keys()]; + const horizontallength = (bodyTemperature[1] - bodyTemperature[0] + 1) * 5 + const horizontalData = [...new Array(horizontallength).keys()] g.append('g') .attr('class', 'line-content') .selectAll('line') @@ -917,19 +894,19 @@ function ConnectedScatterplot(options) { .attr('x1', (d, i) => { // 判断是否是最后五条线,如果是,则减少几厘米 if (i >= horizontalData.length - 9) { - return viewConfig.step - 60; // 向前缩短20像素 + return viewConfig.step - 60 // 向前缩短20像素 } // 判断是否是最后五条线,如果是,则减少几厘米 if (i >= horizontalData.length - 10) { - return viewConfig.step - 120; // 向前缩短20像素 + return viewConfig.step -120 // 向前缩短20像素 } - return viewConfig.step; // 其他线使用默认长度 + return viewConfig.step // 其他线使用默认长度 }) .attr('y1', (d, i) => { - return viewConfig.topKeysPos + i * viewConfig.micoStep; + return viewConfig.topKeysPos + i * viewConfig.micoStep }) .attr('y2', (d, i) => { - return viewConfig.topKeysPos + i * viewConfig.micoStep; + return viewConfig.topKeysPos + i * viewConfig.micoStep }) // .attr('x2', (d, i) => { // // 判断是否是最后五条线,如果是,则减少几厘米 @@ -947,25 +924,25 @@ function ConnectedScatterplot(options) { .attr('stroke-linecap', viewConfig.strokeLinecap) .attr('style', (d, i) => { if (i === horizontalData.length - 5) { - return 'stroke-width: 1; stroke: black;'; // 不绘制最后一条线 + return 'stroke-width: 1; stroke: black;' // 不绘制最后一条线 } if (i % 5 === 0 && i !== 0) { - return 'stroke-width: 3; stroke: blue;'; + return 'stroke-width: 3; stroke: blue;' } - return 'stroke-width: 1'; - }); + return 'stroke-width: 1' + }) // 竖线绘制 - const verticalData = [...new Array(42).keys()]; + const verticalData = [...new Array(42).keys()] g.append('g') .selectAll('line') .data(verticalData) .join('line') .attr('x1', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y1', viewConfig.topKeysPos) .attr('x2', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y2', viewConfig.bottomKeysPosStart) .attr('fill', 'none') @@ -973,7 +950,7 @@ function ConnectedScatterplot(options) { .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) g.append('line') .attr('class', 'myline') @@ -984,21 +961,21 @@ function ConnectedScatterplot(options) { .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) } // 绘制顶部数据 function drwaTopData(svg) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) // 绘制横向线条 g.selectAll('line') .data(TOP_KEYS) .join('line') .attr('x1', 0) .attr('y1', (d, i) => { - return LINE_HEIGHT * (i + 1); + return LINE_HEIGHT * (i + 1) }) .attr('y2', (d, i) => { - return LINE_HEIGHT * (i + 1); + return LINE_HEIGHT * (i + 1) }) .attr('x2', viewConfig.contentWidth) .attr('fill', 'none') @@ -1006,9 +983,9 @@ function ConnectedScatterplot(options) { .attr('stroke', viewConfig.stroke) .attr('stroke-width', 1) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) // 数据的值 - const repeatArr = [...new Array(8).keys()]; + const repeatArr = [...new Array(8).keys()] // 绘制文字 TOP_KEYS.map(({ getValue, name }, index) => { g.append('g') @@ -1019,27 +996,25 @@ function ConnectedScatterplot(options) { .attr('class', 'mytext') .text((i) => { if (i === 0) { - return name; + return name } else { - return getValue(i - 1, viewConfig.renderData); + return getValue(i - 1, viewConfig.renderData) } }) .attr('x', (i) => i * viewConfig.step + viewConfig.step / 2) .attr('y', () => { - return LINE_HEIGHT * (index + 1) - TEXT_MARGIN_BOTTOM; - }); - }); + return LINE_HEIGHT * (index + 1) - TEXT_MARGIN_BOTTOM + }) + }) // 绘制时间字段 // 绘制汉字 g.append('text') .attr('style', 'font-size:14px;text-anchor:middle;') .text('时 间') .attr('x', viewConfig.step / 2) - .attr('y', viewConfig.topKeysPos - TEXT_MARGIN_BOTTOM); + .attr('y', viewConfig.topKeysPos - TEXT_MARGIN_BOTTOM) // 绘制竖线和时间汉字 - const data = new Array(timeNumber.length * 7) - .fill('') - .map((d, i) => timeNumber[i % timeNumber.length]); + const data = new Array(timeNumber.length * 7).fill('').map((d, i) => timeNumber[i % timeNumber.length]) g.append('g') .selectAll('text') .data(data) @@ -1048,20 +1023,20 @@ function ConnectedScatterplot(options) { .attr('class', 'mytext') .attr('fill', (d) => { if (nightTime.includes(d)) { - return 'red'; + return 'red' } else { - return viewConfig.stroke; + return viewConfig.stroke } }) .text((d) => { - return d; + return d }) .attr('x', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep + 3; + return viewConfig.step + i * viewConfig.micoStep + 3 }) .attr('y', (d, i) => { - return viewConfig.topKeysPos - TEXT_MARGIN_BOTTOM; - }); + return viewConfig.topKeysPos - TEXT_MARGIN_BOTTOM + }) // 线条 g.append('g') .attr('class', 'textYPos') @@ -1069,94 +1044,150 @@ function ConnectedScatterplot(options) { .data(data) .join('line') .attr('x1', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y1', viewConfig.topKeysPos - LINE_HEIGHT) .attr('x2', (d, i) => { - return viewConfig.step + i * viewConfig.micoStep; + return viewConfig.step + i * viewConfig.micoStep }) .attr('y2', viewConfig.topKeysPos) .attr('fill', 'none') .attr('class', 'dataLine') .attr('stroke', viewConfig.stroke) .attr('stroke-width', (d, i) => { - return i % 6 ? 1 : 0; + return i % 6 ? 1 : 0 }) .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) } - // 获取折线区域的高度 - // function utilsGetMicoPos (step, botpos) { - // const micoStep = (step * 7) / 42 // 折线小格子的宽度 - // const verticalLength = bodyTemperature[1] - bodyTemperature[0] + 1 // 根据体温来计算格子 - // const verticalHeight = micoStep * 5 * verticalLength - // return { - // micoStep, - // verticalHeight - // } - // } // 绘制折线 function brokenLine(svg, pathData) { - const I = d3.map(pathData, (_, i) => i); - const g = getG(svg, viewConfig); + const I = d3.map(pathData, (_, i) => i) + const g = getG(svg, viewConfig) const line = d3 .line() .defined((i) => pathData[i].value) .x((i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }) - .y((i) => bodyScale(pathData[i].value)); - g.attr('class', 'body-line'); + .y((i) => bodyScale(pathData[i].value)) + g.attr('class', 'body-line') getDrawPath({ content: g, - line: line(I.filter((i) => pathData[i].value)), - }); + line: line(I.filter((i) => pathData[i].value)) + }) } // 获取体温数据 function getIndexValue(list1, list2, list3, list4) { - let list = []; - list = list.concat(list1.filter((x) => x.value !== null)); - list = list.concat(list2.filter((x) => x.value !== null)); - list = list.concat(list3.filter((x) => x.value !== null)); - list = list.concat(list4.filter((x) => x.value !== null)); - list.sort((x, y) => x.index - y.index); + let list = [] + list = list.concat(list1.filter((x) => x.value !== null)) + list = list.concat(list2.filter((x) => x.value !== null)) + list = list.concat(list3.filter((x) => x.value !== null)) + list = list.concat(list4.filter((x) => x.value !== null)) + list.sort((x, y) => x.index - y.index) return list.map((x) => { return { index: x.index, - value: bodyScale(x.value), - }; - }); + value: bodyScale(x.value) + } + }) } + // // 绘制口温 + // function drawPathBody(svg, pathData) { + // const g = getG(svg, viewConfig); + // g.on( + // 'pointerenter pointermove', + // generatePointer({ + // pathData, + // type: '口温', + // yScaleInstance: bodyScale + // }) + // ).on('pointerleave', pointerleft); + // iconDrawObj.getDrawRoundIcon({ + // content: g, + // data: d3.range(pathData.length), + // x: (i) => { + // return xScale(pathData[i].index) + viewConfig.X_OFFSET; + // }, + // y: (i) => bodyScale(pathData[i].value <= 35 ? 0 : pathData[i].value), + // r: 3 + // }); + // } + // // 绘制肛温 + // function drawJuhua(svg, pathData) { + // const g = getG(svg, viewConfig); + // g.on( + // 'pointerenter pointermove', + // generatePointer({ + // pathData, + // type: '肛温', + // yScaleInstance: bodyScale + // }) + // ).on('pointerleave', pointerleft); + // iconDrawObj.getDrawRoundDotIcon({ + // content: g, + // data: d3.range(pathData.length), + // x: (i) => xScale(pathData[i].index) + viewConfig.X_OFFSET, + // y: (i) => bodyScale(pathData[i].value <= 35 ? 0 : pathData[i].value), + // fill: 'white', + // deepFill: 'blue', + // r: 3 + // }); + // } + // // 绘制 耳温 + // function thermometer(svg, pathData) { + // const g = getG(svg, viewConfig); + // g.on( + // 'pointerenter pointermove', + // generatePointer({ + // pathData, + // type: '耳温', + // yScaleInstance: bodyScale + // }) + // ).on('pointerleave', pointerleft); + // iconDrawObj.drawThreeIcon({ + // content: g, + // data: d3.range(pathData.length), + // x: (i) => { + // return xScale(pathData[i].index) + viewConfig.X_OFFSET; + // }, + // y: (i) => { + // return bodyScale(pathData[i].value <= 35 ? 0 : pathData[i].value); + // }, + // fill: 'white', + // riangle: 24 + // }); + // } // 绘制 疼痛曲线 function drawPain(svg, pathData) { - const g = getG(svg, viewConfig); - const I = d3.map(pathData, (_, i) => i); + const g = getG(svg, viewConfig) + const I = d3.map(pathData, (_, i) => i) g.on( 'pointerenter pointermove', generatePointer({ pathData: viewConfig.renderData.painScore.flat(Infinity), type: '疼痛', - yScaleInstance: heartScale, + yScaleInstance: heartScale }) - ).on('pointerleave', pointerleft); + ).on('pointerleave', pointerleft) const line = d3 .line() .defined((i) => pathData[i].value || pathData[i].value === 0) .x((i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }) .y((i) => { if (pathData[i].value) { - return painScale(pathData[i].value / 10) + 10; + return painScale(pathData[i].value / 10) + 10 } - return painScale(0) + 10; - }); + return painScale(0) + 10 + }) getDrawPath({ content: g, line: line(I.filter((i) => pathData[i].value || pathData[i].value === 0)), - stroke: 'black', - }); + stroke: 'black' + }) // iconDrawObj.getDrawRoundIcon({ // content: g, // data: d3.range(pathData.length), @@ -1173,120 +1204,137 @@ function ConnectedScatterplot(options) { // fill: 'black', // stroke: 'black' // }) - + iconDrawObj.drawThreeIcon({ content: g, data: d3.range(pathData.length), x: (i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }, y: (i) => { if (pathData[i].value) { - return painScale(pathData[i].value / 10) + 10; + return painScale(pathData[i].value / 10) + 10 } - return painScale(0) + 10; + return painScale(0) + 10 }, - riangle: 24, - }); + riangle: 24 + }) } // 绘制脉搏 function drawHeart(svg, pathData, isEmpty) { - const I = d3.map(pathData, (_, i) => i); - const g = getG(svg, viewConfig); + const I = d3.map(pathData, (_, i) => i) + const g = getG(svg, viewConfig) g.on( 'pointerenter pointermove', generatePointer({ pathData: viewConfig.renderData.datasetPulse.flat(Infinity), type: '脉搏', - yScaleInstance: heartScale, + yScaleInstance: heartScale }) - ).on('pointerleave', pointerleft); + ).on('pointerleave', pointerleft) const line = d3 .line() .defined((i) => pathData[i].value) .x((i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }) - .y((i) => heartScale(pathData[i].value || 0)); - if (isEmpty) { + .y((i) => heartScale(pathData[i].value || 0)) + if(isEmpty){ getDrawPath({ content: g, line: line(I.filter((i) => pathData[i].value)), - stroke: 'red', - }); + stroke: 'red' + }) } iconDrawObj.getDrawRoundIcon({ content: g, data: d3.range(pathData.length), x: (i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }, y: (i) => { - return heartScale(pathData[i].value); + return heartScale(pathData[i].value) }, fill: isEmpty ? 'transparent' : 'red', - stroke: 'red', - }); + stroke: 'red' + }) } // 绘制心率 function drawHeartRate(svg, pathData) { - const I = d3.map(pathData, (_, i) => i); - const g = getG(svg, viewConfig); + const I = d3.map(pathData, (_, i) => i) + const g = getG(svg, viewConfig) g.on( 'pointerenter pointermove', generatePointer({ pathData: viewConfig.renderData.datasetHeartRate.flat(Infinity), type: '心率', - yScaleInstance: heartScale, + yScaleInstance: heartScale }) - ).on('pointerleave', pointerleft); + ).on('pointerleave', pointerleft) const line = d3 .line() .defined((i) => pathData[i].value) .x((i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }) - .y((i) => heartScale(pathData[i].value || 0)); + .y((i) => heartScale(pathData[i].value || 0)) getDrawPath({ content: g, line: line(I.filter((i) => pathData[i].value)), - stroke: 'red', - }); + stroke: 'red' + }) iconDrawObj.getDrawRoundIcon({ content: g, data: d3.range(pathData.length), x: (i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }, y: (i) => { - return heartScale(pathData[i].value); + return heartScale(pathData[i].value) }, fill: 'white', - stroke: 'red', - }); + stroke: 'red' + }) } // 腋温 function drawAnus(svg, pathData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) g.on( 'pointerenter pointermove', generatePointer({ pathData, type: '体温', - yScaleInstance: bodyScale, + yScaleInstance: bodyScale }) - ).on('pointerleave', pointerleft); + ).on('pointerleave', pointerleft) iconDrawObj.getDrawXIcon({ content: g, data: d3.range(pathData.length), x: (i) => { - return xScale(pathData[i].index) + viewConfig.X_OFFSET; + return xScale(pathData[i].index) + viewConfig.X_OFFSET }, - y: (i) => - bodyScale(pathData[i].value ? (pathData[i].value <= 35 ? 0 : pathData[i].value) : 0), - }); + y: (i) => bodyScale(pathData[i].value ? (pathData[i].value <= 35 ? 0 : pathData[i].value) : 0) + // style: { + // stroke: 'black', // 线的颜色 + // 'stroke-width': 6, // 加粗,设置合适的宽度 + // fill: 'none' // 如果需要可以调整填充 + // } + }) + const line = d3 + .line() + .x((d, i) => xScale(d.index) + viewConfig.X_OFFSET) + .y((d) => bodyScale(d.value ? (d.value <= 35 ? 0 : d.value) : 0)) + .defined((d) => d.value !== null && d.value !== undefined) // 过滤无效数据点 + + g.append('path') + .attr('class', 'axillary-line') + .attr('d', line(pathData)) + .attr('fill', 'none') + .attr('stroke', 'blue') + .attr('stroke-width', 2) + .on('pointerleave', () => tooltip.style('display', 'none')) } // 绘制一个线条 @@ -1299,224 +1347,206 @@ function ConnectedScatterplot(options) { .attr('stroke-width', viewConfig.strokeWidth) .attr('stroke-linejoin', viewConfig.strokeLinejoin) .attr('stroke-linecap', viewConfig.strokeLinecap) - .attr('d', line); + .attr('d', line) } - // // 绘制降温的红圈和虚线 - // function drawCoolBody(svg, coolData, allData) { - // console.log('绘制降温的红圈和虚线',svg, coolData, allData) - // const g = getG(svg, viewConfig) - // const lineData = []; + // // 绘制降温的红圈和虚线 + // function drawCoolBody(svg, coolData, allData) { + // console.log('绘制降温的红圈和虚线', coolData, allData) + // const g = getG(svg, viewConfig) - // // 遍历data1中的每个对象 - // allData.forEach(item1 => { - // console.log('这应该有值吧',item1) - // // 如果item1有index和date属性 - // if (item1.index !== undefined && item1.date !== undefined) { - // console.log('这应该有值吧',item1) - // // 遍历data2中的每个对象 - // coolData.forEach(item2 => { - // // 如果item2也有index和date属性,并且它们与item1的相等 - // if (item2.index === item1.index && item2.date === item1.date) { - // // 将匹配的对象添加到结果数组中 - // // 这里可以添加整个对象,或者根据需要添加对象的某些属性 - // lineData.push({ ...item1, ...item2 }); // 使用展开运算符合并对象,注意这可能会覆盖相同属性的值 - // // 如果不希望覆盖,可以只添加item1或item2,或者创建一个新对象包含所需属性 - // } - // }); - // } - // }); - // console.log('绘制降温的红圈和虚线2222',lineData) - // g.append('g') - // .selectAll('line') - // .data(lineData) - // .join('line') - // .attr('class', 'xuxianliane') - // .attr('x1', function({ index,date,value }) { - // return xScale(index) + viewConfig.X_OFFSET + (index - 20) / 4 - // }) - // .attr('y1', function({ value }) { - // return bodyScale(value) - // }) - // .attr('x2', function({ index }) { - // return xScale(index) + viewConfig.X_OFFSET + (index - 20) / 4 - // }) - // .attr('y2', function({ index,date }) { - // const bodyValue = allData.filter(item => item.index === index && item.date === date )[0].value - // return bodyScale(bodyValue) - // }) - // .attr('stroke', 'red') - // .attr('stroke-width', 2) - // .style('stroke-dasharray', '3, 3') - // .attr('stroke-linejoin', viewConfig.strokeLinejoin) - // .attr('stroke-linecap', viewConfig.strokeLinecap) - // // 绘制icon - // iconDrawObj.getDrawRoundIcon({ - // content: g, - // data: d3.range(lineData.length), - // x: (i) => { - // return xScale(lineData[i].index) + viewConfig.X_OFFSET + (lineData[i].index - 20) / 4 - // }, - // y: (i) => { - // return bodyScale(lineData[i].value) - // }, - // fill: 'transparent', - // stroke: 'red', - // r: 6 + // const lineData = []; + + // // 遍历data1中的每个对象 + // coolData.forEach(item1 => { + // // 如果item1有index和date属性 + // if (item1.index !== undefined && item1.date !== undefined) { + // // 遍历data2中的每个对象 + // allData.forEach(item2 => { + // // 如果item2也有index和date属性,并且它们与item1的相等 + // if (item2.index === item1.index && item2.date === item1.date) { + // // 将匹配的对象添加到结果数组中 + // // 这里可以添加整个对象,或者根据需要添加对象的某些属性 + // lineData.push({ ...item1, ...item2 }); // 使用展开运算符合并对象,注意这可能会覆盖相同属性的值 + // // 如果不希望覆盖,可以只添加item1或item2,或者创建一个新对象包含所需属性 + // } + // }); + // } + // }); + // console.log('绘制降温的红圈和虚线lineData',lineData, coolData, allData) + // g.append('g') + // .selectAll('line') + // .data(lineData) + // .join('line') + // .attr('class', 'xuxianliane') + // .attr('x1', function({ index,date,value }) { + // return xScale(index) + viewConfig.X_OFFSET + (index - 20) / 4 // }) - // } - + // .attr('y1', function({ value }) { + // return bodyScale(value) + // }) + // .attr('x2', function({ index }) { + // return xScale(index) + viewConfig.X_OFFSET + (index - 20) / 4 + // }) + // .attr('y2', function({ index,date }) { + // const bodyValue = allData.filter(item => item.index === index && item.date === date )[0].value + // return bodyScale(bodyValue) + // }) + // .attr('stroke', 'red') + // .attr('stroke-width', 2) + // .style('stroke-dasharray', '3, 3') + // .attr('stroke-linejoin', viewConfig.strokeLinejoin) + // .attr('stroke-linecap', viewConfig.strokeLinecap) + // // 绘制icon + // iconDrawObj.getDrawRoundIcon({ + // content: g, + // data: d3.range(lineData.length), + // x: (i) => { + // return xScale(lineData[i].index) + viewConfig.X_OFFSET + (lineData[i].index - 20) / 4 + // }, + // y: (i) => { + // return bodyScale(lineData[i].value) + // }, + // fill: 'transparent', + // stroke: 'red', + // r: 6 + // }) + // } // 绘制降温的红圈和虚线 function drawCoolBody(svg, coolData, allData) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) // 获取同个位置记录的温度 const temArrMap = allData.reduce((data, items) => { items.map((item) => { if (item.value) { - data[item.index] = item.value; + data[item.index] = item.value } - }); - return data; - }, {}); - const vaildData = coolData.filter((item) => item.value); - const lineData = vaildData.filter(({ index, value }) => temArrMap[index] !== value); + }) + return data + }, {}) + const vaildData = coolData.filter((item) => item.value) + const lineData = vaildData.filter(({ index, value }) => temArrMap[index] !== value) g.append('g') .selectAll('line') .data(lineData) .join('line') .attr('class', 'xuxianliane') - .attr('x1', function ({ index }) { - return xScale(index) + viewConfig.X_OFFSET; + .attr('x1', function({ index }) { + return xScale(index) + viewConfig.X_OFFSET }) - .attr('y1', function ({ value }) { - return bodyScale(value); + .attr('y1', function({ value }) { + return bodyScale(value) }) - .attr('x2', function ({ index }) { - return xScale(index) + viewConfig.X_OFFSET; + .attr('x2', function({ index }) { + return xScale(index) + viewConfig.X_OFFSET }) - .attr('y2', function ({ index, value }) { - const bodyValue = temArrMap[index]; - let y2Location = bodyScale(value); + .attr('y2', function({ index,value }) { + const bodyValue = temArrMap[index] + let y2Location = bodyScale(value) if (bodyValue !== undefined) { - y2Location = bodyScale(bodyValue); + + y2Location = bodyScale(bodyValue) } - return y2Location; + return y2Location }) .attr('stroke', 'red') .attr('stroke-width', 2) .style('stroke-dasharray', '3, 3') .attr('stroke-linejoin', viewConfig.strokeLinejoin) - .attr('stroke-linecap', viewConfig.strokeLinecap); + .attr('stroke-linecap', viewConfig.strokeLinecap) // 绘制icon iconDrawObj.getDrawRoundIcon({ content: g, data: d3.range(vaildData.length), x: (i) => { - return xScale(vaildData[i].index) + viewConfig.X_OFFSET; + return xScale(vaildData[i].index) + viewConfig.X_OFFSET }, y: (i) => { - return bodyScale(vaildData[i].value); + return bodyScale(vaildData[i].value) }, fill: 'transparent', stroke: 'red', - r: 6, - }); + r: 6 + }) } - // 绘制同一时间心率和脉搏的阴影 function drawRateBody(svg, pulseData, heartRateData) { if (pulseData[0].length > 0 || heartRateData[0].length > 0) { - const g = getG(svg, viewConfig); + const g = getG(svg, viewConfig) - const defs = g.append('defs'); - const pattern = defs - .append('pattern') - .attr('id', 'diagonal-hatch') - .attr('patternUnits', 'userSpaceOnUse') - .attr('width', 1) - .attr('height', 6) - .attr('patternTransform', 'rotate(100)'); // 45度斜线 - - pattern - .append('path') + const defs = g.append("defs"); + const pattern = defs.append("pattern") + .attr("id", "diagonal-hatch") + .attr("patternUnits", "userSpaceOnUse") + .attr("width", 1) + .attr("height", 6) + .attr("patternTransform", "rotate(100)"); // 45度斜线 + + pattern.append("path") // .attr("d", "M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2") - .attr('d', 'M-1,-1 l2,2 M0,0 l4,4 M3,3 l2,2') - .attr('stroke', 'red') // 虚线颜色 - .attr('stroke-width', 1) - .attr('opacity', 0.8); // 透明度 + .attr("d", "M-1,-1 l2,2 M0,0 l4,4 M3,3 l2,2") + .attr("stroke", 'red') // 虚线颜色 + .attr("stroke-width", 1) + .attr("opacity", 0.8); // 透明度 // 创建一个映射,用于快速查找心率值 const heartRateMap = heartRateData[0].reduce((acc, curr) => { - acc[curr.index] = curr.value; - return acc; - }, {}); + acc[curr.index] = curr.value + return acc + }, {}) // 创建一个映射,用于快速查找脉搏值 const pulseDataMap = pulseData[0].reduce((acc, curr) => { - acc[curr.index] = curr.value; - return acc; - }, {}); + acc[curr.index] = curr.value + return acc + }, {}) if (Object.keys(heartRateMap).length >= 3 && Object.keys(pulseDataMap).length >= 3) { // 获取脉搏和心率的起点和终点 - const pulseStart = pulseData[0][0]; + const pulseStart = pulseData[0][0] // const pulseEnd = pulseData[0][pulseData[0].length - 1] - const heartRateStart = heartRateMap[pulseStart.index]; + const heartRateStart = heartRateMap[pulseStart.index] // const heartRateEnd = heartRateMap[pulseEnd.index] // 生成路径数据 const pathData = pulseData[0].reduce((acc, { value, index }, i) => { - const heartRateValue = heartRateMap[index]; + const heartRateValue = heartRateMap[index] // 过滤掉没有脉搏值和对应心率值的项 - if ( - value !== null && - value !== undefined && - heartRateValue !== null && - heartRateValue !== undefined - ) { - const y1 = heartScale(value || 0); - const x = xScale(index) + viewConfig.X_OFFSET; - const y2 = heartScale(heartRateValue || 0); + if (value !== null && value !== undefined && heartRateValue !== null && heartRateValue !== undefined) { + + const y1 = heartScale(value || 0) + const x = xScale(index) + viewConfig.X_OFFSET + const y2 = heartScale(heartRateValue || 0) // 如果是第一个点,移动到起始点 if (acc === '') { - acc += `M${x},${y1}`; // Move to the starting point + acc += `M${x},${y1}` // Move to the starting point } - acc += `L${x},${y2}`; // Draw line to heart rate point + acc += `L${x},${y2}` // Draw line to heart rate point } - return acc; - }, ''); + return acc + }, '') // 生成闭合路径 - let closingPath = - pulseData[0].reduceRight((acc, { value, index }) => { - const heartRateValue = heartRateMap[index]; + let closingPath = pulseData[0].reduceRight((acc, { value, index }) => { + const heartRateValue = heartRateMap[index] - if ( - value !== null && - value !== undefined && - heartRateValue !== null && - heartRateValue !== undefined - ) { - const x = xScale(index) + viewConfig.X_OFFSET; - const y1 = heartScale(value || 0); - // const y2 = heartScale(heartRateValue) + if (value !== null && value !== undefined && heartRateValue !== null && heartRateValue !== undefined) { + const x = xScale(index) + viewConfig.X_OFFSET + const y1 = heartScale(value || 0) + // const y2 = heartScale(heartRateValue) - acc += `L${x},${y1}`; // Draw line down to pulse point - } - return acc; - }, '') + - `L${xScale(pulseStart.index) + viewConfig.X_OFFSET},${heartScale(heartRateStart)}` + - 'Z'; // Close the path - closingPath += `L${xScale(pulseStart.index) + viewConfig.X_OFFSET},${heartScale( - heartRateStart - )}Z`; - //绘制阴影区域 + acc += `L${x},${y1}` // Draw line down to pulse point + } + return acc + }, '') + `L${xScale(pulseStart.index) + viewConfig.X_OFFSET},${heartScale(heartRateStart)}` + 'Z' // Close the path + closingPath += `L${xScale(pulseStart.index) + viewConfig.X_OFFSET},${heartScale(heartRateStart)}Z` + // 绘制阴影区域 g.append('path') .attr('class', 'rate-shade') .attr('d', pathData + closingPath) // 完整的路径数据 .attr('fill', 'url(#diagonal-hatch)') // 使用图案填充 - .attr('stroke', 'red'); // 设置边框颜色为红色 + .attr('stroke', 'red') // 设置边框颜色为红色 } } } @@ -1525,7 +1555,7 @@ function ConnectedScatterplot(options) { const g = svg .append('g') .attr('transform', `translate(${viewConfig.marginLeft},${viewConfig.marginTop})`) - .attr('style', 'font-size:14px;'); + .attr('style', 'font-size:14px;') // 绘制第几周 getG(svg, viewConfig) .append('text') @@ -1533,14 +1563,12 @@ function ConnectedScatterplot(options) { .attr('class', 'mytext') .text(`第${+data.weekNo + 1}周`) .attr('x', viewConfig.width / 2 - 40) - .attr('y', viewConfig.bottomPos + TEXT_MARGIN_BOTTOM + 1.5 * LINE_HEIGHT - 25); + .attr('y', viewConfig.bottomPos + TEXT_MARGIN_BOTTOM + 1.5 * LINE_HEIGHT - 25) // 绘制标注 getG(svg, viewConfig) .attr( 'transform', - `translate(${viewConfig.marginLeft},${ - viewConfig.bottomPos + viewConfig.marginTop + HEAD_HEIGHT - })` + `translate(${viewConfig.marginLeft},${viewConfig.bottomPos + viewConfig.marginTop + HEAD_HEIGHT})` ) .attr('style', 'font-size:14px;') .call((g) => { @@ -1550,34 +1578,9 @@ function ConnectedScatterplot(options) { fn: iconDrawObj.getDrawXIcon, params: { content: g, - data: [0], - }, + data: [0] + } }, - // { - // name: '口温', - // fn: iconDrawObj.getDrawRoundIcon, - // params: { - // content: g, - // data: [0] - // } - // }, - // { - // name: '肛温', - // fn: iconDrawObj.getDrawRoundDotIcon, - // params: { - // content: g, - // data: [0] - // } - // }, - // { - // name: '耳温', - // fn: iconDrawObj.drawThreeIcon, - // params: { - // content: g, - // data: [0], - // fill: 'white' - // } - // }, { name: '心率', fn: iconDrawObj.getDrawRoundIcon, @@ -1585,8 +1588,8 @@ function ConnectedScatterplot(options) { content: g, data: [0], fill: 'white', - stroke: 'red', - }, + stroke: 'red' + } }, { name: '脉搏', @@ -1595,82 +1598,73 @@ function ConnectedScatterplot(options) { content: g, data: [0], fill: 'red', - stroke: 'red', - }, - }, - ]; - g.append('text').text('标注:'); + stroke: 'red' + } + } + ] + g.append('text').text('标注:') dataList.map((item, i) => { g.append('text') .text(item.name) - .attr('x', 40 + i * 80); + .attr('x', 40 + i * 80) item.fn({ ...item.params, x: () => 80 + i * 80, - y: () => -4, - }); - }); + y: () => -4 + }) + }) }) .attr('x', viewConfig.width / 2 - 40) - .attr('y', viewConfig.bottomPos + TEXT_MARGIN_BOTTOM); + .attr('y', viewConfig.bottomPos + TEXT_MARGIN_BOTTOM) // 绘制顶部的信息数据 g.append('text') .attr('class', 'mytext') .attr('x', 0) .attr('y', () => { - return HEAD_HEIGHT - TEXT_MARGIN_BOTTOM - 6; + return HEAD_HEIGHT - TEXT_MARGIN_BOTTOM - 6 }) .html(() => { return INFO_KEYS.map(({ name, key }, index) => { - return `${name}: ${ - data[key] ? data[key] : '' - }`; - }).join(''); - }); + return `${name}: ${data[key] ? data[key] : ''}` + }).join('') + }) // 绘制标题 g.append('text') .attr('style', 'font-size:22px;text-anchor: middle;') .attr('class', 'mytext') .attr('x', viewConfig.width / 2) .attr('y', () => { - return HEAD_HEIGHT - 4 * LINE_HEIGHT; + return HEAD_HEIGHT - 4 * LINE_HEIGHT }) - .text(Header.HospitalName); + .text(Header.HospitalName) // 体温单 g.append('text') .attr('style', 'font-size:22px;text-anchor: middle;') .attr('class', 'mytext') .attr('x', viewConfig.width / 2) .attr('y', () => { - return HEAD_HEIGHT - 2.5 * LINE_HEIGHT; + return HEAD_HEIGHT - 2.5 * LINE_HEIGHT }) - .text(Header.temperatureName); + .text(Header.temperatureName) } function generatePointer({ pathData, type, yScaleInstance }) { return (event) => { - var index = Math.round( - (d3.pointer(event)[0] - viewConfig.step - textLeftMargin) / xScale.step() - ); - var val = xScale.domain()[index]; + var index = Math.round((d3.pointer(event)[0] - viewConfig.step - textLeftMargin) / xScale.step()) + var val = xScale.domain()[index] // const i = d3.bisectCenter(d3.range(pathData.length), val); - let i = -1; + let i = -1 pathData.forEach((item, index) => { if (item.index === val) { - i = index; + i = index } - }); - const yPos = yScaleInstance(+pathData[i].value) + viewConfig.marginTop + HEAD_HEIGHT; - tooltip.style('display', null); - tooltip.attr('class', 'myTooltip'); - tooltip.attr('transform', `translate(${xScale(val) + viewConfig.micoStep},${yPos})`); + }) + const yPos = yScaleInstance(+pathData[i].value) + viewConfig.marginTop + HEAD_HEIGHT + tooltip.style('display', null) + tooltip.attr('class', 'myTooltip') + tooltip.attr('transform', `translate(${xScale(val) + viewConfig.micoStep},${yPos})`) - const path = tooltip - .selectAll('path') - .data(['', '']) - .join('path') - .attr('fill', 'white') - .attr('stroke', 'black'); + const path = tooltip.selectAll('path').data(['', '']).join('path').attr('fill', 'white').attr('stroke', 'black') const text = tooltip .selectAll('text') @@ -1685,18 +1679,18 @@ function ConnectedScatterplot(options) { .attr('y', (_, i) => `${i * 1.2}em`) .attr('font-weight', (_, i) => (i ? null : 'bold')) .text((d) => d) - ); + ) - const { y, width: w, height: h } = text.node().getBBox(); - text.attr('transform', `translate(${-w / 2},${15 - y})`); - path.attr('d', `M${-w / 2 - 10},5H-5l5,-5l5,5H${w / 2 + 10}v${h + 20}h-${w + 20}z`); - }; + const { y, width: w, height: h } = text.node().getBBox() + text.attr('transform', `translate(${-w / 2},${15 - y})`) + path.attr('d', `M${-w / 2 - 10},5H-5l5,-5l5,5H${w / 2 + 10}v${h + 20}h-${w + 20}z`) + } } function pointerleft() { - tooltip.style('display', 'none'); + tooltip.style('display', 'none') } } function getTypeValue(type, allData = [], isNumber = true) { - return allData.filter((item) => item.typeCode === type || ''); + return allData.filter((item) => item.typeCode === type || '') } diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/template.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/template.js index 622b3202..308b9644 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/template.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/template.js @@ -1,296 +1,264 @@ // 医院名称 -export const HospitalName = ''; +// export const HospitalName = '中国人民解放军联勤保障部队第九六四医院' +export const HospitalName = '' // 体温单名称 -export const temperatureName = '体 温 单'; +export const temperatureName = '体 温 单' // 患者信息显示项目(修改显示顺序及是否显示) export const INFO_KEYS = [ { name: '姓名', key: 'name', order: 1, - show: true, + show: true }, { - name: '性别', - key: 'sex', - order: 2, - show: true, - }, - { - name: '年龄', - key: 'age', - order: 3, - show: true, - }, - { - name: '病室', + name: '科室', key: 'deptName', - order: 4, - show: true, + order: 2, + show: true }, { name: '床号', key: 'cwh', - order: 5, - show: true, + order: 3, + show: true }, { - name: '病历号', + name: '病人ID', + key: 'patientId', + order: 4, + show: true + }, + { + name: '住院号', key: 'hosNum', - order: 6, - show: true, + order: 5, + show: true }, - { - name: '入院日期', - key: 'hospDate', - order: 6, - show: false, - }, - { - name: '诊断', - key: 'inDiagName', - order: 8, - show: false, - }, -]; + // { + // name: '入院日期', + // key: 'hospDate', + // order: 6, + // show: true + // } +] // 体温单录入项目(修改显示顺序及是否显示) // 新增项目注意 key值、code值唯一性,不要与之前的项目重复 export const BOTTOM_KEYS = [ { - name: '血压(mmHg)', + name: '血\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0压', code: 'bloodPressure', key: '008', times: 2, order: 1, - show: true, + show: true }, { - name: '大\u00A0便\u00A0次\u00A0数', + name: '大便次数', code: 'poop', key: '005', order: 2, - show: true, + show: true }, { - name: '小\u00A0便\u00A0次\u00A0数', - code: 'urine', - key: '004', - order: 3, - show: true, - }, - { - name: '液体总入量(ml)', - code: 'input', - key: '006', - order: 4, - show: true, - }, - { - name: '其\u00A0\u00A0他(ml)', - code: 'output', - key: '007', - order: 5, - show: true, - }, - { - name: '尿\u00A0\u00A0量(ml)', - code: 'urineOutput', - key: '011', - order: 6, - show: true, - }, - { - name: '体\u00A0\u00A0重(kg)', + name: '体\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0重', code: 'weight', key: '009', - order: 8, - show: true, + order: 3, + show: true }, { - name: '身\u00A0\u00A0高(cm)', - code: 'height', - key: '030', - order: 9, - show: true, + name: '尿\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0量', + code: 'urine', + key: '004', + order: 4, + show: true }, { - name: 'SPO2', - code: 'SPO2', - key: '021', - times: 2, - order: 10, - show: false, + name: '摄入液量', + code: 'input', + key: '006', + order: 5, + show: true }, { - name: '皮\u00A0试\u00A0阳\u00A0性', - code: 'allergy', - key: '017', - order: 11, - show: true, - lines: 2, + name: '排出液量', + code: 'output', + key: '007', + order: 6, + show: true }, { - name: '过\u00A0敏\u00A0试\u00A0验', - code: 'allergyTest', - key: '020', - order: 12, - show: false, - lines: 2, - }, - { - name: '其\u00A0\u00A0他', - code: 'other', - key: '025', + name: '术后天数', + code: 'output', + key: '010', order: 7, - show: false, - lines: 2, + show: true }, { name: '', code: 'useless1', key: '100', order: 20, - show: true, + show: true }, -]; + { + name: '', + code: 'useless2', + key: '100', + order: 21, + show: true + }, + { + name: '', + code: 'useless3', + key: '100', + order: 22, + show: true + }, + { + name: '', + code: 'useless4', + key: '100', + order: 23, + show: true + }, + { + name: '', + code: 'useless5', + key: '100', + order: 24, + show: true + }, + { + name: '', + code: 'useless6', + key: '100', + order: 25, + show: true + } +] // 是否显示疼痛评分 -export const showPainFlag = true; +export const showPainFlag = true /** *********** 以上信息是本地化可以修改的部分 **************************/ // 获取患者信息显示项目 export function getInfoKeys() { - return INFO_KEYS.filter((x) => x.show).sort((a, b) => a.order - b.order); + return INFO_KEYS.filter(x => x.show).sort((a, b) => a.order - b.order) } // 获取患者信息显示项目 export function getBottomKeys() { - return BOTTOM_KEYS.filter((x) => x.show).sort((a, b) => a.order - b.order); + return BOTTOM_KEYS.filter(x => x.show).sort((a, b) => a.order - b.order) } -export const timeNumber = [2, 6, 10, 14, 18, 22]; // 时间展示 -export const nightTime = [2, 18, 22]; // 夜间红色高亮时间 +export const timeNumber = [2, 6, 10, 14, 18, 22] // 时间展示 +export const nightTime = [2, 18, 22] // 夜间红色高亮时间 export const leftTEXT = [ ['脉搏,(次/分),180', '160', '140', '120', '100', '80', '60', '40'], - ['体温,(℃), 42', '41', '40', '39', '38', '37', '36', '35'], -]; + ['体温,(℃), 42', '41', '40', '39', '38', '37', '36', '35'] +] -export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡']; -export const otherItem = ['外出', '请假', '拒测', '离院', '其他']; +export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡'] +export const otherItem = ['外出', '请假', '拒测', '离院', '其他'] export const sheetOptions = { - locations: [ - { - code: '1', - display: '体温', - }, - { - code: '2', - display: '口温', - }, - { - code: '3', - display: '肛温', - }, - { - code: '4', - display: '耳温', - }, - ], - breath: [ - { - code: '', - display: '自主呼吸', - }, - { - code: '®', - display: '机械通气', - }, - ], - poop: [ - { - code: '', - display: '正常', - }, - { - code: '※', - display: '失禁', - }, - { - code: '☆', - display: '人工肛门', - }, - { - code: '/E', - display: '灌肠', - }, - ], - pee: [ - { - code: '', - display: '正常', - }, - { - code: '※', - display: '失禁', - }, - { - code: 'C+', - display: '导尿', - }, - ], + locations: [{ + code: '1', + display: '体温' + }, { + code: '2', + display: '口温' + }, { + code: '3', + display: '肛温' + }, { + code: '4', + display: '耳温' + }], + breath: [{ + code: '', + display: '自主呼吸' + }, { + code: '®', + display: '机械通气' + }], + poop: [{ + code: '', + display: '正常' + }, { + code: '※', + display: '失禁' + }, { + code: '☆', + display: '人工肛门' + }, { + code: '/E', + display: '灌肠' + }], + pee: [{ + code: '', + display: '正常' + }, { + code: '※', + display: '失禁' + }, { + code: 'C+', + display: '导尿' + }], heart: ['窦性心律', '起搏心律', '房性心律', '异常心律'], - weight: ['正常', '卧床', '轮椅', '平车'], -}; + weight: ['正常', '卧床', '轮椅', '平车'] +} // 此处是显示数字的 要和leftTEXT保持一直 -export const bodyTemperature = [34, 42]; -export const starNumEnv = bodyTemperature[0]; // 开始体温 -export const endNumEnv = bodyTemperature[1]; // 结束体温 -export const heartRange = [20, 180]; +export const bodyTemperature = [34, 42] +export const starNumEnv = bodyTemperature[0] // 开始体温 +export const endNumEnv = bodyTemperature[1] // 结束体温 +export const heartRange = [20, 180] // 中间图表字段对应 export const CHART_KEYS = [ { key: '001', code: 'breath', - name: '呼吸', + name: '呼吸' }, { key: '002', code: 'sphygmus', - name: '脉搏', + name: '脉搏' }, { key: '003', code: 'temperature', - name: '不升', + name: '不升' }, { key: '012', code: 'inOut', - name: '特殊标记', + name: '特殊标记' }, { key: '013', code: 'refuse', - name: '标记内容', + name: '标记内容' }, { key: '014', code: 'heartRate', - name: '心率', + name: '心率' }, { key: '015', code: 'lowerTemp', - name: '物理降温', + name: '物理降温' }, { key: '016', code: 'painScore', - name: '疼痛评分', - }, -]; + name: '疼痛评分' + } +] -export const HEAD_HEIGHT = 120; // 头部文字预留位置 -export const LINE_HEIGHT = 20; // 一行的行高 -export const textLeftMargin = 4; // 文字左边边距 -export const TEXT_MARGIN_BOTTOM = 6; // 文字向上偏移量 -export const symbolArrowHeight = 20; +export const HEAD_HEIGHT = 120 // 头部文字预留位置 +export const LINE_HEIGHT = 20 // 一行的行高 +export const textLeftMargin = 4 // 文字左边边距 +export const TEXT_MARGIN_BOTTOM = 6 // 文字向上偏移量 +export const symbolArrowHeight = 20 diff --git a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/utils.js b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/utils.js index bc88ab8f..9fe19980 100644 --- a/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/utils.js +++ b/openhis-ui-vue3/src/action/nurseStation/temperatureSheet/utils.js @@ -1,7 +1,9 @@ -import moment from 'moment'; +import moment from 'moment' export function getG(svg, translateX, translateY) { - return svg.append('g').attr('transform', `translate(${translateX},${translateY})`); + return svg + .append('g') + .attr('transform', `translate(${translateX},${translateY})`) } // function generatePointer ({ pathData, type, yScaleInstance }) { @@ -49,259 +51,247 @@ export function getG(svg, translateX, translateY) { // } // } export function getTypeDatas(typeData, beginDate) { - const types = typeData.sort((a, b) => new Date(a.date) - new Date(b.date)); - return types.map((item) => { + const types = typeData.sort((a, b) => new Date(a.date) - new Date(b.date)) + return types.map(item => { return { index: getIndex(beginDate, item.date, '00:00:00') / 6, times: 0, date: item.date, typeCode: item.typeCode, - typeValue: item.typeValue || null, - }; - }); + typeValue: (item.typeValue) || null + } + }) } export function getTypeData(type, allData = [], isNumber = true, beginDate) { const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date, - value: (isNumber ? +cur.typeValue : cur.typeValue) || null, - }; + value: (isNumber ? +cur.typeValue : cur.typeValue) || null + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - return getList.sort((a, b) => a.index - b.index); + return item + }) + return getList.sort((a, b) => a.index - b.index) } // 获取不升 export function getType(type, allData = [], beginDate) { const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date, - value: cur.typeValue !== '' ? (parseFloat(cur.typeValue) <= 35 ? '不升' : null) : null, - }; + value: cur.typeValue !== '' ? (parseFloat(cur.typeValue) <= 35 ? '不升' : null) : null + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - return getList.sort((a, b) => a.index - b.index); + return item + }) + return getList.sort((a, b) => a.index - b.index) } // 合并标记内容 export function setMergeTag(ymbolTextArr = [], symbolContent = []) { - const arr = []; - ymbolTextArr.forEach((item) => { - symbolContent.forEach((res) => { + const arr = [] + ymbolTextArr.forEach(item => { + symbolContent.forEach(res => { if (item.index === res.index) { - arr.push({ - ...item, - ...res, - value: (item.value !== null ? item.value : '') + (res.value !== null ? res.value : ''), - }); + arr.push({ ...item, ...res, value: (item.value !== null ? item.value : '') + (res.value !== null ? res.value : '') }) } - }); - }); - return arr; + }) + }) + return arr } // 筛选手术产后日数 export function postpartumDays(type, arr) { - return arr.filter((item) => item.typeCode === type).map((i) => i.typeValue); + return arr.filter(item => item.typeCode === type).map(i => i.typeValue) } // 筛选体温 export function getTypeAnimalHeat(type, allData = [], code, beginDate) { const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; - const cur = - rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; - return { + console.log(rowBOSItem.rowBOS, 'rowBOSItem.rowBOS') + const rowBOS = rowBOSItem.rowBOS + const curList = // 改为 filter 来获取所有符合条件的项 + rowBOS.filter((item) => { + return item.typeCode === type + }) || [] + + // 针对每个 cur 处理并生成新的对象数组 + return curList.map((cur) => ({ index: getIndex(beginDate, cur.date, cur.times), date: cur.date, - value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null, - }; + value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null + })) }) + .flat() // 将二维数组展平为一维数组 .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - return getList.sort((a, b) => a.index - b.index); + return item + }) + console.log(getList, 'getList') + return getList.sort((a, b) => a.index - b.index) } // 设置折线 export function getBrokenLine(type, allData = [], arr = [], list = [], topList = [], beginDate) { - const result = []; + const result = [] const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = - rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + rowBOS.find((item) => { + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date, - value: +cur.typeValue, - }; + value: +cur.typeValue + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - const _a = arr.filter((item) => item.value); - const _b = list.filter((item) => item.value); - const _c = topList.filter((item) => item.value); - const mergingData = [..._a, ..._b, ..._c, { index: 50 }].sort((a, b) => a.index - b.index); - let start = 0; - mergingData.forEach((item) => { - const _p = getList.sort((a, b) => a.index - b.index).slice(start, item.index); - start = item.index + 1; - result.push(_p); - }); - return result; + return item + }) + const _a = arr.filter(item => item.value) + const _b = list.filter(item => item.value) + const _c = topList.filter(item => item.value) + const mergingData = [..._a, ..._b, ..._c, { index: 50 }].sort((a, b) => a.index - b.index) + let start = 0 + mergingData.forEach(item => { + const _p = getList.sort((a, b) => a.index - b.index).slice(start, item.index) + start = item.index + 1 + result.push(_p) + }) + return result } // 处理脉搏心率 -export function getHeartRate( - type, - allData = [], - arr = [], - topList = [], - isNumber = true, - beginDate -) { - const result = []; +export function getHeartRate(type, allData = [], arr = [], topList = [], isNumber = true, beginDate) { + const result = [] const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = - rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + rowBOS.find((item) => { + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date, - value: (isNumber ? +cur.typeValue : cur.typeValue) || null, - }; + value: (isNumber ? +cur.typeValue : cur.typeValue) || null + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - const _a = arr.filter((item) => item.value); - const _c = topList.filter((item) => item.value); - const mergingData = [..._a, ..._c, { index: 50 }].sort((a, b) => a.index - b.index); - let start = 0; - mergingData.forEach((item) => { - const _p = getList.slice(start, item.index).sort((a, b) => { - return a.index - b.index; - }); - start = item.index; - result.push(_p); - }); - return result; + return item + }) + const _a = arr.filter(item => item.value) + const _c = topList.filter(item => item.value) + const mergingData = [..._a, ..._c, { index: 50 }].sort((a, b) => a.index - b.index) + let start = 0 + mergingData.forEach(item => { + const _p = getList.slice(start, item.index).sort((a, b) => { return a.index - b.index }) + start = item.index + result.push(_p) + }) + return result } function getIndex(beginDate, date, time) { - if (beginDate === undefined || date === undefined) return; - const diffTime = - moment(date.substring(0, 10)).diff(moment(beginDate.substring(0, 10))) / 1000 / 3600 / 24; - const diffIndex = parseInt(time.substring(0, 2)); - return diffTime * 6 + Math.floor(diffIndex / 4); + if (beginDate === undefined || date === undefined) return + const diffTime = moment(date.substring(0, 10)).diff(moment(beginDate.substring(0, 10))) / 1000 / 3600 / 24 + const diffIndex = parseInt(time.substring(0, 2)) + return diffTime * 6 + Math.floor(diffIndex / 4) } // 筛选35和40~42数据 export function degreesOnline(allData, data, type) { const arr = allData.map((item, index) => { - const cur = data?.find((res) => item.value === res.name && +res.isShowPlace === type) || null; + const cur = data?.find(res => item.value === res.name && +res.isShowPlace === type) || null return { index: index, date: item.date, - value: cur?.name || null, - }; - }); - return arr; + value: cur?.name || null + } + }) + return arr } // 35或42上断开的事件 export function disconnectEvents(allData, data, code, type) { const arr = allData.map((item, index) => { - const cur = - data?.find( - (res) => item.value === res.name && +res.isShowPlace === type && +res[code] === 1 - ) || null; + const cur = data?.find(res => item.value === res.name && +res.isShowPlace === type && +res[code] === 1) || null return { index: index, date: item.date, - value: cur?.name || null, - }; - }); - return arr; + value: cur?.name || null + } + }) + return arr } export function getDrawCoolData(type, allData = [], isNumber = true, beginDate) { const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date + cur.times, - value: (isNumber ? +cur.typeValue : cur.typeValue) || null, - }; + value: (isNumber ? +cur.typeValue : cur.typeValue) || null + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - return getList.sort((a, b) => a.index - b.index); + return item + }) + return getList.sort((a, b) => a.index - b.index) } // 筛选降温getDrawData export function getDrawData(type, allData = [], code, beginDate) { const getList = allData .map((rowBOSItem, index) => { - const rowBOS = rowBOSItem.rowBOS; + const rowBOS = rowBOSItem.rowBOS const cur = rowBOS.find((item) => { - return item.typeCode === type; - }) || {}; + return item.typeCode === type + }) || {} return { index: getIndex(beginDate, cur.date, cur.times), date: cur.date + cur.times, - value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null, - }; + value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null + } }) .map((item) => { if (item.value) { // item.value = NaN } - return item; - }); - return getList.sort((a, b) => a.index - b.index); + return item + }) + return getList.sort((a, b) => a.index - b.index) } diff --git a/openhis-ui-vue3/src/assets/images/weixinzhifu.png b/openhis-ui-vue3/src/assets/images/weixinzhifu.png deleted file mode 100644 index 83701df9..00000000 Binary files a/openhis-ui-vue3/src/assets/images/weixinzhifu.png and /dev/null differ diff --git a/openhis-ui-vue3/src/assets/images/zhifubaozhifu.png b/openhis-ui-vue3/src/assets/images/zhifubaozhifu.png deleted file mode 100644 index 91ab717e..00000000 Binary files a/openhis-ui-vue3/src/assets/images/zhifubaozhifu.png and /dev/null differ diff --git a/openhis-ui-vue3/src/assets/styles/index.scss b/openhis-ui-vue3/src/assets/styles/index.scss index 3139a3b9..e64d4975 100644 --- a/openhis-ui-vue3/src/assets/styles/index.scss +++ b/openhis-ui-vue3/src/assets/styles/index.scss @@ -212,4 +212,4 @@ aside { display: flex; align-items: center; width: 100%; -} +} \ No newline at end of file diff --git a/openhis-ui-vue3/src/components/Auto/printBills/exeOrderSheet.vue b/openhis-ui-vue3/src/components/Auto/printBills/exeOrderSheet.vue index 0ee2a25f..a1f7af3a 100644 --- a/openhis-ui-vue3/src/components/Auto/printBills/exeOrderSheet.vue +++ b/openhis-ui-vue3/src/components/Auto/printBills/exeOrderSheet.vue @@ -2,7 +2,7 @@
- 长春市朝阳区中医院医嘱执行单 + 呼和浩特市第一医院医嘱执行单
床号:{{ printData.patientInfo.encounterLocationName }} diff --git a/openhis-ui-vue3/src/components/Auto/printBills/injectOrderSheet.vue b/openhis-ui-vue3/src/components/Auto/printBills/injectOrderSheet.vue index 35492912..6fe99646 100644 --- a/openhis-ui-vue3/src/components/Auto/printBills/injectOrderSheet.vue +++ b/openhis-ui-vue3/src/components/Auto/printBills/injectOrderSheet.vue @@ -2,7 +2,7 @@
- 长春市朝阳区中医院输液执行单 + 呼和浩特市第一医院输液执行单
座位:{{ printData.patientInfo.encounterLocationName }} diff --git a/openhis-ui-vue3/src/components/Auto/printBills/triageTicket.vue b/openhis-ui-vue3/src/components/Auto/printBills/triageTicket.vue index 26ada4e5..eff2ae8f 100644 --- a/openhis-ui-vue3/src/components/Auto/printBills/triageTicket.vue +++ b/openhis-ui-vue3/src/components/Auto/printBills/triageTicket.vue @@ -1,6 +1,6 @@ diff --git a/openhis-ui-vue3/src/components/Layout/index.vue b/openhis-ui-vue3/src/components/Layout/index.vue deleted file mode 100644 index de118c97..00000000 --- a/openhis-ui-vue3/src/components/Layout/index.vue +++ /dev/null @@ -1,51 +0,0 @@ - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/components/PatientList/api.js b/openhis-ui-vue3/src/components/PatientList/api.js deleted file mode 100644 index cd099bc1..00000000 --- a/openhis-ui-vue3/src/components/PatientList/api.js +++ /dev/null @@ -1,12 +0,0 @@ -import request from '@/utils/request'; - -/** - * 获取住院患者列表 - */ -export function getPatientList(queryParams) { - return request({ - url: '/reg-doctorstation/advice-manage/reg-patient-zk', - method: 'get', - params: queryParams, - }); -} diff --git a/openhis-ui-vue3/src/components/PatientList/index.vue b/openhis-ui-vue3/src/components/PatientList/index.vue deleted file mode 100644 index f20cc3b8..00000000 --- a/openhis-ui-vue3/src/components/PatientList/index.vue +++ /dev/null @@ -1,695 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/PatientList/patient-list.vue b/openhis-ui-vue3/src/components/PatientList/patient-list.vue deleted file mode 100644 index 64f74c5e..00000000 --- a/openhis-ui-vue3/src/components/PatientList/patient-list.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/components/PendingPatientList/index.vue b/openhis-ui-vue3/src/components/PendingPatientList/index.vue deleted file mode 100644 index dc72d9a4..00000000 --- a/openhis-ui-vue3/src/components/PendingPatientList/index.vue +++ /dev/null @@ -1,318 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/Print/AdvancePayment.json b/openhis-ui-vue3/src/components/Print/AdvancePayment.json deleted file mode 100644 index 6010501b..00000000 --- a/openhis-ui-vue3/src/components/Print/AdvancePayment.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "panels": [ - { - "index": 0, - "name": 1, - "paperType": "自定义", - "height": 80, - "width": 279, - "paperList": { - "type": "自定义", - "width": 279, - "height": 80 - }, - "panelPageRule": "none", - "paperHeader": 0, - "paperFooter": 422.3622047244095, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 15, - "height": 16.5, - "width": 792, - "title": "长春市朝阳区中医院预交金收据", - "coordinateSync": false, - "widthHeightSync": false, - "fontWeight": "bold", - "letterSpacing": 0.75, - "textAlign": "center", - "qrCodeLevel": 0, - "fontSize": 15, - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 46.5, - "height": 14, - "width": 151.5, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientName", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 295.5, - "top": 48, - "height": 14, - "width": 148.5, - "title": "住院号", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "encounterNosd", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 480, - "top": 48, - "height": 14, - "width": 162, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "inHospitalOrgName", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 73.5, - "height": 14, - "width": 153, - "title": "ID号", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientId", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 295.5, - "top": 73.5, - "height": 14, - "width": 147, - "title": "医保类别", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "contractName", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 480, - "top": 73.5, - "height": 14, - "width": 163.5, - "title": "时间", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "currentTime", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 105, - "height": 25, - "width": 120, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 231, - "top": 105, - "height": 25, - "width": 393, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "field": "balanceAmount", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 129, - "height": 30, - "width": 120, - "title": "人民币(大写)", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 231, - "top": 129, - "height": 30, - "width": 393, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "qrCodeLevel": 0, - "field": "amountInWords", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 159, - "height": 30, - "width": 513, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "field": "paymentDetails", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 198, - "height": 14, - "width": 120, - "title": "签章", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientNamesfs", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 297, - "top": 198, - "height": 14, - "width": 132, - "title": "交款人", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientNameada", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 481.5, - "top": 198, - "height": 14, - "width": 124.5, - "title": "收款人", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "cashier", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ] - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/ChineseMedicinePrescription.json b/openhis-ui-vue3/src/components/Print/ChineseMedicinePrescription.json deleted file mode 100644 index 76da1848..00000000 --- a/openhis-ui-vue3/src/components/Print/ChineseMedicinePrescription.json +++ /dev/null @@ -1,1321 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "自定义", - "height": 271, - "width": 90, - "paperList": { - "type": "自定义", - "width": 90, - "height": 271 - }, - "paperHeader": 0, - "paperFooter": 766.5, - "paperNumberDisabled": true, - "paperNumberContinue": false, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 38, - "height": 19.5, - "width": 255, - "title": "中药长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 52.5, - "height": 20, - "width": 255, - "title": "门 诊 处 方 笺", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true, - "textDecoration": "underline" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 195, - "top": 55.5, - "height": 14, - "width": 40, - "title": "普通处方", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 195, - "top": 69, - "height": 14, - "width": 40, - "title": "当日有效", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15.5, - "top": 87, - "height": 13.5, - "width": 100, - "title": "费别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 122.5, - "top": 87, - "height": 13.5, - "width": 117, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15.5, - "top": 106.5, - "height": 13.5, - "width": 100, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 122.5, - "top": 106.5, - "height": 13.5, - "width": 117, - "title": "处方号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].prescriptionNo的值\n let prescriptionNoValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].prescriptionNo !== undefined) {\n \n prescriptionNoValue = templateData.prescriptionList[0].prescriptionNo;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `处方号:   ${prescriptionNoValue || ''}`;\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 123, - "height": 25, - "width": 30, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 39, - "top": 123, - "height": 25, - "width": 60, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "patientName", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 99, - "top": 123, - "height": 25, - "width": 30, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 129, - "top": 123, - "height": 25, - "width": 44, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 172.5, - "top": 123, - "height": 25, - "width": 30, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 202, - "top": 123, - "height": 25, - "width": 45, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "age", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 147, - "height": 25, - "width": 30, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 40.5, - "top": 147, - "height": 25, - "width": 69, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "phone", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 147, - "height": 25, - "width": 40, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 147, - "height": 25, - "width": 100, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "idCard", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 172.5, - "height": 25, - "width": 52, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 62, - "top": 172.5, - "height": 25, - "width": 185, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "conditionName", - "hideTitle": true, - "contentPaddingLeft": 15 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 205.5, - "height": 19.5, - "width": 120, - "title": "Rp :", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 13.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 234, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n firstItem = templateData.prescriptionList[0];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 234, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[1]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n firstItem = templateData.prescriptionList[1];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 234, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[2]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n firstItem = templateData.prescriptionList[2];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 255, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[3]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n firstItem = templateData.prescriptionList[3];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 255, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[4]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n firstItem = templateData.prescriptionList[4];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 255, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[5]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[5]) {\n \n firstItem = templateData.prescriptionList[5];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 274.2432460784912, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[7]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[7]) {\n \n firstItem = templateData.prescriptionList[7];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 275.24146842956543, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[8]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[8]) {\n \n firstItem = templateData.prescriptionList[8];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 275.4960765838623, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[6]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[6]) {\n \n firstItem = templateData.prescriptionList[6];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 292.98470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[9]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[9]) {\n \n firstItem = templateData.prescriptionList[9];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 292.98470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[10]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[10]) {\n \n firstItem = templateData.prescriptionList[10];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 292.98470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[11]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[11]) {\n \n firstItem = templateData.prescriptionList[11];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 312, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[12]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[12]) {\n \n firstItem = templateData.prescriptionList[12];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 312, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[13]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[13]) {\n \n firstItem = templateData.prescriptionList[13];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 312, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[14]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[14]) {\n \n firstItem = templateData.prescriptionList[14];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 330, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[15]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[15]) {\n \n firstItem = templateData.prescriptionList[15];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 330, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[16]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[16]) {\n \n firstItem = templateData.prescriptionList[16];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 330, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[17]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[17]) {\n \n firstItem = templateData.prescriptionList[17];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 349.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[18]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[18]) {\n \n firstItem = templateData.prescriptionList[18];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 349.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[19]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[19]) {\n \n firstItem = templateData.prescriptionList[19];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 349.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[20]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[20]) {\n \n firstItem = templateData.prescriptionList[20];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 369, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[21]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[21]) {\n \n firstItem = templateData.prescriptionList[21];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 369, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[22]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[22]) {\n \n firstItem = templateData.prescriptionList[22];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 369, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[23]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[23]) {\n \n firstItem = templateData.prescriptionList[23];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 387, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[24]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[24]) {\n \n firstItem = templateData.prescriptionList[24];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 387, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[25]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[25]) {\n \n firstItem = templateData.prescriptionList[25];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 387, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[26]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[26]) {\n \n firstItem = templateData.prescriptionList[26];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 14.5, - "top": 406, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[27]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[27]) {\n \n firstItem = templateData.prescriptionList[27];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 94, - "top": 406, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[28]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[28]) {\n \n firstItem = templateData.prescriptionList[28];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 174, - "top": 406, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[29]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[29]) {\n \n firstItem = templateData.prescriptionList[29];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n // displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 453, - "height": 10, - "width": 255, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].chineseHerbsDoseQuantity的值\n let chineseHerbsDoseQuantityValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].chineseHerbsDoseQuantity !== undefined) {\n \n chineseHerbsDoseQuantityValue = templateData.prescriptionList[0].chineseHerbsDoseQuantity;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `配 ${chineseHerbsDoseQuantityValue || ''} 付`;\n}", - "fixed": true, - "textAlign": "center", - "textContentVerticalAlign": "middle" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 165, - "top": 516, - "height": 20, - "width": 45, - "title": "undefined+beforeDragIn", - "field": "doctorSignature", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "styler": "function(value, options, target, templateData, paperNo) {\n if (templateData.doctorSignature) {\n // 如果doctorSignature存在,正常显示\n return { border: '0px' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 19.5, - "top": 522.5, - "height": 13.5, - "width": 81, - "title": "药费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 132, - "top": 522.5, - "height": 13.5, - "width": 28.5, - "title": "医师:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 538.5, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 19.5, - "top": 549, - "height": 13.5, - "width": 100, - "title": "核对", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 133.5, - "top": 549, - "height": 13.5, - "width": 93, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 574.5, - "height": 13.5, - "width": 79.5, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "loginUserName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 574.5, - "height": 13.5, - "width": 117, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true, - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 595.5, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 16.5, - "top": 600, - "height": 13.5, - "width": 192, - "title": "注:1.本处方当日作废\n", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 34, - "top": 617.5, - "height": 13.5, - "width": 192, - "title": "2.延长处方用量时间原因", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - } - ], - "paperNumberLeft": 196, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/DailyOutpatientSettlement.json b/openhis-ui-vue3/src/components/Print/DailyOutpatientSettlement.json deleted file mode 100644 index 500fd5c9..00000000 --- a/openhis-ui-vue3/src/components/Print/DailyOutpatientSettlement.json +++ /dev/null @@ -1,1692 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A4", - "height": 297, - "width": 210, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(184, 184, 184, 0.3)", - "fontSize": "14px", - "rotate": 25, - "width": 175, - "height": 200, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "paperHeader": 0, - "paperFooter": 841.8897637795277, - "printElements": [ - { - "options": { - "left": 219, - "top": 22.5, - "height": 19.5, - "width": 120, - "title": "门诊收费日结单", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 16.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 57, - "height": 13.5, - "width": 120, - "title": "经办人", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 142.5, - "top": 57, - "height": 13.5, - "width": 120, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "orgId_dictText" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 261, - "top": 57, - "height": 13.5, - "width": 247.5, - "title": "时间段", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "timeRange" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 426, - "top": 58.5, - "height": 13.5, - "width": 145.5, - "title": "机构名称:长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 76.5, - "height": 9, - "width": 534, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 36, - "top": 105, - "height": 13.5, - "width": 36, - "title": "西药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 63, - "top": 105, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1001", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 153, - "top": 105, - "height": 13.5, - "width": 33, - "title": "检查", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 183, - "top": 105, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "2009", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 282, - "top": 105, - "height": 13.5, - "width": 48, - "title": "中成药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 319.5, - "top": 105, - "height": 13.5, - "width": 85.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "2010", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 463.5, - "top": 106.5, - "height": 13.5, - "width": 87, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "2005", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 414.5, - "top": 107, - "height": 13.5, - "width": 58.5, - "title": "医用耗材", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 133.5, - "height": 13.5, - "width": 36, - "title": "护理", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 63, - "top": 133.5, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1009", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 153, - "top": 133.5, - "height": 13.5, - "width": 33, - "title": "治疗", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 183, - "top": 133.5, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1008", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 323.5, - "top": 134.5, - "height": 13.5, - "width": 84, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1004", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 282, - "top": 135, - "height": 13.5, - "width": 37.5, - "title": "化验", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 135, - "height": 13.5, - "width": 90, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3001", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 416, - "top": 135.5, - "height": 13.5, - "width": 58.5, - "title": "外科处置", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 148, - "top": 161.5, - "height": 13.5, - "width": 45, - "title": "彩超费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 182.5, - "top": 161.5, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3006", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 323.5, - "top": 161.5, - "height": 13.5, - "width": 84, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3004", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 31.5, - "top": 162, - "height": 13.5, - "width": 45, - "title": "处置费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 63, - "top": 162, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3002", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 162, - "height": 13.5, - "width": 88.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3003", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 282.5, - "top": 162.5, - "height": 13.5, - "width": 43.5, - "title": "X光费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 415.5, - "top": 163.5, - "height": 13.5, - "width": 58.5, - "title": "心电费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1", - "textAlign": "" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 31, - "top": 190, - "height": 13.5, - "width": 45, - "title": "注射费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1", - "textAlign": "" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 62.5, - "top": 190, - "height": 13.5, - "width": 84, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "3005", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 183, - "top": 190.5, - "height": 13.5, - "width": 82.5, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1013", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 283.5, - "top": 190.5, - "height": 13.5, - "width": 45, - "title": "挂号费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 150.5, - "top": 191, - "height": 13.5, - "width": 43.5, - "title": "其他费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 324.5, - "top": 191, - "height": 13.5, - "width": 84, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1011", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 416.5, - "top": 191.5, - "height": 13.5, - "width": 45, - "title": "体检费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 465, - "top": 192, - "height": 13.5, - "width": 84, - "title": "体检费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "9999", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 16.5, - "top": 222, - "height": 9, - "width": 567, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 444, - "top": 249, - "height": 13.5, - "width": 58.5, - "title": "网银", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 499.5, - "top": 249, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "uniCashSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 359.5, - "top": 250, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "aliCashSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 18, - "top": 250.5, - "height": 13.5, - "width": 76.5, - "title": "总收入", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 78, - "top": 250.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "SUM", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 219, - "top": 250.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "vxCashSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 300, - "top": 250.5, - "height": 13.5, - "width": 61.5, - "title": "支付宝", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 164, - "top": 251, - "height": 13.5, - "width": 55.5, - "title": "微信", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 79, - "top": 277, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "0000cash", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 163, - "top": 277, - "height": 13.5, - "width": 55.5, - "title": "自费人次", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 359.5, - "top": 277, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "229900reg", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value + ' 人'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 18, - "top": 277.5, - "height": 13.5, - "width": 76.5, - "title": "自费现金总额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 300, - "top": 277.5, - "height": 13.5, - "width": 64.5, - "title": "省医保人次", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1", - "textAlign": "" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 444, - "top": 277.5, - "height": 13.5, - "width": 66, - "title": "市医保人次", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 218, - "top": 278, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "0000reg", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value + ' 人'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 500, - "top": 278, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "220100reg", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value + ' 人'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 219.5, - "top": 305, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "229900tcSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 79, - "top": 305.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "229900cash", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 161.5, - "top": 305.5, - "height": 13.5, - "width": 64.5, - "title": "省医保统筹", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 359.5, - "top": 305.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "229900zhSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 443.5, - "top": 305.5, - "height": 13.5, - "width": 67.5, - "title": "省医保基金", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 18, - "top": 306, - "height": 13.5, - "width": 76.5, - "title": "省医保现金", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 300, - "top": 306, - "height": 13.5, - "width": 66, - "title": "省医保账户", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 500, - "top": 306.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "229900fundSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 219, - "top": 333, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "220100tcSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 162.5, - "top": 333.5, - "height": 13.5, - "width": 64.5, - "title": "市医保统筹", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 17.5, - "top": 334, - "height": 13.5, - "width": 76.5, - "title": "市医保现金", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 299.5, - "top": 334, - "height": 13.5, - "width": 69, - "title": "市医保账户", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 499.5, - "top": 334.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "220100fundSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 80, - "top": 335, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "220100cash", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 360.5, - "top": 335, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "220100zhSum", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 443, - "top": 335, - "height": 13.5, - "width": 67.5, - "title": "市医保基金", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 16.5, - "top": 363, - "height": 13.5, - "width": 76.5, - "title": "省医保总额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 220.5, - "top": 363, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "municipalYbTotal", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 81.5, - "top": 363.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "provinceYbTotal", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 162.5, - "top": 363.5, - "height": 13.5, - "width": 64.5, - "title": "市医保总额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 17, - "top": 389, - "height": 13.5, - "width": 76.5, - "title": "现金收入总额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 79.5, - "top": 390, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "totalCash", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true, - "formatter": "function(title,value,options,templateData,target,paperNo){\n return value ? value.toFixed(2) + ' 元' : '0.00' + ' 元'\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 163.5, - "top": 390, - "height": 13.5, - "width": 64.5, - "title": "体检人次", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 218.5, - "top": 391, - "height": 13.5, - "width": 75, - "title": "体检人次", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "physicalExaminationCount", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 426, - "height": 9, - "width": 567, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 162, - "top": 439.5, - "height": 13.5, - "width": 76.5, - "title": "制表人", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 216, - "top": 439.5, - "height": 13.5, - "width": 75, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "scheduler", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 333, - "top": 439.5, - "height": 13.5, - "width": 76.5, - "title": "制表时间", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "1" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 390, - "top": 439.5, - "height": 13.5, - "width": 129, - "title": "文本", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "createTime", - "textAlign": "right", - "testData": "20000.00", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 389, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Disposal copy.json b/openhis-ui-vue3/src/components/Print/Disposal copy.json deleted file mode 100644 index 8356fb80..00000000 --- a/openhis-ui-vue3/src/components/Print/Disposal copy.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A5", - "height": 210, - "width": 148, - "paperList": { - "type": "A5", - "width": 148, - "height": 210 - }, - "paperHeader": 0, - "paperFooter": 592.4409448818898, - "orient": 1, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.01, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "10px", - "rotate": 25, - "width": 100, - "height": 100, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 420, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 50, - "height": 20, - "width": 420, - "title": "处置单", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 154.5, - "top": 75, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 75, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 76.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 100.5, - "height": 13.5, - "width": 99, - "title": "开单医生", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 102, - "height": 13.5, - "width": 99, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 154.5, - "top": 102, - "height": 13.5, - "width": 120, - "title": "费用性质", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 130.5, - "height": 13.5, - "width": 174, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 222, - "top": 130.5, - "height": 13.5, - "width": 165, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 156, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28, - "top": 166.5, - "height": 9.75, - "width": 120, - "title": "Rp", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 18, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 190.5, - "height": 36, - "width": 390, - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "textAlign": "center", - "tableBorder": "border", - "tableHeaderFontWeight": "500", - "field": "prescriptionList", - "columns": [ - [ - { - "title": "项目名", - "width": 116.47241770689429, - "field": "itemName", - "checked": true, - "columnId": "itemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "单价", - "width": 95.6749835266735, - "field": "unitPrice", - "checked": true, - "columnId": "unitPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "width": 87.60415049837947, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "执行次数", - "width": 90.24844826805275, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 10.5, - "top": 508.5, - "height": 13.5, - "width": 100, - "title": "医师", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "发药:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 214.5, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "划价:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 319, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "调配:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 532.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 289, - "top": 551.5, - "height": 13.5, - "width": 120, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Disposal.json b/openhis-ui-vue3/src/components/Print/Disposal.json deleted file mode 100644 index a54d4997..00000000 --- a/openhis-ui-vue3/src/components/Print/Disposal.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A5", - "height": 210, - "width": 148, - "paperList": { - "type": "A5", - "width": 148, - "height": 210 - }, - "paperHeader": 0, - "paperFooter": 592.4409448818898, - "orient": 1, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.01, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "10px", - "rotate": 25, - "width": 100, - "height": 100, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 420, - "title": "长春市红旗中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 50, - "height": 20, - "width": 420, - "title": "处置单", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 154.5, - "top": 75, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 75, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 76.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 100.5, - "height": 13.5, - "width": 99, - "title": "开单医生", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 102, - "height": 13.5, - "width": 99, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 154.5, - "top": 102, - "height": 13.5, - "width": 120, - "title": "费用性质", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 130.5, - "height": 13.5, - "width": 174, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 222, - "top": 130.5, - "height": 13.5, - "width": 165, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 156, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28, - "top": 166.5, - "height": 9.75, - "width": 120, - "title": "Rp", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 18, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 190.5, - "height": 36, - "width": 390, - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "textAlign": "center", - "tableBorder": "border", - "tableHeaderFontWeight": "500", - "field": "prescriptionList", - "columns": [ - [ - { - "title": "项目名", - "width": 116.47241770689429, - "field": "itemName", - "checked": true, - "columnId": "itemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "单价", - "width": 95.6749835266735, - "field": "unitPrice", - "checked": true, - "columnId": "unitPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "width": 87.60415049837947, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "执行次数", - "width": 90.24844826805275, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 10.5, - "top": 508.5, - "height": 13.5, - "width": 100, - "title": "医师", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "发药:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 214.5, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "划价:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 319, - "top": 509.0000066757202, - "height": 13.5, - "width": 100, - "title": "调配:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 532.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 289, - "top": 551.5, - "height": 13.5, - "width": 120, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/DocChineseMedicinePrescription.json b/openhis-ui-vue3/src/components/Print/DocChineseMedicinePrescription.json deleted file mode 100644 index 44c5e281..00000000 --- a/openhis-ui-vue3/src/components/Print/DocChineseMedicinePrescription.json +++ /dev/null @@ -1,1320 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "自定义", - "height": 271, - "width": 90, - "paperList": { - "type": "自定义", - "width": 90, - "height": 271 - }, - "paperHeader": 0, - "paperFooter": 766.5, - "paperNumberDisabled": true, - "paperNumberContinue": false, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 39.5, - "height": 19.5, - "width": 255, - "title": "中药长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 54, - "height": 20, - "width": 255, - "title": "门 诊 处 方 笺", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true, - "textDecoration": "underline" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 195, - "top": 57, - "height": 14, - "width": 40, - "title": "普通处方", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 195, - "top": 70.5, - "height": 14, - "width": 40, - "title": "当日有效", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15.5, - "top": 88.5, - "height": 13.5, - "width": 100, - "title": "费别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 122.5, - "top": 88.5, - "height": 13.5, - "width": 117, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15.5, - "top": 108, - "height": 13.5, - "width": 100, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 122.5, - "top": 108, - "height": 13.5, - "width": 117, - "title": "处方号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].prescriptionNo的值\n let prescriptionNoValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].prescriptionNo !== undefined) {\n \n prescriptionNoValue = templateData.prescriptionList[0].prescriptionNo;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `处方号:   ${prescriptionNoValue || ''}`;\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 124.5, - "height": 25, - "width": 30, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 39, - "top": 124.5, - "height": 25, - "width": 60, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "patientName", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 99, - "top": 124.5, - "height": 25, - "width": 30, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 129, - "top": 124.5, - "height": 25, - "width": 44, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 172.5, - "top": 124.5, - "height": 25, - "width": 30, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 202, - "top": 124.5, - "height": 25, - "width": 45, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "age", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 148.5, - "height": 25, - "width": 30, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 40.5, - "top": 148.5, - "height": 25, - "width": 69, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "phone", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 148.5, - "height": 25, - "width": 40, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 148.5, - "height": 25, - "width": 100, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "idCard", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 174, - "height": 25, - "width": 52, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 62, - "top": 174, - "height": 25, - "width": 185, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "conditionName", - "hideTitle": true, - "contentPaddingLeft": 15 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 207, - "height": 19.5, - "width": 120, - "title": "Rp :", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 13.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 235.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n firstItem = templateData.prescriptionList[0];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n \n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 235.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[1]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n firstItem = templateData.prescriptionList[1];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 235.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[2]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n firstItem = templateData.prescriptionList[2];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 256.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[3]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n firstItem = templateData.prescriptionList[3];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 256.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[4]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n firstItem = templateData.prescriptionList[4];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 256.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[5]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[5]) {\n \n firstItem = templateData.prescriptionList[5];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 275.7432460784912, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[7]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[7]) {\n \n firstItem = templateData.prescriptionList[7];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 276.74146842956543, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[8]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[8]) {\n \n firstItem = templateData.prescriptionList[8];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 276.9960765838623, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[6]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[6]) {\n \n firstItem = templateData.prescriptionList[6];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 294.48470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[9]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[9]) {\n \n firstItem = templateData.prescriptionList[9];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 294.48470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[10]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[10]) {\n \n firstItem = templateData.prescriptionList[10];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 294.48470878601074, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[11]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[11]) {\n \n firstItem = templateData.prescriptionList[11];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 313.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[12]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[12]) {\n \n firstItem = templateData.prescriptionList[12];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 313.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[13]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[13]) {\n \n firstItem = templateData.prescriptionList[13];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 313.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[14]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[14]) {\n \n firstItem = templateData.prescriptionList[14];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 331.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[15]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[15]) {\n \n firstItem = templateData.prescriptionList[15];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 331.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[16]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[16]) {\n \n firstItem = templateData.prescriptionList[16];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 331.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[17]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[17]) {\n \n firstItem = templateData.prescriptionList[17];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 348, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[21]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[21]) {\n \n firstItem = templateData.prescriptionList[21];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 348, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[22]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[22]) {\n \n firstItem = templateData.prescriptionList[22];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 348, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[23]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[23]) {\n \n firstItem = templateData.prescriptionList[23];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 366, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[24]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[24]) {\n \n firstItem = templateData.prescriptionList[24];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 366, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[25]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[25]) {\n \n firstItem = templateData.prescriptionList[25];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 366, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[26]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[26]) {\n \n firstItem = templateData.prescriptionList[26];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 385, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[27]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[27]) {\n \n firstItem = templateData.prescriptionList[27];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 385, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[28]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[28]) {\n \n firstItem = templateData.prescriptionList[28];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 385, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[29]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[29]) {\n \n firstItem = templateData.prescriptionList[29];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 22, - "top": 406.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[30]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[30]) {\n \n firstItem = templateData.prescriptionList[30];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 101.5, - "top": 406.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[31]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[31]) {\n \n firstItem = templateData.prescriptionList[31];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 181.5, - "top": 406.5, - "height": 10, - "width": 64.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[20]的值\n let firstItem = null;\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[20]) {\n \n firstItem = templateData.prescriptionList[20];\n }\n } catch (error) {\n console.error('获取项目信息时出错:', error);\n }\n \n // 拼接 itemName、quantity 和 doseUnitCode_dictText\n let displayValue = '';\n if (firstItem) {\n // displayValue = `${firstItem.itemName || ''}${firstItem.quantity || ''}${firstItem.doseUnitCode_dictText || ''}`;\n displayValue = `${firstItem.itemName || ''}`;\n }\n \n return `${displayValue}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 454.5, - "height": 10, - "width": 255, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].chineseHerbsDoseQuantity的值\n let chineseHerbsDoseQuantityValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].chineseHerbsDoseQuantity !== undefined) {\n \n chineseHerbsDoseQuantityValue = templateData.prescriptionList[0].chineseHerbsDoseQuantity;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `配 ${chineseHerbsDoseQuantityValue || ''} 付`;\n}", - "fixed": true, - "textAlign": "center", - "textContentVerticalAlign": "middle" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 165, - "top": 514.5, - "height": 20, - "width": 45, - "title": "undefined+beforeDragIn", - "field": "doctorSignature", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "styler": "function(value, options, target, templateData, paperNo) {\n if (templateData.doctorSignature) {\n // 如果doctorSignature存在,正常显示\n return { border: '0px' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 19.5, - "top": 521, - "height": 13.5, - "width": 81, - "title": "药费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 132, - "top": 521, - "height": 13.5, - "width": 28.5, - "title": "医师:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 540, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 19.5, - "top": 550.5, - "height": 13.5, - "width": 100, - "title": "核对", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 133.5, - "top": 550.5, - "height": 13.5, - "width": 93, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 576, - "height": 13.5, - "width": 79.5, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "loginUserName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 576, - "height": 13.5, - "width": 117, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true, - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 597, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 16.5, - "top": 601.5, - "height": 13.5, - "width": 192, - "title": "注:1.本处方当日作废\n", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 34, - "top": 619, - "height": 13.5, - "width": 192, - "title": "2.延长处方用量时间原因", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - } - ], - "paperNumberLeft": 196, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/HQOutpatientMedicalRecord.json b/openhis-ui-vue3/src/components/Print/HQOutpatientMedicalRecord.json deleted file mode 100644 index cc50dfb3..00000000 --- a/openhis-ui-vue3/src/components/Print/HQOutpatientMedicalRecord.json +++ /dev/null @@ -1,701 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A4", - "height": 297, - "width": 210, - "paperList": { - "type": "自定义", - "width": 80, - "height": 60 - }, - "paperHeader": 166.5, - "paperFooter": 760.5, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 595.5, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 54.5, - "height": 20, - "width": 595.5, - "title": "门诊病历", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 235.5, - "top": 81, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 429, - "top": 81, - "height": 13.5, - "width": 160.5, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 24, - "top": 82.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 24, - "top": 108, - "height": 13.5, - "width": 190.5, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "phone" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 235.5, - "top": 108, - "height": 13.5, - "width": 175.5, - "title": "医保类型", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 429, - "top": 108, - "height": 13.5, - "width": 162, - "title": "病历号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "busNo" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 24, - "top": 132, - "height": 13.5, - "width": 200, - "title": "就诊日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "onsetDate" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 235.5, - "top": 132, - "height": 13.5, - "width": 175.5, - "title": "就诊科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 429, - "top": 132, - "height": 13.5, - "width": 162, - "title": "接诊医生", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 163.5, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 25.5, - "top": 171, - "height": 13.5, - "width": 50, - "title": "主诉", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 187.5, - "height": 33, - "width": 550, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "complaint", - "lHeight": 50 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 231, - "height": 13.5, - "width": 50, - "title": "现病史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 253, - "height": 42, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "presentIllness", - "title": "无", - "lHeight": 30 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 305, - "height": 13.5, - "width": 50, - "title": "既往史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 324, - "height": 30, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "pastIllness", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 366, - "height": 13.5, - "width": 50, - "title": "过敏史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 384, - "height": 22.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "allergyHistory", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 412.5, - "height": 13.5, - "width": 50, - "title": "家族史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 432, - "height": 22.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "familyHistory", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 465, - "height": 13.5, - "width": 50, - "title": "个人史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 486, - "height": 28.5, - "width": 550, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "personalHistory", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 522.2500162124634, - "height": 13.5, - "width": 82.5, - "title": "体格检查", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 544.7500162124634, - "height": 30, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "title": "长文", - "lHeight": 20, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 获取所有体检数据\n const bloodHigh = templateData.bloodHigh || '';\n const bloodLow = templateData.bloodLow || '';\n const breathe = templateData.breathe || '';\n const temperature = templateData.temperature || '';\n const pulse = templateData.pulse || '';\n \n // 格式化每个字段\n \n let formattedTemperature = '';\n if (temperature && !isNaN(temperature)) {\n formattedTemperature = 'T:' + temperature + '℃';\n }\n \n let formattedPulse = '';\n if (pulse && !isNaN(pulse)) {\n formattedPulse = 'P:' + pulse + '次/分';\n }\n let formattedR = '';\n if (breathe && !isNaN(breathe)) {\n formattedR = 'R:' + breathe + '次/分';\n }\n \n let formattedBP = '';\n if (bloodHigh && !isNaN(bloodHigh)) {\n formattedBP = 'BP:' + bloodHigh +'/'+bloodLow+ 'mmHg';\n }\n \n \n // 组合所有信息\n const result = [\n formattedR,\n formattedBP,\n formattedTemperature,\n formattedPulse\n ].filter(item => item !== '').join(' ');\n \n return result;\n}\n\n" - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 582, - "height": 13.5, - "width": 79.5, - "title": "辅助检查", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 601.5, - "height": 30, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "auxiliaryExam", - "title": "长文", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 640.5, - "height": 13.5, - "width": 79.5, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 661.5, - "height": 28.5, - "width": 550, - "title": "无", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "diagnosisText", - "lHeight": 30 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 694.7431640625, - "height": 13.5, - "width": 79.5, - "title": "处置", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 720, - "height": 28.5, - "width": 550, - "title": "无", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "treatment", - "lHeight": 30 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 9, - "top": 766.5, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28.5, - "top": 787.5, - "height": 13.5, - "width": 223.5, - "title": "医生签字:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 399, - "top": 787.5, - "height": 13.5, - "width": 186, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true, - "field": "reqTime" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 28.5, - "top": 810, - "height": 19.5, - "width": 556.5, - "title": "为了您和家人的健康,请勿吸烟!如需戒烟帮助,请到戒烟干预室咨询。", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 12, - "letterSpacing": 1.5, - "textAlign": "center" - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/MedicinePrescription.json b/openhis-ui-vue3/src/components/Print/MedicinePrescription.json deleted file mode 100644 index 994b6c3d..00000000 --- a/openhis-ui-vue3/src/components/Print/MedicinePrescription.json +++ /dev/null @@ -1,599 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A5", - "height": 210, - "width": 148, - "paperList": { - "type": "A5", - "width": 148, - "height": 210 - }, - "paperHeader": 0, - "paperFooter": 592.4409448818898, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.01, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "10px", - "rotate": 0, - "width": 100, - "height": 100, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 420, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 50, - "height": 20, - "width": 420, - "title": "处方签", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 90, - "height": 13.5, - "width": 100, - "title": "医保编号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 283, - "top": 90, - "height": 13.5, - "width": 117, - "title": "就诊类型", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "orgId_dictText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 117, - "height": 13.5, - "width": 100, - "title": "处方编号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "prescriptionNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 283, - "top": 117, - "height": 13.5, - "width": 117, - "title": "病人性质", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 138, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 160.5, - "top": 153, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 153, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 154.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 177, - "height": 13.5, - "width": 132, - "title": "地址:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 160.5, - "top": 178.5, - "height": 13.5, - "width": 99, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "departmentName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 178.5, - "height": 13.5, - "width": 99, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 205.5, - "height": 13.5, - "width": 189, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "encounterNo" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 219, - "top": 205.5, - "height": 13.5, - "width": 198, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 232.5, - "height": 13.5, - "width": 381, - "title": "临床诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "conditionName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 256.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28, - "top": 282, - "height": 9.75, - "width": 120, - "title": "Rp", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 18, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 306, - "height": 36, - "width": 390, - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "textAlign": "center", - "tableBorder": "border", - "tableHeaderFontWeight": "500", - "field": "prescriptionList", - "columns": [ - [ - { - "title": "名称", - "width": 55.386224315781, - "field": "itemName", - "checked": true, - "columnId": "itemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "规格", - "width": 59.41840807183531, - "field": "totalVolume", - "checked": true, - "columnId": "totalVolume", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "产地", - "width": 79.59183673469389, - "field": "manufacturerText", - "checked": true, - "columnId": "manufacturerText", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "单价", - "width": 45.49640338326492, - "field": "unitPrice", - "checked": true, - "columnId": "unitPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "width": 41.658473534111906, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "金额", - "width": 42.9159186212175, - "field": "totalPrice", - "checked": true, - "columnId": "totalPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "等级", - "width": 65.53273533909551, - "field": "contractName", - "checked": true, - "columnId": "contractName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 25.5, - "top": 379.5, - "height": 13.5, - "width": 241.5, - "title": "用法", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 18, - "top": 513, - "height": 13.5, - "width": 80, - "title": "医师", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 124.5, - "top": 513, - "height": 13.5, - "width": 80, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 222, - "top": 513, - "height": 13.5, - "width": 80, - "title": "划价", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 310.5, - "top": 513, - "height": 13.5, - "width": 80, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 532.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 289, - "top": 551.5, - "height": 13.5, - "width": 120, - "title": "总金额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "medTotalAmount" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OperativeRecord.json b/openhis-ui-vue3/src/components/Print/OperativeRecord.json deleted file mode 100644 index 4cf94545..00000000 --- a/openhis-ui-vue3/src/components/Print/OperativeRecord.json +++ /dev/null @@ -1,407 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A4", - "height": 297, - "width": 210, - "paperList": { - "type": "A4", - "width": 210, - "height": 297 - }, - "paperHeader": 0, - "paperFooter": 837, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 595.5, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 54.5, - "height": 20, - "width": 595.5, - "title": "手术记录", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 81, - "height": 13.5, - "width": 190.5, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 81, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 82.5, - "height": 13.5, - "width": 193.5, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 108, - "height": 13.5, - "width": 192, - "title": "医保", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 108, - "height": 13.5, - "width": 190.5, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "phone" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 108, - "height": 13.5, - "width": 99, - "title": "医生", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 132.99999618530273, - "height": 13.5, - "width": 124.5, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "department" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 133.5, - "height": 13.5, - "width": 196.5, - "title": "病历号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "busNo" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 133.5, - "height": 13.5, - "width": 200, - "title": "手术日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "operationDate" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 157.5, - "height": 61.5, - "width": 550.5, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "busNosds" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 226.5, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 25.5, - "top": 250.5, - "height": 13.5, - "width": 81, - "title": "详细记录", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 271.5, - "height": 493.5, - "width": 550, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "surgicalDetails", - "lHeight": 60, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 返回原始值,让组件自动处理高度\n return value;\n}", - "styler": "function(value, options, target, templateData, paperNo) {\n return { \n 'word-wrap': 'break-word',\n 'word-break': 'break-all',\n 'white-space': 'normal',\n 'line-height': '1.4',\n 'overflow': 'visible'\n };\n}" - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 9, - "top": 774, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28.5, - "top": 787.5, - "height": 13.5, - "width": 223.5, - "title": "病人或家人签字:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 399, - "top": 787.5, - "height": 13.5, - "width": 186, - "title": "医生签字:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 399, - "top": 811.5, - "height": 13.5, - "width": 186, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 28.5, - "top": 813, - "height": 13.5, - "width": 222, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OutpatientBilling.json b/openhis-ui-vue3/src/components/Print/OutpatientBilling.json deleted file mode 100644 index 2c500d55..00000000 --- a/openhis-ui-vue3/src/components/Print/OutpatientBilling.json +++ /dev/null @@ -1,733 +0,0 @@ -{ - "panels": [ - { - "index": 0, - "name": 1, - "paperType": "自定义", - "height": 500, - "width": 80, - "paperList": { - "type": "自定义", - "width": 80, - "height": 500 - }, - "panelPageRule": "none", - "paperHeader": 0, - "paperFooter": 1128, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 15, - "height": 16.5, - "width": 225, - "title": "长春市朝阳区中医院门诊收费结算单", - "coordinateSync": false, - "widthHeightSync": false, - "fontWeight": "bold", - "letterSpacing": 0.75, - "textAlign": "center", - "qrCodeLevel": 0, - "fontSize": 12, - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 39, - "height": 14, - "width": 80, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientName", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 136.5, - "top": 39, - "height": 80, - "width": 80, - "textType": "qrcode", - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "regNo", - "hideTitle": true - }, - "printElementType": { - "title": "qrcode", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 60, - "height": 14, - "width": 45, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "sex", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 63, - "top": 60, - "height": 14, - "width": 55, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "age", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 84, - "height": 14, - "width": 120, - "title": "病人类型", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "personType", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 106.5, - "height": 14, - "width": 120, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "regNo", - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 12, - "top": 130, - "height": 51, - "width": 208.5, - "title": "undefined+beforeDragIn", - "field": "chargeItemsList", - "coordinateSync": false, - "widthHeightSync": true, - "textAlign": "center", - "tableBodyRowBorder": "border", - "tableBodyCellBorder": "border", - "fontFamily": "Microsoft YaHei", - "styler": "function(value, options, target, templateData, paperNo) {\n return {\n marginBottom: '20px'\n };\n}", - "columns": [ - [ - { - "title": "收费名称", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 61.93559159547676, - "field": "chargeItemName", - "checked": true, - "columnId": "chargeItemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "规格", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 37.0789811853845, - "field": "totalVolume", - "checked": true, - "columnId": "totalVolume", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "formatter2": "// 在数量列的单元格格式化函数中填写\nfunction(value, row, index, options, rowIndex, column) {\n if (!value) return '';\n const unitText = row.quantityUnit_dictText || '';\n return `${value}${unitText}`;\n}", - "width": 37.15646954521698, - "field": "quantityWithUnit", - "checked": true, - "columnId": "quantityWithUnit", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "金额", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 35.15170328143829, - "field": "totalPrice", - "checked": true, - "columnId": "totalPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1, - "formatter2": "function(value, row, index, options, rowIndex, column) {\n if (!value) return '';\n return `${value}元`;\n}" - }, - { - "title": "类别", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "formatter2": "// 在数量列的单元格格式化函数中填写\nfunction(value, row, index, options, rowIndex, column) {\n if (!value) return '';\n \n // 将字符串转换为数字进行比较\n const numValue = parseInt(value);\n \n // 根据value值显示对应的文本\n if (numValue === 1) {\n return '甲类';\n } else if (numValue === 2) {\n return '乙类';\n } else if (numValue === 3) {\n return '自费';\n }\n \n // 如果不是1、2、3,则显示原始值\n return `${value}`;\n}", - "width": 37.17725439248345, - "field": "dirClass", - "checked": true, - "columnId": "dirClass", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 15, - "top": 189, - "height": 14, - "width": 100, - "title": "合计金额", - "field": "FULAMT_OWNPAY_AMT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 189, - "height": 14, - "width": 100, - "title": "现金支付", - "field": "SELF_CASH_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 209.5, - "height": 14, - "width": 100, - "title": "原账户余额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5, - "field": "displayAmount121" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 211, - "height": 14, - "width": 100, - "title": "卡内支付", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5, - "field": "SELF_YB_ZH_PAY" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 229.5, - "height": 14, - "width": 100, - "title": "现账户余额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5, - "field": "BALC" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 231, - "height": 14, - "width": 100, - "title": "大特病统筹", - "field": "URBAN_SERIOUS_ILLNESS", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 250.5, - "height": 14, - "width": 100, - "title": "公务员补助", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "YB_BC_GWY_BZ_VALUE", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 251.5, - "height": 14, - "width": 100, - "title": "医疗救助", - "field": "YB_JZ_FUND_AMOUNT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 271.5, - "height": 14, - "width": 100, - "title": "兜底扶贫", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "SELF_YB_ZH_GJ_VALUE", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 273, - "height": 14, - "width": 100, - "title": "离休统筹", - "field": "OTHER_PAY_LX_YL_FUND_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 291, - "height": 14, - "width": 100, - "title": "工伤统筹", - "field": "OTHER_PAY_YW_SH_FUND_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 292.5, - "height": 14, - "width": 100, - "title": "共济支付", - "field": "SELF_YB_ZH_GJ_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 310.5, - "height": 14, - "width": 100, - "title": "微信刷卡支付", - "field": "SELF_CASH_VX_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 312, - "height": 14, - "width": 100, - "title": "医保基金总额", - "field": "YB_FUND_PAY", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 120, - "top": 331.5, - "height": 14, - "width": 100, - "title": "实收金额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "displayAmount123", - "fontFamily": "Microsoft YaHei", - "hideTitle": true, - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 332.49609375, - "height": 14, - "width": 100, - "title": "统筹支付", - "field": "YB_TC_FUND_AMOUNT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 355.5, - "height": 14, - "width": 202.5, - "title": "收费员", - "field": "paymentEmployee", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 376.5, - "height": 14, - "width": 205.5, - "title": "收费时间", - "field": "currentDate", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "dataType": "datetime", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 399, - "height": 9, - "width": 206, - "borderWidth": "0.75", - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "borderStyle": "dashed" - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 0, - "top": 408, - "height": 16.5, - "width": 225, - "title": "财政发票查验获取", - "coordinateSync": false, - "widthHeightSync": false, - "fontWeight": "400", - "letterSpacing": 0.75, - "textAlign": "center", - "qrCodeLevel": 0, - "fontSize": 12, - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 12, - "top": 436.5, - "height": 9.75, - "width": 100, - "title": "1. 到人工窗口打印", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 12, - "top": 450.9961166381836, - "height": 9.75, - "width": 100, - "title": "2. 扫描下方二维码", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 115.5, - "top": 454.5, - "height": 100, - "width": 100, - "title": "undefined+beforeDragIn", - "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAYAAAA8uqNSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiYWU2N2EzZS00ZWE1LTMyNGQtOTllMS04M2E4MmM5NmYxNzgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTlDNDc2MEMxN0RDMTFFOUE5RThCRUVCQUZCQjgxQjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTlDNDc2MEIxN0RDMTFFOUE5RThCRUVCQUZCQjgxQjEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU4YWFiYWQyLWQxZmUtZTA0Yi1iNDZjLTUzZTExY2QwYzY2ZiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpiYWU2N2EzZS00ZWE1LTMyNGQtOTllMS04M2E4MmM5NmYxNzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6C2K/nAABQKUlEQVR42uydB5xb1bH/R2Wl7V6XtTHYuGETbHoz3bTQExNagCTwElIIKZCQhATS3x9CXnqhPToEAoSEUEIIvXcMBkwx7r2ty/bVSjr/8517j3R1V9rVmjWYB4ePWFm6uuWcOTO/+c2cORFjzOsiMsy+jHzUem22ryQSiXxYHpcHXRO3/xtuX40fDX/fgvEhEg7XoghI5iMRKC0YS5YskVdffVVGjx4t22+/vUSj0Q9TF2SiH4lB6dbe3i7XXXednHTSSfKjH/1IFi1a9KHrg+j/lZm+dOlSefTRRwd0ENeuXSsvvPCCCsqsWbNk/vz5vR6/bt06eeKJJ+Ttt9+WTCbzkYBsTjP9z3/+s5x55pny61//Wjo6OgbkvE1NTbJixQp939jYKA0NDb0ef/PNN8tZZ50l5513nixevPgjAdlcWmtrqzzyyCM6c++44w55/fXXB+S8qVRK2tra9P2IESNkyy237FXb3HbbbXrthx56SLHLRwLyPpsV16qrq2W33XbLCctLL73Up+m4++675fHHH88JQPB8ro0dO1aOOuoomTJlihx22GEyZMiQkufEBDmh2HrrrWX48OH9eoaPBGQjVfy1116rLwa1VKutrZX9999fksmkNDc3y4wZMwowAAMRHIx//etf8vWvf13OPvtsmTlzZskBY5C/+93vyo033iinnnqqVFRUlLwHBK2rq0vf77HHHrLVVlv1qpnuvPNO+d3vfidz5szZrAUkvjnf3GOPPaYDBP/A4H3hC1/IszgBToL32267rZoAgCSmZvny5TJq1Kii521paVGB45wOr7hrhBtCUo422HHHHeWUU07RAf+v//ov1WqlGhruxz/+sR6LYJ177rm9Hv+RgPQCPtEitL/97W9yxBFH5HBAmNXcYost5GMf+5gKCJ7MG2+8kROQMMF19NFHq7bBZOy6665FhY62atUqxRX8ZdDHjx9f8l65L1zhDRs26PtSpBoC+Y9//EO5FRoab7M2NfbmlpvNtFlNYPbbbz96z9TU1Jibbrop9102my34a2eiueCCC/RYOxvNhRde2K9rufME/33PPfcYC06NNWHmN7/5jbFmq+hvu7u7zTvvvGNWr17d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", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 9, - "top": 472.5, - "height": 100, - "width": 100, - "title": "undefined+beforeDragIn", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "field": "pictureUrl" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - } - ] - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OutpatientInfusion copy.json b/openhis-ui-vue3/src/components/Print/OutpatientInfusion copy.json deleted file mode 100644 index 2ee747fc..00000000 --- a/openhis-ui-vue3/src/components/Print/OutpatientInfusion copy.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 2, - "paperType": "自定义", - "height": 60, - "width": 80, - "paperList": { - "type": "自定义", - "width": 80, - "height": 60 - }, - "paperHeader": 0, - "paperFooter": 166.5, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 6, - "top": 7.5, - "height": 10, - "width": 69, - "title": "病区", - "field": "patientName", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 81, - "top": 7.5, - "height": 10, - "width": 52.5, - "title": "姓名", - "field": "patientName", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 7.5, - "height": 10, - "width": 72, - "title": "床位号", - "field": "bedNo", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 22, - "height": 12, - "width": 81, - "title": "频次 qd", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 8.25, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 24, - "height": 10, - "width": 70.5, - "title": "日期", - "field": "date", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 4.5, - "top": 45, - "height": 30, - "width": 216, - "title": "undefined+beforeDragIn", - "field": "infuseData", - "coordinateSync": false, - "widthHeightSync": false, - "tableHeaderBackground": "#ffffff", - "tableBodyCellBorder": "noBorder", - "rowsColumnsMerge": "function(data, col, colIndex, rowIndex, tableData, printData){ \n // 合并前三列 (columnIndex 0-2)\n if (colIndex >= 0 && colIndex <= 2) {\n // 第一列显示合并后的单元格\n if (colIndex === 0) {\n return [1, 3]; // rowspan=1, colspan=3\n } \n // 其他两列不显示(被合并)\n else {\n return [0, 0]; // rowspan=0, colspan=0\n }\n }\n // 其他列正常显示\n return [1, 1]; // rowspan=1, colspan=1\n}", - "tableBodyRowBorder": "topBottomBorder", - "fontSize": 7.5, - "tableHeaderRepeat": "first", - "maxRows": 3, - "tableHeaderRowHeight": 6, - "tableHeaderFontSize": 6.75, - "columns": [ - [ - { - "title": "用法", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 51.988373079128756, - "field": "data", - "checked": true, - "columnId": "data", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "剂量", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 55.016471480350916, - "checked": true, - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "滴速", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 55.31961796101854, - "field": "", - "checked": true, - "columnId": "", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "formatter2": "function(value,row,index,options,rowIndex,column){ return value + ' ' + row.unitCode_dictText; }", - "width": 53.6755374795018, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 10, - "top": 144, - "height": 9, - "width": 210, - "borderWidth": "0.75", - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 10, - "top": 153, - "height": 9.75, - "width": 82.5, - "title": "执行人", - "field": "prepareName", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 111, - "top": 153, - "height": 9.75, - "width": 82.5, - "title": "时间", - "field": "date", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 151.5, - "paperNumberTop": 91 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OutpatientInfusion.json b/openhis-ui-vue3/src/components/Print/OutpatientInfusion.json deleted file mode 100644 index 409acd68..00000000 --- a/openhis-ui-vue3/src/components/Print/OutpatientInfusion.json +++ /dev/null @@ -1,245 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 2, - "paperType": "自定义", - "height": 34, - "width": 58, - "paperList": { - "type": "自定义", - "width": 60, - "height": 40 - }, - "paperHeader": 0, - "paperFooter": 91.5, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.01, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "10px", - "rotate": 25, - "width": 100, - "height": 100, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 6, - "top": 7.5, - "height": 10, - "width": 51, - "title": "文本", - "field": "patientName", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "hideTitle": true, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 70, - "top": 7.5, - "height": 10, - "width": 33, - "title": "文本", - "field": "genderEnum_enumText", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "hideTitle": true, - "fontSize": 7.5, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119, - "top": 7.5, - "height": 10, - "width": 45, - "title": "文本", - "field": "age", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "hideTitle": true, - "fontSize": 7.5, - "fontWeight": "bold", - "textAlign": "right" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 19.5, - "height": 12, - "width": 81, - "title": "频次 qd", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontSize": 8.25, - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 93, - "top": 19.5, - "height": 10, - "width": 70.5, - "title": "文本", - "field": "date", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "hideTitle": true, - "fontSize": 7.5, - "fontWeight": "bold", - "textAlign": "right" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 4.5, - "top": 36, - "height": 30, - "width": 156, - "title": "undefined+beforeDragIn", - "field": "infuseData", - "coordinateSync": false, - "widthHeightSync": false, - "tableHeaderBackground": "#ffffff", - "tableBodyCellBorder": "noBorder", - "rowsColumnsMerge": "function(data, col, colIndex, rowIndex, tableData, printData){ \n // 合并前三列 (columnIndex 0-2)\n if (colIndex >= 0 && colIndex <= 2) {\n // 第一列显示合并后的单元格\n if (colIndex === 0) {\n return [1, 3]; // rowspan=1, colspan=3\n } \n // 其他两列不显示(被合并)\n else {\n return [0, 0]; // rowspan=0, colspan=0\n }\n }\n // 其他列正常显示\n return [1, 1]; // rowspan=1, colspan=1\n}", - "tableBodyRowBorder": "topBottomBorder", - "fontSize": 7.5, - "tableHeaderRepeat": "first", - "maxRows": 3, - "tableHeaderRowHeight": 6, - "tableHeaderFontSize": 6.75, - "columns": [ - [ - { - "title": "用法", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 37.54715833492632, - "field": "data", - "checked": true, - "columnId": "data", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "剂量", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 39.4492016246979, - "checked": true, - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "速度", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 40.23797408295783, - "checked": true, - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "titleSync": false, - "align": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "formatter2": "function(value,row,index,options,rowIndex,column){ return value + ' ' + row.unitCode_dictText; }", - "width": 38.765665957417966, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - } - ], - "paperNumberLeft": 151.5, - "paperNumberTop": 91 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OutpatientMedicalRecord.json b/openhis-ui-vue3/src/components/Print/OutpatientMedicalRecord.json deleted file mode 100644 index b6d50433..00000000 --- a/openhis-ui-vue3/src/components/Print/OutpatientMedicalRecord.json +++ /dev/null @@ -1,734 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A4", - "height": 297, - "width": 210, - "paperList": { - "type": "A4", - "width": 210, - "height": 297 - }, - "paperHeader": 217.5, - "paperFooter": 771, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 595.5, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 54.5, - "height": 20, - "width": 595.5, - "title": "门诊病历", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 81, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 81, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 82.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 108, - "height": 13.5, - "width": 99, - "title": "医保", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 108, - "height": 13.5, - "width": 190.5, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "phone" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 460.5, - "top": 108, - "height": 13.5, - "width": 99, - "title": "医生", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 133.5, - "height": 13.5, - "width": 196.5, - "title": "病历号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "busNo" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 247.5, - "top": 133.5, - "height": 13.5, - "width": 200, - "title": "发病日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "onsetDate" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 159, - "height": 13.5, - "width": 50, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "vxc" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 174, - "height": 30, - "width": 550, - "hideTitle": true, - "field": "diagnosisText", - "title": "无", - "lHeight": 20, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n return value || '无';\n}", - "styler": "function(value, options, target, templateData, paperNo) {\n return { \n 'word-wrap': 'break-word',\n 'word-break': 'break-all',\n 'white-space': 'normal',\n 'line-height': '1.4'\n };\n}", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 10, - "top": 210, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 25.5, - "top": 217.5, - "height": 13.5, - "width": 50, - "title": "主诉", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 235.5, - "height": 33, - "width": 550, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "complaint", - "lHeight": 50 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 277.5, - "height": 13.5, - "width": 50, - "title": "现病史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 299.5, - "height": 31.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "presentIllness", - "title": "无", - "lHeight": 30 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 341, - "height": 13.5, - "width": 50, - "title": "既往史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 360, - "height": 25.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "pastIllness", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 396, - "height": 13.5, - "width": 50, - "title": "过敏史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 414, - "height": 33, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "allergyHistory", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 462, - "height": 13.5, - "width": 50, - "title": "家族史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 481.5, - "height": 22.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "familyHistory", - "title": "无", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 514.5, - "height": 13.5, - "width": 50, - "title": "个人史", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 535.5, - "height": 28.5, - "width": 550, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "personalHistory", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 571.7500162124634, - "height": 13.5, - "width": 50, - "title": "体检", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 594.2500162124634, - "height": 30, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "title": "长文", - "lHeight": 20, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 获取所有体检数据\n const height = templateData.height || '';\n const weight = templateData.weight || '';\n const temperature = templateData.temperature || '';\n const pulse = templateData.pulse || '';\n \n // 格式化每个字段\n let formattedHeight = '';\n if (height && !isNaN(height)) {\n formattedHeight = '身高:' + height + 'cm';\n }\n \n let formattedWeight = '';\n if (weight && !isNaN(weight)) {\n formattedWeight = '体重:' + weight + 'kg';\n }\n \n let formattedTemperature = '';\n if (temperature && !isNaN(temperature)) {\n formattedTemperature = '体温:' + temperature + '℃';\n }\n \n let formattedPulse = '';\n if (pulse && !isNaN(pulse)) {\n formattedPulse = '脉搏:' + pulse + '次/分';\n }\n \n // 组合所有信息\n const result = [\n formattedHeight,\n formattedWeight,\n formattedTemperature,\n formattedPulse\n ].filter(item => item !== '').join(' ');\n \n return result;\n}\n\n" - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 631.5, - "height": 13.5, - "width": 79.5, - "title": "辅助检查", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 651, - "height": 22.5, - "width": 550, - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "auxiliaryExam", - "title": "长文", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 678.2431640625, - "height": 13.5, - "width": 50, - "title": "处置", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 700.5, - "height": 21, - "width": 550, - "title": "无", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "treatment", - "lHeight": 30 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 25.5, - "top": 730, - "height": 13.5, - "width": 50, - "title": "治疗", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "physicalExamdsd", - "fontWeight": "bold" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 747, - "height": 25.5, - "width": 550, - "title": "无", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "field": "physicalExam", - "lHeight": 20 - }, - "printElementType": { - "title": "长文", - "type": "longText" - } - }, - { - "options": { - "left": 9, - "top": 774, - "height": 9, - "width": 576, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28.5, - "top": 787.5, - "height": 13.5, - "width": 223.5, - "title": "病人或家人签字:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 399, - "top": 787.5, - "height": 13.5, - "width": 186, - "title": "医生签字:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 399, - "top": 811.5, - "height": 13.5, - "width": 186, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 28.5, - "top": 813, - "height": 13.5, - "width": 222, - "title": "日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/OutpatientRegistration.json b/openhis-ui-vue3/src/components/Print/OutpatientRegistration.json deleted file mode 100644 index 369542ab..00000000 --- a/openhis-ui-vue3/src/components/Print/OutpatientRegistration.json +++ /dev/null @@ -1,717 +0,0 @@ -{ - "panels": [ - { - "index": 0, - "name": 1, - "paperType": "自定义", - "height": 212, - "width": 80, - "paperList": { - "type": "自定义", - "width": 80, - "height": 212 - }, - "panelPageRule": "none", - "paperHeader": 0, - "paperFooter": 597, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 15, - "height": 16.5, - "width": 226.5, - "title": "长春市朝阳区中医院挂号收费明细", - "coordinateSync": false, - "widthHeightSync": false, - "fontWeight": "bold", - "letterSpacing": 0.75, - "textAlign": "center", - "qrCodeLevel": 0, - "fontSize": 12 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 34.5, - "height": 9.75, - "width": 226.5, - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 10.5, - "textAlign": "center", - "qrCodeLevel": 0, - "field": "organizationName", - "testData": "【】", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 55.5, - "height": 14, - "width": 80, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "patientName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 136.5, - "top": 55.5, - "height": 80, - "width": 80, - "textType": "qrcode", - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "busNo", - "hideTitle": true - }, - "printElementType": { - "title": "qrcode", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 78, - "height": 14, - "width": 58, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "sex" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 77, - "top": 78, - "height": 14, - "width": 57, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "age" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 100.5, - "height": 14, - "width": 120, - "title": "病人类型", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "personType" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 123, - "height": 14, - "width": 120, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "busNo" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 7.5, - "top": 148.5, - "height": 36, - "width": 211.5, - "title": "undefined+beforeDragIn", - "field": "chargeItem", - "coordinateSync": false, - "widthHeightSync": false, - "textAlign": "center", - "fontSize": 10.5, - "columns": [ - [ - { - "title": "收费名称", - "width": 60.89044213772997, - "field": "chargeItemName", - "checked": true, - "columnId": "chargeItemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "width": 55.75799626805778, - "field": "quantityValue", - "checked": true, - "columnId": "quantityValue", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "金额", - "width": 46.100394456482256, - "field": "totalPrice", - "checked": true, - "columnId": "totalPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1, - "formatter2": "function(value, row, index, options, rowIndex, column) {\n if (!value) return '';\n return `${value}元`;\n}" - }, - { - "title": "类别", - "titleSync": false, - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "formatter2": "// 在数量列的单元格格式化函数中填写\nfunction(value, row, index, options, rowIndex, column) {\n if (!value) return '';\n \n // 将字符串转换为数字进行比较\n const numValue = parseInt(value);\n \n // 根据value值显示对应的文本\n if (numValue === 1) {\n return '甲类';\n } else if (numValue === 2) {\n return '乙类';\n } else if (numValue === 3) {\n return '自费';\n }\n \n // 如果不是1、2、3,则显示原始值\n return `${value}`;\n}", - "width": 48.751167137729986, - "field": "dirClass", - "checked": true, - "columnId": "dirClass", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 15, - "top": 192, - "height": 14, - "width": 100, - "title": "合计金额", - "field": "FULAMT_OWNPAY_AMT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 192, - "height": 14, - "width": 100, - "title": "现金支付", - "field": "SELF_CASH_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 214, - "height": 14, - "width": 100, - "title": "卡内支付", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5, - "field": "SELF_YB_ZH_PAY" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 214, - "height": 14, - "width": 100, - "title": "原账户余额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "field": "displayAmount21", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 235.5, - "height": 14, - "width": 100, - "title": "现账户余额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "field": "BALC", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 237, - "height": 14, - "width": 100, - "title": "大特病统筹", - "field": "URBAN_SERIOUS_ILLNESS", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 258, - "height": 14, - "width": 100, - "title": "公务员补助", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "YB_BC_GWY_BZ_VALUE", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 259, - "height": 14, - "width": 100, - "title": "医疗救助", - "field": "YB_JZ_FUND_AMOUNT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 280.5, - "height": 14, - "width": 100, - "title": "兜底扶贫", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "SELF_YB_ZH_GJ_VALUE", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 282, - "height": 14, - "width": 100, - "title": "离休统筹", - "field": "OTHER_PAY_LX_YL_FUND_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 301.5, - "height": 14, - "width": 100, - "title": "工伤统筹", - "field": "OTHER_PAY_YW_SH_FUND_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 303, - "height": 14, - "width": 100, - "title": "共济支付", - "field": "SELF_YB_ZH_GJ_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 324, - "height": 14, - "width": 100, - "title": "医保基金总额", - "field": "YB_FUND_PAY", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 324, - "height": 14, - "width": 100, - "title": "微信刷卡支付", - "field": "SELF_CASH_VX_VALUE", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 119.5, - "top": 345, - "height": 14, - "width": 100, - "title": "实收金额", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "displayAmount123", - "fontFamily": "Microsoft YaHei", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 345.99609375, - "height": 14, - "width": 100, - "title": "统筹支付", - "field": "YB_TC_FUND_AMOUNT", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 370.5, - "height": 14, - "width": 205.5, - "title": "收费员", - "field": "cashier", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 393, - "height": 14, - "width": 205.5, - "title": "收费时间", - "field": "chargeTime", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "dataType": "datetime", - "fontFamily": "Microsoft YaHei", - "fontSize": 10.5 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 418.5, - "height": 9, - "width": 206, - "borderWidth": "0.75", - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "borderStyle": "dashed" - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 0, - "top": 427.5, - "height": 16.5, - "width": 225, - "title": "财政发票查验获取", - "coordinateSync": false, - "widthHeightSync": false, - "fontWeight": "400", - "letterSpacing": 0.75, - "textAlign": "center", - "qrCodeLevel": 0, - "fontSize": 12, - "fontFamily": "Microsoft YaHei" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 12, - "top": 456, - "height": 9.75, - "width": 100, - "title": "1. 到人工窗口打印", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 112.5, - "top": 466.5, - "height": 100, - "width": 100, - "title": "undefined+beforeDragIn", - "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAYAAAA8uqNSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiYWU2N2EzZS00ZWE1LTMyNGQtOTllMS04M2E4MmM5NmYxNzgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTlDNDc2MEMxN0RDMTFFOUE5RThCRUVCQUZCQjgxQjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTlDNDc2MEIxN0RDMTFFOUE5RThCRUVCQUZCQjgxQjEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU4YWFiYWQyLWQxZmUtZTA0Yi1iNDZjLTUzZTExY2QwYzY2ZiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpiYWU2N2EzZS00ZWE1LTMyNGQtOTllMS04M2E4MmM5NmYxNzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6C2K/nAABQKUlEQVR42uydB5xb1bH/R2Wl7V6XtTHYuGETbHoz3bTQExNagCTwElIIKZCQhATS3x9CXnqhPToEAoSEUEIIvXcMBkwx7r2ty/bVSjr/8517j3R1V9rVmjWYB4ePWFm6uuWcOTO/+c2cORFjzOsiMsy+jHzUem22ryQSiXxYHpcHXRO3/xtuX40fDX/fgvEhEg7XoghI5iMRKC0YS5YskVdffVVGjx4t22+/vUSj0Q9TF2SiH4lB6dbe3i7XXXednHTSSfKjH/1IFi1a9KHrg+j/lZm+dOlSefTRRwd0ENeuXSsvvPCCCsqsWbNk/vz5vR6/bt06eeKJJ+Ttt9+WTCbzkYBsTjP9z3/+s5x55pny61//Wjo6OgbkvE1NTbJixQp939jYKA0NDb0ef/PNN8tZZ50l5513nixevPgjAdlcWmtrqzzyyCM6c++44w55/fXXB+S8qVRK2tra9P2IESNkyy237FXb3HbbbXrthx56SLHLRwLyPpsV16qrq2W33XbLCctLL73Up+m4++675fHHH88JQPB8ro0dO1aOOuoomTJlihx22GEyZMiQkufEBDmh2HrrrWX48OH9eoaPBGQjVfy1116rLwa1VKutrZX9999fksmkNDc3y4wZMwowAAMRHIx//etf8vWvf13OPvtsmTlzZskBY5C/+93vyo033iinnnqqVFRUlLwHBK2rq0vf77HHHrLVVlv1qpnuvPNO+d3vfidz5szZrAUkvjnf3GOPPaYDBP/A4H3hC1/IszgBToL32267rZoAgCSmZvny5TJq1Kii521paVGB45wOr7hrhBtCUo422HHHHeWUU07RAf+v//ov1WqlGhruxz/+sR6LYJ177rm9Hv+RgPQCPtEitL/97W9yxBFH5HBAmNXcYost5GMf+5gKCJ7MG2+8kROQMMF19NFHq7bBZOy6665FhY62atUqxRX8ZdDHjx9f8l65L1zhDRs26PtSpBoC+Y9//EO5FRoab7M2NfbmlpvNtFlNYPbbbz96z9TU1Jibbrop9102my34a2eiueCCC/RYOxvNhRde2K9rufME/33PPfcYC06NNWHmN7/5jbFmq+hvu7u7zTvvvGNWr17d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", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 12, - "top": 470.4961166381836, - "height": 9.75, - "width": 100, - "title": "2. 扫描下方二维码", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 486, - "height": 100, - "width": 100, - "title": "undefined+beforeDragIn", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "field": "pictureUrl" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - } - ] - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Pharmacy copy 2.json b/openhis-ui-vue3/src/components/Print/Pharmacy copy 2.json deleted file mode 100644 index 85965b07..00000000 --- a/openhis-ui-vue3/src/components/Print/Pharmacy copy 2.json +++ /dev/null @@ -1,1174 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "自定义", - "height": 271, - "width": 80, - "paperList": { - "type": "自定义", - "width": 80, - "height": 271 - }, - "paperHeader": 0, - "paperFooter": 766.5, - "paperNumberDisabled": true, - "paperNumberContinue": false, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 20, - "height": 19.5, - "width": 228, - "title": "中药长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 34.5, - "height": 20, - "width": 226.5, - "title": "门 诊 处 方 笺", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true, - "textDecoration": "underline" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 175.5, - "top": 37.5, - "height": 14, - "width": 40, - "title": "普通处方", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 175.5, - "top": 51, - "height": 14, - "width": 40, - "title": "当日有效", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 3.5, - "top": 69, - "height": 13.5, - "width": 100, - "title": "费别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 110.5, - "top": 69, - "height": 13.5, - "width": 117, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 3.5, - "top": 88.5, - "height": 13.5, - "width": 100, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 110.5, - "top": 88.5, - "height": 13.5, - "width": 117, - "title": "处方号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].prescriptionNo的值\n let prescriptionNoValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].prescriptionNo !== undefined) {\n \n prescriptionNoValue = templateData.prescriptionList[0].prescriptionNo;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `处方号:   ${prescriptionNoValue || ''}`;\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 105, - "height": 25, - "width": 30, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 34.5, - "top": 105, - "height": 25, - "width": 50, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "patientName", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 84, - "top": 105, - "height": 25, - "width": 30, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 114, - "top": 105, - "height": 25, - "width": 40, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 153, - "top": 105, - "height": 25, - "width": 30, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 182, - "top": 105, - "height": 25, - "width": 40, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "age", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 129, - "height": 25, - "width": 30, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 129, - "height": 25, - "width": 69, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "phone", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 129, - "height": 25, - "width": 40, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 142.5, - "top": 129, - "height": 25, - "width": 79.5, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "idCard", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 154.5, - "height": 25, - "width": 52, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 57, - "top": 154.5, - "height": 25, - "width": 165, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "conditionName", - "hideTitle": true, - "contentPaddingLeft": 15 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 4.5, - "top": 187.5, - "height": 19.5, - "width": 120, - "title": "Rp :", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 13.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 216, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[0].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 216, - "height": 10, - "width": 121.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[0].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[0].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[0].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 45, - "top": 234, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[0].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[0].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[0].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[0].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 249, - "height": 10, - "width": 169.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[0].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[0].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 262.5, - "height": 10, - "width": 81, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[1].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1] && \n templateData.prescriptionList[1].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[1].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 262.5, - "height": 10, - "width": 121.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[1].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[1].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[1].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 270, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 1) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46.5, - "top": 280.5, - "height": 10, - "width": 177, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[1].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[1].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[1].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[1].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 300, - "height": 10, - "width": 169.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[1].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[1].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 318, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "fontSize": 9.75, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[2].itemName的值\n let itemNameValue = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2] && \n templateData.prescriptionList[2].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[2].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 319.5, - "height": 10, - "width": 118.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[2].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[2].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[2].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 325, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 2) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46.5, - "top": 337.5, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[2].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[2].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[2].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[2].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 358.5, - "height": 10, - "width": 169.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[2].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[2].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 376.5, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[3].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3] && \n templateData.prescriptionList[3].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[3].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 376.5, - "height": 10, - "width": 121.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[3].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[3].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[3].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 47, - "top": 382, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 3) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46.5, - "top": 391.5, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[3].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[3].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[3].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[3].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 406.5, - "height": 10, - "width": 171, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[3].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[3].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 426, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[4].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4] && \n templateData.prescriptionList[4].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[4].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 102, - "top": 426, - "height": 10, - "width": 124.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[4].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[4].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[4].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 49, - "top": 434.5, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 4) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46.5, - "top": 441, - "height": 10, - "width": 178.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[4].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[4].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[4].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[4].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 462, - "height": 10, - "width": 169.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[4].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[4].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 50, - "top": 496, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 5) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 165, - "top": 499.5, - "height": 20, - "width": 45, - "title": "undefined+beforeDragIn", - "field": "doctorSignature", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "styler": "function(value, options, target, templateData, paperNo) {\n if (templateData.doctorSignature) {\n // 如果doctorSignature存在,正常显示\n return { border: '0px' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 19.5, - "top": 505.5, - "height": 13.5, - "width": 81, - "title": "药费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 132, - "top": 505.5, - "height": 13.5, - "width": 28.5, - "title": "医师:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 4.5, - "top": 520.5, - "height": 9, - "width": 216, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 19.5, - "top": 529.5, - "height": 13.5, - "width": 100, - "title": "核对", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 133.5, - "top": 529.5, - "height": 13.5, - "width": 93, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 556.5, - "height": 13.5, - "width": 79.5, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "loginUserName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 556.5, - "height": 13.5, - "width": 117, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true, - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 6, - "top": 579, - "height": 9, - "width": 214.5, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - } - ], - "paperNumberLeft": 196, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Pharmacy copy.json b/openhis-ui-vue3/src/components/Print/Pharmacy copy.json deleted file mode 100644 index fe858b01..00000000 --- a/openhis-ui-vue3/src/components/Print/Pharmacy copy.json +++ /dev/null @@ -1,1176 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A5", - "height": 210, - "width": 148, - "paperList": { - "type": "A5", - "width": 148, - "height": 210 - }, - "paperHeader": 0, - "paperFooter": 592.4409448818898, - "paperNumberDisabled": true, - "paperNumberContinue": false, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 20, - "height": 19.5, - "width": 420, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 336, - "top": 25.5, - "height": 18, - "width": 55.5, - "title": "普通处方", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 11.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 34.5, - "height": 20, - "width": 420, - "title": "门 诊 处 方 笺", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true, - "textDecoration": "underline" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 336.2461395263672, - "top": 42.75, - "height": 18, - "width": 55.5, - "title": "当日有效", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 30.5, - "top": 69, - "height": 13.5, - "width": 100, - "title": "费别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 236.5, - "top": 69, - "height": 13.5, - "width": 117, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 30.5, - "top": 88.5, - "height": 13.5, - "width": 100, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 236.5, - "top": 88.5, - "height": 13.5, - "width": 117, - "title": "处方号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].prescriptionNo的值\n let prescriptionNoValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].prescriptionNo !== undefined) {\n \n prescriptionNoValue = templateData.prescriptionList[0].prescriptionNo;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `处方号:   ${prescriptionNoValue || ''}`;\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 106.5, - "height": 25, - "width": 52, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 72, - "top": 106.5, - "height": 25, - "width": 75, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "patientName", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 106.5, - "height": 25, - "width": 52, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 198, - "top": 106.5, - "height": 25, - "width": 75, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 273, - "top": 106.5, - "height": 25, - "width": 53, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 325.5, - "top": 106.5, - "height": 25, - "width": 75, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "age", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 130.5, - "height": 25, - "width": 52, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 72, - "top": 130.5, - "height": 25, - "width": 96, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "phone", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 168, - "top": 130.5, - "height": 25, - "width": 66, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 234, - "top": 130.5, - "height": 25, - "width": 167, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "idCard", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 21, - "top": 154.5, - "height": 25, - "width": 52, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 72, - "top": 154.5, - "height": 25, - "width": 329, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "conditionName", - "hideTitle": true, - "contentPaddingLeft": 15 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 28.5, - "top": 198, - "height": 19.5, - "width": 120, - "title": "Rp :", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 13.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 225, - "height": 10, - "width": 120, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[0].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 168, - "top": 225, - "height": 10, - "width": 230, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[0].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[0].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[0].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 75, - "top": 244.5, - "height": 10, - "width": 300, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[0].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[0].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[0].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[0].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 139.5, - "top": 261, - "height": 10, - "width": 261, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[0].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[0].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 270, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 1) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 281, - "height": 10, - "width": 120, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[1].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1] && \n templateData.prescriptionList[1].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[1].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 166.5, - "top": 281, - "height": 10, - "width": 230, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[1].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[1].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[1].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 75, - "top": 299, - "height": 10, - "width": 300, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[1].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[1].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[1].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[1].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 139.5, - "top": 317, - "height": 10, - "width": 261, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[1].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[1].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 325, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 2) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 168, - "top": 336, - "height": 10, - "width": 230, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[2].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[2].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[2].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 337, - "height": 10, - "width": 120, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "fontSize": 9.75, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[2].itemName的值\n let itemNameValue = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2] && \n templateData.prescriptionList[2].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[2].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 75, - "top": 355, - "height": 10, - "width": 300, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[2].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[2].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[2].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[2].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 139.5, - "top": 373, - "height": 10, - "width": 261, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[2].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[2].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 47, - "top": 382, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 3) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 393, - "height": 10, - "width": 120, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[3].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3] && \n templateData.prescriptionList[3].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[3].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 166.5, - "top": 393, - "height": 10, - "width": 230, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[3].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[3].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[3].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 75, - "top": 411, - "height": 10, - "width": 300, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[3].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[3].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[3].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[3].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 139.5, - "top": 429, - "height": 10, - "width": 261, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[3].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[3].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 49, - "top": 434.5, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 4) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 27, - "top": 449, - "height": 10, - "width": 120, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[4].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4] && \n templateData.prescriptionList[4].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[4].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 166.5, - "top": 449, - "height": 10, - "width": 230, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[4].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[4].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[4].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 75, - "top": 467, - "height": 10, - "width": 300, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[4].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[4].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[4].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[4].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 139.5, - "top": 485, - "height": 10, - "width": 261, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[4].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[4].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 50, - "top": 496, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 5) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 306, - "top": 501, - "height": 20, - "width": 45, - "title": "undefined+beforeDragIn", - "field": "doctorSignature", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "styler": "function(value, options, target, templateData, paperNo) {\n if (templateData.doctorSignature) {\n // 如果doctorSignature存在,正常显示\n return { border: '0px' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 19.5, - "top": 505.5, - "height": 13.5, - "width": 186, - "title": "药费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 265.5, - "top": 507, - "height": 13.5, - "width": 28.5, - "title": "医师:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 20, - "top": 524.25, - "height": 9, - "width": 380, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 19.5, - "top": 529.5, - "height": 13.5, - "width": 100, - "title": "核对", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 223.5, - "top": 529.5, - "height": 13.5, - "width": 93, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 19.5, - "top": 556.5, - "height": 13.5, - "width": 100, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "loginUserName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 186, - "top": 556.5, - "height": 13.5, - "width": 210, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true, - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 20, - "top": 574.5, - "height": 9, - "width": 380, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Pharmacy.json b/openhis-ui-vue3/src/components/Print/Pharmacy.json deleted file mode 100644 index a6226ef9..00000000 --- a/openhis-ui-vue3/src/components/Print/Pharmacy.json +++ /dev/null @@ -1,1175 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "自定义", - "height": 271, - "width": 90, - "paperList": { - "type": "自定义", - "width": 90, - "height": 271 - }, - "paperHeader": 0, - "paperFooter": 766.5, - "paperNumberDisabled": true, - "paperNumberContinue": false, - "expandCss": "", - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.7, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "36px", - "rotate": 25, - "width": 413, - "height": 310, - "timestamp": true, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 38, - "height": 19.5, - "width": 255, - "title": "中药长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 11.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 52.5, - "height": 20, - "width": 255, - "title": "门 诊 处 方 笺", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true, - "textDecoration": "underline" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 192, - "top": 55.5, - "height": 14, - "width": 40, - "title": "普通处方", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 192, - "top": 69, - "height": 14, - "width": 40, - "title": "当日有效", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 8.25, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderLeft": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9.5, - "top": 87, - "height": 13.5, - "width": 100, - "title": "费别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 118, - "top": 87, - "height": 13.5, - "width": 117, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9.5, - "top": 106.5, - "height": 13.5, - "width": 100, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 118, - "top": 106.5, - "height": 13.5, - "width": 117, - "title": "处方号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].prescriptionNo的值\n let prescriptionNoValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].prescriptionNo !== undefined) {\n \n prescriptionNoValue = templateData.prescriptionList[0].prescriptionNo;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `处方号:   ${prescriptionNoValue || ''}`;\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 123, - "height": 25, - "width": 30, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 39, - "top": 123, - "height": 25, - "width": 60, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "patientName", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 99, - "top": 123, - "height": 25, - "width": 30, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 129, - "top": 123, - "height": 25, - "width": 44, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 172.5, - "top": 123, - "height": 25, - "width": 30, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 202, - "top": 123, - "height": 25, - "width": 45, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderTop": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "age", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 147, - "height": 25, - "width": 30, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 40.5, - "top": 147, - "height": 25, - "width": 69, - "title": "联系电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "phone", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 108, - "top": 147, - "height": 25, - "width": 40, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 147, - "top": 147, - "height": 25, - "width": 100, - "title": "身份证号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "idCard", - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 172.5, - "height": 25, - "width": 52, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textAlign": "center", - "textContentVerticalAlign": "middle", - "borderRight": "solid", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 62, - "top": 172.5, - "height": 25, - "width": 185, - "title": "诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "textContentVerticalAlign": "middle", - "borderBottom": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "field": "conditionName", - "hideTitle": true, - "contentPaddingLeft": 15 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 205.5, - "height": 19.5, - "width": 120, - "title": "Rp :", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 13.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 234, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[0].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0] && \n templateData.prescriptionList[0].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[0].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 234, - "height": 10, - "width": 135, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[0].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[0].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[0].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 58.5, - "top": 252, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[0].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[0].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[0].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[0].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 267, - "height": 10, - "width": 202.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[0]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[0].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[0].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 270, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 1) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 280.5, - "height": 10, - "width": 81, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[1].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1] && \n templateData.prescriptionList[1].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[1].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 280.5, - "height": 10, - "width": 135, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[1].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[1].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[1].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 61.5, - "top": 298.5, - "height": 10, - "width": 177, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[1].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[1].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[1].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[1].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 36, - "top": 318, - "height": 10, - "width": 202.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[1]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[1].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[1].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 46, - "top": 325, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 2) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 336, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "fontSize": 9.75, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[2].itemName的值\n let itemNameValue = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2] && \n templateData.prescriptionList[2].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[2].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 337.5, - "height": 10, - "width": 135, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[2].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[2].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[2].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 58.5, - "top": 355.5, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[2].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[2].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[2].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[2].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 37.5, - "top": 376.5, - "height": 10, - "width": 201, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[2]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[2].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[2].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 47, - "top": 382, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 3) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 394.5, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[3].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3] && \n templateData.prescriptionList[3].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[3].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 394.5, - "height": 10, - "width": 135, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[3].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[3].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[3].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 58.5, - "top": 409.5, - "height": 10, - "width": 180, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[3].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[3].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[3].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[3].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 37.5, - "top": 424.5, - "height": 10, - "width": 201, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[3]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[3].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[3].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 49, - "top": 434.5, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 4) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 444, - "height": 10, - "width": 82.5, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取prescriptionList[4].itemName的值\n let itemNameValue = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4] && \n templateData.prescriptionList[4].itemName !== undefined) {\n \n itemNameValue = templateData.prescriptionList[4].itemName;\n }\n } catch (error) {\n console.error('获取剂量值时出错:', error);\n }\n \n return `${itemNameValue || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 103.5, - "top": 444, - "height": 10, - "width": 135, - "title": "请输入标题", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n // 注意:根据截图,templateData本身就是包含prescriptionList的对象\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const totalVolume = templateData.prescriptionList[4].totalVolume || ''; // 规格\n const quantity = templateData.prescriptionList[4].quantity || ''; // 数量,如1\n const unitCode_dictText= templateData.prescriptionList[4].unitCode_dictText || '';// 单位\n \n // 构建格式化的文本\n // 格式:浓度:总量/单位 ×数量 单位\n formattedText = `${totalVolume}/${unitCode_dictText}×${quantity}${unitCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 60, - "top": 459, - "height": 10, - "width": 178.5, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const dose = templateData.prescriptionList[4].dose || ''; // 规格\n const doseUnitCode_dictText = templateData.prescriptionList[4].doseUnitCode_dictText || ''; // 数量,如1\n const rateCode_dictText = templateData.prescriptionList[4].rateCode_dictText || ''; // 数量,如1\n const methodCode_dictText= templateData.prescriptionList[4].methodCode_dictText || '';// 单位\n \n // 格式\n formattedText = `用法:${dose}${doseUnitCode_dictText} ${rateCode_dictText} ${methodCode_dictText}`;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 37.5, - "top": 480, - "height": 10, - "width": 201, - "title": "", - "field": "vcc", - "coordinateSync": false, - "widthHeightSync": false, - "hideTitle": true, - "qrCodeLevel": 0, - "formatter": "function(title, value, options, templateData, target, paperNo) {\n // 安全获取并格式化药物规格信息\n let formattedText = '';\n \n try {\n if (templateData && templateData.prescriptionList && \n Array.isArray(templateData.prescriptionList) && \n templateData.prescriptionList[4]) {\n \n // 获取需要的字段值\n const lotNumber = templateData.prescriptionList[4].lotNumber || ''; // 批次号\n const manufacturerText = templateData.prescriptionList[4].manufacturerText || ''; // 数量,如1\n \n \n // 格式\n formattedText = ` ${manufacturerText} `;\n }\n } catch (error) {\n console.error('格式化药物规格信息时出错:', error);\n }\n \n return `${formattedText || ''}`;\n}", - "textAlign": "right", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 50, - "top": 496, - "height": 9.75, - "width": 120, - "transform": -10, - "title": " ", - "coordinateSync": false, - "widthHeightSync": false, - "borderTop": "solid", - "borderWidth": "1.5", - "qrCodeLevel": 0, - "styler": "function(value, options, target, templateData, paperNo) {\n // 检查templateData中是否存在adviceItemList,并且其长度等于4\n if (templateData && templateData.adviceItemList && templateData.prescriptionList.length === 5) {\n // 如果adviceItemList长度为4,正常显示\n return { color: 'red' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 169.5, - "top": 517.5, - "height": 20, - "width": 45, - "title": "undefined+beforeDragIn", - "field": "doctorSignature", - "fit": "", - "coordinateSync": false, - "widthHeightSync": false, - "styler": "function(value, options, target, templateData, paperNo) {\n if (templateData.doctorSignature) {\n // 如果doctorSignature存在,正常显示\n return { border: '0px' };\n } else {\n // 否则隐藏元素\n return { display: 'none' };\n }\n}" - }, - "printElementType": { - "title": "图片", - "type": "image" - } - }, - { - "options": { - "left": 24, - "top": 523.5, - "height": 13.5, - "width": 81, - "title": "药费", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 136.5, - "top": 523.5, - "height": 13.5, - "width": 28.5, - "title": "医师:", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 538.5, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 24, - "top": 547.5, - "height": 13.5, - "width": 100, - "title": "核对", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 138, - "top": 547.5, - "height": 13.5, - "width": 93, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "nickNames", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 24, - "top": 574.5, - "height": 13.5, - "width": 79.5, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "loginUserName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 112.5, - "top": 574.5, - "height": 13.5, - "width": 117, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 9, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true, - "hideTitle": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 597, - "height": 9, - "width": 235, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - } - ], - "paperNumberLeft": 196, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/Prescription.json b/openhis-ui-vue3/src/components/Print/Prescription.json deleted file mode 100644 index bb193e1e..00000000 --- a/openhis-ui-vue3/src/components/Print/Prescription.json +++ /dev/null @@ -1,632 +0,0 @@ -{ - "panels": [ - { - "index": 1, - "name": 3, - "paperType": "A5", - "height": 210, - "width": 148, - "paperList": { - "type": "A5", - "width": 148, - "height": 210 - }, - "paperHeader": 0, - "paperFooter": 592.4409448818898, - "paperNumberDisabled": true, - "paperNumberContinue": true, - "panelAngle": 0, - "overPrintOptions": { - "content": "", - "opacity": 0.01, - "type": 1 - }, - "watermarkOptions": { - "content": "", - "fillStyle": "rgba(87, 13, 248, 0.5)", - "fontSize": "10px", - "rotate": 0, - "width": 100, - "height": 100, - "timestamp": false, - "format": "YYYY-MM-DD HH:mm" - }, - "panelLayoutOptions": { - "layoutType": "column", - "layoutRowGap": 0, - "layoutColumnGap": 0 - }, - "printElements": [ - { - "options": { - "left": 0, - "top": 22.5, - "height": 19.5, - "width": 420, - "title": "长春市朝阳区中医院", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 20.25, - "qrCodeLevel": 0, - "textAlign": "center", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 0, - "top": 50, - "height": 20, - "width": 420, - "title": "处方签", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 13.5, - "textAlign": "center", - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 90, - "height": 13.5, - "width": 100, - "title": "医保编号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 283, - "top": 90, - "height": 13.5, - "width": 117, - "title": "就诊类型", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "orgId_dictText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 117, - "height": 13.5, - "width": 100, - "title": "处方编号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "prescriptionNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 283, - "top": 117, - "height": 13.5, - "width": 117, - "title": "病人性质", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "contractName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 138, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 142.5, - "top": 153, - "height": 13.5, - "width": 100, - "title": "性别", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "genderEnum_enumText", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 153, - "height": 13.5, - "width": 99, - "title": "年龄", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "age", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 26, - "top": 154.5, - "height": 13.5, - "width": 100, - "title": "姓名", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "patientName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 142.5, - "top": 178.5, - "height": 13.5, - "width": 99, - "title": "科室", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "departmentName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 288, - "top": 178.5, - "height": 13.5, - "width": 99, - "title": "电话", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 180, - "height": 13.5, - "width": 100, - "title": "门诊号", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "encounterNo", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 205.5, - "height": 13.5, - "width": 141, - "title": "地址", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 195, - "top": 205.5, - "height": 13.5, - "width": 210, - "title": "开具日期", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "reqTime", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 25.5, - "top": 232.5, - "height": 13.5, - "width": 367.5, - "title": "临床诊断", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "conditionName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 256.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 28, - "top": 282, - "height": 9.75, - "width": 120, - "title": "Rp", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true, - "fontSize": 18, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 15, - "top": 306, - "height": 36, - "width": 390, - "title": "undefined+beforeDragIn", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "textAlign": "center", - "tableBorder": "border", - "tableHeaderFontWeight": "500", - "field": "prescriptionList", - "columns": [ - [ - { - "title": "名称", - "width": 55.386224315781, - "field": "itemName", - "checked": true, - "columnId": "itemName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "规格", - "width": 59.41840807183531, - "field": "totalVolume", - "checked": true, - "columnId": "totalVolume", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "厂家", - "width": 79.59183673469389, - "checked": true, - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "单价", - "width": 45.49640338326492, - "field": "unitPrice", - "checked": true, - "columnId": "unitPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "数量", - "width": 41.658473534111906, - "field": "quantity", - "checked": true, - "columnId": "quantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "金额", - "width": 42.9159186212175, - "field": "totalPrice", - "checked": true, - "columnId": "totalPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "等级", - "width": 65.53273533909551, - "field": "contractName", - "checked": true, - "columnId": "contractName", - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - }, - { - "options": { - "left": 25.5, - "top": 379.5, - "height": 13.5, - "width": 241.5, - "title": "用法", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 8.996109008789062, - "top": 510, - "height": 13.5, - "width": 100, - "title": "医师", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "doctorName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 113, - "top": 510, - "height": 13.5, - "width": 100, - "title": "发药", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 217, - "top": 510, - "height": 13.5, - "width": 100, - "title": "划价", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 318, - "top": 510, - "height": 13.5, - "width": 100, - "title": "调配", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "nickName", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10, - "top": 532.5, - "height": 9, - "width": 400, - "borderWidth": "1.5", - "coordinateSync": false, - "widthHeightSync": false, - "fixed": true - }, - "printElementType": { - "title": "横线", - "type": "hline" - } - }, - { - "options": { - "left": 26, - "top": 551.5, - "height": 13.5, - "width": 120, - "title": "制表人", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "1", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 289, - "top": 551.5, - "height": 13.5, - "width": 120, - "title": "金额", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 12, - "qrCodeLevel": 0, - "field": "medTotalAmount", - "fixed": true - }, - "printElementType": { - "title": "文本", - "type": "text" - } - } - ], - "paperNumberLeft": 236, - "paperNumberTop": 573 - } - ] -} diff --git a/openhis-ui-vue3/src/components/Print/README.md b/openhis-ui-vue3/src/components/Print/README.md deleted file mode 100644 index 8f5c33c2..00000000 --- a/openhis-ui-vue3/src/components/Print/README.md +++ /dev/null @@ -1,14 +0,0 @@ -处方签 Prescription.json -处置单 Disposal.json -门诊日结 DailyOutpatientSettlement.json -门诊挂号 OutpatientRegistration.json -门诊收费 OutpatientBilling.json -门诊病历 OutpatientMedicalRecord.json -手术记录 OperativeRecord.json - -门诊输液贴 OutpatientInfusion.json -药房打印 Pharmacy.json -红旗门诊病历 HQOutpatientMedicalRecord.json -预交金 AdvancePayment.json -中药药房处方单 ChineseMedicinePrescription.json -中药医生处方单 DocChineseMedicinePrescription.json diff --git a/openhis-ui-vue3/src/components/TableLayout/EditTable.vue b/openhis-ui-vue3/src/components/TableLayout/EditTable.vue deleted file mode 100644 index 2f43a6d4..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/EditTable.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/EditableTable.vue b/openhis-ui-vue3/src/components/TableLayout/EditableTable.vue deleted file mode 100644 index 30c4aa2d..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/EditableTable.vue +++ /dev/null @@ -1,567 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/Filter.vue b/openhis-ui-vue3/src/components/TableLayout/Filter.vue deleted file mode 100644 index 9f9b8710..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/Filter.vue +++ /dev/null @@ -1,157 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/Form.vue b/openhis-ui-vue3/src/components/TableLayout/Form.vue deleted file mode 100644 index 84d1589a..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/Form.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/FormItem.vue b/openhis-ui-vue3/src/components/TableLayout/FormItem.vue deleted file mode 100644 index 75db36d9..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/FormItem.vue +++ /dev/null @@ -1,196 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/FormLayout.vue b/openhis-ui-vue3/src/components/TableLayout/FormLayout.vue deleted file mode 100644 index f70a44f9..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/FormLayout.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/FormSection.vue b/openhis-ui-vue3/src/components/TableLayout/FormSection.vue deleted file mode 100644 index 956756f4..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/FormSection.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/FormSectionLayout.vue b/openhis-ui-vue3/src/components/TableLayout/FormSectionLayout.vue deleted file mode 100644 index de2c230f..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/FormSectionLayout.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/NumberInput.vue b/openhis-ui-vue3/src/components/TableLayout/NumberInput.vue deleted file mode 100644 index 6ccc4eed..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/NumberInput.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/PageLayout.vue b/openhis-ui-vue3/src/components/TableLayout/PageLayout.vue deleted file mode 100644 index 4144eb0d..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/PageLayout.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/PageWrapper.vue b/openhis-ui-vue3/src/components/TableLayout/PageWrapper.vue deleted file mode 100644 index ff5a75ab..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/PageWrapper.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/QuickDateRange.vue b/openhis-ui-vue3/src/components/TableLayout/QuickDateRange.vue deleted file mode 100644 index 4da15152..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/QuickDateRange.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/Table.vue b/openhis-ui-vue3/src/components/TableLayout/Table.vue deleted file mode 100644 index 8e684cec..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/Table.vue +++ /dev/null @@ -1,373 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/TableSection.vue b/openhis-ui-vue3/src/components/TableLayout/TableSection.vue deleted file mode 100644 index 6bbde561..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/TableSection.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/TableLayout/index.vue b/openhis-ui-vue3/src/components/TableLayout/index.vue deleted file mode 100644 index 7fe5fe83..00000000 --- a/openhis-ui-vue3/src/components/TableLayout/index.vue +++ /dev/null @@ -1,411 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/components/patientBar/inPatientBarDoctorFold.vue b/openhis-ui-vue3/src/components/patientBar/inPatientBarDoctorFold.vue index 2e271b58..af4fd1b0 100644 --- a/openhis-ui-vue3/src/components/patientBar/inPatientBarDoctorFold.vue +++ b/openhis-ui-vue3/src/components/patientBar/inPatientBarDoctorFold.vue @@ -1,125 +1,188 @@ + - - - diff --git a/openhis-ui-vue3/src/template/ProgressNoteform.vue b/openhis-ui-vue3/src/template/ProgressNoteform.vue deleted file mode 100644 index 72eb0f73..00000000 --- a/openhis-ui-vue3/src/template/ProgressNoteform.vue +++ /dev/null @@ -1,393 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/template/img/logo.png b/openhis-ui-vue3/src/template/img/logo.png deleted file mode 100644 index 739c94d7..00000000 Binary files a/openhis-ui-vue3/src/template/img/logo.png and /dev/null differ diff --git a/openhis-ui-vue3/src/template/imgs/logo.png b/openhis-ui-vue3/src/template/imgs/logo.png deleted file mode 100644 index 739c94d7..00000000 Binary files a/openhis-ui-vue3/src/template/imgs/logo.png and /dev/null differ diff --git a/openhis-ui-vue3/src/template/inHospitalCaseForm.vue b/openhis-ui-vue3/src/template/inHospitalCaseForm.vue deleted file mode 100644 index dadd1ae5..00000000 --- a/openhis-ui-vue3/src/template/inHospitalCaseForm.vue +++ /dev/null @@ -1,289 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/template/nursingRecordSheet.vue b/openhis-ui-vue3/src/template/nursingRecordSheet.vue index 5c9e1df8..f3d354f3 100644 --- a/openhis-ui-vue3/src/template/nursingRecordSheet.vue +++ b/openhis-ui-vue3/src/template/nursingRecordSheet.vue @@ -6,7 +6,7 @@
- 新增 + 新增 批量启用 @@ -16,7 +16,7 @@ @@ -95,7 +95,7 @@ - + @@ -304,9 +304,8 @@
- + - + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue index 61ab4fc6..3abf77c2 100644 --- a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue +++ b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue @@ -217,7 +217,6 @@ :statusFlagOptions="statusFlagOptions" :exeOrganizations="exeOrganizations" :typeEnumOptions="typeEnumOptions" - :isEditInfoDisable="isEditInfoDisable" :title="title" :item="currentData" @submit="getList()" diff --git a/openhis-ui-vue3/src/views/charge/cliniccharge/components/template.json b/openhis-ui-vue3/src/views/charge/cliniccharge/components/template.json index f0029c2a..44e541c0 100644 --- a/openhis-ui-vue3/src/views/charge/cliniccharge/components/template.json +++ b/openhis-ui-vue3/src/views/charge/cliniccharge/components/template.json @@ -430,4 +430,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue b/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue index 31ceeaef..99df6c5a 100644 --- a/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue +++ b/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue @@ -197,15 +197,8 @@ const emit = defineEmits(['close']); function submit() { console.log(props.chargeItemIds); - console.log( - displayAmount.value, - parseFloat(displayAmount.value), - formData.totalAmount, - formData, - 'feeRefund' - ); - //比较时,将金额都转换为两位小数的字符串再转换为浮点数,避免浮点数精度问题 - if (parseFloat(displayAmount.value) < parseFloat(formData.totalAmount.toFixed(2))) { + + if (parseFloat(displayAmount.value) < formData.totalAmount) { proxy.$modal.msgError('请输入正确的金额'); return; } @@ -262,7 +255,7 @@ function submit() { // returnedAmount: parseFloat(returnedAmount.value), }).then((res) => { if (res.code == 200) { - // 长春市朝阳区中医院自动退耗材 + // 长春大学自动退耗材 emit('close', 'success'); } @@ -464,4 +457,4 @@ const getFeeTypeText = computed(() => { .amount-input .el-input__inner { padding-right: 30px !important; } - + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/charge/clinicrefund/index.vue b/openhis-ui-vue3/src/views/charge/clinicrefund/index.vue index 6d44b7a3..d3eeb751 100644 --- a/openhis-ui-vue3/src/views/charge/clinicrefund/index.vue +++ b/openhis-ui-vue3/src/views/charge/clinicrefund/index.vue @@ -139,6 +139,16 @@ prop="chargeStatus_enumText" width="100" /> + + @@ -93,35 +52,16 @@
- + 确认退药 扫码 - - + + - + @@ -134,30 +74,29 @@ \ 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 84ba1e4a..b3d29145 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js +++ b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/component/api.js @@ -1,77 +1,34 @@ -import request from '@/utils/request'; +import request from '@/utils/request' -/** - * 获取患者列表 - */ -export function getList(queryParams) { +export function listSkinRecord(query) { return request({ - url: '/outpatient-manage/treatment/encounter-list', + url: '/outpatient-manage/skin-test/outpatient-record-page', method: 'get', - params: queryParams, - }); + params: query + }) } -/** - * 获取皮试记录列表 - */ -export function listSkinRecord(queryParams) { - return request({ - 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/save-record-info', - method: 'post', - data: data, - }); -} - -/** - * 初始化选项 - */ export function lists() { return request({ url: '/outpatient-manage/skin-test/init', method: 'get', - }); + }) } -/** - * 获取护士列表 - */ -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, - }); -} +export function updateSkinTestRecord(data) { + return request({ + url: '/outpatient-manage/skin-test/outpatient-record-skin-test', + method: 'put', + data: data + }) + } + + + 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 diff --git a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue index 321b0555..6d8638bb 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue +++ b/openhis-ui-vue3/src/views/clinicmanagement/skinrecord/index.vue @@ -1,620 +1,507 @@ - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue index ba6939e2..0391a5f4 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/eprescriptiondialog.vue @@ -101,9 +101,9 @@ > @@ -432,7 +432,7 @@ import { computed, onMounted, ref } from 'vue'; import { reactive } from 'vue'; // import { useModal, useDict } from '@/hooks'; import { parseTime, formatNumber } from '@/utils/his'; -import { queryYbCatalogue, getDiagnosisListEle } from './api'; +import { queryYbCatalogue, getDiagnosisList } from './api'; import { debounce } from 'lodash-es'; import { @@ -565,7 +565,7 @@ const unitMap = ref({ function getInit(searchKey) { if(searchKey) { - getDiagnosisListEle(searchKey,infoForm.encounterId).then(res => { + getDiagnosisList(searchKey).then(res => { diagnosisListOption.value = res.data }) } diff --git a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationDialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationDialog.vue index 6eca1ab5..ea2acce4 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationDialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationDialog.vue @@ -150,12 +150,12 @@ - - - - + @@ -182,7 +179,7 @@ - + - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/doctorstation/components/reportQuery.vue b/openhis-ui-vue3/src/views/doctorstation/components/reportQuery.vue deleted file mode 100644 index 0c770b65..00000000 --- a/openhis-ui-vue3/src/views/doctorstation/components/reportQuery.vue +++ /dev/null @@ -1,243 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/doctorstation/components/store/medicalpage.js b/openhis-ui-vue3/src/views/doctorstation/components/store/medicalpage.js deleted file mode 100644 index 7ae9d8b1..00000000 --- a/openhis-ui-vue3/src/views/doctorstation/components/store/medicalpage.js +++ /dev/null @@ -1,259 +0,0 @@ -const formData = reactive({ - //医院信息 - hospitalInfo: { - //组织机构代码 - medins_orgcode: '', - //医疗付款方式 - medfee_paymtd_code: '', - }, - //患者信息 - patientInfo: { - // 健康卡号 - healthCardNo: '', - // 患者姓名 - patient_name: '', - // 患者性别 - gend: '', - // 出生日期 - brdy: '', - // 年龄 - age: '', - // 国籍 - ntly: '中国', - // 籍贯 - napl: '', - // 民族 - naty: '1', - // 身份证号 - certno: '', - // 户口住址 - resd_addr: '', - // 工作单位地址 - empr_addr: '', - // 联系人姓名 - coner_name: '', - // 关系 - coner_rlts_code: '', - // 联系人地址 - coner_addr: '', - // 联系人电话 - coner_tel: '', - }, - // 住院信息 - admission: { - // 第几次住院 - patn_ipt_cnt: 1, - // 住院号 - ipt_no: '', - // 病案号 - medcasno: '', - // 入院途径 - adm_way_code: '', - // 入院时间 - adm_time: '', - // 入院科室 - adm_dept_name: '', - // 病房 - adm_ward: '', - // 确诊日期 - adm_date: '', - // 出院时间 - dscg_date: '', - // 出院科室 - dscg_caty: '', - // 病房 - dscg_ward: '', - // 实际住院天数 - act_ipt_days: '', - }, - // 诊断信息 - diagnosis: { - // 主要诊断 - mainDiagnosis: '', - // 其他诊断 - otherDiagnosis: '', - }, - // 诊断信息 - diagnosisList: [], - // 医疗信息 - medicalInfo: { - // 是否输血 - bloodTransfusion: '', - // 血型 - abo_code: '', - // rh类型 - rh_code: '', - // 药物过敏史 - die_autp_flag: '', - }, - // 医师信息 - doctorInfo: { - // 科主任 - deptdrt_name: '', - // 副主任 - chfdr_name: '', - // 主治医师 - chfpdr_name: '', - // 住院医师 - ipt_dr_name: '', - // 责任护士 - resp_nurs_name: '', - // 住院总医师 - chiefResident: '', - // 实习医师 - intn_dr_name: '', - // 病案质量 - medcas_qlt_code: '', - // 编码员 - codr_name: '', - // 控制日期 - qltctrl_date: '', - }, - // 病案首页2 - medicalSecond: { - // 手术方式 - surgeryType: '', - // 离院方式 - dscg_way: '', - // 31天是否计划出院 - dscg_31days_rinp_flag: '', - // 目的 - dscg_31days_rinp_pup: '', - //昏迷时间---入院前 - brn_damg_bfadm_coma_dura: '', - //昏迷时间---入院后 - brn_damg_afadm_coma_dura: '', - // 肿瘤分期 - tumorStaging: '', - // T - tumor_T: '', - // N - tumor_N: '', - // M - tumor_M: '', - // 判断依据 - judgmentBase: '', - // 分化程度 - bkup_deg_code: '', - // 临床路径 - enterPath: '', - // 变异 - mutation: '', - // 退出路径 - outPath: '', - // 特级护理 - nursingLevel_spec: '', - // 1级护理 - nursingLevel_1: '', - // 2级护理 - nursingLevel_2: '', - // 3级护理 - nursingLevel_3: '', - // 呼吸机使用 - use_vent_flag: '', - // 有创呼吸机使用小时 - vent_used_dura: '', - // 手术表 - surgery_tableData: [], - }, - // 病案首页3 - // 住院费用 - hospitalization: { - // 总费用 - medfee_sumamt: '', - // 自付金额 - selfpay_amt: '', - }, - // 综合医疗服务类 - medicalServices: { - // 一般医疗服务类 - ordn_med_servfee: '', - // 一般治疗操作费 - ordn_trt_oprt_fee: '', - // 护理费 - nurs_fee: '', - // 其他费用 - com_med_serv_oth_fee: '', - }, - // 诊断类 - diagnosisClass: { - // 病理诊断 - palg_diag_fee: '', - // 实验室诊断 - lab_diag_fee: '', - // 影像学诊断 - rdhy_diag_fee: '', - // 临床诊断 - clnc_dise_fee: '', - }, - // 治疗类 - treatmentClass: { - // 非手术治疗项目费 - nsrgtrt_item_fee: '', - // 临床物理治疗 - clnc_phys_trt_fee: '', - // 手术治疗费 - rgtrt_trt_fee: '', - // 麻醉费 - anst_fee: '', - // 手术费 - rgtrt_fee: '', - }, - // 康复类 - recoveryClass: { - // 康复费 - rhab_fee: '', - }, - // 中医类 - TCMClass: { - // 中医治疗费 - tcm_trt_fee: '', - }, - // 西药类 - WesternClass: { - // 西药费 - wm_fee: '', - // 抗菌药物费 - abtl_medn_fee: '', - }, - // 中药类 - chineseClass: { - //中成药 - tcmpat_fee: '', - // 中草药 - tcmherb_fee: '', - }, - // 血液和血液制品类 - bloodClass: { - // 血费 - blo_fee: '', - // 蛋白类制品费 - albu_fee: '', - // 球蛋白制品费 - glon_fee: '', - // 凝血因子制品费 - clotfac_fee: '', - // 细胞因子制品费 - cyki_fee: '', - }, - // 耗材类 - consumablesClass: { - // 检查用一次性医用材料费 - exam_dspo_matl_fee: '', - // 治疗用一次性医用材料费 - trt_dspo_matl_fee: '', - // 手术用一次性医用材料费 - oprn_dspo_matl_fee: '', - }, - // 其他类 - otherClass: { - // 其他费用 - oth_fee: '', - }, - // 其他诊断及手术附加页 - other_tableData: [], - // 手术操作数组 - surgery_tableData: [], -}); - -export default formData; diff --git a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationDetails.vue b/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationDetails.vue deleted file mode 100644 index 7bf091e0..00000000 --- a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationDetails.vue +++ /dev/null @@ -1,1143 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue b/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue deleted file mode 100644 index 8e69f900..00000000 --- a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/MedicationSummary.vue +++ /dev/null @@ -1,256 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/ReturnDrug.vue b/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/ReturnDrug.vue deleted file mode 100644 index 52732b6a..00000000 --- a/openhis-ui-vue3/src/views/drug/inpatientMedicationDispensing/components/ReturnDrug.vue +++ /dev/null @@ -1,481 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue deleted file mode 100644 index 7d35ca79..00000000 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue +++ /dev/null @@ -1,725 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/disDiagnMedicalRecord.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/disDiagnMedicalRecord.vue deleted file mode 100644 index 8060e2a5..00000000 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/disDiagnMedicalRecord.vue +++ /dev/null @@ -1,543 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/inAssessmentForm.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/inAssessmentForm.vue deleted file mode 100644 index 06f9aa73..00000000 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/inAssessmentForm.vue +++ /dev/null @@ -1,1429 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/inCommunicatePrint.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/inCommunicatePrint.vue deleted file mode 100644 index f77f5160..00000000 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/inCommunicatePrint.vue +++ /dev/null @@ -1,347 +0,0 @@ - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/intOperRecordSheet.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/intOperRecordSheet.vue deleted file mode 100644 index f4e747bc..00000000 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/intOperRecordSheet.vue +++ /dev/null @@ -1,877 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/medicalRecordFirstPrint.json b/openhis-ui-vue3/src/views/hospitalRecord/components/medicalRecordFirstPrint.json index 2e4b5b30..43e5b1cb 100644 --- a/openhis-ui-vue3/src/views/hospitalRecord/components/medicalRecordFirstPrint.json +++ b/openhis-ui-vue3/src/views/hospitalRecord/components/medicalRecordFirstPrint.json @@ -1,3 +1,3 @@ { - "printContent": "\n\n\n 住院病案首页\n \n\n\n
\n
长春市朝阳区中医院
\n
\n
\n
组织机构代码:(${formData.hospital.orgCode || ''})
\n
医疗付费方式:(${formData.hospital.paymentMethod || ''})
\n
\n
\n 住院病案首页\n
\n
\n
条形码
\n
\n
\n
\n
\n
健康卡号:(${formData.patient.healthCardNo || ''})
\n
第(${formData.patient.times || ''})住院
\n
住院ID:(${formData.patient.hospitalizationId || ''})
\n
病案号:(${formData.patient.recordNo || ''})
\n
\n
\n
\n
\n \n
\n
\n
\n \n
${formData.patient.name || ''}
\n
\n
\n \n
${formData.patient.gender === '1' ? '男' : formData.patient.gender === '2' ? '女' : ''}
\n
\n
\n \n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.age || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.birthDate || ''}
\n \n
${formData.patient.birthDate || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
\n
\n \n
${formData.patient.nativePlace || ''}省(区、市)
\n
\n
\n \n
${formData.patient.ethnicity || ''}
\n
\n
\n
\n
\n \n
${formData.patient.idCardNo || ''}省(区、市)
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
${formData.patient.nationality || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
${formData.patient.nationality || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
出院诊断疾病编码入院病情转归情况
主要诊断:腰椎间盘突出症(L4-5)121
其他诊断:腰椎椎管狭窄(L4-5)122
其他诊断:右下肢不全瘫122
----
----
----
----
----
----
----
----
\n
\n
入院病情:1.有 2.临床未确定 3.情况不明 4.无
\n
转归情况:1.治愈 2.好转 3.未愈 4.死亡 5.其他
\n
\n
\n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'0' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n
\n \n\n" -} + "printContent": "\n\n\n 住院病案首页\n \n\n\n
\n
吉林大学第一医院
\n
\n
\n
组织机构代码:(${formData.hospital.orgCode || ''})
\n
医疗付费方式:(${formData.hospital.paymentMethod || ''})
\n
\n
\n 住院病案首页\n
\n
\n
条形码
\n
\n
\n
\n
\n
健康卡号:(${formData.patient.healthCardNo || ''})
\n
第(${formData.patient.times || ''})住院
\n
住院ID:(${formData.patient.hospitalizationId || ''})
\n
病案号:(${formData.patient.recordNo || ''})
\n
\n
\n
\n
\n \n
\n
\n
\n \n
${formData.patient.name || ''}
\n
\n
\n \n
${formData.patient.gender === '1' ? '男' : formData.patient.gender === '2' ? '女' : ''}
\n
\n
\n \n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.age || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.birthDate || ''}
\n \n
${formData.patient.birthDate || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
\n
\n \n
${formData.patient.nativePlace || ''}省(区、市)
\n
\n
\n \n
${formData.patient.ethnicity || ''}
\n
\n
\n
\n
\n \n
${formData.patient.idCardNo || ''}省(区、市)
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
${formData.patient.nationality || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}省(区、市)
\n
${formData.patient.nationality || ''}市
\n
${formData.patient.birthDate || ''}县(区、市)
\n
${formData.patient.birthDate || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n \n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
出院诊断疾病编码入院病情转归情况
主要诊断:腰椎间盘突出症(L4-5)121
其他诊断:腰椎椎管狭窄(L4-5)122
其他诊断:右下肢不全瘫122
----
----
----
----
----
----
----
----
\n
\n
入院病情:1.有 2.临床未确定 3.情况不明 4.无
\n
转归情况:1.治愈 2.好转 3.未愈 4.死亡 5.其他
\n
\n
\n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${formData.patient.nationality || ''}
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'0' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n \n
${formData.patient.nationality || '-'}
\n \n
\n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n \n
${'1' || ''}
\n \n
\n
\n
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n \n
${formData.patient.nationality || '-'}
\n
\n
\n
\n - - diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/advanceDeposit/components/chargeDialog.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/advanceDeposit/components/chargeDialog.vue index a5cf8c45..5f06321e 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/advanceDeposit/components/chargeDialog.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/advanceDeposit/components/chargeDialog.vue @@ -18,31 +18,24 @@ - - -
- -
-
- - {{ item.label }} -
-
-
-
-
+
-
@@ -73,7 +65,6 @@
- - + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/feeTypeConversion/components/InsuranceForm.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/feeTypeConversion/components/InsuranceForm.vue index fcacd489..17847234 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/feeTypeConversion/components/InsuranceForm.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/feeTypeConversion/components/InsuranceForm.vue @@ -23,14 +23,8 @@ - + @@ -52,12 +46,7 @@ - + @@ -86,12 +75,7 @@ - + @@ -113,11 +97,9 @@
- diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/api.js b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/api.js index f7e7923a..15571979 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/api.js +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/api.js @@ -1,12 +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, - }); + params: query + }) } // 获取住院信息 分页显示 @@ -22,8 +22,8 @@ export function getAdmissionPage(query) { return request({ url: '/inhospital-charge/register/register-info', method: 'get', - params: query, - }); + params: query + }) } // 住院无档登记 @@ -31,8 +31,8 @@ export function addAdmissionInfo(data) { return request({ url: '/inpatient-manage/admission-information', method: 'post', - data: data, - }); + data: data + }) } // 住院登记 @@ -40,8 +40,8 @@ export function admissionInfo(data) { return request({ url: '/inpatient-manage/admission-information', method: 'put', - data: data, - }); + data: data + }) } /** @@ -51,18 +51,17 @@ export function getOrgList() { return request({ url: '/base-data-manage/organization/organization', method: 'get', - }); + }) } /** * 查询病区下拉列表 */ -export function wardList({ orgId } = {}) { +export function wardList() { return request({ - url: '/inhospital-charge/register/ward-list', - method: 'get', - params: { orgId }, - }); + url: '/app-common/ward-list', + method: 'get' + }) } /** @@ -72,55 +71,56 @@ 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', - }); + method: 'get' + }) } + // 获取患者基础信息 export function getPatientBasicInfo(patientId) { return request({ url: `/inhospital-charge/register/patient-info?patientId=${patientId}`, - method: 'get', - }); + 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 +128,8 @@ export function registerInHospital(data) { return request({ url: '/inhospital-charge/register/by-cashier', method: 'post', - data: data, - }); + data: data + }) } // 无档登记 @@ -137,16 +137,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 +154,7 @@ export function getContractList() { return request({ url: '/app-common/contract-list', method: 'get', - }); + }) } /** @@ -164,31 +164,6 @@ export function getDiagnosisDefinitionList(queryParams) { return request({ url: '/doctor-station/diagnosis/condition-definition-metadata', method: 'get', - params: queryParams, - }); -} - -// 获取患者医保信息 -export function gerPreInfo(userMaessage) { - return request({ - url: '/yb-inpatient-request/inpatient-per-info', - method: 'post', - data: userMaessage, - }); -} - -// export function gerPreInfo(userMaessage) { -// return request({ -// url: '/yb-request/per-info', -// method: 'post', -// params: userMaessage, -// }); -// } - -//获取省市医保字符串 -export function getProvincesAndCities(encounterId) { - return request({ - url: `/payment/bill/get-encounter-type?encounterId=${encounterId}`, - method: 'get', - }); -} + params: queryParams + }) +} \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/awaitList.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/awaitList.vue index 73907556..6d8d001e 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/awaitList.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/awaitList.vue @@ -56,7 +56,6 @@ :inHospitalInfo="inHospitalInfo" title="登记" :registrationType="registrationType" - :is-registered="false" @okAct="patientRegisterOK" @cancelAct="cancelAct" :noFile="noFile" @@ -128,12 +127,10 @@ const patientYbRegisterVisible = ref(false); const patientRegisterOK = () => { patientRegisterVisible.value = false; queryParams.value.searchKey = ''; - getList(); emits('okList'); }; const cancelAct = () => { - getList(); patientRegisterVisible.value = false; }; diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfo.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfo.vue index 41b0b663..20b45092 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfo.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfo.vue @@ -11,7 +11,7 @@ {{ isEditing ? '取消' : '编辑' }}
-->
- + @@ -19,7 +19,6 @@ {{ '读卡' }} @@ -39,22 +38,16 @@ 患者姓名: - {{ patientInfo?.patientName || '-' }} + {{ patientInfo?.name || '-' }} - - - + {{ patientInfo?.ybClassEnum_enumText || '-' }} + + + @@ -80,7 +73,7 @@ 年龄: - {{ patientInfo?.age || '-' }} + {{ patientInfo?.ageString || '-' }} @@ -94,7 +87,7 @@ 民族: -
{{ getDictLabel(nationality_code, patientInfo?.nationalityCode) || '-' }}
+
{{ patientInfo?.nationalityCode || '-' }}
国籍: @@ -146,7 +139,7 @@ 病人来源: -
{{ props.inHospitalInfo?.inHospitalOrgName || '-' }}
+
{{ patientInfo?.organizationId_dictText || '-' }}
单位名称: @@ -157,37 +150,24 @@
- +
@@ -487,4 +404,4 @@ defineExpose({ submitForm, form, isEditing, getPatientForm }); font-weight: 700 !important; margin-bottom: 10px; } - + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfoForm.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfoForm.vue index 4d6bef78..b77e4189 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfoForm.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientInfoForm.vue @@ -210,9 +210,9 @@ v-model="form.deceasedDate" type="datetime" placeholder="请选择时间" - format="YYYY-MM-DD HH:mm:ss" + format="YYYY/MM/DD HH:mm:ss" :disabled="isViewMode" - value-format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY/MM/DD HH:mm:ss" /> @@ -266,7 +266,6 @@ const data = reactive({ isViewMode: false, form: { typeCode: '01', - genderEnum: 0, }, rules: { name: [{ required: true, message: '姓名不能为空', trigger: 'change' }], diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientRegister.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientRegister.vue index 71f48d2a..cc08aaea 100644 --- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientRegister.vue +++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/patientRegister.vue @@ -12,14 +12,11 @@ + @@ -100,13 +80,7 @@ const { proxy } = getCurrentInstance(); import { ElMessageBox } from 'element-plus'; import PatientInfoComp from './patientInfo.vue'; import RegisterForm from './registerForm.vue'; -import { noFilesRegister, registerInHospital, getProvincesAndCities } from './api'; -import { getInit } from '../../../../doctorstation/components/api'; -import { useRouter } from 'vue-router'; -import { wxPay, WxPayResult } from '../../../../charge/cliniccharge/components/api'; -import printUtils from '@/utils/printUtils'; -const txtCode = ref(''); -const router = useRouter(); +import { noFilesRegister, registerInHospital, getInit } from './api'; const emits = defineEmits(['okAct', 'cancelAct']); const props = defineProps({ @@ -129,10 +103,6 @@ const props = defineProps({ type: Boolean, default: false, }, - isRegistered: { - type: Boolean, - default: false, // false 表示待登记,true 表示已登记 - }, }); watch( @@ -152,7 +122,6 @@ import { ElMessage } from 'element-plus'; const width = '1128px'; const patientApiInfo = ref({}); const initOptions = ref({}); -const payEnum = ref(220400); /* 取消 */ const cancelAct = () => { @@ -162,78 +131,13 @@ 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 = { - inHospitalInfo: {}, - payEnum: 0, - }; - params.inHospitalInfo.payEnum = payEnum.value; - params.payEnum = payEnum.value; - console.log('params==========>', JSON.stringify(patientInfoRef?.value.getPatientForm())); + let params = {}; if (props.noFile) { - const paramsDic = patientInfoRef?.value.getPatientForm(); - const paramsDic1 = RegisterFormRef.value.submitForm; - if (!paramsDic?.name) { - ElMessage({ - type: 'error', - message: '请输入患者姓名', - }); - return; - } else if (!paramsDic?.phone) { - ElMessage({ - type: 'error', - message: '请输入联系方式', - }); - return; - } else if (!paramsDic?.age) { - ElMessage({ - type: 'error', - message: '请输入年龄', - }); - return; - } else if (!paramsDic1?.inHospitalOrgId) { - ElMessage({ - type: 'error', - message: '请选择入院科室', - }); - return; - } else if (!paramsDic1?.wardLocationId) { - ElMessage({ - type: 'error', - message: '请选择入院病区', - }); - return; - } else if (!paramsDic1?.diagnosisDefinitionId) { - ElMessage({ - type: 'error', - message: '请选择入院诊断', - }); - return; - } - // else if (!paramsDic1?.diagnosisDesc) { - // ElMessage({ - // type: 'error', - // message: '请输入诊断描述', - // }); - // return; - // } RegisterFormRef.value.validateData(async () => { params.inHospitalInfo = RegisterFormRef.value.submitForm; - params.inHospitalInfo.payEnum = payEnum.value; - params.patientInformation = patientInfoRef?.value.getPatientForm(); + params.patientInformation = patientInfoRef.value.getPatientForm(); if (params.patientInformation.idCard) { // 验证身份证号长度是否为18位 const idCard = params.patientInformation.idCard.toString(); @@ -251,53 +155,9 @@ const handleSubmit = () => { 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); - cancelAct(); - // 询问是否需要医保登记 - // 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); } @@ -322,64 +182,13 @@ const handleSubmit = () => { params.patientId = props.patientInfo.patientId; RegisterFormRef.value.validateData(async () => { 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 - ); - // 自费不需要弹医保 - if (params.contractNo != '0000') { - // 询问是否需要医保登记 - 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'); - }); - } - cancelAct(); } else { ElMessage.error(res.msg); } @@ -420,8 +229,6 @@ const closedAct = () => { onMounted(() => { getInit().then((res) => { - console.log('getInit=========>', JSON.stringify(res.data)); - initOptions.value = res.data; }); }); @@ -432,22 +239,18 @@ 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: '银行卡', }, ]); @@ -476,168 +279,7 @@ 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(); -function handleWxPay() { - wxPay({ - // 支付码 - txtCode: txtCode.value, - // 收费项id 住院怎么给 - chargeItemIds: props.chargeItemIds, - encounterId: props.patientInfo.encounterId, - // 支付id 住院怎么给 - id: props.paymentId, - // 支付详情 住院怎么给 格式[{ payEnum: 220100, amount: 0.0, payLevelEnum: 2 }] - paymentDetails: formData.selfPay, - // 读卡的时候获取的 - ybMdtrtCertType: props.userCardInfo.psnCertType, - // 读卡获取 - busiCardInfo: props.userCardInfo.busiCardInfo, - }); -} - -function getWxPayResult() { - WxPayResult({ - txtCode: txtCode.value, - chargeItemIds: props.chargeItemIds, - encounterId: props.patientInfo.encounterId, - id: props.paymentId, - paymentDetails: formData.selfPay, - ybMdtrtCertType: props.userCardInfo.psnCertType, - busiCardInfo: props.userCardInfo.busiCardInfo, - }); -} - -// 根据不同支付方式,显示不同的支付方式详情 -const payType = () => { - switch (currentFeeType.value) { - case 'hipCash': - return '现金'; - case 'hipAlipay': - return '支付宝'; - case 'wechat': - return '微信卡'; - case 'hipPayCard': - return '银行卡'; - default: - return ''; - } -}; -// 读卡操作 -const onCarRead = (a) => { - console.log('读卡操作:', a); -}; +/* */ + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/api.js b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/api.js index daf3b7a3..d9ebc084 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/api.js +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/api.js @@ -1,11 +1,11 @@ -import request from '@/utils/request'; +import request from '@/utils/request' export function getPatientList(queryParams) { return request({ url: '/reg-doctorstation/advice-manage/reg-patient-zk', method: 'get', - params: queryParams, - }); + params: queryParams + }) } // 诊断相关接口 @@ -16,8 +16,8 @@ export function saveDiagnosis(data) { return request({ url: '/doctor-station/diagnosis/save-doctor-diagnosis', method: 'post', - data: data, - }); + data: data + }) } /** @@ -27,8 +27,8 @@ export function saveDiagnosisBind(data) { return request({ url: '/doctor-station/diagnosis/diagnosis-belong-binding', method: 'post', - data: data, - }); + data: data + }) } /** * 删除诊断绑定 @@ -37,7 +37,7 @@ export function deleteDiagnosisBind(id) { return request({ url: '/doctor-station/diagnosis/diagnosis-belong-binding?id=' + id, method: 'delete', - }); + }) } /** @@ -47,8 +47,8 @@ export function getDiagnosisDefinitionList(queryParams) { return request({ url: '/doctor-station/diagnosis/condition-definition-metadata', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -58,7 +58,7 @@ export function getConditionDefinitionInfo(patientId) { return request({ url: '/doctor-station/diagnosis/get-condition-definition-class?patientId=' + patientId, method: 'get', - }); + }) } /** @@ -68,29 +68,29 @@ 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 delEncounterDiagnosis(conditionId) { return request({ url: '/doctor-station/diagnosis/encounter-diagnosis?conditionId=' + conditionId, method: 'delete', - }); + }) } /** @@ -112,8 +112,8 @@ export function getTcmCondition(params) { return request({ url: '/doctor-station/chinese-medical/condition-info', method: 'get', - params: params, - }); + params: params + }) } /** @@ -123,8 +123,8 @@ export function getTcmSyndrome(params) { return request({ url: '/doctor-station/chinese-medical/syndrome-info', method: 'get', - params: params, - }); + params: params + }) } /** @@ -134,8 +134,8 @@ export function getTcmDiagnosis(params) { return request({ url: '/doctor-station/chinese-medical/get-tcm-encounter-diagnosis', method: 'get', - params: params, - }); + params: params + }) } /** @@ -145,8 +145,8 @@ export function saveTcmDiagnosis(data) { return request({ url: '/doctor-station/chinese-medical/save-tcm-diagnosis', method: 'post', - data: data, - }); + data: data + }) } /** * 获取人员慢性病诊断 @@ -155,10 +155,11 @@ export function getChronicDisease(params) { return request({ url: '/yb-request/getConditionDefinition', method: 'get', - params: params, - }); + params: params + }) } + /** * 获取药品列表 */ @@ -166,8 +167,8 @@ export function getAdviceBaseInfo(queryParams) { return request({ url: '/doctor-station/advice/advice-base-info', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -177,8 +178,8 @@ export function savePrescription(data) { return request({ url: '/reg-doctorstation/advice-manage/save-reg-advice', method: 'post', - data: data, - }); + data: data + }) } /** * 签发处方 @@ -187,8 +188,8 @@ export function savePrescriptionSign(data) { return request({ url: '/reg-doctorstation/advice-manage/sign-reg-advice', method: 'post', - data: data, - }); + data: data + }) } /** * 处方签退 @@ -197,8 +198,8 @@ export function singOut(data) { return request({ url: '/reg-doctorstation/advice-manage/sign-off-reg', method: 'post', - data: data, - }); + data: data + }) } /** * 停嘱 @@ -207,8 +208,8 @@ export function stopAdvice(data) { return request({ url: '/reg-doctorstation/advice-manage/stop-reg-advice', method: 'post', - data: data, - }); + data: data + }) } /** * 获取患者本次就诊处方 @@ -217,7 +218,7 @@ export function getPrescriptionList(encounterId) { return request({ url: '/reg-doctorstation/advice-manage/reg-request-base-info?encounterId=' + encounterId, method: 'get', - }); + }) } /** @@ -227,8 +228,8 @@ export function getContract(params) { return request({ url: '/doctor-station/advice/get-encounter-contract', method: 'get', - params: params, - }); + params: params + }) } /** @@ -238,7 +239,7 @@ export function getOrgTree() { return request({ url: '/base-data-manage/organization/organization', method: 'get', - }); + }) } @@ -257,28 +258,6 @@ export function updateGroupId(data) { return request({ url: '/doctor-station/advice/update-groupid', method: 'put', - data: data, - }); -} - -/** - * 查询项目绑定信息 - */ -export function getBindDevice(data) { - return request({ - url: '/doctor-station/advice/order-bind-info', - method: 'get', - params: data, - }); -} - -/** - * 出院 - */ -export function leaveHospital(data) { - return request({ - url: '/reg-doctorstation/special-advice/leave-hospital-orders', - method: 'post', - data: data, - }); + data: data + }) } diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/bloodTtransfusionAapplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/bloodTtransfusionAapplication.vue index d8b6365e..a09cf715 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/bloodTtransfusionAapplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/bloodTtransfusionAapplication.vue @@ -1,318 +1,87 @@ - - - - + \ 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 be5ed178..ea343667 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,316 +4,42 @@ * @Description: 检查申请详情 --> - - - - + onBeforeMount(() => { + + }) + onMounted(() => { + getInfo() + }) + defineExpose({ state }) + + + \ No newline at end of file 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 deleted file mode 100644 index 55bb5311..00000000 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/reportQuery.vue +++ /dev/null @@ -1,238 +0,0 @@ - - - - - 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 b900b7d9..458042db 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,315 +4,33 @@ * @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 954bfd36..2dc410cb 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,315 +4,34 @@ * @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 d02b0ed8..77359f89 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 @@
证候
- + - - diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue index 7c771397..fae0e62b 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/bloodTransfusion.vue @@ -5,71 +5,49 @@ --> + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/index.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/index.vue new file mode 100644 index 00000000..af9f729f --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/index.vue @@ -0,0 +1,108 @@ + + + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientChildCard.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientChildCard.vue new file mode 100644 index 00000000..a5b90918 --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientChildCard.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientParentCard.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientParentCard.vue new file mode 100644 index 00000000..b6f7653d --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientCard/patientParentCard.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue new file mode 100644 index 00000000..f94d3bce --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/patientList.vue @@ -0,0 +1,385 @@ + + + + + + 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 be270295..25415ce2 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/emr/api.js @@ -1,34 +1,18 @@ /* * @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, - }); -} -// 删除历史记录 -export function deleteRecord(ids) { - return request({ - url: '/document/record/deleteRecord', - method: 'delete', - data: ids, - }); + data + }) } // 根据患者ID或就诊ID获取文书记录列表,只针对不需返回患者具体信息的列表,体温单除外,单独处理 @@ -36,15 +20,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', - }); + }) } // ====== 文书模板 @@ -53,22 +37,24 @@ 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 3929bf50..1824a9d5 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,25 +8,14 @@
-
- +
+ {{ item.name }}({{ item.recordTime }}) - - - -
@@ -35,11 +24,10 @@ 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 9a5e1e03..5e741e5b 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,15 +9,17 @@
-->
- + -
- {{ item.name }} - - - - -
+
{{ item.name }} + + +
+
@@ -31,8 +33,7 @@ import { getListByDefinitionId } from '../api'; import { ElTree } from 'element-plus'; import { ElMessageBox, ElMessage, ElLoading } from 'element-plus'; import { patientInfo } from '../../store/patient.js'; -import { Edit } from '@element-plus/icons-vue'; -const emits = defineEmits(['templateClick', 'edit']); +const emits = defineEmits(['templateClick','edit']); const props = defineProps({ definitionId: { type: String, @@ -54,12 +55,13 @@ 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 = []; @@ -71,60 +73,40 @@ 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 418efbbf..008f1fbe 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/store/patient.js b/openhis-ui-vue3/src/views/inpatientDoctor/home/store/patient.js index 671fec3f..68185bb4 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/store/patient.js +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/store/patient.js @@ -1,20 +1,23 @@ /* * @Author: sjjh * @Date: 2025-04-09 17:55:05 - * @Description: + * @Description: */ // import { IInPatient } from '@/model/IInPatient' -import { ref } from 'vue'; +import { ref } from 'vue' // 定义护士等级(没接口前mock) -export const nursingLevel = ref('0'); +export const nursingLevel = ref('0') export function updateNursingLevel(level) { - nursingLevel.value = level; + nursingLevel.value = level } // 选择患者信息 -export const patientInfo = ref(); +export const patientInfo = ref() export function updatePatientInfo(info) { - patientInfo.value = info; + console.log(123111); + + patientInfo.value = info } + diff --git a/openhis-ui-vue3/src/views/inpatientNurse/InpatientBilling/components/newfeeDetailQuery.vue b/openhis-ui-vue3/src/views/inpatientNurse/InpatientBilling/components/newfeeDetailQuery.vue deleted file mode 100644 index b419f55b..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/InpatientBilling/components/newfeeDetailQuery.vue +++ /dev/null @@ -1,874 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/components/NurseNavBar.vue b/openhis-ui-vue3/src/views/inpatientNurse/components/NurseNavBar.vue deleted file mode 100644 index b18dcd2c..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/components/NurseNavBar.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/components/api.js b/openhis-ui-vue3/src/views/inpatientNurse/components/api.js deleted file mode 100644 index 5559ad51..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/components/api.js +++ /dev/null @@ -1,23 +0,0 @@ -import request from '@/utils/request' - -/** - * 获取住院患者列表 - */ -export function getPatientList(queryParams) { - return request({ - url: '/nurse-station/advice-process/inpatient', - method: 'get', - params: queryParams - }) -} - -/** - * 获取当前登录人管理病区 - */ -export function getWardList(queryParams) { - return request({ - url: '/app-common/practitioner-ward', - method: 'get', - params: queryParams - }) -} diff --git a/openhis-ui-vue3/src/views/inpatientNurse/components/patientList.vue b/openhis-ui-vue3/src/views/inpatientNurse/components/patientList.vue deleted file mode 100644 index 938b30b3..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/components/patientList.vue +++ /dev/null @@ -1,305 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/constants/navigation.js b/openhis-ui-vue3/src/views/inpatientNurse/constants/navigation.js deleted file mode 100644 index b331e2ac..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/constants/navigation.js +++ /dev/null @@ -1,45 +0,0 @@ -export const inpatientNurseNavs = [ - { - label: '入出转', - path: '/inHospital/statistics/inOut', - icon: 'Document', - accent: '#5b8ff9', - }, - { - label: '护理记录', - path: '/inHospital/statistics/nursingRecord', - icon: 'MedicineBox', - accent: '#13c2c2', - }, - { - label: '三测单', - path: '/inHospital/statistics/tprChart', - icon: 'List', - accent: '#ffc53d', - }, - { - label: '医嘱执行', - path: '/inHospital/statistics/medicalOrderExecution', - icon: 'Finished', - accent: '#73d13d', - }, - { - label: '医嘱校对', - path: '/inHospital/statistics/medicalOrderProofread', - icon: 'EditPen', - accent: '#ff7a45', - }, - { - label: '汇总发药申请', - path: '/inHospital/statistics/drugDistribution', - icon: 'Collection', - accent: '#597ef7', - }, - { - label: '住院记账', - path: '/inHospital/statistics/InpatientBilling', - icon: 'Tickets', - accent: '#9e60ff', - }, -]; - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/dischargedManagement/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/dischargedManagement/index.vue index cd16ca27..fd931058 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/dischargedManagement/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/dischargedManagement/index.vue @@ -15,19 +15,19 @@
- \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/api.js b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/api.js index 1cd68768..9a930790 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/api.js +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/api.js @@ -1,4 +1,4 @@ -import request from '@/utils/request'; +import request from '@/utils/request' /** * 获取初始化 @@ -7,8 +7,8 @@ export function getInit(queryParams) { return request({ url: '/nurse-station/atd-manage/init', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -18,8 +18,8 @@ export function getPendingInfo(queryParams) { return request({ url: '/nurse-station/atd-manage/admission-patient', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -29,8 +29,8 @@ export function getBedInfo(queryParams) { return request({ url: '/nurse-station/atd-manage/admission-bed', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -40,8 +40,8 @@ export function getPatientInfo(queryParams) { return request({ url: '/nurse-station/atd-manage/admission-patient-info', method: 'get', - params: queryParams, - }); + params: queryParams + }) } /** @@ -50,8 +50,8 @@ export function getPatientInfo(queryParams) { export function getDoctorInfo(queryParams) { return request({ url: '/charge-manage/register/practitioner-metadata?orgId=' + queryParams.organizationId, - method: 'get', - }); + method: 'get' + }) } /** @@ -60,8 +60,8 @@ export function getDoctorInfo(queryParams) { export function getNurseInfo(queryParams) { return request({ url: '/app-common/nurse-list?orgId=' + queryParams.organizationId, - method: 'get', - }); + method: 'get' + }) } /** @@ -71,8 +71,8 @@ export function bedAssignment(data) { return request({ url: '/nurse-station/atd-manage/bed-assignment', method: 'post', - data: data, - }); + data: data + }) } /** @@ -82,66 +82,14 @@ export function childLocationList(queryParams) { return request({ url: '/app-common/child-location-list', method: 'get', - params: queryParams, - }); + 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/atd-manage/patient-pending', - 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/hospital-discharge', - method: 'put', - params: { - encounterId: encounterId, - }, - }); -} -//清床 -export function terminalCleaning(encounterId) { - return request({ - url: '/nurse-station/atd-manage/terminal-cleaning', - method: 'put', - params: { - encounterId: encounterId, - }, - }); + params: queryParams + }) } diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/bedAllocation.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/bedAllocation.vue index 31a938d5..09054d23 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/bedAllocation.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/bedAllocation.vue @@ -1,98 +1,189 @@ + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/index.ts b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/index.ts index b3508147..0e6e7be3 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/index.ts +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/index.ts @@ -7,7 +7,5 @@ import BedAllocation from './bedAllocation.vue' import TransferInDialog from './transferInDialog.vue' import SignEntryDialog from './signEntryDialog.vue' import BedCards from './bedcards.vue' -import TransferOut from './transferOut.vue' - -export { BedAllocation, TransferInDialog, SignEntryDialog, BedCards ,TransferOut } +export { BedAllocation, TransferInDialog, SignEntryDialog, BedCards } diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferInDialog.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferInDialog.vue index 7d7eb66a..6c07d796 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferInDialog.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferInDialog.vue @@ -15,158 +15,93 @@
-
-
- {{ props.pendingInfo.houseName + '-' + props.pendingInfo.bedName }} -
-
- {{ props.pendingInfo.contractName }} -
+
+
{{ props.pendingInfo.houseName + '-' + props.pendingInfo.bedName }}
+
{{ props.pendingInfo.contractName }}
-
- {{ props.pendingInfo.patientName }} - {{ props.pendingInfo.genderEnum_enumText }}/ - {{ props.pendingInfo.age }} +
+ {{ props.pendingInfo.patientName}} + {{ props.pendingInfo.genderEnum_enumText}}/ + {{ props.pendingInfo.age}}
-
电话:{{ pendingInfo.phone }}
+
+ 电话:{{ pendingInfo.phone }} +
-
住院诊断:{{ pendingInfo.conditionNames }}
+
+ 住院诊断:{{ pendingInfo.conditionNames }} +
{{ props.pendingInfo.patientId }} + +
-
入院体征
+
+ 入院体征 +
- - - cm + cm - - + kg - + - + BPM - P + P - + ~ - + mmHg
-
入院信息
+
+ 入院信息 +
@@ -215,9 +150,7 @@ v-model="interventionForm.admittingDoctorId" placeholder="请选择住院医生" style="width: 240px" - :disabled=" - props.pendingInfo.encounterStatus == 5 && props.pendingInfo.entranceType == 2 - " + :disabled="props.pendingInfo.encounterStatus == 5 && props.pendingInfo.entranceType == 2" > + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue deleted file mode 100644 index 6f6f37a9..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/components/transferOut.vue +++ /dev/null @@ -1,1133 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue index 63ec7be7..6b68fb26 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue @@ -5,69 +5,43 @@ --> diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue new file mode 100644 index 00000000..b2e7d47f --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/components/patientList.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue index fa38dcf5..68cd3fe2 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue @@ -22,11 +22,9 @@ -
@@ -52,7 +50,7 @@ + + \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue index 94e0c637..55e8a313 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue @@ -21,7 +21,7 @@
全选: - + 核对通过 退回
@@ -107,10 +107,8 @@ border :ref="'tableRef' + index" :header-cell-style="{ background: '#eef9fd !important' }" - @select="handleSelectionChange" > - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue b/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue deleted file mode 100644 index 7ad19c67..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/nursingstatistics/operationrecord.vue +++ /dev/null @@ -1,662 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js b/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js deleted file mode 100644 index 27592ab7..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/rollFee/components/api.js +++ /dev/null @@ -1,177 +0,0 @@ -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 deleted file mode 100644 index 2db6719b..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/rollFee/index.vue +++ /dev/null @@ -1,621 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue index 4cbdb5bc..c0a0f138 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/tprChart/index.vue @@ -67,7 +67,9 @@
- 新增 + 新增
@@ -131,7 +133,7 @@ @close="closePatientDetialDialog" /> - +
@@ -171,7 +173,7 @@ const queryParams = ref({ orgId: userStore.orgId, }); -const data1 = reactive({ +const data1 = reactive({ patientInfo: {}, grParamBOS: { age: '', @@ -190,10 +192,10 @@ const data1 = reactive({ total: '', hospDate: '', operaDate: '', - outdate: '', + outdate: '' }, rows: [], - types: [], + types: [] }); const patientData = ref({}); const integerPoints = [2, 6, 10, 14, 18, 22]; @@ -266,7 +268,7 @@ function init1(data) { console.log('体温单初始化', data); const inDate = data.grParamBOS.hospDate; const outdate = data.grParamBOS.outdate; - week.value = Math.floor(dateDiff(inDate, outdate) / 10); + week.value = Math.floor(dateDiff(inDate, outdate) / 7); setTemperatureComp(data); } @@ -274,8 +276,6 @@ 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(JSON.stringify(), '体温单控件数据设置'); + console.log(data,'体温单控件数据设置'); 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,45 +475,39 @@ 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}`; @@ -586,7 +580,7 @@ function formatHourTimes(dateStr, temperaturePulses) { * 打开体征录入 */ function openAddTprDialog() { - patientData.value = patientInfo.value; + patientData.value = patientInfo.value openAddTpr.value = true; // patientId.value = row.id; nextTick(() => { @@ -639,4 +633,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 deleted file mode 100644 index 822db089..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/api/api.js +++ /dev/null @@ -1,42 +0,0 @@ -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, - }); -} - -export function getPatientList(queryParams) { - return request({ - url: '/reg-doctorstation/advice-manage/reg-patient-zk', - method: 'get', - params: queryParams, - }); -} diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue deleted file mode 100644 index 54e72fa5..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/addAttr.vue +++ /dev/null @@ -1,1195 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue deleted file mode 100644 index ffe0090f..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/compoents/details.vue +++ /dev/null @@ -1,755 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue deleted file mode 100644 index 5acad633..00000000 --- a/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js b/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js deleted file mode 100644 index 08b80956..00000000 --- a/openhis-ui-vue3/src/views/inspection/groupRec/components/collect.js +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index b17de3bb..00000000 --- a/openhis-ui-vue3/src/views/inspection/groupRec/index.vue +++ /dev/null @@ -1,269 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js b/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js deleted file mode 100644 index d4efd43c..00000000 --- a/openhis-ui-vue3/src/views/inspection/instrument/components/instrument.js +++ /dev/null @@ -1,82 +0,0 @@ -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 deleted file mode 100644 index 6390c894..00000000 --- a/openhis-ui-vue3/src/views/inspection/instrument/components/instrumentDialog.vue +++ /dev/null @@ -1,402 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/instrument/index.vue b/openhis-ui-vue3/src/views/inspection/instrument/index.vue deleted file mode 100644 index e0d4087f..00000000 --- a/openhis-ui-vue3/src/views/inspection/instrument/index.vue +++ /dev/null @@ -1,505 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js b/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js deleted file mode 100644 index 3bca6060..00000000 --- a/openhis-ui-vue3/src/views/inspection/lisconfig/components/lisConfig.js +++ /dev/null @@ -1,36 +0,0 @@ -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 deleted file mode 100644 index 4fd736a4..00000000 --- a/openhis-ui-vue3/src/views/inspection/lisconfig/index.vue +++ /dev/null @@ -1,503 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/observation/components/observation.js b/openhis-ui-vue3/src/views/inspection/observation/components/observation.js deleted file mode 100644 index ba7be2b6..00000000 --- a/openhis-ui-vue3/src/views/inspection/observation/components/observation.js +++ /dev/null @@ -1,66 +0,0 @@ -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 deleted file mode 100644 index 37d40060..00000000 --- a/openhis-ui-vue3/src/views/inspection/observation/components/observationDialog.vue +++ /dev/null @@ -1,231 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/observation/index.vue b/openhis-ui-vue3/src/views/inspection/observation/index.vue deleted file mode 100644 index 355c8d85..00000000 --- a/openhis-ui-vue3/src/views/inspection/observation/index.vue +++ /dev/null @@ -1,370 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/report/components/report.js b/openhis-ui-vue3/src/views/inspection/report/components/report.js deleted file mode 100644 index 49ed9c13..00000000 --- a/openhis-ui-vue3/src/views/inspection/report/components/report.js +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index a6616add..00000000 --- a/openhis-ui-vue3/src/views/inspection/report/index.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js b/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js deleted file mode 100644 index 08b80956..00000000 --- a/openhis-ui-vue3/src/views/inspection/sampleCollection/components/collect.js +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index f562eaae..00000000 --- a/openhis-ui-vue3/src/views/inspection/sampleCollection/index.vue +++ /dev/null @@ -1,268 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js b/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js deleted file mode 100644 index c50fc5dc..00000000 --- a/openhis-ui-vue3/src/views/inspection/sampleType/components/specimen.js +++ /dev/null @@ -1,77 +0,0 @@ -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 deleted file mode 100644 index fc2b6911..00000000 --- a/openhis-ui-vue3/src/views/inspection/sampleType/components/specimenDialog.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/inspection/sampleType/index.vue b/openhis-ui-vue3/src/views/inspection/sampleType/index.vue deleted file mode 100644 index 44ce5fe4..00000000 --- a/openhis-ui-vue3/src/views/inspection/sampleType/index.vue +++ /dev/null @@ -1,414 +0,0 @@ - - - - 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 33cb0681..5235607d 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/chkstockPart/components/medicineList.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockPart/components/medicineList.vue index 0b435fed..89b2cf2c 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockPart/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockPart/components/medicineList.vue @@ -35,7 +35,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - + --> - +
diff --git a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockRecord/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockRecord/index.vue index 27c44d77..8d1e06db 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockRecord/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/chkstockRecord/index.vue @@ -1,225 +1,255 @@ + + + + - - + + + }); + \ 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 deleted file mode 100644 index 6fb198de..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/chkstockDetailsDialog.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - \ 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 324e6d68..ad607c87 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/chkstock/components/medicineList.vue @@ -40,6 +40,12 @@ label="产品批号" align="center" prop="lotNumber" + /> + - + --> - + 批量保存
- 导出 + @@ -751,7 +751,7 @@ function addNewRow() { itemType: '', itemType_enumText: '', lotNumber: '', - manufacturerText: '', + manufacturer: '', minUnitCode: '', minUnitCode_dictText: '', name: '', @@ -878,7 +878,7 @@ function getTransferProductDetails() { form.purchaseinventoryList[index].statusMaxvalue = false; e.volume = e.totalVolume; e.name = e.itemName; - e.manufacturerText = e.manufacturerText; + e.manufacturer = 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/billapproval', + path: '/aaaa/medicationmanagement/billapproval', query: { type: 'lossReporting' }, }); } @@ -1039,7 +1039,7 @@ function handelApply() { store.clearCurrentDataBS(); // 跳转到审核页面 router.replace({ - path: '/aaaa/billapproval', + path: '/aaaa/medicationmanagement/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].manufacturerText = rowValue.manufacturerText; + form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; 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, - manufacturerText: item.supplierName, + manufacturer: item.supplierName, totalQuantity: item.totalQuantity, totalPurposeQuantity: item.totalPurposeQuantity, startTime: formatDateymd(item.startTime), @@ -1655,22 +1655,6 @@ 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 413a1717..0e95d20b 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/purchaseinventory/components/inventoryReceiptDialog.vue b/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/inventoryReceiptDialog.vue index 010139a3..60b44d4b 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/inventoryReceiptDialog.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/inventoryReceiptDialog.vue @@ -175,17 +175,17 @@ @@ -777,7 +777,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].manufacturerText = rowValue.manufacturerText; + form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; form.purchaseinventoryList[index].partPercent = rowValue.partPercent; form.purchaseinventoryList[index].unitList = rowValue.unitList[0]; form.purchaseinventoryList[index].locationInventoryList = locationList.value; @@ -985,7 +985,7 @@ function edit() { ...item, name: item.itemName, volume: item.totalVolume, - manufacturerText: item.supplierName, + manufacturer: item.supplierName, quantity: item.totalQuantity, locationInventoryList: locationList.value, startTime: formatDate(item.startTime), diff --git a/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/medicineList.vue b/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/medicineList.vue index 0839b276..707e3b7a 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/medicineList.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/purchaseinventory/components/medicineList.vue @@ -35,7 +35,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - + diff --git a/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/components/list.vue b/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/components/list.vue index e97b26a3..e8621bac 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/components/list.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/components/list.vue @@ -41,7 +41,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - + diff --git a/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue index 163d6c14..9778c24c 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/requisitionManagement/requisitionManagement/index.vue @@ -43,7 +43,6 @@ - 导出 @@ -911,7 +910,7 @@ function handleReject() { store.clearCurrentDataLYCK(); // 跳转到审核页面 router.replace({ - path: '/aaaa/billapproval', + path: '/aaaa/medicationmanagement/billapproval', query: { type: 'requisitionManagement' }, }); } @@ -927,7 +926,7 @@ function handelApply() { store.clearCurrentDataLYCK(); // 跳转到审核页面 router.replace({ - path: '/aaaa/billapproval', + path: '/aaaa/medicationmanagement/billapproval', query: { type: 'requisitionManagement' }, }); } @@ -982,7 +981,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].manufacturerText = rowValue.manufacturerText; + form.purchaseinventoryList[index].manufacturer = rowValue.manufacturer; form.purchaseinventoryList[index].partPercent = rowValue.partPercent; form.purchaseinventoryList[index].unitList = rowValue.unitList[0]; form.purchaseinventoryList[index].lotNumber = rowValue.lotNumber; @@ -1460,7 +1459,7 @@ function edit() { ...item, name: item.itemName, volume: item.volume, - manufacturerText: item.supplierName, + manufacturer: item.supplierName, totalQuantity: item.totalQuantity, // totalQuantity: item.totalQuantity, startTime: formatDate(item.startTime), @@ -1580,21 +1579,6 @@ getTransferProductDetails(); // show, // edit, // }); -// 导出 -const exportRequiredParams = ref({ - pageNo: 1, - pageSize: 10, - busNo: route.query.supplyBusNo -}); -function handleExport() { - proxy.downloadGet( - '/issue-manage/requisition/excel-out', - { - ...exportRequiredParams.value, - }, - `领用单据明细_${proxy.formatDateStr(new Date(), 'YYYY-MM-DD')}.xlsx` - ); -} diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationInboundDetails.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationInboundDetails.vue deleted file mode 100644 index 62abafc1..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationInboundDetails.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationSaleDetails.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationSaleDetails.vue deleted file mode 100644 index f83502d7..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/medicationSaleDetails.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outpatientDepartmentMetrics.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outpatientDepartmentMetrics.vue deleted file mode 100644 index 69aeb1f5..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outpatientDepartmentMetrics.vue +++ /dev/null @@ -1,451 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/traceabilityPersonInfo.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/traceabilityPersonInfo.vue deleted file mode 100644 index 0b40b109..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/traceabilityPersonInfo.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/transferManagentDetails.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/transferManagentDetails.vue index 47c136db..3cd5b9c3 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/transferManagentDetails.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/transferManagentDetails.vue @@ -86,7 +86,6 @@ plain icon="Download" @click="handleExport" - v-if="viewStatus == 'view'" >导出 diff --git a/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/components/api.js b/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/components/api.js deleted file mode 100644 index d1976d7b..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/components/api.js +++ /dev/null @@ -1,24 +0,0 @@ -import request from '@/utils/request'; - -// 获取库房对账列表 -export function getStoreReconciliationList (query) { - return request ({ - url: '/inventory-manage/dynamic/dynamic-inventory', - method: 'get', - params: query, - }); -} -// 获取库房列表// 药房药库列表 -export function getPharmacyCabinetList () { - return request ({ - url: '/app-common/pharmacy-cabinet-list', - method: 'get', - }); -} -// 查询备份单号 -export function getBackupList () { - return request ({ - url: '/app-common/backup-list', - method: 'get', - }); -} diff --git a/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/index.vue b/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/index.vue deleted file mode 100644 index ea7e8ac1..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/storeReconciliation/index.vue +++ /dev/null @@ -1,372 +0,0 @@ - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/template.json b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/template.json deleted file mode 100644 index 79f10e2a..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/template.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "panels": [ - { - "index": 0, - "name": 1, - "paperType": "A4", - "height": 297, - "width": 210, - "paperHeader": 73.5, - "paperFooter": 817.5, - "paperNumberContinue": true, - "overPrintOptions": {}, - "watermarkOptions": {}, - "panelLayoutOptions": {}, - "printElements": [ - { - "options": { - "left": 249, - "top": 12, - "height": 12, - "width": 70.5, - "title": "调拨单据", - "coordinateSync": false, - "widthHeightSync": false, - "fontSize": 16.5, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 10.5, - "top": 46.5, - "height": 9.75, - "width": 120, - "title": "单据号", - "field": "busNo", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 141, - "top": 46.5, - "height": 9.75, - "width": 97.5, - "title": "源仓库", - "field": "sourceLocationName", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 249, - "top": 46.5, - "height": 9.75, - "width": 97.5, - "title": "目的仓库", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "purposeLocationName" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 360.99609375, - "top": 46.5, - "height": 9.75, - "width": 78, - "title": "项目类型", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0, - "field": "itemType_dictText" - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 445.5, - "top": 46.5, - "height": 9.75, - "width": 136.5, - "title": "制单日期", - "field": "occurrenceTime", - "coordinateSync": false, - "widthHeightSync": false, - "qrCodeLevel": 0 - }, - "printElementType": { - "title": "文本", - "type": "text" - } - }, - { - "options": { - "left": 9, - "top": 88.5, - "height": 36, - "width": 573, - "title": "undefined+beforeDragIn", - "field": "detailsList", - "coordinateSync": false, - "widthHeightSync": false, - "columns": [ - [ - { - "title": "项目名称", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 86.67519359101631, - "field": "name", - "checked": true, - "columnId": "name", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "规格", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 80.21549132169478, - "field": "totalVolume", - "checked": true, - "columnId": "totalVolume", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "厂家", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 75.93737727220328, - "field": "manufacturerText", - "checked": true, - "columnId": "manufacturerText", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "批号", - "titleSync": false, - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 67.21760769186436, - "field": "lotNumber", - "checked": true, - "columnId": "lotNumber", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "单价", - "titleSync": false, - "align": "right", - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 60.17562958542372, - "field": "price", - "checked": true, - "columnId": "price", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "调拨单位", - "titleSync": false, - "align": "center", - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 30.9839942645893, - "field": "measurementUnitCode_dictText", - "checked": true, - "columnId": "measurementUnitCode_dictText", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "源库存数", - "titleSync": false, - "align": "right", - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 55.062860531575446, - "field": "totalSourceQuantity", - "checked": true, - "columnId": "totalSourceQuantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "调拨数", - "titleSync": false, - "align": "right", - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 63.064593526717786, - "field": "itemQuantity", - "checked": true, - "columnId": "itemQuantity", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "title": "合计金额", - "titleSync": false, - "align": "right", - "halign": "center", - "tableQRCodeLevel": 0, - "tableSummaryTitle": true, - "tableSummary": "", - "width": 53.66725221491505, - "field": "totalPrice", - "checked": true, - "columnId": "totalPrice", - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "width": 85.25, - "checked": false, - "fixed": false, - "rowspan": 1, - "colspan": 1 - }, - { - "width": 85.25, - "checked": false, - "fixed": false, - "rowspan": 1, - "colspan": 1 - } - ] - ] - }, - "printElementType": { - "title": "表格", - "type": "table", - "editable": true, - "columnDisplayEditable": true, - "columnDisplayIndexEditable": true, - "columnTitleEditable": true, - "columnResizable": true, - "columnAlignEditable": true, - "isEnableEditField": true, - "isEnableContextMenu": true, - "isEnableInsertRow": true, - "isEnableDeleteRow": true, - "isEnableInsertColumn": true, - "isEnableDeleteColumn": true, - "isEnableMergeCell": true - } - } - ], - "paperNumberLeft": 565, - "paperNumberTop": 819 - } - ] -} \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferDetailsDialog.vue b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferDetailsDialog.vue deleted file mode 100644 index c4a255fb..00000000 --- a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferDetailsDialog.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferManagement.vue b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferManagement.vue index ccf094e7..eac1e978 100644 --- a/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferManagement.vue +++ b/openhis-ui-vue3/src/views/medicationmanagement/transferManagent/components/transferManagement.vue @@ -54,7 +54,7 @@ align="center" prop="doseUnitCode_dictText" /> --> - +
- - - - - - - - - - - - - - - + + 审批通过 + + + 驳回 + - 提交审核 - 打印 - 计算金额 - 批量保存 + 批量保存 - - 导出 - - - - - - + + + + + @@ -199,7 +219,9 @@ - 添加行 + 添加行 + 制单人:{{ userStore.name }} @@ -586,9 +671,16 @@ 单据状态: --> - + - 合计金额:{{ totalAmount ? totalAmount.toFixed(4) : 0 }} + 合计金额:{{ totalAmount?totalAmount.toFixed(4):0 }} + - + - - + + - 新增调拨单 - 新增批量调拨单 - 查询 + 查询 - 重置 + 重置 - - 导出 - - @@ -221,11 +252,7 @@ link type="primary" icon="View" - @click=" - () => { - proxy.$refs['detailsDialogRef'].open(scope.row.supplyBusNo); - } - " + @click="handleUpdate(scope.row,'view')" >详情 编辑 @@ -246,6 +272,7 @@ type="primary" icon="View" @click="handleSubmitApproval(scope.row)" + v-if="scope.row.statusEnum == '1' || scope.row.statusEnum == '9'" >提交审批 @@ -255,6 +282,7 @@ type="primary" icon="View" @click="handleWithdrawApproval(scope.row)" + v-if="scope.row.statusEnum == '2'" >撤销审批 @@ -269,7 +297,6 @@ v-model:limit="queryParams.pageSize" @pagination="getList" /> - - + - +