فهرست منبع

电子病历规则

DESKTOP-0GD05B0\Administrator 2 سال پیش
والد
کامیت
9d0e9fb2c9

+ 16 - 0
src/api/zhu-yuan-yi-sheng/emr-control-rule.js

@@ -39,3 +39,19 @@ export function switchQualityControl(id, offOn) {
     })
 }
 
+export function deleteRuleById(id) {
+    return request({
+        url: url + '/deleteRuleById',
+        method: 'get',
+        params: {id}
+    })
+}
+
+export function modifyQualityControl(data) {
+    return request({
+        url: url + '/modifyQualityControl',
+        method: 'post',
+        data
+    })
+}
+

+ 53 - 91
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/EmrControlRule.vue

@@ -17,7 +17,8 @@
     <el-table-column label="操作">
       <template #default="{row}">
         <el-button type="danger" @click="deleteQualityControl(row.id)">删除</el-button>
-        <el-button type="warning">修改</el-button>
+        <el-button type="warning" @click="clickModifyButton(row)">修改</el-button>
+        <el-button type="primary" @click="newlyAdded">新增</el-button>
       </template>
     </el-table-column>
   </xc-table>
@@ -49,25 +50,12 @@
         <el-tree-select
             style="width: 100%"
             class="tree-select"
-            v-model="value"
+            v-model="ruleForm.medicalRecordCode"
             :data="emrTree"
-            @clear=""
-            @remove-tag="removeTag"
             multiple
-            @node-click="nodeClick"
             :props="defaultProps"
             check-strictly
             :render-after-expand="false">
-          <template #default="{data}">
-            <div style="display: flex;justify-content: space-between;align-items: center">
-              <div>
-                {{ data.name }}
-              </div>
-              <div v-if="data.children && data.children.length > 0">
-                <el-button text @click.stop="selectAll(data.children)">全选</el-button>
-              </div>
-            </div>
-          </template>
         </el-tree-select>
       </el-form-item>
 
@@ -87,9 +75,11 @@
     </el-form>
 
     <template #footer>
-      <el-button>取消</el-button>
-      <el-button @click="confirm">确认</el-button>
+      <el-button @click="cancel">取消</el-button>
+      <el-button v-if="ruleForm.id == null" @click="confirm">确认</el-button>
+      <el-button v-else @click="modify">修改</el-button>
     </template>
+
   </xc-dialog-v2>
 
 </template>
@@ -98,6 +88,7 @@
 import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
 import {nextTick, onMounted, Ref, ref} from "vue";
 import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
+
 import {
   getEmrTree,
 } from "@/api/zhu-yuan-yi-sheng/emr-patient";
@@ -105,7 +96,9 @@ import {
   addRule,
   getAvailableObjects,
   getRuleList,
-  switchQualityControl
+  switchQualityControl,
+  deleteRuleById,
+  modifyQualityControl
 } from '@/api/zhu-yuan-yi-sheng/emr-control-rule'
 import {ElMessageBox} from "element-plus";
 
@@ -117,18 +110,13 @@ const ruleDataElement: Ref<Array<any>> = ref([])
 const defaultProps = {
   children: 'children',
   label: 'name',
-  value: '_id',
-  disabled: (data) => {
-    return data.children && data.children.length > 0;
-  }
+  value: 'code',
 }
 
 interface ruleFormClass {
-  medicalRecord: Map<string, any>,
-  // 病历编码
+  id: string
   medicalRecordCode: Array<string>,
   type: number,
-  data: any,
   offOrOnRule: number
   promptStatement: string
   name: string
@@ -137,83 +125,50 @@ interface ruleFormClass {
 }
 
 const ruleForm: Ref<ruleFormClass> = ref({
+  id: null,
   type: 1,
-  medicalRecord: {},
-  medicalRecordCode: {},
-  data: {},
+  medicalRecordCode: [],
   offOrOnRule: 1,
-  promptStatement: '超过了 24 小时无法创建',
+  promptStatement: '',
   name: '',
   sql: '',
   prescription: 24
 })
 
-/**
- * 全选
- * @param list
- */
-const selectAll = (list) => {
-  list.forEach(data => {
-    ruleForm.value.medicalRecord[data._id] = {
-      code: data.code,
-      name: data.name
-    }
-    if (value.value.indexOf(data._id) === -1) {
-      value.value.push(data._id);
-    }
-  })
-}
-
-/**
- * 编码点击
- * @param data
- */
-const nodeClick = (data) => {
-  if (data.children) return
-  if (ruleForm.value.medicalRecord[data._id]) {
-    uncheck(data._id)
-  } else {
-    ruleForm.value.medicalRecord[data._id] = {
-      code: data.code,
-      name: data.name
-    }
-  }
-}
-
-/**
- * 移除标签
- * @param data
- */
-const removeTag = (data) => {
-  uncheck(data)
-}
-
-/**
- * 删除数据
- * @param value
- */
-const uncheck = (value) => {
-  delete ruleForm.value.medicalRecord[value]
-}
-
 const selectRef = ref(null)
 const selectChange = async () => {
   await nextTick()
 }
 
-const confirm = () => {
-  let temp = new Set()
-  for (let key in ruleForm.value.medicalRecord) {
-    temp.add(ruleForm.value.medicalRecord[key].code)
+const cancel = () => {
+  ruleForm.value = <ruleFormClass>{
+    id: null,
+    type: 1,
+    medicalRecordCode: [],
+    offOrOnRule: 1,
+    promptStatement: '',
+    name: '',
+    sql: '',
+    prescription: 24
   }
-  ruleForm.value.medicalRecordCode = Array.from(temp)
+  dialog.value = false
+}
+
+const confirm = () => {
   ruleForm.value.type = 1
   addRule(ruleForm.value)
-  console.log(ruleForm.value)
 }
 
-const value: Ref<Array<string>> = ref([])
+const modify = async () => {
+  await modifyQualityControl(ruleForm.value)
+  cancel()
+  await queryRule()
+}
 
+const newlyAdded = () => {
+  cancel()
+  dialog.value = true
+}
 
 const onOff = async (id, val) => {
   await switchQualityControl(id, val)
@@ -223,22 +178,29 @@ const deleteQualityControl = (val) => {
   ElMessageBox.confirm('是否要删除该质控!', '提示', {
     type: 'warning'
   }).then((res) => {
-    console.log(val)
+    deleteRuleById(val)
   }).catch((e) => {
-
   })
+
 }
 
-onMounted(() => {
-  getEmrTree('hosp').then((res) => {
-    emrTree.value = res.all[0].children
-  })
+const clickModifyButton = (val) => {
+  ruleForm.value = val
+  dialog.value = true
+}
 
+const queryRule = () => {
   getRuleList().then((res) => {
-    console.log(res)
     data.value = res
   })
+}
 
+onMounted(() => {
+  getEmrTree('hosp').then((res) => {
+    emrTree.value = res.all[0].children
+    console.log(emrTree.value)
+  })
+  queryRule()
   getAvailableObjects().then((res) => {
     ruleDataElement.value = res
     console.log(res)