Browse Source

检验检查报告

xiaochan 2 months ago
parent
commit
dcbf932f8d

+ 11 - 0
src/api/dictionary/clinical-pathway/clinical-pathway.ts

@@ -34,6 +34,17 @@ export function updateTemplate(data) {
   });
 }
 
+export function deleteTemplate(id) {
+  return requestV2({
+    method: "post",
+    headers: {
+      templateId: id,
+    },
+    url: "/clinicalPathway/deleteTemplate",
+    params: { templateId: id },
+  });
+}
+
 export function createDiagnose(data) {
   return requestV2({
     method: "POST",

+ 129 - 132
src/api/zhu-yuan-yi-sheng/jian-yan-jian-cha-shen-qing.ts

@@ -1,205 +1,202 @@
 import requestV2 from "../../utils/request-v2";
 
-let url = '/jianYanJianChaShenQing/'
+let url = "/jianYanJianChaShenQing/";
 
 export function huoQuJianChaShenQing(data) {
-    return requestV2({
-        url: url + 'huoQuJianChaShenQing',
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "huoQuJianChaShenQing",
+    method: "post",
+    data,
+  });
 }
 
 export function huoQuShengQingXiangQing(reqNo) {
-    return requestV2({
-        url: url + 'huoQuShengQingXiangQing',
-        method: 'get',
-        params: {reqNo}
-    })
+  return requestV2({
+    url: url + "huoQuShengQingXiangQing",
+    method: "get",
+    params: { reqNo },
+  });
 }
 
 export function queryCheckTextResults(patNo, reqNo) {
-    return requestV2({
-        url: url + 'queryCheckTextResults',
-        method: 'get',
-        params: {patNo, reqNo}
-    })
+  return requestV2({
+    url: url + "queryCheckTextResults",
+    method: "get",
+    params: { patNo, reqNo },
+  });
 }
 
 export function huoMuShuoMingMuBan(name, fenLei, total, currentPage) {
-    return requestV2({
-        url: url + 'huoMuShuoMingMuBan',
-        method: 'get',
-        params: {name, fenLei, total, currentPage}
-    })
+  return requestV2({
+    url: url + "huoMuShuoMingMuBan",
+    method: "get",
+    params: { name, fenLei, total, currentPage },
+  });
 }
 
 export function shouMingMuBanChaoZuo(data) {
-    return requestV2({
-        url: url + 'shouMingMuBanChaoZuo',
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "shouMingMuBanChaoZuo",
+    method: "post",
+    data,
+  });
 }
 
 export function diagnosisInOurHospital(name) {
-    return requestV2({
-        url: url + 'diagnosisInOurHospital',
-        method: 'get',
-        params: {name}
-    })
+  return requestV2({
+    url: url + "diagnosisInOurHospital",
+    method: "get",
+    params: { name },
+  });
 }
 
 export function getTemplate(itemType, templateType) {
-    return requestV2({
-        url: url + 'getTemplate',
-        method: 'get',
-        params: {itemType, templateType}
-    })
+  return requestV2({
+    url: url + "getTemplate",
+    method: "get",
+    params: { itemType, templateType },
+  });
 }
 
 export function getTemplateGrouping(itemType, templateType) {
-    return requestV2({
-        url: url + 'getTemplateGrouping',
-        method: 'get',
-        params: {itemType, templateType}
-    })
+  return requestV2({
+    url: url + "getTemplateGrouping",
+    method: "get",
+    params: { itemType, templateType },
+  });
 }
 
 export function getTemplateByCodeAndType(code, type) {
-    return requestV2({
-        url: url + 'getTemplateByCodeAndType',
-        method: 'get',
-        params: {code, type}
-    })
+  return requestV2({
+    url: url + "getTemplateByCodeAndType",
+    method: "get",
+    params: { code, type },
+  });
 }
 
-
 export function shanShuJianChaMuBan(code, deptCode) {
-    return requestV2({
-        url: url + 'shanShuJianChaMuBan',
-        method: 'get',
-        params: {code, deptCode}
-    })
+  return requestV2({
+    url: url + "shanShuJianChaMuBan",
+    method: "get",
+    params: { code, deptCode },
+  });
 }
 
 export function jianChaJianYanMuBanMing(name, reqType) {
-    return requestV2({
-        url: url + 'jianChaJianYanMuBanMing',
-        method: 'get',
-        params: {name, reqType}
-    })
+  return requestV2({
+    url: url + "jianChaJianYanMuBanMing",
+    method: "get",
+    params: { name, reqType },
+  });
 }
 
 export function baoCunJianChaJianYanMuBan(data) {
-    return requestV2({
-        url: url + 'baoCunJianChaJianYanMuBan',
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "baoCunJianChaJianYanMuBan",
+    method: "post",
+    data,
+  });
 }
 
 export function baoCunJianYanJianCha(data) {
-    return requestV2({
-        url: url + 'baoCunJianYanJianCha',
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "baoCunJianYanJianCha",
+    method: "post",
+    data,
+  });
 }
 
 /* ------------------------- 下面是检验的逻辑 --------------*/
 
 export function huoQuJianYan(data) {
-    return requestV2({
-        url: url + 'huoQuJianYan',
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "huoQuJianYan",
+    method: "post",
+    data,
+  });
 }
 
 export function biaoBenApi(name) {
-    return requestV2({
-        url: url + 'biaoBenShuJu',
-        method: 'get',
-        params: {name}
-    })
+  return requestV2({
+    url: url + "biaoBenShuJu",
+    method: "get",
+    params: { name },
+  });
 }
 
-
-export function viewInspectionItemDetails(orderCode) {
-    return requestV2({
-        url: url + 'viewInspectionItemDetails',
-        method: 'get',
-        showLoading: false,
-        params: {orderCode}
-    })
+export function viewInspectionItemDetails(orderCode, isCheck) {
+  return requestV2({
+    url: url + "viewInspectionItemDetails",
+    method: "get",
+    showLoading: false,
+    params: { orderCode, isCheck },
+  });
 }
 
 export function shanChuJianChaJianYan(reqNo, patNo, times) {
-    return requestV2({
-        url: url + 'shanChuJianChaJianYan',
-        method: 'get',
-        params: {reqNo, patNo, times}
-    })
+  return requestV2({
+    url: url + "shanChuJianChaJianYan",
+    method: "get",
+    params: { reqNo, patNo, times },
+  });
 }
 
 // 获取检验检查树状图
 export function getJyJcZdTree() {
-    return requestV2({
-        url: url + 'getJyJcZdTree',
-        method: 'get',
-    })
+  return requestV2({
+    url: url + "getJyJcZdTree",
+    method: "get",
+  });
 }
 
 export function getJcItem(code) {
-    return requestV2({
-        url: url + 'getJcItem',
-        method: 'get',
-        params: {code}
-    })
+  return requestV2({
+    url: url + "getJcItem",
+    method: "get",
+    params: { code },
+  });
 }
 
 export function getJyItem(code) {
-    return requestV2({
-        url: url + 'getJyItem',
-        method: 'get',
-        params: {code}
-    })
+  return requestV2({
+    url: url + "getJyItem",
+    method: "get",
+    params: { code },
+  });
 }
 
 export function getAncillaryInformation(patNo, times) {
-    return requestV2({
-        url: url + 'getAncillaryInformation',
-        showLoading: false,
-        method: 'get',
-        timeout: 2000,
-        params: {patNo, times}
-    })
+  return requestV2({
+    url: url + "getAncillaryInformation",
+    showLoading: false,
+    method: "get",
+    timeout: 2000,
+    params: { patNo, times },
+  });
 }
 
 export function applicationOpRecord(data) {
-    return requestV2({
-        url: url + "applicationOpRecord",
-        method: 'post',
-        data
-    })
+  return requestV2({
+    url: url + "applicationOpRecord",
+    method: "post",
+    data,
+  });
 }
 
-
 export function getJcIdByPatNo(patNo) {
-    return requestV2({
-        url: url + 'getJcIdByPatNo',
-        method: 'get',
-        params: {patNo}
-    })
+  return requestV2({
+    url: url + "getJcIdByPatNo",
+    method: "get",
+    params: { patNo },
+  });
 }
 
 export function getExamineDetail(jcId) {
-    return requestV2({
-        url: url + 'getExamineDetail',
-        method: 'get',
-        params: {jcId}
-    })
+  return requestV2({
+    url: url + "getExamineDetail",
+    method: "get",
+    params: { jcId },
+  });
 }
 
 /**
@@ -212,9 +209,9 @@ export function getExamineDetail(jcId) {
  * }>}
  */
 export function getExamineIllustrate(orderCode, isCheck) {
-    return requestV2({
-        url: url + 'getExamineIllustrate',
-        method: 'get',
-        params: {orderCode, isCheck}
-    })
+  return requestV2({
+    url: url + "getExamineIllustrate",
+    method: "get",
+    params: { orderCode, isCheck },
+  });
 }

+ 19 - 27
src/views/dictionary/clinical-pathway/PathWayAside.vue

@@ -11,6 +11,7 @@ import TabsResizer from "@/components/cy/cy-el-tabs/TabsResizer.vue";
 import { CyMessageBox } from "@/utils/cy-message-box";
 import {
   copyClinicalPathway,
+  deleteTemplate,
   updateTemplate,
 } from "@/api/dictionary/clinical-pathway/clinical-pathway";
 
@@ -85,10 +86,7 @@ function contextmenu(
             message: "是否要停用此模板",
             type: "warning",
           }).then(async () => {
-            await updateTemplate({
-              id: data.id,
-              delFlag: true,
-            });
+            await deleteTemplate(data.id);
             mutation.getTreeData();
           });
         },
@@ -108,6 +106,15 @@ function tabContestMenu(event) {
     isDir: true,
   });
 }
