Browse Source

筛查、筛查二维码列表接口配置

newMaster
liuzhipeng 4 months ago
parent
commit
726b6da262
  1. 92
      acupuncture-前台/src/api/screening.js
  2. 316
      acupuncture-前台/src/views/screening/h5.vue
  3. 177
      acupuncture-前台/src/views/screening/qrCode.vue

92
acupuncture-前台/src/api/screening.js

@ -0,0 +1,92 @@
import request from "@/utils/request";
// ------ 筛查上报相关接口 ------
// 通过组织id查询医院信息
export function queryHospitalNoToken(data) {
return request({
url: "hospital/queryHospitalNoToken",
method: "post",
data: data,
});
}
// 创建筛查
export function create(data) {
return request({
url: "screening/createNoToken",
method: "post",
data: data,
});
}
// 通过code提交数据
export function screenSave(data) {
return request({
url: "screening/save",
method: "post",
data: data,
});
}
// 提交筛查上报数据
export function screenSubmit(data) {
return request({
url: "screening/submitNoToken",
method: "post",
data: data,
});
}
// ------ 筛查二维码相关接口 ------
// 筛查二维码 列表
export function queryScreenList(data) {
return request({
url: "/wxQrCode/queryScreenList",
method: "post",
data: data,
});
}
// 添加筛查二维码
export function addScreen(data) {
return request({
url: "/wxQrCode/addScreen",
method: "post",
data: data,
});
}
// 删除筛查二维码
export function deleteScreen(data) {
return request({
url: "/wxQrCode/deleteScreen",
method: "post",
data: data,
});
}
// // 导出二维码
// export function exportJmrs(data) {
// return request({
// url: "/wxQrCode/exportJmrs",
// method: "post",
// data: data,
// });
// }
// // 导出二维码
// export function exportZipScreenPath(data) {
// return request({
// url: "/wxQrCode/exportZipScreenPath",
// method: "post",
// data: data,
// });
// }
// // 导出海报二维码
// export function exportHbScreen(data) {
// return request({
// url: "/wxQrCode/exportHbZipScreenPath",
// method: "post",
// data: data,
// });
// }
// // 导出二维码
// export function exportScreen(data) {
// return request({
// url: "/wxQrCode/exportScreen",
// method: "post",
// data: data,
// });
// }

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

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div class="hospital">山西因孚社区</div> <div class="hospital">{{ hospitalName || "- - - -" }}</div>
<el-form <el-form
v-if="stepNum == 1" v-if="stepNum == 1"
:rules="rules" :rules="rules"
@ -12,31 +12,34 @@
<div class="card"> <div class="card">
<div class="card-title">基本信息</div> <div class="card-title">基本信息</div>
<div> <div>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="SCWJ-NAME">
<el-input v-model="form.name" placeholder="请输入姓名"></el-input> <el-input
v-model="form['SCWJ-NAME']"
placeholder="请输入姓名"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="性别" prop="sex"> <el-form-item label="性别" prop="SCWJ-SEX">
<el-radio v-model="form.sex" label="0"></el-radio> <el-radio v-model="form['SCWJ-SEX']" label="0"></el-radio>
<el-radio v-model="form.sex" label="1"></el-radio> <el-radio v-model="form['SCWJ-SEX']" label="1"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="出生日期" prop="dateOfBirth"> <el-form-item label="出生日期" prop="SCWJ-BIRTH">
<el-date-picker <el-date-picker
v-model="form.dateOfBirth" v-model="form['SCWJ-BIRTH']"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="年龄" prop="age"> <el-form-item label="年龄" prop="SCWJ-AGE">
<el-input <el-input
v-model="form.age" v-model="form['SCWJ-AGE']"
type="number" type="number"
placeholder="请输入姓名" placeholder="请输入姓名"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" prop="phone"> <el-form-item label="联系方式" prop="SCWJ-PHONE">
<el-input <el-input
v-model="form.phone" v-model="form['SCWJ-PHONE']"
type="number" type="number"
placeholder="请输入联系方式" placeholder="请输入联系方式"
></el-input> ></el-input>
@ -46,33 +49,33 @@
<!-- 身高体重BMI --> <!-- 身高体重BMI -->
<div class="card"> <div class="card">
<div class="card-title">体重自评</div> <div class="card-title">体重自评</div>
<el-form-item label="身高cm" prop="height"> <el-form-item label="身高cm" prop="SCWJ-HEIGHT">
<el-input <el-input
@blur="calculateBMI" @blur="calculateBMI"
v-model="form.height" v-model="form['SCWJ-HEIGHT']"
type="number" type="number"
placeholder="请输入身高" placeholder="请输入身高"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="体重kg" prop="weight"> <el-form-item label="体重kg" prop="SCWJ-WEIGHT">
<el-input <el-input
@blur="calculateBMI" @blur="calculateBMI"
v-model="form.weight" v-model="form['SCWJ-WEIGHT']"
type="number" type="number"
placeholder="请输入体重" placeholder="请输入体重"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="BMI" prop="BMI"> <el-form-item label="BMI" prop="SCWJ-BMI">
<el-input <el-input
:disabled="true" :disabled="true"
v-model="form.BMI" v-model="form['SCWJ-BMI']"
type="number" type="number"
placeholder="BMI" placeholder="BMI"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="结论" prop="verdict"> <el-form-item label="结论" prop="SCWJ-JL">
<span :class="`BIMTips${BMIVerdict[form.verdict]}`"> <span :class="`BIMTips${BMIVerdict[form['SCWJ-JL']]}`">
{{ form.verdict || "- - -" }}</span {{ form["SCWJ-JL"] || "- - -" }}</span
> >
</el-form-item> </el-form-item>
</div> </div>
@ -97,6 +100,9 @@
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
<div class="card-tips">
SRSS共有10个项目每个项目分5级评分1~5总分为每个项目得分之和评分愈高说明睡眠问题愈严重此量表最低分为10分基本无睡眠问题最高分为50分最严重
</div>
</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 type="primary" class="submit-box-but" @click="submitForm">
@ -114,17 +120,19 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { import {
queryPatient, create,
patientAdd, screenSave,
patientUpd, screenSubmit,
patientDel, queryHospitalNoToken,
} from "@/api/patientFile"; } from "@/api/screening.js";
export default { export default {
name: "Notice", name: "Notice",
dicts: ["sys_notice_status", "sys_notice_type"], dicts: ["sys_notice_status", "sys_notice_type"],
data() { data() {
return { return {
stepNum: 1, hospitalId: "",
hospitalName: "医院名称",
stepNum: 2, //
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
deptId: localStorage.getItem("hospitalId"), deptId: localStorage.getItem("hospitalId"),
@ -132,18 +140,7 @@ export default {
uploadFileUrl1: uploadFileUrl1:
process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", // process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", //
fileList: [], fileList: [],
//
form: {
name: "",
sex: "0",
dateOfBirth: "",
age: "",
phone: "",
height: "",
weight: "",
BMI: "",
verdict: "",
},
BMITips: [ BMITips: [
{ {
label: "偏瘦", label: "偏瘦",
@ -162,77 +159,7 @@ export default {
score: 28, score: 28,
}, },
], ],
//
rules: {
name: [
{
required: true,
message: "姓名不能为空",
trigger: "blur",
},
],
sex: [
{
required: true,
message: "性别不能为空",
trigger: "blur",
},
],
dateOfBirth: [
{
required: true,
message: "出生日期不能为空",
trigger: "change",
},
],
age: [
{
required: true,
message: "年龄不能为空",
trigger: "blur",
},
],
phone: [
{
required: true,
message: "联系方式不能为空",
trigger: "blur",
},
{
pattern: /^1[3456789]\d{9}$/,
message: "格式不正确",
trigger: "change",
},
],
age: [
{
required: true,
message: "年龄不能为空",
trigger: "blur",
},
],
height: [
{
required: true,
message: "身高不能为空",
trigger: "blur",
},
],
weight: [
{
required: true,
message: "体重不能为空",
trigger: "blur",
},
],
BMI: [
{
required: true,
message: "BMI不能为空",
trigger: "blur",
},
],
},
BMIVerdict: { BMIVerdict: {
偏瘦: "1", 偏瘦: "1",
正常: "2", 正常: "2",
@ -360,18 +287,105 @@ export default {
{ label: "乏力、没精神、做事效率低", score: 5 }, { label: "乏力、没精神、做事效率低", score: 5 },
], ],
}, },
], ], //
form: {
"SCWJ-NAME": "",
"SCWJ-SEX": "",
"SCWJ-BIRTH": "",
"SCWJ-AGE": "",
"SCWJ-PHONE": "",
"SCWJ-HEIGHT": "",
"SCWJ-WEIGHT": "",
"SCWJ-BMI": "",
"SCWJ-JL": "",
},
//
rules: {
"SCWJ-NAME": [
{
required: true,
message: "姓名不能为空",
trigger: "blur",
},
],
"SCWJ-SEX": [
{
required: true,
message: "性别不能为空",
trigger: "blur",
},
],
"SCWJ-BIRTH": [
{
required: true,
message: "出生日期不能为空",
trigger: "change",
},
],
"SCWJ-AGE": [
{
required: true,
message: "年龄不能为空",
trigger: "blur",
},
],
"SCWJ-PHONE": [
{
required: true,
message: "联系方式不能为空",
trigger: "blur",
},
{
pattern: /^1[3456789]\d{9}$/,
message: "格式不正确",
trigger: "change",
},
],
"SCWJ-HEIGHT": [
{
required: true,
message: "身高不能为空",
trigger: "blur",
},
],
"SCWJ-WEIGHT": [
{
required: true,
message: "体重不能为空",
trigger: "blur",
},
],
"SCWJ-BMI": [
{
required: true,
message: "BMI不能为空",
trigger: "blur",
},
],
},
}; };
}, },
created() {}, created() {
this.hospitalId = this.$route.query.hospitalId;
// this.getqueryHospitalNoToken(); // id
},
methods: { methods: {
// id
getQueryHospitalNoToken() {
let params = {
hospitalId: this.$route.query.hospitalId,
};
queryHospitalNoToken(params).then((response) => {
this.hospitalName = response.data || "";
});
},
// BIM // BIM
calculateBMI() { calculateBMI() {
if (this.form.weight && this.form.height) { if (this.form["SCWJ-WEIGHT"] && this.form["SCWJ-HEIGHT"]) {
const weight = parseFloat(this.form.weight); const weight = parseFloat(this.form.weight);
const height = parseFloat(this.form.height); const height = parseFloat(this.form.height);
const bmi = weight / (height / 100) ** 2; const bmi = weight / (height / 100) ** 2;
this.form.BMI = bmi.toFixed(2); this.form["SCWJ-BMI"] = bmi.toFixed(2);
this.getBMITips(bmi); this.getBMITips(bmi);
} }
}, },
@ -394,7 +408,7 @@ export default {
if (bmi >= 28) { if (bmi >= 28) {
tips = "肥胖"; tips = "肥胖";
} }
this.form.verdict = tips; this.form["SCWJ-JL"] = tips;
}, },
// - pdg // - pdg
handleUploadPdfAdd1(res) { handleUploadPdfAdd1(res) {
@ -434,31 +448,17 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
/** 基本信息 */ /** 基本信息 */
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate(async (valid) => {
if (valid) { if (valid) {
// patientAdd(this.form).then((response) => {
// this.$modal.msgSuccess("");
// this.open = false;
// this.getList();
// });
this.stepNum++; this.stepNum++;
} }
}); });
}, },
// //
scaleSubmitForm() { async scaleSubmitForm() {
// ------ ------
let score = 0; let score = 0;
// , topic${i} // , topic${i}
for (let i = 1; i <= 24; i++) { for (let i = 1; i <= 24; i++) {
@ -466,7 +466,52 @@ export default {
score += this.form[`topic${i}`]; score += this.form[`topic${i}`];
} }
} }
console.log("score", score); // ------ ------
const params = {
param: {
type: 33,
hospitalId: this.hospitalId,
centerId: this.hospitalId,
},
};
create(params).then(async (res) => {
this.detailId = res.data.detailId;
this.id = res.data.id;
// ------ ------
//
await this.saveAnswer(form["SCWJ-NAME"], "SCWJ-NAME");
await this.saveAnswer(form["SCWJ-SEX"], "SCWJ-SEX");
await this.saveAnswer(form["SCWJ-BIRTH"], "SCWJ-BIRTH");
await this.saveAnswer(form["SCWJ-AGE"], "SCWJ-AGE");
await this.saveAnswer(form["SCWJ-PHONE"], "SCWJ-PHONE");
await this.saveAnswer(form["SCWJ-HEIGHT"], "SCWJ-HEIGHT");
await this.saveAnswer(form["SCWJ-WEIGHT"], "SCWJ-WEIGHT");
await this.saveAnswer(form["SCWJ-BMI"], "SCWJ-BMI");
await this.saveAnswer(form["SCWJ-JL"], "SCWJ-JL");
//
await this.saveAnswer(score, "SCWJ-RESULT");
// ------ ------
const submitParams = { param: { detailId: this.detailId } };
await screenSubmit(submitParams).then((response) => {
this.$modal.msgSuccess("提交成功");
});
});
},
//
async saveAnswer(value, str) {
try {
const params = {
param: {
answer: value,
code: str,
detailId: this.detailId,
},
};
await screenSave(params).then((response) => {});
} catch (error) {
console.log("error", error);
this.$message.error("网络异常,请检查您的网络!");
}
}, },
}, },
}; };
@ -535,7 +580,10 @@ export default {
font-size: 20px; font-size: 20px;
margin-bottom: 16px; margin-bottom: 16px;
} }
.card-tips {
font-size: 14px;
color: #999999;
}
/* */ /* */
.app-container { .app-container {
/* background: linear-gradient(to bottom, #70483e, #f7f8fa); */ /* background: linear-gradient(to bottom, #70483e, #f7f8fa); */

177
acupuncture-前台/src/views/screening/qrCode.vue

@ -173,11 +173,11 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { import {
queryPatient, queryScreenList,
patientAdd, addScreen,
patientUpd, deleteScreen,
patientDel, queryHospitalNoToken,
} from "@/api/patientFile"; } from "@/api/screening.js";
// import { tenantsList } from "@/api/member"; // import { tenantsList } from "@/api/member";
export default { export default {
name: "Notice", name: "Notice",
@ -185,70 +185,13 @@ export default {
data() { data() {
return { return {
tenantsListData: [], // tenantsListData: [], //
headers: {
Authorization: "Bearer " + getToken(),
deptId: localStorage.getItem("hospitalId"),
},
uploadFileUrl1:
process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", //
fileList: [],
//
medicalHistory: [
"高血压",
"脑血管病",
"恶性肿瘤",
"冠心病",
"精神疾病",
"胃和十二指肠溃疡",
"肥胖症",
"骨质疏松症",
"遗传性、先天性疾病",
"糖尿病",
"慢性肺系疾病",
"高脂血症",
"肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)",
"过敏性疾病",
"关节炎",
"痛风",
"肾炎、肾病",
"高脂血症",
],
idCardType: [
{
label: "身份证",
value: 0,
},
{
label: "护照或外国人永居证",
value: 1,
},
{
label: "港澳居民来往内地通行",
value: 2,
},
{
label: "台湾居民来往大陆通行证",
value: 3,
},
{
label: "其他",
value: 4,
},
],
idCardTypeValue: {
0: "身份证",
1: "护照或外国人永居证",
2: "港澳居民来往内地通行",
3: "台湾居民来往大陆通行证",
4: "其他",
},
loading: false, // loading: false, //
ids: [], // ids: [], //
single: true, // single: true, //
multiple: true, // multiple: true, //
showSearch: true, // showSearch: true, //
total: 0, // total: 0, //
listDat: [{}], // listDat: [], //
title: "", // title: "", //
open: false, // open: false, //
importOpen: false, // importOpen: false, //
@ -257,16 +200,9 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
param: { param: {
keywords: "", //
startAge: "", //
endAge: "", //
tenantId: "", // tenantId: "", //
createBy: "", //
sourceId: "", //
}, },
}, },
formDisabled: false,
importform: {},
// //
form: {}, form: {},
// //
@ -278,74 +214,11 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
gender: [
{
required: true,
message: "性别不能为空",
trigger: "change",
},
],
birthDate: [
{
required: true,
message: "出生日期不能为空",
trigger: "change",
},
],
phone: [
{
required: true,
message: "手机号码不能为空",
trigger: "blur",
},
{
pattern: /^1[3456789]\d{9}$/,
message: "手机号码格式不正确",
trigger: "blur",
},
],
ethnicity: [
{
required: true,
message: "民族不能为空",
trigger: "blur",
},
],
idCardType: [
{
required: true,
message: "证件类型不能为空",
trigger: "blur",
},
],
idCard: [
{
required: true,
message: "证件号码不能为空",
trigger: "blur",
},
],
educationYears: [
{
required: true,
message: "受教育年限不能为空",
trigger: "blur",
},
],
currentIllnessHistory: [
{
required: true,
message: "现病史不能为空",
trigger: "blur",
},
],
}, },
}; };
}, },
created() { created() {
let idCard = this.$route.query.idCard; // this.getList(); //
this.queryParams.param.keywords = idCard || "";
this.getList(); //
// this.getTenantsList(); // // this.getTenantsList(); //
}, },
methods: { methods: {
@ -358,39 +231,11 @@ export default {
this.tenantsListData = res.data.list; this.tenantsListData = res.data.list;
}); });
}, },
// - pdg
handleUploadPdfAdd1(res) {
if (res.code == 200) {
this.importOpen = false;
this.getList();
this.$modal.msgSuccess("导入成功");
} else {
this.$message.error(res.msg || "导入失败");
this.fileList = [];
}
},
// -
handleBeforeUpload1(file) {
const isLt2M = file.size / 1024 / 1024 < 100;
//
if (!isLt2M) {
this.$message.error("上传文件大小不能超过 100MB!");
}
return isLt2M;
},
// -
handleBeforePdfUpload1(file) {
const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
const whiteList = ["xlsx", "xls"];
if (whiteList.indexOf(fileSuffix) === -1) {
this.$message.error("上传文件只能是.xlsx, .xls");
return false;
}
},
/** 查询公告列表 */ /** 查询公告列表 */
getList() { getList() {
this.loading = true; this.loading = true;
queryPatient(this.queryParams).then((res) => { queryScreenList(this.queryParams).then((res) => {
this.listDat = res.data.list; this.listDat = res.data.list;
this.total = res.data.total; this.total = res.data.total;
this.loading = false; this.loading = false;
@ -435,7 +280,7 @@ export default {
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
patientUpd(this.form).then((response) => { addScreen(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -450,7 +295,7 @@ export default {
this.$modal this.$modal
.confirm("是否确认删除当前选择的数据?") .confirm("是否确认删除当前选择的数据?")
.then(function () { .then(function () {
return patientDel({ return deleteScreen({
idList: idList, idList: idList,
}); });
}) })

Loading…
Cancel
Save