w-vue-middle
Version:
统一公共服务组件
526 lines (511 loc) • 12.3 kB
JavaScript
/*
* @Author: Jason Liu
* @Date: 2022-11-01 14:35:18
* @Desc: 数据质控规则类接口
*/
const $axios = require('w-vue-middle/api/axios').default;
/**
* @Author: Jason Liu
* @description: 评估维度枚举
*/
export const evaluationDimensions = (isRegion) => {
let list = [];
if (isRegion) {
list = [
{
label: $t('完整性'),
value: '02',
},
{
label: $t('规范性'),
options: [
{
label: $t('枚举校验'),
value: '0101',
},
{
label: $t('术语校验'),
value: '0102',
},
{
label: $t('长度校验'),
value: '0103',
},
],
},
{
label: $t('一致性'),
value: '04',
},
{
label: $t('时效性'),
value: '05',
},
];
} else {
list = [
{
label: $t('完整性'),
value: '02',
},
{
label: $t('规范性'),
options: [
{
label: $t('枚举校验'),
value: '0101',
},
{
label: $t('术语校验'),
value: '0102',
},
{
label: $t('长度校验'),
value: '0103',
},
{
label: $t('格式校验'),
value: '0104',
},
],
},
{
label: $t('准确性'),
value: '03',
},
{
label: $t('一致性'),
value: '04',
},
{
label: $t('时效性'),
value: '05',
},
{
label: $t('唯一性'),
value: '06',
},
];
}
return list;
};
export const ruleInfo = {
countSql: undefined, //总记录数校验SQL
errorDesc: undefined, //错误提示
errorSql: undefined, //错误记录数校验SQL
fieldCode: [], //校验表字段代码;个别纬度下支持多选;英文,分隔
fieldType: [], //校验表字段类型;个别纬度下支持多选;英文,分隔
successSql: undefined, //正确记录数校验SQL
formula: undefined, //formula
filterFormulaInfo: {
//校验公式-公式配置
content: undefined, //配置公式内容
contentValue: undefined, //配置公式内容-变量
tableCode: undefined, //表代码
tables: [],
/*
{
columns: [{
column: undefined, //列信息
columnName: undefined
}],
tableCode: undefined, //表代码
tableName: undefined, //表名称
}
*/
unit: undefined, //单位
},
indicatorSystemCode: '02', //指标体系代码,大类-小类 维度
isEnable: 0,
riskLevel: '2',
groupListNodes: [],
groupIdList: [],
isnull: 0, //非空标志;0:不允许为空 1:允许为空;完整性校验纬度下,1表示所有字段不可同时为空,0表示每个字段都不能为空
legalLength: undefined, //字段有效长度;支持多选(英文,分隔)
masterConstraint: undefined, //主表约束条件 忽略
orgField: undefined, //医疗机构代码标识字段 //选择一个表里的字段,来区分医疗机构
permittedValue: undefined, //有效值,多选,英文逗号分隔 //值域代码
relationId: undefined, //关联ID 前端不用,回显字段
ruleId: undefined,
ruleName: undefined, //规则名称
versions: undefined, //版本号
slaveField: undefined, //子表字段名;一致性规则中的对照字段
slaveTable: undefined, //子表名;一致性规则中的对照表
slaveTableId: undefined, //子表名;在元数据系统中的position
tableCode: undefined,
tableId: undefined,
timestampField: undefined, //选择表里面,是时间格式 timestamp
type: 0, //类型,0:界面公式生成;1:SQL脚本
weight: 10, //权重
verificaFormulaInfo: {
//校验公式-公式配置
content: undefined, //配置公式内容
contentValue: undefined, //配置公式内容-变量
tableCode: undefined, //表代码
tables: [],
/*
{
columns: [{
column: undefined, //列信息
columnName: undefined
}],
tableCode: undefined, //表代码
tableName: undefined, //表名称
}
*/
unit: undefined, //单位
},
dbType: undefined,
dfDqRelationTables: [
{
dbId: undefined, //数据源ID
schema: undefined,
tableCode: undefined,
tableId: undefined,
tableName: undefined,
},
],
/*
{
tableId: undefined, //关联表ID,可以去tables里面取表详情
tableCode: undefined,
asName: undefined, //关联的别名
joinType: "innerjoin", //关联方式
order: 0, //关联顺序
conditions: [ //关联条件
{
relation: undefined, //对对比方式
left: { //左边的内容
asName: "ROLE", //管关联的表别名
columnName: "PERSON_ID",
tableId: "2c90809d811d28b401811dfe357d007b",
tableCode: undefined,
},
right: { //右边的内容
asName: "PERSON", //关联的表别名
columnName: "PERSON_ID",
tableId: "2c90809d811d28b401811dfe357d007b",
tableCode: undefined,
},
order: 0, //条件顺序
}
]
}
*/
dfDqRelations: [],
threshold: 100,
formatType: undefined, //校验格式
regular: undefined, //正则表达式
//区域平台新增功能
modelType: 'DB', //--数据元模型来源类型;DB,MODEL
modelGroupId: undefined,
topicId: undefined, // 所属主题id
categoryId: undefined, // 所属分类id
rangeMaximum: 100, //区间最大值
rangeMax: 10, //区间最大得分
rangeMid: 8, //区间中间得分
rangeMedian: 90, //区间中间值
rangeMidSec: 5, //区间中间得分
rangeMinimum: 60, //区间最小值
rangeMin: 0, //区间最小得分
};
export const indicatorSystemList = (isRegion) => {
let list = [];
if (isRegion) {
list = [
{
label: $t('全部'),
value: '',
},
{
label: $t('规范性'),
value: '01',
},
{
label: $t('完整性'),
value: '02',
},
{
label: $t('一致性'),
value: '04',
},
{
label: $t('时效性'),
value: '05',
},
];
} else {
list = [
{
label: $t('全部'),
value: '',
},
{
label: $t('规范性'),
value: '01',
},
{
label: $t('完整性'),
value: '02',
},
{
label: $t('准确性'),
value: '03',
},
{
label: $t('一致性'),
value: '04',
},
{
label: $t('时效性'),
value: '05',
},
{
label: $t('唯一性'),
value: '06',
},
];
}
return list;
};
/**
* @Author: Jason Liu
* @description: 获取内涵质控规则列表
*/
export function getConnotationruleList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/rules`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取内涵质控规则列表
*/
export function getruleList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/rules`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 根据规则ID获取规则详情
*/
export function getConnotationRuleById(
params = {
ruleId: undefined,
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/rule`,
method: 'get',
params: params,
});
}
/**
* @Author: Jason Liu
* @description: 根据规则ID获取规则详情
*/
export function getRuleDetailById(
params = {
ruleId: undefined,
},
) {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/rule`,
method: 'get',
params: params,
});
}
/**
* @Author: Jason Liu
* @description: 保存内涵质控信息
*/
export function saveConnotationRule(
params = {
...ruleInfo,
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/rule`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 保存内涵质控信息
*/
export function saveRuleInfo(
params = {
...ruleInfo,
},
) {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/addRule`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 修改规则状态
*/
export function changeConnotationRuleStatic(
params = {
ruleId: undefined,
state: undefined,
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/ruleState/${params.ruleId}/${params.state}`,
method: 'post',
});
}
/**
* @Author: Jason Liu
* @description: 删除质控规则
*/
export function deleteConnotationRule(
params = {
ruleIdList: undefined,
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/delRules`,
method: 'post',
params: params,
});
}
/**
* @Author: Jason Liu
* @description: 质控规则启用、禁用
*/
export function isEnableRuleList(params = [], isEnable) {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/isEnableRuleList/${isEnable}`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取数据源列表
*/
export function getDatasourceList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiDatasource/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 采集内容数据
*/
export function collectionDataInfo(
params = {
clusterId: undefined, //集群ID
collectType: 'schema', // 采集类型:schema、table、column
dsId: undefined,
schema: undefined,
tableName: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/realtime/job`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取值域表信息
*/
export function getMdmCodoList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/mdmCodoMain`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取值域表详情信息
*/
export function mdmCodoMainInfos(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/mdmCodoMainInfos`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取值域表信息
*/
export function getMdmCodoMainById(
params = {
id,
},
) {
return $axios({
url: `${$service.qualityService}/api/v1/rulebase/getMdmCodoMainById/${params.id}`,
method: 'get',
data: params,
});
}
/**
* @Author: y_zp
* @description: 规则管理 - 下载模板
*/
export function exportExcelModel() {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/exportExcel_Model`,
method: 'get',
responseType: 'blob',
});
}
/**
* @Author: y_zp
* @description: 规则管理-同步状态
*/
export function syncRuleStatus() {
return $axios({
url: `${$service.qualityService}/api/v2/ruleBase/syncRuleStatus`,
method: 'post',
});
}