- Clear out the "patient.identifierRegex" global property to disable regular expression identifier searches.
- Clear out the "patient.identifierPrefix" and "patient.identifierSuffix" global properties to disable "like" identifier searches
- Make sure that the "dashboard.regimen.displayDrugSetIds" global property has concept ids, not names (e.g. "1085,1159" instead of "ANTIRETROVIRAL DRUGS,TUBERCULOSIS TREATMENT DRUGS")lba
- Set the 'searchWidget.batchSize', 'searchWidget.runInSerialMode' and 'searchWidget.searchDelayInterval' global propertiesto to tune your searches for better performance and suit your implementation's environment e.g the speed of your network connection, typing skills and average number of simultaneous users on a typical work day. You might also consider reducing the value of the global properties person.searchMaxResults and increasing that of searchWidget.batchSize to reduce the load on the search widgets and server for better performance.
- searchWidget.batchSize -- defines the maximum number of results fetched within a single request to the server. Defaults to 200. Smaller numbers will result in more, smaller exchanges of data; larger numbers will allow for fewer, larger exchanges of data. The ideal number will depend on your context (e.g., a system using satellite connections may work better sending fewer, larger packets of data).
- searchWidget.searchDelayInterval -- is the number of milliseconds that the search widget wait after the last keystroke before searching. Defaults to 400 milliseconds. Smaller values can make searches feel quicker, but will create more network traffic from unnecessary requests.
- searchWidget.runInSerialMode – the search widget makes multiple queries to pull search results from the server. By default, the search widget will ask for everything it needs from the server at once (in parallel). If you are concerned about too much traffic coming to the server at once, you can change this setting to
true. In most cases, this could slow down the return of results to the client; however, if your server is overloaded, then using serial mode and reducing the concurrent load on the server may actually help.
- searchWidget.maximumResults - Specifies the maximum number of results to return from a single search in the search widgets, note that this differs from the batch size.
- When using MySQL with case insensitive collation set "search.caseSensitiveDatabaseStringComparison" global property to Setting (formerly Global Property from 1.8 downwards) to "false". It will improve search performance on OpenMRS 1.7.4+, 1.8.4, 1.9.1+, 1.10+. See TRUNK-2767.