Browse Source

项目录入中添加费用优化,电子病历质控导出添加质控人

xiaochan 2 years ago
parent
commit
2c3c16a00b

File diff suppressed because it is too large
+ 484 - 474
src/components/inpatient/XiangMuLuRu.vue


+ 17 - 3
src/components/query-components/XcPageTable.vue

@@ -1,20 +1,34 @@
 <script setup lang="ts">
-import {defineProps} from 'vue'
+import {defineProps, computed} from 'vue'
 import {componentType} from "./page-help-type";
 import {useVModels} from "@vueuse/core";
+import {ElPagination} from "element-plus";
 
 const props = defineProps<{
   testJson: componentType,
 }>()
 
 const emits = defineEmits(['update:testJson'])
+const vModels = useVModels(props, emits)
+
+const dataTemp = computed(() => {
+  let {currentPage, pageSize} = vModels.testJson.value.pageConfig
+  return vModels.testJson.value.tableConfig.data.slice(
+      (currentPage - 1) * pageSize, currentPage * pageSize
+  );
+})
 
-const {testJson} = useVModels(props, emits)
 
 </script>
 
 <template>
-  <vxe-grid v-bind="testJson.tableConfig"></vxe-grid>
+  <el-table v-bind="vModels.testJson.value.tableConfig" :data="dataTemp">
+    <el-table-column v-for="item in vModels.testJson.value.tableConfig.columns"
+                     v-bind="item">
+      <Component :is="item.render(item)" v-if="item.render"/>
+    </el-table-column>
+  </el-table>
+  <el-pagination v-bind="vModels.testJson.value.pageConfig"/>
 </template>
 
 <style scoped lang="scss">

+ 0 - 6
src/components/query-components/XcQuery.vue

