Well I’ve had a fairly productive week. I finally got around to implementing the Patient and Cohort Search widgets for which I had just built the skeletons before. The primary challenge was building the PatientSearchController and CohortSearchController. The input is given by the user on the search forms and I basically implement a brute force search on the all the patients in the database.
Unfortunately there doesn’t involve an efficient way to get all the patients from the DB without using soundex in SQL through which similar sounding names can be retrieved. While using soundex isn’t all that hard, we have complications with a what part of the patient’s name we would execute a query on (the first, middle or family name). So we simply take in the user’s name through a dropdown auto-suggest box and execute a search query on that.
Here are pictures of the Cohort Search and Patient Search pages with successful searches.
Quite a lot of other bugs were also resolved this week. I had a lot of fun resolving a bug where when you could click in the ‘Search’ button on the manageCohortRole page, it would go blank. The problem was in the liquibase file where a particular column was not being inserted into the database which building it but a mapping was being performed in the hbm.xml. Others invole a few UI fixed controller refinements.
The module is finally going to be reviewed in detail next week and i’ll have a lot of other bugs to work on then