/** * Extracts results from the returned bundle. Override for special processing. * * @param bundle The bundle. * @return List of extracted resources. */ protected List<R> processBundle(Bundle bundle) { return FhirUtil.getEntries(bundle, resourceClass); }
@Override protected List<IBaseResource> processBundle(Bundle bundle) { return FhirUtil.getEntries(bundle, null, Collections.singletonList(Patient.class)); }
/** * Alternative method for performing a search that allows for external configuration of the * query object. * * @param query The query object. * @return List of matching resources. May return null to indicate no matches. */ @Override public List<R> search(IQuery<?> query) { return FhirUtil.getEntries(query.returnBundle(Bundle.class).execute(), resourceClass); } }
/** * Fetch multiple instances of the domain class from the data store. */ @Override public <T extends BaseResource> List<T> fetchObjects(Class<T> clazz, String[] ids) { if (ids == null || ids.length == 0) { return Collections.emptyList(); } StringClientParam param = new StringClientParam(BaseResource.SP_RES_ID); Bundle results = fhirClient.search().forResource(clazz).where(param.matches().values(ids)).returnBundle(Bundle.class) .execute(); return FhirUtil.getEntries(results, clazz); }
private static synchronized void loadServiceCategories() { if (serviceCategories == null) { Map<String, CodeableConcept> map = new LinkedHashMap<>(); Bundle bundle = ClientUtil.getFhirClient().search().forResource(ValueSet.class) .where(CodeSystem.NAME.matchesExactly().value("EncounterType")).returnBundle(Bundle.class).execute(); for (CodeSystem cs : FhirUtil.getEntries(bundle, CodeSystem.class)) { UriType system = cs.getUrlElement(); for (ConceptDefinitionComponent concept : cs.getConcept()) { CodeableConcept cc = new CodeableConcept(); Coding coding = cc.addCoding(); coding.setCode(concept.getCode()); coding.setDisplay(concept.getDisplay()); coding.setSystemElement(system); cc.setText(concept.getDefinition()); map.put(coding.getCode(), cc); } } serviceCategories = map; } return; }