Browse Source

20250227

master
nicky 5 months ago
parent
commit
1d5a67a639
  1. 9
      src/assets/less/common.less
  2. 40
      src/config/code.js
  3. 8
      src/layouts/BasicLayout.less
  4. 15
      src/views/document/index.vue
  5. 72
      src/views/statistics/index.vue
  6. 1049
      src/views/thrombolysis/components/throm-report - 副本.vue
  7. 102
      src/views/thrombolysis/components/throm-report.vue
  8. 41
      src/views/thrombolysis/components/throm-result-baseInfo.vue
  9. 25
      src/views/thrombolysis/components/throm-result-firstInfo.vue

9
src/assets/less/common.less

@ -102,7 +102,7 @@
font-size: 30px;
}
.fz24{
font-size: 24px;
font-size: 20px;
}
.border-bottom{
border-bottom: 1px solid #dfe6ec;
@ -585,6 +585,7 @@
}
.container-left-header {
display: flex;
margin-top: 10px;
span {
width: 8px;
height: 28px;
@ -598,8 +599,8 @@
p {
line-height: 32px;
font-size: 1.2rem;
font-weight: 600;
font-size: 20px;
font-weight: bold;
margin: 0;
}
}
@ -660,7 +661,7 @@
.ant-form-item-label {
display: flex;
width: 160px !important;
// width: 160px !important;
}
.ant-radio-wrapper {

40
src/config/code.js

@ -1212,26 +1212,6 @@ export const JMRS_CODE = {
};
// 血管内治疗
export const XGZL_CODE = {
'XGZL-Y': {
text: '是否给予血管内治疗',
type: 'radio',
default: '',
range: {
: '是',
: '否',
},
},
'XGZL-WZLYY': {
text: '未给予血管内治疗的原因',
type: 'checkbox',
default: [''],
range: ['非大血管病变', '超时间窗', '禁忌症', '患者/家属拒绝', '其他'],
showType: {
type: 'value',
code: 'XGZL-Y',
value: '否',
},
},
'XGZL-WZLYY-ELSE': {
text: '',
type: 'input',
@ -1304,6 +1284,26 @@ export const XGZL_CODE = {
},
default: '',
},
'XGZL-Y': {
text: '是否给予血管内治疗',
type: 'radio',
default: '',
range: {
: '是',
: '否',
},
},
'XGZL-WZLYY': {
text: '未给予血管内治疗的原因',
type: 'checkbox',
default: [''],
range: ['非大血管病变', '超时间窗', '禁忌症', '患者/家属拒绝', '其他'],
showType: {
type: 'value',
code: 'XGZL-Y',
value: '否',
},
},
'XGZL-XGKT': {
text: '血管内开通方法',
type: 'checkbox',

8
src/layouts/BasicLayout.less

@ -5,10 +5,10 @@
height: 100vh;
.ant-layout-sider{
flex: 0 0 120px !important;
max-width: 120px !important;
min-width: 120px !important;
width: 120px !important;
flex: 0 0 138px !important;
max-width: 138px !important;
min-width: 138px !important;
width: 138px !important;
background-color: #fff;
.layout-sider-header-row{
display: flex;

15
src/views/document/index.vue

@ -14,7 +14,7 @@
</div>
<div class="doc-list-table">
<a-table :columns="columns" :data-source="dataSource" bordered :scroll="{ y: 780, x: 1500 }"
:locale="{ emptyText: '暂无数据'}" rowKey="firstAidId" size="small" :pagination="pagination">
:locale="{ emptyText: '暂无数据'}" rowKey="firstAidId" :pagination="pagination">
<template slot="action" slot-scope="text, row">
<a-button type="link" @click="editReport(row, 'patientDetail')">详情</a-button>
<a-button type="link" @click="checkReport(row, 'docReport')">报告单</a-button>
@ -420,6 +420,19 @@
.ant-btn-link {
padding: 0 4px;
}
// .ant-table-scroll,
// .ant-table-fixed-left,
// .ant-table-fixed-right {
// tr {
// height: 32px !important;
// // line-height: 32px !important;
// }
// .ant-table-thead tr{
// height: 65px !important;
// }
// }
}
}
</style>

72
src/views/statistics/index.vue

@ -14,7 +14,7 @@
<!-- <a-radio-button value="2"></a-radio-button> -->
<a-radio-button value="3"></a-radio-button>
</a-radio-group>
<a-range-picker format="YYYY-MM-DD" style="width: 280px;" :placeholder="['开始日期','结束日期']"
<a-range-picker v-model="queryParams1.Range" format="YYYY-MM-DD" style="width: 320px;" :placeholder="['开始日期','结束日期']"
separator="至" @change="dateChange($event, 'queryParams1')" />
</div>
</div>
@ -43,7 +43,7 @@
<!-- <a-radio-button value="2"></a-radio-button> -->
<a-radio-button value="3"></a-radio-button>
</a-radio-group>
<a-range-picker format="YYYY-MM-DD" style="width: 280px;" :placeholder="['开始日期','结束日期']"
<a-range-picker v-model="queryParams4.Range" format="YYYY-MM-DD" style="width: 320px;" :placeholder="['开始日期','结束日期']"
separator="至" @change="dateChange($event, 'queryParams4')" />
</div>
</div>
@ -80,7 +80,7 @@
<!-- <a-radio-button value="2"></a-radio-button> -->
<a-radio-button value="3"></a-radio-button>
</a-radio-group>
<a-range-picker format="YYYY-MM-DD" style="width: 280px;" :placeholder="['开始日期','结束日期']"
<a-range-picker v-model="queryParams2.Range" format="YYYY-MM-DD" style="width: 320px;" :placeholder="['开始日期','结束日期']"
separator="至" @change="dateChange($event, 'queryParams2')" />
</div>
</div>
@ -114,7 +114,7 @@
<!-- <a-radio-button value="2"></a-radio-button> -->
<a-radio-button value="3"></a-radio-button>
</a-radio-group>
<a-range-picker format="YYYY-MM-DD" style="width: 280px;" :placeholder="['开始日期','结束日期']"
<a-range-picker v-model="queryParams3.Range" format="YYYY-MM-DD" style="width: 320px;" :placeholder="['开始日期','结束日期']"
separator="至" @change="dateChange($event, 'queryParams3')" />
</div>
</div>
@ -165,22 +165,26 @@
queryParams1: {
"timeType": "1", // 0: 1: 2: 3:
"startTime": "2024-10-01 00:00:00", //
"endTime": "2025-01-01 00:00:00" //
"endTime": "2025-01-01 00:00:00", //
"Range": []
},
queryParams2: {
"timeType": "1", // 0: 1: 2: 3:
"startTime": "2024-10-01 00:00:00", //
"endTime": "2025-01-01 00:00:00" //
"startTime": "", //
"endTime": "" ,//
"Range": [],
},
queryParams3: {
"timeType": "1", // 0: 1: 2: 3:
"startTime": "2024-10-01 00:00:00", //
"endTime": "2025-01-01 00:00:00" //
"startTime": "", //
"endTime": "", //
"Range": []
},
queryParams4: {
"timeType": "1", // 0: 1: 2: 3:
"startTime": "2024-10-01 00:00:00", //
"endTime": "2025-01-01 00:00:00" //
"startTime": "", //
"endTime": "", //
"Range": []
}
}
},
@ -220,6 +224,23 @@
this.getData15()
break;
default:
const startTime = dayjs().add(-1, 'month').format('YYYY-MM-DD 00:00:00')
const endTime = dayjs().format('YYYY-MM-DD 00:00:00')
this['queryParams1']['startTime'] = startTime
this['queryParams1']['endTime'] = endTime
this['queryParams1']['Range'] = [startTime, endTime]
this['queryParams2']['startTime'] = startTime
this['queryParams2']['endTime'] = endTime
this['queryParams2']['Range'] = [startTime, endTime]
this['queryParams3']['startTime'] = startTime
this['queryParams3']['endTime'] = endTime
this['queryParams3']['Range'] = [startTime, endTime]
this['queryParams4']['startTime'] = startTime
this['queryParams4']['endTime'] = endTime
this['queryParams4']['Range'] = [startTime, endTime]
this.getData1()
this.getData2()
this.getData3()
@ -238,16 +259,30 @@
break;
}
},
typeChange(e, filed) {
this[filed]['timeType'] = e.target.value
let startTime = "";
let endTime = "";
if(e.target.value == 0){
startTime = dayjs().add(-1, 'week').format('YYYY-MM-DD 00:00:00')
endTime = dayjs().format('YYYY-MM-DD 00:00:00')
}else if(e.target.value == 1){
startTime = dayjs().add(-1, 'month').format('YYYY-MM-DD 00:00:00')
endTime = dayjs().format('YYYY-MM-DD 00:00:00')
}else if(e.target.value == 3){
startTime = dayjs().add(-1, 'year').format('YYYY-MM-DD 00:00:00')
endTime = dayjs().format('YYYY-MM-DD 00:00:00')
}
this[filed]['startTime'] = startTime
this[filed]['endTime'] = endTime
this[filed]['Range'] = [startTime, endTime]
this.init(filed)
},
dateChange(dates, filed) {
const startTime = dates[0].format('YYYY-MM-DD HH:mm:ss')
const endTime = dates[1].format('YYYY-MM-DD HH:mm:ss')
const startTime = dates[0].format('YYYY-MM-DD 00:00:00')
const endTime = dates[1].format('YYYY-MM-DD 00:00:00')
this[filed]['startTime'] = startTime
this[filed]['endTime'] = endTime
this.init(filed)
@ -1395,10 +1430,13 @@
margin-right: 10px;
overflow: hidden;
box-sizing: border-box;
border-left: 1px solid #d9d9d9;
border: 1px solid #d9d9d9;
&.ant-radio-button-wrapper-checked {
border-left: 1px solid #0062d9;
border: 1px solid #0062d9;
&:before{
background-color: #d9d9d9;
}
}
}
}

1049
src/views/thrombolysis/components/throm-report - 副本.vue

File diff suppressed because it is too large

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

@ -87,7 +87,7 @@
<div class="doc-ct-content">
<div>
<table border class="report-rsgcb">
<tr>
<!-- <tr>
<td>姓名{{patient.patientName}}</td>
<td>性别{{patient.patientGenderString}}</td>
<td>年龄{{patient.patientAge}}</td>
@ -97,7 +97,7 @@
<tr>
<td colspan="3">发病时间{{queryItemInfo('XGZL-CCWC-TIME').toString()}}</td>
<td colspan="3">用药时间{{queryItemInfo('RYPG-CBZD').toString()}}</td>
</tr>
</tr> -->
<tr>
<td colspan="2">溶栓药物{{queryItemInfo('JMRS-RSYW').toString()}}</td>
<td colspan="2">剂量{{queryItemInfo('JMRS-JDJL').toString()}}</td>
@ -194,7 +194,7 @@
<div class="doc-ct-content">
<div class="record-content">
<table border class="report-rsgcb">
<tr>
<!-- <tr>
<td colspan="2">姓名{{patient.patientName}}</td>
<td colspan="3">性别{{patient.patientGenderString}}</td>
<td colspan="1">年龄{{patient.patientAge}}</td>
@ -206,78 +206,54 @@
<td colspan="3">一线</td>
<td colspan="3">二线</td>
<td colspan="4">NIHSS{{queryItemInfo('JMRS-Q-NIHSS').toString()}}</td>
</tr>
</tr> -->
<tr>
<td colspan="2">溶栓流程</td>
<td colspan="3">具体时间</td>
<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>
<td colspan="2">到达CT时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-DD-TIME').toString()}}</td>
</tr>
<tr>
<td colspan="2">到院时间</td>
<td colspan="3">{{queryItemInfo('JBXX-FBSJ').toString()}}</td>
<td colspan="2">质控平车</td>
<td colspan="3"></td>
<td colspan="2">CT检查开始时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-JCKS-TIME').toString()}}</td>
</tr>
<tr>
<td colspan="2">启动绿道时间</td>
<td colspan="3">{{queryItemInfo('RYPG-GR-TIME').toString()}}</td>
<td colspan="2">可视化信息竖屏</td>
<td colspan="3"></td>
<td colspan="2">CT检查结束时间</td>
<td colspan="3">{{queryItemInfo('RYPG-CT-JCWB-TIME').toString()}}</td>
</tr>
<tr>
<td colspan="2">呼叫时间</td>
<td colspan="3">{{queryItemInfo('JBXX-TZCZYS-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
<td colspan="2">到达核磁时间</td>
<td colspan="3">{{queryItemInfo('JMRS-HC-TIME').toString()}}</td>
</tr>
<tr>
<td colspan="2">一线到场时间</td>
<td colspan="3">{{queryItemInfo('JBXX-CZYSDC-TIME').toString()}}</td>
<td colspan="2"></td>
<td colspan="3"></td>
<td colspan="2">二线医生到场时间</td>
<td colspan="3">{{queryItemInfo('JBXX-SNYSDC-TIME').toString()}}</td>
</tr>
<tr>
<td colspan="2">采血开始时间</td>
<td colspan="3">{{queryItemInfo('RYPG-BLOOD-TIME').toString()}}</td>
<td colspan="2">质控平车</td>
<td colspan="3"></td>
<td colspan="2">谈话开始时间</td>
<td colspan="3">{{queryItemInfo('JMRS-TH-TIME').toString()}}</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>
@ -285,71 +261,29 @@
<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>

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

@ -1,19 +1,17 @@
<template>
<div class="BasicInfo">
<div class="BasicInfo throm-basic-info">
<div class="basic-content">
<!-- 患者基本信息 -->
<div class='basicr-back'>
<a-form class="detail-form" :form="baseForm">
<a-form-item label="扫描身份证">
<div class="detail-form-control">
<div class="idCardItem">
<a-upload :disabled="writeAble" class="idcard-upload" accept=".img,.png,.jpg"
:before-upload="handleBeforeUpload" :showUploadList="false" name="file"
:multiple="false" :customRequest="handleUploadAdd">
<a-icon type="scan" class="fz24" />
<a-icon type="scan" class="scanicon" /><span>扫描身份证</span>
</a-upload>
</div>
</a-form-item>
<a-form-item label="姓名">
<div class="detail-form-control">
<a-input :disabled="writeAble" v-decorator="['patientName']"
@ -419,7 +417,7 @@
width:49%;
float:left;
}
.basicr-back .ant-form-item:nth-child(odd) {
.basicr-back .ant-form-item:nth-child(even) {
border-right: 1px solid #ddd;
border-radius: 0;
padding-right:2% !important;
@ -480,4 +478,33 @@
float:left;
font-size:18px;
}
.idCardItem{
width: 29.45vw;
height: 4.09vw;
background: rgba(101, 154, 255, 0.11);
border-radius: 0.36vw 0.36vw 0.36vw 0.36vw;
border: 1px solid #007AFF;
text-align: center;
line-height: 4.09vw;
span{
font-size: 20px;
color: #3D3D3D;
}
}
.scanicon{
font-size:18px;
display: inline-block;
position: relative;
top: 1px;
right: 10px;
}
</style>
<style lang="less">
.throm-basic-info {
.detail-form .ant-form-item .ant-form-item-label{
width: 150px !important;
}
}
</style>

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

@ -2,7 +2,7 @@
<div class="Overviewbasicr">
<div class="first-content">
<!-- 患者急救记录 -->
<div class="basicr-back">
<div class="basicr-back basicr-back-info">
<a-form class="detail-form" :form="firstForm">
<a-form-item class="jmrs-form-item" v-for="(k, v) in AID_CODE" :key="v">
<div class="jmrs-form-item-con">
@ -166,7 +166,7 @@
<!-- 不良反应 -->
<div class="adverse">
<a-collapse class="jmrs-form-item-con" :bordered="false" expandIconPosition="right">
<a-collapse-panel key="1" header="不良反应">
<a-collapse-panel key="1" header="不良反应" >
<Adverse source="first" ref="adverse" />
</a-collapse-panel>
</a-collapse>
@ -177,7 +177,7 @@
<div class="basicr-back">
<v-head text="血管内治疗"></v-head>
<a-form class="detail-form treatmentItem" :form="firstForm">
<a-form-item class="jmrs-form-item" v-for="(k, v) in XGZL_CODE" :key="v"
<a-form-item class="jmrs-form-item" :class="{'jmrs-form-item-autoH': k.type == 'checkbox'}" v-for="(k, v) in XGZL_CODE" :key="v"
v-if="computeShow(v, codeForm)">
<div class="jmrs-form-item-con" :class="k.type">
<div class="content-left ant-form-item-label">
@ -633,10 +633,13 @@
.adverse {
padding: 15px 0;
}
.basicr-back-info.basicr-back .ant-form-item{
height: 50px;
}
.basicr-back .ant-form-item{
width:48%;
float:left;
height:60px;
// height:60px;
}
.basicr-back .ant-form-item:nth-child(odd) {
border-right: 1px solid #ddd;
@ -644,13 +647,14 @@
padding-right:2% !important;
margin-right:2% !important;
}
.treatmentItem .ant-form-item:nth-child(9),.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11){
.treatmentItem .ant-form-item:nth-child(9),.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11),.treatmentItem .ant-form-item:nth-child(12){
width:100%;
float:left;
border:none;
}
.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11){
height:150px !important;
.treatmentItem .ant-form-item:nth-child(10),.treatmentItem .ant-form-item:nth-child(11),.treatmentItem .ant-form-item:nth-child(12){
// height:150px !important;
height: auto !important;
}
.basicr-back .ant-form-item .ant-form-item-label{
// width: 100px !important;
@ -659,6 +663,7 @@
// width: 100px !important;
flex: none;
margin-right: 20px;
}
.radioGroupItem:nth-of-type(2){
position: relative;
@ -684,7 +689,7 @@
}
>>>.adverse .ant-form-item-label label {
font-size: 1.2rem !important;
font-size: 18px !important;
}
>>>.adverse .ant-input {
@ -717,9 +722,9 @@
}
>>>.ant-collapse-header {
font-size: 1.2rem;
font-size: 18px;
padding: 10px 0 !important;
font-weight: bold;
/* font-weight: bold; */
text-align: left;
}

Loading…
Cancel
Save