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.
		
		
		
		
		
			
		
			
				
					
					
						
							377 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							377 lines
						
					
					
						
							12 KiB
						
					
					
				| <template> | |
|   <!-- 日常出诊 --> | |
|   <div class="patient-info"> | |
|     <div v-if="!detailViewVisible" style="height: 100%"> | |
|       <div class="patient-info-head"> | |
|         <el-form :inline="true" :model="dataForm" class="demo-form-inline" @keyup.enter.native="getDataListInitial()"> | |
|           <el-form-item label="登记号:"> | |
|             <el-input v-model="dataForm.patientId" size="small" clearable placeholder="登记号" @clear="getDataListInitial()" /> | |
|           </el-form-item> | |
|           <el-form-item label="患者姓名:"> | |
|             <el-input v-model="dataForm.patientName" placeholder="患者姓名" size="small" clearable @clear="getDataListInitial()" /> | |
|           </el-form-item> | |
|           <el-form-item label="身份证:"> | |
|             <el-input v-model="dataForm.patientIdNumber" size="small" clearable placeholder="身份证" @clear="getDataListInitial()" /> | |
|           </el-form-item> | |
|           <el-form-item prop="dateRange" label="就诊时间" class="form-item-date"> | |
|             <el-date-picker | |
|               v-model="nextVisitTime" | |
|               size="small" | |
|               type="daterange" | |
|               range-separator="-" | |
|               start-placeholder="开始日期" | |
|               end-placeholder="结束日期" | |
|               value-format="yyyy-MM-dd" | |
|               @change="dateChange" | |
|             /> | |
|           </el-form-item> | |
|           <el-form-item style="flex:1"> | |
|             <el-button type="primary" icon="el-icon-getDataListInitial" size="small" @click="getDataListInitial()">查询</el-button> | |
|           </el-form-item> | |
|         </el-form> | |
|       </div> | |
|       <div style="display: flex;justify-content: space-between;background-color: white;padding: 16px 16px 0"> | |
|         <div> | |
|           <el-select v-model="dataForm.searchType" placeholder="请选择" style="width:120px;float: left;margin-right: 16px" size="small" @change="getDataListInitial"> | |
|             <el-option | |
|               v-for="item in options" | |
|               :key="item.value" | |
|               :label="item.label" | |
|               :value="item.value" | |
|             /> | |
|           </el-select> | |
|           <el-button v-for="(item,index) in typeList" :key="index" style="margin-left: 0px" size="small" color="white" @click="handleType(item.value)">{{ item.label }}</el-button> | |
|         </div> | |
|         <div> | |
|           <el-button type="primary" size="small" icon="el-icon-plus" @click="addOrUpdateHandle('','','新增患者')">新增</el-button> | |
|           <el-button type="primary" size="small" @click="HISHandle"> | |
|             <svg-icon icon-class="icon-HIS-up" style="font-size:12px;" /> | |
|             <span style="padding-left:5px;vertical-align: middle;">HIS引入</span> | |
|           </el-button> | |
|         </div> | |
|       </div> | |
|       <div class="patient-info-content"> | |
|         <el-table | |
|           ref="multipleTable" | |
|           :data="dataList" | |
|           tooltip-effect="dark" | |
|           style="width: 100%" | |
|         > | |
|           <el-table-column prop="patientId" label="登记号" header-align="center" align="center" /> | |
|           <el-table-column label="状态" header-align="center" align="center"> | |
|             <template slot-scope="scope"> | |
|               {{ scope.row.patientStatus | patientStatus }} | |
|             </template> | |
|           </el-table-column> | |
|           <el-table-column label="患者姓名" header-align="center" align="center"> | |
|             <template slot-scope="scope"> | |
|               {{ scope.row.patientName }} | |
|             </template> | |
|           </el-table-column> | |
|           <el-table-column prop="patientSex" label="患者性别" header-align="center" align="center" /> | |
|           <el-table-column label="出生日期" header-align="center" align="center"> | |
|             <template slot-scope="scope"> | |
|               {{ scope.row.patientBirthday ? $options.filters.dateFilterTwo( scope.row.patientBirthday): '- ' }} | |
|             </template> | |
|           </el-table-column> | |
|           <el-table-column prop="mzDoctorName" label="门诊医师" header-align="center" align="center" /> | |
|           <el-table-column prop="sgDoctorName" label="视光医师" header-align="center" align="center" /> | |
|           <el-table-column prop="createDate" label="就诊时间" header-align="center" align="center" /> | |
|           <el-table-column prop="callSort" label="分诊序号" header-align="center" align="center" /> | |
| <!--          <el-table-column prop="callStatus" label="叫号状态" header-align="center" align="center">--> | |
| <!--            <template slot-scope="scope">--> | |
| <!--              {{ scope.row.callStatus | callStatus }}--> | |
| <!--            </template>--> | |
| <!--          </el-table-column>--> | |
|           <el-table-column prop="operation" label="操作" header-align="center" align="center" width="180"> | |
|             <template slot-scope="scope"> | |
| <!--              <span--> | |
| <!--                style="color: #1890ff; padding-right: 8px"--> | |
| <!--                class="operation-details"--> | |
| <!--                @click="browseClick(scope.row)"--> | |
| <!--              >叫号</span>--> | |
|               <!--                v-if="scope.row.callStatus !== '1' && scope.row.callStatus !== '3' && scope.row.callStatus !== '5'"--> | |
|               <span | |
|                 style="color: #1890ff; padding-right: 8px" | |
|                 class="operation-details" | |
|                 @click="showDetail(scope.row, 1)" | |
|               >接诊</span> | |
|               <span | |
|                 style="color: #1890ff; padding-right: 8px" | |
|                 class="operation-details" | |
|                 @click="showDetail(scope.row, 2)" | |
|               >患者360</span> | |
|             </template> | |
|           </el-table-column> | |
|         </el-table> | |
|         <el-pagination background layout="total,prev, pager, next" :total="total" :current-page.sync="page" @current-change="pageCurrentChangeHandle" /> | |
|       </div> | |
|     </div> | |
|     <!-- 弹窗, 新增 / 修改 --> | |
|     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :patient-type-list="patientTypeList" @refreshDataList="getDataListInitial" /> | |
|     <!-- HIS引入弹框 --> | |
|     <his-add v-if="HisAddVisible" ref="HisAddRef" :is-search="'1'" /> | |
|     <!-- 详情页 --> | |
|     <detail-view v-if="detailViewVisible" :only-read="onlyRead" :is-search="'1'" ref="viewRef" :patient-id="patientId" :patient-id-number="patientIdNumber" @detailViewVisible="detailViewVisible=false" /> | |
|   </div> | |
| </template> | |
| <script> | |
| import mixinViewModule from '@/mixins/view-module' | |
| import tableAutoHeight from '@/mixins/tableAutoHeight' | |
| import AddOrUpdate from './patient-add-or-update' | |
| import hisAdd from './HIS-add' | |
| import detailView from '@/components/360View/index1' // 360试图 | |
| export default { | |
|   components: { | |
|     hisAdd, | |
|     AddOrUpdate, | |
|     detailView | |
|   }, | |
|   mixins: [mixinViewModule, tableAutoHeight], | |
|   data() { | |
|     return { | |
|       mixinViewModuleOptions: { | |
|         getDataListURL: '/patient/page', | |
|         getDataListIsPage: true | |
|       }, | |
|       options: [ | |
|         { | |
|           value: '0', | |
|           label: '今日' | |
|         }, { | |
|           value: '1', | |
|           label: '近三天' | |
|         }, { | |
|           value: '2', | |
|           label: '近一周' | |
|         }, { | |
|           value: '3', | |
|           label: '近一个月 ' | |
|         }, { | |
|           value: '', | |
|           label: '全部' | |
|         }], | |
|       typeList: [ | |
|         { | |
|           value: '', | |
|           label: '全部' | |
|         }, { | |
|           value: '1', | |
|           label: '未报到' | |
|         }, { | |
|           value: '2', | |
|           label: '未诊' | |
|         }, { | |
|           value: '4', | |
|           label: '回诊 ' | |
|         }, { | |
|           value: '3', | |
|           label: '就诊中' | |
|         }, { | |
|           value: '已诊', | |
|           label: '已诊' | |
|         }], | |
|       nextVisitTime: [], | |
|       patientTypeList: [], | |
|       detailViewVisible: false, | |
|       HisAddVisible: false, | |
|       onlyRead: false, | |
|       dataForm: { | |
|         platform: 1, | |
|         patientId: '', | |
|         beginDate: '', | |
|         endDate: '', | |
|         searchType: '', | |
|         patientName: '', | |
|         patientStatus: '', | |
|         patientIdNumber: '' | |
|       }, | |
|       doctorNameList: [], | |
|       currentTableList: [], | |
|       patientId: '', | |
|       patientIdNumber: '', | |
|       detailId: '' | |
|     } | |
|   }, | |
|   filters: { | |
|     callStatus(val) { | |
|       switch (val) { | |
|         case '1': | |
|           return '未叫号' | |
|           break | |
|         case '2': | |
|           return '已叫号' | |
|           break | |
|         case '3': | |
|           return '过号' | |
|           break | |
|         case '4': | |
|           return '呼叫中' | |
|           break | |
|         default: | |
|           return val | |
|       } | |
|     }, | |
|     patientStatus(val) { | |
|       switch (val) { | |
|         case '1': | |
|           return '未报到' | |
|           break | |
|         case '2': | |
|           return '未诊断' | |
|           break | |
|         case '3': | |
|           return '就诊中' | |
|           break | |
|         case '4': | |
|           return '回诊' | |
|           break | |
|         case '5': | |
|           return '已诊' | |
|           break | |
|         default: | |
|           return val | |
|       } | |
|     }, | |
|   }, | |
|   watch: { | |
|     $route(val) { | |
|       // 如果两级以上就隐藏父级 | |
|       this.isShowPatient = !(val.matched.length > 2) | |
|     } | |
|   }, | |
|   created() { | |
|     this.isShowPatient = !(this.$route.matched.length > 2) | |
|     // this.getDoctorName() | |
|     // this.gettPatType() | |
|   }, | |
|   methods: { | |
|     // 浏览 | |
|     browseClick(scopeRow) { | |
|       window.sessionStorage.removeItem('itemCurrentIndex') | |
|       window.sessionStorage.removeItem('itemListIndex') | |
|       this.$router.push({ | |
|         path: '/seeDoctor', | |
|         query: { | |
|           info: this.$Base64.encode(JSON.stringify({ | |
|             patientIdNumber: scopeRow.patientIdNumber, | |
|             patientCentreId: scopeRow.patientCentreId, | |
|             title: '门诊' | |
|             // crfId: scopeRow.crfId, | |
|             // patientId: scopeRow.patientId | |
|           })) | |
|         } | |
|       }) | |
|     }, | |
|     // 日期改变时 | |
|     dateChange(e) { | |
|       this.dataForm.beginDate = e ? e[0] : '' | |
|       this.dataForm.endDate = e ? e[1] : '' | |
|       this.getDataListInitial() | |
|     }, | |
|     // 根据就诊状态查询 | |
|     handleType(value) { | |
|       this.dataForm.patientStatus = value | |
|       this.getDataListInitial() | |
|     }, | |
|     // 查看详情 | |
|     showDetail(scopeRow, index) { | |
|       console.log(scopeRow) | |
|       this.onlyRead = index !== 2 | |
|       this.detailViewVisible = true | |
|       this.patientId = scopeRow.patientId | |
|       this.patientIdNumber = scopeRow.patientIdNumber | |
|       this.patientId = '797064' | |
|       this.$nextTick(() => { | |
|         // // 根据id获取患者信息--中间上侧患者信息 | |
|         this.$refs.viewRef.getPatientData() | |
|         // // 获取时间轴数据--左侧时间轴 | |
|         this.$refs.viewRef.getTimeAxisData() | |
|         // // 设置时间轴索引和tab在第一项 | |
|         // this.$refs.viewRef.visible = true | |
|         // this.$refs.viewRef.drawer = true | |
|         // this.$refs.viewRef.isActive = 1 | |
|         // this.$refs.viewRef.init() | |
|         // this.$refs.viewRef.setIndex() | |
|       }) | |
|     }, | |
|     // His引入 | |
|     HISHandle() { | |
|       this.HisAddVisible = true | |
|       this.$nextTick(() => { | |
|         this.$refs.HisAddRef.init() | |
|       }) | |
|     }, | |
|     // 获取管理师 | |
|     async getDoctorName() { | |
|       const { data: res } = await this.$http.get('/pat/Manage/selectDoctorName', { | |
|         params: { | |
|           drgsName: window.localStorage.getItem('identity') | |
|         } | |
|       }) | |
|       if (res.code === 0) { | |
|         this.doctorNameList = res.data | |
|       } else { | |
|         this.$message.error(res.msg) | |
|       } | |
|     } | |
|  | |
|   } | |
| } | |
| </script> | |
| <style lang="scss" scoped> | |
| .patient-info { | |
|   height: 100%; | |
|   .patient-info-head, | |
|   .patient-info-content { | |
|     background: #fff; | |
|     .head { | |
|       padding-bottom: 10px; | |
|     } | |
|   } | |
|   .patient-info-content { | |
|     width: 100%; | |
|     padding: 10px 16px; | |
|     box-sizing: border-box; | |
|   } | |
|   .patient-info-head { | |
|     margin-bottom: 10px; | |
|     padding: 10px 16px; | |
|   } | |
|   .operation-delete, | |
|   .operation-details { | |
|     cursor: pointer; | |
|   } | |
| } | |
| </style> | |
| <style lang="scss"> | |
| .patient-info { | |
|   .patient-info-head { | |
|     .el-form { | |
|       display: flex; | |
|       justify-content: space-between; | |
|     } | |
|     .el-form-item { | |
|       display: flex; | |
|     } | |
|     .el-form-item__label { | |
|       min-width: 75px; | |
|     } | |
|     .el-form-item { | |
|       margin-bottom: 0; | |
|       width: 25%; | |
|     } | |
|     .el-form-item__content, | |
|     .el-select, | |
|     .el-range-editor--small.el-input__inner { | |
|       width: 100%; | |
|     } | |
|     .form-item-date .el-form-item__content { | |
|         min-width: 180px; | |
|       } | |
|   } | |
|   .el-select { | |
|     width: 100%; | |
|   } | |
| } | |
| </style>
 |