@Search public List<Patient> findPatient( @RequiredParam(name = Patient.SP_NAME) StringDt theName, @IncludeParam(allow = {"foo", "bar"}) Set<Include> theIncludes) { ArrayList<Patient> retVal = new ArrayList<Patient>(); Patient p = new Patient(); p.addIdentifier().setSystem("foo").setValue("bar"); p.setId(theName.getValue()); if (theIncludes != null) { for (Include next : theIncludes) { p.addName().addFamily().setValue(next.getValue()); } } retVal.add(p); return retVal; }
@Override public Bundle execute() { Map<String, List<String>> params = new LinkedHashMap<String, List<String>>(); // Map<String, List<String>> initial = createExtraParams(); // if (initial != null) { // params.putAll(initial); // } for (ICriterionInternal next : myCriterion) { String parameterName = next.getParameterName(); String parameterValue = next.getParameterValue(); addParam(params, parameterName, parameterValue); } for (Include next : myInclude) { addParam(params, Constants.PARAM_INCLUDE, next.getValue()); } for (SortInternal next : mySort) { addParam(params, next.getParamName(), next.getParamValue()); } if (myParamLimit != null) { addParam(params, Constants.PARAM_COUNT, Integer.toString(myParamLimit)); } BundleResponseHandler binding = new BundleResponseHandler(myResourceType); IdDt resourceId = myResourceId != null ? new IdDt(myResourceId) : null; BaseHttpClientInvocation invocation = SearchMethodBinding.createSearchInvocation( myContext, myResourceName, params, resourceId, myCompartmentName, mySearchStyle); return invoke(params, binding, invocation); }