Browse Source

init

master
领悟 5 months ago
parent
commit
fc4643995c
  1. 19
      src/api/index.js
  2. 48
      src/config/axios.js
  3. 540
      src/config/code.js
  4. 16
      src/layouts/BasicLayout.vue
  5. 15
      src/main.js
  6. 104
      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) => export const create = (params) =>
axios.post(`${proxyUrl1}/firstAid/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) => export const queryAidRecord = (firstAidId, codeList) =>
axios.post(`${proxyUrl1}/firstAid/queryAidRecord`, { axios.post(`${proxyUrl1}/firstAid/queryAidRecord`, {
@ -310,7 +321,7 @@ export const createPatient = (params) =>
axios.post(`${proxyUrl1}/firstAid/createPatient`, { axios.post(`${proxyUrl1}/firstAid/createPatient`, {
...params ...params
}); });
export const eduitPatient = (params) => // export const eduitPatient = (params) =>
axios.post(`${proxyUrl1}/firstAid/eduitPatient`, { // axios.post(`${proxyUrl1}/firstAid/eduitPatient`, {
...params // ...params
}); // });

48
src/config/axios.js

@ -4,8 +4,12 @@ import Vue from 'vue';
import axios from 'axios'; import axios from 'axios';
import router from '../router/index'; import router from '../router/index';
import store from '../store/index'; import store from '../store/index';
import { message } from 'ant-design-vue'; import {
let { proxyUrl } = require('@/config/setting'); message
} from 'ant-design-vue';
let {
proxyUrl
} = require('@/config/setting');
let config = { let config = {
timeout: 10000, // Timeout timeout: 10000, // Timeout
}; };
@ -38,26 +42,32 @@ axios.interceptors.request.use(
axios.interceptors.response.use( axios.interceptors.response.use(
async (res) => { async (res) => {
store.commit('storm/setSpinning', false); store.commit('storm/setSpinning', false);
const { code, msg, data } = res.data; const {
code,
msg,
data
} = res.data;
if (code === 200) { if (code === 200) {
return res.data; return res.data;
} else if (code === 401) { } else if (code === 401) {
localStorage.setItem('anyringToken', null); router.replace('/login')
let [err, data] = await store.dispatch('storm/toLogin', { return Promise.resolve(res.data);
padNo: store.state.storm.padNo, // localStorage.setItem('anyringToken', null);
}); // let [err, data] = await store.dispatch('storm/toLogin', {
let token = data.access_token; // padNo: store.state.storm.padNo,
const config = res.config; // });
let reTry = config.reTry + 1; // let token = data.access_token;
let cfg = Object.assign({}, config); // const config = res.config;
cfg.reTry = reTry; // let reTry = config.reTry + 1;
cfg.headers['Authorization'] = `Bearer ${token}`; // let cfg = Object.assign({}, config);
// console.log('token222: ', token); // cfg.reTry = reTry;
let resNew; // cfg.headers['Authorization'] = `Bearer ${token}`;
if (reTry < 3 && token) { // // console.log('token222: ', token);
resNew = await axios(cfg); // let resNew;
} // if (reTry < 3 && token) {
return Promise.resolve(resNew || res.data); // resNew = await axios(cfg);
// }
// return Promise.resolve(resNew || res.data);
} else { } else {
message.error(msg || '请求发生错误'); message.error(msg || '请求发生错误');
return Promise.resolve(res.data); return Promise.resolve(res.data);

540
src/config/code.js

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

16
src/layouts/BasicLayout.vue

@ -27,11 +27,12 @@
<a-layout> <a-layout>
<a-layout-header> <a-layout-header>
<div class="patient-box"> <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="lable">姓名: </span>
<span class="text">{{patientData.patientName || '-'}}</span> <span class="text">{{patientData.patientName || '-'}}</span>
<span class="lable">性别: </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="lable">年龄: </span>
<span class="text">{{patientData.patientAge || '-'}}</span> <span class="text">{{patientData.patientAge || '-'}}</span>
<span class="lable">证件号: </span> <span class="lable">证件号: </span>
@ -85,8 +86,8 @@
</div> </div>
<div class="person-footer"> <div class="person-footer">
<a-button class="persion-footer-button person-footer-reset" block>修改密码</a-button> <a-button class="persion-footer-button person-footer-reset" block>修改密码</a-button>
<a-button class="persion-footer-button person-footer-logout" type="primary" <a-button class="persion-footer-button person-footer-logout" type="primary" block
block @click="logout" >退出登录</a-button> @click="logout">退出登录</a-button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
@ -103,7 +104,9 @@
mapMutations, mapMutations,
mapState mapState
} from 'vuex'; } from 'vuex';
import { loginInfo } from 'api'; import {
loginInfo
} from 'api';
import icon01 from '@/assets/images/slice/icon01.png' import icon01 from '@/assets/images/slice/icon01.png'
import icon01H from '@/assets/images/slice/icon01H.png' import icon01H from '@/assets/images/slice/icon01H.png'
import icon02 from '@/assets/images/slice/icon02.png' import icon02 from '@/assets/images/slice/icon02.png'
@ -177,6 +180,9 @@
this.$router.replace(item.path) this.$router.replace(item.path)
} }
}, },
onClickPat(){
this.$router.push('/firstaid/thrombolysis')
},
async showPersion() { async showPersion() {
this.visible = true; this.visible = true;
document.getElementById('globalLayoutContent').style.overflowY = 'hidden'; document.getElementById('globalLayoutContent').style.overflowY = 'hidden';

15
src/main.js

@ -40,7 +40,16 @@ Vue.prototype.home = home;
Vue.prototype.utils = util; Vue.prototype.utils = util;
router.beforeEach(async (to, from, next) => { 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/setShowBack', back);
store.commit('storm/setShowMore', more); store.commit('storm/setShowMore', more);
//患者列表清楚定时器 //患者列表清楚定时器
@ -48,7 +57,9 @@ router.beforeEach(async (to, from, next) => {
util.AnimationFrame.done('timerTask'); util.AnimationFrame.done('timerTask');
util.AnimationFrame.done('countTask'); util.AnimationFrame.done('countTask');
} }
const { deviceNo } = to.query; const {
deviceNo
} = to.query;
if (deviceNo) { if (deviceNo) {
if (deviceNo !== localStorage.getItem('APP_DEVICE_NO')) { if (deviceNo !== localStorage.getItem('APP_DEVICE_NO')) {
localStorage.setItem('anyringToken', null); localStorage.setItem('anyringToken', null);

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

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

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

@ -236,7 +236,9 @@
msg msg
} = res; } = res;
if (code === 200) { 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.authEdit = false
this.$message.success('更新成功'); this.$message.success('更新成功');
this.$router.push('/firstaid/thrombolysis') this.$router.push('/firstaid/thrombolysis')

2
src/views/Patient/index.vue

@ -218,7 +218,7 @@
this.queryByPadNo(); this.queryByPadNo();
this.queryVideo(); // this.queryVideo(); //
this.queryBook(); // this.queryBook(); //
this.getMessageQuery(); // this.getMessageQuery();
}, },
methods: { methods: {
...mapMutations('storm', ['setNationList']), ...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 }" <a-table :columns="columns" :data-source="dataSource" :scroll="{ y: 720, x: 1000 }"
:locale="{ emptyText: '暂无数据'}" rowKey="firstAidId" size="middle" :pagination="pagination"> :locale="{ emptyText: '暂无数据'}" rowKey="firstAidId" size="middle" :pagination="pagination">
<template slot="action" slot-scope="text, row"> <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, 'docReport')">报告单</a-button>
<a-button type="link" @click="checkReport(row, 'docCT')">CT影像</a-button> <a-button type="link" @click="checkReport(row, 'docCT')">CT影像</a-button>
<a-button type="link" @click="checkReport(row, 'docInspect')">检验报告</a-button> <a-button type="link" @click="checkReport(row, 'docInspect')">检验报告</a-button>
@ -39,6 +40,7 @@
<DocReport ref="docReport"></DocReport> <DocReport ref="docReport"></DocReport>
<DocCT ref="docCT"></DocCT> <DocCT ref="docCT"></DocCT>
<DocInspect ref="docInspect"></DocInspect> <DocInspect ref="docInspect"></DocInspect>
<PatientDdit ref='patientddit' :patientId="patientId" @on-success="onSearch(pageNum)" :carList="carList" :carNo="carNo"></PatientDdit>
</div> </div>
</template> </template>
@ -52,6 +54,7 @@
import DocReport from '@/views/document/components/report.vue'; import DocReport from '@/views/document/components/report.vue';
import DocCT from '@/views/document/components/ct.vue'; import DocCT from '@/views/document/components/ct.vue';
import DocInspect from '@/views/document/components/inspect.vue'; import DocInspect from '@/views/document/components/inspect.vue';
import PatientDdit from '@/views/Patient/components/patient-create.vue';
import { import {
getList, getList,
selectList selectList
@ -62,7 +65,8 @@
PatientCreate, PatientCreate,
DocReport, DocReport,
DocCT, DocCT,
DocInspect DocInspect,
PatientDdit
}, },
data() { data() {
return { return {
@ -216,7 +220,7 @@
key: 'operation', key: 'operation',
fixed: 'right', fixed: 'right',
align: 'center', align: 'center',
width: 260, width: 300,
scopedSlots: { scopedSlots: {
customRender: 'action' customRender: 'action'
}, },
@ -225,13 +229,34 @@
firstAidData: {}, firstAidData: {},
carList: [], // carList: [], //
carNo: '', // carNo: '', //
patientId:''//Id
} }
}, },
created() { created() {
this.getData() this.getData()
this.getSelectList();
}, },
methods: { methods: {
...mapMutations('patient', ['setPatientData']), ...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 //list
async getData(pageNum) { async getData(pageNum) {
if (pageNum) { if (pageNum) {
@ -287,7 +312,11 @@
}, },
// //
onSearch(data) { onSearch(data) {
this.getData(1) this.getData(data || 1)
},
editReport(item, modalRef){
// this.patientId=item.firstAidId
this.$refs[modalRef].open(item)
}, },
checkReport(item, modalRef) { checkReport(item, modalRef) {
// const { // 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-ing">
<div class="throm-step"> <div class="throm-step">
<a-steps progress-dot :current="currentIndex" direction="vertical" @change="handleClickStep"> <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" /> :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" /> :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" /> :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" /> :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" /> :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" /> :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> </a-steps>
</div> </div>
<div class="throm-content"> <div class="throm-content">
<ThromIngDrug v-if="currentIndex == 0" @next="handleNext"></ThromIngDrug> <ThromIngDate v-if="currentIndex == 0" @next="handleNext"></ThromIngDate>
<ThromIngMin timercode="JMRS-Q-NIHSS" v-else-if="currentIndex == 1" @next="handleNext"></ThromIngMin> <ThromIngDrug v-if="currentIndex == 1" @next="handleNext"></ThromIngDrug>
<ThromIngMin timercode="JMRS-15-NIHSS" v-else-if="currentIndex == 2" @next="handleNext"></ThromIngMin> <ThromIngMin timercode="JMRS-Q-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-15-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-30-NIHSS" v-else-if="currentIndex == 4" @next="handleNext"></ThromIngMin>
<ThromIngMin timercode="JMRS-60-NIHSS" v-else-if="currentIndex == 5" @next="handleNext"></ThromIngMin> <ThromIngMin timercode="JMRS-45-NIHSS" v-else-if="currentIndex == 5" @next="handleNext"></ThromIngMin>
<ThromIngReactions v-else-if="currentIndex == 6" @next="handleNext"></ThromIngReactions> <ThromIngMin timercode="JMRS-60-NIHSS" v-else-if="currentIndex == 6" @next="handleNext"></ThromIngMin>
<ThromIngRecord v-else-if="currentIndex == 7" @next="handleNextStep"></ThromIngRecord> <ThromIngReactions v-else-if="currentIndex == 7" @next="handleNext"></ThromIngReactions>
<ThromIngRecord v-else-if="currentIndex == 8" @next="handleNextStep"></ThromIngRecord>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from 'vuex'; import { mapState } from 'vuex';
import ThromIngDate from './throm-ing-date.vue'
import ThromIngDrug from './throm-ing-selDrug.vue'; import ThromIngDrug from './throm-ing-selDrug.vue';
import ThromIngMin from './throm-ing-min.vue'; import ThromIngMin from './throm-ing-min.vue';
import ThromIngMin15 from './throm-ing-min15.vue'; import ThromIngMin15 from './throm-ing-min15.vue';
@ -52,12 +56,13 @@
ThromIngMin60, ThromIngMin60,
ThromIngReactions, ThromIngReactions,
ThromIngRecord, ThromIngRecord,
ThromIngDate
}, },
data() { data() {
return { return {
currentIndex: 0, currentIndex: 0,
stepDesc: { stepDesc: {
drugDesc: '阿尼普酶', drugDesc: '',
min0Desc: 'NIHSS评分: 0', min0Desc: 'NIHSS评分: 0',
min15Desc: 'NIHSS评分: 15', min15Desc: 'NIHSS评分: 15',
min30Desc: 'NIHSS评分: 30', min30Desc: 'NIHSS评分: 30',

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

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

Loading…
Cancel
Save