Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List<ChartListItem> getDocumentList(Integer patientId,
- String searchText, Integer start, Integer length) throws Exception {
- SolrServer solrServer = SolrSingleton.getInstance().getServer();
- // TODO Move to Eli's code
- searchText = StringUtils.isNotBlank(searchText) ? searchText : "*";
- if (StringUtils.isNumeric(searchText)){
- searchText = searchText + ".*" + " || " + searchText;
- }
- SolrQuery query = new SolrQuery(String.format("text:(%s)", searchText));
- query.addFilterQuery(String.format("person_id:%d", patientId));
- //TODO add selected categories to the query here or use all categories
- List<CategoryFilter> existingCategories = getChartSearchService().getAllCategoryFilters();
- //this is where i need assistance from, i want to checkout which checkboxes are checked and then store their category names in selectedCategories
- List<String> selectedCategories = null;
- Iterator<String> iterator1 = selectedCategories.iterator();
- Iterator<CategoryFilter> iterator2 = existingCategories.iterator();
- while(iterator1.hasNext()) {
- while(iterator2.hasNext()){
- if(iterator1.next() == iterator2.next().getCategoryName()) {
- query.addFacetQuery(iterator2.next().getFilterQuery());
- }
- }
- }
- query.setStart(start);
- query.setRows(length);
- query.setHighlight(true).setHighlightSnippets(1).setHighlightSimplePre("<b>").setHighlightSimplePost("</b>");
- query.setParam("hl.fl", "text");
- System.out.println("Observations:");
- QueryResponse response = solrServer.query(query);
- Iterator<SolrDocument> iter = response.getResults().iterator();
- List<ChartListItem> list = new ArrayList<ChartListItem>();
- while (iter.hasNext()) {
- SolrDocument document = iter.next();
- String uuid = (String) document.get("id");
- Integer obsId = (Integer) document.get("obs_id");
- Date obsDate = (Date) document.get("obs_datetime");
- Integer obsGroupId = (Integer) document.get("obs_group_id");
- List<String> values = ((List<String>) document.get("value"));
- String value = "";
- if (values != null){ value = values.get(0); }
- String conceptName = (String) document.get("concept_name");
- ObsItem item = new ObsItem();
- item.setUuid(uuid);
- item.setObsId(obsId);
- item.setConceptName(conceptName);
- item.setObsDate(obsDate.toString());
- item.setObsGroupId(obsGroupId);
- item.setValue(value);
- if (response.getHighlighting().get(uuid) != null) {
- List<String> highlights = response.getHighlighting().get(uuid)
- .get("text");
- if (highlights != null && !highlights.isEmpty()) {
- item.setHighlights(new ArrayList<String>(highlights));
- }
- }
- list.add(item);
- System.out.println(document.get("obs_id") + ", " + document.get("concept_name") + ", " + document.get("obs_datetime"));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement