001/*- 002 * #%L 003 * HAPI FHIR JPA Model 004 * %% 005 * Copyright (C) 2014 - 2024 Smile CDR, Inc. 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package ca.uhn.fhir.jpa.model.entity; 021 022/** 023 * Support different UCUM services level for FHIR Quantity data type. 024 * 025 * @since 5.3.0 026 */ 027public enum NormalizedQuantitySearchLevel { 028 029 /** 030 * default, Quantity is stored in {@link ResourceIndexedSearchParamQuantity} only and it is used by searching. 031 */ 032 NORMALIZED_QUANTITY_SEARCH_NOT_SUPPORTED, 033 034 /** 035 * Quantity is stored in both {@link ResourceIndexedSearchParamQuantity} 036 * and {@link ResourceIndexedSearchParamQuantityNormalized}, 037 * but {@link ResourceIndexedSearchParamQuantity} is used by searching. 038 */ 039 NORMALIZED_QUANTITY_STORAGE_SUPPORTED, 040 041 /** 042 * Quantity is stored in both {@link ResourceIndexedSearchParamQuantity} 043 * and {@link ResourceIndexedSearchParamQuantityNormalized}, 044 * {@link ResourceIndexedSearchParamQuantityNormalized} is used by searching. 045 */ 046 NORMALIZED_QUANTITY_SEARCH_SUPPORTED; 047 048 /** 049 * Quantity is stored in only in {@link ResourceIndexedSearchParamQuantityNormalized}, 050 * {@link ResourceIndexedSearchParamQuantityNormalized} is used by searching. 051 * The existing non normalized quantity will be not supported 052 * NOTE? this option is not supported in this release 053 */ 054 // When this is enabled, we can enable testSortByQuantityWithNormalizedQuantitySearchFullSupported() 055 // NORMALIZED_QUANTITY_SEARCH_FULL_SUPPORTED, 056 057 public boolean storageOrSearchSupported() { 058 return this.equals(NormalizedQuantitySearchLevel.NORMALIZED_QUANTITY_STORAGE_SUPPORTED) 059 || this.equals(NormalizedQuantitySearchLevel.NORMALIZED_QUANTITY_SEARCH_SUPPORTED); 060 } 061}