Contents
--------

1.0 Description
2.0 History


1.0 Description
---------------

This is the Perl HL7 API. It is a very simple, but rather flexible API
for use in Perl applications.  Development is in full progress, so
please bear with me for the moment, while I test the API in real
situations, and converge on a basic API that provides the stuff you
meet in real HL7-life.  The focus of this API is on providing the HL7
wrapping and composing of messages, not providing hundreds of prefab
HL7 messages.

Please refer to the POD documentation for examples and the API
documentation.


2.0 History
-----------

version 0.68:
* Added more documentation (this is an ongoing effort...)
* made setField on segment accept multiple values. These are joined with
  the component separator.
* Added the HL7 NULL variable for the setField operation on a segment.
* Fixes in MSH segment due to some reference interference quirks on 
  Solaris.
* Added size method to Segment
* Made ACK message type copy full MSH when initialized with message, then
  set it's own specific fields.
* Fixed some complaints when running in strict mode on uninitialized values.
* Fixed some tests that used undefined values.

version 0.67:
* Added COMPONENT_SEPARATOR, REPETITION_SEPARATOR, ESCAPE_CHARACTER and
  SUBCOMPONENT_SEPARATOR to the MSH segment. The setField method on this
  segment, on index 2 now actually changes the values of these variables.
  Also checks on setting field 1 on MSH, whether input is just 1 char.
* Fixes on ACK, to set the error message.  
* Check on segment id: it must be exactely three characters long, upper 
  case.
* Fixed Makefile.PL, so it now really installs into the Perl lib path.
* Added more methods to the Message to manipulate segments.

version 0.66:
* Implemented the getNextRequest method to actually read new data. The
  getRequest method only reads data from the socket if there's no request
  cached.

version 0.65:
* the getRequest method of the Net::HL7::Daemon::Client has been enabled for
  multiple incoming messages. This means that the getRequest method now tries
  to read from the socket every time it is called.
* Fixed some documentation

version 0.64:
* Fixed error in daemon and ack tests
* Fixed erroneous setting of MSH fields in Message.pm
* set MSH(11) to P and MSH(15) to AL per default
* Made new() method of Message also split message string on \n
* ACK now takes MSH(11) and MSH(12) from incoming MSH, and sets MSH(15) and MSH(16)
  to the empty string.
* Fixed erroneous sendAck and sendNack methods. The stuff is now sent as a single 
  line, to prevent perl from inserting separators, like end of lines, etc.

version 0.63:
* fixed some POD errors
* added the sendResponse method to Net::HL7::Daemon::Client
* Removed NACK module: it doesn't exists in the HL7 world.
* The MSH segment now uses index 1 of it's fields for the FIELD_SEPARATOR value;
  other fields have moved one to the right
* added setAckCode method to ACK, to be able to set the error for the acknowledgement.

version 0.62:
* Fixed erroneous read of input buffer for Client
* Added ACK, NACK messages
* Added MSH segment
* getSegmentByName is removed
* Made the Daemon and the Client inherit from IO::Socket, so you can more 
  easy do things with forking and other server operations you would 
  perform on sockets.
* Made several constructors set segments and values, like auto-adding the
  MSH segment to every instance of Message.

version 0.61:
* Moved the stuff to a new namespace (Net::HL7)
* Created a Daemon, resembling the HTTP::Daemon
* Created the Request and Response classes
* added tests

version 0.5:
* Added the getField method to HL7::Message
* repaired broken message parse for HL7::Message constructor

version 0.4:
* Removed spurious newline between segments.
