# GSoC 2024 - Enhanced Search Functionality for OpenELIS

**URL:** <https://talk.openelis-global.org/t/gsoc-2024-enhanced-search-functionality-for-openelis/731>\
**Category:** GSOC\
**Tags:** gsoc2024\
**Created:** [May 7, 2024, 7:41am UTC](https://talk.openelis-global.org/t/gsoc-2024-enhanced-search-functionality-for-openelis/731 "2024-05-07T07:41:23Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![rahul6603](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/rahul6603/32/462_2.png) [@rahul6603](https://talk.openelis-global.org/u/rahul6603)\
**Post date:** [May 20, 2024, 8:24am UTC](https://talk.openelis-global.org/t/gsoc-2024-enhanced-search-functionality-for-openelis/731/2 "2024-05-20T08:24:09Z")

</div>

## Community Bonding Period (May 1 - 26)

I had an insightful call with my mentor @Moses_Mutesasira to discuss and refine our project plan, particularly the low-level design of the Search Patient module. Here is a brief summary of the existing and proposed solutions that we discussed -

### Existing solution

The current implementation of the patient search functionality is structured around a controller method _ **getPatientResults** _, a service layer using the interface _ **SearchResultsService** _ and its implementation _ **SearchResultsServiceImpl** _, and a Data Access Object (DAO) using the interface _ **SearchResultsDAO** _ and its implementation _ **SearchResultsDAOImp** _.

 ![UML Diagram for existing solution](https://canada1.discourse-cdn.com/flex030/uploads/openelisci/original/1X/3aae94945b123a87738de4a2e975fe37f7840ce8.png)

### Proposed Solution

- We will create a new implementation of the _ **SearchResultsService** _ interface in the service layer, called _ **LuceneSearchResultsService** _ and a new implementation of the _ **SearchResultsDAO** _ interface, called _ **LuceneSearchResultsDAO** _.

- We will modify the existing service layer implementation _ **SearchResultsServiceImpl** _ to _ **DatabaseSearchResultsService** _ and the existing DAO implementation _ **SearchResultsDAOImp** _ to _ **DatabaseSearchResultsDAO** _.

 ![UML Diagram for proposed solution](https://canada1.discourse-cdn.com/flex030/uploads/openelisci/original/1X/912652230a7bb0f0ab9ccb9bf9fb7330e8c0f1cf.png)

The coding period officially starts on May 27 and before that, I will focusing on learning more about Apache Lucene search queries and finalising the project plan with my mentor.

CC: @Moses_Mutesasira

---

_[View the full topic](https://talk.openelis-global.org/t/gsoc-2024-enhanced-search-functionality-for-openelis/731)._
