|
|
@@ -9,24 +9,29 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="处方单号" prop="prescribeCode">
|
|
|
<el-input v-model="queryParams.prescribeCode" placeholder="请输入处方单号" clearable
|
|
|
- @keyup.enter.native="handleQuery" />
|
|
|
+ @keyup.enter.native="handleQuery"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="订单编号" prop="orderCode">
|
|
|
- <el-input v-model="queryParams.orderCode" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery" />
|
|
|
+ <el-input v-model="queryParams.orderCode" placeholder="请输入订单编号" clearable
|
|
|
+ @keyup.enter.native="handleQuery"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="患者姓名" prop="patientName">
|
|
|
- <el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery" />
|
|
|
+ <el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable
|
|
|
+ @keyup.enter.native="handleQuery"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="医生姓名" prop="doctorName">
|
|
|
- <el-input v-model="queryParams.doctorName" placeholder="请输入医生姓名" clearable @keyup.enter.native="handleQuery" />
|
|
|
+ <el-input v-model="queryParams.doctorName" placeholder="请输入医生姓名" clearable
|
|
|
+ @keyup.enter.native="handleQuery"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="创建时间" prop="dateRange">
|
|
|
<el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期" value-format="yyyy-MM-dd" @change="handleDateRangeChange"></el-date-picker>
|
|
|
+ end-placeholder="结束日期" value-format="yyyy-MM-dd"
|
|
|
+ @change="handleDateRangeChange"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="审核时间" prop="auditRange">
|
|
|
<el-date-picker v-model="auditRange" type="daterange" range-separator="至" start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期" value-format="yyyy-MM-dd" @change="handleAuditDateRangeChange"></el-date-picker>
|
|
|
+ end-placeholder="结束日期" value-format="yyyy-MM-dd"
|
|
|
+ @change="handleAuditDateRangeChange"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
@@ -37,46 +42,51 @@
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
|
|
- v-hasPermi="['his:prescribe:add']">新增</el-button>
|
|
|
+ v-hasPermi="['his:prescribe:add']">新增
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
|
|
- v-hasPermi="['his:prescribe:edit']">修改</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click=""
|
|
|
- v-hasPermi="['his:prescribe:remove']">删除</el-button>
|
|
|
+ v-hasPermi="['his:prescribe:edit']">修改
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
+<!-- <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click=""-->
|
|
|
+<!-- v-hasPermi="['his:prescribe:remove']">删除-->
|
|
|
+<!-- </el-button>-->
|
|
|
+<!-- </el-col>-->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
|
|
- v-hasPermi="['his:prescribe:export']">导出</el-button>
|
|
|
+ v-hasPermi="['his:prescribe:export']">导出
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="info" plain icon="el-icon-download" size="mini" @click="handleMessageFeedbackExport"
|
|
|
- v-hasPermi="['his:prescribe:messageFeedbackExport']">导出医疗信息反馈单</el-button>
|
|
|
+ v-hasPermi="['his:prescribe:messageFeedbackExport']">导出医疗信息反馈单
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
<el-table v-loading="loading" :data="prescribeList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="处方ID" align="center" prop="prescribeId" />
|
|
|
- <el-table-column label="处方单号" align="center" prop="prescribeCode" />
|
|
|
+ <el-table-column type="selection" width="55" align="center"/>
|
|
|
+ <el-table-column label="处方ID" align="center" prop="prescribeId"/>
|
|
|
+ <el-table-column label="处方单号" align="center" prop="prescribeCode"/>
|
|
|
<el-table-column label="处方类型" align="center" prop="prescribeType">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="prescribeTypeOptions" :value="scope.row.prescribeType" />
|
|
|
+ <dict-tag :options="prescribeTypeOptions" :value="scope.row.prescribeType"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单编号" align="center" prop="orderCode" width="180" />
|
|
|
- <el-table-column label="患者姓名" align="center" prop="patientName" />
|
|
|
- <el-table-column label="医生姓名" align="center" prop="doctorName" />
|
|
|
+ <el-table-column label="订单编号" align="center" prop="orderCode" width="180"/>
|
|
|
+ <el-table-column label="患者姓名" align="center" prop="patientName"/>
|
|
|
+ <el-table-column label="医生姓名" align="center" prop="doctorName"/>
|
|
|
<el-table-column label="是否确认" align="center" prop="doctorConfirm">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="doctorConfirmOptions" :value="scope.row.doctorConfirm" />
|
|
|
+ <dict-tag :options="doctorConfirmOptions" :value="scope.row.doctorConfirm"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="拒方次数" align="center" prop="refuseCount" />
|
|
|
- <el-table-column label="操作时间" align="center" prop="operateTime" />
|
|
|
+ <el-table-column label="拒方次数" align="center" prop="refuseCount"/>
|
|
|
+ <el-table-column label="操作时间" align="center" prop="operateTime"/>
|
|
|
<el-table-column label="审核时间" align="center" prop="auditTime" width="180">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.auditTime, '{y}-{m}-{d}') }}</span>
|
|
|
@@ -90,17 +100,20 @@
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button v-if="scope.row.doctorConfirm == 0" size="mini" type="text" icon="el-icon-edit"
|
|
|
- @click="handleUpdate(scope.row)">开方</el-button>
|
|
|
+ @click="handleUpdate(scope.row)">开方
|
|
|
+ </el-button>
|
|
|
<el-button v-if="scope.row.doctorConfirm == 1" size="mini" type="text"
|
|
|
- @click="handleUpdate(scope.row)">查看</el-button>
|
|
|
+ @click="handleUpdate(scope.row)">查看
|
|
|
+ </el-button>
|
|
|
<el-button v-if="scope.row.doctorConfirm == 1" size="mini" type="text"
|
|
|
- @click="handleRecord(scope.row)">审核记录</el-button>
|
|
|
+ @click="handleRecord(scope.row)">审核记录
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="getList" />
|
|
|
+ @pagination="getList"/>
|
|
|
|
|
|
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body @close="handleDialogClose">
|
|
|
<el-tabs v-model="activeTab" type="border-card">
|
|
|
@@ -114,16 +127,16 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="订单ID" prop="inquiryOrderId">
|
|
|
- <el-input v-model="form.inquiryOrderId" placeholder="请输入订单ID" disabled />
|
|
|
+ <el-input v-model="form.inquiryOrderId" placeholder="请输入订单ID" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="店铺订单ID" prop="storeOrderId">
|
|
|
- <el-input v-model="form.storeOrderId" placeholder="请输入店铺订单ID" disabled />
|
|
|
+ <el-input v-model="form.storeOrderId" placeholder="请输入店铺订单ID" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="患者姓名" prop="patientName">
|
|
|
- <el-input v-model="form.patientName" placeholder="请输入患者姓名" />
|
|
|
+ <el-input v-model="form.patientName" placeholder="请输入患者姓名"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="患者年龄" prop="patientAge">
|
|
|
- <el-input v-model="form.patientAge" placeholder="请输入患者年龄" />
|
|
|
+ <el-input v-model="form.patientAge" placeholder="请输入患者年龄"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="患者性别" prop="patientGender">
|
|
|
<el-select v-model="form.patientGender" placeholder="请选择患者性别">
|
|
|
@@ -131,11 +144,8 @@
|
|
|
<el-option label="女" value="2"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <!-- <el-form-item label="患者电话" prop="patientTel">-->
|
|
|
- <!-- <el-input v-model="form.patientTel" placeholder="请输入患者电话" disabled/>-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
<el-form-item label="体重" prop="weight">
|
|
|
- <el-input v-model="form.weight" placeholder="请输入体重" />
|
|
|
+ <el-input v-model="form.weight" placeholder="请输入体重"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="是否有过敏史" prop="isHistoryAllergic">
|
|
|
<el-radio-group v-model="form.isHistoryAllergic">
|
|
|
@@ -144,11 +154,20 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="过敏史" prop="historyAllergic">
|
|
|
- <el-input v-model="form.historyAllergic" placeholder="请输入过敏史" />
|
|
|
+ <el-input v-model="form.historyAllergic" placeholder="请输入过敏史"/>
|
|
|
</el-form-item>
|
|
|
<!-- 定位在右下角的按钮 -->
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ size="mini"
|
|
|
+ style="position: absolute; bottom: 5px; right: 180px;"
|
|
|
+ @click="openDoctorAdviceDialog"
|
|
|
+ :disabled="!form.prescribeId || !form.userId"
|
|
|
+ >
|
|
|
+ 查看医生建议
|
|
|
+ </el-button>
|
|
|
<el-button type="primary" size="mini" style="position: absolute; bottom: 5px; right: 20px;"
|
|
|
- @click="openCollectionInfo">
|
|
|
+ @click="openCollectionInfo">
|
|
|
查看采集信息
|
|
|
</el-button>
|
|
|
</el-form>
|
|
|
@@ -156,12 +175,12 @@
|
|
|
<!-- Tab 2: 处方药品信息 -->
|
|
|
<el-tab-pane label="处方药品信息" name="drug">
|
|
|
<div class="drug-container">
|
|
|
- <el-form ref="drugInfoForm" :model="form" :rules="rules" label-width="120px" class="drug-container">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="120px" class="drug-container">
|
|
|
<!-- 诊断 -->
|
|
|
<el-form-item label="诊断" prop="diagnose">
|
|
|
<el-input v-model="form.diagnose" placeholder="请输入诊断">
|
|
|
<i slot="suffix" class="el-icon-search el-input__icon" style="cursor: pointer;"
|
|
|
- @click="handleCommonlyDiagnoseWorlds"></i>
|
|
|
+ @click="handleCommonlyDiagnoseWorlds"></i>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -176,38 +195,42 @@
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button v-if="currentConfirm === 0" type="primary" icon="el-icon-plus" size="mini"
|
|
|
- @click="handleAddDrug" :disabled="!form.prescribeId">新增药品</el-button>
|
|
|
+ @click="handleAddDrug" :disabled="!form.prescribeId">新增药品
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="2.5">
|
|
|
<el-button v-if="currentConfirm === 0" type="success" icon="el-icon-search" size="mini"
|
|
|
- @click="openCommonPrescribeDialog" :disabled="!form.prescribeId">常用药品</el-button>
|
|
|
+ @click="openCommonPrescribeDialog" :disabled="!form.prescribeId">常用药品
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
<!-- 药品列表表格 -->
|
|
|
<el-table v-loading="drugLoading" :data="drugList" border max-height="400">
|
|
|
- <el-table-column label="药品名称" align="center" prop="drugName" />
|
|
|
- <el-table-column label="规格" align="center" prop="drugSpec" width="100" />
|
|
|
- <el-table-column label="使用方法" align="center" prop="usageMethod" width="100" />
|
|
|
- <el-table-column label="频次" align="center" prop="usageFrequencyUnit" width="80" />
|
|
|
+ <el-table-column label="药品名称" align="center" prop="drugName"/>
|
|
|
+ <el-table-column label="规格" align="center" prop="drugSpec" width="100"/>
|
|
|
+ <el-table-column label="使用方法" align="center" prop="usageMethod" width="100"/>
|
|
|
+ <el-table-column label="频次" align="center" prop="usageFrequencyUnit" width="80"/>
|
|
|
<el-table-column label="每次用药数量" align="center" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.usagePerUseCount }}{{ scope.row.usagePerUseUnit }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column v-if="currentConfirm === 0" label="操作" align="center"
|
|
|
- class-name="small-padding fixed-width" width="150">
|
|
|
+ class-name="small-padding fixed-width" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button size="mini" type="text" icon="el-icon-edit"
|
|
|
- @click="handleUpdateDrug(scope.row)">编辑</el-button>
|
|
|
+ @click="handleUpdateDrug(scope.row)">编辑
|
|
|
+ </el-button>
|
|
|
<el-button size="mini" type="text" icon="el-icon-delete"
|
|
|
- @click="handleDeleteDrug(scope.row)">删除</el-button>
|
|
|
+ @click="handleDeleteDrug(scope.row)">删除
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<!-- 药品分页 -->
|
|
|
<pagination v-show="drugTotal > 0" :total="drugTotal" :page.sync="drugQueryParams.pageNum"
|
|
|
- :limit.sync="drugQueryParams.pageSize" @pagination="getDrugList" />
|
|
|
+ :limit.sync="drugQueryParams.pageSize" @pagination="getDrugList"/>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<!-- Tab 3: 用户信息采集 -->
|
|
|
@@ -228,7 +251,8 @@
|
|
|
<el-col :span="8">
|
|
|
<div class="info-item">
|
|
|
<span class="label">患者性别:</span>
|
|
|
- <span class="value">{{ form.patientGender === '1' ? '男' : form.patientGender === '2' ? '女' : '—'
|
|
|
+ <span class="value">{{
|
|
|
+ form.patientGender === '1' ? '男' : form.patientGender === '2' ? '女' : '—'
|
|
|
}}</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
@@ -253,9 +277,23 @@
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <collectionDetail :userId="form.userId" :prescribeId="form.prescribeId" v-if="form.userId" />
|
|
|
+ <collectionDetail :userId="form.userId" :prescribeId="form.prescribeId" v-if="form.userId"/>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
+
|
|
|
+ <!-- 医生建议 el-dialog-->
|
|
|
+ <el-dialog
|
|
|
+ title="医生建议"
|
|
|
+ :visible.sync="doctorAdviceDialogVisible"
|
|
|
+ width="600px"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <div v-if="doctorAdviceContent" v-html="doctorAdviceContent"></div> <!-- 使用 v-html 渲染 HTML 内容 -->
|
|
|
+ <div v-else>暂无医生建议信息。</div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="doctorAdviceDialogVisible = false">关 闭</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
<!-- 查看采集信息的弹窗 -->
|
|
|
<el-dialog :visible.sync="collectionDialogVisible" title="用户信息采集详情" width="800px" append-to-body>
|
|
|
|
|
|
@@ -275,7 +313,9 @@
|
|
|
<el-col :span="8">
|
|
|
<div class="info-item">
|
|
|
<span class="label">患者性别:</span>
|
|
|
- <span class="value">{{ form.patientGender === '1' ? '男' : form.patientGender === '2' ? '女' : '—' }}</span>
|
|
|
+ <span class="value">{{
|
|
|
+ form.patientGender === '1' ? '男' : form.patientGender === '2' ? '女' : '—'
|
|
|
+ }}</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -300,7 +340,7 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
- <collectionDetail :userId="form.userId" :prescribeId="form.prescribeId" v-if="collectionDialogVisible" />
|
|
|
+ <collectionDetail :userId="form.userId" :prescribeId="form.prescribeId" v-if="collectionDialogVisible"/>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="collectionDialogVisible = false">关 闭</el-button>
|
|
|
</span>
|
|
|
@@ -316,19 +356,19 @@
|
|
|
<el-dialog :title="drugTitle" :visible.sync="drugOpen" width="700px" append-to-body>
|
|
|
<el-form ref="drugForm" :model="drugForm" :rules="drugRules" label-width="120px">
|
|
|
<el-form-item label="药品名称" prop="drugName">
|
|
|
- <el-input v-model="drugForm.drugName" placeholder="请输入药品名称" />
|
|
|
+ <el-input v-model="drugForm.drugName" placeholder="请输入药品名称"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="规格" prop="drugSpec">
|
|
|
- <el-input v-model="drugForm.drugSpec" placeholder="请输入规格" />
|
|
|
+ <el-input v-model="drugForm.drugSpec" placeholder="请输入规格"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="使用方法" prop="usageMethod">
|
|
|
- <el-input v-model="drugForm.usageMethod" placeholder="请输入使用方法" />
|
|
|
+ <el-input v-model="drugForm.usageMethod" placeholder="请输入使用方法"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="每次用药数量" prop="usagePerUseCount">
|
|
|
- <el-input v-model="drugForm.usagePerUseCount" placeholder="请输入每次用药数量" />
|
|
|
+ <el-input v-model="drugForm.usagePerUseCount" placeholder="请输入每次用药数量"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="药品频次" prop="usageFrequencyUnit">
|
|
|
- <el-input v-model="drugForm.usageFrequencyUnit" placeholder="请输入药品频次,如:每日3次" />
|
|
|
+ <el-input v-model="drugForm.usageFrequencyUnit" placeholder="请输入药品频次,如:每日3次"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
@@ -338,12 +378,12 @@
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <!-- ✅ 新增:常用语选择对话框 -->
|
|
|
+ <!--常用语选择对话框 -->
|
|
|
<el-dialog :title="suggestDialogTitle" :visible.sync="showSuggestDialog" width="600px" append-to-body
|
|
|
- @closed="clearSuggestList">
|
|
|
+ @closed="clearSuggestList">
|
|
|
<el-table :data="suggestList" height="300" border @row-click="handleSuggestRowClick">
|
|
|
- <el-table-column type="index" width="50" />
|
|
|
- <el-table-column label="内容" prop="diagnose" show-overflow-tooltip />
|
|
|
+ <el-table-column type="index" width="50"/>
|
|
|
+ <el-table-column label="内容" prop="diagnose" show-overflow-tooltip/>
|
|
|
<el-table-column label="操作" width="80" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button type="text" size="small" @click.stop="handleAddSuggest(scope.row)">
|
|
|
@@ -354,84 +394,87 @@
|
|
|
</el-table>
|
|
|
|
|
|
<pagination v-show="suggestTotal > 0" :total="suggestTotal" :page.sync="suggestQuery.pageNum"
|
|
|
- :limit.sync="suggestQuery.pageSize" @pagination="getSuggestList" />
|
|
|
+ :limit.sync="suggestQuery.pageSize" @pagination="getSuggestList"/>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 常用药品选择对话框 -->
|
|
|
<el-dialog title="选择常用药品" :visible.sync="commonPrescribeDialogVisible" width="800px" append-to-body
|
|
|
- @open="handleOpenCommonPrescribeDialog">
|
|
|
+ @open="handleOpenCommonPrescribeDialog">
|
|
|
|
|
|
<!-- 搜索区域 -->
|
|
|
<el-form :model="commonDrugQuery" :inline="true" size="small" label-width="80px">
|
|
|
<el-form-item label="药品名称" prop="diagnose">
|
|
|
<el-input v-model="commonDrugQuery.drugName" placeholder="请输入药品名称" clearable
|
|
|
- @keyup.enter.native="handleCommonPrescribeQuery" />
|
|
|
+ @keyup.enter.native="handleCommonPrescribeQuery"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleCommonPrescribeQuery">搜索</el-button>
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleCommonPrescribeQuery">搜索
|
|
|
+ </el-button>
|
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetCommonPrescribeQuery">重置</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
<!-- 表格 -->
|
|
|
<el-table v-loading="commonPrescribeLoading" :data="commonDrugList" border style="width: 100%; margin-top: 10px;"
|
|
|
- max-height="400">
|
|
|
+ max-height="400">
|
|
|
<!-- 药品名称 -->
|
|
|
- <el-table-column label="药品名称" align="center" prop="drugName" show-overflow-tooltip />
|
|
|
+ <el-table-column label="药品名称" align="center" prop="drugName" show-overflow-tooltip/>
|
|
|
|
|
|
<!-- 规格 -->
|
|
|
- <el-table-column label="规格" align="center" prop="drugSpec" width="100" />
|
|
|
+ <el-table-column label="规格" align="center" prop="drugSpec" width="100"/>
|
|
|
|
|
|
<!-- 用法 -->
|
|
|
- <el-table-column label="用法" align="center" prop="usageMethod" width="100" />
|
|
|
+ <el-table-column label="用法" align="center" prop="usageMethod" width="100"/>
|
|
|
|
|
|
<!-- 频次 -->
|
|
|
- <el-table-column label="频次" align="center" prop="usageFrequencyUnit" width="100" />
|
|
|
+ <el-table-column label="频次" align="center" prop="usageFrequencyUnit" width="100"/>
|
|
|
|
|
|
<!-- 每次用药数量 -->
|
|
|
- <el-table-column label="每次用量" align="center" prop="usagePerUseCount" width="100" />
|
|
|
+ <el-table-column label="每次用量" align="center" prop="usagePerUseCount" width="100"/>
|
|
|
|
|
|
<!-- 操作 -->
|
|
|
<el-table-column label="操作" align="center" width="100">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button size="mini" type="text" icon="el-icon-check"
|
|
|
- @click="applyCommonPrescribe(scope.row)">应用</el-button>
|
|
|
+ @click="applyCommonPrescribe(scope.row)">应用
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
<!-- 分页 -->
|
|
|
<pagination v-show="commonPrescribeTotal > 0" :total="commonPrescribeTotal" :page.sync="commonDrugQuery.pageNum"
|
|
|
- :limit.sync="commonDrugQuery.pageSize" @pagination="getCommonPrescribeList" style="margin-top: 10px;" />
|
|
|
+ :limit.sync="commonDrugQuery.pageSize" @pagination="getCommonPrescribeList"
|
|
|
+ style="margin-top: 10px;"/>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
-
|
|
|
+
|
|
|
<el-dialog title="审核记录" :visible.sync="recordDialogVisible" width="1000px" append-to-body>
|
|
|
<el-table v-loading="recordLoading" :data="recordList" border style="width: 100%; margin-top: 10px;"
|
|
|
- max-height="400">
|
|
|
- <el-table-column label="审核药师" align="center" prop="drugDoctorName" />
|
|
|
- <el-table-column label="拒方原因" align="center" prop="auditReason" show-overflow-tooltip />
|
|
|
+ max-height="400">
|
|
|
+ <el-table-column label="审核药师" align="center" prop="drugDoctorName"/>
|
|
|
+ <el-table-column label="拒方原因" align="center" prop="auditReason" show-overflow-tooltip/>
|
|
|
<el-table-column label="处方图片" align="center" width="140">
|
|
|
<template slot-scope="scope">
|
|
|
<el-image v-if="scope.row.prescribeImgUrl" :src="scope.row.prescribeImgUrl"
|
|
|
- :preview-src-list="[scope.row.prescribeImgUrl]" style="width: 120px; height: 120px" fit="cover" />
|
|
|
+ :preview-src-list="[scope.row.prescribeImgUrl]" style="width: 120px; height: 120px" fit="cover"/>
|
|
|
<span v-else>无</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="审核时间" align="center" prop="createTime" />
|
|
|
+ <el-table-column label="审核时间" align="center" prop="createTime"/>
|
|
|
<el-table-column label="审核状态" align="center" width="120">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{ statusFormat(scope.row.auditStatus != null ? scope.row.auditStatus : scope.row.status) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ statusFormat(scope.row.auditStatus != null ? scope.row.auditStatus : scope.row.status) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { getCommonDrugList } from '@/api/commonlyDrug';
|
|
|
-import { getCommonDiagnoseList } from '@/api/commonlyDiagnose';
|
|
|
+import {getCommonDrugList} from '@/api/commonlyDrug';
|
|
|
+import {getCommonDiagnoseList} from '@/api/commonlyDiagnose';
|
|
|
import collectionDetail from '@/views/components/collection/collectionDetail.vue';
|
|
|
import {
|
|
|
listPrescribe,
|
|
|
@@ -443,7 +486,9 @@ import {
|
|
|
confirmPrescribe,
|
|
|
recordList
|
|
|
} from '@/api/his/prescribe'
|
|
|
-import { listPrescribeDrug, addPrescribeDrug, updatePrescribeDrug, deletePrescribeDrug } from "@/api/his/prescribeDrug";
|
|
|
+import {listPrescribeDrug, addPrescribeDrug, updatePrescribeDrug, deletePrescribeDrug} from "@/api/his/prescribeDrug";
|
|
|
+import {getCollectionByUserId} from "@/api/collection";
|
|
|
+
|
|
|
export default {
|
|
|
components: {
|
|
|
collectionDetail // 注册引入的组件
|
|
|
@@ -455,8 +500,10 @@ export default {
|
|
|
recordLoading: false,
|
|
|
recordList: [],
|
|
|
recordDialogVisible: false,//审核记录弹窗控制
|
|
|
-
|
|
|
-
|
|
|
+ // 新增:用于存储医生建议内容
|
|
|
+ doctorAdviceContent: '',
|
|
|
+ // 新增:控制医生建议弹窗显示
|
|
|
+ doctorAdviceDialogVisible: false,
|
|
|
collectionDialogVisible: false, // 控制采集信息弹窗显示
|
|
|
suggestList: [], // 常用语建议列表
|
|
|
suggestTotal: 0, // 分页总数
|
|
|
@@ -481,17 +528,17 @@ export default {
|
|
|
dateRange: [],
|
|
|
auditRange: [],
|
|
|
doctorConfirmOptions: [
|
|
|
- { dictValue: '0', dictLabel: "未确认" },
|
|
|
- { dictValue: '1', dictLabel: "已确认" }
|
|
|
+ {dictValue: '0', dictLabel: "未确认"},
|
|
|
+ {dictValue: '1', dictLabel: "已确认"}
|
|
|
],
|
|
|
prescribeTypeOptions: [
|
|
|
- { dictValue: '1', dictLabel: "西药" },
|
|
|
- { dictValue: '2', dictLabel: "中药" },
|
|
|
- { dictValue: '3', dictLabel: "OTC" }
|
|
|
+ {dictValue: '1', dictLabel: "西药"},
|
|
|
+ {dictValue: '2', dictLabel: "中药"},
|
|
|
+ {dictValue: '3', dictLabel: "OTC"}
|
|
|
],
|
|
|
statusOptions: [
|
|
|
- { dictValue: '0', dictLabel: "未开" },
|
|
|
- { dictValue: '1', dictLabel: "已开" }
|
|
|
+ {dictValue: '0', dictLabel: "未开"},
|
|
|
+ {dictValue: '1', dictLabel: "已开"}
|
|
|
],
|
|
|
// 常用药品弹窗相关
|
|
|
commonPrescribeDialogVisible: false,
|
|
|
@@ -521,13 +568,13 @@ export default {
|
|
|
currentConfirm: null,
|
|
|
form: {},
|
|
|
rules: {
|
|
|
- prescribeType: [{ required: true, message: "处方类型不能为空", trigger: "change" }],
|
|
|
- patientName: [{ required: true, message: "患者姓名不能为空", trigger: "blur" }],
|
|
|
- patientAge: [{ required: true, message: "患者年龄不能为空", trigger: "blur" }],
|
|
|
- patientGender: [{ required: true, message: "患者性别不能为空", trigger: "change" }],
|
|
|
- diagnose: [{ required: true, message: "诊断不能为空", trigger: ["blur", "change"] }],
|
|
|
- doctorId: [{ required: true, message: "医生ID不能为空", trigger: "blur" }],
|
|
|
- status: [{ required: true, message: "处方状态不能为空", trigger: "change" }]
|
|
|
+ prescribeType: [{required: true, message: "处方类型不能为空", trigger: "change"}],
|
|
|
+ patientName: [{required: true, message: "患者姓名不能为空", trigger: "blur"}],
|
|
|
+ patientAge: [{required: true, message: "患者年龄不能为空", trigger: "blur"}],
|
|
|
+ patientGender: [{required: true, message: "患者性别不能为空", trigger: "change"}],
|
|
|
+ diagnose: [{required: true, message: "诊断不能为空", trigger: ["blur", "change"]}],
|
|
|
+ doctorId: [{required: true, message: "医生ID不能为空", trigger: "blur"}],
|
|
|
+ status: [{required: true, message: "处方状态不能为空", trigger: "change"}]
|
|
|
},
|
|
|
// 新增:Tab相关
|
|
|
activeTab: 'basic',
|
|
|
@@ -544,17 +591,17 @@ export default {
|
|
|
prescribeId: undefined
|
|
|
},
|
|
|
drugRules: {
|
|
|
- drugName: [{ required: true, message: "药品名称不能为空", trigger: "blur" }],
|
|
|
- drugSpec: [{ required: true, message: "规格不能为空", trigger: "blur" }],
|
|
|
- usageMethod: [{ required: true, message: "使用方法不能为空", trigger: "blur" }],
|
|
|
- usageFrequencyUnit: [{ required: true, message: "药品频次不能为空", trigger: "blur" }],
|
|
|
- usagePerUseCount: [{ required: true, message: "每次用药数量不能为空", trigger: "blur" }],
|
|
|
- usagePerUseUnit: [{ required: true, message: "每次用药单位不能为空", trigger: "blur" }],
|
|
|
- usageDays: [{ required: true, message: "天数不能为空", trigger: "blur" }],
|
|
|
- drugPrice: [{ required: true, message: "药品单价不能为空", trigger: "blur" }],
|
|
|
- drugNum: [{ required: true, message: "药品数量不能为空", trigger: "blur" }],
|
|
|
- drugUnit: [{ required: true, message: "药品数量单位不能为空", trigger: "blur" }],
|
|
|
- instructions: [{ required: true, message: "药品说明书不能为空", trigger: "blur" }]
|
|
|
+ drugName: [{required: true, message: "药品名称不能为空", trigger: "blur"}],
|
|
|
+ drugSpec: [{required: true, message: "规格不能为空", trigger: "blur"}],
|
|
|
+ usageMethod: [{required: true, message: "使用方法不能为空", trigger: "blur"}],
|
|
|
+ usageFrequencyUnit: [{required: true, message: "药品频次不能为空", trigger: "blur"}],
|
|
|
+ usagePerUseCount: [{required: true, message: "每次用药数量不能为空", trigger: "blur"}],
|
|
|
+ usagePerUseUnit: [{required: true, message: "每次用药单位不能为空", trigger: "blur"}],
|
|
|
+ usageDays: [{required: true, message: "天数不能为空", trigger: "blur"}],
|
|
|
+ drugPrice: [{required: true, message: "药品单价不能为空", trigger: "blur"}],
|
|
|
+ drugNum: [{required: true, message: "药品数量不能为空", trigger: "blur"}],
|
|
|
+ drugUnit: [{required: true, message: "药品数量单位不能为空", trigger: "blur"}],
|
|
|
+ instructions: [{required: true, message: "药品说明书不能为空", trigger: "blur"}]
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
@@ -588,7 +635,7 @@ export default {
|
|
|
handleRecord(row) {
|
|
|
this.recordDialogVisible = true;
|
|
|
this.recordLoading = true;
|
|
|
- recordList(row.prescribeId).then(res =>{
|
|
|
+ recordList(row.prescribeId).then(res => {
|
|
|
this.recordLoading = false;
|
|
|
this.recordList = res.data;
|
|
|
})
|
|
|
@@ -597,11 +644,6 @@ export default {
|
|
|
* 打开常用药品对话框,并打印当前医生ID
|
|
|
*/
|
|
|
openCommonPrescribeDialog() {
|
|
|
- // 获取当前医生ID(假设医生ID在 form.doctorId 或从 store 中获取)
|
|
|
- const doctorId = this.form.doctorId || this.$store.state.user.userId?.replace('D-', '');
|
|
|
-
|
|
|
- console.log('当前医生ID:', doctorId);
|
|
|
-
|
|
|
// 打开对话框
|
|
|
this.commonPrescribeDialogVisible = true;
|
|
|
},
|
|
|
@@ -796,7 +838,7 @@ export default {
|
|
|
},
|
|
|
// 日期范围处理
|
|
|
addDateRange(params, dateRange, type) {
|
|
|
- let obj = { ...params };
|
|
|
+ let obj = {...params};
|
|
|
if (dateRange != null && dateRange.length > 0) {
|
|
|
if (type === 'Create') {
|
|
|
obj.beginCreateTime = dateRange[0];
|
|
|
@@ -906,7 +948,8 @@ export default {
|
|
|
}).then(response => {
|
|
|
this.$download.excel(response, '处方数据');
|
|
|
this.exportLoading = false;
|
|
|
- }).catch(() => { });
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
},
|
|
|
/** 导出医疗信息反馈单 */
|
|
|
handleMessageFeedbackExport() {
|
|
|
@@ -920,7 +963,8 @@ export default {
|
|
|
}).then(response => {
|
|
|
this.$download.excel(response, '医疗信息反馈单');
|
|
|
this.exportLoading = false;
|
|
|
- }).catch(() => { });
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
},
|
|
|
/** 对话框关闭事件 */
|
|
|
handleDialogClose() {
|
|
|
@@ -945,7 +989,7 @@ export default {
|
|
|
/** 修改药品按钮操作 */
|
|
|
handleUpdateDrug(row) {
|
|
|
this.resetDrugForm();
|
|
|
- this.drugForm = { ...row };
|
|
|
+ this.drugForm = {...row};
|
|
|
this.drugOpen = true;
|
|
|
this.drugTitle = "修改药品";
|
|
|
},
|
|
|
@@ -1001,6 +1045,59 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 获取医生建议信息 (修改版)
|
|
|
+ * @param {string|number} userId - 用户ID
|
|
|
+ * @returns {Promise<void>}
|
|
|
+ */
|
|
|
+ fetchDoctorAdviceInfo(userId) {
|
|
|
+ return getCollectionByUserId(userId)
|
|
|
+ .then(res => {
|
|
|
+ const data = res.data;
|
|
|
+ // 提取 doctorAdvice 字段
|
|
|
+ if (data && typeof data.doctorAdvice === 'string') {
|
|
|
+ this.doctorAdviceContent = data.doctorAdvice;
|
|
|
+ } else {
|
|
|
+ this.doctorAdviceContent = ''; // 如果没有或不是字符串,则清空
|
|
|
+ this.$message.info("暂无医生建议内容。");
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error("获取医生建议信息失败:", err);
|
|
|
+ this.$message.error("获取医生建议信息失败");
|
|
|
+ this.doctorAdviceContent = ''; // 出错时也清空内容
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开医生建议弹窗的方法
|
|
|
+ */
|
|
|
+ openDoctorAdviceDialog() {
|
|
|
+ // 确保有 userId 和 prescribeId
|
|
|
+ const userId = this.form.userId;
|
|
|
+ const prescribeId = this.form.prescribeId;
|
|
|
+
|
|
|
+ if (!prescribeId) {
|
|
|
+ this.$message.warning("请先保存或加载处方信息。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!userId) {
|
|
|
+ this.$message.warning("缺少患者用户ID。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 先清空之前的内容,避免显示旧数据
|
|
|
+ this.doctorAdviceContent = '';
|
|
|
+ this.fetchDoctorAdviceInfo(userId)
|
|
|
+ .then(() => {
|
|
|
+ // API 调用成功后,打开弹窗
|
|
|
+ this.doctorAdviceDialogVisible = true;
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.error("打开医生建议弹窗过程中发生错误:", error);
|
|
|
+ });
|
|
|
+ },
|
|
|
/** 患者信息采集详情页面 */
|
|
|
openCollectionInfo() {
|
|
|
if (!this.form.userId) {
|