Class JpaResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>

All Implemented Interfaces:
IDao, IFhirResourceDao<T>, IFhirResourceDaoCodeSystem<T>, IJpaDao<T>, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class JpaResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource> extends BaseHapiFhirResourceDao<T> implements IFhirResourceDaoCodeSystem<T>
  • Field Details

  • Constructor Details

  • Method Details

    • start

      @PostConstruct public void start()
      Overrides:
      start in class BaseHapiFhirResourceDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • findCodeSystemIdsContainingSystemAndCode

      public List<org.hl7.fhir.instance.model.api.IIdType> findCodeSystemIdsContainingSystemAndCode(String theCode, String theSystem, ca.uhn.fhir.rest.api.server.RequestDetails theRequest)
      Specified by:
      findCodeSystemIdsContainingSystemAndCode in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • lookupCode

      @Nonnull public ca.uhn.fhir.context.support.IValidationSupport.LookupCodeResult lookupCode(org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCode, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theSystem, org.hl7.fhir.instance.model.api.IBaseCoding theCoding, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Specified by:
      lookupCode in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • lookupCode

      @Nonnull public ca.uhn.fhir.context.support.IValidationSupport.LookupCodeResult lookupCode(org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCode, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theSystem, org.hl7.fhir.instance.model.api.IBaseCoding theCoding, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theDisplayLanguage, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Specified by:
      lookupCode in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • lookupCode

      @Nonnull public ca.uhn.fhir.context.support.IValidationSupport.LookupCodeResult lookupCode(org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCode, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theSystem, org.hl7.fhir.instance.model.api.IBaseCoding theCoding, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theDisplayLanguage, Collection<org.hl7.fhir.instance.model.api.IPrimitiveType<String>> thePropertyNames, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Specified by:
      lookupCode in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • subsumes

      public IFhirResourceDaoCodeSystem.SubsumesResult subsumes(org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCodeA, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCodeB, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theSystem, org.hl7.fhir.instance.model.api.IBaseCoding theCodingA, org.hl7.fhir.instance.model.api.IBaseCoding theCodingB, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Specified by:
      subsumes in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • preDelete

      protected void preDelete(T theResourceToDelete, ResourceTable theEntityToDelete, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Description copied from class: BaseHapiFhirResourceDao
      Subclasses may override to provide behaviour. Invoked within a delete transaction with the resource that is about to be deleted.
      Overrides:
      preDelete in class BaseHapiFhirResourceDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • reindex

      public ReindexOutcome reindex(ca.uhn.fhir.rest.api.server.storage.IResourcePersistentId thePid, ReindexParameters theReindexParameters, ca.uhn.fhir.rest.api.server.RequestDetails theRequest, ca.uhn.fhir.rest.api.server.storage.TransactionDetails theTransactionDetails)
      If there are more code systems to process than JpaStorageSettings.getDeferIndexingForCodesystemsOfSize(), then these codes will have their processing deferred (for a later time). This can result in future reindex steps *skipping* these code systems (if they're still deferred) and thus incorrect expansions resulting. So we override the reindex method for CodeSystems specifically to force reindex batch jobs to wait until all code systems are processed before moving on.
      Specified by:
      reindex in interface IFhirResourceDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
      Overrides:
      reindex in class BaseHapiFhirResourceDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • getReindexJobStatus

      Specified by:
      getReindexJobStatus in interface IFhirResourceDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • updateEntity

      public ResourceTable updateEntity(ca.uhn.fhir.rest.api.server.RequestDetails theRequest, org.hl7.fhir.instance.model.api.IBaseResource theResource, IBasePersistedResource theEntity, Date theDeletedTimestampOrNull, boolean thePerformIndexing, boolean theUpdateVersion, ca.uhn.fhir.rest.api.server.storage.TransactionDetails theTransactionDetails, boolean theForceUpdate, boolean theCreateNewHistoryEntry)
      Specified by:
      updateEntity in interface IJpaDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
      Overrides:
      updateEntity in class BaseHapiFhirDao<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • validateCode

      @Nonnull public ca.uhn.fhir.context.support.IValidationSupport.CodeValidationResult validateCode(org.hl7.fhir.instance.model.api.IIdType theCodeSystemId, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCodeSystemUrl, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theVersion, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCode, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theDisplay, org.hl7.fhir.instance.model.api.IBaseCoding theCoding, org.hl7.fhir.instance.model.api.IBaseDatatype theCodeableConcept, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Specified by:
      validateCode in interface IFhirResourceDaoCodeSystem<T extends org.hl7.fhir.instance.model.api.IBaseResource>
    • doLookupCode

      public static ca.uhn.fhir.context.support.IValidationSupport.LookupCodeResult doLookupCode(ca.uhn.fhir.context.FhirContext theFhirContext, FhirTerser theFhirTerser, ca.uhn.fhir.context.support.IValidationSupport theValidationSupport, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theCode, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theSystem, org.hl7.fhir.instance.model.api.IBaseCoding theCoding, org.hl7.fhir.instance.model.api.IPrimitiveType<String> theDisplayLanguage, Collection<org.hl7.fhir.instance.model.api.IPrimitiveType<String>> thePropertyNames)
    • createVersionedSystemIfVersionIsPresent

      public static String createVersionedSystemIfVersionIsPresent(String theCodeSystemUrl, String theVersion)