package org.dcm4chee.conf;
import org.dcm4che3.conf.api.internal.DicomConfigurationManager;
import org.dcm4chee.conf.browser.Standalone;
import org.dcm4che3.conf.core.api.ConfigurationException;
import org.dcm4che3.conf.dicom.DicomConfigurationBuilder;
import org.dcm4che3.net.audit.AuditLogger;
import org.dcm4che3.net.audit.AuditRecordRepository;
import org.dcm4che3.net.hl7.HL7DeviceExtension;
import org.dcm4che3.net.imageio.ImageReaderExtension;
import org.dcm4che3.net.imageio.ImageWriterExtension;
import org.dcm4chee.archive.conf.ArchiveAEExtension;
import org.dcm4chee.archive.conf.ArchiveDeviceExtension;
import org.dcm4chee.archive.conf.ArchiveHL7ApplicationExtension;
import org.dcm4chee.storage.conf.StorageConfiguration;
import org.dcm4chee.storage.conf.StorageDeviceExtension;
import org.dcm4chee.xds2.conf.*;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
/**
* @author Roman K
*/
@ApplicationScoped
public class DefaultConfigFactory {
@Produces
@ApplicationScoped
@Standalone
DicomConfigurationManager createConfig() throws ConfigurationException {
DicomConfigurationBuilder builder = DicomConfigurationBuilder.newConfigurationBuilder(System.getProperties());
builder.registerDeviceExtension(HL7DeviceExtension.class);
builder.registerDeviceExtension(AuditLogger.class);
builder.registerDeviceExtension(AuditRecordRepository.class);
builder.registerDeviceExtension(ImageReaderExtension.class);
builder.registerDeviceExtension(ImageWriterExtension.class);
builder.registerDeviceExtension(ArchiveDeviceExtension.class);
builder.registerDeviceExtension(StorageDeviceExtension.class);
builder.registerDeviceExtension(ExternalDeviceExtension.class);
builder.registerAEExtension(ArchiveAEExtension.class);
builder.registerHL7ApplicationExtension(ArchiveHL7ApplicationExtension.class);
builder.registerDeviceExtension(XdsRegistry.class);
builder.registerDeviceExtension(XdsRepository.class);
builder.registerDeviceExtension(XCARespondingGWCfg.class);
builder.registerDeviceExtension(XCAiRespondingGWCfg.class);
builder.registerDeviceExtension(XCAiInitiatingGWCfg.class);
builder.registerDeviceExtension(XCAInitiatingGWCfg.class);
builder.registerDeviceExtension(XdsSource.class);
builder.registerDeviceExtension(StorageConfiguration.class);
return builder.build();
}
}