Browse Source

电子病历草药医嘱

DESKTOP-0GD05B0\Administrator 2 years ago
parent
commit
f788abfa4f

+ 6 - 0
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrAuxiliaryTools.vue

@@ -14,6 +14,7 @@
       <el-button @click="open(4)" text type="success" plain>会诊</el-button>
       <el-button @click="open(5)" text type="primary" plain>手术</el-button>
       <el-button @click="open(6)" text type="warning" plain>检验</el-button>
+      <el-button @click="open(7)" text type="info" plain>草药</el-button>
     </template>
   </el-popover>
   <el-drawer v-model="drawer"
@@ -46,6 +47,10 @@
                    :emr-data="props.emrData"
                    @to-fill-in-data="toFillInData"/>
     <emr-test @close="close" v-if="index === 6"/>
+    <emr-herbs v-if="index === 7"
+               @close="close"
+               :pat-no="patInfo.inpatientNo"
+               :times="patInfo.admissTimes"/>
   </el-drawer>
 
 </template>
@@ -62,6 +67,7 @@ import InspectionReportIndex from "@/views/examination/InspectionReportIndex.vue
 import EmrGroupConsultation from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrGroupConsultation.vue";
 import EmrOperation from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue";
 import EmrTest from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrTest.vue";
+import EmrHerbs from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrHerbs.vue";
 
 const props = defineProps({
   patInfo: {

+ 187 - 0
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrHerbs.vue

@@ -0,0 +1,187 @@
+<template>
+  <div style="height: 10%;display: flex">
+    <el-form inline>
+      <el-form-item>
+        <xc-date-picker style="width: 180px"
+                        type="daterange"
+                        clearable
+                        @change="caoYaoShuJu.currentPage = 1"
+                        v-model="dateRange"/>
+      </el-form-item>
+      <el-form-item>
+        <el-switch v-model="shiFouFaYao"
+                   :active-value="true"
+                   :inactive-value="false"
+                   active-color="#13ce66"
+                   active-text="已发药"
+                   inactive-color="#ff4949"
+                   inactive-text="未发药"/>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="dianJiChaXunYiZhu(0)">查询</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+  <div style="height: 90%">
+    <el-dialog v-model="xiangQing.dialog" title="草药医嘱详情">
+      <el-table :close-on-click-modal="false"
+                :data="xiangQing.data"
+                ref="tableRef"
+                :height="getWindowSize.h / 1.5"
+                highlight-current-row
+                stripe>
+        <el-table-column label="选择" type="selection"/>
+        <el-table-column label="编码" prop="chargeCode"></el-table-column>
+        <el-table-column label="名称" prop="chargeCodeName"></el-table-column>
+        <el-table-column label="药房" prop="groupNoName"></el-table-column>
+        <el-table-column label="数量" prop="quantity"></el-table-column>
+        <el-table-column label="单价" prop="unitPrice"></el-table-column>
+        <el-table-column label="说明" prop="instruction"></el-table-column>
+        <el-table-column label="包装规格" prop="serial">
+          <template #default="scope">
+            <span v-if="scope.row.serial === '01'">小包装</span>
+            <span v-else-if="scope.row.serial === '99'">小包装</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <template #footer>
+        <el-button type="danger" @click="xiangQing.dialog = false">关闭</el-button>
+        <el-button @click="copyClick" type="success">复制</el-button>
+      </template>
+    </el-dialog>
+    <el-table :data="caoYaoShuJu.data"
+              @rowClick="caoYaoYiZhuXiangQing"
+              :height="getWindowSize.h / 1.1">
+      <el-table-column label="名称" prop="orderName"></el-table-column>
+      <el-table-column label="开单时间" prop="inputDate" show-overflow-tooltip></el-table-column>
+      <el-table-column label="医生" prop="doctorCodeName"></el-table-column>
+      <el-table-column label="状态" prop="statusFlag">
+        <template #default="scope">
+          {{ getHerbsStatusFlag(scope.row.statusFlag) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="处方总额" prop="zongJia"></el-table-column>
+      <el-table-column label="剂数" prop="quantity"></el-table-column>
+      <el-table-column label="单剂金额" prop="orderJe"></el-table-column>
+      <el-table-column label="医嘱号" prop="orderNo"></el-table-column>
+      <el-table-column label="执行科室" prop="execDeptName"></el-table-column>
+      <el-table-column label="操作" width="90">
+        <template #default="scope">
+          <el-button-group>
+            <el-button type="primary" @click.stop="caoYaoYiZhuXiangQing(scope.row)" icon="View" title="查看详情"/>
+          </el-button-group>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+        :current-page="caoYaoShuJu.currentPage"
+        :page-size="caoYaoShuJu.pageSize"
+        :pager-count="7"
+        :total="caoYaoShuJu.total"
+        layout="total, prev, pager, next"
+        @current-change="handleCurrentChange"/>
+  </div>
+</template>
+
+<script setup name='EmrHerbs'>
+import XcDatePicker from "@/components/xiao-chan/date-picker/XcDatePicker.vue";
+import {ref} from "vue";
+import {getDateRangeFormatDate} from "@/utils/date";
+import {huoQuCaoYaoShuJu, huoQuChaoYaoMingXi} from "@/api/zhu-yuan-yi-sheng/cao-yao-yi-zhu";
+import {getWindowSize} from "@/utils/window-size";
+import {getHerbsStatusFlag} from "@/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/cao-yao";
+import {listIsBlank} from "@/utils/blank-utils";
+import {xcMessage} from "@/utils/xiaochan-element-plus";
+import {
+  emrCopyFunc
+} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
+
+const props = defineProps({
+  patNo: String,
+  times: Number
+})
+
+const emits = defineEmits(['close'])
+
+const dateRange = ref([])
+const caoYaoShuJu = ref({
+  data: [],
+  currentPage: 1,
+  pageSize: 20,
+  total: 0,
+})
+const shiFouFaYao = ref(true)
+
+const xiangQing = ref({
+  dialog: false,
+  data: [],
+  yizhu: {},
+})
+
+
+const dianJiChaXunYiZhu = (val) => {
+  let dateS = getDateRangeFormatDate(dateRange.value)
+  let data = {
+    startTime: dateS.startTime,
+    endTime: dateS.endTime,
+    shiFouFaYao: shiFouFaYao.value,
+    patNo: props.patNo,
+    times: props.times,
+    currentPage: caoYaoShuJu.value.currentPage,
+    pageSize: caoYaoShuJu.value.pageSize,
+    total: val,
+  }
+  huoQuCaoYaoShuJu(data).then((res) => {
+    caoYaoShuJu.value.data = res.records
+    if (val === 0) {
+      caoYaoShuJu.value.total = res.total
+    }
+  })
+}
+
+const caoYaoYiZhuXiangQing = (row) => {
+
+  huoQuChaoYaoMingXi(row.orderNo).then((res) => {
+    xiangQing.value.dialog = true
+    xiangQing.value.data = res
+    xiangQing.value.yizhu = row
+  })
+}
+
+const handleCurrentChange = (val) => {
+  caoYaoShuJu.value.currentPage = val
+  dianJiChaXunYiZhu(0)
+}
+
+const tableRef = ref(null)
+
+const copyClick = () => {
+  let temp = tableRef.value.getSelectionRows()
+  if (listIsBlank(temp)) {
+    xcMessage.error('请选择数据。')
+  } else {
+    let str = ''
+    let v = xiangQing.value.yizhu
+    let length = temp.length
+    temp.forEach((item, index) => {
+      str += item.chargeCodeName + item.quantity + 'g'
+      if (length !== index + 1) {
+        str += '  '
+      }
+    })
+    str += '。'
+    str += v.cyJssm + ',' + '日' + v.cyMtjs + '剂' + ',分' + v.cyFfcs + '次' + ',' + v.cyFysmName + '。'
+    emrCopyFunc(str)
+    emits('close')
+  }
+}
+
+onMounted(() => {
+  dianJiChaXunYiZhu(0)
+})
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 3 - 18
src/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/ChaXunChaoYaoYiZhu.vue

@@ -29,7 +29,7 @@
             <el-table-column label="医生" prop="doctorCodeName"></el-table-column>
             <el-table-column label="状态" prop="statusFlag">
               <template #default="scope">
-                {{ getStatusFlag(scope.row.statusFlag) }}
+                {{ getHerbsStatusFlag(scope.row.statusFlag) }}
               </template>
             </el-table-column>
             <el-table-column label="处方总额" prop="zongJia"></el-table-column>
@@ -91,6 +91,7 @@ import {computed, onActivated, ref, watch} from 'vue'
 import router from '@/router'
 import {ElMessageBox} from 'element-plus'
 import XinZhengCaoYao from "@/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/XinZhengCaoYao";
+import {getHerbsStatusFlag} from "@/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/cao-yao";
 
 const dateRange = ref([])
 const caoYaoShuJu = ref({
@@ -181,23 +182,7 @@ onActivated(() => {
 })
 
 
-function getStatusFlag(val) {
-  if (stringIsBlank(val)) return ''
-  switch (val) {
-    case '1':
-      return '录入'
-    case '2':
-      return '收费'
-    case '3':
-      return '提交'
-    case '4':
-      return '发药'
-    case 'd':
-      return '删除'
-    default:
-      return ''
-  }
-}
+
 </script>
 
 <style scoped>

+ 4 - 3
src/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/XinZhengCaoYao.vue

@@ -39,7 +39,9 @@
           <el-col :span="6">
             <el-form-item label="类型:">
               <el-select v-model="chuFang.cyJssm" clearable filterable size="small" style="width: 120px">
-                <el-option v-for="item in jiaShuiLeiXing" :key="item.code" :label="item.name"
+                <el-option v-for="item in jiaShuiLeiXing"
+                           :key="item.code"
+                           :label="item.name"
                            :value="item.code"></el-option>
               </el-select>
             </el-form-item>
@@ -70,8 +72,7 @@
                 <el-option v-for="item in fuYongFangFaShuJu" :key="item.code" :label="item.name" :value="item.code">
                   <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
                   <el-divider direction="vertical"></el-divider>
-                  <span>{{ item.name }}</span></el-option
-                >
+                  <span>{{ item.name }}</span></el-option>
               </el-select>
             </el-form-item>
           </el-col>

+ 19 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/cao-yao.js

@@ -0,0 +1,19 @@
+import {stringIsBlank} from "@/utils/blank-utils";
+
+export function getHerbsStatusFlag(val) {
+    if (stringIsBlank(val)) return ''
+    switch (val) {
+        case '1':
+            return '录入'
+        case '2':
+            return '收费'
+        case '3':
+            return '提交'
+        case '4':
+            return '发药'
+        case 'd':
+            return '删除'
+        default:
+            return ''
+    }
+}

+ 12 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init.js

@@ -175,6 +175,18 @@ export const emrClipBoardData = (val) => {
     }
 }
 
+export function emrCopyFunc(str){
+    let copyData = {
+        content: [{type: 'text', str}],
+        plainText: str,
+    }
+    window.localStorage.setItem(
+        "clipBoardData",
+        JSON.stringify(copyData)
+    )
+    xcMessage.success('复制成功')
+}
+
 export const fontSizes = [{
     "code": "42pt", "name": "初号"
 }, {