Class JDBCIdentityCacheImpl
- java.lang.Object
-
- com.ibm.fhir.persistence.jdbc.dao.impl.JDBCIdentityCacheImpl
-
- All Implemented Interfaces:
JDBCIdentityCache
public class JDBCIdentityCacheImpl extends Object implements JDBCIdentityCache
Pulls together the DAOs and tenant-specific cache to provide a single place where we can look up the identity of various records we need
-
-
Constructor Summary
Constructors Constructor Description JDBCIdentityCacheImpl(FHIRPersistenceJDBCCache cache, ResourceDAO resourceDAO, ParameterDAO parameterDAO, IResourceReferenceDAO rrd)
Public constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Integer
getCanonicalId(String canonicalValue)
Get the database id for the given canonical value.Integer
getCodeSystemId(String codeSystemName)
Get the database id for the named code-system.Long
getCommonTokenValueId(String codeSystem, String tokenValue)
Get the common_token_value_id for the given tokenValue and codeSystem.List<Long>
getCommonTokenValueIdList(String tokenValue)
Get a list of matching common_token_value_id values.Set<Long>
getCommonTokenValueIds(Collection<CommonTokenValue> tokenValues)
Get the common_token_value_ids for the given tokenValues.Integer
getParameterNameId(String parameterName)
Get the database id for the given parameter name.Integer
getResourceTypeId(String resourceType)
Get the database id for the named resourceType.List<Integer>
getResourceTypeIds()
Get the list of all resource type ids.String
getResourceTypeName(Integer resourceTypeId)
Get the resource type name for the resourceTypeId.List<String>
getResourceTypeNames()
Get the list of all resource type names.
-
-
-
Constructor Detail
-
JDBCIdentityCacheImpl
public JDBCIdentityCacheImpl(FHIRPersistenceJDBCCache cache, ResourceDAO resourceDAO, ParameterDAO parameterDAO, IResourceReferenceDAO rrd)
Public constructor- Parameters:
cache
-parameterDAO
-rrd
-
-
-
Method Detail
-
getResourceTypeId
public Integer getResourceTypeId(String resourceType) throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the database id for the named resourceType. Reads from a cache or database if required.- Specified by:
getResourceTypeId
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getResourceTypeName
public String getResourceTypeName(Integer resourceTypeId) throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the resource type name for the resourceTypeId. Reads from a cache or database if required.- Specified by:
getResourceTypeName
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getCodeSystemId
public Integer getCodeSystemId(String codeSystemName) throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the database id for the named code-system. Creates new records if necessary- Specified by:
getCodeSystemId
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getParameterNameId
public Integer getParameterNameId(String parameterName) throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the database id for the given parameter name. Creates new records if necessary.- Specified by:
getParameterNameId
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getCanonicalId
public Integer getCanonicalId(String canonicalValue) throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the database id for the given canonical value. Read only. If the value does not exist, -1 is returned.- Specified by:
getCanonicalId
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getCommonTokenValueId
public Long getCommonTokenValueId(String codeSystem, String tokenValue)
Description copied from interface:JDBCIdentityCache
Get the common_token_value_id for the given tokenValue and codeSystem. Reads from a cache, or the database if not found in the cache.- Specified by:
getCommonTokenValueId
in interfaceJDBCIdentityCache
- Returns:
- The common token value id or null if it doesn't exist
-
getCommonTokenValueIds
public Set<Long> getCommonTokenValueIds(Collection<CommonTokenValue> tokenValues)
Description copied from interface:JDBCIdentityCache
Get the common_token_value_ids for the given tokenValues. Reads from a cache, or the database if not found in the cache. CommonTokenValues with no corresponding record in the database will be omitted from the result set.- Specified by:
getCommonTokenValueIds
in interfaceJDBCIdentityCache
- Returns:
- A non-null, possibly-empty set of common token value ids
-
getCommonTokenValueIdList
public List<Long> getCommonTokenValueIdList(String tokenValue)
Description copied from interface:JDBCIdentityCache
Get a list of matching common_token_value_id values. Implementations may decide to cache, but only if the cache can be invalidated when the list changes due to ingestion. The simplest approach is to always read from the database. The performance benefit to the FHIR search query this is being used for is orders of magnitude greater than the cost of this query (think 80+ seconds to 250 milliseconds improvement in search query time).- Specified by:
getCommonTokenValueIdList
in interfaceJDBCIdentityCache
- Returns:
-
getResourceTypeNames
public List<String> getResourceTypeNames() throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the list of all resource type names.- Specified by:
getResourceTypeNames
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
getResourceTypeIds
public List<Integer> getResourceTypeIds() throws FHIRPersistenceException
Description copied from interface:JDBCIdentityCache
Get the list of all resource type ids.- Specified by:
getResourceTypeIds
in interfaceJDBCIdentityCache
- Returns:
- Throws:
FHIRPersistenceException
-
-