Shelve can't handle unicode strings as keys - convert all to string.
HL7 library requires full HL7 message, not a line at a time.
Safeguard from modifying non-existant fields.
sync the shelve instance to eliminate shutdown noise.
handly sloppy input when missing time on datetime formats