You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1049 lines
29 KiB

<template>
<div class="throm-report">
<div class="report-container">
<a-row >
<a-col :span="24">
<a-card class="report-card baseInfo" title="患者信息">
<a-col :span='8'>
<a-row><div class="leftTitle">姓名</div><div class="rightValue">{{patient.patientName}}</div></a-row>
<a-row><div class="leftTitle">民族</div><div class="rightValue">{{patient.patientNation || '-'}}</div></a-row>
<a-row><div class="leftTitle">诊断</div><div class="rightValue">{{patient.firstAidZlTypeString || '-'}}</div></a-row>
</a-col>
<a-col :span='8' class="midItem">
<a-row><div class="leftTitle">性别</div><div class="rightValue">{{patient.patientGenderString || '-'}}</div></a-row>
<a-row><div class="leftTitle">身份证号</div><div class="rightValue">{{patient.patientIdCardNo ? utils.maskIDCard(patient.patientIdCardNo || '') : '-'}}</div></a-row>
<a-row><div class="leftTitle">发病时间</div><div class="rightValue">{{queryItemInfo('XGZL-CCWC-TIME').toString() ||'-'}}</div></a-row>
</a-col>
<a-col :span='8'>
<a-row><div class="leftTitle">年龄</div><div class="rightValue">{{patient.patientAge || '-'}}</div></a-row>
<a-row><div class="leftTitle">联系方式</div><div class="rightValue">{{patient.patientContract || '-'}}</div></a-row>
</a-col>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card baseInfo" title="病情评估">
<a-col :span='8'>
<a-row><div class="leftTitle">入院mRS评分</div><div class="rightValue">{{ getFirstInfo['RYPG-MRS'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">入院NIHSS评分</div><div class="rightValue">{{ getFirstInfo['RYPG-NIHSS'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">舒张压/收缩压</div><div class="rightValue">
<span>{{getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] ? (getFirstInfo['RYPG-DIASTOLIC-PRESSURE'] + 'mmHg') : '暂无'}}</span>
<span> / </span>
<span>{{getFirstInfo['RYPG-SYSTOLIC-PRESSURE'] ? (getFirstInfo['RYPG-SYSTOLIC-PRESSURE'] + 'mmHg') : '暂无'}}</span>
</div></a-row>
<a-row><div class="leftTitle">选用平车</div><div class="rightValue">{{patient.carNo || '-'}}</div></a-row>
<a-row><div class="leftTitle">绿道状态</div><div class="rightValue"><span class="report-treat-rowtext"><a-switch checked></a-switch></span></div></a-row>
</a-col>
<a-col :span='8' class="midItem">
<a-row><div class="leftTitle">身高</div><div class="rightValue">{{ getFirstInfo['RYPG-HEIGHT'] ? getFirstInfo['RYPG-HEIGHT'] + 'CM' : '暂无' }}</div></a-row>
<a-row><div class="leftTitle">体重</div><div class="rightValue">{{ getFirstInfo['RYPG-WEIGHT'] ? getFirstInfo['RYPG-WEIGHT'] + 'KG' : '暂无' }}</div></a-row>
<a-row><div class="leftTitle">BMI</div><div class="rightValue">{{ getFirstInfo['RYPG-BMI'] || '暂无' }}</div></a-row>
<a-row><div class="leftTitle">血糖</div><div class="rightValue">{{ getFirstInfo['RYPG-PULSE'] ? getFirstInfo['RYPG-PULSE'] + '次/分' : '暂无' }}</div></a-row>
</a-col>
<a-col :span='8'>
<a-row><div class="leftTitle">选用平车</div><div class="rightValue">{{patient.carNo || '-'}}</div></a-row>
<a-row><div class="leftTitle">溶栓药物</div><div class="rightValue">: {{getFirstInfo['JMRS-RSYW'] || '暂无'}}</div></a-row>
<a-row><div class="leftTitle">静滴剂量</div><div class="rightValue">: {{getFirstInfo['JMRS-JDJL'] || '暂无'}}</div></a-row>
<a-row><div class="leftTitle">团注剂量</div><div class="rightValue">: {{getFirstInfo['JMRS-TZJL'] || '暂无'}}</div></a-row>
</a-col>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card" title="溶栓状态">
<div class="report-timeline">
<a-steps progress-dot :current="currentIndex" direction="vertical">
<template v-for="(item, index) in getNodeList">
<a-step
:status="processNodeIndex == index ? 'process' : processNodeIndex > index && item.record ? 'finish' : 'wait' ">
<div slot="title"
style="display: flex;justify-content: space-between;width: 100%">
<div>{{item.nodeName}}</div>
<div>
{{processNodeIndex == index ? '进行中' : processNodeIndex > index && item.record ? '已完成' : ''}}
</div>
</div>
<div slot="description">{{item.record ? item.record.answer[0] : ''}}</div>
</a-step>
</template>
</a-steps>
</div>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card" title="急诊溶栓记录">
<a slot="extra" id="exportFirst" href="JavaScript:;" @click="handleExportRsPdf">导出</a>
<div class="report-card-content" style="min-height: 300px;">
<div class="record-content" v-html="recordData"></div>
<div class="emtpy" v-if="!recordData">
<a-empty :image="emptyImage" description="暂无溶栓记录" />
</div>
</div>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card" title="溶栓观察表">
<a slot="extra" href="javascript:;" @click="handleExportRsgcbPdf">导出</a>
<div class="doc-ct-content">
<div>
<table border class="report-rsgcb">
<!-- <tr>
<td>姓名:{{patient.patientName}}</td>
<td>性别:{{patient.patientGenderString}}</td>
<td>年龄:{{patient.patientAge}}</td>
<td>诊断: {{patient.firstAidZlType}}</td>
<td>观察者: </td>
</tr>
<tr>
<td colspan="3">发病时间:{{queryItemInfo('XGZL-CCWC-TIME').toString()}}</td>
<td colspan="3">用药时间:{{queryItemInfo('RYPG-CBZD').toString()}}</td>
</tr> -->
<tr>
<td colspan="2">溶栓药物:{{queryItemInfo('JMRS-RSYW').toString()}}</td>
<td colspan="2">剂量:{{queryItemInfo('JMRS-JDJL').toString()}}</td>
<td colspan="2">用法用量: </td>
</tr>
<tr>
<td>时间点</td>
<td>血压(BP)</td>
<td>心率(HR)</td>
<td>血样饱和度(HR)</td>
<td>格拉斯评分</td>
<td>NIHSS</td>
</tr>
<tr>
<td>用药前</td>
<td>{{queryItemInfo('JMRS-Q-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-Q-NIHSS').toString()}}</td>
</tr>
<tr>
<td>15min</td>
<td>{{queryItemInfo('JMRS-15-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-15-NIHSS').toString()}}</td>
</tr>
<tr>
<td>30min</td>
<td>{{queryItemInfo('JMRS-30-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-30-NIHSS').toString()}}</td>
</tr>
<tr>
<td>45min</td>
<td>{{queryItemInfo('JMRS-45-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-45-NIHSS').toString()}}</td>
</tr>
<tr>
<td>60min</td>
<td>{{queryItemInfo('JMRS-60-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-60-NIHSS').toString()}}</td>
</tr>
<tr>
<td>75min</td>
<td>{{queryItemInfo('JMRS-75-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-75-NIHSS').toString()}}</td>
</tr>
<tr>
<td>90min</td>
<td>{{queryItemInfo('JMRS-90-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-90-NIHSS').toString()}}</td>
</tr>
<tr>
<td>105min</td>
<td>{{queryItemInfo('JMRS-105-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-105-NIHSS').toString()}}</td>
</tr>
<tr>
<td>120min</td>
<td>{{queryItemInfo('JMRS-120-SYSTOLIC-PRESSURE').toString()}}</td>
<td></td>
<td></td>
<td></td>
<td>{{queryItemInfo('JMRS-120-NIHSS').toString()}}</td>
</tr>
</table>
</div>
</div>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card" title="DNT时间表">
<a slot="extra" href="javascript:;" @click="handleExportDntPdf">导出</a>
<div class="doc-ct-content">
<div class="record-content">
<table border class="report-rsgcb">
<!-- <tr>
<td colspan="2">姓名:{{patient.patientName}}</td>
<td colspan="3">性别:{{patient.patientGenderString}}</td>
<td colspan="1">年龄:{{patient.patientAge}}</td>
<td colspan="2">血糖(BS):{{queryItemInfo('RYPG-BLOOD-SUGAR').toString()}}</td>
<td colspan="2">血压(BP):{{queryItemInfo('JMRS-Q-SYSTOLIC-PRESSURE').toString()}}
</td>
</tr>
<tr>
<td colspan="3">一线:</td>
<td colspan="3">二线:</td>
<td colspan="4">NIHSS:{{queryItemInfo('JMRS-Q-NIHSS').toString()}}</td>
</tr> -->
<tr>
<td colspan="2">溶栓流程</td>
<td colspan="3">具体时间</td>
<td colspan="2">采集方式</td>
<td colspan="3">备注</td>
</tr>
<tr>
<td colspan="2">发病时间</td>
<td colspan="3">{{queryItemInfo('JBXX-FBSJ').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">到院时间</td>
<td colspan="3">{{queryItemInfo('JBXX-FBSJ').toString()}}</td>
<td colspan="2">质控平车:</td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">启动绿道时间</td>
<td colspan="3">{{queryItemInfo('RYPG-GR-TIME').toString()}}</td>
<td colspan="2">可视化信息竖屏:</td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">呼叫时间</td>
<td colspan="3">{{queryItemInfo('JBXX-TZCZYS-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">一线到场时间</td>
<td colspan="3">{{queryItemInfo('JBXX-CZYSDC-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">采血开始时间</td>
<td colspan="3">{{queryItemInfo('RYPG-BLOOD-TIME').toString()}}</td>
<td colspan="2">质控平车</td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">血样报告时间</td>
<td colspan="3">{{queryItemInfo('RYPG-BLOOD-REPORT-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">心电开始时间</td>
<td colspan="3">{{queryItemInfo('RYPG-ECG-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">到达CT时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-DD-TIME').toString()}}</td>
<td colspan="2">质控平车</td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">CT检查开始时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-JCKS-TIME').toString()}}</td>
<td colspan="2">质控平车</td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">CT检查完毕时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-JCWB-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<!-- <tr>
<td colspan="2">离开CT时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-LK-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr> -->
<tr>
<td colspan="2">到达核磁时间</td>
<td colspan="3">{{queryItemInfo('JMRS-HC-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">二线医生到场时间</td>
<td colspan="3">{{queryItemInfo('JBXX-SNYSDC-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">谈话开始时间</td>
<td colspan="3">{{queryItemInfo('JMRS-TH-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">签署知情同意书时间</td>
<td colspan="3">{{queryItemInfo('JMRS-ZQTY-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">到达溶栓区时间</td>
<td colspan="3">{{queryItemInfo('JMRS-RSQ-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">静脉溶栓开始时间</td>
<td colspan="3">{{queryItemInfo('JMRS-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">静脉溶栓结束时间</td>
<td colspan="3">{{queryItemInfo('JMRS-END-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">进入介入室时间</td>
<td colspan="3">{{queryItemInfo('JMRS-DDJRS').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">置鞘时间</td>
<td colspan="3">{{queryItemInfo('XGZL-CCWC-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">血管再通时间</td>
<td colspan="3">{{queryItemInfo('XGZL-SH-SCXGZTSJ').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
<tr>
<td colspan="2">进入病房时间</td>
<td colspan="3">{{queryItemInfo('JMRS-DDBF').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
</tr>
</table>
</div>
</div>
</a-card>
</a-col>
<a-col :span="24">
<a-card class="report-card" title="介入手术记录">
<a slot="extra" href="javascript:;" @click="handleExportJrPdf">导出</a>
<div class="doc-ct-content" style="min-height: 300px;">
<div class="record-content" v-html="operaData"></div>
<div class="emtpy" v-if="!operaData">
<a-empty :image="emptyImage" description="暂无手术记录" />
</div>
</div>
</a-card>
</a-col>
</a-row>
</div>
<div style="background-color: #fff;padding-bottom: 12px;border-top: 1px solid #eee;">
<div class="throm-common-button" >
<a-button :disabled="writeAble" class="" type="primary" size="large" block
@click="handleExportAll">打印</a-button>
<!-- <a-button :disabled="writeAble" class="" block type="primary" size="large"
@click="onSubmit">导出</a-button> -->
</div>
</div>
<throm-report-dnt ref="dnt"></throm-report-dnt>
<throm-report-record ref="record"></throm-report-record>
<throm-report-observe ref="observe"></throm-report-observe>
<throm-report-opera ref="opera"></throm-report-opera>
<a ref="downloadRef" target="_blank" href="javascript:;" style="display: none;"></a>
</div>
</template>
<script>
import {
mapMutations,
mapState
} from 'vuex';
import {
apiUrl
} from '@/config/setting.js';
import {
getNextNode,
messageQuery,
queryAidRecord,
queryLog,
operationLog,
getCtInfoPath,
operationLogEx,
exportRsPdf,
exportDntPdf,
exportRsgcbPdf,
exportJrPdf,
exportAll,
} from 'api';
import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';
import ThromReportDnt from './throm-report-dnt.vue';
import ThromReportRecord from './throm-report-record.vue';
import ThromReportObserve from './throm-report-observe.vue';
import ThromReportOpera from './throm-report-opera.vue';
import emptyImage from '@/assets/images/slice/empty.png'
dayjs.extend(duration);
export default {
name: "throm-report",
components: {
ThromReportDnt,
ThromReportRecord,
ThromReportObserve,
ThromReportOpera,
},
data() {
return {
emptyImage,
currentIndex: 1,
dataList: [{
name: '急诊溶栓记录',
type: 'record'
},
{
name: '溶栓观察表',
type: 'observe'
},
{
name: 'DNT时间表',
type: 'dnt'
},
{
name: '介入手术记录',
type: 'opera'
},
],
nodeInfo: {
fbsj: '',
jfbSeconds: '',
dntSeconds: '',
ctSeconds: '',
nextStepName: '',
countDownInSeconds: '',
nodeList: [],
},
dataInfo: {
patientAge: '',
patientIdCardNo: '',
patientGender: '',
patientName: '',
},
codeForm: {
'RYPG-HEIGHT': '',
'RYPG-WEIGHT': '',
'RYPG-BMI': '',
'RYPG-PULSE': '',
'RYPG-SYSTOLIC-PRESSURE': '',
'RYPG-DIASTOLIC-PRESSURE': '',
'RYPG-MRS': '',
'RYPG-NIHSS': '',
},
request: 1,
processNodeIndex: 0,
patient: {},
recordData: "",
observeData: "",
dntData: "",
operaData: "",
}
},
props: {
reportType: {
type: String,
default: "",
},
dataSource: {
type: Object,
default: () => ({})
},
firstAidId: {
type: String,
default: "",
}
},
computed: {
...mapState('patient', ['patientData', 'nextNodeData', 'writeAble']),
getPatient() {
const {
firstAidId,
patientName,
patientGender,
patientAge
} = this.patient;
if (!firstAidId) return;
return `${patientName} ${ patientGender === 0 ? '男' : patientGender === 1 ? '女' : '' } ${patientAge || ''}`;
},
getPressure() {
const {
codeForm
} = this;
let result;
if (
codeForm['RYPG-SYSTOLIC-PRESSURE'] &&
codeForm['RYPG-DIASTOLIC-PRESSURE']
) {
result = `${codeForm['RYPG-SYSTOLIC-PRESSURE']}/${codeForm['RYPG-DIASTOLIC-PRESSURE']}mmHg`;
} else if (codeForm['RYPG-SYSTOLIC-PRESSURE']) {
result = `${codeForm['RYPG-SYSTOLIC-PRESSURE']}mmHg`;
} else {
result = '暂无';
}
return result;
},
getNodeList() {
const {
sop
} = this.nodeInfo;
if (!sop) return [];
const lastFinishIndex = sop.nodeList.findIndex(a => !!a.record) || 0
this.processNodeIndex = lastFinishIndex + 1
return sop.nodeList;
},
getFirstInfo() {
const {
recordValDict
} = this.patient
if (!recordValDict) return {}
else return {
'RYPG-WEIGHT': recordValDict['RYPG-WEIGHT']?.[0].answer[0], // 身高
'RYPG-HEIGHT': recordValDict['RYPG-HEIGHT']?.[0].answer[0], // 体重
'RYPG-MRS': recordValDict['RYPG-MRS']?.[0].answer[0], // MRS评分
'RYPG-NIHSS': recordValDict['RYPG-NIHSS']?.[0].answer[0], // NIHSS评分
'RYPG-BMI': recordValDict['RYPG-BMI']?.[0].answer[0], // BMI
'RYPG-SYSTOLIC-PRESSURE': recordValDict['RYPG-SYSTOLIC-PRESSURE']?.[0].answer[0], // 收缩压
'RYPG-DIASTOLIC-PRESSURE': recordValDict['RYPG-DIASTOLIC-PRESSURE']?.[0].answer[0], // 舒张压
'RYPG-BLOOD-SUGAR': recordValDict['RYPG-BLOOD-SUGAR']?.[0].answer[0], //血糖
'RYPG-PULSE': recordValDict['RYPG-PULSE']?.[0].answer[0], // 脉搏
'JMRS-RSYW': recordValDict['JMRS-RSYW']?.[0].answer[0], // 溶栓药物
'JMRS-JDJL': recordValDict['JMRS-JDJL']?.[0].answer[0], // 静滴剂量
'JMRS-TZJL': recordValDict['JMRS-TZJL']?.[0].answer[0], // 团注剂量
}
}
},
async mounted() {
//TODU
if (this.reportType == 'modal') {
console.log(this.dataSource)
// this.patient = this.dataSource
this.init(this.dataSource.firstAidId);
} else {
// if (!this.patientData) return;
// this.patient = this.patientData
if (this.firstAidId) {
this.init(this.firstAidId);
await this.getMessageQuery(this.firstAidId);
}
}
// const {
// firstAidId
// } = this.patient;
console.log('report firstAidId', this.firstAidId)
},
methods: {
...mapMutations('patient', ['setNextNodeData', 'setTimerData']),
async getMessageQuery(firstAidId) {
// const {
// firstAidId
// } = this.patientData;
const res = await messageQuery(firstAidId);
const {
code,
msg
} = res;
if (code === 200) {
this.setTimerData(res.data);
}
},
queryItemInfo(type) {
const dict = this.patient?.recordValDict?.[type]
if (dict) {
return dict[0].answer
} else {
return '-'
}
},
onSubmit() {
// this.$emit('next')
},
async getData(firstAidId) {
const resLog = await queryLog({
firstAidId
})
this.recordData = resLog.data || ''
// const resObserve = await getCtInfoPath({
// firstAidId
// })
// this.observeData = resObserve.data || []
const resOperaLog = await operationLog({
firstAidId
})
this.observeData = resOperaLog.data || ''
this.operaData = resOperaLog.data || ''
// const res = await operationLogEx({
// firstAidId
// })
},
getHMS(time) {
if (!time) return;
// ?️ 获取完整分钟数
const minutes = Math.floor(Number(time) / 60);
// ?️ 获得剩余的秒数
const seconds = Number(time) % 60;
// ✅ 格式化为 MM:SS
let result = `${this.padTo2Digits(minutes)}'${this.padTo2Digits(
seconds
)}''`;
console.log('minutes: ', minutes);
if (minutes / 60 > 4.5) {
result = '>4.5h';
}
return result;
},
padTo2Digits(num) {
return num.toString().padStart(2, '0');
},
//溶栓记录
toRecord() {
this.$router.push({
name: 'Record',
});
},
async handleExport() {
console.log('this.patient.firstAidId', this.patient.firstAidId)
const res = await exportRsPdf({
firstAidId: this.patient.firstAidId
})
if (res.code == 200) {
console.log('http://116.204.114.73:20007' + res.data)
this.$refs.downloadRef.setAttribute('href', 'http://116.204.114.73:20007' + res.data)
this.$refs.downloadRef.click()
}
},
checkReport(modalRef) {
console.log('modalRef', this.patient)
// const {
// sourceId,
// patientName,
// patientAge,
// patientGender,
// firstAidId,
// } = this.patient;
// this.setPatientData({
// sourceId,
// patientName,
// patientAge,
// patientGender,
// firstAidId,
// });
this.$refs[modalRef].open(this.patient)
},
//回显数据
echo(data) {
for (let k in data) {
if (data[k]) {
const {
answer
} = data[k][0];
this.codeForm[k] = answer.toString();
if (k === 'RYPG-WEIGHT' || k === 'RYPG-HEIGHT') {
this.codeForm['RYPG-BMI'] = this.utils.computeBMI(
this.codeForm['RYPG-WEIGHT'],
this.codeForm['RYPG-HEIGHT']
);
}
}
}
},
//初始化数据
async init(firstAidId) {
const res = await queryAidRecord(firstAidId)
console.log(res)
this.patient = res.data
// if (this.patientData) {
// const {
// recordValDict
// } = this.patientData;
// let data = Object.assign({}, this.patientData);
// this.utils.merge(this.dataInfo, data);
// if (recordValDict) {
// this.echo(recordValDict);
// }
// }
// const {
// firstAidId
// } = this.patientData;
this.getNextNode(firstAidId);
this.getData(firstAidId)
},
async getNextNode(firstAidId) {
let res = await getNextNode({
firstAidId,
});
const {
data,
code,
msg
} = res;
if (code === 200) {
console.log('this.nodeInfo', data)
this.nodeInfo = data;
this.setNextNodeData(data);
} else {
this.$message.error('缺少急救id信息');
}
},
async handleExportRsPdf() {
const {
firstAidId
} = this.patient
const res = await exportRsPdf({
firstAidId
})
const {
code,
data,
msg
} = res
if (code === 200) {
this.toDownLoad(data)
} else {
this.$message.error(msg)
}
},
async handleExportDntPdf() {
const {
firstAidId
} = this.patient
const res = await exportDntPdf({
firstAidId
})
const {
code,
data,
msg
} = res
if (code === 200) {
this.toDownLoad(data)
} else {
this.$message.error(msg)
}
},
async handleExportRsgcbPdf() {
const {
firstAidId
} = this.patient
const res = await exportRsgcbPdf({
firstAidId
})
const {
code,
data,
msg
} = res
if (code === 200) {
this.toDownLoad(data)
} else {
this.$message.error(msg)
}
},
async handleExportJrPdf() {
const {
firstAidId
} = this.patient
const res = await exportJrPdf({
firstAidId
})
const {
code,
data,
msg
} = res
if (code === 200) {
this.toDownLoad(data)
} else {
this.$message.error(msg)
}
},
async handleExportAll() {
const {
firstAidId
} = this.patient
const res = await exportAll({
firstAidId
})
const {
code,
data,
msg
} = res
if (code === 200) {
this.toDownLoad(data)
} else {
this.$message.error(msg)
}
},
toDownLoad(path) {
try {
// document.getElementById('exportFirst').href = path;
// document.getElementById('exportFirst').download = '.xlsx';
this.$refs.downloadRef.setAttribute('href', 'http://116.204.114.73:20007' + path)
this.$refs.downloadRef.setAttribute('download', '.xlsx')
this.$refs.downloadRef.click()
} catch (e) {
//TODO handle the exception
console.log(e.message)
}
}
}
}
</script>
<style lang="less" scoped>
.throm-report {
.report-container {
height: calc(100vh - 196px);
overflow-y: auto;
overflow-x: hidden;
}
.report-card {
box-sizing: border-box;
font-size: 1rem;
.report-patient-box {
.report-patient-info {
display: flex;
.report-patient-avatar {
width: 60px;
height: 60px;
border-radius: 60px;
border: 2px solid #eee;
overflow: hidden;
margin-right: 2rem;
img {
width: 100%;
height: 100%;
}
}
.report-patient-name {
flex: 1;
display: flex;
flex-direction: column;
line-height: 30px;
padding: 5px 0;
.report-pname {
font-size: 1.2rem;
font-weight: bold;
}
.reort-psan {
.reort-psex {
margin-right: 1rem;
}
.reort-page {
margin-right: 1rem;
}
.reort-pnat {}
}
}
}
.report-patient-tags {
display: flex;
margin-top: 1rem;
.report-patient-tag {
border-radius: 6px;
background-color: #B3E5FF;
color: #007AFF;
padding: 6px 12px;
margin-right: 10px;
}
}
.report-patient-row {
margin: .5rem 0;
.report-patient-rowlabel {
color: #666666;
}
.report-patient-rowtext {
color: #000000;
}
}
}
.report-treat-box {
.report-treat-row1 {
margin: .2rem 0;
font-size: 1rem;
font-weight: bold;
.report-treat-rowlabel {
color: #000000;
margin-right: .5rem;
}
.report-treat-rowtext {
color: #007AFF;
}
}
.report-treat-row2 {
margin: .2rem 0;
.report-treat-rowlabel {
color: #666666;
}
.report-treat-rowtext {
color: #000000;
margin-right: 12px;
}
}
}
.report-rsgcb {
width: 100%;
td {
padding: 12px;
}
}
}
}
</style>
<style lang="less">
.throm-report {
.ant-list-item {
padding: 12px 20px;
}
.ant-card-body {
padding: 20px;
}
.report-timeline {
overflow-y: auto;
.ant-steps {
height: 100%;
padding-bottom: 20px;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
.ant-steps-item-title {
padding: 0;
width: 100%;
}
.ant-steps-item-finish {
.ant-steps-item-title {
color: #000000;
}
}
.ant-steps-item-process {
.ant-steps-item-title {
color: #007AFF;
// // border-bottom: 1px solid #007AFF;
// border-bottom: 3px solid transparent;
// /* 设置透明的底部边框 */
// border-image: linear-gradient(to right, #fff, #007AFF) 1;
// /* 使用渐变色填充边框 */
// border-radius: 10px;
// /* 设置圆角 */
}
}
}
.ant-card-bordered {
border: none;
.ant-card-head {
border-bottom: none;
}
}
.baseInfo{
line-height:32px;
.ant-col-8{
padding-left:30px;
padding-right:30px;
}
.leftTitle{
float:left;
font-size:18px;
color:#888888;
}
.rightValue{
float:right;
font-size:18px;
color:#222;
}
.midItem{
border-left:1px solid #eee;
border-right:1px solid #eee;
}
}
.report-rsgcb td{
font-size:18px;
color:#3D3D3D;
}
}
</style>