package com.example.factory;
|
|
import com.example.config.ConfigValue;
|
import com.example.service.HisService;
|
import com.example.service.LisService;
|
import com.example.service.PacsService;
|
import org.apache.ibatis.annotations.Case;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.ApplicationContext;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* @Company: 西安路泰科技有限公司
|
* @Author: zhaowenxuan
|
* @Date: 2024/12/18 09:32
|
*/
|
@Component
|
public class ServiceFactory {
|
private final ApplicationContext applicationContext;
|
|
@Autowired
|
public ServiceFactory(ApplicationContext applicationContext) {
|
this.applicationContext = applicationContext;
|
}
|
|
public HisService getService(String hospName) {
|
String beanName = getServiceBeanName(hospName);
|
return (HisService) applicationContext.getBean(beanName);
|
}
|
|
public PacsService getPacsService(String hospName) {
|
String beanName = getServiceBeanName(hospName);
|
return (PacsService) applicationContext.getBean(beanName+"Pacs");
|
}
|
|
public LisService getLisService(String hospName) {
|
String beanName = getServiceBeanName(hospName);
|
return (LisService) applicationContext.getBean(beanName+"Lis");
|
}
|
|
|
private String getServiceBeanName(String hospName) {
|
switch (hospName) {
|
case "shanxiqinxamjyy":
|
return "ShanXiQinXiAnMeiJi"; // 对应的业务 Bean 名称
|
case "shanxiqinpbkwyy":
|
return "ShanXiQinPbkwyy";
|
case "shanxiqinjdczgzyy":
|
return "ShanXiQinJdczgzyy";
|
case "shanxiqinsqyy":
|
return "ShanXiQinXiAnShanQi";
|
case "shanxiqinwbzxyy":
|
return "ShanXiQinWeiNanWbzxyy";
|
case "shanxiqinbjxjyy":
|
return "ShanXiQinBaoJiBjxjyy";
|
case "shanxiqinbjfhyy":
|
return "ShanXiQinBaoJiBjfhyy";
|
default:
|
throw new RuntimeException("找不到对应的医院服务配置:" + hospName);
|
}
|
}
|
}
|