public class Device extends Object implements Serializable
private static final long serialVersionUID
private String deviceName
private String uuid
setDeviceName(String)
private String description
private String manufacturer
private String manufacturerModelName
private String stationName
private String deviceSerialNumber
private String trustStoreURL
private String trustStoreType
private String trustStorePin
private String trustStorePinProperty
private String keyStoreURL
private String keyStoreType
private String keyStorePin
private String keyStorePinProperty
private String keyStoreKeyPin
private String keyStoreKeyPinProperty
private Issuer issuerOfPatientID
private Issuer issuerOfAccessionNumber
private Issuer orderPlacerIdentifier
private Issuer orderFillerIdentifier
private Issuer issuerOfAdmissionID
private Issuer issuerOfServiceEpisodeID
private Issuer issuerOfContainerIdentifier
private Issuer issuerOfSpecimenIdentifier
private String[] softwareVersions
private String[] primaryDeviceTypes
private String[] institutionNames
private Code[] institutionCodes
private String[] institutionAddresses
private String[] institutionalDepartmentNames
private String[] relatedDeviceRefs
private byte[][] vendorData
private int limitOpenAssociations
private boolean installed
private TimeZone timeZoneOfDevice
private final LinkedHashMap<String,X509Certificate[]> authorizedNodeCertificates
private final LinkedHashMap<String,X509Certificate[]> thisNodeCertificates
private final List<Connection> connections
private final Map<String,ApplicationEntity> applicationEntitiesMap
aliasApplicationEntitiesMap
will contain also alias AE titles.private ApplicationEntity defaultAE
private final transient Map<String,ApplicationEntity> aliasApplicationEntitiesMap
ApplicationEntity.getAETitleAliases()
),
including also the main AE title (ApplicationEntity.getAETitle()
), to application entities.private Map<Class<? extends DeviceExtension>,DeviceExtension> extensions
private transient AssociationHandler associationHandler
private transient DimseRQHandler dimseRQHandler
private transient ConnectionMonitor connectionMonitor
private transient int assocCount
private final transient Object assocCountLock
private transient ScheduledExecutorService scheduledExecutor
private transient volatile SSLContext sslContext
private transient volatile KeyManager km
private transient volatile TrustManager tm
private void checkNotEmpty(String name, String val)
public ApplicationEntity getDefaultAE()
public void setDefaultAE(ApplicationEntity defaultAE)
public final String getDeviceName()
public final void setDeviceName(String name)
name
- A String containing the device name.public final String getDescription()
public final void setDescription(String description)
description
- A String containing the device description.public final String getManufacturer()
public final void setManufacturer(String manufacturer)
manufacturer
- A String containing the device manufacturer.public final String getManufacturerModelName()
public final void setManufacturerModelName(String manufacturerModelName)
manufacturerModelName
- A String containing the device manufacturer model name.public final String[] getSoftwareVersions()
public final void setSoftwareVersions(String... softwareVersions)
softwareVersions
- A String array containing the software versions.public final String getStationName()
public final void setStationName(String stationName)
stationName
- A String containing the station name.public final String getDeviceSerialNumber()
public final void setDeviceSerialNumber(String deviceSerialNumber)
deviceSerialNumber
- A String containing the serial number.public final String[] getPrimaryDeviceTypes()
public void setPrimaryDeviceTypes(String... primaryDeviceTypes)
primaryDeviceTypes
- public final String[] getInstitutionNames()
public void setInstitutionNames(String... names)
names
- A String array containing the institution name values.public final Code[] getInstitutionCodes()
public void setInstitutionCodes(Code... codes)
public final String[] getInstitutionAddresses()
public void setInstitutionAddresses(String... addresses)
addresses
- A String array containing the institution address values.public final String[] getInstitutionalDepartmentNames()
public void setInstitutionalDepartmentNames(String... names)
names
- A String array containing the dept. name values.public final Issuer getIssuerOfPatientID()
public final void setIssuerOfPatientID(Issuer issuerOfPatientID)
public final Issuer getIssuerOfAccessionNumber()
public final void setIssuerOfAccessionNumber(Issuer issuerOfAccessionNumber)
public final Issuer getOrderPlacerIdentifier()
public final void setOrderPlacerIdentifier(Issuer orderPlacerIdentifier)
public final Issuer getOrderFillerIdentifier()
public final void setOrderFillerIdentifier(Issuer orderFillerIdentifier)
public final Issuer getIssuerOfAdmissionID()
public final void setIssuerOfAdmissionID(Issuer issuerOfAdmissionID)
public final Issuer getIssuerOfServiceEpisodeID()
public final void setIssuerOfServiceEpisodeID(Issuer issuerOfServiceEpisodeID)
public final Issuer getIssuerOfContainerIdentifier()
public final void setIssuerOfContainerIdentifier(Issuer issuerOfContainerIdentifier)
public final Issuer getIssuerOfSpecimenIdentifier()
public final void setIssuerOfSpecimenIdentifier(Issuer issuerOfSpecimenIdentifier)
public X509Certificate[] getAuthorizedNodeCertificates(String ref)
public void setAuthorizedNodeCertificates(String ref, X509Certificate... certs)
public X509Certificate[] removeAuthorizedNodeCertificates(String ref)
public void removeAllAuthorizedNodeCertificates()
public X509Certificate[] getAllAuthorizedNodeCertificates()
public String[] getAuthorizedNodeCertificateRefs()
public final String getTrustStoreURL()
public final void setTrustStoreURL(String trustStoreURL)
public final String getTrustStoreType()
public final void setTrustStoreType(String trustStoreType)
public final String getTrustStorePin()
public final void setTrustStorePin(String trustStorePin)
public final String getTrustStorePinProperty()
public final void setTrustStorePinProperty(String trustStorePinProperty)
public String getOlockHash()
public void setOlockHash(String olockHash)
public X509Certificate[] getThisNodeCertificates(String ref)
public void setThisNodeCertificates(String ref, X509Certificate... certs)
public X509Certificate[] removeThisNodeCertificates(String ref)
public final String getKeyStoreURL()
public final void setKeyStoreURL(String keyStoreURL)
public final String getKeyStoreType()
public final void setKeyStoreType(String keyStoreType)
public final String getKeyStorePin()
public final void setKeyStorePin(String keyStorePin)
public final String getKeyStorePinProperty()
public final void setKeyStorePinProperty(String keyStorePinProperty)
public final String getKeyStoreKeyPin()
public final void setKeyStoreKeyPin(String keyStorePin)
public final String getKeyStoreKeyPinProperty()
public final void setKeyStoreKeyPinProperty(String keyStoreKeyPinProperty)
public void removeAllThisNodeCertificates()
public X509Certificate[] getAllThisNodeCertificates()
public String[] getThisNodeCertificateRefs()
private static X509Certificate[] toArray(Collection<X509Certificate[]> c)
public final String[] getRelatedDeviceRefs()
public void setRelatedDeviceRefs(String... refs)
public final byte[][] getVendorData()
public void setVendorData(byte[]... vendorData)
vendorData
- An Object of the device data.public final boolean isInstalled()
public final void setInstalled(boolean installed)
installed
- A boolean which will be true if this device is installed.IOException
GeneralSecurityException
KeyManagementException
public void setTimeZoneOfDevice(TimeZone timeZoneOfDevice)
public TimeZone getTimeZoneOfDevice()
public final void setDimseRQHandler(DimseRQHandler dimseRQHandler)
public final DimseRQHandler getDimseRQHandler()
public final AssociationHandler getAssociationHandler()
public void setAssociationHandler(AssociationHandler associationHandler)
public ConnectionMonitor getConnectionMonitor()
public void setConnectionMonitor(ConnectionMonitor connectionMonitor)
public void bindConnections() throws IOException, GeneralSecurityException
IOException
GeneralSecurityException
public void rebindConnections() throws IOException, GeneralSecurityException
IOException
GeneralSecurityException
private void needRebindConnections()
private void needReconfigureTLS()
public void unbindConnections()
public final Executor getExecutor()
public final void setExecutor(Executor executor)
public final ScheduledExecutorService getScheduledExecutor()
public final void setScheduledExecutor(ScheduledExecutorService executor)
public void addConnection(Connection conn)
public boolean removeConnection(Connection conn)
public List<Connection> listConnections()
public Connection connectionWithEqualsRDN(Connection other)
public List<Connection> getConnections()
public void setConnections(List<Connection> connections)
public void setApplicationEntitiesMap(Map<String,ApplicationEntity> applicationEntitiesMap)
@Deprecated public Map<String,ApplicationEntity> getApplicationEntitiesMap()
getApplicationEntity(String)
instead - it will also handle aliases and special cases.public void addApplicationEntity(ApplicationEntity ae)
public ApplicationEntity removeApplicationEntity(ApplicationEntity ae)
public ApplicationEntity removeApplicationEntity(String aet)
private void addAllAliasesForApplicationEntity(ApplicationEntity ae)
private void removeAllAliasesForApplicationEntity(ApplicationEntity ae)
public void setExtensions(Map<Class<? extends DeviceExtension>,DeviceExtension> extensions)
public Map<Class<? extends DeviceExtension>,DeviceExtension> getExtensions()
public void addDeviceExtension(DeviceExtension ext)
public boolean removeDeviceExtension(DeviceExtension ext)
public final int getLimitOpenAssociations()
public final void setLimitOpenAssociations(int limit)
public int getNumberOfOpenAssociations()
void incrementNumberOfOpenAssociations()
void decrementNumberOfOpenAssociations()
public void waitForNoOpenConnections() throws InterruptedException
InterruptedException
public boolean isLimitOfOpenAssociationsExceeded()
public ApplicationEntity getApplicationEntity(String aet)
public Collection<String> getApplicationAETitles()
public Collection<ApplicationEntity> getApplicationEntities()
getApplicationEntity(String)
instead - it will also handle aliases and special cases.public final void setKeyManager(KeyManager km)
public final KeyManager getKeyManager()
private KeyManager km() throws GeneralSecurityException, IOException
GeneralSecurityException
IOException
private String keyStoreType()
private String keyStorePin()
public final void setTrustManager(TrustManager tm)
public final TrustManager getTrustManager()
private TrustManager tm() throws GeneralSecurityException, IOException
GeneralSecurityException
IOException
private String trustStoreType()
private String trustStorePin()
SSLContext sslContext() throws GeneralSecurityException, IOException
GeneralSecurityException
IOException
private static SSLContext createSSLContext(KeyManager km, TrustManager tm) throws GeneralSecurityException
GeneralSecurityException
public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
public StringBuilder promptTo(StringBuilder sb, String indent)
public void reconfigure(Device from) throws IOException, GeneralSecurityException
IOException
GeneralSecurityException
protected void setDeviceAttributes(Device from)
private void setAuthorizedNodeCertificates(Map<String,X509Certificate[]> from)
private void setThisNodeCertificates(Map<String,X509Certificate[]> from)
private boolean update(Map<String,X509Certificate[]> target, Map<String,X509Certificate[]> from)
private void reconfigureConnections(Device from)
private void reconfigureApplicationEntities(Device from)
public void reconfigureConnections(List<Connection> conns, List<Connection> src)
private void reconfigureDeviceExtensions(Device from)
public Collection<DeviceExtension> listDeviceExtensions()
public <T extends DeviceExtension> T getDeviceExtension(Class<T> clazz)
public <T extends DeviceExtension> T getDeviceExtensionNotNull(Class<T> clazz)
public Collection<ApplicationEntity> getAEsSupportingTransferCapability(TransferCapability transferCapability, boolean onlyAbstractSyntax)
public ApplicationEntity getApplicationEntityNotNull(String aet)
Copyright © 2017 dcm4che.org. All rights reserved.