|  | @@ -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>
 |