New version of Radsearch written from the ground up and using new indexing technology. Thanks and conceptual credit to the original Radsearch team from the University of Maryland (Mark Daly, Wayne LaBelle, Chris Meenan, Christopher Toland, Max Warnock) and Indiana University (Marc Kohli, M.D.).
- A server to host - I use Apache on Ubuntu Server 14.04 but only to proxypass to Passenger (see #4)
- Ruby - I use version 2.1.5
- The right ruby gems: sinatra, ldap, mysql, json, chronic, net/http
- Something to run a Ruby/Sinatra application - I use Passenger Standalone
- Javascript libraries
- CSS libraries
- Access to HL7 data or some other data source where you can extract radiology report data. I load this data into a MySQL database but Solr can index from many data sources
- An instance of Solr to index your reports - I have one running on a separate VM
You'll need to create db-data-config.xml (at least that's what my config file is called) that establishes a query, a deltaQuery, and a deltaImportQuery. The query and deltaImportQuery should pull all the data you want to be indexed. The deltaQuery should identify those reports that have been updated since the last index - I do this by comparing a modified timestamp from our reports MySQL database to the Solr variable ${dih.last_index_time}. You also need to provide MySQL authentication information in this file. In my case (using Solr on a separate VM) I had to be sure to allow my MySQL server to allow access from that VM IP.
You'll also need to modify the managed-schema file - this identifies the fields you want indexed and stored, and how you want them indexed. See example in config directory.
In solrconfig.xml I had to include this jar file to allow access to MySQL
<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-\d.*\.jar" />