Ver código fonte

查询医嘱

lihong 2 anos atrás
pai
commit
370d115aae

+ 8 - 0
src/api/medical-advice/medical-advice-management.js

@@ -40,4 +40,12 @@ export function queryPatientInfo(patNo,ward) {
         method: 'get',
         params: {patNo, ward}
     })
+}
+
+export function queryYz(data) {
+    return request({
+        url: '/medicalAdvice/medicaManagement/queryYz',
+        method: 'post',
+        data,
+    })
 }

+ 31 - 0
src/components/medical-advice/MedicalAdviceCommonUtil.js

@@ -0,0 +1,31 @@
+import {ref} from "vue";
+import store from '@/store';
+import {listIsBlank, stringIsBlank} from "@/utils/blank-utils";
+import {getFormatDatetime} from "@/utils/date";
+
+
+
+/**
+ * 医嘱状态
+ * @param val
+ * @returns {string}
+ */
+export function getStatusFlagHtml(val) {
+    switch (val.statusFlag) {
+        case '1':
+            return `<span style="color: #05ff00">R</span>`
+        case '2':
+            return `<span style="color: #0000fb">Q</span>`
+        case '3':
+            return `<span style="color: #ff07f3">Z</span>`
+        case '4':
+            return `<span style="color: #ff07f3">Z</span>`
+        case '5':
+            return `<span style="color: red">T</span>`
+        case '-1':
+            return `<span style="color: #00ffe0">D</span>`
+    }
+}
+
+
+

+ 17 - 1
src/components/medical-advice/PatientBaseList.vue

@@ -48,7 +48,7 @@ import {computed, onMounted, ref} from "vue";
 import {getOverView} from "@/api/inpatient/patient";
 import {allWardsVisible} from "@/utils/permission";
 import {cptSex} from "@/utils/computed";
-import {cqYzPrint, lsYzPrint,queryPatientInfo} from "@/api/medical-advice/medical-advice-management";
+import {cqYzPrint, lsYzPrint,queryPatientInfo,queryYz} from "@/api/medical-advice/medical-advice-management";
 import {getAllWards} from "@/api/zhu-yuan-yi-sheng/resident-doctor";
 
 const myPatient = ref(false)
@@ -91,6 +91,22 @@ const handleClickOverview = (row) => {
       let val = {patientInfo:res.patientInfo,yzPrintVOList:res.yzPrintVOList}
       emit('selectPatientInfo',val)
     })
+  }else if(props.yzType=='cxyz'){
+    let queryData ={
+      patNo:row.inpatientNo,
+      times:row.admissTimes,
+      queryRange:'0',
+      statusFlag:'3'
+    }
+
+    queryYz(queryData).then((res) => {
+      let val = {patientInfo:res.patientInfo,
+        yzDataList:res.yzDataList,
+        queryRange:queryData.queryRange,
+        statusFlag:queryData.statusFlag
+      }
+      emit('selectPatientInfo',val)
+    })
   }
 }
 

+ 21 - 0
src/components/medical-advice/PatientInfo.vue

@@ -37,6 +37,27 @@
   <el-descriptions-item label="药占比">
     {{ props.patientInfo.yp }}
   </el-descriptions-item>
+    <el-descriptions-item v-if="stringNotBlank(props.patientInfo.criticallyIllStatus) " label="病危状态">
+      <el-tag  effect="dark" type="danger">
+        {{ props.patientInfo.criticallyIllStatus }}
+      </el-tag>
+    </el-descriptions-item>
+    <el-descriptions-item v-if="!stringNotBlank(props.patientInfo.criticallyIllStatus) " label="病危状态">
+        {{ props.patientInfo.criticallyIllStatus }}
+    </el-descriptions-item>
+    <el-descriptions-item  v-if="stringNotBlank(props.patientInfo.nursingLevel) "  label="护理级别">
+      <el-tag  effect="dark" type="success">
+      {{ props.patientInfo.nursingLevel }}
+      </el-tag>
+    </el-descriptions-item>
+    <el-descriptions-item  v-else  label="护理级别">
+      {{ props.patientInfo.nursingLevel }}
+    </el-descriptions-item>
+    <el-descriptions-item  label="手术状态">
+      <el-tag  effect="dark" type="warning">
+        {{ props.patientInfo.oprtStatus }}
+      </el-tag>
+    </el-descriptions-item>
   </el-descriptions>
 </template>
 

+ 5 - 1
src/router/modules/dashboard.js

@@ -841,7 +841,11 @@ const route = [
                 component: createNameComponent(() => import('@/views/medical-advice/advice-management/LsYzPrint.vue')),
                 meta: {title: '打印临时医嘱单'},
             },
-
+            {
+                path: 'medicaManagement/queryYz',
+                component: createNameComponent(() => import('@/views/medical-advice/advice-management/QueryYz.vue')),
+                meta: {title: '查询医嘱'},
+            },
         ],
     },
 ]

+ 168 - 0
src/views/medical-advice/advice-management/QueryYz.vue

