| 
					
				 | 
			
			
				@@ -13,20 +13,72 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <template #main> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <xc-table :data="data" @currentChange="queryChange" @sizeChange="queryChange" :height="200"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <el-table-column label="默认值"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-table-column label="操作" width="120"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <template #default="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-button type="warning" round icon="Edit" @click="openDialog(false,scope.row)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-button type="danger" round icon="Delete" @click="clickDelete(scope.row)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-tab-pane label="提取数据"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <xc-table :local-data="extractList" :height="200"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-table-column label="操作" width="90"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <template #default="{row}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-button-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <el-button type="warning" icon="Edit" @click="extractFunc.open(row)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <el-button type="danger" icon="Delete" @click="extractFunc.delete(row.emrCategoryCode)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </el-button-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-table-column prop="emrCategoryCode" label="编码"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-table-column prop="dataExtract" label="数据元" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-table-column prop="name" label="名称" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </xc-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <xc-dialog-v2 title="提取数据" v-model="extractFunc.dialog"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="电子病历编码"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input v-model="extractFunc.data.emrCategoryCode"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="需要提取的数据元"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    style="width: 540px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    v-model="extractFunc.data.dataExtractObj" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    allow-create 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    default-first-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    :reserve-keyword="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    placeholder="Choose tags for your article"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      v-for="item in extractFunc.options" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :key="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :label="item.label" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :value="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="病历名称"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input v-model="extractFunc.data.name"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template #footer> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-button @click="extractFunc.save()">保存</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <!--    <el-table-column prop="delFlag" label="删除" width="30"/>--> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-table-column prop="id" label="uuid" width="40"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-table-column prop="name" label="数据名称" width="80" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <el-table-column prop="sqlSentence" label="语句内容" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      </xc-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </xc-dialog-v2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-tab-pane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-tab-pane label="数据元"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <xc-table :data="data" @currentChange="queryChange" @sizeChange="queryChange" :height="200"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-table-column label="默认值"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-table-column label="操作" width="120"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <template #default="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <el-button type="warning" round icon="Edit" @click="openDialog(false,scope.row)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <el-button type="danger" round icon="Delete" @click="clickDelete(scope.row)"></el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <!--    <el-table-column prop="delFlag" label="删除" width="30"/>--> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-table-column prop="id" label="uuid" width="40"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-table-column prop="name" label="数据名称" width="80" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-table-column prop="sqlSentence" label="语句内容" show-overflow-tooltip/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </xc-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-tab-pane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-drawer v-model="editData.dialog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  :title="editData.title" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,13 +151,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup name='EmrDataMaintenance'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  addData, deleteById, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  addData, deleteById, deleteExtractDataSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   fetchCountryDictionary, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  getEmrInpatientData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  testSqlAPi, updateData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getEmrInpatientData, getExtractDataSource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  testSqlAPi, updateData, updateExtractDataSource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from "@/api/dictionary/emr-data-maintenance-api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import {ElMessage, ElMessageBox} from "element-plus"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import PageLayer from "@/layout/PageLayer"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import XcDialog from "@/components/xiao-chan/dialog/XcDialog.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {BizException, ExceptionEnum} from "@/utils/BizException"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let data = $ref({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   data: [], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -136,10 +191,15 @@ let returnValue = $ref({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   data: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let extractList = $ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let checkData = $ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   queryData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getExtractDataSource().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extractList = res 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,6 +328,39 @@ const close = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   editData.dialog = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   editData.passedTheTest = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const extractFunc = $ref({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dialog: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    emrCategoryCode: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dataExtract: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dataExtractObj: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  options: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  open: (row) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extractFunc.dialog = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extractFunc.data = row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extractFunc.data.dataExtractObj = JSON.parse(extractFunc.data.dataExtract) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  save: () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    extractFunc.data.dataExtract = JSON.stringify(extractFunc.data.dataExtractObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!extractFunc.data.emrCategoryCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      BizException(ExceptionEnum.MESSAGE_ERROR, '编码不能为空。') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (extractFunc.data.dataExtractObj.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      BizException(ExceptionEnum.MESSAGE_ERROR, '提取数据元不能为空。') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!extractFunc.data.name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      BizException(ExceptionEnum.MESSAGE_ERROR, '名称不能为空。') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateExtractDataSource(extractFunc.data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  delete: (code) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deleteExtractDataSource(code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style scoped> 
			 |