zzc 3 months ago
parent
commit
11323775ea
  1. 253
      acupuncture-前台/src/utils/request.js
  2. 12
      acupuncture-前台/src/views/followFile/subjects.vue
  3. 12
      acupuncture-前台/src/views/index.vue
  4. 17
      acupuncture-前台/src/views/medicalFile/components/posture/SRS22.vue
  5. 423
      acupuncture-前台/src/views/medicalFile/details.vue
  6. 22
      acupuncture-前台/src/views/medicalFile/index.vue
  7. 4
      acupuncture-前台/src/views/patientFile/index.vue
  8. 8
      acupuncture-前台/src/views/screening/h5.vue
  9. 48
      acupuncture-前台/src/views/screening/index.vue
  10. 18
      acupuncture-后台/src/api/screening.js
  11. 12
      acupuncture-后台/src/views/followFile/subjects.vue
  12. 12
      acupuncture-后台/src/views/index.vue
  13. 427
      acupuncture-后台/src/views/medicalFile/details.vue
  14. 18
      acupuncture-后台/src/views/medicalFile/index.vue
  15. 48
      acupuncture-后台/src/views/screening/index.vue

253
acupuncture-前台/src/utils/request.js

@ -1,114 +1,151 @@
import axios from 'axios'
import { Notification, MessageBox, Message, Loading } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import axios from "axios";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import store from "@/store";
import { getToken } from "@/utils/auth";
import errorCode from "@/utils/errorCode";
import { tansParams, blobValidate } from "@/utils/ruoyi";
import cache from '@/plugins/cache'
import { saveAs } from 'file-saver'
import cache from "@/plugins/cache";
import { saveAs } from "file-saver";
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 10000
})
timeout: 10000,
});
// request拦截器
service.interceptors.request.use(config => {
// 是否需要设置 token
const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
// get请求映射params参数
if (config.method === 'get' && config.params) {
let url = config.url + '?' + tansParams(config.params);
url = url.slice(0, -1);
config.params = {};
config.url = url;
}
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
const requestObj = {
url: config.url,
data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
time: new Date().getTime()
service.interceptors.request.use(
(config) => {
// 是否需要设置 token
const isToken = (config.headers || {}).isToken === false;
// 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false;
if (getToken() && !isToken) {
config.headers["Authorization"] = "Bearer " + getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
}
const requestSize = Object.keys(JSON.stringify(requestObj)).length; // 请求数据大小
const limitSize = 5 * 1024 * 1024; // 限制存放数据5M
if (requestSize >= limitSize) {
console.warn(`[${config.url}]: ` + '请求数据大小超出允许的5M限制,无法进行防重复提交验证。')
return config;
if (localStorage.getItem("tenantId")) {
config.headers.TENANT_ID = localStorage.getItem("tenantId");
}
const sessionObj = cache.session.getJSON('sessionObj')
if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
cache.session.setJSON('sessionObj', requestObj)
} else {
const s_url = sessionObj.url; // 请求地址
const s_data = sessionObj.data; // 请求数据
const s_time = sessionObj.time; // 请求时间
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
const message = '数据正在处理,请勿重复提交';
console.warn(`[${s_url}]: ` + message)
return Promise.reject(new Error(message))
// get请求映射params参数
if (config.method === "get" && config.params) {
let url = config.url + "?" + tansParams(config.params);
url = url.slice(0, -1);
config.params = {};
config.url = url;
}
if (
!isRepeatSubmit &&
(config.method === "post" || config.method === "put")
) {
const requestObj = {
url: config.url,
data:
typeof config.data === "object"
? JSON.stringify(config.data)
: config.data,
time: new Date().getTime(),
};
const requestSize = Object.keys(JSON.stringify(requestObj)).length; // 请求数据大小
const limitSize = 5 * 1024 * 1024; // 限制存放数据5M
if (requestSize >= limitSize) {
console.warn(
`[${config.url}]: ` +
"请求数据大小超出允许的5M限制,无法进行防重复提交验证。"
);
return config;
}
const sessionObj = cache.session.getJSON("sessionObj");
if (
sessionObj === undefined ||
sessionObj === null ||
sessionObj === ""
) {
cache.session.setJSON("sessionObj", requestObj);
} else {
cache.session.setJSON('sessionObj', requestObj)
const s_url = sessionObj.url; // 请求地址
const s_data = sessionObj.data; // 请求数据
const s_time = sessionObj.time; // 请求时间
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
if (
s_data === requestObj.data &&
requestObj.time - s_time < interval &&
s_url === requestObj.url
) {
const message = "数据正在处理,请勿重复提交";
console.warn(`[${s_url}]: ` + message);
return Promise.reject(new Error(message));
} else {
cache.session.setJSON("sessionObj", requestObj);
}
}
}
return config;
},
(error) => {
console.log(error);
Promise.reject(error);
}
return config
}, error => {
console.log(error)
Promise.reject(error)
})
);
// 响应拦截器
service.interceptors.response.use(res => {
service.interceptors.response.use(
(res) => {
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
// 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default']
const msg = errorCode[code] || res.data.msg || errorCode["default"];
// 二进制数据则直接返回
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res.data
if (
res.request.responseType === "blob" ||
res.request.responseType === "arraybuffer"
) {
return res.data;
}
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
isRelogin.show = false;
store.dispatch('LogOut').then(() => {
location.href = process.env.VUE_APP_PUBLIC_PATH;
MessageBox.confirm(
"登录状态已过期,您可以继续留在该页面,或者重新登录",
"系统提示",
{
confirmButtonText: "重新登录",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
isRelogin.show = false;
store.dispatch("LogOut").then(() => {
location.href = process.env.VUE_APP_PUBLIC_PATH;
});
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
.catch(() => {
isRelogin.show = false;
});
}
return Promise.reject("无效的会话,或者会话已过期,请重新登录。");
} else if (code === 500) {
Message({ message: msg, type: 'error' })
return Promise.reject(new Error(msg))
Message({ message: msg, type: "error" });
return Promise.reject(new Error(msg));
} else if (code === 601) {
Message({ message: msg, type: 'warning' })
return Promise.reject('error')
Message({ message: msg, type: "warning" });
return Promise.reject("error");
} else if (code !== 200) {
Notification.error({ title: msg })
return Promise.reject('error')
Notification.error({ title: msg });
return Promise.reject("error");
} else {
return res.data
return res.data;
}
},
error => {
console.log('err' + error)
(error) => {
console.log("err" + error);
let { message } = error;
if (message == "Network Error") {
message = "后端接口连接异常";
@ -117,36 +154,48 @@ service.interceptors.response.use(res => {
} else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({ message: message, type: 'error', duration: 5 * 1000 })
return Promise.reject(error)
Message({ message: message, type: "error", duration: 5 * 1000 });
return Promise.reject(error);
}
)
);
// 通用下载方法
export function download(url, params, filename, config) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
return service.post(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob',
...config
}).then(async (data) => {
const isBlob = blobValidate(data);
if (isBlob) {
const blob = new Blob([data])
saveAs(blob, filename)
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
Message.error(errMsg);
}
downloadLoadingInstance.close();
}).catch((r) => {
console.error(r)
Message.error('下载文件出现错误,请联系管理员!')
downloadLoadingInstance.close();
})
downloadLoadingInstance = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
return service
.post(url, params, {
transformRequest: [
(params) => {
return tansParams(params);
},
],
headers: { "Content-Type": "application/x-www-form-urlencoded" },
responseType: "blob",
...config,
})
.then(async (data) => {
const isBlob = blobValidate(data);
if (isBlob) {
const blob = new Blob([data]);
saveAs(blob, filename);
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg =
errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
Message.error(errMsg);
}
downloadLoadingInstance.close();
})
.catch((r) => {
console.error(r);
Message.error("下载文件出现错误,请联系管理员!");
downloadLoadingInstance.close();
});
}
// 通用下载方法
export function download1(url, params, filename, config) {
@ -182,4 +231,4 @@ export function download1(url, params, filename, config) {
});
}
export default service
export default service;

12
acupuncture-前台/src/views/followFile/subjects.vue

@ -8,12 +8,12 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="queueId">
<!-- <el-form-item label="" prop="queueId">
<el-checkbox-group v-model="haveQueue">
<el-checkbox >未参加队列人员</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item>
<el-form-item> -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">
重置
@ -213,10 +213,10 @@
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.param.haveQueue = ''
if(this.haveQueue){
this.queryParams.param.haveQueue = 0
}
// this.queryParams.param.haveQueue = ''
// if(this.haveQueue){
// this.queryParams.param.haveQueue = 0
// }
this.queryParams.pageNum = 1;
this.getList();
},

12
acupuncture-前台/src/views/index.vue

@ -13,22 +13,14 @@
<div style="height: 14px"></div>
<div>
<el-card shadow="always">
<search
@picker-change="pickerChage"
title="诊疗信息统计"
type="2"
></search>
<search @picker-change="pickerChage" title="病情评估" type="2"></search>
</el-card>
<JM ref="JM"></JM>
</div>
<div style="height: 14px"></div>
<div>
<el-card shadow="always">
<search
@picker-change="pickerChage"
title="治疗类型统计"
type="3"
></search>
<search @picker-change="pickerChage" title="诊疗信息" type="3"></search>
</el-card>
<XGZL ref="XGZL"></XGZL>
</div>

17
acupuncture-前台/src/views/medicalFile/components/posture/SRS22.vue

@ -345,7 +345,7 @@ export default {
satisfaction: calculateDimensionScore(dimensions.satisfaction),
};
// 3.
//
// SRS-22
//
const totalScore =
@ -355,13 +355,22 @@ export default {
dimensionScores.mentalHealth +
dimensionScores.satisfaction) /
5;
console.log("totalScore", totalScore);
//
this.scaleData[this.treatmentId][this.scaleCode] = this.form;
localStorage.setItem("scaleData", JSON.stringify(this.scaleData));
// //
this.$emit("getScaleResult", totalScore, this.scaleCode);
//
const formattedTotalScore = this.formatTotalScore(totalScore);
console.log("totalScore", totalScore);
console.log("formattedTotalScore", formattedTotalScore);
//
this.$emit("getScaleResult", formattedTotalScore, this.scaleCode);
},
//
formatTotalScore(score) {
return Number.isInteger(score) ? score : parseFloat(score.toFixed(2));
},
},
};

423
acupuncture-前台/src/views/medicalFile/details.vue

@ -21,6 +21,9 @@
<el-descriptions-item label="性别">
{{ form.gender == 0 ? "男" : "女" }}
</el-descriptions-item>
<el-descriptions-item label="出生日期">
{{ parseTime(form.birthDate, "{y}-{m}-{d}") }}
</el-descriptions-item>
<el-descriptions-item label="年龄">
{{ form.age }}
</el-descriptions-item>
@ -30,8 +33,8 @@
<el-descriptions-item label="门诊号/住院号">
{{ form.visitNumber }}
</el-descriptions-item>
<el-descriptions-item label="门诊时间/住院时间">
{{ form.visitTime }}
<el-descriptions-item label="门诊/住院时间">
{{ parseTime(form.visitTime, "{y}-{m}-{d}") }}
</el-descriptions-item>
<el-descriptions-item label="责任医生">
{{ form.doctor }}
@ -80,7 +83,7 @@
<a name="病情评估"></a>
<div class="div-title1">病情评估</div>
<div class="div-title2">
人体成分
人体成分分析
<span @click="getHumanBody" class="foem-item-pg">同步</span>
<!-- <span
style="margin-left: 10px"
@ -126,7 +129,7 @@
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="蛋白质" prop="PG_RTCF_GZ">
<el-form-item label="质" prop="PG_RTCF_GZ">
<el-input
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['PG_RTCF_GZ']"
@ -211,12 +214,12 @@
/>
</el-form-item>
</div>
</el-card>
<el-card class="box-card">
<div style="height: 10px"></div>
<a name="中医体质辨识"></a>
<div class="div-title1">中医体质辨识</div>
<div class="div-title2">中医体质辨识</div>
<div>
<el-form-item
class="item-form-jjtz"
prop="PG_TZBS_ZYTZ"
label="主要体质"
style="margin-bottom: 0"
@ -237,7 +240,7 @@
class="item-form-jjtz"
prop="PG_TZBS_JJTZ"
label="兼夹体质"
style="margin-bottom: 0"
style="margin-bottom: 5px"
>
<div style="width: 100%">
<el-checkbox-group
@ -254,12 +257,9 @@
</div>
</el-form-item>
</div>
</el-card>
<!-- 体态评估 -->
<el-card class="box-card">
<div style="height: 10px"></div>
<a name="体态评估"></a>
<div>
<div class="div-title1">量表评估</div>
<div class="div-title2">体态评估</div>
<div class="human-body">
<el-form-item label="" prop="PG_TT_TAPS_DF">
@ -320,6 +320,7 @@
/>
</el-form-item>
</div>
<div style="height: 10px"></div>
<div class="div-title2">失眠评估</div>
<div class="human-body">
<el-form-item prop="PG_SM_PHQ-9_DF">
@ -387,6 +388,7 @@
/>
</el-form-item>
</div>
<div style="height: 10px"></div>
<div class="div-title2">焦虑评估</div>
<div class="human-body">
<el-form-item prop="PG_JL_HAMD-24_DF">
@ -431,6 +433,7 @@
</div>
</div>
</el-card>
<!-- 治疗类型 -->
<el-card class="box-card">
<a name="治疗类型"></a>
@ -449,7 +452,7 @@
<!-- 诊疗方法 -->
<el-card class="box-card">
<a name="诊疗方法"></a>
<div style="font-size: 22px; margin-bottom: 14px" class="div-title1">
<div style="font-size: 22px; margin-bottom: 0px" class="div-title1">
诊疗方法
</div>
<div
@ -457,10 +460,15 @@
:key="ind"
v-if="getzzffShow(i.title)"
>
<div class="div-title2">{{ i.title }}</div>
<div
class="div-title2"
style="line-height: 36px; margin: 14px 0 0 0"
>
{{ i.title }}
</div>
<div v-for="(j, jnd) in i.list" :key="jnd">
<div v-if="j.title != '针灸疗法'">
<div class="div-title3">{{ j.title }}</div>
<div>
<div class="div-title">{{ j.title }}</div>
<el-radio
:disabled="form.status != 0 && form.status != 3"
border
@ -493,15 +501,17 @@
class="human-body"
v-if="o.type == 'input'"
>
<el-form-item prop="ZLFA_ZJ_XW_QT">
<el-input v-model="detailsForm[j.valueCode]"></el-input>
</el-form-item>
<el-input
style="width: 300px; margin: 5px"
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[j.valueCode]"
></el-input>
</div>
</div>
<div v-else>
<div class="div-title3">{{ j.title }}</div>
<!-- <div v-else>
<div class="div-title">{{ j.title }}</div>
<div style="" v-for="(k, knd) in j.list" :key="knd">
<div class="div-title4" style="margin: 5px 0">
<div class="div-title">
{{ k.title }}
</div>
<el-checkbox
@ -532,15 +542,14 @@
class="human-body"
v-if="o.type == 'input'"
>
<el-form-item prop="ZLFA_YW_QT">
<el-input
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[k.valueCode]"
></el-input>
</el-form-item>
<el-input
style="width: 300px; margin: 5px"
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[k.valueCode]"
></el-input>
</div>
</div>
</div>
</div> -->
</div>
</div>
</el-card>
@ -567,11 +576,11 @@
<!-- 诊疗费用 -->
<el-card class="box-card">
<a name="诊疗费用"></a>
<div class="div-title2">诊疗费用</div>
<div class="div-title1">诊疗费用</div>
<el-form-item
label="总体费用按照区间进行选择"
prop="ZLFA_ZTFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -587,7 +596,7 @@
<el-form-item
label="检查费用按照区间进行选择"
prop="ZLFA_JCFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -603,7 +612,7 @@
<el-form-item
label="中医治疗费用按照区间进行选择"
prop="ZLFA_ZYZLFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -619,7 +628,7 @@
<el-form-item
label="药物费用按照区间进行选择"
prop="ZLFA_YWFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -636,27 +645,30 @@
<!-- 随访队列 -->
<el-card class="box-card">
<a name="随访队列"></a>
<div class="div-title2">随访队列</div>
<el-select
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['SFDL']"
multiple
placeholder="请选择"
>
<el-option
v-for="item in followupList"
:key="item.id"
:label="item.name"
:value="item.id"
<div class="div-title1" style="margin-bottom: 18px">随访队列</div>
<div style="width: 360px">
<!-- collapse-tags -->
<el-select
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['SFDL']"
multiple
placeholder="请选择"
>
</el-option>
</el-select>
<el-option
v-for="item in followupList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</div>
</el-card>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
:disabled="form.status != 0 && form.status != 3"
style="width: 140px"
style="width: 200px; margin: 50px 0 20px 0"
type="primary"
@click="submitDetailsForm"
> </el-button
@ -725,7 +737,6 @@ export default {
data() {
return {
followupList: [],
title: "", //
open: false, //
status: {
@ -808,13 +819,13 @@ export default {
title:
"行为技能训练:辅导有效的应对压力技巧,避免因情绪波动导致过度进食,训练正念饮食,提高对饥饿和饱足感的感知能力",
value: "行为技能训练",
type: "but",
type: "checkout",
},
{
title:
"目标设定与追踪:与患者共同设立短期和长期减重目标,定期进行进度评估,强化正面反馈,提高自我管理能力",
value: "目标设定与追踪",
type: "but",
type: "checkout",
},
],
},
@ -826,13 +837,13 @@ export default {
title:
"有氧运动:如快走、慢跑、游泳等,建议每周至少进行150分钟中等强度的有氧运动",
value: "有氧运动",
type: "but",
type: "checkout",
},
{
title:
"抗阻运动:如举重、俯卧撑等,建议每周进行2-3次抗阻运动",
value: "抗阻运动",
type: "but",
type: "checkout",
},
],
},
@ -844,80 +855,75 @@ export default {
title:
"限能量饮食:在限制能量摄入(日常饮食能量减去30%)的基础上,营养素比例符合平衡膳食的要求",
value: "限能量饮食",
type: "but",
type: "checkout",
},
{
title: "高蛋白饮食:每日蛋白质摄入量超过20%,但一般不高于35%",
value: "高蛋白饮食",
type: "but",
type: "checkout",
},
{
title: "低碳水化合物饮食:碳水化合物供能比一般在20%-40%",
value: "低碳水化合物饮食",
type: "but",
type: "checkout",
},
{
title:
"断食:如5+2模式,1周中5天相对正常进食,其他2天摄取平常的1/4能量",
value: "断食",
type: "but",
type: "checkout",
},
],
},
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
},
@ -966,19 +972,19 @@ export default {
title:
"科学膳食:避免午后摄入咖啡、茶、酒精等刺激性饮品,以及睡前过度进食",
value: "科学膳食",
type: "but",
type: "checkout",
},
{
title:
"充足日照:增加日间自然光照,减少夜间人工光源,特别是电子产品的使用",
value: "充足日照",
type: "but",
type: "checkout",
},
{
title:
"合理运动:推荐瑜伽、太极拳、八段锦等传统运动,有助于改善睡眠质量",
value: "合理运动",
type: "but",
type: "checkout",
},
],
},
@ -990,76 +996,71 @@ export default {
title:
"放松训练:包括渐进式肌肉放松训练、腹式呼吸、冥想等,可降低紧张与过度警觉,提高睡眠质量",
value: "放松训练",
type: "but",
type: "checkout",
},
{
title:
"音乐疗法:轻柔舒缓的音乐可以降低神经系统兴奋性,减轻焦虑情绪从而改善睡眠",
value: "音乐疗法",
type: "but",
type: "checkout",
},
{
title:
"认知调整:不灾难化和过分关注失眠,不因偶尔失眠而产生挫败感,培养失眠的耐受性",
value: "认知调整",
type: "but",
type: "checkout",
},
],
},
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF_SMZ",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_SMZ",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_SMZ",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW_SMZ",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
},
@ -1105,42 +1106,37 @@ export default {
list: [
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF_QT",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_QT",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_QT",
list: [
{
title: "填写",
type: "input",
},
],
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW_QT",
list: [
{
title: "填写",
type: "input",
},
],
},
@ -1188,15 +1184,15 @@ export default {
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_XWXLGY: [], //
ZLFA_YDGY: [], //
ZLFA_ZJ_LF: [], //-
ZLFA_ZJ_XW: [], //-
ZLFA_YW: [], //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_SHXG: [], //
ZLFA_XLTS: [], //
ZLFA_LCYYZL: "", //
ZLFA_LCYYZL: [], //
ZLFA_ZJ_LF_SMZ: [], // --
ZLFA_ZJ_XW_SMZ: [], // --
ZLFA_YW_SMZ: [], // -
@ -1340,7 +1336,6 @@ export default {
}).then((res) => {
let arrList = [
"JBXX_ZYZD",
"PG_RTCF_TXLX",
"PG_TZBS_JJTZ",
"SFDL",
"ZLFA_ZJ_LF",
@ -1350,6 +1345,11 @@ export default {
"ZLFA_ZJ_XW_SMZ",
"ZLFA_YW_SMZ",
"ZLFA_ZJ_LF_QT",
"ZLFA_XWXLGY",
"ZLFA_YDGY",
"ZLFA_LCYYZL",
"ZLFA_SHXG",
"ZLFA_XLTS",
];
let recordValDict = res.data.recordValDict;
for (let key in recordValDict) {
@ -1408,15 +1408,15 @@ export default {
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_XWXLGY: [], //
ZLFA_YDGY: [], //
ZLFA_ZJ_LF: [], //-
ZLFA_ZJ_XW: [], //-
ZLFA_YW: [], //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_SHXG: [], //
ZLFA_XLTS: [], //
ZLFA_LCYYZL: "", //
ZLFA_LCYYZL: [], //
ZLFA_ZJ_LF_SMZ: [], // --
ZLFA_ZJ_XW_SMZ: [], // --
ZLFA_YW_SMZ: [], // -
@ -1462,6 +1462,23 @@ export default {
<style scoped src="@/assets/styles/common.css"></style>
<!-- box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); -->
<style scoped>
.div-zlfy-label {
margin-bottom: 0;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.div-zlfy-label >>> .el-form-item__label {
width: 210px;
}
.div-title {
font-weight: bold;
vertical-align: middle;
font-size: 14px;
color: #606266;
line-height: 26px;
-webkit-box-sizing: border-box;
}
>>> .el-radio {
padding: 0 10px !important;
line-height: 34px;

22
acupuncture-前台/src/views/medicalFile/index.vue

@ -125,7 +125,7 @@
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="info"
plain
@ -147,7 +147,7 @@
v-hasPermi="['medicalFile:index:import']"
>导入</el-button
>
</el-col>
</el-col> -->
<el-col :span="1.5">
<el-button
type="warning"
@ -222,6 +222,18 @@
<span v-if="scope.row.gender == 1"></span>
</template>
</el-table-column>
<el-table-column
label="出生日期"
align="center"
show-overflow-tooltip
min-width="130"
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.birthDate, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
<el-table-column
label="年龄"
align="center"
@ -294,7 +306,7 @@
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.visitTime, "{y}-{m}-{d} {h}:{i}") }}
{{ parseTime(scope.row.visitTime, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
@ -307,7 +319,7 @@
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.dischargeTime, "{y}-{m}-{d} {h}:{i}") }}
{{ parseTime(scope.row.dischargeTime, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
@ -388,7 +400,7 @@
icon="el-icon-document-copy"
@click="handleReport(scope.row)"
v-hasPermi="['medicalFile:index:report']"
>评估报告</el-button
>评估报告</el-button
>
<el-button
:disabled="scope.row.status != 0 && scope.row.status != 3"

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

@ -90,7 +90,7 @@
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="info"
plain
@ -109,7 +109,7 @@
@click="handleImport"
>导入</el-button
>
</el-col>
</el-col> -->
<el-col :span="1.5">
<el-button
type="warning"

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

@ -47,6 +47,8 @@
<el-form-item label="出生日期" prop="SCWJ-BIRTH">
<el-date-picker
v-model="form['SCWJ-BIRTH']"
value-format=" yyyy-MM-dd"
format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
@change="calculateAge"
@ -98,8 +100,8 @@
</el-form-item>
<el-form-item label="结论" prop="SCWJ-JL">
<span :class="`BIMTips${BMIVerdict[form['SCWJ-JL']]}`">
{{ form["SCWJ-JL"] || "- - -" }}</span
>
{{ form["SCWJ-JL"] || "- - -" }}
</span>
</el-form-item>
</div>
</el-form>
@ -425,7 +427,7 @@ export default {
created() {
this.tenantId = this.$route.query.tenantId;
console.log("this.tenantId", this.tenantId);
localStorage.setItem("tenantId", this.tenantId);
this.getQueryHospitalNoToken(); // id
},
methods: {

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

@ -50,7 +50,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-form-item label="创建时间" prop="doctorNo">
<el-form-item label="筛查时间" prop="doctorNo">
<el-date-picker
v-model="queryTime"
type="daterange"
@ -139,13 +139,13 @@
min-width="120"
/>
<el-table-column
label="身高cm"
label="身高cm"
align="center"
prop="SCWJ-HEIGHT"
min-width="100"
/>
<el-table-column
label="体重kg"
label="体重kg"
align="center"
prop="SCWJ-WEIGHT"
min-width="100"
@ -158,18 +158,27 @@
/>
<el-table-column
show-overflow-tooltip
label="结论"
label="体重自评结论"
align="center"
prop="SCWJ-JL"
min-width="150"
>
<template slot-scope="scope">
<span :class="`BIMTips${BMIVerdict[scope.row['SCWJ-JL']]}`">
{{ scope.row["SCWJ-JL"] || "- - -" }}
</span>
</template>
</el-table-column>
<el-table-column
label="失眠自评(SRSS)"
label="失眠自评(SRSS)(分)"
align="center"
prop="SCWJ-RESULT"
min-width="150"
/>
min-width="180"
>
<template slot-scope="scope">
<span> {{ scope.row["SCWJ-RESULT"] }} </span>
</template>
</el-table-column>
<el-table-column
label="可接受的治疗方式"
align="center"
@ -177,14 +186,14 @@
min-width="200"
/>
<el-table-column
label="可接受的治疗周期"
label="可接受的治疗周期(月)"
align="center"
prop="SCWJ-ZLZQ"
min-width="150"
min-width="200"
/>
<el-table-column
fixed="right"
label="创建时间"
label="筛查时间"
align="center"
min-width="140"
>
@ -222,6 +231,12 @@ export default {
dicts: ["sys_notice_status", "sys_notice_type"],
data() {
return {
BMIVerdict: {
体重过轻: "1",
正常: "2",
超重: "3",
肥胖: "4",
},
queryTime: [], //
tenantsListData: [], //
loading: false, //
@ -319,6 +334,7 @@ export default {
endAge: "", //
tenantId: "", //
};
this.queryTime = [];
this.handleQuery();
},
//
@ -344,6 +360,18 @@ export default {
</script>
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
.BIMTips1 {
color: #cccccc;
}
.BIMTips2 {
color: #66cc00;
}
.BIMTips3 {
color: #c3c300;
}
.BIMTips4 {
color: #ff9900;
}
.form-item-age {
display: flex;
align-items: center;

18
acupuncture-后台/src/api/screening.js

@ -3,7 +3,7 @@ import request from "@/utils/request";
// 通过组织id查询医院信息
export function queryHospitalNoToken(data) {
return request({
url: "admin/web/queryTenantById",
url: "web/admin/queryTenantById",
method: "post",
data: data,
});
@ -11,7 +11,7 @@ export function queryHospitalNoToken(data) {
// 创建筛查
export function create(data) {
return request({
url: "admin/screening/createNoToken",
url: "screening/admin/createNoToken",
method: "post",
data: data,
});
@ -19,7 +19,7 @@ export function create(data) {
// 通过code提交数据
export function screenSave(data) {
return request({
url: "admin/screening/save",
url: "screening/admin/save",
method: "post",
data: data,
});
@ -27,7 +27,7 @@ export function screenSave(data) {
// 提交筛查上报数据
export function screenSubmit(data) {
return request({
url: "admin/screening/submitNoToken",
url: "screening/admin/submitNoToken",
method: "post",
data: data,
});
@ -37,7 +37,7 @@ export function screenSubmit(data) {
// 筛查二维码 列表
export function queryScreenList(data) {
return request({
url: "admin/wxQrCode/queryScreenList",
url: "wxQrCode/admin/queryScreenList",
method: "post",
data: data,
});
@ -45,7 +45,7 @@ export function queryScreenList(data) {
// 添加筛查二维码
export function addScreen(data) {
return request({
url: "admin/wxQrCode/addScreen",
url: "wxQrCode/admin/addScreen",
method: "post",
data: data,
});
@ -53,7 +53,7 @@ export function addScreen(data) {
// 删除筛查二维码
export function deleteScreen(data) {
return request({
url: "admin/wxQrCode/deleteScreen",
url: "wxQrCode/admin/deleteScreen",
method: "post",
data: data,
});
@ -61,7 +61,7 @@ export function deleteScreen(data) {
// // 导出二维码
export function exportQr(data) {
return request({
url: "admin/wxQrCode/exportScreen",
url: "wxQrCode/admin/exportScreen",
method: "post",
data: data,
});
@ -70,7 +70,7 @@ export function exportQr(data) {
// ------ 筛查列表 ------
export function queryDetail(data) {
return request({
url: "admin/screening/queryDetail",
url: "screening/admin/queryDetail",
method: "post",
data: data,
});

12
acupuncture-后台/src/views/followFile/subjects.vue

@ -38,11 +38,11 @@
/>
</el-select>
</el-form-item>
<el-form-item label="" prop="queueId">
<!-- <el-form-item label="" prop="queueId">
<el-checkbox-group v-model="haveQueue">
<el-checkbox>未参加队列人员</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
@ -369,10 +369,10 @@ export default {
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.param.haveQueue = "";
if (this.haveQueue) {
this.queryParams.param.haveQueue = 0;
}
// this.queryParams.param.haveQueue = "";
// if (this.haveQueue) {
// this.queryParams.param.haveQueue = 0;
// }
this.queryParams.pageNum = 1;
this.getList();
},

12
acupuncture-后台/src/views/index.vue

@ -13,21 +13,13 @@
</div>
<div>
<el-card shadow="always">
<search
@picker-change="pickerChage"
title="诊疗信息统计"
type="2"
></search>
<search @picker-change="pickerChage" title="病情评估" type="2"></search>
</el-card>
<JM ref="JM"></JM>
</div>
<div>
<el-card shadow="always">
<search
@picker-change="pickerChage"
title="治疗类型统计"
type="3"
></search>
<search @picker-change="pickerChage" title="诊疗信息" type="3"></search>
</el-card>
<XGZL ref="XGZL"></XGZL>
</div>

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

@ -21,6 +21,9 @@
<el-descriptions-item label="性别">
{{ form.gender == 0 ? "男" : "女" }}
</el-descriptions-item>
<el-descriptions-item label="出生日期">
{{ parseTime(form.birthDate, "{y}-{m}-{d}") }}
</el-descriptions-item>
<el-descriptions-item label="年龄">
{{ form.age }}
</el-descriptions-item>
@ -30,8 +33,8 @@
<el-descriptions-item label="门诊号/住院号">
{{ form.visitNumber }}
</el-descriptions-item>
<el-descriptions-item label="门诊时间/住院时间">
{{ form.visitTime }}
<el-descriptions-item label="门诊/住院时间">
{{ parseTime(form.visitTime, "{y}-{m}-{d}") }}
</el-descriptions-item>
<el-descriptions-item label="责任医生">
{{ form.doctor }}
@ -80,9 +83,9 @@
<a name="病情评估"></a>
<div class="div-title1">病情评估</div>
<div class="div-title2">
人体成分
<!-- <span @click="getHumanBody" class="foem-item-pg">同步</span>
<span
人体成分分析
<!-- <span @click="getHumanBody" class="foem-item-pg">同步</span> -->
<!-- <span
style="margin-left: 10px"
@click="getHumanBodyReport"
class="foem-item-pg"
@ -126,7 +129,7 @@
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="蛋白质" prop="PG_RTCF_GZ">
<el-form-item label="质" prop="PG_RTCF_GZ">
<el-input
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['PG_RTCF_GZ']"
@ -211,12 +214,12 @@
/>
</el-form-item>
</div>
</el-card>
<el-card class="box-card">
<div style="height: 10px"></div>
<a name="中医体质辨识"></a>
<div class="div-title1">中医体质辨识</div>
<div class="div-title2">中医体质辨识</div>
<div>
<el-form-item
class="item-form-jjtz"
prop="PG_TZBS_ZYTZ"
label="主要体质"
style="margin-bottom: 0"
@ -237,7 +240,7 @@
class="item-form-jjtz"
prop="PG_TZBS_JJTZ"
label="兼夹体质"
style="margin-bottom: 0"
style="margin-bottom: 5px"
>
<div style="width: 100%">
<el-checkbox-group
@ -254,12 +257,9 @@
</div>
</el-form-item>
</div>
</el-card>
<!-- 体态评估 -->
<el-card class="box-card">
<div style="height: 10px"></div>
<a name="体态评估"></a>
<div>
<div class="div-title1">量表评估</div>
<div class="div-title2">体态评估</div>
<div class="human-body">
<el-form-item label="" prop="PG_TT_TAPS_DF">
@ -320,6 +320,7 @@
/>
</el-form-item>
</div>
<div style="height: 10px"></div>
<div class="div-title2">失眠评估</div>
<div class="human-body">
<el-form-item prop="PG_SM_PHQ-9_DF">
@ -387,6 +388,7 @@
/>
</el-form-item>
</div>
<div style="height: 10px"></div>
<div class="div-title2">焦虑评估</div>
<div class="human-body">
<el-form-item prop="PG_JL_HAMD-24_DF">
@ -431,6 +433,7 @@
</div>
</div>
</el-card>
<!-- 治疗类型 -->
<el-card class="box-card">
<a name="治疗类型"></a>
@ -449,7 +452,7 @@
<!-- 诊疗方法 -->
<el-card class="box-card">
<a name="诊疗方法"></a>
<div style="font-size: 22px; margin-bottom: 14px" class="div-title1">
<div style="font-size: 22px; margin-bottom: 0px" class="div-title1">
诊疗方法
</div>
<div
@ -457,10 +460,15 @@
:key="ind"
v-if="getzzffShow(i.title)"
>
<div class="div-title2">{{ i.title }}</div>
<div
class="div-title2"
style="line-height: 36px; margin: 14px 0 0 0"
>
{{ i.title }}
</div>
<div v-for="(j, jnd) in i.list" :key="jnd">
<div v-if="j.title != '针灸疗法'">
<div class="div-title3">{{ j.title }}</div>
<div>
<div class="div-title">{{ j.title }}</div>
<el-radio
:disabled="form.status != 0 && form.status != 3"
border
@ -493,15 +501,17 @@
class="human-body"
v-if="o.type == 'input'"
>
<el-form-item prop="ZLFA_ZJ_XW_QT">
<el-input v-model="detailsForm[j.valueCode]"></el-input>
</el-form-item>
<el-input
style="width: 300px; margin: 5px"
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[j.valueCode]"
></el-input>
</div>
</div>
<div v-else>
<div class="div-title3">{{ j.title }}</div>
<!-- <div v-else>
<div class="div-title">{{ j.title }}</div>
<div style="" v-for="(k, knd) in j.list" :key="knd">
<div class="div-title4" style="margin: 5px 0">
<div class="div-title">
{{ k.title }}
</div>
<el-checkbox
@ -532,15 +542,14 @@
class="human-body"
v-if="o.type == 'input'"
>
<el-form-item prop="ZLFA_YW_QT">
<el-input
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[k.valueCode]"
></el-input>
</el-form-item>
<el-input
style="width: 300px; margin: 5px"
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm[k.valueCode]"
></el-input>
</div>
</div>
</div>
</div> -->
</div>
</div>
</el-card>
@ -567,11 +576,11 @@
<!-- 诊疗费用 -->
<el-card class="box-card">
<a name="诊疗费用"></a>
<div class="div-title2">诊疗费用</div>
<div class="div-title1">诊疗费用</div>
<el-form-item
label="总体费用按照区间进行选择"
prop="ZLFA_ZTFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -587,7 +596,7 @@
<el-form-item
label="检查费用按照区间进行选择"
prop="ZLFA_JCFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -603,7 +612,7 @@
<el-form-item
label="中医治疗费用按照区间进行选择"
prop="ZLFA_ZYZLFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -619,7 +628,7 @@
<el-form-item
label="药物费用按照区间进行选择"
prop="ZLFA_YWFY"
style="margin-bottom: 0"
class="div-zlfy-label"
>
<el-radio-group
:disabled="form.status != 0 && form.status != 3"
@ -636,27 +645,30 @@
<!-- 随访队列 -->
<el-card class="box-card">
<a name="随访队列"></a>
<div class="div-title2">随访队列</div>
<el-select
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['SFDL']"
multiple
placeholder="请选择"
>
<el-option
v-for="item in followupList"
:key="item.id"
:label="item.name"
:value="item.id"
<div class="div-title1" style="margin-bottom: 18px">随访队列</div>
<div style="width: 360px">
<!-- collapse-tags -->
<el-select
:disabled="form.status != 0 && form.status != 3"
v-model="detailsForm['SFDL']"
multiple
placeholder="请选择"
>
</el-option>
</el-select>
<el-option
v-for="item in followupList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</div>
</el-card>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
:disabled="form.status != 0 && form.status != 3"
style="width: 140px"
style="width: 200px; margin: 50px 0 20px 0"
type="primary"
@click="submitDetailsForm"
> </el-button
@ -725,7 +737,6 @@ export default {
data() {
return {
followupList: [],
title: "", //
open: false, //
status: {
@ -808,13 +819,13 @@ export default {
title:
"行为技能训练:辅导有效的应对压力技巧,避免因情绪波动导致过度进食,训练正念饮食,提高对饥饿和饱足感的感知能力",
value: "行为技能训练",
type: "but",
type: "checkout",
},
{
title:
"目标设定与追踪:与患者共同设立短期和长期减重目标,定期进行进度评估,强化正面反馈,提高自我管理能力",
value: "目标设定与追踪",
type: "but",
type: "checkout",
},
],
},
@ -826,13 +837,13 @@ export default {
title:
"有氧运动:如快走、慢跑、游泳等,建议每周至少进行150分钟中等强度的有氧运动",
value: "有氧运动",
type: "but",
type: "checkout",
},
{
title:
"抗阻运动:如举重、俯卧撑等,建议每周进行2-3次抗阻运动",
value: "抗阻运动",
type: "but",
type: "checkout",
},
],
},
@ -844,80 +855,75 @@ export default {
title:
"限能量饮食:在限制能量摄入(日常饮食能量减去30%)的基础上,营养素比例符合平衡膳食的要求",
value: "限能量饮食",
type: "but",
type: "checkout",
},
{
title: "高蛋白饮食:每日蛋白质摄入量超过20%,但一般不高于35%",
value: "高蛋白饮食",
type: "but",
type: "checkout",
},
{
title: "低碳水化合物饮食:碳水化合物供能比一般在20%-40%",
value: "低碳水化合物饮食",
type: "but",
type: "checkout",
},
{
title:
"断食:如5+2模式,1周中5天相对正常进食,其他2天摄取平常的1/4能量",
value: "断食",
type: "but",
type: "checkout",
},
],
},
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
},
@ -966,19 +972,19 @@ export default {
title:
"科学膳食:避免午后摄入咖啡、茶、酒精等刺激性饮品,以及睡前过度进食",
value: "科学膳食",
type: "but",
type: "checkout",
},
{
title:
"充足日照:增加日间自然光照,减少夜间人工光源,特别是电子产品的使用",
value: "充足日照",
type: "but",
type: "checkout",
},
{
title:
"合理运动:推荐瑜伽、太极拳、八段锦等传统运动,有助于改善睡眠质量",
value: "合理运动",
type: "but",
type: "checkout",
},
],
},
@ -990,76 +996,71 @@ export default {
title:
"放松训练:包括渐进式肌肉放松训练、腹式呼吸、冥想等,可降低紧张与过度警觉,提高睡眠质量",
value: "放松训练",
type: "but",
type: "checkout",
},
{
title:
"音乐疗法:轻柔舒缓的音乐可以降低神经系统兴奋性,减轻焦虑情绪从而改善睡眠",
value: "音乐疗法",
type: "but",
type: "checkout",
},
{
title:
"认知调整:不灾难化和过分关注失眠,不因偶尔失眠而产生挫败感,培养失眠的耐受性",
value: "认知调整",
type: "but",
type: "checkout",
},
],
},
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF_SMZ",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_SMZ",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_SMZ",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW_SMZ",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "checkout",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "checkout",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "checkout",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "checkout",
},
],
},
@ -1105,42 +1106,37 @@ export default {
list: [
{
title: "针灸疗法",
valueCode: "ZLFA_ZJ_LF_QT",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_QT",
list: [
{
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
title: "毫针/电针疗法",
type: "checkout",
},
{
title: "温针疗法",
type: "checkout",
},
{
title: "耳穴贴压疗法",
type: "checkout",
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_QT",
list: [
{
title: "填写",
type: "input",
},
],
title: "穴位埋针法",
type: "checkout",
},
{
title: "穴位埋线法",
type: "checkout",
},
],
},
{
title: "针灸穴位",
valueCode: "ZLFA_ZJ_XW_QT",
list: [
{
title: "填写",
type: "input",
},
],
},
@ -1188,15 +1184,15 @@ export default {
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_XWXLGY: [], //
ZLFA_YDGY: [], //
ZLFA_ZJ_LF: [], //-
ZLFA_ZJ_XW: [], //-
ZLFA_YW: [], //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_SHXG: [], //
ZLFA_XLTS: [], //
ZLFA_LCYYZL: "", //
ZLFA_LCYYZL: [], //
ZLFA_ZJ_LF_SMZ: [], // --
ZLFA_ZJ_XW_SMZ: [], // --
ZLFA_YW_SMZ: [], // -
@ -1340,7 +1336,6 @@ export default {
}).then((res) => {
let arrList = [
"JBXX_ZYZD",
"PG_RTCF_TXLX",
"PG_TZBS_JJTZ",
"SFDL",
"ZLFA_ZJ_LF",
@ -1350,6 +1345,11 @@ export default {
"ZLFA_ZJ_XW_SMZ",
"ZLFA_YW_SMZ",
"ZLFA_ZJ_LF_QT",
"ZLFA_XWXLGY",
"ZLFA_YDGY",
"ZLFA_LCYYZL",
"ZLFA_SHXG",
"ZLFA_XLTS",
];
let recordValDict = res.data.recordValDict;
for (let key in recordValDict) {
@ -1408,15 +1408,15 @@ export default {
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_XWXLGY: [], //
ZLFA_YDGY: [], //
ZLFA_ZJ_LF: [], //-
ZLFA_ZJ_XW: [], //-
ZLFA_YW: [], //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_SHXG: [], //
ZLFA_XLTS: [], //
ZLFA_LCYYZL: "", //
ZLFA_LCYYZL: [], //
ZLFA_ZJ_LF_SMZ: [], // --
ZLFA_ZJ_XW_SMZ: [], // --
ZLFA_YW_SMZ: [], // -
@ -1462,6 +1462,23 @@ export default {
<style scoped src="@/assets/styles/common.css"></style>
<!-- box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); -->
<style scoped>
.div-zlfy-label {
margin-bottom: 0;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.div-zlfy-label >>> .el-form-item__label {
width: 210px;
}
.div-title {
font-weight: bold;
vertical-align: middle;
font-size: 14px;
color: #606266;
line-height: 26px;
-webkit-box-sizing: border-box;
}
>>> .el-radio {
padding: 0 10px !important;
line-height: 34px;

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

@ -241,6 +241,18 @@
<span v-if="scope.row.gender == 1"></span>
</template>
</el-table-column>
<el-table-column
label="出生日期"
align="center"
show-overflow-tooltip
min-width="130"
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.birthDate, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
<el-table-column
label="年龄"
align="center"
@ -313,7 +325,7 @@
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.visitTime, "{y}-{m}-{d} {h}:{i}") }}
{{ parseTime(scope.row.visitTime, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
@ -326,7 +338,7 @@
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.dischargeTime, "{y}-{m}-{d} {h}:{i}") }}
{{ parseTime(scope.row.dischargeTime, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
@ -414,7 +426,7 @@
icon="el-icon-document-copy"
@click="handleReport(scope.row)"
v-hasPermi="['medicalFile:index:report']"
>评估报告</el-button
>评估报告</el-button
>
<!-- <el-button
:disabled="scope.row.status != 0 && scope.row.status != 3"

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

@ -50,7 +50,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-form-item label="创建时间" prop="doctorNo">
<el-form-item label="筛查时间" prop="doctorNo">
<el-date-picker
v-model="queryTime"
type="daterange"
@ -139,13 +139,13 @@
min-width="120"
/>
<el-table-column
label="身高cm"
label="身高cm"
align="center"
prop="SCWJ-HEIGHT"
min-width="100"
/>
<el-table-column
label="体重kg"
label="体重kg"
align="center"
prop="SCWJ-WEIGHT"
min-width="100"
@ -158,18 +158,27 @@
/>
<el-table-column
show-overflow-tooltip
label="结论"
label="体重自评结论"
align="center"
prop="SCWJ-JL"
min-width="150"
>
<template slot-scope="scope">
<span :class="`BIMTips${BMIVerdict[scope.row['SCWJ-JL']]}`">
{{ scope.row["SCWJ-JL"] || "- - -" }}
</span>
</template>
</el-table-column>
<el-table-column
label="失眠自评(SRSS)"
label="失眠自评(SRSS)(分)"
align="center"
prop="SCWJ-RESULT"
min-width="150"
/>
min-width="180"
>
<template slot-scope="scope">
<span> {{ scope.row["SCWJ-RESULT"] }} </span>
</template>
</el-table-column>
<el-table-column
label="可接受的治疗方式"
align="center"
@ -177,14 +186,14 @@
min-width="200"
/>
<el-table-column
label="可接受的治疗周期"
label="可接受的治疗周期(月)"
align="center"
prop="SCWJ-ZLZQ"
min-width="150"
min-width="200"
/>
<el-table-column
fixed="right"
label="创建时间"
label="筛查时间"
align="center"
min-width="140"
>
@ -222,6 +231,12 @@ export default {
dicts: ["sys_notice_status", "sys_notice_type"],
data() {
return {
BMIVerdict: {
体重过轻: "1",
正常: "2",
超重: "3",
肥胖: "4",
},
queryTime: [], //
tenantsListData: [], //
loading: false, //
@ -319,6 +334,7 @@ export default {
endAge: "", //
tenantId: "", //
};
this.queryTime = [];
this.handleQuery();
},
//
@ -344,6 +360,18 @@ export default {
</script>
<style scoped src="@/assets/styles/common.css"></style>
<style scoped>
.BIMTips1 {
color: #cccccc;
}
.BIMTips2 {
color: #66cc00;
}
.BIMTips3 {
color: #c3c300;
}
.BIMTips4 {
color: #ff9900;
}
.form-item-age {
display: flex;
align-items: center;

Loading…
Cancel
Save