import { BaseInterfaceCore, IntfPlatform, IntfResponse } from '@imedx/ics-imedx-chromely-plugin-intf-platform' import constants from './constants' import { showTestDialog } from './components/test-dialog' /** * 核心接口实现 */ export default class XXXIntefacerCore extends BaseInterfaceCore { public async business(code: string, param: any): Promise { // 获取实现核心接口配置信息 const intfCodeInfo = await IntfPlatform.GetInterfaceInfo('Interface.CDSS.Core') // 获取实现接口编码 const { interfaceId } = intfCodeInfo if (!interfaceId) { return Promise.resolve(this.notFound(`cdss实现接口[${interfaceId}]未配置!`)) } // 获取实现接口实例 const intfInstance = IntfPlatform.getInterface(interfaceId) // 判断实现接口是否存在 if (!intfInstance) { return Promise.resolve(this.notFound(`cdss实现接口[${interfaceId}]不存在!`)) } try { // 接口中弹出对话框,此处为模拟数据演示对话框弹出并选择一个类型继续向下传入到实现接口,根据实际情况按需使用 const data = [ { id: 1, code: '001', name: '类型1', type: 'T1' }, { id: 2, code: '002', name: '类型2', type: 'T2' } ] const typeId = await showTestDialog(data) // 结构函数列表 const { FUNC1, FUNC2, FUNCN } = intfInstance let result = null switch (code) { case constants.FUNC1: result = await FUNC1(param.visitId, param.deptId, typeId) break case constants.FUNC2: result = await FUNC2(param.visitId, param.deptId) break case constants.FUNCN: result = await FUNCN(param.visitId, param.deptId) break default: break } return Promise.resolve(this.success(result)) } catch (error) { return Promise.resolve(this.internalError((error as Error).message)) } } }