Blood Pressure should search for something like (blood or blood*) or (pressure or pressure*)
. That is, the union of individual words and taking advantage of Lucene’s stemming (e.g., finding “pressures”).
We use eDisMax to allow for more complex phrasing. It’s a nice feature to have, but Chart Search can still be very clinically useful without this feature, so I wouldn’t make it your top priority.
Yes. Again, not a top priority, but it’s handy to have. A regular expression like s/(?!and\b|or\b)(\b[^\s]+)\b(?=([^"]*"[^"]*")*[^"]*$)/$1*/g
can turn a query like mammo and this and "mammo" or "match this phrase exactly"
into a Lucene query for you (try it out on the regex playground).
Yes.
Sure, though I wouldn’t use “obs”. Create clinical categories, not data model categories. At Regenstrief, we’re planning on support lab:glucose
as well as glucose in lab
. FYI – you want a magic term for each category, but make sure to allow for common variations (e.g., lab:blood
and labs:blood
should be equivalent, rad:foot
and radiology:foot
would both search for foot
in radiology results).
We prioritized saving default filtering over this feature, since being able to define your own starting filters is more generally useful.
Using Lucene, you can get some of these automatically. And, for the end of words, I would always apply the wildcard – i.e., foo
becomes (foo or foo*)
. Most non-geeks aren’t going to know about *
for wildcards, so I wouldn’t both with this feature.
Absolutely. As I’ve said above, I would always provide wildcard & stemming on all search terms that aren’t within quotes.