1 2 package ca.uhn.fhir.jpa.rp.dstu3; 3 4 import java.util.*; 5 6 import org.apache.commons.lang3.StringUtils; 7 8 import ca.uhn.fhir.jpa.provider.dstu3.*; 9 import ca.uhn.fhir.jpa.searchparam.SearchParameterMap; 10 import ca.uhn.fhir.model.api.Include; 11 import ca.uhn.fhir.model.api.annotation.*; 12 import org.hl7.fhir.dstu3.model.*; 13 import ca.uhn.fhir.rest.annotation.*; 14 import ca.uhn.fhir.rest.param.*; 15 import ca.uhn.fhir.rest.api.SortSpec; 16 import ca.uhn.fhir.rest.api.SummaryEnum; 17 import ca.uhn.fhir.rest.api.SearchTotalModeEnum; 18 19 public class LinkageResourceProvider extends 20 JpaResourceProviderDstu3<Linkage> 21 { 22 23 @Override 24 public Class<Linkage> getResourceType() { 25 return Linkage.class; 26 } 27 28 @Search(allowUnknownParams=true) 29 public ca.uhn.fhir.rest.api.server.IBundleProvider search( 30 javax.servlet.http.HttpServletRequest theServletRequest, 31 javax.servlet.http.HttpServletResponse theServletResponse, 32 33 ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails, 34 35 @Description(shortDefinition="Search the contents of the resource's data using a fulltext search") 36 @OptionalParam(name=ca.uhn.fhir.rest.api.Constants.PARAM_CONTENT) 37 StringAndListParam theFtContent, 38 39 @Description(shortDefinition="Search the contents of the resource's narrative using a fulltext search") 40 @OptionalParam(name=ca.uhn.fhir.rest.api.Constants.PARAM_TEXT) 41 StringAndListParam theFtText, 42 43 @Description(shortDefinition="Search for resources which have the given tag") 44 @OptionalParam(name=ca.uhn.fhir.rest.api.Constants.PARAM_TAG) 45 TokenAndListParam theSearchForTag, 46 47 @Description(shortDefinition="Search for resources which have the given security labels") 48 @OptionalParam(name=ca.uhn.fhir.rest.api.Constants.PARAM_SECURITY) 49 TokenAndListParam theSearchForSecurity, 50 51 @Description(shortDefinition="Search for resources which have the given profile") 52 @OptionalParam(name=ca.uhn.fhir.rest.api.Constants.PARAM_PROFILE) 53 UriAndListParam theSearchForProfile, 54 55 @Description(shortDefinition="Return resources linked to by the given target") 56 @OptionalParam(name="_has") 57 HasAndListParam theHas, 58 59 60 @Description(shortDefinition="The ID of the resource") 61 @OptionalParam(name="_id") 62 TokenAndListParam the_id, 63 64 @Description(shortDefinition="The language of the resource") 65 @OptionalParam(name="_language") 66 StringAndListParam the_language, 67 68 @Description(shortDefinition="Author of the Linkage") 69 @OptionalParam(name="author", targetTypes={ } ) 70 ReferenceAndListParam theAuthor, 71 72 @Description(shortDefinition="Matches on any item in the Linkage") 73 @OptionalParam(name="item", targetTypes={ } ) 74 ReferenceAndListParam theItem, 75 76 @Description(shortDefinition="Matches on any item in the Linkage with a type of 'source'") 77 @OptionalParam(name="source", targetTypes={ } ) 78 ReferenceAndListParam theSource, 79 80 @RawParam 81 Map<String, List<String>> theAdditionalRawParams, 82 83 @IncludeParam(reverse=true) 84 Set<Include> theRevIncludes, 85 @Description(shortDefinition="Only return resources which were last updated as specified by the given range") 86 @OptionalParam(name="_lastUpdated") 87 DateRangeParam theLastUpdated, 88 89 @IncludeParam(allow= { 90 "Linkage:author" , "Linkage:item" , "Linkage:source" , "Linkage:author" , "Linkage:item" , "Linkage:source" , "Linkage:author" , "Linkage:item" , "Linkage:source" , "*" 91 }) 92 Set<Include> theIncludes, 93 94 @Sort 95 SortSpec theSort, 96 97 @ca.uhn.fhir.rest.annotation.Count 98 Integer theCount, 99 100 SummaryEnum theSummaryMode, 101 102 SearchTotalModeEnum theSearchTotalMode 103 104 ) { 105 startRequest(theServletRequest); 106 try { 107 SearchParameterMap paramMap = new SearchParameterMap(); 108 paramMap.add(ca.uhn.fhir.rest.api.Constants.PARAM_CONTENT, theFtContent); 109 paramMap.add(ca.uhn.fhir.rest.api.Constants.PARAM_TEXT, theFtText); 110 paramMap.add(ca.uhn.fhir.rest.api.Constants.PARAM_TAG, theSearchForTag); 111 paramMap.add(ca.uhn.fhir.rest.api.Constants.PARAM_SECURITY, theSearchForSecurity); 112 paramMap.add(ca.uhn.fhir.rest.api.Constants.PARAM_PROFILE, theSearchForProfile); 113 paramMap.add("_has", theHas); 114 paramMap.add("_id", the_id); 115 paramMap.add("_language", the_language); 116 paramMap.add("author", theAuthor); 117 paramMap.add("item", theItem); 118 paramMap.add("source", theSource); 119 paramMap.setRevIncludes(theRevIncludes); 120 paramMap.setLastUpdated(theLastUpdated); 121 paramMap.setIncludes(theIncludes); 122 paramMap.setSort(theSort); 123 paramMap.setCount(theCount); 124 paramMap.setSummaryMode(theSummaryMode); 125 paramMap.setSearchTotalMode(theSearchTotalMode); 126 127 getDao().translateRawParameters(theAdditionalRawParams, paramMap); 128 129 ca.uhn.fhir.rest.api.server.IBundleProvider retVal = getDao().search(paramMap, theRequestDetails, theServletResponse); 130 return retVal; 131 } finally { 132 endRequest(theServletRequest); 133 } 134 } 135 136 }