Skip to content

mgoldenisc/isc-iknow-utils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iKnow Utilities

This repository bundles a few reusable IRIS NLP utilities for common scenarios.

All classes are in a bdb.iKnow package to avoid conflicting with existing namespace contents and provided without any warranty. Feel free to report issues through the GitHub repo.

Converters

bdb.iKnow.Converters.SemiStructured is a simple %iKnow.Source.Converter implementation that tries to prevent common key-value style elements from messing up iKnow output. For example:

MRN: 12345
HISTORY OF PRESENT ILLNESS: Patient reported wobbly toes in an earlier encounter, for which close
followup was recommended. Wobbling subsided after 3w of intense inactivity.
  
BP: 123/mmHg
LS: 456
KV: 78xyz
TREATMENT: Patient will continue to watch Netflix 14h pd.

iKnow expects natural language text and does not consider single line breaks to mean the end of a real sentence. Therefore, when passing the above text verbatim to the iKnow engine, you'll get those structured BP: 123/mmHg, LS: 456, etc elements concatenated to one another as if it were a sentence.

The bdb.iKnow.Converters.SemiStructured class can be used in a <converter ... /> tag in your domain definition to sneak a double line break in right before such keys so they are not appended to the previous line. Note that the implementation is somewhat cautious in only adding a line break before the keys and only getting triggered by all-uppercase keys to limit false positives that might mess up genuine use of colons in natural language sentences. This is a sample after all and easy to adapt to your needs.

As a bonus, this Converter can also pick up key values as metadata, by supplying a list of keys as the converter parameter, as shown in the example below:

USER> set converted = ##class(bdb.iKnow.Converters.SemiStructured).TestFull(str,$lb("MRN,KV,LS"),.meta)

USER> zwrite meta
meta("KV")="78xyz"
meta("LS")=456
meta("MRN")=12345

About

Bundles a few reusable IRIS NLP utilities for common scenarios

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • ObjectScript 100.0%