|
@@ -1,176 +1,124 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
- <el-row style="margin-top: 0">
|
|
|
|
- <el-col :span="4" v-if="user.roleName != '医生'">
|
|
|
|
- <el-input placeholder="输入部门关键字" :clearable="true" v-model="filterText"></el-input>
|
|
|
|
- <div style="height: calc(-203px + 100vh); overflow-y: auto; margin-top: 3px">
|
|
|
|
- <el-tree :highlight-current="true" class="filter-tree" :data="deptOptions" node-key="id" :default-expanded-keys="[100]" :filter-node-method="filterNode" @node-click="handleNodeClick" ref="tree"></el-tree>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="4" v-if="user.roleName == '科室主任'">
|
|
|
|
+ <dtreeDoctor v-model="queryParams.userId" @handleQuery="handleQuery"></dtreeDoctor>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="user.roleName != '医生' ? 20 : 24" style="height: 100%">
|
|
|
|
- <el-form :model="queryParams" ref="queryForm" :inline="true" style="margin-top: 0">
|
|
|
|
- <el-form-item prop="physician">
|
|
|
|
- <el-input v-model="queryParams.physician" placeholder="请输入主治医生" clearable @keyup.enter.native="handleQuery" />
|
|
|
|
|
|
+ <el-col :span="4" v-if="user.roleName == '超级管理员' || user.roleName == '管理员'">
|
|
|
|
+ <dtree v-model="queryParams.deptId" @handleQuery="handleQuery"></dtree>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="user.roleName != '医生' ? 20 : 24">
|
|
|
|
+ <el-form :model="queryParams" ref="queryForm" :inline="true">
|
|
|
|
+ <el-form-item prop="physician" v-if="user.roleName == '超级管理员' || user.roleName == '管理员'">
|
|
|
|
+ <el-input v-model="queryParams.physician" placeholder="请输入主治医生" clearable @keyup.enter.native="handleQuery" class="inp" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item prop="name">
|
|
<el-form-item prop="name">
|
|
- <el-input v-model="queryParams.name" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery" />
|
|
|
|
|
|
+ <el-input v-model="queryParams.name" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery" class="inp" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-date-picker v-model="dischargeTime" type="daterange" start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd" />
|
|
|
|
|
|
+ <el-date-picker v-model="dateRange" type="daterange" start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
|
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- <el-table :data="patientList" border @selection-change="selects" height="calc(100vh - 240px)">
|
|
|
|
|
|
+ <el-table :data="response.rows" border height="calc(100vh - 240px)">
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
- <el-table-column label="科室" align="center" prop="department" />
|
|
|
|
- <el-table-column label="患者姓名" align="center" prop="name" />
|
|
|
|
- <el-table-column label="管床医生" align="center" prop="physician" />
|
|
|
|
- <el-table-column label="出院方式" align="center" prop="dischargeMethod">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <dict-tag :options="dict.type.discharge_method" :value="scope.row.dischargeMethod"></dict-tag>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <el-table-column label="患者姓名" align="center" prop="name" width="110" />
|
|
|
|
+ <el-table-column label="性别" align="center" prop="state" width="70">
|
|
|
|
+ <template slot-scope="scope">{{ scope.row.sex == 'F' ? '女' : '男' }}</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="出院时间" align="center" prop="dischargeTime" />
|
|
|
|
- <el-table-column label="是否关注小程序" align="center" prop="state" width="140">
|
|
|
|
|
|
+ <el-table-column label="病历号" align="center" prop="blh" width="110" />
|
|
|
|
+ <el-table-column label="入院时间" align="center" prop="admissionTime" width="160" />
|
|
|
|
+ <el-table-column label="出院时间" align="center" prop="dischargeTime" width="160" />
|
|
|
|
+ <el-table-column label="关注小程序" align="center" prop="state" width="100">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-tag type="danger" v-if="scope.row.isBindWx == 0">未关注</el-tag>
|
|
<el-tag type="danger" v-if="scope.row.isBindWx == 0">未关注</el-tag>
|
|
<el-tag type="success" v-if="scope.row.isBindWx >= 1">已关注</el-tag>
|
|
<el-tag type="success" v-if="scope.row.isBindWx >= 1">已关注</el-tag>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
|
|
|
+ <el-table-column label="出院随访(达成率)" align="center" prop="state" width="140">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div class="pro">
|
|
|
|
+ <el-progress class="pp" :text-inside="true" :stroke-width="22" :percentage="scope.row.record > 0 ? parseInt(((scope.row.recordRead / scope.row.record) * 100).toFixed(0)) : 0"></el-progress>
|
|
|
|
+ <div class="num">{{ scope.row.record }}次</div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="复诊提醒(达成率)" align="center" prop="state" width="140">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-button size="mini" type="text" icon="el-icon-search" @click="op('search', scope.row)">查看</el-button>
|
|
|
|
|
|
+ <div class="pro">
|
|
|
|
+ <el-progress class="pp" :text-inside="true" :stroke-width="22" :percentage="scope.row.up > 0 ? parseInt(((scope.row.upRead / scope.row.up) * 100).toFixed(0)) : 0"></el-progress>
|
|
|
|
+ <div class="num">{{ scope.row.up }}次</div>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column label="管床医生" align="center" prop="physician" width="110" />
|
|
|
|
+ <el-table-column label="所属科室" align="center" prop="department" width="160" />
|
|
|
|
+ <el-table-column label="操作" align="center" width="250" fixed="right">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-search" @click="op('detail', scope.row)">患者信息</el-button>
|
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-document" @click="op('listByUser', scope.row, 0)">复诊提醒</el-button>
|
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-document" @click="op('listByUser', scope.row, 1)">出院随访</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <template slot="empty">
|
|
|
|
+ <el-empty></el-empty>
|
|
|
|
+ </template>
|
|
</el-table>
|
|
</el-table>
|
|
- <pagination v-if="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
|
+ <pagination v-if="response.total > 0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import search from '@/views/work/visit/search.vue';
|
|
|
|
|
|
+import detail from '@/views/work/visit/detail';
|
|
|
|
+import listByUser from '@/views/work/follow/record/listByUser';
|
|
export default {
|
|
export default {
|
|
- dicts: ['discharge_method'],
|
|
|
|
- name: 'User',
|
|
|
|
|
|
+ name: 'Visit',
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
user: this.$store.state.user,
|
|
user: this.$store.state.user,
|
|
- dischargeTime: [],
|
|
|
|
- filterText: '',
|
|
|
|
- total: 0,
|
|
|
|
- // 选中数组
|
|
|
|
- ids: [],
|
|
|
|
- SearchShow: false,
|
|
|
|
- // 非单个禁用
|
|
|
|
- single: true,
|
|
|
|
- // 非多个禁用
|
|
|
|
- multiple: true,
|
|
|
|
- //科室名称
|
|
|
|
- deptName: undefined,
|
|
|
|
- // 部门树选项
|
|
|
|
- deptOptions: null,
|
|
|
|
- //患者表
|
|
|
|
- patientList: null,
|
|
|
|
- //查询参数
|
|
|
|
|
|
+ dateRange: [],
|
|
queryParams: {
|
|
queryParams: {
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
- physician: undefined,
|
|
|
|
- name: undefined,
|
|
|
|
- department: undefined,
|
|
|
|
- deptId: undefined,
|
|
|
|
- startTime: undefined,
|
|
|
|
- endTime: undefined
|
|
|
|
|
|
+ physician: null,
|
|
|
|
+ name: null,
|
|
|
|
+ department: null,
|
|
|
|
+ deptId: null
|
|
}
|
|
}
|
|
};
|
|
};
|
|
},
|
|
},
|
|
- watch: {
|
|
|
|
- dischargeTime(newVal) {
|
|
|
|
- if (newVal && newVal.length === 2) {
|
|
|
|
- this.queryParams.startTime = newVal[0]; // 开始日期
|
|
|
|
- this.queryParams.endTime = newVal[1]; // 结束日期
|
|
|
|
- }
|
|
|
|
- if (!newVal) {
|
|
|
|
- this.queryParams.startTime = ''; // 开始日期
|
|
|
|
- this.queryParams.endTime = ''; // 结束日期
|
|
|
|
- this.handleQuery();
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- filterText(val) {
|
|
|
|
- this.$refs.tree.filter(val);
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
created() {
|
|
created() {
|
|
- this.getDepartment();
|
|
|
|
|
|
+ if (this.user.roleName == '科室主任') {
|
|
|
|
+ this.queryParams.userId = this.user.id;
|
|
|
|
+ }
|
|
|
|
+ this.getList();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- filterNode(value, data) {
|
|
|
|
- if (!value) return true;
|
|
|
|
- return data.label.indexOf(value) !== -1;
|
|
|
|
- },
|
|
|
|
- // 表单重置
|
|
|
|
- reset() {
|
|
|
|
- this.form = {
|
|
|
|
- physician: undefined,
|
|
|
|
- name: undefined
|
|
|
|
- };
|
|
|
|
- this.resetForm('form');
|
|
|
|
- },
|
|
|
|
- /** 查询患者列表*/
|
|
|
|
getList() {
|
|
getList() {
|
|
- this.get({
|
|
|
|
- url: '/work/visit/patientCard',
|
|
|
|
- data: {
|
|
|
|
- ...this.queryParams
|
|
|
|
- }
|
|
|
|
- }).then((response) => {
|
|
|
|
- this.patientList = response.rows;
|
|
|
|
- this.total = response.total;
|
|
|
|
|
|
+ this.get({ url: '/work/visit/patientCard', data: this.queryParams }).then((response) => {
|
|
|
|
+ this.response = response;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- /** 查询部门 */
|
|
|
|
- getDepartment() {
|
|
|
|
- this.get({
|
|
|
|
- url: '/system/user/deptTree'
|
|
|
|
- }).then((response) => {
|
|
|
|
- this.deptOptions = response.data;
|
|
|
|
- if (response.data.id != null) {
|
|
|
|
- this.queryParams.deptId = response.data[0].id;
|
|
|
|
- }
|
|
|
|
- this.getList();
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
- handleNodeClick(data) {
|
|
|
|
- if (this.queryParams.deptId === data.id) {
|
|
|
|
- return;
|
|
|
|
|
|
+ op(tag, row, type) {
|
|
|
|
+ if (tag === 'detail') {
|
|
|
|
+ this.iframe({ obj: detail, param: { id: row.id, patId: row.patId }, title: '查看患者信息', width: '75%', height: '93%' });
|
|
}
|
|
}
|
|
- this.queryParams.deptId = data.id;
|
|
|
|
- this.getList();
|
|
|
|
- },
|
|
|
|
- selects(rows) {
|
|
|
|
- this.ids = rows.map((item) => item.id);
|
|
|
|
- },
|
|
|
|
- op(tag, row) {
|
|
|
|
- if (tag === 'search') {
|
|
|
|
- this.iframe({ obj: search, param: { id: row.patId, cardId: row.cardId, name: row.name, department: row.department }, title: '查看患者信息', width: '85%', height: '85%' });
|
|
|
|
|
|
+ if (tag === 'listByUser') {
|
|
|
|
+ this.iframe({ obj: listByUser, param: { patientId: row.patId, patientName: row.name, type: type }, title: row.name + '的' + (type == 0 ? '复诊提醒记录' : '出院随访记录'), width: '80%', height: '80%' });
|
|
}
|
|
}
|
|
},
|
|
},
|
|
handleQuery() {
|
|
handleQuery() {
|
|
- console.log(this.dischargeTime);
|
|
|
|
this.queryParams.pageNum = 1;
|
|
this.queryParams.pageNum = 1;
|
|
this.getList();
|
|
this.getList();
|
|
},
|
|
},
|
|
- /** 重置按钮操作 */
|
|
|
|
resetQuery() {
|
|
resetQuery() {
|
|
- this.dischargeTime = [];
|
|
|
|
- this.queryParams.startTime = '';
|
|
|
|
- this.queryParams.endTime = '';
|
|
|
|
this.resetForm('queryForm');
|
|
this.resetForm('queryForm');
|
|
|
|
+ this.dateRange = [];
|
|
this.handleQuery();
|
|
this.handleQuery();
|
|
}
|
|
}
|
|
}
|
|
}
|