package org.dcm4chee.archive.conf.defaults; import org.dcm4che3.conf.api.DicomConfiguration; import org.dcm4che3.conf.api.TCConfiguration; import org.dcm4che3.conf.api.hl7.HL7Configuration; import org.dcm4che3.net.Connection; import org.dcm4che3.net.Device; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Roman K */ public class DefaultDicomConfigInitializer { private static Logger log = LoggerFactory.getLogger(DefaultDicomConfigInitializer.class); private Device arrDevice; private Device arc; public DefaultDicomConfigInitializer() { } public Device getArrDevice() { return arrDevice; } public Device getArc() { return arc; } public DefaultDicomConfigInitializer persistDefaultConfig(DicomConfiguration config, HL7Configuration hl7Config, DefaultArchiveConfigurationFactory.FactoryParams params) { DefaultArchiveConfigurationFactory defaultArchiveConfigurationFactory = new DefaultArchiveConfigurationFactory(params); log.debug("Creating external devices with AEs"); for (int i = 0; i < DefaultArchiveConfigurationFactory.OTHER_AES.length; i++) { String aet = DefaultArchiveConfigurationFactory.OTHER_AES[i]; config.persist(defaultArchiveConfigurationFactory.createDevice( DefaultArchiveConfigurationFactory.OTHER_DEVICES[i], DefaultArchiveConfigurationFactory.OTHER_ISSUER[i], DefaultArchiveConfigurationFactory.OTHER_INST_CODES[i], aet, "localhost", DefaultArchiveConfigurationFactory.OTHER_PORTS[i << 1], DefaultArchiveConfigurationFactory.OTHER_PORTS[(i << 1) + 1])); } log.debug("Creating other external devices"); hl7Config.registerHL7Application(DefaultArchiveConfigurationFactory.PIX_MANAGER); for (int i = DefaultArchiveConfigurationFactory.OTHER_AES.length; i < DefaultArchiveConfigurationFactory.OTHER_DEVICES.length; i++) config.persist(defaultArchiveConfigurationFactory.createDevice(DefaultArchiveConfigurationFactory.OTHER_DEVICES[i])); config.persist(defaultArchiveConfigurationFactory.createHL7Device("hl7rcv", DefaultArchiveConfigurationFactory.SITE_A, DefaultArchiveConfigurationFactory.INST_A, DefaultArchiveConfigurationFactory.PIX_MANAGER, "localhost", 2576, 12576)); log.debug("Creating arr device"); arrDevice = defaultArchiveConfigurationFactory.createARRDevice("syslog", Connection.Protocol.SYSLOG_UDP, 514); config.persist(arrDevice); log.debug("Creating archive device"); arc = defaultArchiveConfigurationFactory.createArchiveDevice("dcm4chee-arc", arrDevice); config.persist(arc); // create TC Group config extension if (params.useGroupBasedTCConfig) { log.debug("Creating transfer capability groups"); TCConfiguration.persistDefaultTCGroups(config); } return this; } }