Browse Source

Merge branch 'youhua'

newMaster
zzc 3 months ago
parent
commit
7b8305ed07
  1. 4
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java
  2. 2
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/WxQrCodeController.java
  3. 96
      acupuncture-admin/src/main/resources/TreamtmentPgTemplate.docx
  4. 2
      acupuncture-system/pom.xml
  5. 4
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/WxQrCodeDao.java
  6. 67
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java
  7. 173
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java
  8. 2
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/WxQrCodeServiceImpl.java
  9. 4
      acupuncture-system/src/main/resources/mapper/dao/ScreeningDetailDao.xml
  10. 9
      acupuncture-system/src/main/resources/mapper/dao/SysPowerDao.xml
  11. 5
      acupuncture-system/src/main/resources/mapper/dao/WxQrCodeDao.xml
  12. 2
      acupuncture-前台/.env.development
  13. 2
      acupuncture-前台/.env.production
  14. 2
      acupuncture-前台/.env.staging
  15. 5
      acupuncture-前台/README.md
  16. BIN
      acupuncture-前台/dist.zip
  17. 2
      acupuncture-前台/package.json
  18. 2
      acupuncture-前台/src/layout/components/Navbar.vue
  19. 4
      acupuncture-前台/src/views/login.vue
  20. 8
      acupuncture-前台/src/views/patientFile/index.vue
  21. 2
      acupuncture-前台/src/views/register.vue
  22. 428
      acupuncture-前台/src/views/screening/h5.vue
  23. 67
      acupuncture-前台/src/views/screening/index.vue
  24. 2
      acupuncture-前台/vue.config.js
  25. BIN
      acupuncture-前台/针灸前台3.zip
  26. 6
      acupuncture-后台/.env.development
  27. 11
      acupuncture-后台/.env.production
  28. 22
      acupuncture-后台/.env.staging
  29. 2
      acupuncture-后台/package.json
  30. 2
      acupuncture-后台/src/views/login.vue
  31. 2
      acupuncture-后台/src/views/medicalFile/details.vue
  32. 7
      acupuncture-后台/src/views/medicalFile/index.vue
  33. 2
      acupuncture-后台/src/views/member/account.vue
  34. 4
      acupuncture-后台/src/views/patientFile/index.vue
  35. 2
      acupuncture-后台/src/views/register.vue
  36. 67
      acupuncture-后台/src/views/screening/index.vue
  37. 6
      acupuncture-后台/src/views/screening/qrCode.vue
  38. 8
      acupuncture-后台/vue.config.js
  39. BIN
      acupuncture-后台/针灸-后台1.zip
  40. 2
      pom.xml

4
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java

@ -25,13 +25,9 @@ import com.acupuncture.system.domain.vo.UmsDataSourceVo;
import com.acupuncture.system.domain.vo.UplRtcfInfoVo;
import com.acupuncture.system.persist.dao.UmsDataSourceDao;
import com.acupuncture.system.service.ExternalService;
import com.mysql.cj.xdevapi.JsonArray;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jdk.nashorn.internal.runtime.logging.Logger;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.apache.regexp.RE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

2
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/WxQrCodeController.java

@ -72,7 +72,7 @@ public class WxQrCodeController {
if (dto.getPageNum() > 0) {
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
}
return JsonResponse.ok(new PageInfo<>(wxQrCodeService.queryList(dto.getParam().getTenantId())));
return JsonResponse.ok(new PageInfo<>(wxQrCodeService.adminQueryList(dto.getParam().getTenantId())));
}
@ApiOperation(value = "查询客户端筛查二维码")

96
acupuncture-admin/src/main/resources/TreamtmentPgTemplate.docx

@ -0,0 +1,96 @@
--------------------------------------------------------------------------------
{{h_name}}评估报告
基本信息
姓名:{{name}}
性别:{{sex}}
年龄:{{age}}
编号:{{visitNum}}
责任医生:{{doctor}}
检查日期:{{visitTime}}
主要诊断
{{Clinical_diagnosis}}
病情评估
--------------------------------------------------------------------------------
{{?rtcf_flag}}
人体成分分析结果
体型类型:{{PG_RTCF_TXLX}}
身体年龄:{{PG_RTCF_STNL}}
健康评分:{{PG_RTCF_JKPF}}
体重:{{PG_RTCF_TZ}}
去脂体重:{{PG_RTCF_QZTZ}}
肌肉:{{PG_RTCF_JRL}}
水分:{{PG_RTCF_TBW}}
蛋白质:{{PG_RTCF_DBZ}}
骨质:{{PG_RTCF_GZ}}
骨骼肌:{{PG_RTCF_GGJ}}
脂肪:{{PG_RTCF_ZF}}
腰臀比:{{PG_RTCF_WHR}}
体质指数:{{PG_RTCF_BMI}}
体脂百分比:{{PG_RTCF_PBF}}
内脏脂肪指数:{{PG_RTCF_NZZFSP}}
--------------------------------------------------------------------------------
{{/rtcf_flag}}
--------------------------------------------------------------------------------
{{?bsjg_flag}}
中医体质辨识结果
主要体质: {{PG_TZBS_ZYTZ}}
兼夹体质: {{PG_TZBS_JJTZ}}
{{/bsjg_flag}}
{{?ttpg_flag}}
体态评估结果
序号
量表名称
评分
1
TAPS体态自觉评估
{{score1}}
2
TRACE体态临床评估
{{score2}}
3
SRS-22问卷评估
{{score3}}
{{/ttpg_flag}}
{{?smpg_flag}}
失眠评估结果
序号
量表名称
评分
1
患者健康问卷(PHQ-9)评估
{{score4}}
2
Epworth嗜睡评估
{{score5}}
3
匹兹堡睡眠质量指数(PSQI)评估
{{score6}}
{{/smpg_flag}}
{{?jlpg_flag}}
焦虑评估结果
序号
量表名称
评分
1
汉密尔顿抑郁评估(HAMD-24)
{{score7}}
2
焦虑自评(SAS)
{{score8}}
{{/jlpg_flag}}
测评人:
审核人:
报告日期:{{report_date}}

2
acupuncture-system/pom.xml

@ -80,7 +80,7 @@
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.10.5</version>
<version>1.12.2</version>
</dependency>
</dependencies>

4
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/WxQrCodeDao.java

