HL7 encoding rules consist of data fields that are of variable length and separated by a field separator character (typically ‘|’).
All data is represented as displayable characters from a selected character set. The ASCII displayable character set (hexadecimal values between 20 and 7E, inclusive) is the default character set unless modified in the MSH header segment. The field separator must be chosen from the ASCII displayable character set. All the other special separators and other special characters are also displayable characters, except the segment separator which is the ASCII Carriage Return character.
Present but Null
The distinction between NULL values and those that are not present is important when a record is being updated. If NULL is sent then the database field should be set to NULL, if nothing is sent then it should retain its prior value. The encoding rules specify that if a receiving application cannot deal with a data field not being present, it should treat the data field as present but NULL.
The encoding rules specify that a receiving application should ignore fields that are present in the message, but were not expected – rather than treat such a circumstance as an error.