Interface JDBCIdentityCache

  • All Known Implementing Classes:
    JDBCIdentityCacheImpl

    public interface JDBCIdentityCache
    Provides access to all the identity information we need when processing resources and their parameters
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.Long getCanonicalId​(java.lang.String canonicalValue)
      Get the database id for the given canonical value.
      java.lang.Integer getCodeSystemId​(java.lang.String codeSystem)
      Get the database id for the named code-system.
      java.lang.Long getCommonTokenValueId​(java.lang.String codeSystem, java.lang.String tokenValue)
      Get the common_token_value_id for the given tokenValue and codeSystem.
      java.util.List<java.lang.Long> getCommonTokenValueIdList​(java.lang.String tokenValue)
      Get a list of matching common_token_value_id values.
      java.util.Set<java.lang.Long> getCommonTokenValueIds​(java.util.Collection<CommonTokenValue> tokenValues)
      Get the common_token_value_ids for the given tokenValues.
      java.lang.Long getLogicalResourceId​(java.lang.String resourceType, java.lang.String logicalId)
      Get the database id for the given (resourceType, logicalId) tuple.
      java.util.List<java.lang.Long> getLogicalResourceIdList​(java.lang.String logicalId)
      Get a list of logical_resource_id values matching the given logicalId without knowing the resource type.
      java.util.Set<java.lang.Long> getLogicalResourceIds​(java.util.Collection<ResourceReferenceValue> referenceValues)
      Get the logical_resource_ids for the given referenceValues.
      java.lang.Integer getParameterNameId​(java.lang.String parameterName)
      Get the database id for the given parameter name.
      java.lang.Integer getResourceTypeId​(java.lang.String resourceType)
      Get the database id for the named resourceType.
      java.util.List<java.lang.Integer> getResourceTypeIds()
      Get the list of all resource type ids.
      java.lang.String getResourceTypeName​(java.lang.Integer resourceTypeId)
      Get the resource type name for the resourceTypeId.
      java.util.List<java.lang.String> getResourceTypeNames()
      Get the list of all resource type names.
    • Method Detail

      • getResourceTypeId

        java.lang.Integer getResourceTypeId​(java.lang.String resourceType)
                                     throws FHIRPersistenceException
        Get the database id for the named resourceType. Reads from a cache or database if required.
        Parameters:
        resourceType -
        Returns:
        Throws:
        FHIRPersistenceException
      • getResourceTypeName

        java.lang.String getResourceTypeName​(java.lang.Integer resourceTypeId)
                                      throws FHIRPersistenceException
        Get the resource type name for the resourceTypeId. Reads from a cache or database if required.
        Parameters:
        resourceTypeId -
        Returns:
        Throws:
        FHIRPersistenceException
      • getCodeSystemId

        java.lang.Integer getCodeSystemId​(java.lang.String codeSystem)
                                   throws FHIRPersistenceException
        Get the database id for the named code-system. Creates new records if necessary
        Parameters:
        codeSystem -
        Returns:
        Throws:
        FHIRPersistenceException
      • getCanonicalId

        java.lang.Long getCanonicalId​(java.lang.String canonicalValue)
                               throws FHIRPersistenceException
        Get the database id for the given canonical value. Read only. If the value does not exist, -1 is returned.
        Parameters:
        canonicalValue -
        Returns:
        Throws:
        FHIRPersistenceException
      • getLogicalResourceId

        java.lang.Long getLogicalResourceId​(java.lang.String resourceType,
                                            java.lang.String logicalId)
                                     throws FHIRPersistenceException
        Get the database id for the given (resourceType, logicalId) tuple. This represents records in logical_resource_ident which may be created before the actual resource is created.
        Parameters:
        resourceType -
        logicalId -
        Returns:
        Throws:
        FHIRPersistenceException
      • getParameterNameId

        java.lang.Integer getParameterNameId​(java.lang.String parameterName)
                                      throws FHIRPersistenceException
        Get the database id for the given parameter name. Creates new records if necessary.
        Parameters:
        parameterName -
        Returns:
        Throws:
        FHIRPersistenceException
      • getCommonTokenValueId

        java.lang.Long getCommonTokenValueId​(java.lang.String codeSystem,
                                             java.lang.String tokenValue)
        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.
        Parameters:
        codeSystem -
        tokenValue -
        Returns:
        The common token value id or null if it doesn't exist
      • getCommonTokenValueIds

        java.util.Set<java.lang.Long> getCommonTokenValueIds​(java.util.Collection<CommonTokenValue> tokenValues)
        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.
        Parameters:
        tokenValues -
        Returns:
        A non-null, possibly-empty set of common token value ids
      • getLogicalResourceIds

        java.util.Set<java.lang.Long> getLogicalResourceIds​(java.util.Collection<ResourceReferenceValue> referenceValues)
                                                     throws FHIRPersistenceException
        Get the logical_resource_ids for the given referenceValues. Reads from a cache, or the database if not found in the cache. Values with no corresponding record in the database will be omitted from the result set.
        Parameters:
        referenceValues -
        Returns:
        a non-null, possibly empty set of logical_resource_ids.
        Throws:
        FHIRPersistenceException
      • getCommonTokenValueIdList

        java.util.List<java.lang.Long> getCommonTokenValueIdList​(java.lang.String tokenValue)
        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).
        Parameters:
        tokenValue -
        Returns:
      • getLogicalResourceIdList

        java.util.List<java.lang.Long> getLogicalResourceIdList​(java.lang.String logicalId)
                                                         throws FHIRPersistenceException
        Get a list of logical_resource_id values matching the given logicalId without knowing the resource type. This means we could get back multiple ids, one per resource type, such as:
        • Claim/foo
        • Observation/foo
        • Patient/foo
        Parameters:
        tokenValue -
        Returns:
        Throws:
        FHIRPersistenceException