@ -24,7 +24,9 @@ public interface WxQrCodeDao {
*/
List<AmsWxQrCodeVo.ScreenResult> selectScreen(@Param("hospitalId") Long hospitalId);
List<AmsWxQrCodeVo.ScreenResult> selectScreenList(@Param("hospitalIdList") List<Long> hospitalIdList);
List<AmsWxQrCodeVo.ScreenResult> selectScreenList(@Param("hospitalIdList") List<Long> hospitalIdList,
@Param("userId") Long userId,
@Param("tenantId") Long tenantId);
@DataSource(DataSourceType.MASTER)
List<AmsWxQrCodeVo.ScreenResult> adminSelectScreenList(@Param("hospitalIdList") List<Long> hospitalIdList);

67
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java

@ -30,6 +30,8 @@ import com.acupuncture.system.persist.mapper.*;
import com.acupuncture.system.service.PmsPatientService;
import com.acupuncture.system.service.PmsTreatmentService;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.BorderStyle;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@ -536,7 +538,13 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
if (CollectionUtil.isNotEmpty(pmsTreatmentRecords)) {
Map<String, PmsTreatmentRecord> recordMap = pmsTreatmentRecords.stream().collect(Collectors.toMap(PmsTreatmentRecord::getQuestionCode, Function.identity()));
map.put("Clinical_diagnosis", recordMap.get("JBXX_ZYZD") == null ? "" : StrUtil.split(recordMap.get("JBXX_ZYZD").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(", ")));
map.put("PG_RTCF_TXLX", recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").getAnswer());
String txlx = recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").getAnswer();
if (StrUtil.isEmpty(txlx)) {
map.put("rtcf_flag", false);
}else {
map.put("rtcf_flag", true);
}
map.put("PG_RTCF_TXLX", txlx);
map.put("PG_RTCF_STNL", recordMap.get("PG_RTCF_STNL") == null ? "" : recordMap.get("PG_RTCF_STNL").getAnswer());
map.put("PG_RTCF_JKPF", recordMap.get("PG_RTCF_JKPF") == null ? "" : recordMap.get("PG_RTCF_JKPF").getAnswer());
map.put("PG_RTCF_TZ", recordMap.get("PG_RTCF_TZ") == null ? "" : recordMap.get("PG_RTCF_TZ").getAnswer());
@ -551,17 +559,56 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
map.put("PG_RTCF_BMI", recordMap.get("PG_RTCF_BMI") == null ? "" : recordMap.get("PG_RTCF_BMI").getAnswer());
map.put("PG_RTCF_PBF", recordMap.get("PG_RTCF_PBF") == null ? "" : recordMap.get("PG_RTCF_PBF").getAnswer());
map.put("PG_RTCF_NZZFSP", recordMap.get("PG_RTCF_NZZFSP") == null ? "" : recordMap.get("PG_RTCF_NZZFSP").getAnswer());
map.put("PG_TZBS_ZYTZ", recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").getAnswer());
String tzbs = recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").getAnswer();
if (StrUtil.isEmpty(tzbs)) {
map.put("bsjg_flag", false);
}else {
map.put("bsjg_flag", true);
}
map.put("PG_TZBS_ZYTZ", tzbs);
map.put("PG_TZBS_JJTZ", recordMap.get("PG_TZBS_JJTZ") == null ? "" : StrUtil.split(recordMap.get("PG_TZBS_JJTZ").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(",")));
map.put("score1", recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").getAnswer());
map.put("score2", recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").getAnswer());
map.put("score3", recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").getAnswer());
map.put("score4", recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").getAnswer());
map.put("score5", recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").getAnswer());
map.put("score6", recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").getAnswer());
map.put("score7", recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").getAnswer());
map.put("score8", recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").getAnswer());
String score1 = recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").getAnswer();
String score2 = recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").getAnswer();
String score3 = recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").getAnswer();
if (StrUtil.isEmpty(score1) && StrUtil.isEmpty(score2) && StrUtil.isEmpty(score3)) {
map.put("ttpg_flag", false);
}else {
map.put("ttpg_flag", true);
}
map.put("score1", score1);
map.put("score2", score2);
map.put("score3", score3);
String score4 = recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").getAnswer();
String score5 = recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").getAnswer();
String score6 = recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").getAnswer();
if (StrUtil.isEmpty(score4) && StrUtil.isEmpty(score5) && StrUtil.isEmpty(score6)) {
map.put("smpg_flag", false);
}else {
map.put("smpg_flag", true);
}
map.put("table0", Tables.of(new String[][] {
new String[] { "00", "01" },
new String[] { "10", "11" }
}).border(BorderStyle.DEFAULT).create());
map.put("score4", score4);
map.put("score5", score5);
map.put("score6", score6);
String score7 = recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").getAnswer();
String score8 = recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").getAnswer();
if (StrUtil.isEmpty(score7) && StrUtil.isEmpty(score8)) {
map.put("jlpg_flag", false);
}else {
map.put("jlpg_flag", true);
}
map.put("score7", score7);
map.put("score8", score8);
}
//渲染
template.render(map);

173
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java

@ -85,19 +85,24 @@ public class ScreeningServiceImpl implements IScreeningService {
public void export(HttpServletResponse response, ScreeningDto.Query param) {
ExcelWriter excelWriter = ExcelUtil.getWriter();
List<String> headerList = CollectionUtil.newArrayList(
"单位",
"姓名",
"性别",
"出生日期",
"年龄",
// "身份证",
"联系方式",
"身高",
"体重",
"身高(cm)",
"体重(kg)",
"BMI",
"体重自评结论",
"失眠自评(SRSS)得分",
"可接受的治疗方式",
"可接受的治疗周期",
"上床睡觉",
"入睡时间",
"睡醒时间",
"起床时间",
"睡眠效率(%)",
"疾病风险",
"疾病风险-其他",
"筛查结论",
"筛查时间",
"组织"
);
@ -114,28 +119,31 @@ public class ScreeningServiceImpl implements IScreeningService {
if (CollectionUtil.isNotEmpty(recordList)) {
map = recordList.stream().collect(Collectors.toMap(ScrScreenVo.ScreeningDetailVo::getQuestionCode, Function.identity()));
}
//筛查信息
ScrScreenVo.ScreeningDetailVo record = map.get("SCWJ-ILLNESS");
//筛查结果
ScrScreenVo.ScreeningDetailVo result = map.get("SCWJ-RESULT");
row += 1;
excelWriter.writeCellValue(0, row, detailVos.get(i).getName() + "");
excelWriter.writeCellValue(1, row, map.get("SCWJ-SEX") == null ? "未知" : map.get("SCWJ-SEX").getAnswer());
// excelWriter.writeCellValue(3, row, map.get("SCWJ-idCard") == null ? "" : map.get("SCWJ-idCard").getAnswer());
excelWriter.writeCellValue(2, row, map.get("SCWJ-BIRTH") == null ? "" : map.get("SCWJ-BIRTH").getAnswer());
excelWriter.writeCellValue(3, row, map.get("SCWJ-AGE") == null ? "" : map.get("SCWJ-AGE").getAnswer());
excelWriter.writeCellValue(4, row, map.get("SCWJ-PHONE") == null ? "" : map.get("SCWJ-PHONE").getAnswer());
excelWriter.writeCellValue(5, row, map.get("SCWJ-HEIGHT") == null ? "" : map.get("SCWJ-HEIGHT").getAnswer());
excelWriter.writeCellValue(6, row, map.get("SCWJ-WEIGHT") == null ? "" : map.get("SCWJ-WEIGHT").getAnswer());
excelWriter.writeCellValue(7, row, map.get("SCWJ-BMI") == null ? "" : map.get("SCWJ-BMI").getAnswer());
excelWriter.writeCellValue(8, row, map.get("SCWJ-JL") == null ? "" : map.get("SCWJ-JL").getAnswer());
excelWriter.writeCellValue(9, row, map.get("SCWJ-RESULT") == null ? "" : map.get("SCWJ-RESULT").getAnswer());
excelWriter.writeCellValue(10, row, map.get("SCWJ-ZLFS") == null ? "" : map.get("SCWJ-ZLFS").getAnswer());
excelWriter.writeCellValue(11, row, map.get("SCWJ-ZLZQ") == null ? "" : map.get("SCWJ-ZLZQ").getAnswer());
excelWriter.writeCellValue(12, row, DateUtil.format(detailVos.get(i).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
excelWriter.writeCellValue(13, row, detailVos.get(i).getTenantName());
row += 1;
excelWriter.writeCellValue(0, row, map.get("SCWJ-DW") == null ? "" : map.get("SCWJ-DW").getAnswer());
excelWriter.writeCellValue(1, row, detailVos.get(i).getName() + "");
excelWriter.writeCellValue(2, row, map.get("SCWJ-SEX") == null ? "未知" : map.get("SCWJ-SEX").getAnswer());
excelWriter.writeCellValue(3, row, map.get("SCWJ-BIRTH") == null ? "" : map.get("SCWJ-BIRTH").getAnswer());
excelWriter.writeCellValue(4, row, map.get("SCWJ-AGE") == null ? "" : map.get("SCWJ-AGE").getAnswer());
excelWriter.writeCellValue(5, row, map.get("SCWJ-PHONE") == null ? "" : map.get("SCWJ-PHONE").getAnswer());
excelWriter.writeCellValue(6, row, map.get("SCWJ-HEIGHT") == null ? "" : map.get("SCWJ-HEIGHT").getAnswer());
excelWriter.writeCellValue(7, row, map.get("SCWJ-WEIGHT") == null ? "" : map.get("SCWJ-WEIGHT").getAnswer());
excelWriter.writeCellValue(8, row, map.get("SCWJ-BMI") == null ? "" : map.get("SCWJ-BMI").getAnswer());
excelWriter.writeCellValue(9, row, map.get("SCWJ-JL") == null ? "" : map.get("SCWJ-JL").getAnswer());
excelWriter.writeCellValue(10,row, map.get("SCWJ-SCSJ") == null ? "" : map.get("SCWJ-SCSJ").getAnswer());
excelWriter.writeCellValue(11, row, map.get("SCWJ-RSSJ") == null ? "" : map.get("SCWJ-RSSJ").getAnswer());
excelWriter.writeCellValue(12, row, map.get("SCWJ-SXSJ") == null ? "" : map.get("SCWJ-SXSJ").getAnswer());
excelWriter.writeCellValue(13, row, map.get("SCWJ-QCSJ") == null ? "" : map.get("SCWJ-QCSJ").getAnswer());
excelWriter.writeCellValue(14, row, map.get("SCWJ-SMXL") == null ? "" : map.get("SCWJ-SMXL").getAnswer());
excelWriter.writeCellValue(15, row, map.get("SCWJ-XBS") == null ? "" : map.get("SCWJ-XBS").getAnswer());
excelWriter.writeCellValue(16, row, map.get("SCWJ-XBS-QT") == null ? "" : map.get("SCWJ-XBS-QT").getAnswer());
excelWriter.writeCellValue(17, row, map.get("SCREEN-JL") == null ? "" : map.get("SCREEN-JL").getAnswer());
// excelWriter.writeCellValue(17, row, map.get("SCWJ-RESULT") == null ? "" : map.get("SCWJ-RESULT").getAnswer());
// excelWriter.writeCellValue(18, row, map.get("SCWJ-ZLFS") == null ? "" : map.get("SCWJ-ZLFS").getAnswer());
// excelWriter.writeCellValue(19, row, map.get("SCWJ-ZLZQ") == null ? "" : map.get("SCWJ-ZLZQ").getAnswer());
excelWriter.writeCellValue(18, row, DateUtil.format(detailVos.get(i).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
excelWriter.writeCellValue(19, row, detailVos.get(i).getTenantName());
// if (record == null || StrUtil.isEmpty(record.getAnswer())) {
// excelWriter.writeCellValue(6, row, "否");
@ -185,7 +193,7 @@ public class ScreeningServiceImpl implements IScreeningService {
}
}
String filename = StrUtil.format("筛查-{}.xlsx", DateUtil.date().toString("yyyyMMdd"));
String filename = StrUtil.format("Screen-{}.xlsx", DateUtil.date().toString("yyyyMMdd"));
//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
@ -210,25 +218,26 @@ public class ScreeningServiceImpl implements IScreeningService {
public void adminExport(HttpServletResponse response, ScreeningDto.Query param) {
ExcelWriter excelWriter = ExcelUtil.getWriter();
List<String> headerList = CollectionUtil.newArrayList(
"单位",
"姓名",
"性别",
"年龄",
"身份证",
"出生日期",
"手机号",
"有高血压,>=140/90mmHg",
"血脂异常,或不清楚",
"有糖尿病",
"心跳不规则",
"吸烟",
"明显超重或肥胖",
"缺乏运动",
"有卒中家族史",
"有既往脑卒中病史",
"有既往短暂脑缺血病史",
"筛查结果",
"数据来源",
"科室名称");
"年龄",
"联系方式",
"身高(cm)",
"体重(kg)",
"BMI",
"体重自评结论",
"上床睡觉",
"入睡时间",
"睡醒时间",
"起床时间",
"睡眠效率(%)",
"疾病风险",
"疾病风险-其他",
"筛查结论",
"筛查时间",
"组织");
excelWriter.writeHeadRow(headerList);
PageInfo<ScrScreenVo.Result> page = adminQueryDetailByPage(param, -1, -1);
@ -242,62 +251,30 @@ public class ScreeningServiceImpl implements IScreeningService {
if (CollectionUtil.isNotEmpty(recordList)) {
map = recordList.stream().collect(Collectors.toMap(ScrScreenVo.ScreeningDetailVo::getQuestionCode, Function.identity()));
}
//筛查信息
ScrScreenVo.ScreeningDetailVo record = map.get("SCWJ-ILLNESS");
//筛查结果
ScrScreenVo.ScreeningDetailVo result = map.get("SCWJ-RESULT");
row += 1;
excelWriter.writeCellValue(0, row, detailVos.get(i).getName() + "");
excelWriter.writeCellValue(1, row, map.get("SCWJ-SEX") == null ? "未知" : map.get("SCWJ-SEX").getAnswer());
excelWriter.writeCellValue(2, row, map.get("SCWJ-AGE") == null ? "" : map.get("SCWJ-AGE").getAnswer());
excelWriter.writeCellValue(3, row, map.get("SCWJ-idCard") == null ? "" : map.get("SCWJ-idCard").getAnswer());
excelWriter.writeCellValue(4, row, map.get("SCWJ-BIRTH") == null ? "" : map.get("SCWJ-BIRTH").getAnswer());
excelWriter.writeCellValue(0, row, map.get("SCWJ-DW") == null ? "" : map.get("SCWJ-DW").getAnswer());
excelWriter.writeCellValue(1, row, detailVos.get(i).getName() + "");
excelWriter.writeCellValue(2, row, map.get("SCWJ-SEX") == null ? "未知" : map.get("SCWJ-SEX").getAnswer());
excelWriter.writeCellValue(3, row, map.get("SCWJ-BIRTH") == null ? "" : map.get("SCWJ-BIRTH").getAnswer());
excelWriter.writeCellValue(4, row, map.get("SCWJ-AGE") == null ? "" : map.get("SCWJ-AGE").getAnswer());
excelWriter.writeCellValue(5, row, map.get("SCWJ-PHONE") == null ? "" : map.get("SCWJ-PHONE").getAnswer());
if (record == null || StrUtil.isEmpty(record.getAnswer())) {
excelWriter.writeCellValue(6, row, "否");
excelWriter.writeCellValue(7, row, "否");
excelWriter.writeCellValue(8, row, "否");
excelWriter.writeCellValue(9, row, "否");
excelWriter.writeCellValue(10, row, "否");
excelWriter.writeCellValue(11, row, "否");
excelWriter.writeCellValue(12, row, "否");
excelWriter.writeCellValue(13, row, "否");
excelWriter.writeCellValue(14, row, "否");
excelWriter.writeCellValue(15, row, "否");
} else {
String answer = record.getAnswer();
String[] split = answer.split(",");
excelWriter.writeCellValue(6, row, Arrays.asList(split).contains("01") ? "是" : "否");
excelWriter.writeCellValue(7, row, Arrays.asList(split).contains("02") ? "是" : "否");
excelWriter.writeCellValue(8, row, Arrays.asList(split).contains("03") ? "是" : "否");
excelWriter.writeCellValue(9, row, Arrays.asList(split).contains("04") ? "是" : "否");
excelWriter.writeCellValue(10, row, Arrays.asList(split).contains("05") ? "是" : "否");
excelWriter.writeCellValue(11, row, Arrays.asList(split).contains("06") ? "是" : "否");
excelWriter.writeCellValue(12, row, Arrays.asList(split).contains("07") ? "是" : "否");
excelWriter.writeCellValue(13, row, Arrays.asList(split).contains("08") ? "是" : "否");
excelWriter.writeCellValue(14, row, Arrays.asList(split).contains("09") ? "是" : "否");
excelWriter.writeCellValue(15, row, Arrays.asList(split).contains("10") ? "是" : "否");
}
String str = "";
if (map.get("SCWJ-RESULT") != null && StrUtil.isNotEmpty(map.get("SCWJ-RESULT").getAnswer())) {
String answer1 = map.get("SCWJ-RESULT").getAnswer();
if ("0".equals(answer1)) {
str = "正常";
}
if ("1".equals(answer1)) {
str = "低危";
}
if ("2".equals(answer1)) {
str = "中危";
}
if ("3".equals(answer1)) {
str = "高危";
}
}
excelWriter.writeCellValue(16, row, str);
excelWriter.writeCellValue(17, row, map.get("SCWJ-SQMC") == null ? "" : map.get("SCWJ-SQMC").getAnswer());
excelWriter.writeCellValue(18, row, map.get("SCWJ-DEPT") == null ? "" : map.get("SCWJ-DEPT").getAnswer());
excelWriter.writeCellValue(6, row, map.get("SCWJ-HEIGHT") == null ? "" : map.get("SCWJ-HEIGHT").getAnswer());
excelWriter.writeCellValue(7, row, map.get("SCWJ-WEIGHT") == null ? "" : map.get("SCWJ-WEIGHT").getAnswer());
excelWriter.writeCellValue(8, row, map.get("SCWJ-BMI") == null ? "" : map.get("SCWJ-BMI").getAnswer());
excelWriter.writeCellValue(9, row, map.get("SCWJ-JL") == null ? "" : map.get("SCWJ-JL").getAnswer());
excelWriter.writeCellValue(10,row, map.get("SCWJ-SCSJ") == null ? "" : map.get("SCWJ-SCSJ").getAnswer());
excelWriter.writeCellValue(11, row, map.get("SCWJ-RSSJ") == null ? "" : map.get("SCWJ-RSSJ").getAnswer());
excelWriter.writeCellValue(12, row, map.get("SCWJ-SXSJ") == null ? "" : map.get("SCWJ-SXSJ").getAnswer());
excelWriter.writeCellValue(13, row, map.get("SCWJ-QCSJ") == null ? "" : map.get("SCWJ-QCSJ").getAnswer());
excelWriter.writeCellValue(14, row, map.get("SCWJ-SMXL") == null ? "" : map.get("SCWJ-SMXL").getAnswer());
excelWriter.writeCellValue(15, row, map.get("SCWJ-XBS") == null ? "" : map.get("SCWJ-XBS").getAnswer());
excelWriter.writeCellValue(16, row, map.get("SCWJ-XBS-QT") == null ? "" : map.get("SCWJ-XBS-QT").getAnswer());
excelWriter.writeCellValue(17, row, map.get("SCREEN-JL") == null ? "" : map.get("SCREEN-JL").getAnswer());
// excelWriter.writeCellValue(17, row, map.get("SCWJ-RESULT") == null ? "" : map.get("SCWJ-RESULT").getAnswer());
// excelWriter.writeCellValue(18, row, map.get("SCWJ-ZLFS") == null ? "" : map.get("SCWJ-ZLFS").getAnswer());
// excelWriter.writeCellValue(19, row, map.get("SCWJ-ZLZQ") == null ? "" : map.get("SCWJ-ZLZQ").getAnswer());
excelWriter.writeCellValue(18, row, DateUtil.format(detailVos.get(i).getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
excelWriter.writeCellValue(19, row, detailVos.get(i).getTenantName());
}
}
}

2
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/WxQrCodeServiceImpl.java

@ -203,7 +203,7 @@ public class WxQrCodeServiceImpl implements WxQrCodeService {
@Override
public List<AmsWxQrCodeVo.ScreenResult> queryList(Long hospitalId) {
return wxQrCodeDao.selectScreenList(hospitalId == null ? null : CollectionUtil.newArrayList(hospitalId));
return wxQrCodeDao.selectScreenList(hospitalId == null ? null : CollectionUtil.newArrayList(hospitalId), SecurityUtils.getUserId(), SecurityUtils.getTenantId());
}
@Override

4
acupuncture-system/src/main/resources/mapper/dao/ScreeningDetailDao.xml

@ -130,10 +130,10 @@
<if test="param.tenantId != null">
and r.tenant_id = #{param.tenantId}
</if>
<if test="param.startTime != null and param.startTime != ''">
<if test="param.startTime != null">
and r.create_time &gt;= #{param.startTime}
</if>
<if test="param.endTime != null and param.endTime != ''">
<if test="param.endTime != null">
and r.create_time &lt;= #{param.endTime}
</if>
<if test="param.startAge != null and param.endAge != ''">

9
acupuncture-system/src/main/resources/mapper/dao/SysPowerDao.xml

@ -4,14 +4,7 @@
<select id="queryById" resultType="com.acupuncture.system.domain.po.DmsTenant">
select id,
tenant_id as tenantId,
user_name as userName,
password,
nick_name as nickName,
email,
phonenumber,
sex,
status
name
from dms_tenant
where id = #{id}
</select>

5
acupuncture-system/src/main/resources/mapper/dao/WxQrCodeDao.xml

@ -94,6 +94,11 @@ and del_flag = 0
#{id}
</foreach>
</if>
<if test="userId != null and userId != 1">
<if test="tenantId != null">
AND c.tenant_id = #{tenantId}
</if>
</if>
</where>
GROUP BY c.id
order by c.create_time desc

2
acupuncture-前台/.env.development

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
VUE_APP_TITLE = 朱琏针灸数据系统
# 开发环境配置
ENV = 'development'

2
acupuncture-前台/.env.production

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
VUE_APP_TITLE = 朱琏针灸数据系统
# 生产环境配置
NODE_ENV = 'production'

2
acupuncture-前台/.env.staging

@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
VUE_APP_TITLE = 朱琏针灸数据系统
# 生产环境配置
NODE_ENV = 'production'

5
acupuncture-前台/README.md

@ -27,4 +27,7 @@ npm run build:stage
# 构建生产环境
npm run build:prod
```
```
<!-- 系统名称 -->
<!-- 朱琏针灸联盟数据系统 -->

BIN
acupuncture-前台/dist.zip

Binary file not shown.

2
acupuncture-前台/package.json

@ -1,7 +1,7 @@
{
"name": "ruoyi",
"version": "3.8.9",
"description": "朱琏针灸联盟数据系统",
"description": "朱琏针灸数据系统",
"author": "若依",
"license": "MIT",
"scripts": {

2
acupuncture-前台/src/layout/components/Navbar.vue

@ -13,7 +13,7 @@
v-if="!topNav"
/> -->
<div class="logo-title">
朱琏针灸联盟数据系统{{ userInfo.tenantName }}
朱琏针灸数据系统{{ userInfo.tenantName }}
</div>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />

4
acupuncture-前台/src/views/login.vue

@ -8,10 +8,10 @@
:rules="loginRules"
class="login-form"
>
<h3 class="title">
<h3 class="title" style="color: #fff; text-align: left">
登录到
<br />
朱琏针灸联盟数据系统
朱琏针灸数据系统
</h3>
<el-form-item prop="username">
<el-input

8
acupuncture-前台/src/views/patientFile/index.vue

@ -548,6 +548,11 @@ export default {
],
//
medicalHistory: [
"高脂血症",
"肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)",
"胰岛素抵抗",
"高尿酸",
"多囊卵巢综合症",
"高血压",
"脑血管病",
"恶性肿瘤",
@ -559,13 +564,10 @@ export default {
"遗传性、先天性疾病",
"糖尿病",
"慢性肺系疾病",
"高脂血症",
"肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)",
"过敏性疾病",
"关节炎",
"痛风",
"肾炎、肾病",
"高脂血症",
],
idCardType: [
{

2
acupuncture-前台/src/views/register.vue

@ -6,7 +6,7 @@
:rules="registerRules"
class="register-form"
>
<h3 class="title">朱琏针灸联盟数据系统</h3>
<h3 class="title">朱琏针灸数据系统</h3>
<el-form-item prop="username">
<el-input
v-model="registerForm.username"

428
acupuncture-前台/src/views/screening/h5.vue

@ -6,7 +6,7 @@
:rules="rules"
ref="form"
:model="form"
label-width="110px"
label-width="100px"
>
<!-- 姓名性别单选出生日期年龄联系方式 -->
<div class="card">
@ -32,6 +32,12 @@
<span>扫描身份证</span>
</div>
</el-upload> -->
<el-form-item label="单位" prop="SCWJ-DW">
<el-input
v-model="form['SCWJ-DW']"
placeholder="请输入单位"
></el-input>
</el-form-item>
<el-form-item label="姓名" prop="SCWJ-NAME">
<el-input
v-model="form['SCWJ-NAME']"
@ -69,43 +75,111 @@
placeholder="请输入联系方式"
></el-input>
</el-form-item>
<el-form-item label="身高cm" prop="SCWJ-HEIGHT">
<el-input
@blur="calculateBMI"
v-model="form['SCWJ-HEIGHT']"
type="number"
placeholder="请输入身高"
></el-input>
</el-form-item>
<el-form-item label="体重kg" prop="SCWJ-WEIGHT">
<el-input
@blur="calculateBMI"
v-model="form['SCWJ-WEIGHT']"
type="number"
placeholder="请输入体重"
></el-input>
</el-form-item>
<el-form-item label="BMI" prop="SCWJ-BMI">
<el-input
:disabled="true"
v-model="form['SCWJ-BMI']"
type="number"
placeholder="BMI"
></el-input>
</el-form-item>
<el-form-item label="结论" prop="SCWJ-JL">
<span :class="`BIMTips${BMIVerdict[form['SCWJ-JL']]}`">
{{ form["SCWJ-JL"] || "- - -" }}
</span>
</el-form-item>
</div>
</div>
<!-- 身高体重BMI -->
<!-- 睡眠质量评估 -->
<div class="card">
<div class="card-title">体重自评</div>
<el-form-item label="身高cm" prop="SCWJ-HEIGHT">
<el-input
@blur="calculateBMI"
v-model="form['SCWJ-HEIGHT']"
type="number"
placeholder="请输入身高"
></el-input>
<div class="card-title">睡眠质量评估</div>
<el-form-item label="上床睡觉" prop="SCWJ-SCSJ">
<el-time-select
@change="calculateSleepTime"
placeholder="请选择时间"
v-model="form['SCWJ-SCSJ']"
:picker-options="{
start: '00:30',
step: '00:15',
end: '23:59',
}"
></el-time-select>
</el-form-item>
<el-form-item label="入睡时间" prop="SCWJ-RSSJ">
<el-time-select
@change="calculateSleepTime"
placeholder="请选择时间"
v-model="form['SCWJ-RSSJ']"
:picker-options="{
start: '00:30',
step: '00:15',
end: '23:59',
}"
></el-time-select>
</el-form-item>
<el-form-item label="体重kg" prop="SCWJ-WEIGHT">
<el-input
@blur="calculateBMI"
v-model="form['SCWJ-WEIGHT']"
type="number"
placeholder="请输入体重"
></el-input>
<el-form-item label="睡醒时间" prop="SCWJ-SXSJ">
<el-time-select
@change="calculateSleepTime"
placeholder="请选择时间"
v-model="form['SCWJ-SXSJ']"
:picker-options="{
start: '00:30',
step: '00:15',
end: '23:59',
}"
></el-time-select>
</el-form-item>
<el-form-item label="BMI" prop="SCWJ-BMI">
<el-input
:disabled="true"
v-model="form['SCWJ-BMI']"
type="number"
placeholder="BMI"
></el-input>
<el-form-item label="起床时间" prop="SCWJ-QCSJ">
<el-time-select
@change="calculateSleepTime"
placeholder="请选择时间"
v-model="form['SCWJ-QCSJ']"
:picker-options="{
start: '00:30',
step: '00:15',
end: '23:59',
}"
></el-time-select>
</el-form-item>
<el-form-item label="结论" prop="SCWJ-JL">
<span :class="`BIMTips${BMIVerdict[form['SCWJ-JL']]}`">
{{ form["SCWJ-JL"] || "- - -" }}
<el-form-item label="睡眠效率" prop="SCWJ-SMXL">
<span :class="`BIMTips${BMIVerdict[form['SCWJ-SMXL']]}`">
{{ form["SCWJ-SMXL"] || "- - -" }}%
</span>
</el-form-item>
</div>
<!-- 疾病风险选择(现病史) -->
<div class="card">
<div class="card-title">疾病风险选择</div>
<el-form-item prop="SCWJ-XBS" class="form-item-xbs">
<el-checkbox-group v-model="form['SCWJ-XBS']">
<el-checkbox
v-for="(item, index) in medicalHistory"
:label="item"
:key="index"
>
</el-checkbox>
</el-checkbox-group>
<el-input v-model="form['SCWJ-XBS-QT']" placeholder="其他" />
</el-form-item>
</div>
</el-form>
<div v-if="stepNum == 2">
<!-- <div v-if="stepNum == 2">
<div class="card">
<div class="card-title">失眠自评SRSS</div>
<div
@ -152,9 +226,37 @@
<el-radio class="item-radio" :label="3">3个月</el-radio>
</el-radio-group>
</div>
</div> -->
<div class="card">
<div class="card-title">筛查结论</div>
<div
style="
display: flex;
justify-content: space-between;
margin-bottom: 6px;
"
>
<span>您的体重指数BMI</span>
<span>{{ form["SCWJ-BMI"] || "- - -" }}</span>
</div>
<div
style="
display: flex;
justify-content: space-between;
margin-bottom: 6px;
"
>
<span>您的睡眠效率为</span>
<span>{{ form["SCWJ-SMXL"] || "- - -" }}%</span>
</div>
<div>
<span v-if="tips" :style="{ color: tipsError ? 'red' : 'green' }">
{{ tips }}
</span>
<span v-if="!tips">- - -</span>
</div>
</div>
<div class="submit-box" v-if="stepNum == 1">
<!-- <div class="submit-box" v-if="stepNum == 1">
<el-button type="primary" class="submit-box-but" @click="submitForm">
下一步
</el-button>
@ -163,6 +265,11 @@
<el-button type="primary" class="submit-box-but" @click="scaleSubmitForm">
提交
</el-button>
</div> -->
<div class="submit-box" v-if="disabled">
<el-button type="primary" class="submit-box-but" @click="scaleSubmitForm">
提交
</el-button>
</div>
<div class="hospital1">{{ tenantName || "- - - -" }}</div>
</div>
@ -175,6 +282,7 @@ import {
screenSubmit,
queryHospitalNoToken,
} from "@/api/screening.js";
export default {
name: "Notice",
data() {
@ -187,7 +295,30 @@ export default {
stepNum: 1, //
uploadFileUrl: process.env.VUE_APP_BASE_URL + "/baidu/ocr/idcardInfo", //
fileList: [],
//
medicalHistory: [
"无",
"高脂血症",
"肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)",
"胰岛素抵抗",
"高尿酸",
"多囊卵巢综合症",
"高血压",
"脑血管病",
"恶性肿瘤",
"冠心病",
"精神疾病",
"胃和十二指肠溃疡",
"肥胖症",
"骨质疏松症",
"遗传性、先天性疾病",
"糖尿病",
"慢性肺系疾病",
"过敏性疾病",
"关节炎",
"痛风",
"肾炎、肾病",
],
BMITips: [
{
label: "体重过轻",
@ -213,6 +344,8 @@ export default {
超重: "3",
肥胖: "4",
},
tips: "", //
tipsError: false, //
// 1. ?
//
// 2. ?
@ -336,6 +469,7 @@ export default {
},
], //
form: {
"SCWJ-DW": "",
"SCWJ-NAME": "",
"SCWJ-SEX": "男",
"SCWJ-BIRTH": "",
@ -346,6 +480,13 @@ export default {
"SCWJ-BMI": "",
"SCWJ-JL": "",
"SCWJ-ZLFS": [],
"SCWJ-SCSJ": "22:00", //
"SCWJ-RSSJ": "22:30", //
"SCWJ-SXSJ": "06:30", //
"SCWJ-QCSJ": "07:00", //
"SCWJ-SMXL": "", //
"SCWJ-XBS": [], //
"SCWJ-XBS-QT": "", // -
// "SCWJ-NAME": "2",
// "SCWJ-SEX": "",
// "SCWJ-BIRTH": "1945-01-01",
@ -359,6 +500,13 @@ export default {
},
//
rules: {
"SCWJ-DW": [
{
required: true,
message: "单位不能为空",
trigger: "blur",
},
],
"SCWJ-NAME": [
{
required: true,
@ -396,7 +544,7 @@ export default {
{
pattern: /^1[3456789]\d{9}$/,
message: "格式不正确",
trigger: "change",
trigger: ["blur", "change"],
},
],
"SCWJ-HEIGHT": [
@ -420,6 +568,34 @@ export default {
trigger: "blur",
},
],
"SCWJ-SCSJ": [
{
required: true,
message: "上床睡觉不能为空",
trigger: "change",
},
],
"SCWJ-RSSJ": [
{
required: true,
message: "入睡时间不能为空",
trigger: "change",
},
],
"SCWJ-SXSJ": [
{
required: true,
message: "睡醒时间不能为空",
trigger: "change",
},
],
"SCWJ-QCSJ": [
{
required: true,
message: "起床时间不能为空",
trigger: "change",
},
],
},
loading: false,
};
@ -429,8 +605,84 @@ export default {
console.log("this.tenantId", this.tenantId);
localStorage.setItem("tenantId", this.tenantId);
this.getQueryHospitalNoToken(); // id
this.calculateSleepTime(); //
},
//
watch: {
form: {
handler(newVal, oldVal) {
this.getTips();
},
deep: true,
},
},
methods: {
//
getTips() {
console.log("获取筛查结论");
const BMI = this.form["SCWJ-BMI"]; // BMI
const sleepEfficiency = this.form["SCWJ-SMXL"]; //
if (BMI && sleepEfficiency) {
// BMI2585%{{ "" }}
if (BMI > 25 || sleepEfficiency < 85) {
this.tips = "建议找专业医师进一步评估";
this.tipsError = true;
} else {
this.tips = "均属于正常范围,请继续保持";
this.tipsError = false;
}
}
},
//
// /
// = -
// = -
// = /
//
//
//
calculateSleepTime() {
//
const bedTime = this.form["SCWJ-SCSJ"]; //
const sleepTime = this.form["SCWJ-RSSJ"]; //
const wakeTime = this.form["SCWJ-SXSJ"]; //
const wakeBedTime = this.form["SCWJ-QCSJ"]; //
//
if (!bedTime || !sleepTime || !wakeTime || !wakeBedTime) return;
//
const toMinutes = (timeStr) => {
const [hour, minute] = timeStr.split(":");
return parseInt(hour) * 60 + parseInt(minute);
};
//
// = -
// = -
let inBedMinutes = toMinutes(wakeBedTime) - toMinutes(bedTime); //
let sleepMinutes = toMinutes(wakeTime) - toMinutes(sleepTime); //
//
// 24
if (inBedMinutes < 0) {
inBedMinutes += 24 * 60;
}
// 24
if (sleepMinutes < 0) {
sleepMinutes += 24 * 60;
}
console.log("inBedMinutes", inBedMinutes);
console.log("sleepMinutes", sleepMinutes);
// /
const sleepEfficiency = (sleepMinutes / inBedMinutes) * 100;
//
this.form["SCWJ-SMXL"] = sleepEfficiency.toFixed(0);
},
//
calculateAge() {
const birthDate = new Date(this.form["SCWJ-BIRTH"]);
@ -560,48 +812,68 @@ export default {
//
async scaleSubmitForm() {
try {
// ------ ------
let score = 0;
// , topic${i}
for (let i = 1; i <= 24; i++) {
if (this.form[`topic${i}`] !== undefined) {
score += this.form[`topic${i}`];
this.$refs["form"].validate(async (valid) => {
if (valid) {
// ------ ------
let score = 0;
// , topic${i}
for (let i = 1; i <= 24; i++) {
if (this.form[`topic${i}`] !== undefined) {
score += this.form[`topic${i}`];
}
}
// ------ ------
const params = {
param: {
type: 33,
tenantId: this.tenantId,
centerId: this.tenantId,
},
};
create(params).then(async (res) => {
this.loading = true;
this.detailId = res.data.detailId;
this.id = res.data.id;
// ------ ------
//
await this.saveAnswer(this.form["SCWJ-DW"], "SCWJ-DW");
await this.saveAnswer(this.form["SCWJ-NAME"], "SCWJ-NAME");
await this.saveAnswer(this.form["SCWJ-SEX"], "SCWJ-SEX");
await this.saveAnswer(this.form["SCWJ-BIRTH"], "SCWJ-BIRTH");
await this.saveAnswer(this.form["SCWJ-AGE"], "SCWJ-AGE");
await this.saveAnswer(this.form["SCWJ-PHONE"], "SCWJ-PHONE");
await this.saveAnswer(this.form["SCWJ-HEIGHT"], "SCWJ-HEIGHT");
await this.saveAnswer(this.form["SCWJ-WEIGHT"], "SCWJ-WEIGHT");
await this.saveAnswer(this.form["SCWJ-BMI"], "SCWJ-BMI");
await this.saveAnswer(this.form["SCWJ-JL"], "SCWJ-JL");
await this.saveAnswer(this.form["SCWJ-SCSJ"], "SCWJ-SCSJ");
await this.saveAnswer(this.form["SCWJ-RSSJ"], "SCWJ-RSSJ");
await this.saveAnswer(this.form["SCWJ-SXSJ"], "SCWJ-SXSJ");
await this.saveAnswer(this.form["SCWJ-QCSJ"], "SCWJ-QCSJ");
await this.saveAnswer(this.form["SCWJ-SMXL"], "SCWJ-SMXL");
await this.saveAnswer(
this.form["SCWJ-XBS"].toString(),
"SCWJ-XBS"
);
await this.saveAnswer(this.form["SCWJ-XBS-QT"], "SCWJ-XBS-QT");
await this.saveAnswer(this.tips, "SCREEN-JL");
//
// await this.saveAnswer(score, "SCWJ-RESULT");
// await this.saveAnswer(
// this.form["SCWJ-ZLFS"].toString(),
// "SCWJ-ZLFS"
// ); //
// await this.saveAnswer(this.form["SCWJ-ZLZQ"], "SCWJ-ZLZQ"); //
// ------ ------
const submitParams = { param: { detailId: this.detailId } };
await screenSubmit(submitParams).then((response) => {
this.loading = false;
this.disabled = false;
this.$modal.msgSuccess("提交成功");
});
});
}
}
// ------ ------
const params = {
param: {
type: 33,
tenantId: this.tenantId,
centerId: this.tenantId,
},
};
create(params).then(async (res) => {
this.loading = true;
this.detailId = res.data.detailId;
this.id = res.data.id;
// ------ ------
//
await this.saveAnswer(this.form["SCWJ-NAME"], "SCWJ-NAME");
await this.saveAnswer(this.form["SCWJ-SEX"], "SCWJ-SEX");
await this.saveAnswer(this.form["SCWJ-BIRTH"], "SCWJ-BIRTH");
await this.saveAnswer(this.form["SCWJ-AGE"], "SCWJ-AGE");
await this.saveAnswer(this.form["SCWJ-PHONE"], "SCWJ-PHONE");
await this.saveAnswer(this.form["SCWJ-HEIGHT"], "SCWJ-HEIGHT");
await this.saveAnswer(this.form["SCWJ-WEIGHT"], "SCWJ-WEIGHT");
await this.saveAnswer(this.form["SCWJ-BMI"], "SCWJ-BMI");
await this.saveAnswer(this.form["SCWJ-JL"], "SCWJ-JL");
//
await this.saveAnswer(score, "SCWJ-RESULT");
await this.saveAnswer(this.form["SCWJ-ZLFS"].toString(), "SCWJ-ZLFS"); //
await this.saveAnswer(this.form["SCWJ-ZLZQ"], "SCWJ-ZLZQ"); //
// ------ ------
const submitParams = { param: { detailId: this.detailId } };
await screenSubmit(submitParams).then((response) => {
this.loading = false;
this.disabled = false;
this.$modal.msgSuccess("提交成功");
});
});
} catch (error) {
this.loading = false;
@ -633,6 +905,15 @@ export default {
</script>
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
>>> .el-checkbox {
margin-right: 10px rtant;
}
.form-item-xbs >>> .el-form-item__content {
margin-left: 0 !important;
}
.qq {
color: green;
}
.idcardupd {
height: 44px;
margin-bottom: 14px;
@ -724,6 +1005,7 @@ export default {
font-size: 20px;
margin-bottom: 16px;
}
.card-tips {
font-size: 14px;
color: #999999;

67
acupuncture-前台/src/views/screening/index.vue

@ -106,6 +106,14 @@
align="center"
:reserve-selection="true"
/>
<el-table-column
label="单位"
align="center"
prop="SCWJ-DW"
min-width="150"
show-overflow-tooltip
fixed
/>
<el-table-column
label="姓名"
align="center"
@ -169,7 +177,64 @@
</span>
</template>
</el-table-column>
<el-table-column
label="BMI"
align="center"
prop="SCWJ-BMI"
min-width="100"
/>
<el-table-column
label="上床睡觉时间"
align="center"
prop="SCWJ-SCSJ"
min-width="100"
/>
<el-table-column
label="入睡时间"
align="center"
prop="SCWJ-RSSJ"
min-width="100"
/>
<el-table-column
label="睡醒时间"
align="center"
prop="SCWJ-SXSJ"
min-width="100"
/>
<el-table-column
label="起床时间"
align="center"
prop="SCWJ-QCSJ"
min-width="100"
/>
<el-table-column label="睡眠效率" align="center">
<template slot-scope="scope">
<span
>{{ scope.row["SCWJ-SMXL"]
}}<span v-if="scope.row['SCWJ-SMXL']">%</span>
</span>
</template>
</el-table-column>
<el-table-column
label="疾病风险"
align="center"
prop="SCWJ-XBS"
min-width="200"
/>
<el-table-column
label="疾病风险-其他"
align="center"
prop="SCWJ-XBS-QT"
min-width="150"
/>
<el-table-column
label="筛查结论"
align="center"
prop="SCREEN-JL"
min-width="150"
/>
<!-- <el-table-column
label="失眠自评(SRSS)(分)"
align="center"
prop="SCWJ-RESULT"
@ -190,7 +255,7 @@
align="center"
prop="SCWJ-ZLZQ"
min-width="200"
/>
/> -->
<el-table-column
fixed="right"
label="筛查时间"

2
acupuncture-前台/vue.config.js

@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require("compression-webpack-plugin");
const name = process.env.VUE_APP_TITLE || "朱琏针灸联盟数据系统"; // 网页标题
const name = process.env.VUE_APP_TITLE || "朱琏针灸数据系统"; // 网页标题
const port = process.env.port || process.env.npm_config_port || 80; // 端口

BIN
acupuncture-前台/针灸前台3.zip

Binary file not shown.

6
acupuncture-后台/.env.development

@ -1,13 +1,13 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
VUE_APP_TITLE = 朱琏针灸数据系统
# 开发环境配置
ENV = 'development'
# 大唐会议管理系统/开发环境
VUE_APP_BASE_API = '/dev-api'
VUE_APP_IMG_URL = 'https://test.tall.wiki/acupuncture'
VUE_APP_API_QZURL = 'https://test.tall.wiki/'
VUE_APP_IMG_URL = 'https://test.tall.wiki/acupuncture/api/'
VUE_APP_API_QZURL = 'https://test.tall.wiki/acupuncture/api/'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 访问路径

11
acupuncture-后台/.env.production

@ -1,11 +1,12 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
VUE_APP_TITLE = 朱琏针灸数据系统
# 生产环境配置
NODE_ENV = 'production'
# 因孚生产
VUE_APP_BASE_API = 'https://test.tall.wiki/acupuncture'
VUE_APP_API_QZURL = 'https://test.tall.wiki/'
VUE_APP_BASE_API = 'http://113.45.159.249:40010/acupuncture/api/'
VUE_APP_API_QZURL = 'http://113.45.159.249:40010/acupuncture/api/'
# 筛查访问地址
VUE_APP_H5_URL = 'http://113.45.159.249:40010/acupuncture/admin/screening/h5'
# 访问路径
VUE_APP_PUBLIC_PATH = '/acupunctureAdmin/'
VUE_APP_PUBLIC_PATH = '/acupuncture/admin/'

22
acupuncture-后台/.env.staging

@ -1,12 +1,12 @@
# 页面标题
VUE_APP_TITLE = 朱琏针灸联盟数据系统
BABEL_ENV = production
NODE_ENV = production
# 测试环境配置
ENV = 'staging'
# 朱琏针灸联盟数据系统/测试环境
VUE_APP_BASE_API = '/stage-api'
VUE_APP_TITLE = 朱琏针灸数据系统
# 生产环境配置
NODE_ENV = 'production'
# 因孚生产
VUE_APP_BASE_API = 'https://test.tall.wiki/acupuncture/api/'
VUE_APP_API_QZURL = 'https://test.tall.wiki/acupuncture/api/'
# 筛查访问地址
VUE_APP_H5_URL = 'https://test.tall.wiki/acupuncture/admin/screening/h5'
# 访问路径
VUE_APP_PUBLIC_PATH = '/acupuncture/admin/'

2
acupuncture-后台/package.json

@ -1,7 +1,7 @@
{
"name": "ruoyi",
"version": "3.8.9",
"description": "朱琏针灸联盟数据系统",
"description": "朱琏针灸数据系统",
"author": "若依",
"license": "MIT",
"scripts": {

2
acupuncture-后台/src/views/login.vue

@ -11,7 +11,7 @@
<h3 class="title">
登录到
<br />
朱琏针灸联盟数据系统
朱琏针灸数据系统
</h3>
<el-form-item prop="username">
<el-input

2
acupuncture-后台/src/views/medicalFile/details.vue

@ -1226,7 +1226,7 @@ export default {
return;
}
this.humanBodyOpen = true;
this.selectReportUrl = `${this.qzUrl}acupuncture${res.data.fileName}`;
this.selectReportUrl = `${this.qzUrl}${res.data.fileName}`;
});
},
//

7
acupuncture-后台/src/views/medicalFile/index.vue

@ -744,8 +744,7 @@ export default {
deptId: localStorage.getItem("hospitalId"),
},
uploadFileUrl1:
process.env.VUE_APP_API_QZURL +
"/acupuncture/treatment/importTreatment", //
process.env.VUE_APP_API_QZURL + "/treatment/importTreatment", //
fileList: [],
followupList: [],
queueOpen: false,
@ -1502,7 +1501,7 @@ export default {
//
handleReport(row) {
exportTreatmentPg({ treatmentId: row.id }).then((res) => {
window.open(`${process.env.VUE_APP_API_QZURL}acupuncture${res.data}`);
window.open(`${process.env.VUE_APP_API_QZURL}${res.data}`);
});
},
/** 提交审核 */
@ -1687,7 +1686,7 @@ export default {
/** 下载按钮操作 */
handleDownload() {
window.open(
`${process.env.VUE_APP_API_QZURL}/acupuncture/profile/TreamentTemplate.xlsx`
`${process.env.VUE_APP_API_QZURL}/profile/TreamentTemplate.xlsx`
);
// this.download1(
// "/patient/export", {},

2
acupuncture-后台/src/views/member/account.vue

@ -421,7 +421,7 @@ export default {
/** 下载按钮操作 */
handleDownload() {
window.open(
`${process.env.VUE_APP_API_QZURL}/acupuncture/profile/TreamentTemplate.xlsx`
`${process.env.VUE_APP_API_QZURL}/profile/TreamentTemplate.xlsx`
);
// this.download1(
// "/patient/export", {},

4
acupuncture-后台/src/views/patientFile/index.vue

@ -413,7 +413,7 @@ export default {
deptId: localStorage.getItem("hospitalId"),
},
uploadFileUrl1:
process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", //
process.env.VUE_APP_API_QZURL + "/patient/import", //
fileList: [],
//
educationYearsValue: {
@ -758,7 +758,7 @@ export default {
/** 下载按钮操作 */
handleDownload() {
window.open(
`${process.env.VUE_APP_API_QZURL}/acupuncture/profile/PatientTemplate.xlsx`
`${process.env.VUE_APP_API_QZURL}/profile/PatientTemplate.xlsx`
);
// this.download1(
// "/patient/export", {},

2
acupuncture-后台/src/views/register.vue

@ -6,7 +6,7 @@
:rules="registerRules"
class="register-form"
>
<h3 class="title">朱琏针灸联盟数据系统</h3>
<h3 class="title">朱琏针灸数据系统</h3>
<el-form-item prop="username">
<el-input
v-model="registerForm.username"

67
acupuncture-后台/src/views/screening/index.vue

@ -106,6 +106,14 @@
align="center"
:reserve-selection="true"
/>
<el-table-column
label="单位"
align="center"
prop="SCWJ-DW"
min-width="150"
show-overflow-tooltip
fixed
/>
<el-table-column
label="姓名"
align="center"
@ -169,7 +177,64 @@
</span>
</template>
</el-table-column>
<el-table-column
label="BMI"
align="center"
prop="SCWJ-BMI"
min-width="100"
/>
<el-table-column
label="上床睡觉时间"
align="center"
prop="SCWJ-SCSJ"
min-width="100"
/>
<el-table-column
label="入睡时间"
align="center"
prop="SCWJ-RSSJ"
min-width="100"
/>
<el-table-column
label="睡醒时间"
align="center"
prop="SCWJ-SXSJ"
min-width="100"
/>
<el-table-column
label="起床时间"
align="center"
prop="SCWJ-QCSJ"
min-width="100"
/>
<el-table-column label="睡眠效率" align="center">
<template slot-scope="scope">
<span
>{{ scope.row["SCWJ-SMXL"]
}}<span v-if="scope.row['SCWJ-SMXL']">%</span>
</span>
</template>
</el-table-column>
<el-table-column
label="疾病风险"
align="center"
prop="SCWJ-XBS"
min-width="200"
/>
<el-table-column
label="疾病风险-其他"
align="center"
prop="SCWJ-XBS-QT"
min-width="150"
/>
<el-table-column
label="筛查结论"
align="center"
prop="SCREEN-JL"
min-width="150"
/>
<!-- <el-table-column
label="失眠自评(SRSS)(分)"
align="center"
prop="SCWJ-RESULT"
@ -190,7 +255,7 @@
align="center"
prop="SCWJ-ZLZQ"
min-width="200"
/>
/> -->
<el-table-column
fixed="right"
label="筛查时间"

6
acupuncture-后台/src/views/screening/qrCode.vue

@ -90,7 +90,7 @@
>
<template slot-scope="scope">
<img
:src="qzUrl + '/acupuncture' + scope.row.url"
:src="qzUrl + scope.row.url"
alt=""
width="100"
height="100"
@ -241,7 +241,7 @@ export default {
Original(_url) {
this.imgUrl = [];
if (_url) {
this.imgUrl.push(this.qzUrl + "/acupuncture" + _url);
this.imgUrl.push(this.qzUrl + _url);
}
this.$refs.preview.clickHandler();
},
@ -349,7 +349,7 @@ export default {
url: row.url,
};
exportQr(data).then((res) => {
window.open(`${process.env.VUE_APP_API_QZURL}/acupuncture/${res.data}`);
window.open(`${process.env.VUE_APP_API_QZURL}${res.data}`);
});
},
},

8
acupuncture-后台/vue.config.js

@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require("compression-webpack-plugin");
const name = process.env.VUE_APP_TITLE || "朱琏针灸联盟数据系统"; // 网页标题
const name = process.env.VUE_APP_TITLE || "朱琏针灸数据系统"; // 网页标题
const port = process.env.port || process.env.npm_config_port || 80; // 端口
@ -19,7 +19,9 @@ module.exports = {
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath:
process.env.NODE_ENV === "production" ? "/acupunctureAdmin/" : "/",
process.env.NODE_ENV === "production"
? process.env.VUE_APP_PUBLIC_PATH
: "/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
@ -37,7 +39,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `https://test.tall.wiki/acupuncture`,
target: `https://test.tall.wiki/acupuncture/api/`,
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",

BIN
acupuncture-前台/针灸-前台5.zip → acupuncture-后台/针灸-后台1.zip

Binary file not shown.

2
pom.xml

@ -152,7 +152,7 @@
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
<version>5.2.2</version>
</dependency>
<!-- velocity代码生成使用模板 -->

Loading…
Cancel
Save