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