@@ -136,10 +136,6 @@ function countIfTags(str) {
 
 const submit = async () => {
   await formRef.value.validate()
-  if (testJson.value.querySql) {
-    tempQuerySql = testJson.value.querySql
-    countIfTags(tempQuerySql)
-  }
 
   let queryData = {}
 
@@ -154,8 +150,6 @@ const submit = async () => {
 
   let func = new Function('', 'return ' + testJson.value.submitEvent)
   func()(queryData, testJson.value, axios)
-
-  console.log('查询条件', queryData)
   emits('submit', testJson.value.queryParam)
 }
 

+ 30 - 2
src/components/query-components/page-help-type.ts

@@ -1,5 +1,6 @@
 import {Arrayable} from "element-plus/es/utils";
 import {FormItemRule} from "element-plus/es/tokens/form";
+import {VxeGridListeners, VxeGridProps} from "vxe-table";
 
 export interface codeName {
     value: string | number
@@ -59,14 +60,41 @@ interface formConfig {
     labelSuffix?: string,
 }
 
+interface RowVO {
+    [key: string]: any
+}
+
 export interface componentType {
     header: headerType[]
-    querySql: string,
     queryParam: any,
     formConfig: formConfig,
     // 点击提交时候触发的值
     submitEvent?: string,
-    tableConfig: any
+    tableConfig: {
+        height?: number,
+        data?: any[],
+        rowKey?: string,
+        columns?: {
+            prop?: string,
+            label?: string,
+            type?: 'selection' | 'index'
+            fixed?: 'left' | 'right' | boolean,
+            showOverflowTooltip?: boolean,
+            align?: 'left' | 'center' | 'right',
+            width?: number,
+            reserveSelection?: boolean,
+            render?: Function
+        }[],
+    };
+    pageConfig: {
+        currentPage: number;
+        pageSize: number;
+        total: number,
+        layout: string
+        pageSizes: number[]
+        onSizeChange: Function,
+        pagerCount: 5
+    }
 }
 
 

+ 2 - 9
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrMain.vue

@@ -247,8 +247,6 @@
                   v-if="saveDialog.warningPrompt"/>
       </div>
 
-      <emr-connotation :category-code="categoryCode"/>
-
       <template #footer>
         <el-button @click="saveDialog.close"
                    :disabled="saveDialog.analyzeTheCourseOfTheDisease"
@@ -267,18 +265,16 @@
   </div>
 </template>
 
-<script setup name="emr">
+<script setup>
 import {getEmrInpatientData} from "@/api/dictionary/emr-data-maintenance-api";
 import EmrSidebar from "@/components/zhu-yuan-yi-sheng/emr/EmrSidebar.vue";
 import {
-  availableFonts,
   completeModeSwitch,
   copyEnum,
   delEmrCopy,
   emrConfig,
   EMRInteractive,
   emrMitt,
-  fontSizes,
   getEmrCopy
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
 import {ElMessage, ElMessageBox} from "element-plus";
@@ -298,14 +294,13 @@ import {useDocumentVisibility} from "@vueuse/core";
 import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
 import {getWardsApi} from "@/api/login";
 import {xcMessage} from "@/utils/xiaochan-element-plus";
-import EmrUnorderedList from "@/components/zhu-yuan-yi-sheng/emr/EmrUnorderedList.vue";
 import HistoricalEmr from "@/components/zhu-yuan-yi-sheng/emr/HistoricalEmr.vue";
 import EmrPopup from "@/components/zhu-yuan-yi-sheng/emr/EmrPopup.vue";
 import EmrAuxiliaryTools from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrAuxiliaryTools.vue";
 import sleep from "@/utils/sleep";
 import EmrWebSocket from "@/components/zhu-yuan-yi-sheng/emr/web-socket/EmrWebSocket.vue";
 import {stringIsBlank} from "@/utils/blank-utils";
-import {isDev, needRule} from "@/utils/public";
+import {isDev} from "@/utils/public";
 import {forcedKickingOutOfPersonnelByDocumentId, isThereADoctorEditing} from "@/api/zhu-yuan-yi-sheng/emr-socket";
 import {onDeactivated} from "vue";
 import EmrFirstPageOfMedicalRecord from "@/components/zhu-yuan-yi-sheng/emr/EmrFirstPageOfMedicalRecord.vue";
@@ -313,8 +308,6 @@ import EmrResultReturns
   from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/EmrResultReturns.vue";
 import EmrAudit
   from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/EmrAudit.vue";
-import EmrConnotation
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/EmrConnotation.vue";
 import XEUtils from 'xe-utils'
 import {
   EmrEditCreateLimit

+ 0 - 36
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/EmrConnotation.vue

@@ -1,36 +0,0 @@
-<template>
-
-</template>
-
-<script setup name='EmrConnotation'>
-import {emrMitt} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
-
-const props = defineProps({
-    categoryCode: String
-})
-
-const edit = emrMitt.emit('editor')
-
-const connotationData = ref([])
-
-const connotationApi = () => {
-    let editData = edit.getDataElements('business')
-    let str = `return {
-
-    }`
-    connotationData.value.push(str)
-}
-
-
-onMounted(() => {
-    let editData = edit.getDataElements('business')
-    console.log(editData)
-    console.log(editData['配偶健康状况']);
-})
-
-
-</script>
-
-<style scoped lang="scss">
-
-</style>

+ 2 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr_control_rule/RuleSift.vue

@@ -27,6 +27,8 @@
     <el-table-column prop="consultPhysicianName" label="主治医生"/>
     <el-table-column prop="tubeBedDoctorName" label="管床医生" width="220"/>
     <el-table-column prop="opinion" label="质控意见" show-overflow-tooltip/>
+    <el-table-column prop="approverName" label="审核人" show-overflow-tooltip/>
+
     <el-table-column label="病历" fixed="right">
       <template #default="{row}">
         <el-button type="primary" @click="toEmrClick(row)">病历</el-button>

+ 1 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/final-quality-control/FinalQualityControl.vue

@@ -159,6 +159,7 @@ onMounted(async () => {
             <el-table-column prop="allergicMedicine" label="药物过敏"/>
             <el-table-column prop="kssName" label="抗生素使用"/>
             <el-table-column prop="xjpyName" label="细菌培养送检"/>
+            <el-table-column prop="approverName" label="审核人" show-overflow-tooltip/>
             <el-table-column label="病历" fixed="right">
               <template #default="{row}">
                 <el-button type="primary" @click="toEmrClick(row)">病历</el-button>

+ 10 - 0
src/views/utilities/page-editor-help/JsEditDialog.vue

@@ -63,6 +63,16 @@ onMounted(async () => {
     overviewRulerBorder: true,
   });
 
+  // extra libraries
+  monaco.languages.typescript.javascriptDefaults.addExtraLib([
+    'declare class SomeEventType {',
+    '    /**',
+    '     * Heres the doco for someProperty',
+    '     */',
+    '    someProperty: string',
+    '}',
+  ].join('\n'), 'filename/facts.d.ts');
+
   monacoEditor.onDidChangeModelContent((val) => {
     dataVal.value = monacoEditor.getValue();
   })

+ 39 - 3
src/views/utilities/page-editor-help/PageEditorHelp.vue

@@ -25,19 +25,42 @@ const addEl = (val: headerType) => {
 
 const pageJson = ref<componentType>({
   header: [],
-  querySql: "",
   queryParam: {},
   formConfig: {
     inline: true
   },
-  submitEvent: `function func(queryData,config,axios){
+  submitEvent: `
+  /**
+  * @param {SomeEventType} queryData"
+  */
+  function func(queryData,config,axios){
 
 }`,
   tableConfig: {
-    border: true,
+    height: 200,
+    columns: [],
+    data: []
+  },
+  pageConfig: {
+    currentPage: 1,
+    pageSize: 50,
+    pageSizes: [50, 100, 150, 200],
+    small: true,
+    disabled: false,
+    background: true,
+    pagerCount: 5,
+    layout: "total,sizes, prev, pager, next, jumper",
+    total: 0,
+    onSizeChange: (val) => {
+      pageJson.value.pageConfig.pageSize = val
+    },
+    onCurrentChange: (val) => {
+      pageJson.value.pageConfig.currentPage = val
+    },
   }
 })
 
+
 const theCurrentComponent = ref(-1)
 const itemClick = (data: headerType, index) => {
   infoRef.value.editComp(data)
@@ -50,6 +73,19 @@ onMounted(() => {
   // addEl(collapseData[1].children[0])
   addEl(collapseData[1].children[1])
   addEl(collapseData[2].children[0])
+
+  pageJson.value.pageConfig.total = 200
+
+  for (let i = 0; i < pageJson.value.pageConfig.total; i++) {
+    pageJson.value.tableConfig.data.push({code: i, name: '测试' + i})
+  }
+  pageJson.value.tableConfig.columns = [
+    {type: 'index', label: '排序'},
+    {prop: 'code', label: '编码'},
+    {prop: 'name', label: '名称'}
+  ]
+
+  pageJson.value.tableConfig.rowKey = 'code'
 })
 
 </script>

+ 1 - 2
src/views/utilities/page-editor-help/PageForm.vue

@@ -1,14 +1,13 @@
 <script setup lang="ts">
 import {defineProps, ref} from 'vue'
 import {componentType} from "../../../components/query-components/page-help-type";
-import JsEditDialog from "@/views/utilities/page-editor-help/JsEditDialog.vue";
+import JsEditDialog from "./JsEditDialog.vue";
 
 const props = defineProps<{
   pageJson: componentType
 }>()
 
 const collapse = ref(['1'])
-const jsEdit = ref()
 
 const dialogConfig = ref({
   dialog: false

Some files were not shown because too many files changed in this diff