|
|
@@ -1,971 +1,980 @@
|
|
|
-
|
|
|
-<template>
|
|
|
- <div class="app-container">
|
|
|
- <el-form
|
|
|
- :model="queryParams"
|
|
|
- ref="queryForm"
|
|
|
- :inline="true"
|
|
|
- v-show="showSearch"
|
|
|
- label-width="68px"
|
|
|
- >
|
|
|
- <div class="query-box">
|
|
|
- <div class="query-box__left">
|
|
|
- <el-form-item label="" prop="yljgId">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.yljgId"
|
|
|
- placeholder="请选择医疗机构"
|
|
|
- class="defwidth"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in listMedicalMechanismArr"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- :disabled="item.state == 1 ? false : true"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="" prop="checkState">
|
|
|
- <el-select
|
|
|
- v-model="queryParams.checkState"
|
|
|
- placeholder="请选择审核状态"
|
|
|
- class="defwidth"
|
|
|
- >
|
|
|
- <el-option value="0" label="待审核"></el-option>
|
|
|
- <el-option value="1" label="审核通过"></el-option>
|
|
|
- <el-option value="2" label="审核不通过"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="" prop="preNo">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.preNo"
|
|
|
- class="defwidth"
|
|
|
- placeholder="请输入处方号"
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="" prop="name">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.name"
|
|
|
- placeholder="请输入患者姓名"
|
|
|
- class="defwidth"
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="" prop="prescriptionTime">
|
|
|
- <el-date-picker
|
|
|
- style="width:260px"
|
|
|
- clearable
|
|
|
- class="defwidth"
|
|
|
- size="small"
|
|
|
- v-model="queryParams.prescriptionTime"
|
|
|
- type="daterange"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- start-placeholder="开方开始时间"
|
|
|
- end-placeholder="开方结束时间"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="el-icon-search"
|
|
|
- size="mini"
|
|
|
- @click="handleQuery"
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
|
|
- >重置</el-button
|
|
|
- >
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="prescriptionCoreList"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- border
|
|
|
- size="mini"
|
|
|
- class="prescriptionCore"
|
|
|
- :row-class-name="tableRowClassName"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" label="序号" />
|
|
|
- <el-table-column label="处方号" align="center" prop="preNo" show-overflow-tooltip />
|
|
|
- <el-table-column label="医疗机构" align="center" prop="yijgName" show-overflow-tooltip />
|
|
|
- <el-table-column label="门诊/住院" align="center" prop="preMzZy">
|
|
|
- <template slot-scope="scope">{{scope.row.preMzZy==1?'门诊':'住院'}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="患者姓名" align="center" prop="name" />
|
|
|
- <el-table-column label="性别" align="center" prop="sex" />
|
|
|
- <el-table-column label="临床诊断" align="center" prop="symName">
|
|
|
- <template slot-scope="scope">{{scope.row.disName}}-{{scope.row.symName}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="开方医生" align="center" prop="doctor" />
|
|
|
- <el-table-column label="处方类型" align="center">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{ scope.row.type == 1 ? "中药处方" : "中药制剂" }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="开方时间"
|
|
|
- align="center"
|
|
|
- prop="prescriptionTime"
|
|
|
- show-overflow-tooltip
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="调配状态" align="center" prop="checkState">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{
|
|
|
- scope.row.checkState == 0
|
|
|
- ? "待审核"
|
|
|
- : scope.row.checkState == 1
|
|
|
- ? "审核通过"
|
|
|
- : scope.row.checkState == 2
|
|
|
- ? "审核不通过"
|
|
|
- : ""
|
|
|
- }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
- <el-table-column label="审核人" align="center" prop="checkBy" />
|
|
|
- <el-table-column label="审核时间" align="center" prop="checkTime" show-overflow-tooltip />
|
|
|
- <el-table-column label="打印次数" align="center" prop="num" />
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- label="操作"
|
|
|
- align="center"
|
|
|
- class-name="small-padding fixed-width"
|
|
|
- width="200"
|
|
|
- fixed="right"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- style="width: 40px"
|
|
|
- @click="handleUpdate(1, scope.row)"
|
|
|
- v-hasPermi="['rescription:prescriptionCore:query']"
|
|
|
- >详情</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- style="width: 40px"
|
|
|
- v-if="scope.row.checkState==0"
|
|
|
- @click="handleUpdate(2, scope.row)"
|
|
|
- v-hasPermi="['rescription:prescriptionCore:check']"
|
|
|
- >审核</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- class="printbtn"
|
|
|
- style="width: 40px"
|
|
|
- @click="consoleBtn(scope.row)"
|
|
|
- v-if="scope.row.checkState == 1"
|
|
|
- v-hasPermi="['prescription:prescriptionCore:edit']"
|
|
|
- >打印</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"
|
|
|
- />
|
|
|
-
|
|
|
- <!-- 添加或修改处方审核对话框 -->
|
|
|
- <el-dialog
|
|
|
- :title="title"
|
|
|
- :visible.sync="open"
|
|
|
- width="1280px"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <div>
|
|
|
- <div style="display: flex; align-items: center;margin-bottom:20px;">
|
|
|
- <h3>处方信息</h3>
|
|
|
- <div style="margin: 0 0 0 30px">处方号:{{detailData.preNo}}</div>
|
|
|
- </div>
|
|
|
- <div style="display: flex; align-items: center;">
|
|
|
- <h3>审核状态:</h3>
|
|
|
- <span style="color:#fff" :class="detailData.checkState==0?'yellow-btn':detailData.checkState==1?'green-btn':detailData.checkState==2?'red-btn':''">{{detailData.checkState == 0
|
|
|
- ? "待审核"
|
|
|
- : detailData.checkState == 1
|
|
|
- ? "审核通过"
|
|
|
- : detailData.checkState == 2
|
|
|
- ? "审核不通过"
|
|
|
- : ""}}</span>
|
|
|
- <h3 style="margin-left:50px">审核人:</h3>
|
|
|
- <span>{{detailData.checkBy}}</span>
|
|
|
- <h3 style="margin-left:50px">审核时间:</h3>
|
|
|
- <span>{{detailData.checkTime}}</span>
|
|
|
- </div>
|
|
|
- <el-divider></el-divider>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="24">
|
|
|
- <el-descriptions title="" :column="5">
|
|
|
- <el-descriptions-item label="患者姓名">{{
|
|
|
- detailData.name
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="性别">{{
|
|
|
- detailData.sex
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="年龄">{{
|
|
|
- detailData.age
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="科室">{{
|
|
|
- detailData.department
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="临床诊断">
|
|
|
- {{detailData.disName}}-{{detailData.symName}}
|
|
|
- </el-descriptions-item>
|
|
|
- <el-descriptions-item label="开方医生">{{
|
|
|
- detailData.doctor
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="处方类型">{{
|
|
|
- detailData.type == 1 ? "中药处方" : "中药制剂"
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="发药状态">{{ detailData.fyState == 0 ? "未发药": detailData.fyState==1?'已发药' : "取消发药" }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="煎药方式">{{
|
|
|
- detailData.oralPre && detailData.oralPre.decoctingMethod
|
|
|
- }} <span v-if="detailData.oralPre && detailData.oralPre.decoctingMethod=='浓煎'">{{detailData.oralPre && detailData.oralPre.concentration}}</span></el-descriptions-item>
|
|
|
-
|
|
|
- <!-- <el-descriptions-item
|
|
|
- label="取药方式
|
|
|
- "
|
|
|
- >{{ detailData.takingMethod }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item label="处方名">{{
|
|
|
- detailData.preName
|
|
|
- }}</el-descriptions-item> -->
|
|
|
- <el-descriptions-item label="处方金额">{{
|
|
|
- detailData.type == 1
|
|
|
- ? detailData.oralPre &&
|
|
|
- detailData.oralPre.prescriptionSum
|
|
|
- : detailData.solidPre &&
|
|
|
- detailData.solidPre.prescriptionSum
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="剂型">{{
|
|
|
- detailData.oralPre && detailData.oralPre.dosageForm
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="剂数">{{
|
|
|
- detailData.oralPre && detailData.oralPre.number
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="代煎剂数">{{
|
|
|
- detailData.oralPre && detailData.oralPre.daijianNumber
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="代煎费用">{{
|
|
|
- detailData.oralPre && detailData.oralPre.daijianCost
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="处方用法">{{
|
|
|
- detailData.oralPre && detailData.oralPre.prescriptionusage
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="服药时间">{{
|
|
|
- detailData.oralPre && detailData.oralPre.medicationTime
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="频次">{{
|
|
|
- detailData.oralPre && detailData.oralPre.frequency
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="快递单号">{{
|
|
|
- detailData.expressCode
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="收件人">{{
|
|
|
- detailData.consignee
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="收货电话">{{
|
|
|
- detailData.contactNumber
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="配送费用">{{
|
|
|
- detailData.oralPre && detailData.oralPre.distributionCost
|
|
|
- }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="总金额">{{
|
|
|
- detailData.oralPre && detailData.oralPre.prescriptionTotleSum
|
|
|
- }}</el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- <el-descriptions>
|
|
|
- <el-descriptions-item label="嘱托">{{
|
|
|
- detailData.oralPre && detailData.oralPre.entrust
|
|
|
- }}</el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- <el-descriptions>
|
|
|
- <el-descriptions-item label="收货地址">{{
|
|
|
- detailData.address
|
|
|
- }}</el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData && detailData.oralPreItemList"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" />
|
|
|
- <el-table-column label="药品名称" align="center" prop="matName" />
|
|
|
- <el-table-column
|
|
|
- label="药品规格"
|
|
|
- align="center"
|
|
|
- prop="ypggCenter"
|
|
|
- />
|
|
|
- <el-table-column label="单位" align="center" prop="matUnitName" />
|
|
|
- <el-table-column label="用法" align="center" prop="matUsageName" />
|
|
|
- <el-table-column label="剂量" align="center" prop="matDose" />
|
|
|
- <el-table-column label="零售价" align="center" prop="matXsj" />
|
|
|
- <el-table-column label="产地" align="center" prop="matOrigin" />
|
|
|
- <el-table-column
|
|
|
- label="小计"
|
|
|
- align="center"
|
|
|
- prop="subtotalMoney"
|
|
|
- />
|
|
|
- <!-- <el-table-column label="库存数量" align="center" prop="stock" /> -->
|
|
|
- </el-table>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <div style="margin-top: 20px" v-if="btnState === 2">
|
|
|
- <span>备注</span>
|
|
|
- <el-input
|
|
|
- placeholder="请输入拒绝原因"
|
|
|
- style="margin-top: 10px"
|
|
|
- v-model="remarks"
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
-
|
|
|
- <!-- <h3 style="margin: 60px 0 0 0">调配记录</h3>
|
|
|
- <el-divider></el-divider>
|
|
|
- <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
- <el-tab-pane label="抓药记录" name="first">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData.zy"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" />
|
|
|
- <el-table-column
|
|
|
- label="扫码时间"
|
|
|
- align="center"
|
|
|
- prop="createTime"
|
|
|
- />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column
|
|
|
- label="照片"
|
|
|
- align="center"
|
|
|
- prop="prescriptionFiles"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
- <img
|
|
|
- v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
- :key="index"
|
|
|
- :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
- alt=""
|
|
|
- style="width: 100px; height: 100px"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="复核记录" name="second">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData.fh"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" />
|
|
|
- <el-table-column
|
|
|
- label="扫码时间"
|
|
|
- align="center"
|
|
|
- prop="createTime"
|
|
|
- />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column
|
|
|
- label="照片"
|
|
|
- align="center"
|
|
|
- prop="prescriptionFiles"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
- <img
|
|
|
- v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
- :key="index"
|
|
|
- :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
- alt=""
|
|
|
- style="width: 100px; height: 100px"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="浸泡记录" name="third">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData.jp"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" />
|
|
|
- <el-table-column
|
|
|
- label="扫码时间"
|
|
|
- align="center"
|
|
|
- prop="createTime"
|
|
|
- />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column
|
|
|
- label="照片"
|
|
|
- align="center"
|
|
|
- prop="prescriptionFiles"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
- <img
|
|
|
- v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
- :key="index"
|
|
|
- :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
- alt=""
|
|
|
- style="width: 100px; height: 100px"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="煎煮记录" name="decoct">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData.jz"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="index" width="55" align="center" />
|
|
|
- <el-table-column
|
|
|
- label="扫码时间"
|
|
|
- align="center"
|
|
|
- prop="createTime"
|
|
|
- />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column
|
|
|
- label="照片"
|
|
|
- align="center"
|
|
|
- prop="prescriptionFiles"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
- <img
|
|
|
- v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
- :key="index"
|
|
|
- :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
- alt=""
|
|
|
- style="width: 100px; height: 100px"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="备注"
|
|
|
- align="center"
|
|
|
- prop="remarks"
|
|
|
- /> </el-table
|
|
|
- ></el-tab-pane>
|
|
|
- <el-tab-pane label="打包记录" name="pack">
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="detailData.db"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- label="扫码时间"
|
|
|
- align="center"
|
|
|
- prop="createTime"
|
|
|
- />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column
|
|
|
- label="照片"
|
|
|
- align="center"
|
|
|
- prop="prescriptionFiles"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
- <img
|
|
|
- v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
- :key="index"
|
|
|
- :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
- alt=""
|
|
|
- style="width: 100px; height: 100px"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="备注"
|
|
|
- align="center"
|
|
|
- prop="remarks"
|
|
|
- /> </el-table
|
|
|
- ></el-tab-pane>
|
|
|
- </el-tabs> -->
|
|
|
- </div>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="checkBtn(1)" v-if="btnState === 2"
|
|
|
- >通 过</el-button
|
|
|
- >
|
|
|
- <el-popover placement="top" width="160" v-model="visible">
|
|
|
- <p>不通过理由未输入,确定现在提交?</p>
|
|
|
- <div style="text-align: right; margin: 0">
|
|
|
- <el-button size="mini" type="text" @click="visible = false"
|
|
|
- >取消</el-button
|
|
|
- >
|
|
|
- <el-button type="primary" size="mini" @click="checkBtn(2)"
|
|
|
- >确定</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- <el-button
|
|
|
- slot="reference"
|
|
|
- v-if="btnState === 2"
|
|
|
- @click="remarks ? checkBtn(2) : (visible = true)"
|
|
|
- style="margin: 0 10px"
|
|
|
- >拒 绝</el-button
|
|
|
- >
|
|
|
- </el-popover>
|
|
|
-
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- <el-dialog
|
|
|
- title="打印"
|
|
|
- :visible.sync="openConsole"
|
|
|
- width="500px"
|
|
|
- append-to-body
|
|
|
- @close="closeCode"
|
|
|
- >
|
|
|
- <div id="qrcode" ref="qrcode"></div>
|
|
|
- </el-dialog> -->
|
|
|
- <el-dialog
|
|
|
- title=""
|
|
|
- :visible.sync="openConsole"
|
|
|
- width="640px"
|
|
|
- append-to-body
|
|
|
- @close="closeCode">
|
|
|
- <div id="printMe">
|
|
|
- <div style="display:flex;align-items:center;font-size:14px;position:relative;">
|
|
|
- <!-- <div style="flex:1">普通处方</div> -->
|
|
|
- <div style="flex:1;text-align:center;font-size:18px;font-weight:bold;">处方笺</div>
|
|
|
- <div id="qrcode" ref="qrcode" style="position:absolute;top:0;right:0;width:100px;height:100px;"></div>
|
|
|
- </div>
|
|
|
- <div style="display:flex;align-items:center;font-size:14px;margin-top:30px;">
|
|
|
- <div style="flex:1">门诊/住院:{{detailData.preMzZy==1?'门诊':'住院'}}</div>
|
|
|
- <div style="flex:3;text-align:right">NO:{{detailData.preNo}}</div>
|
|
|
- <div style="flex:1"></div>
|
|
|
- </div>
|
|
|
- <div style="display:flex;align-items:center;font-size:14px;margin-top:10px;">
|
|
|
- <div style="flex:2">就诊科室:{{detailData.department}}</div>
|
|
|
- <div style="flex:2;text-align:right">开方时间:{{detailData.prescriptionTime}}</div>
|
|
|
- <div style="flex:1"></div>
|
|
|
- </div>
|
|
|
- <table style="width:100%;border-collapse:collapse;margin-top:20px;line-height:32px;">
|
|
|
- <tr>
|
|
|
- <td rowspan="2" style="width:10%;border:1px solid #000;padding-left:10px;;">姓名</td>
|
|
|
- <td rowspan="2" style="width:14%;border:1px solid #000;padding-left:10px;">{{detailData.name}}</td>
|
|
|
- <td style="width:11%;border:1px solid #000;padding-left:10px;">性别</td>
|
|
|
- <td style="width:24%;border:1px solid #000;padding-left:10px;">{{detailData.sex}}</td>
|
|
|
- <td style="width:14%;border:1px solid #000;padding-left:10px;">年龄</td>
|
|
|
- <td style="width:29%;border:1px solid #000;padding-left:10px;">{{detailData.age}}</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;">电话</td>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;">{{detailData.contactNumber}}</td>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;">病历号</td>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;line-height:14px;">{{detailData.visitNo}}</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td colspan="2" style="border:1px solid #000;padding-left:10px;">联系地址</td>
|
|
|
- <td colspan="4" style="border:1px solid #000;padding-left:10px;">{{detailData.address}}</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;" colspan="2">临床诊断</td>
|
|
|
- <td style="border:1px solid #000;padding-left:10px;" colspan="4">{{detailData.disName}}-{{detailData.symName}}</td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- <div>
|
|
|
- <h2 style="font-weight:bold">RP:</h2>
|
|
|
- <div style="height:320px">
|
|
|
- <div class="flex">
|
|
|
- <div class="flex-sub" v-for="(v,i) in detailData.oralPreItemList">
|
|
|
- {{v.matName}} {{v.matDose}}g<!-- {{v.matUnitName}} -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <div class="flex totaltip">
|
|
|
- <span>
|
|
|
- <span>{{ detailData.type == 1 ? "中药处方" : "中药制剂" }}: </span>
|
|
|
- <span>{{detailData.oralPre && detailData.oralPre.number}}(代煎数:{{detailData.oralPre&&detailData.oralPre.daijianNumber}})</span>
|
|
|
- </span>
|
|
|
- <span>{{detailData.oralPre && detailData.oralPre.decoctingMethod}}</span>
|
|
|
- <span>{{detailData.oralPre && detailData.oralPre.medicationTime}}</span>
|
|
|
- <span>{{detailData.oralPre && detailData.oralPre.frequency}}</span>
|
|
|
- <!-- <span>{{detailData.oralPre && detailData.takingMethod}}</span> -->
|
|
|
- </div>
|
|
|
- <!-- <h3>贴数:</h3> -->
|
|
|
- <table style="width:100%;border-collapse:collapse;margin-top:10px;line-height:32px;">
|
|
|
- <tr>
|
|
|
- <td colspan="2" style="width:12%;border:1px solid #000;text-align:center;">开方医生</td>
|
|
|
- <td colspan="3" style="width:21%;border:1px solid #000;padding-left:10px;">{{detailData.doctor}}</td>
|
|
|
- <td colspan="3" style="width:21%;border:1px solid #000;padding-left:10px;">药品金额及收收讫章</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="width:10%;border:1px solid #000;padding-left:10px;;">审核</td>
|
|
|
- <td style="width:15%;border:1px solid #000;padding-left:10px;;">{{detailData.checkBy}}</td>
|
|
|
- <td style="width:10%;border:1px solid #000;padding-left:10px;;">调配</td>
|
|
|
- <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
- <td style="width:10%;border:1px solid #000;padding-left:10px;;">核对</td>
|
|
|
- <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
- <td style="width:10%;border:1px solid #000;padding-left:10px;;">发药</td>
|
|
|
- <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
- </tr>
|
|
|
- </table>
|
|
|
- <div style="line-height:24px;">
|
|
|
- <p style="margin:10px 0 0;">注:1、本处方2日内有效</p>
|
|
|
- <p style="margin:0">2、取药时请您当面核对药品名称、规格、数量。</p>
|
|
|
- <p style="margin:0">3、延长处方用量时间原因:慢性 其他老年病 外地。</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <span slot="footer">
|
|
|
- <el-button type="primary" v-print="'#printMe'">打印</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import {
|
|
|
- listPrescriptionCore,
|
|
|
- getPrescriptionCore,
|
|
|
- delPrescriptionCore,
|
|
|
- addPrescriptionCore,
|
|
|
- updatePrescriptionCore,
|
|
|
- exportPrescriptionCore,
|
|
|
- check,
|
|
|
- addNum,
|
|
|
-} from "@/api/prescription/prescriptionCore";
|
|
|
-
|
|
|
-import { listMedicalMechanism } from "@/api/medical/mechanism";
|
|
|
-
|
|
|
-import QRCode from "qrcodejs2";
|
|
|
-
|
|
|
-export default {
|
|
|
- name: "PrescriptionCore",
|
|
|
- data() {
|
|
|
- return {
|
|
|
- $baseUrl: this.$baseUrl,
|
|
|
- visible: false,
|
|
|
- remarks: "",
|
|
|
- btnState: 1,
|
|
|
- rowId: null,
|
|
|
- detailData: {
|
|
|
- oralPreItemList: []
|
|
|
- },
|
|
|
- activeName: "first",
|
|
|
- state: {
|
|
|
- 1: "配药",
|
|
|
- 2: "煎药",
|
|
|
- 3: "发药",
|
|
|
- 4: "配送",
|
|
|
- },
|
|
|
- openConsole: false,
|
|
|
- // 遮罩层
|
|
|
- loading: true,
|
|
|
- // 导出遮罩层
|
|
|
- exportLoading: false,
|
|
|
- // 选中数组
|
|
|
- ids: [],
|
|
|
- // 非单个禁用
|
|
|
- single: true,
|
|
|
- // 非多个禁用
|
|
|
- multiple: true,
|
|
|
- // 显示搜索条件
|
|
|
- showSearch: true,
|
|
|
- // 总条数
|
|
|
- total: 0,
|
|
|
- // 处方审核表格数据
|
|
|
- prescriptionCoreList: [],
|
|
|
- // 弹出层标题
|
|
|
- title: "",
|
|
|
- // 是否显示弹出层
|
|
|
- open: false,
|
|
|
- // 查询参数
|
|
|
- queryParams: {
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
- //state: 1,
|
|
|
- appId: null,
|
|
|
- yljgId: null,
|
|
|
- timeStamp: null,
|
|
|
- token: null,
|
|
|
- preNo: null,
|
|
|
- preName: null,
|
|
|
- name: null,
|
|
|
- sex: null,
|
|
|
- age: null,
|
|
|
- department: null,
|
|
|
- doctor: null,
|
|
|
- prescriptionTime: [],
|
|
|
- disCode: null,
|
|
|
- disName: null,
|
|
|
- symCode: null,
|
|
|
- symName: null,
|
|
|
- westernDisease: null,
|
|
|
- westernCode: null,
|
|
|
- patientContent: null,
|
|
|
- nowDesc: null,
|
|
|
- pastDesc: null,
|
|
|
- fourDiagnosis: null,
|
|
|
- physical: null,
|
|
|
- auxiliaryExam: null,
|
|
|
- premzzy: null,
|
|
|
- visitNo: null,
|
|
|
- checkState: null,
|
|
|
- remarks: null,
|
|
|
- extendedTxt: null,
|
|
|
- address: null,
|
|
|
- contactNumber: null,
|
|
|
- consignee: null,
|
|
|
- takingMethod: null,
|
|
|
- yfId: window.localStorage.getItem("pharmacyId"),
|
|
|
- },
|
|
|
- // 表单参数
|
|
|
- form: {},
|
|
|
- // 表单校验
|
|
|
- rules: {},
|
|
|
- listMedicalMechanismArr: [],
|
|
|
- };
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.getList();
|
|
|
- this.getListMedicalMechanism();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- tableRowClassName({row, rowIndex}) {
|
|
|
- if (row.checkState == 0) {
|
|
|
- return 'warning-row';
|
|
|
- }
|
|
|
- return '';
|
|
|
- },
|
|
|
- //打印
|
|
|
- consoleBtn({ id }) {
|
|
|
- this.rowId = id;
|
|
|
- this.openConsole = true;
|
|
|
- this.payOrder();
|
|
|
- addNum(id)
|
|
|
- getPrescriptionCore(id).then((response) => {
|
|
|
- // this.form = response.data;
|
|
|
- this.detailData = response.data
|
|
|
- });
|
|
|
- },
|
|
|
- payOrder() {
|
|
|
- this.innerVisible = true;
|
|
|
- // 二维码内容,一般是由后台返回的跳转链接,这里是写死的一个链接
|
|
|
- this.qrcode = `https://yaofang.hzxunmai.com/doc#/input?id=${this.rowId}`;
|
|
|
- // 使用$nextTick确保数据渲染
|
|
|
- this.$nextTick(() => {
|
|
|
- this.crateQrcode();
|
|
|
- });
|
|
|
- },
|
|
|
- // 生成二维码
|
|
|
- crateQrcode() {
|
|
|
- this.qr = new QRCode("qrcode", {
|
|
|
- width: 100,
|
|
|
- height: 100, // 高度
|
|
|
- text: this.qrcode, // 二维码内容
|
|
|
- });
|
|
|
- },
|
|
|
- // 关闭弹框,清除已经生成的二维码
|
|
|
- closeCode() {
|
|
|
- this.$refs.qrcode.innerHTML = "";
|
|
|
- },
|
|
|
- handleClick(tab, event) {
|
|
|
- //console.log(tab, event);
|
|
|
- },
|
|
|
- /** 查询处方审核列表 */
|
|
|
- getList() {
|
|
|
- this.loading = true;
|
|
|
- var form = Object.assign({}, this.queryParams)
|
|
|
- if (this.queryParams.prescriptionTime && this.queryParams.prescriptionTime.length) {
|
|
|
- form.startTime = this.queryParams.prescriptionTime[0]
|
|
|
- form.endTime = this.queryParams.prescriptionTime[1]
|
|
|
- } else {
|
|
|
- form.startTime = ''
|
|
|
- form.endTime = ''
|
|
|
- }
|
|
|
- delete form.prescriptionTime
|
|
|
- listPrescriptionCore(form).then((response) => {
|
|
|
- this.prescriptionCoreList = response.rows;
|
|
|
- this.total = response.total;
|
|
|
- this.loading = false;
|
|
|
- });
|
|
|
- },
|
|
|
- getListMedicalMechanism() {
|
|
|
- listMedicalMechanism().then((res) => {
|
|
|
- this.listMedicalMechanismArr = res.data;
|
|
|
- });
|
|
|
- },
|
|
|
- // 取消按钮
|
|
|
- cancel() {
|
|
|
- this.open = false;
|
|
|
- this.reset();
|
|
|
- },
|
|
|
- //审核拒绝
|
|
|
- checkBtn(num) {
|
|
|
- //console.log(num);
|
|
|
- let params = {
|
|
|
- checkState: num,
|
|
|
- id: this.rowId,
|
|
|
- remarks: this.remarks,
|
|
|
- };
|
|
|
- check(params).then((res) => {
|
|
|
- //console.log(res);
|
|
|
- if (res.code) {
|
|
|
- this.msgSuccess("修改成功");
|
|
|
- this.open = false;
|
|
|
- this.visible = false;
|
|
|
- this.getList()
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 表单重置
|
|
|
- reset() {
|
|
|
- this.form = {
|
|
|
- id: null,
|
|
|
- remarks: null,
|
|
|
- };
|
|
|
- this.remarks = null;
|
|
|
- this.resetForm("form");
|
|
|
- },
|
|
|
- /** 搜索按钮操作 */
|
|
|
- handleQuery() {
|
|
|
- this.queryParams.pageNum = 1;
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- /** 重置按钮操作 */
|
|
|
- resetQuery() {
|
|
|
- this.resetForm("queryForm");
|
|
|
- this.handleQuery();
|
|
|
- },
|
|
|
- // 多选框选中数据
|
|
|
- handleSelectionChange(selection) {
|
|
|
- this.ids = selection.map((item) => item.id);
|
|
|
- this.single = selection.length !== 1;
|
|
|
- this.multiple = !selection.length;
|
|
|
- },
|
|
|
- /** 新增按钮操作 */
|
|
|
- handleAdd() {
|
|
|
- this.reset();
|
|
|
- this.open = true;
|
|
|
- this.title = "添加处方审核";
|
|
|
- },
|
|
|
- /** 修改按钮操作 */
|
|
|
- handleUpdate(num, row) {
|
|
|
- this.reset();
|
|
|
- const id = row.id || this.ids;
|
|
|
- this.btnState = num;
|
|
|
- this.rowId = id;
|
|
|
- (this.rowId = id), (this.btnState = num);
|
|
|
- getPrescriptionCore(id).then((response) => {
|
|
|
- // this.form = response.data;
|
|
|
- this.detailData = response.data;
|
|
|
-
|
|
|
- this.open = true;
|
|
|
- this.title = "查看处方审核";
|
|
|
- //console.log(response);
|
|
|
- });
|
|
|
- },
|
|
|
- /** 提交按钮 */
|
|
|
- submitForm() {
|
|
|
- this.$refs["form"].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- if (this.form.id != null) {
|
|
|
- updatePrescriptionCore(this.form).then((response) => {
|
|
|
- this.msgSuccess("修改成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- } else {
|
|
|
- addPrescriptionCore(this.form).then((response) => {
|
|
|
- this.msgSuccess("新增成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- /** 删除按钮操作 */
|
|
|
- handleDelete(row) {
|
|
|
- const ids = row.id || this.ids;
|
|
|
- this.$confirm("确定需要删除选中数据吗?", "警告", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- })
|
|
|
- .then(function () {
|
|
|
- return delPrescriptionCore(ids);
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.getList();
|
|
|
- this.msgSuccess("删除成功");
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
- },
|
|
|
- /** 导出按钮操作 */
|
|
|
- handleExport() {
|
|
|
- const queryParams = this.queryParams;
|
|
|
- this.$confirm("是否确认导出所有处方审核数据项?", "警告", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.exportLoading = true;
|
|
|
- return exportPrescriptionCore(queryParams);
|
|
|
- })
|
|
|
- .then((response) => {
|
|
|
- this.download(response.msg);
|
|
|
- this.exportLoading = false;
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
- },
|
|
|
- },
|
|
|
-};
|
|
|
-</script>
|
|
|
-<style scoped>
|
|
|
-h3 {
|
|
|
- margin: 0;
|
|
|
-}
|
|
|
-#qrcode {
|
|
|
- width: 160px;
|
|
|
- margin: 0 auto;
|
|
|
-}
|
|
|
-.defwidth { width: 160px; }
|
|
|
-.prescriptionCore >>> .warning-row, .prescriptionCore >>> .el-table__body tr.warning-row.current-row > td, .prescriptionCore >>> .el-table__body tr.warning-row.hover-row > td {
|
|
|
- background: #E6A23C;
|
|
|
- color: #fff
|
|
|
-}
|
|
|
-.printbtn { background: #409eff; color: #fff; }
|
|
|
-.flex { display: flex; align-items: center; flex-wrap: wrap;padding:0 30px; }
|
|
|
-.flex-sub { flex: 0 0 33.333333%; margin-top: 6px; }
|
|
|
-.totaltip { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; }
|
|
|
+
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-form
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryForm"
|
|
|
+ :inline="true"
|
|
|
+ v-show="showSearch"
|
|
|
+ label-width="68px"
|
|
|
+ >
|
|
|
+ <div class="query-box">
|
|
|
+ <div class="query-box__left">
|
|
|
+ <el-form-item label="" prop="yljgId">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.yljgId"
|
|
|
+ placeholder="请选择医疗机构"
|
|
|
+ class="defwidth"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in listMedicalMechanismArr"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :disabled="item.state == 1 ? false : true"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="" prop="checkState">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.checkState"
|
|
|
+ placeholder="请选择审核状态"
|
|
|
+ class="defwidth"
|
|
|
+ >
|
|
|
+ <el-option value="0" label="待审核"></el-option>
|
|
|
+ <el-option value="1" label="审核通过"></el-option>
|
|
|
+ <el-option value="2" label="审核不通过"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="" prop="preNo">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.preNo"
|
|
|
+ class="defwidth"
|
|
|
+ placeholder="请输入处方号"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.name"
|
|
|
+ placeholder="请输入患者姓名"
|
|
|
+ class="defwidth"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="" prop="prescriptionTime">
|
|
|
+ <el-date-picker
|
|
|
+ style="width:260px"
|
|
|
+ clearable
|
|
|
+ class="defwidth"
|
|
|
+ size="small"
|
|
|
+ v-model="queryParams.prescriptionTime"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ start-placeholder="开方开始时间"
|
|
|
+ end-placeholder="开方结束时间"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-search"
|
|
|
+ size="mini"
|
|
|
+ @click="handleQuery"
|
|
|
+ >搜索</el-button
|
|
|
+ >
|
|
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
|
|
+ >重置</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="prescriptionCoreList"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ border
|
|
|
+ size="mini"
|
|
|
+ class="prescriptionCore"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" label="序号" />
|
|
|
+ <el-table-column label="处方号" align="center" prop="preNo" show-overflow-tooltip />
|
|
|
+ <el-table-column label="医疗机构" align="center" prop="yijgName" show-overflow-tooltip />
|
|
|
+ <el-table-column label="门诊/住院" align="center" prop="preMzZy">
|
|
|
+ <template slot-scope="scope">{{scope.row.preMzZy==1?'门诊':'住院'}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="患者姓名" align="center" prop="name" />
|
|
|
+ <el-table-column label="性别" align="center" prop="sex" />
|
|
|
+ <el-table-column label="临床诊断" align="center" prop="symName">
|
|
|
+ <template slot-scope="scope">{{scope.row.disName}}-{{scope.row.symName}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="开方医生" align="center" prop="doctor" />
|
|
|
+ <el-table-column label="处方类型" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.type == 1 ? "中药处方" : "中药制剂" }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="开方时间"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionTime"
|
|
|
+ show-overflow-tooltip
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="调配状态" align="center" prop="checkState">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.checkState == 0
|
|
|
+ ? "待审核"
|
|
|
+ : scope.row.checkState == 1
|
|
|
+ ? "审核通过"
|
|
|
+ : scope.row.checkState == 2
|
|
|
+ ? "审核不通过"
|
|
|
+ : ""
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
+ <el-table-column label="审核人" align="center" prop="checkBy" />
|
|
|
+ <el-table-column label="审核时间" align="center" prop="checkTime" show-overflow-tooltip />
|
|
|
+ <el-table-column label="打印次数" align="center" prop="num" />
|
|
|
+
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ align="center"
|
|
|
+ class-name="small-padding fixed-width"
|
|
|
+ width="200"
|
|
|
+ fixed="right"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ style="width: 40px"
|
|
|
+ @click="handleUpdate(1, scope.row)"
|
|
|
+ v-hasPermi="['rescription:prescriptionCore:query']"
|
|
|
+ >详情</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ style="width: 40px"
|
|
|
+ v-if="scope.row.checkState==0"
|
|
|
+ @click="handleUpdate(2, scope.row)"
|
|
|
+ v-hasPermi="['rescription:prescriptionCore:check']"
|
|
|
+ >审核</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ style="width: 40px"
|
|
|
+ v-if="scope.row.checkState==1"
|
|
|
+ @click="handleUpdate(2, scope.row)"
|
|
|
+ v-hasPermi="['rescription:prescriptionCore:check']"
|
|
|
+ >释放</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ class="printbtn"
|
|
|
+ style="width: 40px"
|
|
|
+ @click="consoleBtn(scope.row)"
|
|
|
+ v-if="scope.row.checkState == 1"
|
|
|
+ v-hasPermi="['prescription:prescriptionCore:edit']"
|
|
|
+ >打印</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"
|
|
|
+ />
|
|
|
+
|
|
|
+ <!-- 添加或修改处方审核对话框 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ :visible.sync="open"
|
|
|
+ width="1280px"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <div style="display: flex; align-items: center;margin-bottom:20px;">
|
|
|
+ <h3>处方信息</h3>
|
|
|
+ <div style="margin: 0 0 0 30px">处方号:{{detailData.preNo}}</div>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center;">
|
|
|
+ <h3>审核状态:</h3>
|
|
|
+ <span style="color:#fff" :class="detailData.checkState==0?'yellow-btn':detailData.checkState==1?'green-btn':detailData.checkState==2?'red-btn':''">{{detailData.checkState == 0
|
|
|
+ ? "待审核"
|
|
|
+ : detailData.checkState == 1
|
|
|
+ ? "审核通过"
|
|
|
+ : detailData.checkState == 2
|
|
|
+ ? "审核不通过"
|
|
|
+ : ""}}</span>
|
|
|
+ <h3 style="margin-left:50px">审核人:</h3>
|
|
|
+ <span>{{detailData.checkBy}}</span>
|
|
|
+ <h3 style="margin-left:50px">审核时间:</h3>
|
|
|
+ <span>{{detailData.checkTime}}</span>
|
|
|
+ </div>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-descriptions title="" :column="5">
|
|
|
+ <el-descriptions-item label="患者姓名">{{
|
|
|
+ detailData.name
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="性别">{{
|
|
|
+ detailData.sex
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="年龄">{{
|
|
|
+ detailData.age
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="科室">{{
|
|
|
+ detailData.department
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="临床诊断">
|
|
|
+ {{detailData.disName}}-{{detailData.symName}}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="开方医生">{{
|
|
|
+ detailData.doctor
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="处方类型">{{
|
|
|
+ detailData.type == 1 ? "中药处方" : "中药制剂"
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="发药状态">{{ detailData.fyState == 0 ? "未发药": detailData.fyState==1?'已发药' : "取消发药" }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="煎药方式">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.decoctingMethod
|
|
|
+ }} <span v-if="detailData.oralPre && detailData.oralPre.decoctingMethod=='浓煎'">{{detailData.oralPre && detailData.oralPre.concentration}}</span></el-descriptions-item>
|
|
|
+
|
|
|
+ <!-- <el-descriptions-item
|
|
|
+ label="取药方式
|
|
|
+ "
|
|
|
+ >{{ detailData.takingMethod }}</el-descriptions-item
|
|
|
+ >
|
|
|
+ <el-descriptions-item label="处方名">{{
|
|
|
+ detailData.preName
|
|
|
+ }}</el-descriptions-item> -->
|
|
|
+ <el-descriptions-item label="处方金额">{{
|
|
|
+ detailData.type == 1
|
|
|
+ ? detailData.oralPre &&
|
|
|
+ detailData.oralPre.prescriptionSum
|
|
|
+ : detailData.solidPre &&
|
|
|
+ detailData.solidPre.prescriptionSum
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="剂型">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.dosageForm
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="剂数">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.number
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="代煎剂数">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.daijianNumber
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="代煎费用">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.daijianCost
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="处方用法">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.prescriptionusage
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="服药时间">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.medicationTime
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="频次">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.frequency
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="快递单号">{{
|
|
|
+ detailData.expressCode
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="收件人">{{
|
|
|
+ detailData.consignee
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="收货电话">{{
|
|
|
+ detailData.contactNumber
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="配送费用">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.distributionCost
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="总金额">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.prescriptionTotleSum
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ <el-descriptions>
|
|
|
+ <el-descriptions-item label="嘱托">{{
|
|
|
+ detailData.oralPre && detailData.oralPre.entrust
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ <el-descriptions>
|
|
|
+ <el-descriptions-item label="收货地址">{{
|
|
|
+ detailData.address
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData && detailData.oralPreItemList"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" />
|
|
|
+ <el-table-column label="药品名称" align="center" prop="matName" />
|
|
|
+ <el-table-column
|
|
|
+ label="药品规格"
|
|
|
+ align="center"
|
|
|
+ prop="ypggCenter"
|
|
|
+ />
|
|
|
+ <el-table-column label="单位" align="center" prop="matUnitName" />
|
|
|
+ <el-table-column label="用法" align="center" prop="matUsageName" />
|
|
|
+ <el-table-column label="剂量" align="center" prop="matDose" />
|
|
|
+ <el-table-column label="零售价" align="center" prop="matXsj" />
|
|
|
+ <el-table-column label="产地" align="center" prop="matOrigin" />
|
|
|
+ <el-table-column
|
|
|
+ label="小计"
|
|
|
+ align="center"
|
|
|
+ prop="subtotalMoney"
|
|
|
+ />
|
|
|
+ <!-- <el-table-column label="库存数量" align="center" prop="stock" /> -->
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <div style="margin-top: 20px" v-if="btnState === 2">
|
|
|
+ <span>备注</span>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入拒绝原因"
|
|
|
+ style="margin-top: 10px"
|
|
|
+ v-model="remarks"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- <h3 style="margin: 60px 0 0 0">调配记录</h3>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
+ <el-tab-pane label="抓药记录" name="first">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData.zy"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="扫码时间"
|
|
|
+ align="center"
|
|
|
+ prop="createTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
+ <el-table-column
|
|
|
+ label="照片"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionFiles"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
+ <img
|
|
|
+ v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
+ :key="index"
|
|
|
+ :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
+ alt=""
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="复核记录" name="second">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData.fh"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="扫码时间"
|
|
|
+ align="center"
|
|
|
+ prop="createTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
+ <el-table-column
|
|
|
+ label="照片"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionFiles"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
+ <img
|
|
|
+ v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
+ :key="index"
|
|
|
+ :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
+ alt=""
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="浸泡记录" name="third">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData.jp"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="扫码时间"
|
|
|
+ align="center"
|
|
|
+ prop="createTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
+ <el-table-column
|
|
|
+ label="照片"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionFiles"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
+ <img
|
|
|
+ v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
+ :key="index"
|
|
|
+ :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
+ alt=""
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="备注" align="center" prop="remarks" />
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="煎煮记录" name="decoct">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData.jz"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" width="55" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="扫码时间"
|
|
|
+ align="center"
|
|
|
+ prop="createTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
+ <el-table-column
|
|
|
+ label="照片"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionFiles"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
+ <img
|
|
|
+ v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
+ :key="index"
|
|
|
+ :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
+ alt=""
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="备注"
|
|
|
+ align="center"
|
|
|
+ prop="remarks"
|
|
|
+ /> </el-table
|
|
|
+ ></el-tab-pane>
|
|
|
+ <el-tab-pane label="打包记录" name="pack">
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="detailData.db"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ label="扫码时间"
|
|
|
+ align="center"
|
|
|
+ prop="createTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
+ <el-table-column
|
|
|
+ label="照片"
|
|
|
+ align="center"
|
|
|
+ prop="prescriptionFiles"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-show="scope.row.prescriptionFiles.length > 0">
|
|
|
+ <img
|
|
|
+ v-for="(item, index) in scope.row.prescriptionFiles"
|
|
|
+ :key="index"
|
|
|
+ :src="$baseUrl+'/image/uploadPath/'+item.url.substr(33)"
|
|
|
+ alt=""
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="备注"
|
|
|
+ align="center"
|
|
|
+ prop="remarks"
|
|
|
+ /> </el-table
|
|
|
+ ></el-tab-pane>
|
|
|
+ </el-tabs> -->
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="checkBtn(1)" v-if="btnState === 2"
|
|
|
+ >通 过</el-button
|
|
|
+ >
|
|
|
+ <el-popover placement="top" width="160" v-model="visible">
|
|
|
+ <p>不通过理由未输入,确定现在提交?</p>
|
|
|
+ <div style="text-align: right; margin: 0">
|
|
|
+ <el-button size="mini" type="text" @click="visible = false"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" size="mini" @click="checkBtn(2)"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ slot="reference"
|
|
|
+ v-if="btnState === 2"
|
|
|
+ @click="remarks ? checkBtn(2) : (visible = true)"
|
|
|
+ style="margin: 0 10px"
|
|
|
+ >拒 绝</el-button
|
|
|
+ >
|
|
|
+ </el-popover>
|
|
|
+
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- <el-dialog
|
|
|
+ title="打印"
|
|
|
+ :visible.sync="openConsole"
|
|
|
+ width="500px"
|
|
|
+ append-to-body
|
|
|
+ @close="closeCode"
|
|
|
+ >
|
|
|
+ <div id="qrcode" ref="qrcode"></div>
|
|
|
+ </el-dialog> -->
|
|
|
+ <el-dialog
|
|
|
+ title=""
|
|
|
+ :visible.sync="openConsole"
|
|
|
+ width="640px"
|
|
|
+ append-to-body
|
|
|
+ @close="closeCode">
|
|
|
+ <div id="printMe">
|
|
|
+ <div style="display:flex;align-items:center;font-size:14px;position:relative;">
|
|
|
+ <!-- <div style="flex:1">普通处方</div> -->
|
|
|
+ <div style="flex:1;text-align:center;font-size:18px;font-weight:bold;">处方笺</div>
|
|
|
+ <div id="qrcode" ref="qrcode" style="position:absolute;top:0;right:0;width:100px;height:100px;"></div>
|
|
|
+ </div>
|
|
|
+ <div style="display:flex;align-items:center;font-size:14px;margin-top:30px;">
|
|
|
+ <div style="flex:1">门诊/住院:{{detailData.preMzZy==1?'门诊':'住院'}}</div>
|
|
|
+ <div style="flex:3;text-align:right">NO:{{detailData.preNo}}</div>
|
|
|
+ <div style="flex:1"></div>
|
|
|
+ </div>
|
|
|
+ <div style="display:flex;align-items:center;font-size:14px;margin-top:10px;">
|
|
|
+ <div style="flex:2">就诊科室:{{detailData.department}}</div>
|
|
|
+ <div style="flex:2;text-align:right">开方时间:{{detailData.prescriptionTime}}</div>
|
|
|
+ <div style="flex:1"></div>
|
|
|
+ </div>
|
|
|
+ <table style="width:100%;border-collapse:collapse;margin-top:20px;line-height:32px;">
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2" style="width:10%;border:1px solid #000;padding-left:10px;;">姓名</td>
|
|
|
+ <td rowspan="2" style="width:14%;border:1px solid #000;padding-left:10px;">{{detailData.name}}</td>
|
|
|
+ <td style="width:11%;border:1px solid #000;padding-left:10px;">性别</td>
|
|
|
+ <td style="width:24%;border:1px solid #000;padding-left:10px;">{{detailData.sex}}</td>
|
|
|
+ <td style="width:14%;border:1px solid #000;padding-left:10px;">年龄</td>
|
|
|
+ <td style="width:29%;border:1px solid #000;padding-left:10px;">{{detailData.age}}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;">电话</td>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;">{{detailData.contactNumber}}</td>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;">病历号</td>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;line-height:14px;">{{detailData.visitNo}}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2" style="border:1px solid #000;padding-left:10px;">联系地址</td>
|
|
|
+ <td colspan="4" style="border:1px solid #000;padding-left:10px;">{{detailData.address}}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;" colspan="2">临床诊断</td>
|
|
|
+ <td style="border:1px solid #000;padding-left:10px;" colspan="4">{{detailData.disName}}-{{detailData.symName}}</td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ <div>
|
|
|
+ <h2 style="font-weight:bold">RP:</h2>
|
|
|
+ <div style="height:320px">
|
|
|
+ <div class="flex">
|
|
|
+ <div class="flex-sub" v-for="(v,i) in detailData.oralPreItemList">
|
|
|
+ {{v.matName}} {{v.matDose}}g<!-- {{v.matUnitName}} -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="flex totaltip">
|
|
|
+ <span>
|
|
|
+ <span>{{ detailData.type == 1 ? "中药处方" : "中药制剂" }}: </span>
|
|
|
+ <span>{{detailData.oralPre && detailData.oralPre.number}}(代煎数:{{detailData.oralPre&&detailData.oralPre.daijianNumber}})</span>
|
|
|
+ </span>
|
|
|
+ <span>{{detailData.oralPre && detailData.oralPre.decoctingMethod}}</span>
|
|
|
+ <span>{{detailData.oralPre && detailData.oralPre.medicationTime}}</span>
|
|
|
+ <span>{{detailData.oralPre && detailData.oralPre.frequency}}</span>
|
|
|
+ <!-- <span>{{detailData.oralPre && detailData.takingMethod}}</span> -->
|
|
|
+ </div>
|
|
|
+ <!-- <h3>贴数:</h3> -->
|
|
|
+ <table style="width:100%;border-collapse:collapse;margin-top:10px;line-height:32px;">
|
|
|
+ <tr>
|
|
|
+ <td colspan="2" style="width:12%;border:1px solid #000;text-align:center;">开方医生</td>
|
|
|
+ <td colspan="3" style="width:21%;border:1px solid #000;padding-left:10px;">{{detailData.doctor}}</td>
|
|
|
+ <td colspan="3" style="width:21%;border:1px solid #000;padding-left:10px;">药品金额及收收讫章</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="width:10%;border:1px solid #000;padding-left:10px;;">审核</td>
|
|
|
+ <td style="width:15%;border:1px solid #000;padding-left:10px;;">{{detailData.checkBy}}</td>
|
|
|
+ <td style="width:10%;border:1px solid #000;padding-left:10px;;">调配</td>
|
|
|
+ <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
+ <td style="width:10%;border:1px solid #000;padding-left:10px;;">核对</td>
|
|
|
+ <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
+ <td style="width:10%;border:1px solid #000;padding-left:10px;;">发药</td>
|
|
|
+ <td style="width:15%;border:1px solid #000;padding-left:10px;;"></td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ <div style="line-height:24px;">
|
|
|
+ <p style="margin:10px 0 0;">注:1、本处方2日内有效</p>
|
|
|
+ <p style="margin:0">2、取药时请您当面核对药品名称、规格、数量。</p>
|
|
|
+ <p style="margin:0">3、延长处方用量时间原因:慢性 其他老年病 外地。</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span slot="footer">
|
|
|
+ <el-button type="primary" v-print="'#printMe'">打印</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import {
|
|
|
+ listPrescriptionCore,
|
|
|
+ getPrescriptionCore,
|
|
|
+ delPrescriptionCore,
|
|
|
+ addPrescriptionCore,
|
|
|
+ updatePrescriptionCore,
|
|
|
+ exportPrescriptionCore,
|
|
|
+ check,
|
|
|
+ addNum,
|
|
|
+} from "@/api/prescription/prescriptionCore";
|
|
|
+
|
|
|
+import { listMedicalMechanism } from "@/api/medical/mechanism";
|
|
|
+
|
|
|
+import QRCode from "qrcodejs2";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "PrescriptionCore",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ $baseUrl: this.$baseUrl,
|
|
|
+ visible: false,
|
|
|
+ remarks: "",
|
|
|
+ btnState: 1,
|
|
|
+ rowId: null,
|
|
|
+ detailData: {
|
|
|
+ oralPreItemList: []
|
|
|
+ },
|
|
|
+ activeName: "first",
|
|
|
+ state: {
|
|
|
+ 1: "配药",
|
|
|
+ 2: "煎药",
|
|
|
+ 3: "发药",
|
|
|
+ 4: "配送",
|
|
|
+ },
|
|
|
+ openConsole: false,
|
|
|
+ // 遮罩层
|
|
|
+ loading: true,
|
|
|
+ // 导出遮罩层
|
|
|
+ exportLoading: false,
|
|
|
+ // 选中数组
|
|
|
+ ids: [],
|
|
|
+ // 非单个禁用
|
|
|
+ single: true,
|
|
|
+ // 非多个禁用
|
|
|
+ multiple: true,
|
|
|
+ // 显示搜索条件
|
|
|
+ showSearch: true,
|
|
|
+ // 总条数
|
|
|
+ total: 0,
|
|
|
+ // 处方审核表格数据
|
|
|
+ prescriptionCoreList: [],
|
|
|
+ // 弹出层标题
|
|
|
+ title: "",
|
|
|
+ // 是否显示弹出层
|
|
|
+ open: false,
|
|
|
+ // 查询参数
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ //state: 1,
|
|
|
+ appId: null,
|
|
|
+ yljgId: null,
|
|
|
+ timeStamp: null,
|
|
|
+ token: null,
|
|
|
+ preNo: null,
|
|
|
+ preName: null,
|
|
|
+ name: null,
|
|
|
+ sex: null,
|
|
|
+ age: null,
|
|
|
+ department: null,
|
|
|
+ doctor: null,
|
|
|
+ prescriptionTime: [],
|
|
|
+ disCode: null,
|
|
|
+ disName: null,
|
|
|
+ symCode: null,
|
|
|
+ symName: null,
|
|
|
+ westernDisease: null,
|
|
|
+ westernCode: null,
|
|
|
+ patientContent: null,
|
|
|
+ nowDesc: null,
|
|
|
+ pastDesc: null,
|
|
|
+ fourDiagnosis: null,
|
|
|
+ physical: null,
|
|
|
+ auxiliaryExam: null,
|
|
|
+ premzzy: null,
|
|
|
+ visitNo: null,
|
|
|
+ checkState: null,
|
|
|
+ remarks: null,
|
|
|
+ extendedTxt: null,
|
|
|
+ address: null,
|
|
|
+ contactNumber: null,
|
|
|
+ consignee: null,
|
|
|
+ takingMethod: null,
|
|
|
+ yfId: window.localStorage.getItem("pharmacyId"),
|
|
|
+ },
|
|
|
+ // 表单参数
|
|
|
+ form: {},
|
|
|
+ // 表单校验
|
|
|
+ rules: {},
|
|
|
+ listMedicalMechanismArr: [],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList();
|
|
|
+ this.getListMedicalMechanism();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ tableRowClassName({row, rowIndex}) {
|
|
|
+ if (row.checkState == 0) {
|
|
|
+ return 'warning-row';
|
|
|
+ }
|
|
|
+ return '';
|
|
|
+ },
|
|
|
+ //打印
|
|
|
+ consoleBtn({ id }) {
|
|
|
+ this.rowId = id;
|
|
|
+ this.openConsole = true;
|
|
|
+ this.payOrder();
|
|
|
+ addNum(id)
|
|
|
+ getPrescriptionCore(id).then((response) => {
|
|
|
+ // this.form = response.data;
|
|
|
+ this.detailData = response.data
|
|
|
+ });
|
|
|
+ },
|
|
|
+ payOrder() {
|
|
|
+ this.innerVisible = true;
|
|
|
+ // 二维码内容,一般是由后台返回的跳转链接,这里是写死的一个链接
|
|
|
+ this.qrcode = `https://yaofang.hzxunmai.com/doc#/input?id=${this.rowId}`;
|
|
|
+ // 使用$nextTick确保数据渲染
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.crateQrcode();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 生成二维码
|
|
|
+ crateQrcode() {
|
|
|
+ this.qr = new QRCode("qrcode", {
|
|
|
+ width: 100,
|
|
|
+ height: 100, // 高度
|
|
|
+ text: this.qrcode, // 二维码内容
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 关闭弹框,清除已经生成的二维码
|
|
|
+ closeCode() {
|
|
|
+ this.$refs.qrcode.innerHTML = "";
|
|
|
+ },
|
|
|
+ handleClick(tab, event) {
|
|
|
+ //console.log(tab, event);
|
|
|
+ },
|
|
|
+ /** 查询处方审核列表 */
|
|
|
+ getList() {
|
|
|
+ this.loading = true;
|
|
|
+ var form = Object.assign({}, this.queryParams)
|
|
|
+ if (this.queryParams.prescriptionTime && this.queryParams.prescriptionTime.length) {
|
|
|
+ form.startTime = this.queryParams.prescriptionTime[0]
|
|
|
+ form.endTime = this.queryParams.prescriptionTime[1]
|
|
|
+ } else {
|
|
|
+ form.startTime = ''
|
|
|
+ form.endTime = ''
|
|
|
+ }
|
|
|
+ delete form.prescriptionTime
|
|
|
+ listPrescriptionCore(form).then((response) => {
|
|
|
+ this.prescriptionCoreList = response.rows;
|
|
|
+ this.total = response.total;
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getListMedicalMechanism() {
|
|
|
+ listMedicalMechanism().then((res) => {
|
|
|
+ this.listMedicalMechanismArr = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 取消按钮
|
|
|
+ cancel() {
|
|
|
+ this.open = false;
|
|
|
+ this.reset();
|
|
|
+ },
|
|
|
+ //审核拒绝
|
|
|
+ checkBtn(num) {
|
|
|
+ //console.log(num);
|
|
|
+ let params = {
|
|
|
+ checkState: num,
|
|
|
+ id: this.rowId,
|
|
|
+ remarks: this.remarks,
|
|
|
+ };
|
|
|
+ check(params).then((res) => {
|
|
|
+ //console.log(res);
|
|
|
+ if (res.code) {
|
|
|
+ this.msgSuccess("修改成功");
|
|
|
+ this.open = false;
|
|
|
+ this.visible = false;
|
|
|
+ this.getList()
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 表单重置
|
|
|
+ reset() {
|
|
|
+ this.form = {
|
|
|
+ id: null,
|
|
|
+ remarks: null,
|
|
|
+ };
|
|
|
+ this.remarks = null;
|
|
|
+ this.resetForm("form");
|
|
|
+ },
|
|
|
+ /** 搜索按钮操作 */
|
|
|
+ handleQuery() {
|
|
|
+ this.queryParams.pageNum = 1;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ /** 重置按钮操作 */
|
|
|
+ resetQuery() {
|
|
|
+ this.resetForm("queryForm");
|
|
|
+ this.handleQuery();
|
|
|
+ },
|
|
|
+ // 多选框选中数据
|
|
|
+ handleSelectionChange(selection) {
|
|
|
+ this.ids = selection.map((item) => item.id);
|
|
|
+ this.single = selection.length !== 1;
|
|
|
+ this.multiple = !selection.length;
|
|
|
+ },
|
|
|
+ /** 新增按钮操作 */
|
|
|
+ handleAdd() {
|
|
|
+ this.reset();
|
|
|
+ this.open = true;
|
|
|
+ this.title = "添加处方审核";
|
|
|
+ },
|
|
|
+ /** 修改按钮操作 */
|
|
|
+ handleUpdate(num, row) {
|
|
|
+ this.reset();
|
|
|
+ const id = row.id || this.ids;
|
|
|
+ this.btnState = num;
|
|
|
+ this.rowId = id;
|
|
|
+ (this.rowId = id), (this.btnState = num);
|
|
|
+ getPrescriptionCore(id).then((response) => {
|
|
|
+ // this.form = response.data;
|
|
|
+ this.detailData = response.data;
|
|
|
+
|
|
|
+ this.open = true;
|
|
|
+ this.title = "查看处方审核";
|
|
|
+ //console.log(response);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 提交按钮 */
|
|
|
+ submitForm() {
|
|
|
+ this.$refs["form"].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.form.id != null) {
|
|
|
+ updatePrescriptionCore(this.form).then((response) => {
|
|
|
+ this.msgSuccess("修改成功");
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ addPrescriptionCore(this.form).then((response) => {
|
|
|
+ this.msgSuccess("新增成功");
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 删除按钮操作 */
|
|
|
+ handleDelete(row) {
|
|
|
+ const ids = row.id || this.ids;
|
|
|
+ this.$confirm("确定需要删除选中数据吗?", "警告", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(function () {
|
|
|
+ return delPrescriptionCore(ids);
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.getList();
|
|
|
+ this.msgSuccess("删除成功");
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ /** 导出按钮操作 */
|
|
|
+ handleExport() {
|
|
|
+ const queryParams = this.queryParams;
|
|
|
+ this.$confirm("是否确认导出所有处方审核数据项?", "警告", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.exportLoading = true;
|
|
|
+ return exportPrescriptionCore(queryParams);
|
|
|
+ })
|
|
|
+ .then((response) => {
|
|
|
+ this.download(response.msg);
|
|
|
+ this.exportLoading = false;
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style scoped>
|
|
|
+h3 {
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+#qrcode {
|
|
|
+ width: 160px;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+.defwidth { width: 160px; }
|
|
|
+.prescriptionCore >>> .warning-row, .prescriptionCore >>> .el-table__body tr.warning-row.current-row > td, .prescriptionCore >>> .el-table__body tr.warning-row.hover-row > td {
|
|
|
+ background: #E6A23C;
|
|
|
+ color: #fff
|
|
|
+}
|
|
|
+.printbtn { background: #409eff; color: #fff; }
|
|
|
+.flex { display: flex; align-items: center; flex-wrap: wrap;padding:0 30px; }
|
|
|
+.flex-sub { flex: 0 0 33.333333%; margin-top: 6px; }
|
|
|
+.totaltip { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; }
|
|
|
</style>
|