Browse Source

20250310

master
nicky 4 months ago
parent
commit
ddacf5d64f
  1. 40
      src/config/code.js
  2. 1
      src/store/modules/patient/mutations.js
  3. 28
      src/views/Patient/components/patient-detail.vue
  4. 11
      src/views/Patient/components/patient-list.vue
  5. 6
      src/views/document/index.vue
  6. 57
      src/views/thrombolysis/components/throm-before1.vue
  7. 6
      src/views/thrombolysis/components/throm-before3.vue
  8. 50
      src/views/thrombolysis/components/throm-ing-min.vue
  9. 2
      src/views/thrombolysis/components/throm-report.vue
  10. 29
      src/views/thrombolysis/components/throm-result-baseInfo.vue
  11. 15
      src/views/thrombolysis/components/throm-result-firstInfo.vue

40
src/config/code.js

@ -174,6 +174,7 @@ export const NIHSS_LIST = [{
description: '即使不能全面评价(如气管插管、语言障碍、气管创伤及绷带包扎等),检查者也必须选择1个反应。只在患者对有害刺激无反应时(不是反射)才能记录3分。', description: '即使不能全面评价(如气管插管、语言障碍、气管创伤及绷带包扎等),检查者也必须选择1个反应。只在患者对有害刺激无反应时(不是反射)才能记录3分。',
value: null, value: null,
visible: false, visible: false,
key: '1a-score',
range: [{ range: [{
value: 0, value: 0,
text: '清醒,反应灵敏(0分)', text: '清醒,反应灵敏(0分)',
@ -197,6 +198,7 @@ export const NIHSS_LIST = [{
description: '月份、年龄。仅对初次回答评分。失语和昏迷者不能理解问题记2分,因气管插管、气管创伤、严重构音障碍、语言障碍或其他任何原因不能完成者(非失语所致)记1分。可书面回答。', description: '月份、年龄。仅对初次回答评分。失语和昏迷者不能理解问题记2分,因气管插管、气管创伤、严重构音障碍、语言障碍或其他任何原因不能完成者(非失语所致)记1分。可书面回答。',
value: null, value: null,
visible: false, visible: false,
key: '1b-score',
range: [{ range: [{
value: 0, value: 0,
text: '两项均正确', text: '两项均正确',
@ -216,6 +218,7 @@ export const NIHSS_LIST = [{
description: '睁闭眼;非瘫痪侧握拳松开。仅对最初反应评分,有明确努力但未完成的也给分。若对指令无反应,用动作示意,然后记录评分。对创伤、截肢或其他生理缺陷者,应予适当的指令。', description: '睁闭眼;非瘫痪侧握拳松开。仅对最初反应评分,有明确努力但未完成的也给分。若对指令无反应,用动作示意,然后记录评分。对创伤、截肢或其他生理缺陷者,应予适当的指令。',
value: null, value: null,
visible: false, visible: false,
key: '1c-score',
range: [{ range: [{
value: 0, value: 0,
text: '两项均正确', text: '两项均正确',
@ -236,6 +239,7 @@ export const NIHSS_LIST = [{
description: '只测试水平眼球运动。对随意或反射性眼球运动记分。若眼球偏斜能被随意或反射性活动纠正,记1分。若为孤立的周围性眼肌麻痹记1分。对失语者,凝视是可以测试的。对眼球创伤、绷带包扎、盲人或有其他视力、视野障碍者,由检查者选择一种反射性运动来测试,确定眼球的联系,然后从一侧向另一侧运动,偶尔能发现部分性凝视麻痹。', description: '只测试水平眼球运动。对随意或反射性眼球运动记分。若眼球偏斜能被随意或反射性活动纠正,记1分。若为孤立的周围性眼肌麻痹记1分。对失语者,凝视是可以测试的。对眼球创伤、绷带包扎、盲人或有其他视力、视野障碍者,由检查者选择一种反射性运动来测试,确定眼球的联系,然后从一侧向另一侧运动,偶尔能发现部分性凝视麻痹。',
value: null, value: null,
visible: false, visible: false,
key: '2-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -255,6 +259,7 @@ export const NIHSS_LIST = [{
description: '若能看到侧面的手指,记录正常。若单眼盲或眼球摘除,检查另一只眼。明确的非对称盲(包括象限盲)记1分。若全盲(任何原因)记3分。若频临死亡记1分,结果用于回答问题', description: '若能看到侧面的手指,记录正常。若单眼盲或眼球摘除,检查另一只眼。明确的非对称盲(包括象限盲)记1分。若全盲(任何原因)记3分。若频临死亡记1分,结果用于回答问题',
value: null, value: null,
visible: false, visible: false,
key: '3-score',
range: [{ range: [{
value: 0, value: 0,
text: '无视野缺损', text: '无视野缺损',
@ -278,6 +283,7 @@ export const NIHSS_LIST = [{
description: null, description: null,
value: null, value: null,
visible: false, visible: false,
key: '4-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -301,6 +307,7 @@ export const NIHSS_LIST = [{
description: '置肢体于合适的位置:坐位时0上肢平举90°,仰卧时上抬45,掌心向下,下L肢卧位抬高30°,若上肢在10秒内,下肢在5秒内下落,记1~4分。对失语者用语言或动作鼓励,不用有害刺激,依次检查每个肢体,从非瘫痪侧上肢开始。', description: '置肢体于合适的位置:坐位时0上肢平举90°,仰卧时上抬45,掌心向下,下L肢卧位抬高30°,若上肢在10秒内,下肢在5秒内下落,记1~4分。对失语者用语言或动作鼓励,不用有害刺激,依次检查每个肢体,从非瘫痪侧上肢开始。',
value: null, value: null,
visible: false, visible: false,
key: '5-score',
range: [{ range: [{
value: 0, value: 0,
text: '无下落,置肢体于90°(或45°)坚持10秒', text: '无下落,置肢体于90°(或45°)坚持10秒',
@ -332,6 +339,7 @@ export const NIHSS_LIST = [{
description: '置肢体于合适的位置:坐位时0上肢平举90°,仰卧时上抬45,掌心向下,下L肢卧位抬高30°,若上肢在10秒内,下肢在5秒内下落,记1~4分。对失语者用语言或动作鼓励,不用有害刺激,依次检查每个肢体,从非瘫痪侧上肢开始。', description: '置肢体于合适的位置:坐位时0上肢平举90°,仰卧时上抬45,掌心向下,下L肢卧位抬高30°,若上肢在10秒内,下肢在5秒内下落,记1~4分。对失语者用语言或动作鼓励,不用有害刺激,依次检查每个肢体,从非瘫痪侧上肢开始。',
value: null, value: null,
visible: false, visible: false,
key: '6-score',
range: [{ range: [{
value: 0, value: 0,
text: '无下落,于要求位置坚持5秒', text: '无下落,于要求位置坚持5秒',
@ -363,6 +371,7 @@ export const NIHSS_LIST = [{
description: '目的是发现一侧小脑病变。检查时睁眼,若有视力障碍,确保检查在无视野缺损中进行双侧指鼻试验、跟膝径试验,共济失调与无力明显,不呈比例时记分。若患者不能理解或肢体瘫痪不记分。盲人用伸展的上肢摸鼻。若为截肢或关节融合记9分', description: '目的是发现一侧小脑病变。检查时睁眼,若有视力障碍,确保检查在无视野缺损中进行双侧指鼻试验、跟膝径试验,共济失调与无力明显,不呈比例时记分。若患者不能理解或肢体瘫痪不记分。盲人用伸展的上肢摸鼻。若为截肢或关节融合记9分',
value: null, value: null,
visible: false, visible: false,
key: '7-score',
range: [{ range: [{
value: 0, value: 0,
text: '无共济失调', text: '无共济失调',
@ -386,6 +395,7 @@ export const NIHSS_LIST = [{
description: '检查对针刺的感觉和表情,或意识障碍及失语者对有害刺激的躲避。只对与脑卒中有关的感觉缺失评分。偏身感觉丧失者需要精确检查,应测试身体多处[上肢(不包括手)、下肢、躯干、面部]确定有无偏身肢感觉缺失 严重或完全的感觉。缺失记2分。昏睡或失语者记1 或0分。脑干卒中双侧感觉缺失记2分。无反应或四肢瘫痪者记2分。昏迷患者(la=3)记2分。', description: '检查对针刺的感觉和表情,或意识障碍及失语者对有害刺激的躲避。只对与脑卒中有关的感觉缺失评分。偏身感觉丧失者需要精确检查,应测试身体多处[上肢(不包括手)、下肢、躯干、面部]确定有无偏身肢感觉缺失 严重或完全的感觉。缺失记2分。昏睡或失语者记1 或0分。脑干卒中双侧感觉缺失记2分。无反应或四肢瘫痪者记2分。昏迷患者(la=3)记2分。',
value: null, value: null,
visible: false, visible: false,
key: '8-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -405,6 +415,7 @@ export const NIHSS_LIST = [{
description: '命名、阅读测试。若视觉缺损干扰测试,可让患者识别放在手上的物品,重复和发音。气管插管者手写回答。昏迷者记3分。给恍惚或不合作者选择一个记分,但3分仅给不能说话且不能执行任何指令者。', description: '命名、阅读测试。若视觉缺损干扰测试,可让患者识别放在手上的物品,重复和发音。气管插管者手写回答。昏迷者记3分。给恍惚或不合作者选择一个记分,但3分仅给不能说话且不能执行任何指令者。',
value: null, value: null,
visible: false, visible: false,
key: '9-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -428,6 +439,7 @@ export const NIHSS_LIST = [{
description: '读或重复表上的单词。若有严重的实语,评估自发语言时发音的清晰度。若因气管插管或其他物理障碍不能讲话,记9分。', description: '读或重复表上的单词。若有严重的实语,评估自发语言时发音的清晰度。若因气管插管或其他物理障碍不能讲话,记9分。',
value: null, value: null,
visible: false, visible: false,
key: '10-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -451,6 +463,7 @@ export const NIHSS_LIST = [{
description: '若患者严重视觉缺失影响双侧视觉的同时检查,皮肤刺激正常,记为正常。若失语,但确实表现为对双侧的注意,记分正常。视空间忽视或疾病失认也可认为是异常的证据。', description: '若患者严重视觉缺失影响双侧视觉的同时检查,皮肤刺激正常,记为正常。若失语,但确实表现为对双侧的注意,记分正常。视空间忽视或疾病失认也可认为是异常的证据。',
value: null, value: null,
visible: false, visible: false,
key: '11-score',
range: [{ range: [{
value: 0, value: 0,
text: '正常', text: '正常',
@ -465,6 +478,33 @@ export const NIHSS_LIST = [{
}, },
], ],
}, },
{
text: '12.心率',
description: '',
value: null,
visible: false,
hidePopover: true,
key: '12-score',
range: [0, 200],
},
{
text: '13.血氧饱和度',
description: '',
value: null,
visible: false,
hidePopover: true,
key: '13-score',
range: [0, 100],
},
{
text: '14.格拉斯评分',
description: '',
value: null,
visible: false,
hidePopover: true,
key: '14-score',
range: [0, 15],
},
]; ];
//急诊病情评估 //急诊病情评估

1
src/store/modules/patient/mutations.js

@ -5,7 +5,6 @@ const mutations = {
* @param { boolean } data * @param { boolean } data
*/ */
setPatientData(state, data) { setPatientData(state, data) {
console.log(333)
// 团注, 剂量, 每次进来复制为空 // 团注, 剂量, 每次进来复制为空
if (data.recordValDict) { if (data.recordValDict) {
if (!data.recordValDict['JMRS-TZJL']) { if (!data.recordValDict['JMRS-TZJL']) {

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

@ -43,17 +43,19 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="身高"> <a-form-model-item label="身高">
<a-input v-model="form.height" placeholder="请输入身高 (cm)" @change="bmiChange($event, 'height')" v-if="authEdit" /> <a-input v-model="form.height" placeholder="请输入身高 (cm)"
@change="bmiChange($event, 'height')" v-if="authEdit" />
<div v-else class="edititem"> {{patientDataCur.height}} </div> <div v-else class="edititem"> {{patientDataCur.height}} </div>
</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-input v-model="form.weight" placeholder="请输入体重 (kg)" @change="bmiChange($event, 'weight')" v-if="authEdit" /> <a-input v-model="form.weight" placeholder="请输入体重 (kg)"
@change="bmiChange($event, 'weight')" v-if="authEdit" />
<div v-else class="edititem"> {{patientDataCur.weight}} </div> <div v-else class="edititem"> {{patientDataCur.weight}} </div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="18">
<a-form-model-item label="身份证号" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" <a-form-model-item label="身份证号" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }"
placeholder="请输入身份证号"> placeholder="请输入身份证号">
<keyboard placeHolder="" :index-num="indexNum" @keyboard-input="handleKeyBoard" <keyboard placeHolder="" :index-num="indexNum" @keyboard-input="handleKeyBoard"
@ -63,7 +65,7 @@
</div> </div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="8" style="padding-top: 0.15vw;" v-if="authEdit"> <a-col :span="6" style="padding-top: 0.15vw;" v-if="authEdit">
<a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button> <a-button type="primary" class="idcard" @click="openCamera">扫描身份证</a-button>
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
@ -110,10 +112,10 @@
<div v-else class="edititem">{{patientDataCur.greenRoadFlag}}</div> <div v-else class="edititem">{{patientDataCur.greenRoadFlag}}</div>
</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="BMI"> <a-form-model-item label="bmi">
<div class="edititem" v-if="authEdit">{{form.BMI}}</div> <div class="edititem" v-if="authEdit">{{form.bmi}}</div>
<div class="edititem" v-else>{{patientDataCur.BMI}}</div> <div class="edititem" v-else>{{patientDataCur.bmi}}</div>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -204,11 +206,11 @@
'setVideo', 'setVideo',
'setBook', 'setBook',
]), ]),
bmiChange(e, filed){ bmiChange(e, filed) {
if(this.form.height && this.form.weight){ if (this.form.height && this.form.weight) {
const bmi = this.utils.computeBMI(this.form.weight, this.form.height) const bmi = this.utils.computeBMI(this.form.weight, this.form.height)
// console.log(this.form.height, this.form.weight, bmi) // console.log(this.form.height, this.form.weight, bmi)
if(!isNaN(bmi)) this.form.BMI = bmi if (!isNaN(bmi)) this.form.bmi = bmi
} }
}, },
goPatientList() { goPatientList() {
@ -484,9 +486,11 @@
.ant-form-item { .ant-form-item {
margin-bottom: .5rem; margin-bottom: .5rem;
.ant-form-item-label > label::after{
.ant-form-item-label>label::after {
content: ':'; content: ':';
} }
.ant-form-item-label { .ant-form-item-label {
label { label {
// font-size: 0.75rem; // font-size: 0.75rem;

11
src/views/Patient/components/patient-list.vue

@ -14,7 +14,8 @@
<div class="patient-name">{{item.name}} <span <div class="patient-name">{{item.name}} <span
class="sex">{{item.patientGender ? '女' : '男'}}</span><span class="sex">{{item.patientGender ? '女' : '男'}}</span><span
class="age">{{utils.calculateAge(item.identityNo)}}</span></div> class="age">{{utils.calculateAge(item.identityNo)}}</span></div>
<div class="patient-cardNo">{{item.identityNo ? utils.maskIDCard(item.identityNo) : '-'}} <div class="patient-cardNo">
{{item.identityNo ? utils.maskIDCard(item.identityNo) : '-'}}
</div> </div>
</div> </div>
</div> </div>
@ -116,7 +117,9 @@
const params = { const params = {
pageNum: this.pageNum, pageNum: this.pageNum,
pageSize: this.pageSize, pageSize: this.pageSize,
param: { keyWords } param: {
keyWords
}
}; };
const res = await queryTriageList(params); const res = await queryTriageList(params);
const { const {
@ -155,10 +158,11 @@
}, },
// //
checkPaitent(item, index) { checkPaitent(item, index) {
if(!item) return if (!item) return
const { const {
address, address,
birthday, birthday,
bmi,
carNo, carNo,
chargeType, chargeType,
clinicLabel, clinicLabel,
@ -192,6 +196,7 @@
patientGender: sex, patientGender: sex,
patientNation: nation, patientNation: nation,
patientIdCardNo: identityNo, patientIdCardNo: identityNo,
bmi,
contract: contactPhone, contract: contactPhone,
address, address,
birthday, birthday,

6
src/views/document/index.vue

@ -138,8 +138,8 @@
}, },
{ {
title: '联系方式', title: '联系方式',
dataIndex: 'patientPhone', dataIndex: 'phone',
key: 'patientPhone', key: 'phone',
ellipsis: true, ellipsis: true,
align: 'center', align: 'center',
width: 250 width: 250
@ -318,7 +318,7 @@
key: 'operation', key: 'operation',
fixed: 'right', fixed: 'right',
align: 'center', align: 'center',
width: 320, width: 350,
scopedSlots: { scopedSlots: {
customRender: 'action' customRender: 'action'
}, },

57
src/views/thrombolysis/components/throm-before1.vue

@ -41,7 +41,8 @@
<!-- radio --> <!-- radio -->
<div class="mrsitem"> <div class="mrsitem">
<a-radio-group :disabled="writeAble" size="large" v-if="k.type === 'radio'" <a-radio-group :disabled="writeAble" size="large" v-if="k.type === 'radio'"
v-decorator="[v, { initialValue: k.default }]" button-style="solid" @change="changeRadio($event, v)"> v-decorator="[v, { initialValue: k.default }]" button-style="solid"
@change="changeRadio($event, v)">
<a-radio-button :disabled="writeAble" v-for="(item, index) in k.range" :key="item" <a-radio-button :disabled="writeAble" v-for="(item, index) in k.range" :key="item"
:value="item"> :value="item">
{{ item }} {{ item }}
@ -53,8 +54,8 @@
<div class="item-name"> <div class="item-name">
<span class="item-info">得分</span> <span class="item-info">得分</span>
</div> </div>
<a-input-number :type="k.inputType" :min="0" :max="100" <a-input-number :type="k.inputType" :min="0" style="width: 20%; margin-left: 20px"
style="width: 20%; margin-left: 20px" v-decorator="[v]" /> v-decorator="[v]" />
</div> </div>
<div class="niss-list-item" v-for="(item, index) in k.range" :key="item.text"> <div class="niss-list-item" v-for="(item, index) in k.range" :key="item.text">
<div class="item-name"> <div class="item-name">
@ -68,7 +69,11 @@
<a-icon v-if="item.description" class="item-icon" type="question-circle" /> <a-icon v-if="item.description" class="item-icon" type="question-circle" />
</a-tooltip> </a-tooltip>
</div> </div>
<a-popover v-model="item.visible" placement="bottom"> <a-input-number :disabled="writeAble" ref="inputNumber" class="noControls"
@change="handleInputChange($event, item, v)" v-if="item.hidePopover"
style="width: 20%; margin-left: 20px" v-model="item.value" :min="item.range[0]"
:max="item.range[1]" />
<a-popover v-model="item.visible" placement="bottom" v-else>
<template slot="content" v-if="item.range"> <template slot="content" v-if="item.range">
<a-radio-group :disabled="writeAble" v-model="nissValue" button-style="solid" <a-radio-group :disabled="writeAble" v-model="nissValue" button-style="solid"
@change="changeRangeRadio(item, v)"> @change="changeRangeRadio(item, v)">
@ -218,6 +223,11 @@
} }
} }
for (let k in this.NIHSS_LIST) {
if (data['RYPG-NIHSS' + this.NIHSS_LIST[k].key]) {
this.NIHSS_LIST[k].value = Number(data['RYPG-NIHSS' + this.NIHSS_LIST[k].key][0]?.answer[0])
}
}
}, },
focusInput(index) { focusInput(index) {
this.$refs.inputNumber[index].readOnly = true; this.$refs.inputNumber[index].readOnly = true;
@ -228,8 +238,8 @@
item.value = value; item.value = value;
this.nissValue = ''; this.nissValue = '';
}, },
changeRangeRadio(item, code) { changeRangeRadio(row, code) {
const text = item.text; const text = row.text;
let score = 0; let score = 0;
let NIHSS_LIST = [].concat(this.NIHSS_LIST); let NIHSS_LIST = [].concat(this.NIHSS_LIST);
NIHSS_LIST.forEach((item, index) => { NIHSS_LIST.forEach((item, index) => {
@ -246,7 +256,27 @@
this.form.setFieldsValue({ this.form.setFieldsValue({
[`${code}`]: score, [`${code}`]: score,
}); });
item.visible = false; row.visible = false;
},
handleInputChange(val, row, code) {
const text = row.text;
let score = 0;
let NIHSS_LIST = [].concat(this.NIHSS_LIST);
NIHSS_LIST.forEach((item, index) => {
console.log(typeof val)
if (item.text === text) {
item.value = val;
}
if (item.value) {
score += item.value;
}
});
this.form.getFieldDecorator([`${code}`], {
preserve: true, //便使
});
this.form.setFieldsValue({
[`${code}`]: score
});
}, },
changeRadio(e, v) { changeRadio(e, v) {
this.codeForm[v] = e.target.value; this.codeForm[v] = e.target.value;
@ -325,6 +355,19 @@
}); });
} }
} }
for (let k in this.NIHSS_LIST) {
if (this.NIHSS_LIST[k].value) {
codeAndAnswerList.push({
questionCode: 'RYPG-NIHSS' + this.NIHSS_LIST[k].key,
answer: [this.NIHSS_LIST[k].value || 0],
time: '',
});
}
}
console.log('codeAndAnswerList', codeAndAnswerList)
this.home.updateAidCode({ this.home.updateAidCode({
codeAndAnswerList, codeAndAnswerList,
}, false); }, false);

6
src/views/thrombolysis/components/throm-before3.vue

@ -18,7 +18,7 @@
</div> </div>
</a-card> </a-card>
<div class="throm-common-button " v-if="!outside"> <div class="throm-common-button " v-if="!outside">
<!-- <w-upload @ok="handleUpload" btn-type="button" btn-text="上传院前CT图片" <!-- <w-upload :disabled="writeAble" @ok="handleUpload" btn-type="button" btn-text="上传院前CT图片"
v-if="fileList.length < 5" /> --> v-if="fileList.length < 5" /> -->
<a-button :disabled="writeAble" class="" block size="large" v-if="fileList.length < 5" <a-button :disabled="writeAble" class="" block size="large" v-if="fileList.length < 5"
@click="openCamera">上传院前CT图片</a-button> @click="openCamera">上传院前CT图片</a-button>
@ -101,6 +101,8 @@
answer answer
} = data['JMRS-YQ-CT'][0]; } = data['JMRS-YQ-CT'][0];
this.fileList = answer; this.fileList = answer;
const index = this.tabList.findIndex(a => a.key == 'ct')
this.tabList[index].tab = `院前CT (${this.fileList.length}张)`
} }
}, },
del(index) { del(index) {
@ -139,7 +141,7 @@
name, name,
url url
}) { }) {
console.log('upload end', 'http://116.204.114.73:20007' + url) //_doc/upload/ // console.log('upload end', 'http://116.204.114.73:20007' + url) //_doc/upload/
this.fileList.push(url); this.fileList.push(url);
const index = this.tabList.findIndex(a => a.key == 'ct') const index = this.tabList.findIndex(a => a.key == 'ct')
this.tabList[index].tab = `院前CT (${this.fileList.length}张)` this.tabList[index].tab = `院前CT (${this.fileList.length}张)`

50
src/views/thrombolysis/components/throm-ing-min.vue

@ -68,8 +68,12 @@
</a-tooltip> </a-tooltip>
</div> </div>
</div> </div>
<a-input-number :disabled="writeAble" ref="inputNumber" class="noControls"
@change="handleInputChange($event, item, v)" v-if="item.hidePopover"
style="width: 20%; margin-left: 20px" v-model="item.value" :min="item.range[0]"
:max="item.range[1]" />
<a-popover v-model="item.visible" placement="bottomRight" arrow-point-at-center <a-popover v-model="item.visible" placement="bottomRight" arrow-point-at-center
trigger="click"> trigger="click" v-else>
<template slot="content" v-if="item.range"> <template slot="content" v-if="item.range">
<a-radio-group :disabled="writeAble" v-model="nissValue" button-style="solid" <a-radio-group :disabled="writeAble" v-model="nissValue" button-style="solid"
@change="changeRangeRadio(item, v)"> @change="changeRangeRadio(item, v)">
@ -90,9 +94,8 @@
</div> </div>
</a-form-item> </a-form-item>
</a-form> </a-form>
<div class="throm-common-button" > <div class="throm-common-button">
<a-button :disabled="writeAble" class="" block type="primary" size="large" <a-button :disabled="writeAble" class="" block type="primary" size="large" @click="onSubmit">下一步</a-button>
@click="onSubmit">下一步</a-button>
</div> </div>
</div> </div>
</template> </template>
@ -209,7 +212,7 @@
const { const {
code code
} = this.timerData; } = this.timerData;
console.log('code=====', code) console.log('code=====', code, this.timercode)
const wangbadan = code ? const wangbadan = code ?
this.codeFormData[`${code}`] : this.codeFormData[`${code}`] :
this.codeForm; this.codeForm;
@ -230,6 +233,11 @@
} }
} }
} }
for (let k in this.NIHSS_LIST) {
if (data[this.timercode + this.NIHSS_LIST[k].key]) {
this.NIHSS_LIST[k].value = Number(data[this.timercode + this.NIHSS_LIST[k].key][0]?.answer[0])
}
}
}, },
focusInput(index) { focusInput(index) {
this.$refs.inputNumber[index].readOnly = true; this.$refs.inputNumber[index].readOnly = true;
@ -261,6 +269,26 @@
}); });
item.visible = false; item.visible = false;
}, },
handleInputChange(val, row, code) {
const text = row.text;
let score = 0;
let NIHSS_LIST = [].concat(this.NIHSS_LIST);
NIHSS_LIST.forEach((item, index) => {
console.log(typeof val)
if (item.text === text) {
item.value = val;
}
if (item.value) {
score += item.value;
}
});
this.form.getFieldDecorator([`${code}`], {
preserve: true, //便使
});
this.form.setFieldsValue({
[`${code}`]: score
});
},
changeRadio(e, v) { changeRadio(e, v) {
this.codeForm[v] = e.target.value; this.codeForm[v] = e.target.value;
}, },
@ -344,6 +372,18 @@
}); });
} }
} }
for (let k in this.NIHSS_LIST) {
if (this.NIHSS_LIST[k].value) {
codeAndAnswerList.push({
questionCode: this.timercode + this.NIHSS_LIST[k].key,
answer: [this.NIHSS_LIST[k].value || 0],
time: '',
});
}
}
this.home.updateAidCode({ this.home.updateAidCode({
codeAndAnswerList, codeAndAnswerList,
}, false); }, false);

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

@ -41,7 +41,7 @@
</a-row> </a-row>
<a-row> <a-row>
<div class="leftTitle">联系方式</div> <div class="leftTitle">联系方式</div>
<div class="rightValue">{{patient.patientContract || '-'}}</div> <div class="rightValue">{{patient.phone || '-'}}</div>
</a-row> </a-row>
</a-col> </a-col>

29
src/views/thrombolysis/components/throm-result-baseInfo.vue

@ -16,7 +16,7 @@
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<div style="text-align: right;" v-if="!writeAble"> <div style="text-align: right;" v-if="!writeAble">
<a-button type="primary" @click="editAuth = !editAuth">{{editAuth ? '取消编辑' : '编辑'}}</a-button> <a-button type="primary" @click="handleEdit">{{editAuth ? '保存' : '编辑'}}</a-button>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -50,8 +50,8 @@
</a-form-item> </a-form-item>
<a-form-item label="联系方式"> <a-form-item label="联系方式">
<div class="detail-form-control"> <div class="detail-form-control">
<a-input :disabled="writeAble || !editAuth" v-decorator="['patientPhone']" <a-input :disabled="writeAble || !editAuth" v-decorator="['phone']"
@blur="onBaseChange($event.target.value, 'patientPhone')" placeholder='请输入' /> @blur="onBaseChange($event.target.value, 'phone')" placeholder='请输入' />
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="身份证号"> <a-form-item label="身份证号">
@ -114,8 +114,8 @@
</div> </div>
</div> </div>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble || !editAuth" class="" block type="primary" size="large" <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="onSubmit">{{patientId ? '保存' : '下一步'}}</a-button> @click="onSubmit">{{patientId ? '完成' : '下一步'}}</a-button>
<!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit"> <!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit">
保存<a-icon type="check" /> 保存<a-icon type="check" />
</a-button> --> </a-button> -->
@ -211,7 +211,8 @@
patientGender, patientGender,
patientNation, patientNation,
patientIdCardNo, patientIdCardNo,
firstAidZlType firstAidZlType,
phone,
} = data } = data
this.firstAidZlType = firstAidZlType && firstAidZlType.toString() || '0' this.firstAidZlType = firstAidZlType && firstAidZlType.toString() || '0'
this.baseForm.getFieldDecorator([patientName, this.baseForm.getFieldDecorator([patientName,
@ -225,7 +226,8 @@
patientName, patientName,
patientGender, patientGender,
patientNation, patientNation,
patientIdCardNo patientIdCardNo,
phone
}); });
for (let k in recordValDict) { for (let k in recordValDict) {
if (recordValDict[k]) { if (recordValDict[k]) {
@ -333,7 +335,14 @@
} }
return isLt10M; return isLt10M;
}, },
async onSubmit(e) { async handleEdit(e){
if(!this.editAuth){
this.editAuth = true
}else{
this.onSubmit(e, true)
}
},
async onSubmit(e, s) {
e.preventDefault(); e.preventDefault();
let firstAidId = this.form.firstAidId let firstAidId = this.form.firstAidId
let codeAndAnswerList = [], let codeAndAnswerList = [],
@ -371,8 +380,8 @@
firstAidZlType: this.firstAidZlType, firstAidZlType: this.firstAidZlType,
codeAndAnswerList codeAndAnswerList
}, false) }, false)
this.editAuth = false
this.$emit('next') if(!s) this.$emit('next')
}else{ }else{
await updateFirstAid(params) await updateFirstAid(params)
const res = await saveAidRecord({ const res = await saveAidRecord({

15
src/views/thrombolysis/components/throm-result-firstInfo.vue

@ -2,7 +2,7 @@
<div class="Overviewbasicr"> <div class="Overviewbasicr">
<div class="first-content"> <div class="first-content">
<div style="text-align: right;" v-if="!writeAble"> <div style="text-align: right;" v-if="!writeAble">
<a-button type="primary" @click="editAuth = !editAuth">{{editAuth ? '取消编辑' : '编辑'}}</a-button> <a-button type="primary" @click="handleEdit">{{editAuth ? '保存' : '编辑'}}</a-button>
</div> </div>
<!-- 患者急救记录 --> <!-- 患者急救记录 -->
<div class="basicr-back basicr-back-info"> <div class="basicr-back basicr-back-info">
@ -237,10 +237,10 @@
</a-modal> </a-modal>
</div> </div>
<div class="throm-common-button"> <div class="throm-common-button">
<a-button :disabled="writeAble || !editAuth" class="" block type="primary" size="large" <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="onSubmit($event, patientId)">{{patientId? '保存' : '完成'}}</a-button> @click="onSubmit($event, patientId)">完成</a-button>
<!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit"> <!-- <a-button :disabled="writeAble" type="link" size="large" @click="onSubmit">
保存<a-icon type="check" /> 保存<a-icon type="check" /> {{patientId? '保存' : '完成'}}
</a-button> --> </a-button> -->
</div> </div>
</div> </div>
@ -500,6 +500,13 @@
} }
// this.updateAidBase(code, value, type) // this.updateAidBase(code, value, type)
}, },
async handleEdit(e){
if(!this.editAuth){
this.editAuth = true
}else{
this.handleSubmit(e, 0)
}
},
async onSubmit(e, patientId) { async onSubmit(e, patientId) {
e.preventDefault(); e.preventDefault();
const _this = this; const _this = this;

Loading…
Cancel
Save