0.3.0 - August 2014
0.3.0 breaks backwards compatibility by correcting
the indexing of the MSH segment and the introducing improved parsing down to
the repetition and sub-component level.
- Changed the numbering of fields in the MSH segment.
This breaks older code.
- Parse all the elements of the message (i.e. down to sub-component). The
inclusion of repetitions will break older code.
- Implemented a basic escaping mechanism
- New constant ‘NULL’ which maps to ‘”“’
- New hl7.isfile() and hl7.split_file() functions to
identify file (FHS/FTS) wrapped messages
- New mechanism to address message parts via a symbolic accessor name
- Message (and Message.segments), Field, Repetition and Component can be
accessed using 1-based indices by using them as a callable.
- Added Python 3 support. Python 2.6, 2.7, and 3.3 are officially supported.
- hl7.parse() can now decode byte strings, using the encoding
parameter. hl7.client.MLLPClient can now encode unicode input
using the encoding parameter. To support Python 3, unicode is now
the primary string type used inside the library. bytestrings are only
allowed at the edge of the library now, with hl7.parse and sending
via hl7.client.MLLPClient. Refer to Python 2 vs Python 3 and Unicode vs Byte strings.
- Testing via tox and travis CI added. See Contributing.
A massive thanks to Kevin Gill and
Emilien Klein for the initial code submissions
to add the improved parsing, and to
Andrew Wason for rebasing the initial pull
request and providing assistance in the transition.