Browse Source

init

master
领悟 5 months ago
parent
commit
fc4643995c
  1. 19
      src/api/index.js
  2. 168
      src/config/axios.js
  3. 540
      src/config/code.js
  4. 26
      src/layouts/BasicLayout.vue
  5. 21
      src/main.js
  6. 132
      src/views/Patient/components/patient-create.vue
  7. 4
      src/views/Patient/components/patient-detail.vue
  8. 2
      src/views/Patient/index.vue
  9. 35
      src/views/document/index.vue
  10. 700
      src/views/thrombolysis/components/throm-ing-date.vue
  11. 39
      src/views/thrombolysis/components/throm-ing.vue
  12. 2
      src/views/thrombolysis/components/throm-report.vue

19
src/api/index.js

@ -25,6 +25,17 @@ export const queryTriageList = (params) =>
export const create = (params) =>
axios.post(`${proxyUrl1}/firstAid/create`, params);
//根据id,查询患者信息,回写患者信息
export const queryById = (params) =>
axios.post(`${proxyUrl1}/firstAid/queryById`, params);
// 编辑患者
export const eduitPatient = (params) =>
axios.post(`${proxyUrl1}//firstAid/eduitPatient`, params);
// 查病历数据
export const queryAidRecord = (firstAidId, codeList) =>
axios.post(`${proxyUrl1}/firstAid/queryAidRecord`, {
@ -310,7 +321,7 @@ export const createPatient = (params) =>
axios.post(`${proxyUrl1}/firstAid/createPatient`, {
...params
});
export const eduitPatient = (params) =>
axios.post(`${proxyUrl1}/firstAid/eduitPatient`, {
...params
});
// export const eduitPatient = (params) =>
// axios.post(`${proxyUrl1}/firstAid/eduitPatient`, {
// ...params
// });

168
src/config/axios.js

@ -4,8 +4,12 @@ import Vue from 'vue';
import axios from 'axios';
import router from '../router/index';
import store from '../store/index';
import { message } from 'ant-design-vue';
let { proxyUrl } = require('@/config/setting');
import {
message
} from 'ant-design-vue';
let {
proxyUrl
} = require('@/config/setting');
let config = {
timeout: 10000, // Timeout
};
@ -37,87 +41,93 @@ axios.interceptors.request.use(
// Add a response interceptor
axios.interceptors.response.use(
async (res) => {
store.commit('storm/setSpinning', false);
const { code, msg, data } = res.data;
if (code === 200) {
return res.data;
} else if (code === 401) {
localStorage.setItem('anyringToken', null);
let [err, data] = await store.dispatch('storm/toLogin', {
padNo: store.state.storm.padNo,
});
let token = data.access_token;
const config = res.config;
let reTry = config.reTry + 1;
let cfg = Object.assign({}, config);
cfg.reTry = reTry;
cfg.headers['Authorization'] = `Bearer ${token}`;
// console.log('token222: ', token);
let resNew;
if (reTry < 3 && token) {
resNew = await axios(cfg);
store.commit('storm/setSpinning', false);
const {
code,
msg,
data
} = res.data;
if (code === 200) {
return res.data;
} else if (code === 401) {
router.replace('/login')
return Promise.resolve(res.data);
// localStorage.setItem('anyringToken', null);
// let [err, data] = await store.dispatch('storm/toLogin', {
// padNo: store.state.storm.padNo,
// });
// let token = data.access_token;
// const config = res.config;
// let reTry = config.reTry + 1;
// let cfg = Object.assign({}, config);
// cfg.reTry = reTry;
// cfg.headers['Authorization'] = `Bearer ${token}`;
// // console.log('token222: ', token);
// let resNew;
// if (reTry < 3 && token) {
// resNew = await axios(cfg);
// }
// return Promise.resolve(resNew || res.data);
} else {
message.error(msg || '请求发生错误');
return Promise.resolve(res.data);
}
return Promise.resolve(resNew || res.data);
} else {
message.error(msg || '请求发生错误');
return Promise.resolve(res.data);
}
},
(error) => {
//异常关闭loading
store.commit('storm/setSpinning', false);
// Do something with response error
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = '请求错误';
break;
case 401:
error.message = '';
// executeSkip();
break;
case 403:
error.message = '拒绝访问';
break;
case 404:
error.message = '请求出错';
break;
case 408:
error.message = '请求超时';
break;
case 500:
error.message = '请求错误,请稍后重试';
//设置响应后加载状态
break;
case 501:
error.message = '服务未实现';
break;
case 502:
error.message = '网络错误';
break;
case 503:
error.message = '服务不可用';
break;
case 504:
error.message = '网络超时';
break;
case 505:
error.message = 'HTTP版本不受支持';
break;
default:
error.message = '连接出错';
},
(error) => {
//异常关闭loading
store.commit('storm/setSpinning', false);
// Do something with response error
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = '请求错误';
break;
case 401:
error.message = '';
// executeSkip();
break;
case 403:
error.message = '拒绝访问';
break;
case 404:
error.message = '请求出错';
break;
case 408:
error.message = '请求超时';
break;
case 500:
error.message = '请求错误,请稍后重试';
//设置响应后加载状态
break;
case 501:
error.message = '服务未实现';
break;
case 502:
error.message = '网络错误';
break;
case 503:
error.message = '服务不可用';
break;
case 504:
error.message = '网络超时';
break;
case 505:
error.message = 'HTTP版本不受支持';
break;
default:
error.message = '连接出错';
}
} else {
error.message = '网络异常,请稍后重试';
}
} else {
error.message = '网络异常,请稍后重试';
}
if (error.message) {
message.error(error.message);
if (error.message) {
message.error(error.message);
}
return Promise.reject(error);
}
return Promise.reject(error);
}
);
Plugin.install = function (Vue) {
Plugin.install = function(Vue) {
Vue.axios = _axios;
window.axios = _axios;
Object.defineProperties(Vue.prototype, {
@ -141,4 +151,4 @@ Plugin.install = function (Vue) {
Vue.use(Plugin);
export default Plugin;
export default Plugin;

540
src/config/code.js

@ -918,90 +918,90 @@ export const AID_CODE = {
};
// 静脉溶栓
export const JMRS_CODE = {
'JMRS-Y': {
text: '是否进行静脉溶栓',
type: 'radio',
default: '',
range: {
: '是',
: '否',
},
},
'JMRS-WRSYY': {
text: '未溶栓原因',
type: 'checkbox',
default: [''],
range: ['超时间创', '禁忌症', '患者/家属拒绝', '其他'],
showType: {
type: 'value',
code: 'JMRS-Y',
value: '否',
},
},
'JMRS-WRSYY-ELSE': {
text: '',
type: 'input',
inputType: 'text',
default: '',
showType: {
type: 'valueInclude',
code: 'JMRS-WRSYY',
value: '其他',
},
},
'JMRS-TH-TIME': {
text: '谈话开始时间',
type: 'datetime',
default: '',
valueType: 'string',
},
'JMRS-SIGN': {
text: '签署知情同意书',
type: 'modal',
rightText: '去签署',
rightArrow: true,
path: {
name: 'Informed',
},
},
'JMRS-Q-NIHSS': {
text: 'NIHSS评分',
description: '',
type: 'pageText',
rightArrow: true,
default: '',
operate: 'collapse',
operateData: {
text: '溶栓开始前',
code: [
'JMRS-Q-NIHSS',
'JMRS-Q-SYSTOLIC-PRESSURE',
'JMRS-Q-DIASTOLIC-PRESSURE',
],
},
},
'JMRS-Q-SYSTOLIC-PRESSURE': {
text: '收缩压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: 'JMRS-Q-NIHSS',
},
},
'JMRS-Q-DIASTOLIC-PRESSURE': {
text: '舒张压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: 'JMRS-Q-NIHSS',
},
},
// 'JMRS-Y': {
// text: '是否进行静脉溶栓',
// type: 'radio',
// default: '',
// range: {
// 是: '是',
// 否: '否',
// },
// },
// 'JMRS-WRSYY': {
// text: '未溶栓原因',
// type: 'checkbox',
// default: [''],
// range: ['超时间创', '禁忌症', '患者/家属拒绝', '其他'],
// showType: {
// type: 'value',
// code: 'JMRS-Y',
// value: '否',
// },
// },
// 'JMRS-WRSYY-ELSE': {
// text: '',
// type: 'input',
// inputType: 'text',
// default: '',
// showType: {
// type: 'valueInclude',
// code: 'JMRS-WRSYY',
// value: '其他',
// },
// },
// 'JMRS-TH-TIME': {
// text: '谈话开始时间',
// type: 'datetime',
// default: '',
// valueType: 'string',
// },
// 'JMRS-SIGN': {
// text: '签署知情同意书',
// type: 'modal',
// rightText: '去签署',
// rightArrow: true,
// path: {
// name: 'Informed',
// },
// },
// 'JMRS-Q-NIHSS': {
// text: 'NIHSS评分',
// description: '',
// type: 'pageText',
// rightArrow: true,
// default: '',
// operate: 'collapse',
// operateData: {
// text: '溶栓开始前',
// code: [
// 'JMRS-Q-NIHSS',
// 'JMRS-Q-SYSTOLIC-PRESSURE',
// 'JMRS-Q-DIASTOLIC-PRESSURE',
// ],
// },
// },
// 'JMRS-Q-SYSTOLIC-PRESSURE': {
// text: '收缩压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: 'JMRS-Q-NIHSS',
// },
// },
// 'JMRS-Q-DIASTOLIC-PRESSURE': {
// text: '舒张压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: 'JMRS-Q-NIHSS',
// },
// },
'JMRS-RSCS': {
text: '开始静脉溶栓场所',
type: 'select',
@ -1019,192 +1019,192 @@ export const JMRS_CODE = {
default: '',
valueType: 'string',
},
'JMRS-RSYW': {
text: '静脉溶栓药物',
type: 'select',
range: {
'rt-PA': 'rt-PA',
尿激酶: '尿激酶',
替奈普酶: '替奈普酶',
瑞替普酶: '瑞替普酶',
阿尼普酶: '阿尼普酶',
},
default: 'rt-PA',
},
'JMRS-RSYW-ZL': {
text: 'rt-PA',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'value',
code: 'JMRS-RSYW',
value: 'rt-PA',
},
},
'JMRS-TZJL': {
text: '团注剂量',
description: '(mg)',
type: 'input',
inputType: 'number',
default: '',
},
'JMRS-JDJL': {
text: '静滴剂量',
description: '(mg)',
type: 'input',
inputType: 'number',
default: '',
},
'JMRS-15-NIHSS': {
text: 'NIHSS评分',
description: '',
type: 'pageText',
rightArrow: true,
default: '',
operate: 'collapse',
operateData: {
text: '15min',
code: [
'JMRS-15-NIHSS',
'JMRS-15-SYSTOLIC-PRESSURE',
'JMRS-15-DIASTOLIC-PRESSURE',
],
},
},
'JMRS-15-SYSTOLIC-PRESSURE': {
text: '收缩压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '15min',
},
},
'JMRS-15-DIASTOLIC-PRESSURE': {
text: '舒张压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '15min',
},
},
'JMRS-30-NIHSS': {
text: 'NIHSS评分',
description: '',
type: 'pageText',
default: '',
operate: 'collapse',
operateData: {
text: '30min',
code: [
'JMRS-30-NIHSS',
'JMRS-30-SYSTOLIC-PRESSURE',
'JMRS-30-DIASTOLIC-PRESSURE',
],
},
},
'JMRS-30-SYSTOLIC-PRESSURE': {
text: '收缩压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '30min',
},
},
'JMRS-30-DIASTOLIC-PRESSURE': {
text: '舒张压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '30min',
},
},
'JMRS-45-NIHSS': {
text: 'NIHSS评分',
description: '',
type: 'pageText',
default: '',
operate: 'collapse',
operateData: {
text: '45min',
code: [
'JMRS-45-NIHSS',
'JMRS-45-SYSTOLIC-PRESSURE',
'JMRS-45-DIASTOLIC-PRESSURE',
],
},
},
'JMRS-45-SYSTOLIC-PRESSURE': {
text: '收缩压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '45min',
},
},
'JMRS-45-DIASTOLIC-PRESSURE': {
text: '舒张压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '45min',
},
},
'JMRS-60-NIHSS': {
text: 'NIHSS评分',
description: '',
type: 'pageText',
default: '',
operate: 'collapse',
operateData: {
text: '60min',
code: [
'JMRS-60-NIHSS',
'JMRS-60-SYSTOLIC-PRESSURE',
'JMRS-60-DIASTOLIC-PRESSURE',
],
},
},
'JMRS-60-SYSTOLIC-PRESSURE': {
text: '收缩压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '60min',
},
},
'JMRS-60-DIASTOLIC-PRESSURE': {
text: '舒张压',
description: '(mmHg)',
type: 'input',
inputType: 'number',
default: '',
showType: {
type: 'collapse',
code: '60min',
},
},
// 'JMRS-RSYW': {
// text: '静脉溶栓药物',
// type: 'select',
// range: {
// 'rt-PA': 'rt-PA',
// 尿激酶: '尿激酶',
// 替奈普酶: '替奈普酶',
// 瑞替普酶: '瑞替普酶',
// 阿尼普酶: '阿尼普酶',
// },
// default: 'rt-PA',
// },
// 'JMRS-RSYW-ZL': {
// text: 'rt-PA',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'value',
// code: 'JMRS-RSYW',
// value: 'rt-PA',
// },
// },
// 'JMRS-TZJL': {
// text: '团注剂量',
// description: '(mg)',
// type: 'input',
// inputType: 'number',
// default: '',
// },
// 'JMRS-JDJL': {
// text: '静滴剂量',
// description: '(mg)',
// type: 'input',
// inputType: 'number',
// default: '',
// },
// 'JMRS-15-NIHSS': {
// text: 'NIHSS评分',
// description: '',
// type: 'pageText',
// rightArrow: true,
// default: '',
// operate: 'collapse',
// operateData: {
// text: '15min',
// code: [
// 'JMRS-15-NIHSS',
// 'JMRS-15-SYSTOLIC-PRESSURE',
// 'JMRS-15-DIASTOLIC-PRESSURE',
// ],
// },
// },
// 'JMRS-15-SYSTOLIC-PRESSURE': {
// text: '收缩压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '15min',
// },
// },
// 'JMRS-15-DIASTOLIC-PRESSURE': {
// text: '舒张压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '15min',
// },
// },
// 'JMRS-30-NIHSS': {
// text: 'NIHSS评分',
// description: '',
// type: 'pageText',
// default: '',
// operate: 'collapse',
// operateData: {
// text: '30min',
// code: [
// 'JMRS-30-NIHSS',
// 'JMRS-30-SYSTOLIC-PRESSURE',
// 'JMRS-30-DIASTOLIC-PRESSURE',
// ],
// },
// },
// 'JMRS-30-SYSTOLIC-PRESSURE': {
// text: '收缩压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '30min',
// },
// },
// 'JMRS-30-DIASTOLIC-PRESSURE': {
// text: '舒张压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '30min',
// },
// },
// 'JMRS-45-NIHSS': {
// text: 'NIHSS评分',
// description: '',
// type: 'pageText',
// default: '',
// operate: 'collapse',
// operateData: {
// text: '45min',
// code: [
// 'JMRS-45-NIHSS',
// 'JMRS-45-SYSTOLIC-PRESSURE',
// 'JMRS-45-DIASTOLIC-PRESSURE',
// ],
// },
// },
// 'JMRS-45-SYSTOLIC-PRESSURE': {
// text: '收缩压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '45min',
// },
// },
// 'JMRS-45-DIASTOLIC-PRESSURE': {
// text: '舒张压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '45min',
// },
// },
// 'JMRS-60-NIHSS': {
// text: 'NIHSS评分',
// description: '',
// type: 'pageText',
// default: '',
// operate: 'collapse',
// operateData: {
// text: '60min',
// code: [
// 'JMRS-60-NIHSS',
// 'JMRS-60-SYSTOLIC-PRESSURE',
// 'JMRS-60-DIASTOLIC-PRESSURE',
// ],
// },
// },
// 'JMRS-60-SYSTOLIC-PRESSURE': {
// text: '收缩压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '60min',
// },
// },
// 'JMRS-60-DIASTOLIC-PRESSURE': {
// text: '舒张压',
// description: '(mmHg)',
// type: 'input',
// inputType: 'number',
// default: '',
// showType: {
// type: 'collapse',
// code: '60min',
// },
// },
};
// 血管内治疗
export const XGZL_CODE = {

26
src/layouts/BasicLayout.vue

@ -27,11 +27,12 @@
<a-layout>
<a-layout-header>
<div class="patient-box">
<div class="patient-info">
<div class="patient-info" @click="onClickPat" v-if="patientData.firstAidId && patientData.finish_status != 1">
<span class="lable">姓名: </span>
<span class="text">{{patientData.patientName || '-'}}</span>
<span class="lable">性别: </span>
<span class="text">{{patientData.patientGender == 1 ? '女' : patientData.patientGender == 0 ? '男' : '-'}}</span>
<span
class="text">{{patientData.patientGender == 1 ? '女' : patientData.patientGender == 0 ? '男' : '-'}}</span>
<span class="lable">年龄: </span>
<span class="text">{{patientData.patientAge || '-'}}</span>
<span class="lable">证件号: </span>
@ -46,7 +47,7 @@
<div class="global-layout-content" id="globalLayoutContent">
<router-view />
</div>
<a-drawer placement="left" :visible="visible" width="320" @close="onClose" :getContainer="false"
:closable="false" :wrap-style="{ position: 'absolute' }">
<div class="person-drawer">
@ -85,14 +86,14 @@
</div>
<div class="person-footer">
<a-button class="persion-footer-button person-footer-reset" block>修改密码</a-button>
<a-button class="persion-footer-button person-footer-logout" type="primary"
block @click="logout" >退出登录</a-button>
<a-button class="persion-footer-button person-footer-logout" type="primary" block
@click="logout">退出登录</a-button>
</div>
</div>
</a-drawer>
</a-layout-content>
</a-layout>
</a-layout>
</div>
@ -103,7 +104,9 @@
mapMutations,
mapState
} from 'vuex';
import { loginInfo } from 'api';
import {
loginInfo
} from 'api';
import icon01 from '@/assets/images/slice/icon01.png'
import icon01H from '@/assets/images/slice/icon01H.png'
import icon02 from '@/assets/images/slice/icon02.png'
@ -159,7 +162,7 @@
vm.current_ = 0
if (to.fullPath != '/firstaid/patientList') {
vm.$router.replace('/firstaid/patientList')
}
}
}
});
},
@ -177,10 +180,13 @@
this.$router.replace(item.path)
}
},
onClickPat(){
this.$router.push('/firstaid/thrombolysis')
},
async showPersion() {
this.visible = true;
document.getElementById('globalLayoutContent').style.overflowY = 'hidden';
if(!this.loginInfo){
if (!this.loginInfo) {
var res = await loginInfo();
this.loginInfo = res.data || {}
}
@ -192,7 +198,7 @@
document.getElementById('globalLayoutContent').style.overflowY = 'auto';
this.current = this.current_
},
logout(){
logout() {
this.$router.replace('/login')
}
}

21
src/main.js

@ -40,7 +40,16 @@ Vue.prototype.home = home;
Vue.prototype.utils = util;
router.beforeEach(async (to, from, next) => {
const { back, more } = to.meta;
let token = localStorage.getItem('anyringToken');
console.log(to)
if (to.path != '/login' && !token) {
next('/login')
return
}
const {
back,
more
} = to.meta;
store.commit('storm/setShowBack', back);
store.commit('storm/setShowMore', more);
//患者列表清楚定时器
@ -48,7 +57,9 @@ router.beforeEach(async (to, from, next) => {
util.AnimationFrame.done('timerTask');
util.AnimationFrame.done('countTask');
}
const { deviceNo } = to.query;
const {
deviceNo
} = to.query;
if (deviceNo) {
if (deviceNo !== localStorage.getItem('APP_DEVICE_NO')) {
localStorage.setItem('anyringToken', null);
@ -61,8 +72,8 @@ router.beforeEach(async (to, from, next) => {
next();
}
});
document.addEventListener('UniAppJSBridgeReady', function () {
uni.getEnv(function (res) {
document.addEventListener('UniAppJSBridgeReady', function() {
uni.getEnv(function(res) {
console.log('当前环境:' + JSON.stringify(res));
});
new Vue({
@ -70,4 +81,4 @@ document.addEventListener('UniAppJSBridgeReady', function () {
store,
render: (h) => h(App),
}).$mount('#app');
});
});

132
src/views/Patient/components/patient-create.vue

@ -14,7 +14,7 @@
:closable="false"
:destroyOnClose="true"
v-model="createVisible"
title="新建患者"
:title="title"
@ok="handleSubmit"
:footer="null"
>
@ -30,12 +30,12 @@
<a-row :gutter="20">
<a-col :span="12">
<a-form-model-item label="姓名">
<a-input v-model="form.patientName" placeholder="请输入姓名" />
<a-input v-model="form.name" placeholder="请输入姓名" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="民族">
<a-select v-model="form.patientNation" placeholder="请选择民族">
<a-select v-model="form.nation" placeholder="请选择民族">
<a-select-option
v-for="item in nationList"
:key="item"
@ -48,7 +48,7 @@
</a-col>
<a-col :span="12">
<a-form-model-item label="性别" >
<a-select v-model="form.patientGender" placeholder="请选择性别">
<a-select v-model="form.gender" placeholder="请选择性别">
<a-select-option :value="0" ></a-select-option>
<a-select-option :value="1" ></a-select-option>
</a-select>
@ -67,10 +67,10 @@
<a-col :span="16">
<a-form-model-item label="身份证号" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" placeholder="请输入身份证号">
<keyboard
placeHolder="请输入手机号"
placeHolder="请输入身份证号"
:index-num="indexNum"
@keyboard-input="handleKeyBoard"
:old-value="patientIdCardNo"
:old-value="idcard"
/>
</a-form-model-item>
@ -118,7 +118,7 @@
</a-form-model-item>
</a-col>
<a-col :span="24" class="footer-btns" >
<a-button class="footer-btn" type="primary" block @click="handleSubmit">新建</a-button>
<a-button class="footer-btn" type="primary" block @click="handleSubmit">提交</a-button>
</a-col>
<a-col :span="24" class="footer-btns" >
<a-button class="footer-btn cencelBtn" block @click="close">取消</a-button>
@ -129,18 +129,19 @@
</template>
<script>
import keyboard from '@/components/keyboard.vue';
import { create, uploadIdcard, idcardInfo, idcardInfoBase64 } from 'api';
import { createPatient, uploadIdcard, idcardInfo, idcardInfoBase64 ,queryById,eduitPatient} from 'api';
import { mapState } from 'vuex';
export default {
name: 'create',
components: {
keyboard,
},
props: ['firstAidData', 'carList', 'carNo'],
props: ['firstAidData', 'carList', 'carNo','patientId'],
data() {
return {
title:"新建患者",
indexNum: 0, //
patientIdCardNo: '',
idcard: '',
keyboard: false,
createVisible: false,
inputFile: '',
@ -152,27 +153,41 @@ export default {
},
computed: {
...mapState('storm', ['nationList', 'anyringToken']),
},
create(){
},
methods: {
handleKeyBoard(value) {
//value
this.patientIdCardNo = value;
this.idcard = value;
},
open(data) {
console.log('open', data)
this.createVisible = true;
this.confirmLoading = false;
this.patientIdCardNo = '';
console.log(this.form)
this.form = data || {}
// #ifdef APP-PLUS
this.openCamera();
// #endif
if(data.firstAidId){
this.title="编辑患者";
queryById({
firstAidId: data.firstAidId,
}).then(res=>{
if (res.code === 200) {
this.form =res.data;
}
})
}else{
this.idcard = '';
this.form = data || {}
}
},
close() {
this.createVisible = false;
this.confirmLoading = false;
this.patientIdCardNo = '';
this.form = {}
this.idcard = '';
},
openCamera() {
const cmr = plus.camera.getCamera();
@ -252,10 +267,10 @@ export default {
const { data, code, msg } = res;
if (code === 200) {
const { name, sex, idCardNo, nation } = data;
this.form.patientName = name
this.form.patientGender = sex
this.form.patientNation = nation
this.patientIdCardNo = idCardNo;
this.form.name = name
this.form.gender = sex
this.form.nation = nation
this.idcard = idCardNo;
} else {
this.$message.error(res.msg);
}
@ -281,18 +296,18 @@ export default {
if (res.code === 200) {
const { name, sex, idCardNo, nation } = res.data;
this.form.setFieldsValue({
['patientName']: name,
['patientGender']: sex,
['patientNation']: nation,
['name']: name,
['gender']: sex,
['nation']: nation,
});
this.patientIdCardNo = idCardNo;
this.idcard = idCardNo;
} else {
this.$message.error(res.msg);
}
});
},
onDelete() {
this.patientIdCardNo = '';
this.idcard = '';
},
handleSubmit(e) {
e.preventDefault();
@ -301,28 +316,53 @@ export default {
const reg =
/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
if ( !reg.test(this.patientIdCardNo) && this.patientIdCardNo ) {
if ( !reg.test(this.idcard) && this.idcard ) {
this.$message.error('身份证格式不正确');
return;
}
if (typeof this.firstAidData.greenRoadFlag == 'boolean') {
this.firstAidData.greenRoadFlag = 0;
}
let res = await create({
param: {
...this.form,
patientIdCardNo: this.patientIdCardNo,
},
});
const { data, code, msg } = res;
if (code === 200) {
this.confirmLoading = true;
this.createVisible = false;
this.$message.success('创建成功');
this.$emit('on-success', data);
} else {
this.confirmLoading = false;
// if (typeof this.firstAidData.greenRoadFlag == 'boolean') {
// this.firstAidData.greenRoadFlag = 0;
// }
console.log(this.patientId)
if(this.form.id){
let res = await eduitPatient({
param: {
...this.form,
idcard: this.idcard,
// id:this.patientId
},
});
const { data, code, msg } = res;
if (code === 200) {
this.confirmLoading = true;
this.createVisible = false;
this.$message.success('修改成功');
this.$emit('on-success', data);
} else {
this.confirmLoading = false;
}
}else{
let res = await createPatient({
param: {
...this.form,
idcard: this.idcard,
},
});
const { data, code, msg } = res;
if (code === 200) {
this.confirmLoading = true;
this.createVisible = false;
this.$message.success('创建成功');
this.$emit('on-success', data);
} else {
this.confirmLoading = false;
}
}
}
});
},

4
src/views/Patient/components/patient-detail.vue

@ -236,7 +236,9 @@
msg
} = res;
if (code === 200) {
this.setPatientData({ ...this.patientDataCur, firstAidId: data.firstAidId })
this.home.queryAid(data.firstAidId, false);
// this.setPatientData({ ...this.patientDataCur, firstAidId: data.firstAidId })
this.authEdit = false
this.$message.success('更新成功');
this.$router.push('/firstaid/thrombolysis')

2
src/views/Patient/index.vue

@ -218,7 +218,7 @@
this.queryByPadNo();
this.queryVideo(); //
this.queryBook(); //
this.getMessageQuery();
// this.getMessageQuery();
},
methods: {
...mapMutations('storm', ['setNationList']),

35
src/views/document/index.vue

@ -23,6 +23,7 @@
<a-table :columns="columns" :data-source="dataSource" :scroll="{ y: 720, x: 1000 }"
:locale="{ emptyText: '暂无数据'}" rowKey="firstAidId" size="middle" :pagination="pagination">
<template slot="action" slot-scope="text, row">
<a-button type="link" @click="editReport(row, 'patientddit')">编辑</a-button>
<a-button type="link" @click="checkReport(row, 'docReport')">报告单</a-button>
<a-button type="link" @click="checkReport(row, 'docCT')">CT影像</a-button>
<a-button type="link" @click="checkReport(row, 'docInspect')">检验报告</a-button>
@ -39,6 +40,7 @@
<DocReport ref="docReport"></DocReport>
<DocCT ref="docCT"></DocCT>
<DocInspect ref="docInspect"></DocInspect>
<PatientDdit ref='patientddit' :patientId="patientId" @on-success="onSearch(pageNum)" :carList="carList" :carNo="carNo"></PatientDdit>
</div>
</template>
@ -52,6 +54,7 @@
import DocReport from '@/views/document/components/report.vue';
import DocCT from '@/views/document/components/ct.vue';
import DocInspect from '@/views/document/components/inspect.vue';
import PatientDdit from '@/views/Patient/components/patient-create.vue';
import {
getList,
selectList
@ -62,7 +65,8 @@
PatientCreate,
DocReport,
DocCT,
DocInspect
DocInspect,
PatientDdit
},
data() {
return {
@ -216,7 +220,7 @@
key: 'operation',
fixed: 'right',
align: 'center',
width: 260,
width: 300,
scopedSlots: {
customRender: 'action'
},
@ -225,13 +229,34 @@
firstAidData: {},
carList: [], //
carNo: '', //
patientId:''//Id
}
},
created() {
this.getData()
this.getSelectList();
},
methods: {
...mapMutations('patient', ['setPatientData']),
//
async getSelectList() {
let res = await selectList({
param: {
deviceType: 0,
},
});
const {
data,
code,
msg
} = res;
if (code === 200) {
this.carList = data.list;
// this.carNo = this.carList[0]?.deviceNo || ''; //
// console.log('this.carNo ', this.carNo);
}
this.component = "patient-list"
},
//list
async getData(pageNum) {
if (pageNum) {
@ -287,7 +312,11 @@
},
//
onSearch(data) {
this.getData(1)
this.getData(data || 1)
},
editReport(item, modalRef){
// this.patientId=item.firstAidId
this.$refs[modalRef].open(item)
},
checkReport(item, modalRef) {
// const {

700
src/views/thrombolysis/components/throm-ing-date.vue

@ -0,0 +1,700 @@
<template>
<div class="Overviewbasicr">
<div class="first-content">
<!-- <v-head text="主要治疗操作"></v-head> -->
<div class="basicr-back" style="background-color: transparent;">
<a-form class="detail-form" :form="firstForm">
<a-form-item
class="jmrs-form-item"
v-for="(k, v) in JMRS_CODE"
:key="v"
v-if="computeShow(v, codeForm)"
>
<!-- operate === collapse -->
<a-collapse
class="jmrs-form-item-con"
v-if="k.operate === 'collapse'"
:bordered="false"
expandIconPosition="right"
>
<a-collapse-panel
key="1"
:header="k.operateData.text"
>
<div
class="collapse-content"
v-for="item in k.operateData.code"
:key="item"
>
<div
class="content-left ant-form-item-label"
>
<label
:for="`FirstInfo_${JMRS_CODE[item]}`"
v-if="JMRS_CODE[item].text"
>
{{ `${JMRS_CODE[item].text}` }}
<span
v-if="
JMRS_CODE[item].description
"
class="label-info"
>{{
JMRS_CODE[item].description
}}</span
>
</label>
</div>
<div class="content-right">
<!-- input -->
<a-input
:disabled="writeAble"
v-if="
JMRS_CODE[item].type === 'input'
"
:type="item.inputType"
v-decorator="[item]"
@blur="
handleChange(
$event.target.value,
v
)
"
placeholder="请输入"
/>
<!-- pageText -->
<a-input
:disabled="writeAble"
v-if="
JMRS_CODE[item].type ===
'pageText'
"
@blur="
handleChange(
$event.target.value,
item
)
"
:type="item.inputType"
v-decorator="[item]"
placeholder="请输入"
/>
</div>
</div>
</a-collapse-panel>
</a-collapse>
<!-- operate === jump -->
<div
v-else-if="k.operate === 'jump'"
class="jmrs-form-item-con"
>
<div
class="content-left ant-form-item-label"
v-if="k.text"
>
<label :for="`FirstInfo_${v}`">
{{ `${k.text}` }}
<span
v-if="k.description"
class="label-info"
>{{ k.description }}</span
>
</label>
</div>
<div
class="content-right"
@click="toMore(k.path.name)"
>
<div class="operate fz24">
{{ k.rightText }}
</div>
</div>
</div>
<div class="jmrs-form-item-con" v-else :class="k.type">
<div class="content-left ant-form-item-label">
<label :for="`FirstInfo_${v}`" v-if="k.text">
{{ `${k.text}` }}
<span
v-if="k.description"
class="label-info"
>{{ k.description }}</span
>
</label>
</div>
<div class="content-right">
<!-- text -->
<a-input
:disabled="writeAble"
v-if="k.type === 'text'"
type="text"
v-decorator="[v]"
readOnly
/>
<!-- modal -->
<a-input
:disabled="writeAble"
v-if="k.type === 'modal'"
:placeholder="k.rightText"
@click="toInform"
type="text"
v-decorator="[v]"
readOnly
/>
<!-- radio -->
<a-radio-group
:disabled="writeAble"
v-if="k.type === 'radio'"
v-decorator="[
v,
{ initialValue: k.default },
]"
@change="
handleChange($event.target.value, v)
"
>
<a-radio
v-for="(item, index) in k.range"
:key="item"
:value="item"
>
{{ item }}
</a-radio>
</a-radio-group>
<!-- checkbox -->
<a-checkbox-group
:disabled="writeAble"
v-if="k.type === 'checkbox'"
:options="k.range"
v-decorator="[
v,
{ initialValue: k.default },
]"
@change="
handleChange($event, v, null, k.type)
"
/>
<!-- input -->
<a-input
:disabled="writeAble"
v-if="k.type === 'input'"
:type="k.inputType"
v-decorator="[v]"
@blur="handleChange($event.target.value, v)"
placeholder="请输入"
/>
<!-- datetime -->
<a-input
:disabled="writeAble"
v-if="k.type === 'datetime'"
readOnly
@click="selectOption(v)"
v-decorator="[
v,
{ initialValue: k.default },
]"
placeholder="请选择"
/>
<a-select
:disabled="writeAble"
v-if="k.type === 'select'"
v-decorator="[
v,
{ initialValue: k.default },
]"
@change="handleChange($event, v)"
placeholder="请选择"
style="display: block;"
>
<a-select-option
v-for="(item, v) in k.range"
:key="item"
>
{{ item }}
</a-select-option>
</a-select>
<!-- pageText -->
<a-input
:disabled="writeAble"
v-if="k.type === 'pageText'"
@blur="handleChange($event.target.value, v)"
v-decorator="[
v,
{ initialValue: k.default },
]"
placeholder="请输入"
/>
</div>
</div>
</a-form-item>
</a-form>
</div>
<div class="common-picker">
<van-datetime-picker
v-if="pickerVisable"
v-model="currentDate"
:formatter="formatter"
@cancel="pickerVisable = false"
@confirm="onConfirm"
/>
</div>
<!-- <a-modal
class="first"
:width="900"
wrapClassName="first-modal"
:destroyOnClose="true"
v-model="modalVisable"
@ok="modalVisable = false"
:footer="null"
>
<Informed
ref="informed"
source="first"
@on-success="successInformed"
/>
</a-modal> -->
</div>
<div class="btns">
<a-button :disabled="writeAble" class="common-button" block type="primary" size="large" @click="onSubmit">下一步</a-button>
</div>
<!-- <div class="first-footer">
<a-button
:disabled="writeAble"
type="link"
size="large"
@click="onSubmit"
>
保存<a-icon type="check" />
</a-button>
</div> -->
</div>
</template>
<script>
// import Adverse from '../ing/Adverse.vue';
// import Informed from '../before/Informed.vue';
// import head from './components/title';
import { idcardInfo } from 'api';
import { mapMutations, mapState } from 'vuex';
import { AID_CODE, JMRS_CODE, XGZL_CODE } from '@/config/code.js';
export default {
name: 'FirstInfo',
data() {
return {
//
modalVisable: false,
AID_CODE,
JMRS_CODE,
XGZL_CODE,
//
currentDate: new Date(),
//
pickerVisable: false,
radioStyle: {
display: 'block',
height: '30px',
lineHeight: '30px',
},
firstForm: this.$form.createForm(this, {
name: 'FirstInfo',
}),
//使code
codeForm: {
'RYPG-HEIGHT': '',
'RYPG-WEIGHT': '',
'RYPG-SYSTOLIC-PRESSURE': '',
'RYPG-DIASTOLIC-PRESSURE': '',
'RYPG-PULSE': '',
'RYPG-MRS': '',
'RYPG-NIHSS': '',
'RYPG-BLOOD-TIME': '',
'RYPG-BLOOD-SUGAR': '',
'RYPG-ECG-TIME': '',
'RYPG-CT-DD-TIME': '',
'RYPG-CT-OUTSIZE': '',
'JMRS-Y': '',
'JMRS-WRSYY': '',
'JMRS-WRSYY-ELSE': '',
'JMRS-TH-TIME': '',
'JMRS-SIGN': '',
'JMRS-Q-NIHSS': '',
'JMRS-Q-SYSTOLIC-PRESSURE': '',
'JMRS-Q-DIASTOLIC-PRESSURE': '',
'JMRS-RSCS': '',
'JMRS-TIME': '',
'JMRS-RSYW': '',
'JMRS-RSYW-ZL': '',
'JMRS-TZJL': '',
'JMRS-JDJL': '',
'JMRS-15-NIHSS': '',
'JMRS-15-SYSTOLIC-PRESSURE': '',
'JMRS-15-DIASTOLIC-PRESSURE': '',
'JMRS-30-NIHSS': '',
'JMRS-30-SYSTOLIC-PRESSURE': '',
'JMRS-30-DIASTOLIC-PRESSURE': '',
'JMRS-45-NIHSS': '',
'JMRS-45-SYSTOLIC-PRESSURE': '',
'JMRS-45-DIASTOLIC-PRESSURE': '',
'JMRS-60-NIHSS': '',
'JMRS-60-SYSTOLIC-PRESSURE': '',
'JMRS-60-DIASTOLIC-PRESSURE': '',
'JMRS-BFZ': '',
'XGZL-Y': '',
'XGZL-WZLYY': '',
'XGZL-WZLYY-ELSE': '',
'XGZL-ZQTH-TIME': '',
'XGZL-ZQTH-QZ': '',
'XGZL-SQ-NIHSS': '',
'XGZL-SQ-ASPECT-CT': '',
'XGZL-SQ-ASPECT-MRI': '',
'XGZL-SQ-TICI': '',
'XGZL-CCWC-TIME': '',
'XGZL-XGKT': '',
'XGZL-SH-SCXGZTSJ': '',
'XGZL-BFZ': '',
'XGZL-BFZ-ELSE': '',
},
selectCode: '', // code
};
},
components: {
// 'v-head': head,
// Adverse,
// Informed,
},
computed: {
...mapState('patient', ['patientData', 'writeAble']),
...mapState('storm', ['nationList']),
},
mounted() {
this.$nextTick(() => {
if (this.patientData) {
this.echo(this.patientData);
}
});
},
methods: {
successInformed() {
this.modalVisable = false;
},
//
toInform() {
this.modalVisable = true;
this.$nextTick(() => {
this.$refs.informed.open();
});
},
echo(data) {
const { recordValDict, patientGender } = data;
this.firstForm.getFieldDecorator(['RYPG-GENDER'], {
preserve: true, //便使
});
this.firstForm.setFieldsValue({
['RYPG-GENDER']: patientGender === 1 ? '女' : '男',
});
for (let k in recordValDict) {
if (recordValDict[k]) {
let answer = recordValDict[k][0].answer;
this.firstForm.getFieldDecorator([`${k}`], {
preserve: true, //便使
});
if (k === 'RYPG-WEIGHT' || k === 'RYPG-HEIGHT') {
let weight =
recordValDict['RYPG-WEIGHT'] &&
recordValDict['RYPG-WEIGHT'][0].answer.toString();
let height =
recordValDict['RYPG-HEIGHT'] &&
recordValDict['RYPG-HEIGHT'][0].answer.toString();
this.firstForm.setFieldsValue({
'RYPG-BMI': this.utils.computeBMI(weight, height),
});
}
if (Object.keys(this.codeForm).includes(k)) {
this.codeForm[k] = answer.toString() || '';
//
if (
k !== 'JMRS-WRSYY' &&
k !== 'JMRS-BFZ' &&
k !== 'XGZL-WZLYY' &&
k !== 'XGZL-BFZ' &&
k !== 'XGZL-XGKT'
) {
answer = answer.toString() || '';
}
this.firstForm.setFieldsValue({
[`${k}`]: answer,
});
}
}
}
},
toMore(name) {
if (!name) return;
this.$router.push({
name,
});
},
computeShow(code, codeForm) {
return this.utils.computeShow(code, codeForm);
},
selectOption(v) {
this.selectCode = v;
this.pickerVisable = true;
},
//
onConfirm(date) {
this.firstForm.setFieldsValue({
[`${this.selectCode}`]: this.utils.format(date),
});
this.pickerVisable = false;
// this.updateAidBase(this.selectCode, this.utils.format(date))
},
//
formatter(type, val) {
if (type === 'year') {
return val + '年';
}
if (type === 'month') {
return val + '月';
}
if (type === 'day') {
return val + '日';
}
if (type === 'hour') {
return val + '时';
}
if (type === 'minute') {
return val + '分';
}
return val;
},
handleChange(value, code, type, show) {
this.codeForm[code] = value;
if (show === 'checkbox') {
this.utils.computeShow(code, this.codeForm);
}
if (code === 'RYPG-WEIGHT' || code === 'RYPG-HEIGHT') {
this.codeForm['RYPG-BMI'] = this.utils.computeBMI(
this.codeForm['RYPG-WEIGHT'],
this.codeForm['RYPG-HEIGHT']
);
this.firstForm.setFieldsValue({
['RYPG-BMI']: this.codeForm['RYPG-BMI'],
});
}
// this.updateAidBase(code, value, type)
},
async onSubmit(e) {
e.preventDefault();
let codeAndAnswerList = [],
params = {};
this.$nextTick(async () => {
let adverseSubmit = this.$refs.adverse;
if (adverseSubmit) {
let res = await adverseSubmit.onAdverseSubmit(e, 'first');
if (res.length > 0) {
codeAndAnswerList = codeAndAnswerList.concat(res);
}
}
this.firstForm.validateFields(async (err, values) => {
for (var k in values) {
if (Object.keys(this.codeForm).includes(k)) {
let answer = [values[k]];
if (typeof values[k] !== 'string') {
answer = values[k];
}
if (values[k]) {
codeAndAnswerList.push({
questionCode: k,
answer,
time: '',
});
}
} else if (
values[k] &&
k !== 'RYPG-BMI' &&
k !== 'RYPG-GENDER'
) {
params[`${k}`] = values[k];
}
}
await this.home.updateAidCode(
{
...params,
codeAndAnswerList,
},
false
);
this.firstForm.resetFields()
this.$emit('next')
});
});
},
//
async updateAidBase(code, value, type) {
let params;
let codeAndAnswerList = [];
if (type) {
params = {
[`${code}`]: value,
};
} else {
let answer = [value];
if (typeof value !== 'string') {
answer = value;
}
codeAndAnswerList.push({
questionCode: code,
answer,
time: '',
});
}
await this.home.updateAidCode(
{
...params,
codeAndAnswerList,
},
false
);
},
},
};
</script>
<style scoped lang="less">
p {
margin: 0;
}
.Overviewbasicr {
display: flex;
margin-bottom: 0;
.first-content {
flex: 1;
overflow-y: auto;
background-color: #f9f9f9;
}
.first-footer {
display: flex;
align-items: center;
justify-content: center;
margin-top: 10px;
}
}
.first {
/deep/ .ant-modal {
max-height: 500px;
overflow-y: auto;
}
}
.adverse {
padding: 15px 0;
}
</style>
<style scoped>
>>> .adverse .ant-form-item {
display: flex;
justify-content: space-between;
}
>>> .adverse .ant-form-item-label {
width: 25%;
}
>>> .adverse .ant-form-item-control-wrapper {
flex: 1;
display: flex;
justify-content: flex-end;
}
>>> .adverse .ant-form-item-label label {
font-size: 22px !important;
}
>>> .adverse .ant-input {
width: 100% !important;
background: none;
}
>>> .adverse .ant-form-item-control {
margin-left: 0;
}
>>> .ant-btn-link {
color: #7690e5;
font-size: 24px;
font-weight: bold;
}
>>> .ant-radio-wrapper {
text-align: left;
font-size: 24px;
height: 58px !important;
line-height: 58px !important;
box-sizing: border-box;
border-bottom: 1px solid #f0f0f0 !important;
}
>>> .ant-collapse {
border: none;
background: none;
}
>>> .ant-collapse-header {
font-size: 24px;
padding: 10px 0 !important;
font-weight: bold;
text-align: left;
}
>>> .ant-collapse-item {
flex: 1;
border-bottom: 0px;
}
>>> .ant-collapse-content-box {
padding: 0 10px;
}
>>> .detail-form .jmrs-form-item .ant-form-item-control-wrapper {
flex: 1;
display: flex;
justify-content: space-between;
}
>>> .detail-form .jmrs-form-item .ant-form-item-control {
flex: 1;
margin-left: 0;
}
>>> .ant-radio-wrapper:last-child {
border-bottom: none !important;
}
>>> .ant-radio {
font-size: 24px;
}
>>> .ant-radio-inner::after {
width: 16px;
height: 16px;
}
>>> .ant-radio-inner {
width: 24px;
height: 24px;
}
.back-ff {
box-shadow: 0 2px 12px 0 rgba(52, 52, 52, 0.1);
background: #fff;
padding: 10px 20px;
border-radius: 12px;
}
</style>

39
src/views/thrombolysis/components/throm-ing.vue

@ -2,37 +2,41 @@
<div class="throm-ing">
<div class="throm-step">
<a-steps progress-dot :current="currentIndex" direction="vertical" @change="handleClickStep">
<a-step :status="currentIndex == 0 ? 'process' : currentIndex > 0 ? 'finish' : 'wait'" title="选择药物"
<a-step :status="currentIndex == 0 ? 'process' : currentIndex > 0 ? 'finish' : 'wait'" title="溶栓时间"
:description="stepDesc.drugDesc" />
<a-step :status="currentIndex == 1 ? 'process' : currentIndex > 1 ? 'finish' : 'wait'" title="0min"
<a-step :status="currentIndex == 1 ? 'process' : currentIndex > 1 ? 'finish' : 'wait'" title="选择药物"
:description="stepDesc.drugDesc" />
<a-step :status="currentIndex == 2 ? 'process' : currentIndex > 2 ? 'finish' : 'wait'" title="0min"
:description="stepDesc.min0Desc" />
<a-step :status="currentIndex == 2 ? 'process' : currentIndex > 2 ? 'finish' : 'wait'" title="15min"
<a-step :status="currentIndex == 3 ? 'process' : currentIndex > 3 ? 'finish' : 'wait'" title="15min"
:description="stepDesc.min15Desc" />
<a-step :status="currentIndex == 3 ? 'process' : currentIndex > 3 ? 'finish' : 'wait'" title="30min"
<a-step :status="currentIndex == 4 ? 'process' : currentIndex > 4 ? 'finish' : 'wait'" title="30min"
:description="stepDesc.min30Desc" />
<a-step :status="currentIndex == 4 ? 'process' : currentIndex > 4 ? 'finish' : 'wait'" title="45min"
<a-step :status="currentIndex == 5 ? 'process' : currentIndex > 5 ? 'finish' : 'wait'" title="45min"
:description="stepDesc.min45Desc" />
<a-step :status="currentIndex == 5 ? 'process' : currentIndex > 5 ? 'finish' : 'wait'" title="60min"
<a-step :status="currentIndex == 6 ? 'process' : currentIndex > 6 ? 'finish' : 'wait'" title="60min"
:description="stepDesc.min60Desc" />
<a-step :status="currentIndex == 6 ? 'process' : currentIndex > 6 ? 'finish' : 'wait'" title="不良反应" />
<a-step :status="currentIndex == 7 ? 'process' : currentIndex > 7 ? 'finish' : 'wait'" title="溶栓记录" />
<a-step :status="currentIndex == 7 ? 'process' : currentIndex > 7 ? 'finish' : 'wait'" title="不良反应" />
<a-step :status="currentIndex == 8 ? 'process' : currentIndex > 8 ? 'finish' : 'wait'" title="溶栓记录" />
</a-steps>
</div>
<div class="throm-content">
<ThromIngDrug v-if="currentIndex == 0" @next="handleNext"></ThromIngDrug>
<ThromIngMin timercode="JMRS-Q-NIHSS" v-else-if="currentIndex == 1" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-15-NIHSS" v-else-if="currentIndex == 2" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-30-NIHSS" v-else-if="currentIndex == 3" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-45-NIHSS" v-else-if="currentIndex == 4" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-60-NIHSS" v-else-if="currentIndex == 5" @next="handleNext"></ThromIngMin>
<ThromIngReactions v-else-if="currentIndex == 6" @next="handleNext"></ThromIngReactions>
<ThromIngRecord v-else-if="currentIndex == 7" @next="handleNextStep"></ThromIngRecord>
<ThromIngDate v-if="currentIndex == 0" @next="handleNext"></ThromIngDate>
<ThromIngDrug v-if="currentIndex == 1" @next="handleNext"></ThromIngDrug>
<ThromIngMin timercode="JMRS-Q-NIHSS" v-else-if="currentIndex == 2" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-15-NIHSS" v-else-if="currentIndex == 3" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-30-NIHSS" v-else-if="currentIndex == 4" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-45-NIHSS" v-else-if="currentIndex == 5" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-60-NIHSS" v-else-if="currentIndex == 6" @next="handleNext"></ThromIngMin>
<ThromIngReactions v-else-if="currentIndex == 7" @next="handleNext"></ThromIngReactions>
<ThromIngRecord v-else-if="currentIndex == 8" @next="handleNextStep"></ThromIngRecord>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex';
import ThromIngDate from './throm-ing-date.vue'
import ThromIngDrug from './throm-ing-selDrug.vue';
import ThromIngMin from './throm-ing-min.vue';
import ThromIngMin15 from './throm-ing-min15.vue';
@ -52,12 +56,13 @@
ThromIngMin60,
ThromIngReactions,
ThromIngRecord,
ThromIngDate
},
data() {
return {
currentIndex: 0,
stepDesc: {
drugDesc: '阿尼普酶',
drugDesc: '',
min0Desc: 'NIHSS评分: 0',
min15Desc: 'NIHSS评分: 15',
min30Desc: 'NIHSS评分: 30',

2
src/views/thrombolysis/components/throm-report.vue

@ -323,7 +323,7 @@
firstAidId
} = this.patient;
firstAidId && this.init(firstAidId);
// await this.getMessageQuery();
await this.getMessageQuery();
},
methods: {
...mapMutations('patient', ['setNextNodeData', 'setTimerData']),

Loading…
Cancel
Save