001/*-
002 * #%L
003 * HAPI FHIR - Server Framework
004 * %%
005 * Copyright (C) 2014 - 2025 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.subscription;
021
022public final class SubscriptionConstants {
023        private SubscriptionConstants() {}
024
025        /**
026         * The number of threads used in subscription channel processing
027         */
028        public static final int MATCHING_CHANNEL_CONCURRENT_CONSUMERS = 5;
029
030        public static final int DELIVERY_CHANNEL_CONCURRENT_CONSUMERS = 2;
031
032        /**
033         * The maximum number of subscriptions that can be active at once
034         */
035        public static final int MAX_SUBSCRIPTION_RESULTS = 10000;
036
037        /**
038         * The size of the queue used for sending resources to the subscription matching processor and by each subscription delivery queue
039         */
040        public static final int DELIVERY_EXECUTOR_QUEUE_SIZE = 1000;
041
042        public static final String SUBSCRIPTION_STATUS = "Subscription.status";
043        public static final String SUBSCRIPTION_TYPE = "Subscription.channel.type";
044        // These STATUS codes are unchanged from DSTU2 Subscription onwards
045        public static final String REQUESTED_STATUS = "requested";
046        public static final String ACTIVE_STATUS = "active";
047        public static final String ERROR_STATUS = "error";
048        public static final String SUBSCRIPTION_TOPIC_PROFILE_URL =
049                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription";
050        public static final String SUBSCRIPTION_TOPIC_FILTER_URL =
051                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-filter-criteria";
052        public static final String SUBSCRIPTION_TOPIC_CHANNEL_HEARTBEAT_PERIOD_URL =
053                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-heartbeat-period";
054        public static final String SUBSCRIPTION_TOPIC_CHANNEL_TIMEOUT_URL =
055                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-timeout";
056        public static final String SUBSCRIPTION_TOPIC_CHANNEL_MAX_COUNT =
057                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-max-count";
058        public static final String SUBSCRIPTION_TOPIC_CHANNEL_PAYLOAD_CONTENT =
059                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content";
060        public static final String SUBSCRIPTION_TOPIC_STATUS =
061                        "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4";
062
063        // R4 SubscriptionTopic extension URLs
064        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_URL =
065                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.url";
066        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_VERSION =
067                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.version";
068        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_NAME =
069                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.name";
070        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_TITLE =
071                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.title";
072        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_DATE =
073                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.date";
074        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_DESCRIPTION =
075                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.description";
076        public static final String SUBSCRIPTION_TOPIC_R4_EXT_TOPIC_STATUS =
077                        "http://hl7.org/fhir/5.0/StructureDefinition/extension-SubscriptionTopic.status";
078        public static final String SUBSCRIPTION_TOPIC_R4_EXT_RESOURCE_TRIGGER =
079                        "http://hl7.org/fhir/4.3/StructureDefinition/extension-SubscriptionTopic.resourceTrigger";
080        public static final String SUBSCRIPTION_TOPIC_R4_EXT_CAN_FILTER_BY =
081                        "http://hl7.org/fhir/4.3/StructureDefinition/extension-SubscriptionTopic.canFilterBy";
082        public static final String SUBSCRIPTION_TOPIC_R4_EXT_NOTIFICATION_SHAPE =
083                        "http://hl7.org/fhir/4.3/StructureDefinition/extension-SubscriptionTopic.notificationShape";
084
085        // R4 SubscriptionTopic extension URL Nested extensions
086        public static final String SUBSCRIPTION_TOPIC_R4_EXT_DESCRIPTION = "description";
087        public static final String SUBSCRIPTION_TOPIC_R4_EXT_RESOURCE = "resource";
088        public static final String SUBSCRIPTION_TOPIC_R4_EXT_SUPPORTED_INTERACTION = "supportedInteraction";
089        public static final String SUBSCRIPTION_TOPIC_R4_EXT_FHIRPATH_CRITERIA = "fhirPathCriteria";
090        public static final String SUBSCRIPTION_TOPIC_R4_EXT_FILTER_PARAMETER = "filterParameter";
091        public static final String SUBSCRIPTION_TOPIC_R4_EXT_INCLUDE = "include";
092        public static final String SUBSCRIPTION_TOPIC_R4_EXT_REVINCLUDE = "revInclude";
093
094        // R4 SubscriptionTopic query criteria
095        public static final String SUBSCRIPTION_TOPIC_R4_EXT_QUERY_CRITERIA = "queryCriteria";
096        public static final String SUBSCRIPTION_TOPIC_R4_EXT_QUERY_CRITERIA_PREVIOUS = "previous";
097        public static final String SUBSCRIPTION_TOPIC_R4_EXT_QUERY_CRITERIA_CURRENT = "current";
098        public static final String SUBSCRIPTION_TOPIC_R4_EXT_QUERY_CRITERIA_REQUIRE_BOTH = "requireBoth";
099
100        public static final int ORDER_SUBSCRIPTION_VALIDATING = 100;
101        public static final int ORDER_SUBSCRIPTION_ACTIVATING = 200;
102}