001/*-
002 * #%L
003 * HAPI FHIR Storage api
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.api.dao;
021
022import ca.uhn.fhir.model.api.annotation.Description;
023import ca.uhn.fhir.rest.api.SortSpec;
024import ca.uhn.fhir.rest.param.DateRangeParam;
025import ca.uhn.fhir.rest.param.StringAndListParam;
026import org.hl7.fhir.instance.model.api.IPrimitiveType;
027
028public final class PatientEverythingParameters {
029        @Description(
030                        formalDefinition =
031                                        "Results from this method are returned across multiple pages. This parameter controls the size of those pages.")
032        private IPrimitiveType<Integer> myCount;
033
034        @Description(
035                        formalDefinition =
036                                        "Results from this method are returned across multiple pages. This parameter controls the offset when fetching a page.")
037        private IPrimitiveType<Integer> myOffset;
038
039        @Description(shortDefinition = "Only return resources which were last updated as specified by the given range")
040        private DateRangeParam myLastUpdated;
041
042        @Description(shortDefinition = "The order in which to sort the results by")
043        private SortSpec mySort;
044
045        @Description(
046                        shortDefinition =
047                                        "Filter the resources to return only resources matching the given _content filter (note that this filter is applied only to results which link to the given patient, not to the patient itself or to supporting resources linked to by the matched resources)")
048        private StringAndListParam myContent;
049
050        @Description(
051                        shortDefinition =
052                                        "Filter the resources to return only resources matching the given _text filter (note that this filter is applied only to results which link to the given patient, not to the patient itself or to supporting resources linked to by the matched resources)")
053        private StringAndListParam myNarrative;
054
055        @Description(
056                        shortDefinition =
057                                        "Filter the resources to return only resources matching the given _filter filter (note that this filter is applied only to results which link to the given patient, not to the patient itself or to supporting resources linked to by the matched resources)")
058        private StringAndListParam myFilter;
059
060        @Description(
061                        shortDefinition =
062                                        "Filter the resources to return only resources matching the given _type filter (note that this filter is applied only to results which link to the given patient, not to the patient itself or to supporting resources linked to by the matched resources)")
063        private StringAndListParam myTypes;
064
065        @Description(
066                        shortDefinition = "If set to true, trigger an MDM expansion of identifiers corresponding to the resources.")
067        private boolean myMdmExpand = false;
068
069        public IPrimitiveType<Integer> getCount() {
070                return myCount;
071        }
072
073        public IPrimitiveType<Integer> getOffset() {
074                return myOffset;
075        }
076
077        public DateRangeParam getLastUpdated() {
078                return myLastUpdated;
079        }
080
081        public SortSpec getSort() {
082                return mySort;
083        }
084
085        public StringAndListParam getContent() {
086                return myContent;
087        }
088
089        public StringAndListParam getNarrative() {
090                return myNarrative;
091        }
092
093        public StringAndListParam getFilter() {
094                return myFilter;
095        }
096
097        public StringAndListParam getTypes() {
098                return myTypes;
099        }
100
101        public boolean getMdmExpand() {
102                return myMdmExpand;
103        }
104
105        public void setCount(IPrimitiveType<Integer> theCount) {
106                this.myCount = theCount;
107        }
108
109        public void setOffset(IPrimitiveType<Integer> theOffset) {
110                this.myOffset = theOffset;
111        }
112
113        public void setLastUpdated(DateRangeParam theLastUpdated) {
114                this.myLastUpdated = theLastUpdated;
115        }
116
117        public void setSort(SortSpec theSort) {
118                this.mySort = theSort;
119        }
120
121        public void setContent(StringAndListParam theContent) {
122                this.myContent = theContent;
123        }
124
125        public void setNarrative(StringAndListParam theNarrative) {
126                this.myNarrative = theNarrative;
127        }
128
129        public void setFilter(StringAndListParam theFilter) {
130                this.myFilter = theFilter;
131        }
132
133        public void setTypes(StringAndListParam theTypes) {
134                this.myTypes = theTypes;
135        }
136
137        public void setMdmExpand(Boolean myMdmExpand) {
138                this.myMdmExpand = myMdmExpand;
139        }
140}