Advertisement
k-joseph

Untitled

Jun 24th, 2014
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. public List<ChartListItem> getDocumentList(Integer patientId,
  2. String searchText, Integer start, Integer length) throws Exception {
  3. SolrServer solrServer = SolrSingleton.getInstance().getServer();
  4.  
  5. // TODO Move to Eli's code
  6. searchText = StringUtils.isNotBlank(searchText) ? searchText : "*";
  7. if (StringUtils.isNumeric(searchText)){
  8. searchText = searchText + ".*" + " || " + searchText;
  9. }
  10.  
  11. SolrQuery query = new SolrQuery(String.format("text:(%s)", searchText));
  12. query.addFilterQuery(String.format("person_id:%d", patientId));
  13.  
  14. //TODO add selected categories to the query here or use all categories
  15. List<CategoryFilter> existingCategories = getChartSearchService().getAllCategoryFilters();
  16.  
  17. //this is where i need assistance from, i want to checkout which checkboxes are checked and then store their category names in selectedCategories
  18. List<String> selectedCategories = null;
  19. Iterator<String> iterator1 = selectedCategories.iterator();
  20. Iterator<CategoryFilter> iterator2 = existingCategories.iterator();
  21. while(iterator1.hasNext()) {
  22. while(iterator2.hasNext()){
  23. if(iterator1.next() == iterator2.next().getCategoryName()) {
  24. query.addFacetQuery(iterator2.next().getFilterQuery());
  25. }
  26. }
  27. }
  28.  
  29. query.setStart(start);
  30. query.setRows(length);
  31. query.setHighlight(true).setHighlightSnippets(1).setHighlightSimplePre("<b>").setHighlightSimplePost("</b>");
  32. query.setParam("hl.fl", "text");
  33.  
  34.  
  35. System.out.println("Observations:");
  36. QueryResponse response = solrServer.query(query);
  37.  
  38. Iterator<SolrDocument> iter = response.getResults().iterator();
  39.  
  40. List<ChartListItem> list = new ArrayList<ChartListItem>();
  41. while (iter.hasNext()) {
  42. SolrDocument document = iter.next();
  43.  
  44. String uuid = (String) document.get("id");
  45. Integer obsId = (Integer) document.get("obs_id");
  46. Date obsDate = (Date) document.get("obs_datetime");
  47. Integer obsGroupId = (Integer) document.get("obs_group_id");
  48. List<String> values = ((List<String>) document.get("value"));
  49.  
  50. String value = "";
  51. if (values != null){ value = values.get(0); }
  52.  
  53. String conceptName = (String) document.get("concept_name");
  54.  
  55. ObsItem item = new ObsItem();
  56. item.setUuid(uuid);
  57. item.setObsId(obsId);
  58. item.setConceptName(conceptName);
  59. item.setObsDate(obsDate.toString());
  60. item.setObsGroupId(obsGroupId);
  61. item.setValue(value);
  62.  
  63. if (response.getHighlighting().get(uuid) != null) {
  64. List<String> highlights = response.getHighlighting().get(uuid)
  65. .get("text");
  66. if (highlights != null && !highlights.isEmpty()) {
  67. item.setHighlights(new ArrayList<String>(highlights));
  68. }
  69. }
  70. list.add(item);
  71. System.out.println(document.get("obs_id") + ", " + document.get("concept_name") + ", " + document.get("obs_datetime"));
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement