Class SearchParameterFHIRRetrieveProvider

  • All Implemented Interfaces:
    org.opencds.cqf.cql.engine.retrieve.RetrieveProvider
    Direct Known Subclasses:
    RestFHIRRetrieveProvider, ServerFHIRRetrieveProvider

    public abstract class SearchParameterFHIRRetrieveProvider
    extends org.opencds.cqf.cql.engine.retrieve.TerminologyAwareRetrieveProvider
    Provide support for CQL Engine RetrieveProvider implementations that wish to build retrieve support on top of query parameters defined in the FHIR REST API specification.
    • Field Summary

      • Fields inherited from class org.opencds.cqf.cql.engine.retrieve.TerminologyAwareRetrieveProvider

        expandValueSets, terminologyProvider
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract java.lang.Iterable<java.lang.Object> executeQueries​(java.lang.String resourceType, java.util.List<SearchParameterMap> queries)  
      protected SearchParameterMap getBaseMap​(org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> templateParam, org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> contextParam, org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> dateRangeParam)  
      protected java.util.List<IQueryParameterOr<?>> getCodeParams​(java.lang.String name, java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes, java.lang.String valueSet)  
      protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​java.util.List<IQueryParameterOr<?>>> getCodeParams​(java.lang.String resourceType, java.lang.String codePath, java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes, java.lang.String valueSet)  
      protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> getContextParam​(java.lang.String resourceType, java.lang.String context, java.lang.String contextPath, java.lang.Object contextValue)  
      protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> getDateRangeParam​(java.lang.String resourceType, java.lang.String datePath, java.lang.String dateLowPath, java.lang.String dateHighPath, org.opencds.cqf.cql.engine.runtime.Interval dateRange)  
      int getMaxCodesPerQuery()  
      protected java.lang.String getModifiedName​(java.lang.String name, IQueryParameter param)
      Given a query parameter name and contents, transmute the name into something that includes all the appropriate modifiers.
      java.lang.Integer getPageSize()  
      protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> getTemplateParam​(java.lang.String resourceType, java.lang.String templateId)  
      protected java.util.List<SearchParameterMap> innerSetupQueries​(java.lang.String resourceType, org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> templateParam, org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> contextParam, org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> dateRangeParam, org.apache.commons.lang3.tuple.Pair<java.lang.String,​java.util.List<IQueryParameterOr<?>>> codeParams)  
      java.lang.Iterable<java.lang.Object> retrieve​(java.lang.String context, java.lang.String contextPath, java.lang.Object contextValue, java.lang.String dataType, java.lang.String templateId, java.lang.String codePath, java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes, java.lang.String valueSet, java.lang.String datePath, java.lang.String dateLowPath, java.lang.String dateHighPath, org.opencds.cqf.cql.engine.runtime.Interval dateRange)  
      void setMaxCodesPerQuery​(int value)  
      void setPageSize​(java.lang.Integer value)  
      protected java.util.List<SearchParameterMap> setupQueries​(java.lang.String context, java.lang.String contextPath, java.lang.Object contextValue, java.lang.String resourceType, java.lang.String templateId, java.lang.String codePath, java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes, java.lang.String valueSet, java.lang.String datePath, java.lang.String dateLowPath, java.lang.String dateHighPath, org.opencds.cqf.cql.engine.runtime.Interval dateRange)  
      • Methods inherited from class org.opencds.cqf.cql.engine.retrieve.TerminologyAwareRetrieveProvider

        getTerminologyProvider, isExpandValueSets, setExpandValueSets, setTerminologyProvider
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SearchParameterFHIRRetrieveProvider

        public SearchParameterFHIRRetrieveProvider​(SearchParameterResolver searchParameterResolver)
    • Method Detail

      • setPageSize

        public void setPageSize​(java.lang.Integer value)
      • getPageSize

        public java.lang.Integer getPageSize()
      • setMaxCodesPerQuery

        public void setMaxCodesPerQuery​(int value)
      • getMaxCodesPerQuery

        public int getMaxCodesPerQuery()
      • executeQueries

        protected abstract java.lang.Iterable<java.lang.Object> executeQueries​(java.lang.String resourceType,
                                                                               java.util.List<SearchParameterMap> queries)
                                                                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • retrieve

        public java.lang.Iterable<java.lang.Object> retrieve​(java.lang.String context,
                                                             java.lang.String contextPath,
                                                             java.lang.Object contextValue,
                                                             java.lang.String dataType,
                                                             java.lang.String templateId,
                                                             java.lang.String codePath,
                                                             java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes,
                                                             java.lang.String valueSet,
                                                             java.lang.String datePath,
                                                             java.lang.String dateLowPath,
                                                             java.lang.String dateHighPath,
                                                             org.opencds.cqf.cql.engine.runtime.Interval dateRange)
      • setupQueries

        protected java.util.List<SearchParameterMap> setupQueries​(java.lang.String context,
                                                                  java.lang.String contextPath,
                                                                  java.lang.Object contextValue,
                                                                  java.lang.String resourceType,
                                                                  java.lang.String templateId,
                                                                  java.lang.String codePath,
                                                                  java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes,
                                                                  java.lang.String valueSet,
                                                                  java.lang.String datePath,
                                                                  java.lang.String dateLowPath,
                                                                  java.lang.String dateHighPath,
                                                                  org.opencds.cqf.cql.engine.runtime.Interval dateRange)
                                                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • innerSetupQueries

        protected java.util.List<SearchParameterMap> innerSetupQueries​(java.lang.String resourceType,
                                                                       org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> templateParam,
                                                                       org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> contextParam,
                                                                       org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> dateRangeParam,
                                                                       org.apache.commons.lang3.tuple.Pair<java.lang.String,​java.util.List<IQueryParameterOr<?>>> codeParams)
                                                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getTemplateParam

        protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> getTemplateParam​(java.lang.String resourceType,
                                                                                                               java.lang.String templateId)
      • getContextParam

        protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> getContextParam​(java.lang.String resourceType,
                                                                                                              java.lang.String context,
                                                                                                              java.lang.String contextPath,
                                                                                                              java.lang.Object contextValue)
                                                                                                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getDateRangeParam

        protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> getDateRangeParam​(java.lang.String resourceType,
                                                                                                                   java.lang.String datePath,
                                                                                                                   java.lang.String dateLowPath,
                                                                                                                   java.lang.String dateHighPath,
                                                                                                                   org.opencds.cqf.cql.engine.runtime.Interval dateRange)
                                                                                                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getCodeParams

        protected org.apache.commons.lang3.tuple.Pair<java.lang.String,​java.util.List<IQueryParameterOr<?>>> getCodeParams​(java.lang.String resourceType,
                                                                                                                                 java.lang.String codePath,
                                                                                                                                 java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes,
                                                                                                                                 java.lang.String valueSet)
                                                                                                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getCodeParams

        protected java.util.List<IQueryParameterOr<?>> getCodeParams​(java.lang.String name,
                                                                     java.lang.Iterable<org.opencds.cqf.cql.engine.runtime.Code> codes,
                                                                     java.lang.String valueSet)
      • getBaseMap

        protected SearchParameterMap getBaseMap​(org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> templateParam,
                                                org.apache.commons.lang3.tuple.Pair<java.lang.String,​IQueryParameter> contextParam,
                                                org.apache.commons.lang3.tuple.Pair<java.lang.String,​DateRangeParameter> dateRangeParam)
                                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getModifiedName

        protected java.lang.String getModifiedName​(java.lang.String name,
                                                   IQueryParameter param)
        Given a query parameter name and contents, transmute the name into something that includes all the appropriate modifiers.
        Parameters:
        name - query parameter name
        param - query parameter contents
        Returns:
        query parameter name with appropriate modifiers appended