diff --git a/ruisi_java/pom.xml b/ruisi_java/pom.xml index 34de2ee..e9d62bf 100644 --- a/ruisi_java/pom.xml +++ b/ruisi_java/pom.xml @@ -230,7 +230,19 @@ HikariCP ${hikaricp.version} + + + com.oracle.database.jdbc + ojdbc8 + 21.9.0.0 + + + + org.apache.commons + commons-lang3 + 3.12.0 + diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java index dd49640..7c7ab3b 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/DruidConfig.java @@ -58,7 +58,7 @@ public class DruidConfig { public DynamicDataSource dataSource(DataSource masterDataSource) { Map targetDataSources = new HashMap<>(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); -// setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); + setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); return new DynamicDataSource(masterDataSource, targetDataSources); } diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java index 7cf5a87..fe98f5a 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/config/LoadingDataSource.java @@ -2,6 +2,7 @@ package com.ccsens.framework.config; import cn.hutool.core.collection.CollectionUtil; import com.ccsens.common.utils.ExceptionUtil; +import com.ccsens.common.utils.StringUtils; import com.ccsens.framework.datasource.DataSourceManager; import com.ccsens.framework.datasource.DynamicDataSource; import com.ccsens.system.domain.po.UmsDataSource; @@ -10,6 +11,7 @@ import com.ccsens.system.persist.mapper.UmsDataSourceMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import org.springframework.scheduling.annotation.Scheduled; @@ -51,5 +53,9 @@ public class LoadingDataSource implements InitializingBean { log.error("加载数据源失败:", ExceptionUtil.getExceptionMessage(e)); } } + + // 3. 打印当前所有数据源 + log.info("当前数据源池中的key: {}", DataSourceManager.DATA_SOURCE_POOL_JDBC.keySet()); } + } \ No newline at end of file diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java index d5a201a..1e80c29 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DataSourceManager.java @@ -1,5 +1,6 @@ package com.ccsens.framework.datasource; +import com.ccsens.common.utils.StringUtils; import com.ccsens.system.domain.po.UmsDataSource; import com.zaxxer.hikari.HikariDataSource; import org.springframework.stereotype.Component; diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java index c2987ae..8e189ee 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java @@ -5,6 +5,7 @@ import java.sql.SQLException; import java.util.Map; import javax.sql.DataSource; +import cn.hutool.core.collection.CollUtil; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; /** @@ -38,13 +39,19 @@ public class DynamicDataSource extends AbstractRoutingDataSource { if (dataSourceKey == null) { return super.getResolvedDefaultDataSource(); } - DataSource dataSource = DataSourceManager.DATA_SOURCE_POOL_JDBC.get(dataSourceKey); + + DataSource dataSource; + Map resolvedDataSources = super.getResolvedDataSources(); + if (CollUtil.isNotEmpty(resolvedDataSources) && resolvedDataSources.containsKey(dataSourceKey)) { + dataSource = resolvedDataSources.get(dataSourceKey); + }else { + dataSource = DataSourceManager.DATA_SOURCE_POOL_JDBC.get(dataSourceKey); + } if (dataSource == null) { throw new RuntimeException("数据源不存在!"); } - return dataSource; } diff --git a/ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml b/ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml index f73c053..e5547e9 100644 --- a/ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml +++ b/ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml @@ -81,7 +81,7 @@ - + @@ -114,7 +114,7 @@ - +
@@ -122,7 +122,7 @@ -
+ diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java index b3bc3c6..278376f 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/PmsPatientDto.java @@ -69,7 +69,7 @@ public class PmsPatientDto { private String patientNumber; @ApiModelProperty("病人住院号") private String hospitalNumber; - @NotNull(message="请填写身份证号") +// @NotNull(message="请填写身份证号") @ApiModelProperty("病人身份证号") private String idcard; @NotNull(message = "请选择性别") @@ -101,7 +101,7 @@ public class PmsPatientDto { // @NotNull(message="请填写联系人") // @ApiModelProperty("联系人") // private String contact; - @NotNull(message = "请填写联系电话") +// @NotNull(message = "请填写联系电话") @ApiModelProperty("手机") private String mobile; @ApiModelProperty("电话") diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java index 51b7110..a903baa 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/RmsDto.java @@ -252,4 +252,14 @@ public class RmsDto { @ApiModelProperty("结束时间") private String endTime; } + + @ApiModel("导出历史报告单-DTO") + @Data + public static class ReportPDF{ + @ApiModelProperty("患者的就诊流水号") + private String patientNo; + @ApiModelProperty("医护人员工号") + private String emplCode; + } + } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java index d34f26e..711b3ed 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluation.java @@ -44,6 +44,8 @@ public class EmsEvaluation implements Serializable { private String version; + private String visitNo; + private static final long serialVersionUID = 1L; public Long getId() { @@ -206,6 +208,14 @@ public class EmsEvaluation implements Serializable { this.version = version == null ? null : version.trim(); } + public String getVisitNo() { + return visitNo; + } + + public void setVisitNo(String visitNo) { + this.visitNo = visitNo == null ? null : visitNo.trim(); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -232,6 +242,7 @@ public class EmsEvaluation implements Serializable { sb.append(", delFlag=").append(delFlag); sb.append(", status=").append(status); sb.append(", version=").append(version); + sb.append(", visitNo=").append(visitNo); sb.append("]"); return sb.toString(); } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java index 8ac7da7..dd90e61 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/EmsEvaluationExample.java @@ -1384,6 +1384,76 @@ public class EmsEvaluationExample { addCriterion("version not between", value1, value2, "version"); return (Criteria) this; } + + public Criteria andVisitNoIsNull() { + addCriterion("visit_no is null"); + return (Criteria) this; + } + + public Criteria andVisitNoIsNotNull() { + addCriterion("visit_no is not null"); + return (Criteria) this; + } + + public Criteria andVisitNoEqualTo(String value) { + addCriterion("visit_no =", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotEqualTo(String value) { + addCriterion("visit_no <>", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoGreaterThan(String value) { + addCriterion("visit_no >", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoGreaterThanOrEqualTo(String value) { + addCriterion("visit_no >=", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLessThan(String value) { + addCriterion("visit_no <", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLessThanOrEqualTo(String value) { + addCriterion("visit_no <=", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLike(String value) { + addCriterion("visit_no like", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotLike(String value) { + addCriterion("visit_no not like", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoIn(List values) { + addCriterion("visit_no in", values, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotIn(List values) { + addCriterion("visit_no not in", values, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoBetween(String value1, String value2) { + addCriterion("visit_no between", value1, value2, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotBetween(String value1, String value2) { + addCriterion("visit_no not between", value1, value2, "visitNo"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java index 20c4f09..94d9818 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReport.java @@ -50,6 +50,8 @@ public class RmsReport implements Serializable { private Byte delFlag; + private String visitNo; + private static final long serialVersionUID = 1L; public Long getId() { @@ -236,6 +238,14 @@ public class RmsReport implements Serializable { this.delFlag = delFlag; } + public String getVisitNo() { + return visitNo; + } + + public void setVisitNo(String visitNo) { + this.visitNo = visitNo == null ? null : visitNo.trim(); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -265,6 +275,7 @@ public class RmsReport implements Serializable { sb.append(", updateBy=").append(updateBy); sb.append(", updateTime=").append(updateTime); sb.append(", delFlag=").append(delFlag); + sb.append(", visitNo=").append(visitNo); sb.append("]"); return sb.toString(); } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java index 4068288..ba89234 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/RmsReportExample.java @@ -1614,6 +1614,76 @@ public class RmsReportExample { addCriterion("del_flag not between", value1, value2, "delFlag"); return (Criteria) this; } + + public Criteria andVisitNoIsNull() { + addCriterion("visit_no is null"); + return (Criteria) this; + } + + public Criteria andVisitNoIsNotNull() { + addCriterion("visit_no is not null"); + return (Criteria) this; + } + + public Criteria andVisitNoEqualTo(String value) { + addCriterion("visit_no =", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotEqualTo(String value) { + addCriterion("visit_no <>", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoGreaterThan(String value) { + addCriterion("visit_no >", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoGreaterThanOrEqualTo(String value) { + addCriterion("visit_no >=", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLessThan(String value) { + addCriterion("visit_no <", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLessThanOrEqualTo(String value) { + addCriterion("visit_no <=", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoLike(String value) { + addCriterion("visit_no like", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotLike(String value) { + addCriterion("visit_no not like", value, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoIn(List values) { + addCriterion("visit_no in", values, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotIn(List values) { + addCriterion("visit_no not in", values, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoBetween(String value1, String value2) { + addCriterion("visit_no between", value1, value2, "visitNo"); + return (Criteria) this; + } + + public Criteria andVisitNoNotBetween(String value1, String value2) { + addCriterion("visit_no not between", value1, value2, "visitNo"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml b/ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml index 1597163..427b223 100644 --- a/ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml +++ b/ruisi_java/ruisi-system/src/main/resources/mapper/system/EmsEvaluationMapper.xml @@ -22,6 +22,7 @@ + @@ -84,7 +85,7 @@ id, doctor_name, patient_id, patient_idcard, patient_age, tester_id, serial_number, check_time, remark, hospital, complete_status, recording, duration, create_by, create_time, - update_by, update_time, del_flag, status, version + update_by, update_time, del_flag, status, version, visit_no @@ -328,6 +337,9 @@ version = #{record.version,jdbcType=VARCHAR}, + + visit_no = #{record.visitNo,jdbcType=VARCHAR}, + @@ -354,7 +366,8 @@ update_time = #{record.updateTime,jdbcType=TIMESTAMP}, del_flag = #{record.delFlag,jdbcType=TINYINT}, status = #{record.status,jdbcType=TINYINT}, - version = #{record.version,jdbcType=VARCHAR} + version = #{record.version,jdbcType=VARCHAR}, + visit_no = #{record.visitNo,jdbcType=VARCHAR} @@ -419,6 +432,9 @@ version = #{version,jdbcType=VARCHAR}, + + visit_no = #{visitNo,jdbcType=VARCHAR}, + where id = #{id,jdbcType=BIGINT} @@ -442,7 +458,8 @@ update_time = #{updateTime,jdbcType=TIMESTAMP}, del_flag = #{delFlag,jdbcType=TINYINT}, status = #{status,jdbcType=TINYINT}, - version = #{version,jdbcType=VARCHAR} + version = #{version,jdbcType=VARCHAR}, + visit_no = #{visitNo,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml b/ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml index 68a0415..5fee6bd 100644 --- a/ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml +++ b/ruisi_java/ruisi-system/src/main/resources/mapper/system/RmsReportMapper.xml @@ -25,6 +25,7 @@ + @@ -88,7 +89,7 @@ id, name, evaluation_id, initial_impression, clinical_diagnosis, pasi, patient_age, department, bed_number, report_time, evaluation_code, url, qr_code_url, sign_url, remark, show_status, hospital, working_score, create_by, create_time, update_by, - update_time, del_flag + update_time, del_flag, visit_no @@ -361,6 +370,9 @@ del_flag = #{record.delFlag,jdbcType=TINYINT}, + + visit_no = #{record.visitNo,jdbcType=VARCHAR}, + @@ -390,7 +402,8 @@ create_time = #{record.createTime,jdbcType=TIMESTAMP}, update_by = #{record.updateBy,jdbcType=VARCHAR}, update_time = #{record.updateTime,jdbcType=TIMESTAMP}, - del_flag = #{record.delFlag,jdbcType=TINYINT} + del_flag = #{record.delFlag,jdbcType=TINYINT}, + visit_no = #{record.visitNo,jdbcType=VARCHAR} @@ -464,6 +477,9 @@ del_flag = #{delFlag,jdbcType=TINYINT}, + + visit_no = #{visitNo,jdbcType=VARCHAR}, + where id = #{id,jdbcType=BIGINT} @@ -490,7 +506,8 @@ create_time = #{createTime,jdbcType=TIMESTAMP}, update_by = #{updateBy,jdbcType=VARCHAR}, update_time = #{updateTime,jdbcType=TIMESTAMP}, - del_flag = #{delFlag,jdbcType=TINYINT} + del_flag = #{delFlag,jdbcType=TINYINT}, + visit_no = #{visitNo,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/controller/ReportPdfController.java b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/controller/ReportPdfController.java new file mode 100644 index 0000000..256eabe --- /dev/null +++ b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/controller/ReportPdfController.java @@ -0,0 +1,40 @@ +package com.ccsens.admin.controller; + +import com.ccsens.admin.service.IRmsService; +import com.ccsens.common.annotation.Anonymous; +import com.ccsens.common.core.domain.JsonResponse; +import com.ccsens.system.domain.dto.RmsDto; +import com.ccsens.system.domain.vo.RmsVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * @author zy + * @date 2026/1/29 15:25 + */ +@Slf4j +@Api(tags = "通过就诊号查询患者的评估报告单") +@RestController +@RequestMapping("") +public class ReportPdfController { + + @Resource + private IRmsService rmsService; + @Anonymous + @ApiOperation(value = "通过就诊号查询患者的评估报告单",notes = "") + @PostMapping(value="/reportPDF") + public JsonResponse generate(@RequestBody @ApiParam @Valid RmsDto.ReportPDF dto){ + log.info("通过就诊号查询患者的评估报告单:{}", dto); + String url = rmsService.viewReportPDF(dto); + return JsonResponse.ok(url); + } +} diff --git a/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java index 8e31804..1dc72dc 100644 --- a/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java +++ b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/IRmsService.java @@ -37,4 +37,8 @@ public interface IRmsService { List queryAllReports(RmsDto.AdminQueryReport param, Long userId); Workbook exportAnalyse(List ids); + + String viewReportPDF(RmsDto.ReportPDF dto); + + } diff --git a/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java index 4c93998..bbd736b 100644 --- a/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java +++ b/ruisi_java/ruisi-web-admin/src/main/java/com/ccsens/admin/service/impl/RmsServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.admin.persist.dao.RmsDao; @@ -13,16 +14,23 @@ import com.ccsens.common.config.AppConfig; import com.ccsens.common.constant.CultureEnum; import com.ccsens.common.constant.ErrorConstant; import com.ccsens.common.constant.GenConstants; +import com.ccsens.common.constant.JobEnum; import com.ccsens.common.core.redis.RedisCache; +import com.ccsens.common.enums.BaseEnum; +import com.ccsens.common.exception.ServiceException; import com.ccsens.common.exception.base.BaseException; import com.ccsens.common.utils.*; import com.ccsens.system.domain.dto.AmsDto; import com.ccsens.system.domain.dto.RmsDto; import com.ccsens.system.domain.po.*; +import com.ccsens.system.domain.vo.AmsReportVo; import com.ccsens.system.domain.vo.AmsVo; import com.ccsens.admin.domain.vo.LdPatientExportVo; +import com.ccsens.system.domain.vo.HmsVo; import com.ccsens.system.domain.vo.RmsVo; import com.ccsens.system.persist.mapper.*; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.data.*; import com.github.pagehelper.util.StringUtil; import com.itextpdf.text.BadElementException; import com.itextpdf.text.Image; @@ -31,6 +39,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jfree.data.category.DefaultCategoryDataset; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -39,12 +48,16 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Paths; import java.text.DecimalFormat; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import static com.ccsens.common.constant.GenConstants.Ht.Report.MoCA_B_8; +import static com.ccsens.common.utils.PropUtil.path; +import static com.ccsens.common.utils.PropUtil.reportDomain; /** * @author:逗 @@ -77,6 +90,12 @@ public class RmsServiceImpl implements IRmsService { @Resource private ScoreService scoreService; + @Value("${informed.prefixWord}") + private String prefixWord; + + @Value("${file.reportPath}") + private String reportPath; + public int getAge(PmsPatient pmsPatient) { if (pmsPatient.getBirthYear() != null) { Calendar instance = Calendar.getInstance(); @@ -910,6 +929,25 @@ public class RmsServiceImpl implements IRmsService { return workbook; } + @Override + public String viewReportPDF(RmsDto.ReportPDF dto) { + if(StrUtil.isBlank(dto.getPatientNo())){ + throw new ServiceException("患者就诊号不能为空"); + } + //根据就诊流水号查询患者的 + RmsReport report; + RmsReportExample example = new RmsReportExample(); + example.createCriteria().andVisitNoEqualTo(dto.getPatientNo()).andDelFlagEqualTo((byte) 0); + List reports = rmsReportMapper.selectByExample(example); + if (CollectionUtil.isNotEmpty(reports)) { + report = reports.get(0); + if(ObjectUtil.isNotNull(report)){ + return report.getUrl(); + } + } + return null; + } + private void dealMMSEScored(List analyses) { analyses.forEach(analyse -> { List mmseScores = analyse.getMmseScores(); diff --git a/ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml b/ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml index 69d646f..b018cfe 100644 --- a/ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml +++ b/ruisi_java/ruisi-web-admin/src/main/resources/application-prod.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://192.168.0.128:3306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://200.1.8.141:23306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: Sxinf18aA + password: xian#2024!!! # 从库数据源 slave: # 从数据源开关/默认关闭 @@ -62,13 +62,13 @@ spring: # redis 配置 redis: # 地址 - host: localhost + host: 172.17.0.1 # 端口,默认为6379 port: 6379 # 数据库索引 database: 1 # 密码 - password: 123456 + password: "redis111^#" # 连接超时时间 timeout: 10s lettuce: @@ -113,4 +113,5 @@ informed: studySign: /data/cgav2/server/profile/studySign.png template: /data/cgav2/server/profile/知情同意模板.docx wordUrl: /data/cgav2/server/profile/informed/ - prefixWord: /data/cgav2/server/profile/ \ No newline at end of file + prefixWord: /data/cgav2/server/profile/ + diff --git a/ruisi_java/ruisi-web-admin/src/main/resources/logback.xml b/ruisi_java/ruisi-web-admin/src/main/resources/logback.xml index ced2d7d..3a7c2a0 100644 --- a/ruisi_java/ruisi-web-admin/src/main/resources/logback.xml +++ b/ruisi_java/ruisi-web-admin/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java index 5e56f15..a5eb2e4 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java @@ -9,6 +9,7 @@ import cn.hutool.core.util.StrUtil; import com.ccsens.client.service.IHmsService; import com.ccsens.client.service.ILtHisConnectionService; import com.ccsens.client.service.IPmsPatientService; +import com.ccsens.common.annotation.Anonymous; import com.ccsens.common.constant.ErrorConstant; import com.ccsens.common.core.controller.BaseController; import com.ccsens.common.core.domain.BaseDto; @@ -26,6 +27,7 @@ import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -33,8 +35,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; /** @@ -49,11 +54,24 @@ public class PmsController extends BaseController { private IPmsPatientService patientService; @Resource private IHmsService hmsService; + @Resource + private ILtHisConnectionService ltHisConnectionService; private final String hospitalConfKey = "patient_encryption"; @ApiOperation("获取患者信息列表") @PostMapping("/queryList") public JsonResponse> queryPatientList(@RequestBody @Validated BaseDto dto) { + List list = new ArrayList<>(); +// +// PmsPatientDto.QueryPatient param = dto.getParam(); +// if (StrUtil.isNotEmpty(param.getSearchValue()) && param.getSearchValue().length() == 10) { +// //关键字不为空,且长度等于10,先查询院内his信息 +// List hisList = ltHisConnectionService.queryHisPatient(param.getSearchValue()); +// if (CollUtil.isNotEmpty(hisList)) { +// list.addAll(hisList); +// } +// } + //获取用户的权限 LoginUser loginUser = SecurityUtils.getLoginUser(); //当前默认一个用户只有一个角色 @@ -67,8 +85,19 @@ public class PmsController extends BaseController { } startPageOvertop(dto); - List list = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername()); - return JsonResponse.ok(new PageInfo<>(list)); + List serverList = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername()); + if (CollUtil.isNotEmpty(serverList)) { + list.addAll(serverList); + } + + // 创建一个 TreeSet,通过 Comparator 根据 patientId 去重 + Set uniqueSet = new TreeSet<>( + Comparator.comparing(PmsPatientVo.PatientList::getPatientId) + ); + uniqueSet.addAll(list); + List uniqueList = new ArrayList<>(uniqueSet); + + return JsonResponse.ok(new PageInfo<>(uniqueList)); } @ApiOperation("通过身份证号查询患者信息,方便页面展示返回和列表一样的格式") @@ -300,17 +329,11 @@ public class PmsController extends BaseController { } - @Resource - private ILtHisConnectionService ltHisConnectionService; - @ApiOperation("流调版数据查询") - @PostMapping("/testHis") - public JsonResponse testHis(@RequestBody @Validated String cardNo) { - PmsPatientVo.PatientList patientByCardNo = ltHisConnectionService.getPatientByCardNo(cardNo); - Map patientOtherMsgByCardNo = ltHisConnectionService.getPatientOtherMsgByCardNo(cardNo); - - PmsPatientVo.PatientInfo patientInfo = new PmsPatientVo.PatientInfo(); - BeanUtil.copyProperties(patientByCardNo, patientInfo); - patientInfo.setOtherMsg(patientOtherMsgByCardNo); - return JsonResponse.ok(patientInfo); - } +// @Anonymous +// @PostMapping("/testHis") +// public JsonResponse testHis(@RequestBody @Validated String cardNo) { +// //关键字不为空,且长度等于10,先查询院内his信息 +// List hisList = ltHisConnectionService.queryHisPatient(cardNo); +// return JsonResponse.ok(hisList); +// } } diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java index 6a1b4a0..adffd3c 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/persist/dao/HisConnectionDao.java @@ -16,4 +16,7 @@ public interface HisConnectionDao { @DataSource(DataSourceType.SLAVE) List getBlxx(String cardNo); + + @DataSource(DataSourceType.SLAVE) + List getBlxxAll(); } diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java index 783226f..2921c0c 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/ILtHisConnectionService.java @@ -1,6 +1,7 @@ package com.ccsens.client.service; import com.ccsens.system.domain.vo.PmsPatientVo; +import org.apache.poi.ss.formula.functions.T; import java.util.List; import java.util.Map; @@ -13,5 +14,7 @@ public interface ILtHisConnectionService { PmsPatientVo.PatientList getPatientByCardNo(String cardNo); - Map getPatientOtherMsgByCardNo(String cardNo); + Map>> getPatientOtherMsgByCardNo(String cardNo); + + List queryHisPatient(String cardNo); } diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java index 09cc462..e9e2452 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/AmsReportServiceImpl.java @@ -14,8 +14,10 @@ import com.ccsens.client.service.AmsReportService; import com.ccsens.client.service.IReportInfoService; import com.ccsens.client.service.IRmsService; import com.ccsens.common.constant.CultureEnum; +import com.ccsens.common.constant.ErrorConstant; import com.ccsens.common.constant.JobEnum; import com.ccsens.common.enums.BaseEnum; +import com.ccsens.common.exception.base.BaseException; import com.ccsens.common.utils.AsposeUtils; import com.ccsens.common.utils.SecurityUtils; import com.ccsens.common.utils.StringUtils; @@ -61,6 +63,8 @@ public class AmsReportServiceImpl implements AmsReportService { @Resource private IRmsService rmsService; @Resource + private RmsReportMapper rmsReportMapper; + @Resource private QmsScaleMapper qmsScaleMapper; @Resource private QmsScaleTypeMapper qmsScaleTypeMapper; @@ -963,6 +967,14 @@ public class AmsReportServiceImpl implements AmsReportService { @Override public AmsReportVo.Result exportYs(RmsDto.ExportReport1Dto dto) { + RmsReport report = rmsReportMapper.selectByPrimaryKey(dto.getReportId()); + if (ObjectUtil.isNotNull(report) && StrUtil.isNotBlank(report.getUrl())) { + AmsReportVo.Result result = new AmsReportVo.Result(); + result.setPath(report.getUrl()); + return result; + } + + RmsDto.QueryDetail queryDetail = new RmsDto.QueryDetail(); queryDetail.setEvaluationId(dto.getEvaluationId()); RmsVo.ReportDetail detail = rmsService.queryReportDetail(queryDetail); @@ -1184,6 +1196,11 @@ public class AmsReportServiceImpl implements AmsReportService { AmsReportVo.Result result = new AmsReportVo.Result(); result.setWord(filePath); result.setPath(pdfPath); + //将生成的文件路径保存到报告单内 + if(ObjectUtil.isNotNull(report)){ + report.setUrl(pdfPath); + rmsReportMapper.updateByPrimaryKeySelective(report); + } return result; } diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java index 0626a81..422243e 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/IEmsServiceImpl.java @@ -76,6 +76,8 @@ public class IEmsServiceImpl implements IEmsService { @Resource private PmsPatientMapper pmsPatientMapper; @Resource + private PmsPatientBodyMapper patientBodyMapper; + @Resource private AmsPatientAnswerScoreMapper amsPatientAnswerScoreMapper; @Resource private EmsEvaluationQuestionVersionMapper emsEvaluationQuestionVersionMapper; @@ -244,6 +246,14 @@ public class IEmsServiceImpl implements IEmsService { if (ObjectUtil.isNull(patient)) { throw new BaseException(ErrorConstant.PATIENT_ERROR); } + //查找患者就诊信息(pms_patient_body) + PmsPatientBody patientBody = null; + PmsPatientBodyExample patientBodyExample = new PmsPatientBodyExample(); + patientBodyExample.createCriteria().andPatientIdEqualTo(dto.getPatientId()); + List pmsPatientBodies = patientBodyMapper.selectByExample(patientBodyExample); + if (CollectionUtil.isNotEmpty(pmsPatientBodies)) { + patientBody = pmsPatientBodies.get(0); + } //查找病人信息 // emsEvaluation.setPatientAge(IdcardUtil.getAgeByIdCard(patient.getIdcard())); emsEvaluation.setPatientAge(getAge(patient)); @@ -251,6 +261,9 @@ public class IEmsServiceImpl implements IEmsService { emsEvaluation.setVersion(dto.getVersion()); emsEvaluation.setPatientId(dto.getPatientId()); emsEvaluation.setUpdateBy(loginUser.getUsername()); + if(ObjectUtil.isNotNull(patientBody)){ + emsEvaluation.setVisitNo(patientBody.getOutpatientNo()); + } return evaluationMapper.updateByPrimaryKeySelective(emsEvaluation); } diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java index 581582c..88a14f8 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/LtHisConnectionServiceImpl.java @@ -2,6 +2,7 @@ package com.ccsens.client.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.http.HttpRequest; @@ -10,10 +11,17 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.ccsens.client.persist.dao.HisConnectionDao; +import com.ccsens.client.persist.dao.PmsPatientDao; import com.ccsens.client.service.ILtHisConnectionService; +import com.ccsens.client.service.IPmsPatientService; +import com.ccsens.common.core.domain.model.LoginUser; +import com.ccsens.common.utils.IDGenerator; +import com.ccsens.system.domain.dto.PmsPatientDto; import com.ccsens.system.domain.po.PmsPatient; +import com.ccsens.system.domain.po.PmsPatientExample; import com.ccsens.system.domain.vo.PmsPatientVo; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +32,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static com.ccsens.common.utils.SecurityUtils.getLoginUser; + /** * @author zy @@ -31,11 +41,15 @@ import java.util.Map; */ @Slf4j @Service -@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class LtHisConnectionServiceImpl implements ILtHisConnectionService { @Resource private HisConnectionDao hisConnectionDao; + @Resource + private IPmsPatientService patientService; + @Resource + private PmsPatientDao patientDao; + /** * 前端调用查询列表接口,如果有数据则直接返回 * 如果没查到数据,使用searchValue(患者院内唯一标识cardNo)去his查询 @@ -62,6 +76,72 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { private static final String URL_SUFFIX_RE_2_1_5 = "/patient-service/api/v1/patient/getFinOprRegList?inPatientNo="; + @Override + public List queryHisPatient(String cardNo) { + LoginUser loginUser = null; + try { + loginUser = getLoginUser(); + }catch (Exception e){ + } + try { + PmsPatientVo.PatientList patientByCardNo = getPatientByCardNo(cardNo); + if (ObjectUtil.isNotNull(patientByCardNo)) { + //检查当前患者信息是否在系统内已存在 + PmsPatient pmsPatient; + PmsPatientExample example = new PmsPatientExample(); + example.createCriteria().andIdcardEqualTo(patientByCardNo.getIdCardEncrypt()).andDelFlagEqualTo((byte) 0); + List pmsPatients = patientDao.selectByExample(example); + if (CollUtil.isEmpty(pmsPatients)) { + pmsPatient = new PmsPatient(); + }else { + pmsPatient = pmsPatients.get(0); + } + //查找到患者信息,先添加基本信息 + BeanUtil.copyProperties(patientByCardNo, pmsPatient); + pmsPatient.setName(patientByCardNo.getPatientName()); + pmsPatient.setIdcard(patientByCardNo.getIdCardEncrypt()); + pmsPatient.setHospitalId(ObjectUtil.isNull(loginUser) ? 176 : loginUser.getHospitalId()); + pmsPatient.setNameFull(PinyinUtil.getPinyin(pmsPatient.getName(), "")); + pmsPatient.setNameInitial(PinyinUtil.getFirstLetter(pmsPatient.getName(), "")); + pmsPatient.setPatientNumber(cardNo); + + PmsPatientVo.PatientInfo pmsPatientVo = patientService.editPatient(pmsPatient); + //保存id + patientByCardNo.setPatientId(pmsPatientVo.getId()); + //根据cardNo查询其他信息 + try { + Map>> patientOtherMsgByCardNo = getPatientOtherMsgByCardNo(cardNo); + if(CollUtil.isNotEmpty(patientOtherMsgByCardNo)){ + //不为空则添加其他信息 + patientOtherMsgByCardNo.forEach((key, valueList) -> { + if(CollUtil.isNotEmpty(valueList)){ + valueList.forEach(value -> { + com.alibaba.fastjson2.JSONObject valueJson = com.alibaba.fastjson2.JSONObject.parseObject(JSONUtil.toJsonStr(value)); + valueJson.put("patientId", patientByCardNo.getPatientId()); + PmsPatientDto.EditOtherMsg param = new PmsPatientDto.EditOtherMsg(); + param.setEditType(key); + param.setModel(valueJson); + patientService.editPatientOtherMsg(param); + }); + } + }); + } + }catch (Exception e){ + log.error("获取患者其他信息失败", e); + } + List list = new ArrayList<>(); + list.add(patientByCardNo); + return list; + }else { + return null; + } + }catch (Exception e){ + log.error("查询患者失败", e); + return null; + } + } + + @Override public PmsPatientVo.PatientList getPatientByCardNo(String cardNo) { PmsPatientVo.PatientList patientVo; @@ -78,15 +158,16 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { try { JSONObject json = JSONUtil.parseObj(body); +// String localJsonStr = FileUtil.readUtf8String("C:\\Users\\dou\\Desktop\\柳铁部署\\lthis.json"); +// JSONObject json = JSONUtil.parseObj(localJsonStr); log.info("【RP1.1.4S054】查询患者档案信息接口-返回数据: {}", json); // 获取data数组 - JSONArray dataArray = json.getJSONArray("data"); - if (CollUtil.isEmpty(dataArray)) { - log.warn("查询患者档案信息接口返回data为空或空数组"); + JSONObject data = json.getJSONObject("data"); + if (CollUtil.isEmpty(data)) { + log.warn("查询患者档案信息接口返回data为空"); return null; } // 取第一个患者信息 - JSONObject data = dataArray.getJSONObject(0); patientVo = new PmsPatientVo.PatientList(); patientVo.setPatientName(data.getStr("patientName")); String genderCode = data.getStr("genderCode"); @@ -106,29 +187,21 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { patientVo.setContactMobile(data.getStr("linkmanTel")); patientVo.setIdCardType(data.getStr("idCardType")); patientVo.setIdCard(data.getStr("idCardNumber")); + patientVo.setIdCardEncrypt(data.getStr("idCardNumber")); patientVo.setAboBloodType(data.getStr("bloodCode")); //TODO 职业和婚姻状况待定 -// patient.setMaritalStatus(data.getStr("mari")); -// patient.setCareer(data.getStr("profCode")); + patientVo.setMaritalStatus(Byte.valueOf(data.getStr("mari"))); + patientVo.setCareer(Byte.valueOf(data.getStr("profCode"))); log.info("处理后的patient信息: {}", patientVo); } catch (Exception e) { log.error("查询患者档案信息异常", e); return null; } - //根据查找到的信息,添加pms_patient数据 - PmsPatient patientInfo = new PmsPatient(); - BeanUtil.copyProperties(patientVo, patientInfo); - patientInfo.setName(patientVo.getPatientName()); - patientInfo.setNameFull(PinyinUtil.getPinyin(patientInfo.getName(), "")); - patientInfo.setNameInitial(PinyinUtil.getFirstLetter(patientInfo.getName(), "")); - patientInfo.setIdcard(patientVo.getIdCard()); - patientInfo.setPatientNumber(cardNo); - return patientVo; } @Override - public Map getPatientOtherMsgByCardNo(String cardNo) { + public Map>> getPatientOtherMsgByCardNo(String cardNo) { //1.查询所有需要的信息 Map params = new HashMap<>(); params.put("cardNo", cardNo); @@ -142,12 +215,24 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { JSONObject zyData = getApiData(zyResponse, "【RP2.1.7S063】查询住院患者入院记录"); //查视图过敏信息 - List gmxx = hisConnectionDao.getGmxx(cardNo); + List gmxx = new ArrayList<>(); + try { + gmxx = hisConnectionDao.getGmxx(cardNo); + log.info("查询视图gmxx成功:{}", gmxx); + }catch (Exception e){ + log.error("查询视图gmxx异常", e); + } //查视图病历信息 - List blxx = hisConnectionDao.getBlxx(cardNo); + List blxx = new ArrayList<>(); + try { + blxx = hisConnectionDao.getBlxx(cardNo); + log.info("查询视图blxx成功:{}", blxx); + }catch (Exception e){ + log.error("查询视图blxx异常", e); + } //构建返回信息 - Map result = new HashMap<>(); + Map>> result = new HashMap<>(); // 病史信息 - PmsPatientPersonal List> personalList = new ArrayList<>(); Map personal = new HashMap<>(); @@ -174,7 +259,9 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { } } personalList.add(personal); - result.put("pmsPatientPersonal", personalList); + if(CollUtil.isNotEmpty(personalList)){ + result.put("pmsPatientPersonal", personalList); + } //TODO "诊断用药(多个)对应数据库现病史 PmsPatientParentIllness" 暂无 @@ -226,7 +313,9 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { } } bodyList.add(bodyInfo); - result.put("pmsPatientBody", bodyList); + if(CollUtil.isNotEmpty(bodyList)){ + result.put("pmsPatientBody", bodyList); + } //TODO 暂无 tz T值 // oxygenSaturation 血氧饱和度 @@ -239,18 +328,21 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { return result; } + + private JSONObject getApiData(HttpResponse response, String errorString) { JSONObject mzData = null; if (response.isOk()) { String mzBody = response.body(); try { JSONObject json = JSONUtil.parseObj(mzBody); - JSONArray dataArray = json.getJSONArray("data"); + JSONObject dataArray = json.getJSONObject("data"); +// JSONArray dataArray = json.getJSONArray("data"); if (CollUtil.isEmpty(dataArray)) { log.warn(errorString + "接口返回data为空或空数组"); return null; } - mzData = dataArray.getJSONObject(0); + mzData = dataArray; }catch (Exception e){ log.error(errorString + "接口-请求失败: {}", response.getStatus()); } @@ -261,6 +353,7 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { } private HttpResponse getHttpResponse(String url) { + log.info("调用接口:{}", url); return HttpRequest.get(url) .header("Content-Type", "application/json;charset=utf-8") .header("Domain", "LNPG") @@ -270,6 +363,7 @@ public class LtHisConnectionServiceImpl implements ILtHisConnectionService { } private HttpResponse postHttpResponse(String url, Map params) { + log.info("调用接口:{}--参数:{}", url, params); return HttpRequest.post(url) .header("Content-Type", "application/json;charset=utf-8") .header("Domain", "LNPG") diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java index 2ae0c85..a8ef1a1 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java @@ -292,7 +292,8 @@ public class PmsPatientServiceImpl implements IPmsPatientService { } log.info("{}:{}", methodName, json); //请求参数 - Class modelClass = Class.forName("com.ccsens.system.domain.po." + type); + String className = type.substring(0, 1).toUpperCase() + type.substring(1); + Class modelClass = Class.forName("com.ccsens.system.domain.po." + className); Object model = json.toJavaObject(modelClass); //方法 Method method = bean.getClass().getMethod(methodName, modelClass); diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java index 7e0dc1b..40259fc 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java @@ -144,6 +144,7 @@ public class RmsServiceImpl implements IRmsService { emsEvaluation.setCompleteStatus(dto.getComplateStatus()); } emsEvaluationMapper.updateByPrimaryKeySelective(emsEvaluation); + report.setVisitNo(emsEvaluation.getVisitNo()); } rmsReportMapper.insertSelective(report); @@ -217,7 +218,9 @@ public class RmsServiceImpl implements IRmsService { List rmsReportScaleScores = rmsReportScaleScoreMapper.selectByExample(scoreExample); if (CollUtil.isNotEmpty(rmsReportScaleScores)) { score.setImpression(rmsReportScaleScores.get(0).getImpression()); - score.setScore(rmsReportScaleScores.get(0).getScore()); + if ("TZBS_LN".equals(score.getCode()) || "TZBS_BZ".equals(score.getCode())) { + score.setScore(rmsReportScaleScores.get(0).getScore()); + } reportScaleScoreMap.put(score.getCode(), rmsReportScaleScores.get(0)); } diff --git a/ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml b/ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml index bfc1d32..bfc63f7 100644 --- a/ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml +++ b/ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml @@ -16,9 +16,6 @@ spring: slave: # 从数据源开关/默认关闭 enabled: false - url: - username: - password: # 初始连接数 initialSize: 5 # 最小连接池数量 diff --git a/ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml b/ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml index 0ed0458..040384e 100644 --- a/ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml +++ b/ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://192.168.0.128:3306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://200.1.8.141:23306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: Sxinf18aA + password: xian#2024!!! # 从库数据源 slave: # 从数据源开关/默认关闭 @@ -63,13 +63,13 @@ spring: # redis 配置 redis: # 地址 - host: localhost + host: 172.17.0.1 # 端口,默认为6379 port: 6379 # 数据库索引 database: 1 # 密码 - password: 123456 + password: "redis111^#" # 连接超时时间 timeout: 10s lettuce: @@ -94,10 +94,7 @@ app: workerId: 1 # 分布式ID-DataCenterID dataCenterId: 1 -ht: - project: - patientUrl: http://172.16.40.155/htage2023/client/# - name: 认知功能评测云平台系统 + file: path: /data/cgav2/server/profile/ # webPath: http://172.16.40.155:59001/ruisi/client/# diff --git a/ruisi_java/ruisi-web-client/src/main/resources/logback.xml b/ruisi_java/ruisi-web-client/src/main/resources/logback.xml index ced2d7d..d6d1ef6 100644 --- a/ruisi_java/ruisi-web-client/src/main/resources/logback.xml +++ b/ruisi_java/ruisi-web-client/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml b/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml index b9cd1d1..e7bea00 100644 --- a/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml +++ b/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/HisConnectionDao.xml @@ -7,4 +7,7 @@ + \ No newline at end of file diff --git a/web_admin/adminapi/index.html b/web_admin/adminapi/index.html index b9775bf..8f9b663 100644 --- a/web_admin/adminapi/index.html +++ b/web_admin/adminapi/index.html @@ -182,4 +182,8 @@ font-size: 13px; color: #fff; opacity: 0.5; - }
正在加载系统资源,请耐心等待
\ No newline at end of file +<<<<<<< HEAD + }
正在加载系统资源,请耐心等待
+======= + }
正在加载系统资源,请耐心等待
+>>>>>>> 90b290e061347c4a39813beab98d9023e610ed46 diff --git a/web_admin/adminapi/static/css/chunk-22c4205e.28a30b08.css b/web_admin/adminapi/static/css/chunk-22c4205e.28a30b08.css new file mode 100644 index 0000000..ea14b0c --- /dev/null +++ b/web_admin/adminapi/static/css/chunk-22c4205e.28a30b08.css @@ -0,0 +1 @@ +.panel-group[data-v-0ac8ac4e]{margin-top:18px}.panel-group .card-panel-col[data-v-0ac8ac4e]{margin-bottom:32px}.panel-group .card-panel[data-v-0ac8ac4e]{height:108px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.panel-group .card-panel:hover .card-panel-icon-wrapper[data-v-0ac8ac4e]{color:#fff}.panel-group .card-panel:hover .icon-people[data-v-0ac8ac4e]{background:#40c9c6}.panel-group .card-panel:hover .icon-message[data-v-0ac8ac4e]{background:#36a3f7}.panel-group .card-panel:hover .icon-money[data-v-0ac8ac4e]{background:#f4516c}.panel-group .card-panel:hover .icon-shopping[data-v-0ac8ac4e]{background:#34bfa3}.panel-group .card-panel .icon-people[data-v-0ac8ac4e]{color:#40c9c6}.panel-group .card-panel .icon-message[data-v-0ac8ac4e]{color:#36a3f7}.panel-group .card-panel .icon-money[data-v-0ac8ac4e]{color:#f4516c}.panel-group .card-panel .icon-shopping[data-v-0ac8ac4e]{color:#34bfa3}.panel-group .card-panel .card-panel-icon-wrapper[data-v-0ac8ac4e]{float:left;margin:14px 0 0 14px;padding:16px;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px}.panel-group .card-panel .card-panel-icon[data-v-0ac8ac4e]{float:left;font-size:48px}.panel-group .card-panel .card-panel-description[data-v-0ac8ac4e]{float:right;font-weight:700;margin:26px;margin-left:0}.panel-group .card-panel .card-panel-description .card-panel-text[data-v-0ac8ac4e]{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.panel-group .card-panel .card-panel-description .card-panel-num[data-v-0ac8ac4e]{font-size:20px}@media (max-width:550px){.card-panel-description[data-v-0ac8ac4e]{display:none}.card-panel-icon-wrapper[data-v-0ac8ac4e]{float:none!important;width:100%;height:100%;margin:0!important}.card-panel-icon-wrapper .svg-icon[data-v-0ac8ac4e]{display:block;margin:14px auto!important;float:none!important}}.home[data-v-38fcef04]{font-family:open sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;color:#676a6c;overflow-x:hidden}.home blockquote[data-v-38fcef04]{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}.home hr[data-v-38fcef04]{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.home .col-item[data-v-38fcef04]{margin-bottom:20px}.home ul[data-v-38fcef04]{padding:0;margin:0;list-style-type:none}.home h4[data-v-38fcef04]{margin-top:0}.home h2[data-v-38fcef04]{margin-top:10px;font-size:26px;font-weight:100}.home p[data-v-38fcef04]{margin-top:10px}.home p b[data-v-38fcef04]{font-weight:700}.home .update-log ol[data-v-38fcef04]{display:block;list-style-type:decimal;-webkit-margin-before:1em;margin-block-start:1em;-webkit-margin-after:1em;margin-block-end:1em;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;-webkit-padding-start:40px;padding-inline-start:40px}.errPage-container[data-v-f2e02586]{width:800px;max-width:100%;margin:100px auto}.errPage-container .pan-back-btn[data-v-f2e02586]{background:#008489;color:#fff;border:none!important}.errPage-container .pan-gif[data-v-f2e02586]{margin:0 auto;display:block}.errPage-container .pan-img[data-v-f2e02586]{display:block;margin:0 auto;width:100%}.errPage-container .text-jumbo[data-v-f2e02586]{font-size:60px;font-weight:700;color:#484848}.errPage-container .list-unstyled[data-v-f2e02586]{font-size:14px}.errPage-container .list-unstyled li[data-v-f2e02586]{padding-bottom:5px}.errPage-container .list-unstyled a[data-v-f2e02586]{color:#008489;text-decoration:none}.errPage-container .list-unstyled a[data-v-f2e02586]:hover{text-decoration:underline}.wscn-http404-container[data-v-279ea4b2]{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-279ea4b2]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-279ea4b2]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-279ea4b2]{width:100%}.wscn-http404 .pic-404__child[data-v-279ea4b2]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-279ea4b2]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-279ea4b2;animation-name:cloudLeft-data-v-279ea4b2;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-279ea4b2]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-279ea4b2;animation-name:cloudMid-data-v-279ea4b2;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-279ea4b2]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-279ea4b2;animation-name:cloudRight-data-v-279ea4b2;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-279ea4b2{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-279ea4b2{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-279ea4b2{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-279ea4b2{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-279ea4b2{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-279ea4b2{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-279ea4b2]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-279ea4b2]{font-size:32px;line-height:40px;color:#1482f0;margin-bottom:20px;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-279ea4b2],.wscn-http404 .bullshit__oops[data-v-279ea4b2]{font-weight:700;opacity:0;-webkit-animation-name:slideUp-data-v-279ea4b2;animation-name:slideUp-data-v-279ea4b2;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-279ea4b2]{font-size:20px;line-height:24px;color:#222;margin-bottom:10px;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-279ea4b2]{font-size:13px;line-height:21px;color:grey;margin-bottom:30px;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-279ea4b2],.wscn-http404 .bullshit__return-home[data-v-279ea4b2]{opacity:0;-webkit-animation-name:slideUp-data-v-279ea4b2;animation-name:slideUp-data-v-279ea4b2;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-279ea4b2]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-279ea4b2{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-279ea4b2{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.div-history,.div-ul{display:-webkit-box;display:-ms-flexbox;display:flex}.div-ul{-ms-flex-wrap:wrap;flex-wrap:wrap}.div-li{width:65px;height:30px;margin:0 5px 10px 5px}.div-liimg{max-width:65px;max-height:30px}.div-delete{font-size:18px;color:#10b984!important;width:150px;height:50px;border-radius:4px 4px 4px 4px;border:1px solid #10b984!important;margin-right:16px;background:#fff!important}.div-delete:focus{background:#efefef;color:#10b984}.canvasborder{background:#efefef;border-radius:8px;width:100%}.canvaspanel{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;margin:16px 0;margin-top:0}.div-check{width:150px;height:50px;background:#10b984!important;border-radius:4px 4px 4px 4px;font-size:18px;color:#fff!important}.div-check:focus{color:#10b984}.buttongroup1{text-align:center}.autograph{margin-left:20px}.clos{width:88px}.tools-wrap[data-v-0632bf53]{z-index:99;position:absolute;left:0;top:0}.tools-wrap span[data-v-0632bf53]{font-size:10px;line-height:24px}.tools-wrap button[data-v-0632bf53]{height:30px;font-size:18px;text-align:center}[data-v-0632bf53] .ant-btn:focus{color:#42b983;background-color:#fff;border-color:#42b983}.canvas-wrap[data-v-d47b3542]{position:absolute!important;left:0;right:0;top:0;.reduce-canvas{width:500px}canvas{position:absolute;left:0;right:50%;top:0}}.canvas-wrap[data-v-79e38520]{position:absolute!important;left:0;right:0;top:0;width:100%;height:100%;canvas{position:absolute;left:0;top:10px}}.list-box-wrap[data-v-de069e10]{width:300px;height:100%;overflow-y:auto}.list-box[data-v-de069e10]{border:1px solid #e8e8e8}.list-box[data-v-de069e10] .ant-list-item-content{display:block}.list-title[data-v-de069e10] .ant-list-item-content{display:-webkit-box;display:-ms-flexbox;display:flex}.list-title[data-v-de069e10] .ant-list-item-content-single{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.list-box[data-v-de069e10] .ant-list-item{padding:8px 12px}.line[data-v-de069e10]{min-width:3px;height:5px;border-radius:2px}.blue[data-v-560b9e2a]{background:#10b984!important}.data-box[data-v-560b9e2a]{width:300px;height:100%;overflow-y:auto}.list-box[data-v-560b9e2a]{border:1px solid #e8e8e8}.list-title[data-v-560b9e2a]{background:#e8e8e8}.list-title[data-v-560b9e2a] .ant-list-item-content-single{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.list-box[data-v-560b9e2a] .ant-list-item{padding:8px 12px}.stroke-box[data-v-1d720b08]{width:320px;height:100%;overflow-y:auto}.list-box[data-v-1d720b08]{border:1px solid #e8e8e8}.wrap[data-v-1feebf13]{width:100%;min-height:200px;.line-wrap{position:relative;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}}.back-no-del[data-v-5068ea1b]{color:#2196f3;cursor:pointer}.ant-checkbox-indeterminate .ant-checkbox-inner[data-v-5068ea1b],[data-v-5068ea1b] .del .ant-checkbox-checked .ant-checkbox-inner{background-color:rgba(255,27,27,.6);border:1px solid rgba(255,27,27,.6)}.gray--text[data-v-5068ea1b]{cursor:pointer;font-size:18px;padding:0;color:#606266}.column-wrap[data-v-356ddce5]{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:100%;max-height:100%;overflow:hidden;padding:16px;-webkit-box-shadow:0 0 16px #ccc;box-shadow:0 0 16px #ccc}.content-wrap[data-v-356ddce5]{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;height:750px;overflow:scroll;scrollbar-width:none}.remark[data-v-356ddce5]{position:absolute;left:10px;bottom:10px}.remarkColor[data-v-356ddce5]{display:inline-block;width:8px;height:8px;border-radius:50%}.box[data-v-356ddce5]{width:300px;height:100%;overflow-y:scroll}.list-box[data-v-356ddce5]{border:1px solid #e8e8e8}.list-title[data-v-356ddce5]{background:#e8e8e8}.list-title[data-v-356ddce5] .ant-list-item-content-single{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.list-box[data-v-356ddce5] .ant-list-item{padding:8px 12px}.shadow[data-v-356ddce5]{height:66%;position:absolute;right:20px;z-index:199;-webkit-box-shadow:1px 1px 15px #ccc;box-shadow:1px 1px 15px #ccc}.txtUpsideDown[data-v-042ebd7e]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-table-thead>tr>th[data-v-042ebd7e],td[data-v-042ebd7e]{text-align:center!important}table tr[data-v-042ebd7e]:nth-child(odd){background:#f0f6fa}table tr[data-v-042ebd7e]:nth-child(2n){background:#fbfcfe}.table-title[data-v-042ebd7e]{background:#e7f1ff!important}.audio-box[data-v-042ebd7e]{width:220px;height:32px;overflow:hidden}audio[data-v-042ebd7e]{width:100px;height:30px}.audio-bg[data-v-042ebd7e]{background:url(../../static/img/audio.de8ffca0.png) 0 no-repeat;background-size:contain;width:100%;height:32px;line-height:32px;cursor:pointer}.audio-bg span[data-v-042ebd7e]{font-size:16px}.div-Back[data-v-042ebd7e]{font-size:18px;margin-bottom:16px;color:#1a1a1a}.div-Back span[data-v-042ebd7e]{margin-left:10px}.subtitle-1[data-v-5ac74168]{font-size:20px;line-height:32px;color:#3e3d4d}.font-weight-bold[data-v-5ac74168]{font-weight:700}.txtUpsideDown[data-v-5ac74168]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-table-thead>tr>th[data-v-5ac74168],td[data-v-5ac74168]{text-align:center!important}table tr[data-v-5ac74168]:nth-child(odd){background:#f0f6fa}table tr[data-v-5ac74168]:nth-child(2n){background:#fbfcfe}.table-title[data-v-5ac74168]{background:#e7f1ff!important}.audio-box[data-v-5ac74168]{width:220px;height:32px;overflow:hidden}audio[data-v-5ac74168]{width:100px;height:30px}.audio-bg[data-v-5ac74168]{background:url(../../static/img/audio.de8ffca0.png) 0 no-repeat;background-size:contain;width:100%;height:32px;line-height:32px;cursor:pointer}.audio-bg span[data-v-5ac74168]{font-size:16px}.div-Back[data-v-5ac74168]{font-size:18px;margin-bottom:16px;color:#1a1a1a}.div-Back span[data-v-5ac74168]{margin-left:10px}.td-back{position:relative}.td--div-back{position:absolute;top:0;bottom:0;left:0;right:0;text-align:center;background:rgba(220,238,255,.5);z-index:2}.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td{background:transparent}.ant-steps-item-process .ant-steps-item-icon{background:#10b984;border-color:#10b984}td{min-width:200px}[data-v-8030f544] .el-col-6{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:25%}[data-v-8030f544] .ant-input:focus{-webkit-box-shadow:none!important;box-shadow:none!important}[data-v-8030f544] .el-dialog__header{text-align:center}.box-right-comboInfo[data-v-8030f544]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.comboInfo-box[data-v-8030f544]{width:226px}.comboInfo-p[data-v-8030f544]{color:#3d3d3d;font-size:24px;text-align:center;margin-top:30px}.div-edit[data-v-8030f544]{width:44px;height:44px;border-radius:44px 44px 44px 44px;opacity:1;border:2px solid #10b984;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[data-v-8030f544] .ant-input[disabled]{color:rgba(0,0,0,.5)}.div-box[data-v-8030f544] .el-card{padding:16px;-webkit-box-shadow:0 2px 10px 0 rgba(39,59,97,.08)!important;box-shadow:0 2px 10px 0 rgba(39,59,97,.08)!important}.div-numbox[data-v-8030f544]{margin-top:20px}.col-tips[data-v-8030f544]{height:52px;line-height:52px;background:#f6f6f6;text-align:center;-webkit-box-shadow:inset 0 0 0 0 #eee;box-shadow:inset 0 0 0 0 #eee;border-radius:0 0 6px 6px}.col-item[data-v-8030f544]{font-size:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 10px;min-height:52px;border-right:1px solid #e1e9f1}.col-item[data-v-8030f544]:nth-of-type(4n){border:none}.bor-no[data-v-8030f544]{border:none!important}.col-header[data-v-8030f544]{color:#222;background:#e7f8f2}.col-num[data-v-8030f544]{color:#555;border-bottom:1px solid #e1e9f1}.card-header[data-v-8030f544]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:16px}.card-header-left[data-v-8030f544]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.card-header-left[data-v-8030f544],.card-header-right[data-v-8030f544]{display:-webkit-box;display:-ms-flexbox;display:flex}.box-card[data-v-8030f544]{background:#fff!important;border:none}.box-card h1[data-v-8030f544]{font-size:24px;color:#222;font-weight:700}.div-details[data-v-8030f544]{text-align:center;width:110px;height:40px;line-height:40px;border-radius:4px 4px 4px 4px;opacity:1;border:1px solid #888;margin-left:20px}.cardRig-but[data-v-8030f544]{width:90px;height:40px;line-height:40px;border-radius:4px 4px 4px 4px;opacity:1;border:1px solid #10b984;text-align:center;color:#10b984;cursor:pointer}.div-derive[data-v-8030f544]{margin-right:20px}.info-col[data-v-8030f544]{border-right:1px solid #e1e1e1}.info-col[data-v-8030f544]:last-child{border-right:none}.div-info[data-v-8030f544]{font-size:16px;color:#222;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 10px;padding-bottom:10px;font-weight:500;line-height:34px}.div-info span[data-v-8030f544]{display:inline-block;-ms-flex-negative:0;flex-shrink:0;color:#888}.div-info div[data-v-8030f544]{-webkit-box-flex:1;-ms-flex:1;flex:1}.div-info[data-v-8030f544]:last-child{padding-bottom:0}h1[data-v-8030f544],p[data-v-8030f544]{margin-bottom:0}[data-v-8030f544] .el-card__header{padding:0}.clearfix[data-v-8030f544]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.clearfix[data-v-8030f544]:after,.clearfix[data-v-8030f544]:before{display:none}.box-card-header[data-v-8030f544]{font-size:24px;font-weight:700;color:#222;line-height:50px;margin-left:10px}.box-card[data-v-8030f544]{text-align:left;background:#fff}.div-input[data-v-8030f544]{border-bottom:1px solid pink!important}.reportPatientInfo[data-v-46547dc3]{border-radius:4px;background:#fff;padding:16px}.reportPatientInfo-title[data-v-46547dc3]{font-size:20px;font-weight:700;color:#333;padding-bottom:16px;border-bottom:1px solid #eee}.reportPatientInfo-content[data-v-46547dc3]{display:-webkit-box;display:-ms-flexbox;display:flex}.content-box[data-v-46547dc3]{-webkit-box-flex:1;-ms-flex:1;flex:1;border-right:1px solid #eee;margin-top:16px}.content-row[data-v-46547dc3]{margin-bottom:12px;color:#888;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.content-value[data-v-46547dc3]{color:#1f1f1f}.div-edit[data-v-46547dc3]{width:36px;height:36px;border-radius:36px 36px 36px 36px;margin-left:16px;opacity:1;border:2px solid #10b984;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.card-header-left[data-v-46547dc3],.card-header-right[data-v-46547dc3],.div-edit[data-v-46547dc3]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.card-header-left[data-v-46547dc3],.card-header-right[data-v-46547dc3]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.scale-box1[data-v-92bf7fb4]{margin:8px;border:1px solid #ccc;border-radius:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:16px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:16px 20px 16px 16px;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc;position:relative}.scale-box1 span[data-v-92bf7fb4]{position:absolute;top:2px;right:2px;cursor:pointer}.scale-box[data-v-92bf7fb4]{width:100px;height:100px;margin:8px;border:1px solid #ccc;border-radius:16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:16px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:16px;-webkit-box-shadow:0 0 6px #ccc;box-shadow:0 0 6px #ccc;cursor:pointer}.active[data-v-92bf7fb4]{border:1px solid #1890ff;-webkit-box-shadow:0 0 6px #1890ff;box-shadow:0 0 6px #1890ff}.lighten-5[data-v-43dfe2cc]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-43dfe2cc]:last-child{border-bottom:none!important}.div-info[data-v-43dfe2cc]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-43dfe2cc],.userInfo[data-v-43dfe2cc]{display:-webkit-box;display:-ms-flexbox;display:flex}.btn[data-v-43dfe2cc]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-43dfe2cc]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-43dfe2cc]{width:100%;position:relative;height:0}.add-new[data-v-43dfe2cc]{position:absolute;right:0;top:-8px}.red--text-box[data-v-43dfe2cc]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular;line-height:24px}.w-full[data-v-43dfe2cc]{width:100%;height:46px;font-size:18px}[data-v-43dfe2cc] .ant-card-body{padding-bottom:0!important}.div-ul[data-v-43dfe2cc]{width:100%;margin-bottom:20px}.div-li[data-v-43dfe2cc],.div-ul[data-v-43dfe2cc]{display:-webkit-box;display:-ms-flexbox;display:flex}.div-li[data-v-43dfe2cc]{font-size:16px;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:20px}.div-li div[data-v-43dfe2cc]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.lighten-5[data-v-1b8ef07a]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-1b8ef07a]:last-child{border-bottom:none!important}.div-info[data-v-1b8ef07a]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-1b8ef07a],.userInfo[data-v-1b8ef07a]{display:-webkit-box;display:-ms-flexbox;display:flex}.btn[data-v-1b8ef07a]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-1b8ef07a]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-1b8ef07a]{width:100%;position:relative;height:0}.add-new[data-v-1b8ef07a]{position:absolute;right:0;top:-8px}.red--text-box[data-v-1b8ef07a]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular;line-height:24px}.w-full[data-v-1b8ef07a]{width:100%}[data-v-1b8ef07a] .ant-card-body{padding-bottom:0!important}.div-ul[data-v-1b8ef07a]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.div-li[data-v-1b8ef07a]{font-size:16px}.div-li[data-v-1b8ef07a],.div-li div[data-v-1b8ef07a]{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:20px}.div-li div[data-v-1b8ef07a]{min-width:40px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.lighten-5[data-v-433edcfc]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-433edcfc]:last-child{border-bottom:none!important}.div-info[data-v-433edcfc]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-433edcfc],.userInfo[data-v-433edcfc]{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-433edcfc] .ant-btn-success{color:#fff;background-color:#00825a;border-color:#00825a;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.btn[data-v-433edcfc]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-433edcfc]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-433edcfc]{width:100%;position:relative;height:0}.add-new[data-v-433edcfc]{position:absolute;right:0;top:-8px}.red--text-box[data-v-433edcfc]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular;line-height:24px}.w-full[data-v-433edcfc]{width:100%}[data-v-433edcfc] .ant-card-body{padding-bottom:0!important}.div-ul[data-v-433edcfc]{width:100%;font-size:16px}.div-li[data-v-433edcfc],.div-ul[data-v-433edcfc]{display:-webkit-box;display:-ms-flexbox;display:flex}.div-li[data-v-433edcfc]{width:25%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-li span[data-v-433edcfc]{line-height:32px;-ms-flex-negative:0;flex-shrink:0}.div-li div[data-v-433edcfc]{display:-webkit-box;display:-ms-flexbox;display:flex;width:90px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.lighten-5[data-v-4a0b43a6]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-4a0b43a6]:last-child{border-bottom:none!important}.div-info[data-v-4a0b43a6]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-4a0b43a6],.userInfo[data-v-4a0b43a6]{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-4a0b43a6] .ant-btn-success{color:#fff;background-color:#00825a;border-color:#00825a;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.btn[data-v-4a0b43a6]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-4a0b43a6]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-4a0b43a6]{width:100%;position:relative;height:0}.add-new[data-v-4a0b43a6]{position:absolute;right:0;top:-8px}.red--text-box[data-v-4a0b43a6]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular;line-height:24px}.w-full[data-v-4a0b43a6]{width:100%}[data-v-4a0b43a6] .ant-card-body{padding-bottom:0!important}.div-ul[data-v-4a0b43a6]{width:100%}.div-li[data-v-4a0b43a6],.div-ul[data-v-4a0b43a6]{display:-webkit-box;display:-ms-flexbox;display:flex}.div-li[data-v-4a0b43a6]{font-size:16px;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:20px}.div-li div[data-v-4a0b43a6]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.lighten-5[data-v-0992346d]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-0992346d]:last-child{border-bottom:none!important}.div-info[data-v-0992346d]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-0992346d],.userInfo[data-v-0992346d]{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-0992346d] .ant-btn-success{color:#fff;background-color:#00825a;border-color:#00825a;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.btn[data-v-0992346d]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-0992346d]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-0992346d]{width:100%;position:relative;height:0}.add-new[data-v-0992346d]{position:absolute;right:0;top:-8px}.red--text-box[data-v-0992346d]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular;line-height:24px}.w-full[data-v-0992346d]{width:100%}.lighten-5[data-v-565a8cfa]{border-bottom:1px solid #d9d9d9;padding-bottom:20px;margin-bottom:20px}.lighten-5[data-v-565a8cfa]:last-child{border-bottom:none!important}.div-title[data-v-565a8cfa]{font-size:18px;font-weight:700}.div-info[data-v-565a8cfa]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.div-info[data-v-565a8cfa],.userInfo[data-v-565a8cfa]{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-565a8cfa] .ant-btn-success{color:#fff;background-color:#00825a;border-color:#00825a;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.btn[data-v-565a8cfa]{width:120px;height:42px;font-size:16px;margin:10px 0}.box-width[data-v-565a8cfa]{min-width:84px;width:84px;text-align:right;line-height:32px}.add-new-box[data-v-565a8cfa]{width:100%;position:relative;height:0}.add-new[data-v-565a8cfa]{position:absolute;right:0;top:-8px}.red--text-box[data-v-565a8cfa]{text-align:left;margin-bottom:4px;font-size:16px;font-family:Source Han Sans CN,Source Han Sans CN-Regular}.w-full[data-v-565a8cfa]{width:100%}[data-v-565a8cfa] .ant-card-body{padding-bottom:0!important}.div-ul[data-v-565a8cfa]{width:100%}.div-li[data-v-565a8cfa],.div-ul[data-v-565a8cfa]{display:-webkit-box;display:-ms-flexbox;display:flex}.div-li[data-v-565a8cfa]{font-size:16px;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:20px}.div-li div[data-v-565a8cfa]{display:-webkit-box;display:-ms-flexbox;display:flex;min-width:40px;margin-right:16px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.title[data-v-157a293f]{font-size:16px;font-weight:700;color:#333}.box-card[data-v-157a293f]{margin:16px}.question-card-box{width:calc(100% - 76px)}.suspension{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:10px 0;width:60px;height:calc(100vh - 176px);position:fixed;top:100px;border-radius:8px;right:16px;background:#fff;border:1px solid #ccc;-webkit-box-shadow:0 0 12px rgba(0,0,0,.01);box-shadow:0 0 12px rgba(0,0,0,.01);overflow-y:auto;scrollbar-width:none}.suspension:hover{border:1px solid rgba(24,144,255,.4);-webkit-box-shadow:0 0 12px rgba(24,144,255,.1);box-shadow:0 0 12px rgba(24,144,255,.1)}.add-question{position:fixed;right:16px;width:60px;bottom:16px}.sort-box{-ms-flex-negative:0;flex-shrink:0;margin-bottom:8px;width:40px;height:40px;border-radius:50%;border:1px solid #c9c9c9;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.sort-box:hover{border:1px solid rgba(24,144,255,.6);-webkit-box-shadow:0 0 12px rgba(24,144,255,.2);box-shadow:0 0 12px rgba(24,144,255,.2)}.sort-box-active{border:1px solid rgba(24,144,255,.8);-webkit-box-shadow:0 0 12px rgba(24,144,255,.3);box-shadow:0 0 12px rgba(24,144,255,.3)}.intro-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-top:8px}.intro-sort{width:30px}.intro-ipt{-webkit-box-flex:1;-ms-flex:1;flex:1}.module{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.mt-4{margin-top:16px}.option-redio{padding:8px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:rgba(24,144,255,.11);margin-top:8px}.option-redio:hover{cursor:pointer;background:rgba(24,144,255,.25)}.redio-radio{-webkit-box-flex:1;-ms-flex:1;flex:1}[data-v-b1731604] .el-card__header{padding:14px 15px}.clearfix[data-v-b1731604]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header[data-v-4d5fd360]{background:url(../../static/img/screen_title_bg.e1346b8e.e1346b8e.png);background-size:100% 100%;height:90px;-ms-flex-negative:0;flex-shrink:0;text-align:center;line-height:80px;font-weight:700;color:#fff;font-size:40px}.big-screen-container[data-v-4d5fd360]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100vh;background:url(../../static/img/bg.c3fff7b0.png);-webkit-box-sizing:border-box;box-sizing:border-box;background-repeat:no-repeat;background-size:100% 100%}.echarts[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 16px}.echarts .echarts-left[data-v-4d5fd360],.echarts .echarts-right[data-v-4d5fd360]{min-width:450px;width:450px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-center[data-v-4d5fd360]{min-width:400px;margin:0 16px}.echarts .echarts-center[data-v-4d5fd360],.echarts .echarts-item-box[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-item-box[data-v-4d5fd360]{margin-bottom:16px;-webkit-box-shadow:#1d48c4 0 0 25px 3px inset;box-shadow:inset 0 0 25px 3px #1d48c4;color:#fff;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.echarts .echarts-item-box .section-title[data-v-4d5fd360]{padding-left:50px;background:url(../../static/img/boxbgt3-231f2652.ec94dcd1.png);line-height:40px;background-repeat:no-repeat;margin:0}.echarts .echarts-item-box .latest-evaluation[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-header[data-v-4d5fd360]{display:-webkit-box;display:-ms-flexbox;display:flex;background:#076ca8;color:#fff;font-size:16px;line-height:40px}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-header div[data-v-4d5fd360]{padding:0 10px;-webkit-box-flex:2;-ms-flex:2;flex:2}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-4d5fd360]{line-height:60px;background:transparent}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-4d5fd360]:nth-child(2n){background:#062b50}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1[data-v-4d5fd360]{margin:0 10px;border-bottom:1px solid #29b3aa}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1 div[data-v-4d5fd360]{padding:0}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1 .content-item-name span[data-v-4d5fd360]{color:#29b3aa}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-4d5fd360]:last-child{border:none}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content[data-v-4d5fd360]::-webkit-scrollbar{display:none}.echarts .echarts-item-box .item-box-BMI[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;margin:16px}.echarts .echarts-item-box .item-box-BMI .box-BMI-left[data-v-4d5fd360],.echarts .echarts-item-box .item-box-BMI .box-BMI-right[data-v-4d5fd360]{height:100%}.echarts .echarts-item-box .item-box-BMI .box-BMI-left[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:14px}.echarts .echarts-item-box .el-row[data-v-4d5fd360],.echarts .echarts-item-box .item-box-BMI .box-BMI-right[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1}.echarts .echarts-item-box .el-row .el-col-6[data-v-4d5fd360]{height:100%}.echarts .echarts-item-box .synthesize-box[data-v-4d5fd360]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 10px 5px 10px}.echarts .echarts-item-box .synthesize[data-v-4d5fd360]{-ms-flex:1;flex:1}.echarts .echarts-item-box .synthesize .synthesize-item[data-v-4d5fd360],.echarts .echarts-item-box .synthesize[data-v-4d5fd360]{-webkit-box-flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.echarts .echarts-item-box .synthesize .synthesize-item[data-v-4d5fd360]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex:1;flex:1;background:rgba(0,0,0,.2);margin:4px;height:50%}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-4d5fd360]{margin:0;font-size:16px}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-4d5fd360]:first-of-type{color:#29b3aa}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-4d5fd360]:nth-of-type(2){line-height:24px}.dashboard-editor-container[data-v-70cc8e61]{padding:32px;background-color:#f0f2f5;position:relative}.dashboard-editor-container .chart-wrapper[data-v-70cc8e61]{background:#fff;padding:16px 16px 0;margin-bottom:32px}@media (max-width:1024px){.chart-wrapper[data-v-70cc8e61]{padding:8px}}.header[data-v-de97c0fc]{background:url(../../static/img/screen_title_bg.e1346b8e.e1346b8e.png);background-size:100% 100%;height:90px;-ms-flex-negative:0;flex-shrink:0;text-align:center;line-height:80px;font-weight:700;color:#fff;font-size:40px}.big-screen-container[data-v-de97c0fc]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100vh;background:url(../../static/img/bg.c3fff7b0.png);-webkit-box-sizing:border-box;box-sizing:border-box;background-repeat:no-repeat;background-size:100% 100%}.echarts[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 16px}.echarts .echarts-left[data-v-de97c0fc],.echarts .echarts-right[data-v-de97c0fc]{min-width:450px;width:450px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-center[data-v-de97c0fc]{min-width:400px;margin:0 16px}.echarts .echarts-center[data-v-de97c0fc],.echarts .echarts-item-box[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-item-box[data-v-de97c0fc]{margin-bottom:16px;-webkit-box-shadow:#1d48c4 0 0 25px 3px inset;box-shadow:inset 0 0 25px 3px #1d48c4;color:#fff;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.echarts .echarts-item-box .section-title[data-v-de97c0fc]{padding-left:50px;background:url(../../static/img/boxbgt3-231f2652.ec94dcd1.png);line-height:40px;background-repeat:no-repeat;margin:0}.echarts .echarts-item-box .latest-evaluation[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-header[data-v-de97c0fc]{display:-webkit-box;display:-ms-flexbox;display:flex;background:#076ca8;color:#fff;font-size:16px;line-height:40px}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-header div[data-v-de97c0fc]{padding:0 10px;-webkit-box-flex:2;-ms-flex:2;flex:2}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-de97c0fc]{line-height:60px;background:transparent}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-de97c0fc]:nth-child(2n){background:#062b50}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1[data-v-de97c0fc]{margin:0 10px;border-bottom:1px solid #29b3aa}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1 div[data-v-de97c0fc]{padding:0}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item1 .content-item-name span[data-v-de97c0fc]{color:#29b3aa}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content .evaluation-content-item[data-v-de97c0fc]:last-child{border:none}.echarts .echarts-item-box .latest-evaluation .latest-evaluation-content[data-v-de97c0fc]::-webkit-scrollbar{display:none}.echarts .echarts-item-box .item-box-BMI[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;margin:16px}.echarts .echarts-item-box .item-box-BMI .box-BMI-left[data-v-de97c0fc],.echarts .echarts-item-box .item-box-BMI .box-BMI-right[data-v-de97c0fc]{height:100%}.echarts .echarts-item-box .item-box-BMI .box-BMI-left[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:14px}.echarts .echarts-item-box .el-row[data-v-de97c0fc],.echarts .echarts-item-box .item-box-BMI .box-BMI-right[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1}.echarts .echarts-item-box .el-row .el-col-6[data-v-de97c0fc]{height:100%}.echarts .echarts-item-box .synthesize-box[data-v-de97c0fc]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 10px 5px 10px}.echarts .echarts-item-box .synthesize[data-v-de97c0fc]{-ms-flex:1;flex:1}.echarts .echarts-item-box .synthesize .synthesize-item[data-v-de97c0fc],.echarts .echarts-item-box .synthesize[data-v-de97c0fc]{-webkit-box-flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.echarts .echarts-item-box .synthesize .synthesize-item[data-v-de97c0fc]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex:1;flex:1;background:rgba(0,0,0,.2);margin:4px;height:50%}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-de97c0fc]{margin:0;font-size:16px}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-de97c0fc]:first-of-type{color:#29b3aa}.echarts .echarts-item-box .synthesize .synthesize-item p[data-v-de97c0fc]:nth-of-type(2){line-height:24px}.login{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;background-image:url(../../static/img/login-background.f9f49138.jpg);background-size:cover}.login-form{border-radius:6px;background:#fff;width:400px;padding:25px 25px 5px 25px}.login-form .el-input,.login-form .el-input input{height:38px}.login-form .input-icon{height:39px;width:14px;margin-left:2px}.login-tip{font-size:13px;text-align:center;color:#bfbfbf}.login-code{width:33%;height:38px;float:right}.login-code img{cursor:pointer;vertical-align:middle}.el-login-footer{height:40px;line-height:40px;position:fixed;bottom:0;width:100%;text-align:center;color:#fff;font-family:Arial;font-size:12px;letter-spacing:1px}.login-code-img{height:38px}.pop_btn[data-v-e1e29174]{text-align:center;margin-top:20px}.popup-main[data-v-e1e29174]{position:relative;margin:10px auto;background:#fff;border-radius:5px;font-size:12px;overflow:hidden}.popup-title[data-v-e1e29174]{overflow:hidden;line-height:34px;padding-top:6px;background:#f2f2f2}.popup-result[data-v-e1e29174]{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:24px;margin:25px auto;padding:15px 10px 10px;border:1px solid #ccc;position:relative}.popup-result .title[data-v-e1e29174]{position:absolute;top:-28px;left:50%;width:140px;font-size:14px;margin-left:-70px;text-align:center;line-height:30px;background:#fff}.popup-result table[data-v-e1e29174]{text-align:center;width:100%;margin:0 auto}.popup-result table span[data-v-e1e29174]{display:block;width:100%;font-family:arial;line-height:30px;height:30px;white-space:nowrap;overflow:hidden;border:1px solid #e8e8e8}.popup-result-scroll[data-v-e1e29174]{font-size:12px;line-height:24px;height:10em;overflow-y:auto}.big-screen-container[data-v-d9b10a76]{width:100vw;height:100vh;background:#0c1e3e;color:#fff;padding:20px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.big-screen-container .screen-header[data-v-d9b10a76]{text-align:center;margin-bottom:20px}.big-screen-container .screen-header .screen-title[data-v-d9b10a76]{font-size:28px;font-weight:700;color:#1890ff;margin:0;text-shadow:0 0 10px rgba(24,144,255,.5)}.big-screen-container .screen-content[data-v-d9b10a76]{display:-webkit-box;display:-ms-flexbox;display:flex;height:calc(100% - 300px);gap:20px;margin-bottom:20px}.big-screen-container .screen-content .left-panel[data-v-d9b10a76],.big-screen-container .screen-content .right-panel[data-v-d9b10a76]{width:25%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px}.big-screen-container .screen-content .left-panel .section-title[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .section-title[data-v-d9b10a76]{font-size:18px;font-weight:700;color:#1890ff;margin:0 0 10px 0;text-align:center}.big-screen-container .screen-content .left-panel .data-overview[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .data-overview[data-v-d9b10a76]{background:rgba(14,30,66,.8);border-radius:8px;padding:15px;backdrop-filter:blur(10px);border:1px solid rgba(24,144,255,.3)}.big-screen-container .screen-content .left-panel .data-overview .data-cards[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .data-overview .data-cards[data-v-d9b10a76]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.big-screen-container .screen-content .left-panel .data-overview .data-cards .data-card[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .data-overview .data-cards .data-card[data-v-d9b10a76]{background:rgba(24,144,255,.1);border-radius:6px;padding:10px;text-align:center;border:1px solid rgba(24,144,255,.2)}.big-screen-container .screen-content .left-panel .data-overview .data-cards .data-card .data-value[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .data-overview .data-cards .data-card .data-value[data-v-d9b10a76]{font-size:20px;font-weight:700;color:#1890ff;margin-bottom:5px}.big-screen-container .screen-content .left-panel .data-overview .data-cards .data-card .data-label[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .data-overview .data-cards .data-card .data-label[data-v-d9b10a76]{font-size:12px;color:#ccc}.big-screen-container .screen-content .left-panel .charts-section[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .charts-section[data-v-d9b10a76]{background:rgba(14,30,66,.8);border-radius:8px;padding:15px;backdrop-filter:blur(10px);border:1px solid rgba(24,144,255,.3)}.big-screen-container .screen-content .left-panel .charts-section .charts-row[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .charts-section .charts-row[data-v-d9b10a76]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px}.big-screen-container .screen-content .left-panel .charts-section .charts-row .chart-container[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .charts-section .charts-row .chart-container[data-v-d9b10a76]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.big-screen-container .screen-content .left-panel .charts-section .charts-row .chart-container .chart[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .charts-section .charts-row .chart-container .chart[data-v-d9b10a76]{margin-bottom:10px}.big-screen-container .screen-content .left-panel .charts-section .charts-row .chart-container .chart-label[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .charts-section .charts-row .chart-container .chart-label[data-v-d9b10a76]{font-size:12px;color:#ccc;text-align:center}.big-screen-container .screen-content .left-panel .assessment-section[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section[data-v-d9b10a76]{background:rgba(14,30,66,.8);border-radius:8px;padding:15px;backdrop-filter:blur(10px);border:1px solid rgba(24,144,255,.3)}.big-screen-container .screen-content .left-panel .assessment-section .assessment-table .table-header[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section .assessment-table .table-header[data-v-d9b10a76]{display:-webkit-box;display:-ms-flexbox;display:flex;background:rgba(24,144,255,.2);border-radius:4px;padding:8px 5px;margin-bottom:5px}.big-screen-container .screen-content .left-panel .assessment-section .assessment-table .table-header .table-cell[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section .assessment-table .table-header .table-cell[data-v-d9b10a76]{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;font-weight:700;text-align:center}.big-screen-container .screen-content .left-panel .assessment-section .assessment-table .table-body[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section .assessment-table .table-body[data-v-d9b10a76]{max-height:160px;overflow-y:auto}.big-screen-container .screen-content .left-panel .assessment-section .assessment-table .table-body .table-row[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section .assessment-table .table-body .table-row[data-v-d9b10a76]{display:-webkit-box;display:-ms-flexbox;display:flex;background:rgba(24,144,255,.1);border-radius:4px;padding:6px 5px;margin-bottom:3px}.big-screen-container .screen-content .left-panel .assessment-section .assessment-table .table-body .table-row .table-cell[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .assessment-section .assessment-table .table-body .table-row .table-cell[data-v-d9b10a76]{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:11px;text-align:center;color:#ccc}.big-screen-container .screen-content .left-panel .disease-ranking[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .disease-ranking[data-v-d9b10a76]{background:rgba(14,30,66,.8);border-radius:8px;padding:15px;backdrop-filter:blur(10px);border:1px solid rgba(24,144,255,.3)}.big-screen-container .screen-content .left-panel .disease-ranking .ranking-list .ranking-item[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .disease-ranking .ranking-list .ranking-item[data-v-d9b10a76]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 0;border-bottom:1px solid rgba(24,144,255,.2)}.big-screen-container .screen-content .left-panel .disease-ranking .ranking-list .ranking-item[data-v-d9b10a76]:last-child,.big-screen-container .screen-content .right-panel .disease-ranking .ranking-list .ranking-item[data-v-d9b10a76]:last-child{border-bottom:none}.big-screen-container .screen-content .left-panel .disease-ranking .ranking-list .ranking-item .ranking-number[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .disease-ranking .ranking-list .ranking-item .ranking-number[data-v-d9b10a76]{width:20px;height:20px;background:#1890ff;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:12px;font-weight:700;margin-right:10px}.big-screen-container .screen-content .left-panel .disease-ranking .ranking-list .ranking-item .ranking-name[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .disease-ranking .ranking-list .ranking-item .ranking-name[data-v-d9b10a76]{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:14px}.big-screen-container .screen-content .left-panel .disease-ranking .ranking-list .ranking-item .ranking-count[data-v-d9b10a76],.big-screen-container .screen-content .right-panel .disease-ranking .ranking-list .ranking-item .ranking-count[data-v-d9b10a76]{font-size:14px;color:#1890ff;font-weight:700}.big-screen-container .screen-content .center-panel[data-v-d9b10a76]{-webkit-box-flex:1;-ms-flex:1;flex:1}.big-screen-container .bottom-panel[data-v-d9b10a76],.big-screen-container .screen-content .center-panel[data-v-d9b10a76]{background:rgba(14,30,66,.8);border-radius:8px;padding:15px;backdrop-filter:blur(10px);border:1px solid rgba(24,144,255,.3)}.big-screen-container .bottom-panel[data-v-d9b10a76]{height:220px}.big-screen-container .bottom-panel .section-title[data-v-d9b10a76]{font-size:18px;font-weight:700;color:#1890ff;margin:0 0 10px 0;text-align:center}.big-screen-container[data-v-d9b10a76] ::-webkit-scrollbar{width:6px;height:6px}.big-screen-container[data-v-d9b10a76] ::-webkit-scrollbar-track{background:rgba(24,144,255,.1);border-radius:3px}.big-screen-container[data-v-d9b10a76] ::-webkit-scrollbar-thumb{background:rgba(24,144,255,.5);border-radius:3px}.big-screen-container[data-v-d9b10a76] ::-webkit-scrollbar-thumb:hover{background:rgba(24,144,255,.7)}.register{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;background-image:url(../../static/img/login-background.f9f49138.jpg);background-size:cover}.title{margin:0 auto 30px auto;text-align:center;color:#707070}.register-form{border-radius:6px;background:#fff;width:400px;padding:25px 25px 5px 25px}.register-form .el-input,.register-form .el-input input{height:38px}.register-form .input-icon{height:39px;width:14px;margin-left:2px}.register-tip{font-size:13px;text-align:center;color:#bfbfbf}.register-code{width:33%;height:38px;float:right}.register-code img{cursor:pointer;vertical-align:middle}.el-register-footer{height:40px;line-height:40px;position:fixed;bottom:0;width:100%;text-align:center;color:#fff;font-family:Arial;font-size:12px;letter-spacing:1px}.register-code-img{height:38px}[data-v-61d9b5e2] .u-modal__content{text-align:center}.popup-close[data-v-61d9b5e2]{position:fixed;right:20px;top:20px;z-index:9999}.popup-close[data-v-61d9b5e2] .uni-icons{font-size:40px!important;color:#fff!important}.div-gb[data-v-61d9b5e2]{max-width:100px;margin-left:16px}.div-pdf[data-v-61d9b5e2]{max-width:100%}.tools[data-v-61d9b5e2]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;bottom:26px;left:16px;right:16px}.tools uni-button[data-v-61d9b5e2]{font-size:18px;line-height:44px;height:44px;-webkit-box-flex:1;-ms-flex:1;flex:1}.tools .page[data-v-61d9b5e2]{line-height:44px;height:44px;width:100px;text-align:center}.pathsName[data-v-61d9b5e2]{color:#fff;font-size:12px}.pdfBox .el-button[data-v-61d9b5e2]{background:hsla(0,0%,100%,0);border:none}.pdfBox>.el-icon-arrow-left[data-v-61d9b5e2],.pdfBox>.el-icon-arrow-right[data-v-61d9b5e2]{font-size:18px;color:#000}.pdfBox .page[data-v-61d9b5e2]{margin:0 10px}.pdfBox .el-button-group[data-v-61d9b5e2]{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:20px}.pdfBox[data-v-61d9b5e2]{padding-bottom:20px;margin-top:20px;background:#fff;min-height:300px}.contLeft-pane>.el-form-item__label[data-v-61d9b5e2]{text-align:right;margin-right:10px!important;padding:0!important}.contLeft-pane>.el-form-item--medium .el-form-item__content[data-v-61d9b5e2]{-webkit-box-flex:1;-ms-flex:1;flex:1}.li-item uni-div[data-v-61d9b5e2]{font-size:20px;line-height:40px}.li-item uni-div span[data-v-61d9b5e2]{font-size:20px}.li-item .li-title[data-v-61d9b5e2]{font-size:20px;font-weight:700;line-height:30px}.div-box[data-v-61d9b5e2]{margin-top:50px}.div-none[data-v-61d9b5e2]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:40px!important}.div-ul[data-v-61d9b5e2]{text-align:left;margin-bottom:16px}.div-ul .div-li span[data-v-61d9b5e2]{font-size:20px;line-height:40px}.div-title[data-v-61d9b5e2]{display:inline-block;border:1px solid #000;padding:0 14px;margin-bottom:30px;line-height:50px;border-radius:6px;font-size:20px;font-weight:700}.box[data-v-61d9b5e2]{width:50vw;height:90vh;background-size:cover;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.box .box-cent[data-v-61d9b5e2]{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}.box .box-cent1[data-v-61d9b5e2]{position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:scroll}.zw[data-v-7de31af6]{font-size:100px;color:#b0b0b0}.container[data-v-7de31af6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100vh;padding:16px;background:url(../../static/img/back.a5029593.png);background-size:cover;background-repeat:no-repeat}.wj-uploader .el-icon-upload:before{font-size:100px}.wj-uploader .el-upload{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.wj-uploader .el-upload__text{line-height:20px;width:100%!important}.avatar-uploader{height:180px}.avatar-uploader .el-upload{border:1px dashed #d9d9d9!important;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;width:100%!important;height:180px!important;line-height:150px}.el-upload,.el-upload-dragger{width:100%!important}.el-upload-list__item{-webkit-transition:none!important;transition:none!important}.el-upload-list__item:first-child{margin-top:0}.icon-body[data-v-480c2f7f]{width:100%;padding:10px}.icon-body .icon-search[data-v-480c2f7f]{position:relative;margin-bottom:5px}.icon-body .icon-list[data-v-480c2f7f]{height:200px;overflow:auto}.icon-body .icon-list .list-container[data-v-480c2f7f]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.icon-body .icon-list .list-container .icon-item-wrapper[data-v-480c2f7f]{width:33.33333%;height:25px;line-height:25px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.icon-body .icon-list .list-container .icon-item-wrapper .icon-item[data-v-480c2f7f]{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%;height:100%;padding:0 5px}.icon-body .icon-list .list-container .icon-item-wrapper .icon-item[data-v-480c2f7f]:hover{background:#ececec;border-radius:5px}.icon-body .icon-list .list-container .icon-item-wrapper .icon-item .icon[data-v-480c2f7f]{-ms-flex-negative:0;flex-shrink:0}.icon-body .icon-list .list-container .icon-item-wrapper .icon-item span[data-v-480c2f7f]{display:inline-block;vertical-align:-.15em;fill:currentColor;padding-left:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-body .icon-list .list-container .icon-item-wrapper .icon-item.active[data-v-480c2f7f]{background:#ececec;border-radius:5px}.user-info-head[data-v-07624ce5]{position:relative;display:inline-block;height:120px}.user-info-head[data-v-07624ce5]:hover:after{content:"+";position:absolute;left:0;right:0;top:0;bottom:0;color:#eee;background:rgba(0,0,0,.5);font-size:24px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer;line-height:110px;border-radius:50%}.icon-ul[data-v-2fa68d6e]{margin:0;padding:0;font-size:0}.icon-ul li[data-v-2fa68d6e]{list-style-type:none;text-align:center;font-size:14px;display:inline-block;width:16.66%;-webkit-box-sizing:border-box;box-sizing:border-box;height:108px;padding:15px 6px 6px 6px;cursor:pointer;overflow:hidden}.icon-ul li[data-v-2fa68d6e]:hover{background:#f2f2f2}.icon-ul li.active-item[data-v-2fa68d6e]{background:#e1f3fb;color:#7a6df0}.icon-ul li>i[data-v-2fa68d6e]{font-size:30px;line-height:50px}.icon-dialog[data-v-2fa68d6e] .el-dialog{border-radius:8px;margin-bottom:0;margin-top:4vh!important;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:92vh;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.icon-dialog[data-v-2fa68d6e] .el-dialog .el-dialog__header{padding-top:14px}.icon-dialog[data-v-2fa68d6e] .el-dialog .el-dialog__body{margin:0 20px 20px 20px;padding:0;overflow:auto}.right-board[data-v-78f2d993]{width:350px;position:absolute;right:0;top:0;padding-top:3px}.right-board .field-box[data-v-78f2d993]{position:relative;height:calc(100vh - 42px);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.right-board .el-scrollbar[data-v-78f2d993]{height:100%}.select-item[data-v-78f2d993]{display:-webkit-box;display:-ms-flexbox;display:flex;border:1px dashed #fff;-webkit-box-sizing:border-box;box-sizing:border-box}.select-item .close-btn[data-v-78f2d993]{cursor:pointer;color:#f56c6c}.select-item .el-input+.el-input[data-v-78f2d993]{margin-left:4px}.select-item+.select-item[data-v-78f2d993]{margin-top:4px}.select-item.sortable-chosen[data-v-78f2d993]{border:1px dashed #409eff}.select-line-icon[data-v-78f2d993]{line-height:32px;font-size:22px;padding:0 4px;color:#777}.option-drag[data-v-78f2d993]{cursor:move}.time-range .el-date-editor[data-v-78f2d993]{width:227px}.time-range[data-v-78f2d993] .el-icon-time{display:none}.document-link[data-v-78f2d993]{position:absolute;display:block;width:26px;height:26px;top:0;left:0;cursor:pointer;background:#409eff;z-index:1;border-radius:0 0 6px 0;text-align:center;line-height:26px;color:#fff;font-size:18px}.node-label[data-v-78f2d993]{font-size:14px}.node-icon[data-v-78f2d993]{color:#bebfc3}.editor-tabs{background:#121315}.editor-tabs .el-tabs__header{margin:0;border-bottom-color:#121315}.editor-tabs .el-tabs__header .el-tabs__nav{border-color:#121315}.editor-tabs .el-tabs__item{height:32px;line-height:32px;color:#888a8e;border-left:1px solid #121315!important;background:#363636;margin-right:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.editor-tabs .el-tabs__item.is-active{background:#1e1e1e;border-bottom-color:#1e1e1e!important;color:#fff}.editor-tabs .el-icon-edit{color:#f1fa8c}.editor-tabs .el-icon-document{color:#a95812}.right-scrollbar .el-scrollbar__view{padding:12px 18px 15px 15px}.left-scrollbar .el-scrollbar__wrap{-webkit-box-sizing:border-box;box-sizing:border-box;overflow-x:hidden!important;margin-bottom:0!important}.center-tabs .el-tabs__header{margin-bottom:0!important}.center-tabs .el-tabs__item{width:50%;text-align:center}.center-tabs .el-tabs__nav{width:100%}.reg-item{padding:12px 6px;background:#f8f8f8;position:relative;border-radius:4px}.reg-item .close-btn{position:absolute;right:-6px;top:-6px;display:block;width:16px;height:16px;line-height:16px;background:rgba(0,0,0,.2);border-radius:50%;color:#fff;text-align:center;z-index:1;cursor:pointer;font-size:12px}.reg-item .close-btn:hover{background:rgba(210,23,23,.5)}.reg-item+.reg-item{margin-top:18px}.action-bar .el-button+.el-button{margin-left:15px}.action-bar i{font-size:20px;vertical-align:middle;position:relative;top:-1px}.custom-tree-node{width:100%;font-size:14px}.custom-tree-node .node-operation{float:right}.custom-tree-node i[class*=el-icon]+i[class*=el-icon]{margin-left:6px}.custom-tree-node .el-icon-plus{color:#409eff}.custom-tree-node .el-icon-delete{color:#157a0c}.left-scrollbar .el-scrollbar__view{overflow-x:hidden}.el-rate{display:inline-block;vertical-align:text-top}.el-upload__tip{line-height:1.2}.container{position:relative;width:100%;height:100%}.components-list{padding:8px;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%}.components-list .components-item{display:inline-block;width:48%;margin:1%;-webkit-transition:-webkit-transform 0ms!important;transition:-webkit-transform 0ms!important;transition:transform 0ms!important;transition:transform 0ms,-webkit-transform 0ms!important}.components-draggable{padding-bottom:20px}.components-title{font-size:14px;color:#222;margin:6px 2px}.components-title .svg-icon{color:#666;font-size:18px}.components-body{padding:8px 10px;background:#f6f7ff;font-size:12px;cursor:move;border:1px dashed #f6f7ff;border-radius:3px}.components-body .svg-icon{color:#777;font-size:15px}.components-body:hover{border:1px dashed #787be8;color:#787be8}.components-body:hover .svg-icon{color:#787be8}.left-board{width:260px;position:absolute;left:0;top:0;height:100vh}.center-scrollbar,.left-scrollbar{height:calc(100vh - 42px);overflow:hidden}.center-scrollbar{border-left:1px solid #f1e8e8;border-right:1px solid #f1e8e8}.center-board,.center-scrollbar{-webkit-box-sizing:border-box;box-sizing:border-box}.center-board{height:100vh;width:auto;margin:0 350px 0 260px}.empty-info{position:absolute;top:46%;left:0;right:0;text-align:center;font-size:18px;color:#ccb1ea;letter-spacing:4px}.action-bar{position:relative;height:42px;text-align:right;padding:0 15px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #f1e8e8;border-top:none;border-left:none}.action-bar .delete-btn{color:#f56c6c}.logo-wrapper{position:relative;height:42px;background:#fff;border-bottom:1px solid #f1e8e8;-webkit-box-sizing:border-box;box-sizing:border-box}.logo{position:absolute;left:12px;top:6px;line-height:30px;color:#00afff;font-weight:600;font-size:17px;white-space:nowrap}.logo>img{width:30px;height:30px;vertical-align:top}.logo .github{display:inline-block;vertical-align:sub;margin-left:15px}.logo .github>img{height:22px}.center-board-row{padding:12px 12px 15px 12px;-webkit-box-sizing:border-box;box-sizing:border-box}.center-board-row>.el-form{height:calc(100vh - 69px)}.drawing-board{height:100%;position:relative}.drawing-board .components-body{padding:0;margin:0;font-size:0}.drawing-board .sortable-ghost{position:relative;display:block;overflow:hidden}.drawing-board .sortable-ghost:before{content:" ";position:absolute;left:0;right:0;top:0;height:3px;background:#5959df;z-index:2}.drawing-board .components-item.sortable-ghost{width:100%;height:60px;background-color:#f6f7ff}.drawing-board .active-from-item>.el-form-item{background:#f6f7ff;border-radius:6px}.drawing-board .active-from-item>.drawing-item-copy,.drawing-board .active-from-item>.drawing-item-delete{display:initial}.drawing-board .active-from-item>.component-name{color:#409eff}.drawing-board .el-form-item{margin-bottom:15px}.drawing-item{position:relative;cursor:move}.drawing-item.unfocus-bordered:not(.activeFromItem)>div:first-child{border:1px dashed #ccc}.drawing-item .el-form-item{padding:12px 10px}.drawing-row-item{position:relative;cursor:move;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px dashed #ccc;border-radius:3px;padding:0 2px;margin-bottom:15px}.drawing-row-item .drawing-row-item{margin-bottom:2px}.drawing-row-item .el-col{margin-top:22px}.drawing-row-item .el-form-item{margin-bottom:0}.drawing-row-item .drag-wrapper{min-height:80px}.drawing-row-item.active-from-item{border:1px dashed #409eff}.drawing-row-item .component-name{position:absolute;top:0;left:0;font-size:12px;color:#bbb;display:inline-block;padding:0 6px}.drawing-item:hover>.el-form-item,.drawing-row-item:hover>.el-form-item{background:#f6f7ff;border-radius:6px}.drawing-item:hover>.drawing-item-copy,.drawing-item:hover>.drawing-item-delete,.drawing-row-item:hover>.drawing-item-copy,.drawing-row-item:hover>.drawing-item-delete{display:initial}.drawing-item>.drawing-item-copy,.drawing-item>.drawing-item-delete,.drawing-row-item>.drawing-item-copy,.drawing-row-item>.drawing-item-delete{display:none;position:absolute;top:-10px;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:12px;border:1px solid;cursor:pointer;z-index:1}.drawing-item>.drawing-item-copy,.drawing-row-item>.drawing-item-copy{right:56px;border-color:#409eff;color:#409eff;background:#fff}.drawing-item>.drawing-item-copy:hover,.drawing-row-item>.drawing-item-copy:hover{background:#409eff;color:#fff}.drawing-item>.drawing-item-delete,.drawing-row-item>.drawing-item-delete{right:24px;border-color:#f56c6c;color:#f56c6c;background:#fff}.drawing-item>.drawing-item-delete:hover,.drawing-row-item>.drawing-item-delete:hover{background:#f56c6c;color:#fff}.hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto}.hljs-comment,.hljs-meta{color:#969896}.hljs-emphasis,.hljs-quote,.hljs-strong,.hljs-template-variable,.hljs-variable{color:#df5000}.hljs-keyword,.hljs-selector-tag,.hljs-type{color:#d73a49}.hljs-attribute,.hljs-bullet,.hljs-literal,.hljs-symbol{color:#0086b3}.hljs-name,.hljs-section{color:#63a35c}.hljs-tag{color:#333}.hljs-attr,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-title{color:#6f42c1}.hljs-addition{color:#55a532;background-color:#eaffea}.hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-link{text-decoration:underline}.hljs-number{color:#005cc5}.hljs-string{color:#032f62} \ No newline at end of file