@@ -0,0 +1,168 @@
+<template>
+    <el-container>
+        <el-aside width="280px">
+          <PatientBaseList :yzType="yzType" @selectPatientInfo="selectPatientInfo" ></PatientBaseList>
+        </el-aside>
+        <el-container>
+            <el-header style="height: 200px">
+                <PatientInfo :patientInfo="patientInfo"></PatientInfo>
+            </el-header>
+            <div style="margin-left: 15px">
+                显示范围
+                <el-select v-model="queryParam.queryRange"
+                           :clearable="wardsClearable"
+                           style="width: 110px"
+                           >
+                    <el-option v-for="item in queryRangeList"
+                               :key="item.code"
+                               :label="item.name"
+                               :value="item.code"/>
+                </el-select>
+                状态
+                <el-select v-model="queryParam.statusFlag"
+                           :clearable="wardsClearable"
+                           style="width: 110px"
+                           >
+                    <el-option v-for="item in statusFlagList"
+                               :key="item.code"
+                               :label="item.name"
+                               :value="item.code"/>
+                </el-select>
+                <el-button icon="Search" type="primary" @click="queryYzInfo">查询</el-button>
+                <div style="display: flex;float: right;margin-right: 20px">
+                    <status-color color="#05ff00" label="R:录入"/>
+                    <status-color color="#0000fb" label="Q:确认"/>
+                    <status-color color="#ff07f3" label="Z:执行"/>
+                    <status-color color="red" label="T:停止"/>
+                    <status-color color="#00ffe0" label="D:作废"/>
+                </div>
+            </div>
+            <el-main>
+            <div style="height: 82%;margin-top: 10px">
+                <el-table :data="yzDataList"  highlight-current-row stripe border show-overflow-tooltip   style="width: 100%;height: 100%">
+                    <el-table-column label="排序" type="index" width="40" />
+                    <el-table-column prop="orderGroup" label="组" width="30"/>
+                    <el-table-column prop="statusFlag" label="状态" width="40" >
+                        <template #default="scope">
+                                <span v-html="getStatusFlagHtml(scope.row)"></span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="actOrderNo" label="医嘱号" />
+                    <el-table-column prop="orderName" label="医嘱名称" min-width="180" show-overflow-tooltip />
+                    <el-table-column prop="orderName" label="剂量" width="60">
+                        <template #default="scope"> {{ scope.row.dose }} {{ scope.row.doseUnitName }}</template>
+                    </el-table-column>
+                    <el-table-column label="频率" prop="frequCode" width="100" />
+                    <el-table-column label="给药方式" prop="supplyCodeName" min-width="100"/>
+                    <el-table-column label="开始时间" prop="startTime" width="125"/>
+                    <el-table-column label="结束时间" prop="endTime" width="125"/>
+                    <el-table-column label="医保自费">
+                        <template #default="scope">
+                            <el-tag v-if="scope.row.ybSelfFlag === '1'">√</el-tag>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="是否紧急">
+                        <template #default="scope">
+                            <el-tag v-if="scope.row.emergencyFlag === '1'">√</el-tag>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="医生" prop="physicianName"/>
+                    <el-table-column label="费用标志" prop="selfBuyName"/>
+                    <el-table-column label="执行科室" prop="execUnitName" min-width="120"/>
+                    <el-table-column label="领量" prop="drugQuan">
+                        <template #default="scope"> {{ scope.row.drugQuan }} {{ scope.row.drugQuanName }}</template>
+                    </el-table-column>
+                    <el-table-column label="药房" prop="groupNoName"></el-table-column>
+                    <el-table-column label="序号" prop="serial"></el-table-column>
+                    <el-table-column label="嘱托" prop="instruction"></el-table-column>
+                </el-table>
+            </div>
+        </el-main>
+        </el-container>
+    </el-container>
+</template>
+
+<script setup name='queryYz'>
+import PatientInfo from "@/components/medical-advice/PatientInfo.vue"
+import PatientBaseList from "@/components/medical-advice/PatientBaseList.vue"
+import {
+    getSelfBuy
+} from '@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng'
+import {getStatusFlagHtml} from "@/components/medical-advice/MedicalAdviceCommonUtil"
+import {queryYz} from "@/api/medical-advice/medical-advice-management";
+import StatusColor from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/yz-header/StatusColor";
+import {onMounted} from "vue";
+import {stringNotBlank} from "@/utils/blank-utils";
+// 基本信息
+const patientInfo = ref({})
+const yzType = ref('cxyz')
+const yzDataList = ref([])
+const queryParam = ref({
+    patNo:'',
+    times:null,
+    queryRange:'0',
+    statusFlag:'3'
+})
+const queryRangeList=ref([{
+    code:'0',
+    name:'全部',
+},{
+    code:'1',
+    name:'停止',
+},{
+    code:'2',
+    name:'当前',
+},{
+    code:'3',
+    name:'今天',
+}])
+const statusFlagList=ref([{
+    code:'0',
+    name:'全部',
+},{
+    code:'1',
+    name:'录入',
+},{
+    code:'2',
+    name:'确认',
+},{
+    code:'3',
+    name:'执行',
+},{
+    code:'5',
+    name:'停止',
+}])
+
+const companyFunc = (val, company) => {
+    if (stringNotBlank(val)) {
+        return val + company
+    } else {
+        return ''
+    }
+}
+const queryYzInfo=()=>{
+    queryYz(queryParam.value).then((res) => {
+        yzDataList.value = res.yzDataList
+    })
+}
+
+const selectPatientInfo=(val)=>{
+    patientInfo.value =  val.patientInfo
+    yzDataList.value = val.yzDataList
+    queryParam.value.patNo = val.patientInfo.inpatientNo
+    queryParam.value.times = val.patientInfo.admissTimes
+    queryParam.value.queryRange = val.queryRange
+    queryParam.value.statusFlag = val.statusFlag
+}
+
+
+onMounted(() => {
+})
+</script>
+
+<style scoped>
+.status_color {
+    width: 10px;
+    height: 10px;
+}
+</style>