+
+function spanStyle(value) {
+  if (value.delFlag) {
+    return "danger";
+  } else if (value.publish == true) {
+    return "success";
+  }
+  return "primary";
+}
 </script>
 
 <template>
@@ -123,6 +130,7 @@ function tabContestMenu(event) {
           <el-tree
             ref="treeRef"
             default-expand-all
+            highlight-current
             :filter-node-method="handelFilter"
             :data="store.treeData"
             @node-click="mutation.setCurrentTemplateData"
@@ -133,7 +141,13 @@ function tabContestMenu(event) {
                 <FolderOpened v-if="data?.isDir" />
                 <Document v-else />
               </el-icon>
-              {{ data.name }}
+              <el-tag
+                effect="dark"
+                :type="spanStyle(data)"
+                :disable-transitions="false"
+              >
+                {{ data.name }}
+              </el-tag>
             </template>
           </el-tree>
         </template>
@@ -141,25 +155,3 @@ function tabContestMenu(event) {
     </TabPaneResizer>
   </TabsResizer>
 </template>
-
-<style lang="scss">
-.clinical-pathway-day__aside {
-  cursor: pointer;
-
-  .clinical-pathway-day__aside--item {
-    padding: 5px;
-    line-height: 30px;
-    border-bottom: 1px solid var(--el-border-color);
-
-    &.is-activation {
-      background-color: var(--el-color-primary);
-      color: #fff;
-    }
-
-    > div {
-      display: flex;
-      justify-content: space-between;
-    }
-  }
-}
-</style>

+ 37 - 30
src/views/hospitalization/zhu-yuan-yi-sheng/clinical-pathway/components/DialogOrder.vue

@@ -10,6 +10,7 @@ import {
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import { getServerDateApi } from "@/api/public-api";
 import { insertTemplateOrder } from "@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru";
+import { VxeTableInstance } from "vxe-table";
 
 defineOptions({
   name: "DialogOrder",
@@ -56,7 +57,9 @@ const props = defineProps<{
   };
 }>();
 
-const tableMap = {};
+const tableMap: {
+  [key: string]: VxeTableInstance<any>;
+} = {};
 
 const loading = ref(true);
 
@@ -64,10 +67,6 @@ function setTableMap(key, value) {
   tableMap[`table${key}`] = value;
 }
 
-function handleTableRowClick(key: string, row: MedicationOrder) {
-  tableMap[`table${key}`].toggleRowSelection(row);
-}
-
 defineExpose<UseDialogType.Expose>({
   async confirm() {
     const orderData = [];
@@ -75,14 +74,17 @@ defineExpose<UseDialogType.Expose>({
     const now = await getServerDateApi();
 
     for (let key in tableMap) {
-      const item: MedicationOrder[] = tableMap[key].getSelectionRows();
+      const item: MedicationOrder[] = tableMap[key].getCheckboxRecords();
       item.forEach(row => {
         if (row.execUnit === null) {
           row.execUnit = huanZheXinXi.value.zkWard;
           row.execUnitName = huanZheXinXi.value.zkWardName;
         }
         if (row.type === 0) {
+          row.startTime = now;
+          row.orderTime = now;
           row.groupNo = queryParam.value.groupNo;
+          row.drugSpecification = row.specification;
           orderData.push(row);
         } else if (row.type === 1) {
           const tmp = {
@@ -139,6 +141,7 @@ onMounted(() => {
     });
 
     props.data[key].forEach(row => {
+      row.isChecked = row.workType == 0;
       tmpMap.set(row.id, id);
       row.actOrderNo = id;
       if (row.parentNo != null) {
@@ -153,41 +156,45 @@ onMounted(() => {
 
 <template>
   <div class="layout_container" v-loading="loading">
-    <template v-for="(value, key) in props.data">
+    <template v-for="(value, key) in props.data" :key="`table_${key}`">
       <div style="font-size: 24px; font-weight: bold; padding: 5px">
         {{ key }}
       </div>
-      <el-table
-        :data="value"
+      <vxe-table
         :ref="el => setTableMap(key, el)"
-        @row-click="row => handleTableRowClick(key, row)"
+        :data="value"
+        :row-config="{ keyField: 'actOrderNo' }"
+        :checkbox-config="{
+          trigger: 'row',
+          checkField: 'isChecked',
+          checkMethod: ({ row }) => {
+            return row.workType !== 0;
+          },
+        }"
+        size="mini"
       >
-        <el-table-column type="selection" width="55" />
-        <el-table-column type="index" label="排序" width="50" />
-        <el-table-column prop="orderGroup" label="组" width="40" />
-        <el-table-column prop="orderCode" label="编码" width="80" />
-        <el-table-column prop="orderName" label="名称" width="250" />
-        <el-table-column prop="specification" label="规格" width="150" />
-        <el-table-column prop="frequCode" label="频率" width="60" />
-        <el-table-column
-          prop="supplyCodeName"
-          label="给药方式/标本"
-          width="150"
-        />
-        <el-table-column label="一次剂量" width="150">
+        <vxe-column type="checkbox" width="55" />
+        <vxe-column field="seq" title="排序" width="50"></vxe-column>
+        <vxe-column field="orderGroup" title="组" width="40"></vxe-column>
+        <vxe-column field="orderCode" title="编码" width="80" />
+        <vxe-column field="orderName" title="名称" width="250" />
+        <vxe-column field="specification" title="规格" width="150" />
+        <vxe-column field="frequCode" title="频率" width="60" />
+        <vxe-column field="supplyCodeName" title="给药方式/标本" width="150" />
+        <vxe-column title="一次剂量" width="150">
           <template #default="{ row }">
             {{ row.dose }}{{ row.doseUnitName }}
           </template>
-        </el-table-column>
-        <el-table-column label="领量" width="80">
+        </vxe-column>
+        <vxe-column title="领量" width="80">
           <template #default="{ row }">
             {{ row.drugQuan }}{{ row.miniUnitName }}
           </template>
-        </el-table-column>
-        <el-table-column prop="execUnitName" label="执行科室" width="150" />
-        <el-table-column prop="execDay" label="执行天数" width="150" />
-        <el-table-column prop="typeName" label="类型" width="40" />
-      </el-table>
+        </vxe-column>
+        <vxe-column field="execUnitName" title="执行科室" width="150" />
+        <vxe-column field="execDay" title="执行天数" width="150" />
+        <vxe-column field="typeName" title="类型" width="50" />
+      </vxe-table>
     </template>
   </div>
 </template>

+ 3 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/comp/sidebar/JcJyPrompt.vue

@@ -31,6 +31,9 @@
               feeList["fee_" + item.orderCode]?.note || ""
             }}</span>
           </div>
+          <div>
+            报告时间: {{ feeList["fee_" + item.orderCode]?.timeLimit || "" }}
+          </div>
           <div>
             采集说明:{{
               feeList["fee_" + item.orderCode]?.collectionInfo || ""

+ 0 - 20
src/views/hospitalization/zhu-yuan-yi-sheng/jian-cha-jian-yan-shen-qing/JianYanShenQing.vue

@@ -71,26 +71,6 @@
                   <el-button @click="printClick(scope.row)" type="primary"
                     >打印
                   </el-button>
-                  <el-popover
-                    :width="500"
-                    trigger="click"
-                    placement="left"
-                    title="费用详情"
-                  >
-                    <template #reference>
-                      <el-button @click="viewFeeDetails(scope.row)">
-                        明细
-                      </el-button>
-                    </template>
-                    <el-table :data="feeDetailsData">
-                      <el-table-column property="orderCode" label="检查编码" />
-                      <el-table-column property="occCode" label="收费编码" />
-                      <el-table-column property="name" label="名字" />
-                      <el-table-column property="amount" label="数量" />
-                      <el-table-column property="chargeAmount" label="金额" />
-                      <el-table-column property="unitPrice" label="单价" />
-                    </el-table>
-                  </el-popover>
                   <el-button
                     type="danger"
                     @click="dianJiShanChu(scope.row, scope.$index)"

+ 3 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng.ts

@@ -477,7 +477,7 @@ export const yzData = ref<YzType[]>([]);
 
 export const jsQueryYzData = async () => {
   if (stringNotBlank(huanZheXinXi.value.inpatientNo)) {
-    yzData.value = await huoQuYiZhuShuJu({
+    const tmp = await huoQuYiZhuShuJu({
       patNo: huanZheXinXi.value.inpatientNo,
       times: huanZheXinXi.value.admissTimes,
       startTime: queryParam.value.startTime,
@@ -485,6 +485,8 @@ export const jsQueryYzData = async () => {
     }).catch(() => {
       return [];
     });
+
+    yzData.value = yzDataToTree(tmp);
   }
 };