|
Sun Adapter for TCP/IP HL7 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.stc.connector.hl7.framework.llp.HLLP
public class HLLP
This class represents the HLLP structure.
MLLP (Minimal Lower Layer Protocol): [ SOB ][ HL7 Data ][ EOD ][ EOB] HLLP (Hybrid Lower Layer Protocol): [ SOB ][ N | D ][ VER ][ CR ][ HL7 Data ][ LEN ][ BCC ][ EOD ][ EOB ] where: SOB: start of block (character) EOD: end of data (character) EOB: end of block (character) BCC: block checksum (character) CR : Carriage return(character) LEN: Length of HL7 Data (starting from SOB to end of HL7 data) N : NAK block D : Data block VER: HL7 version :: 21, 22, 23 (i.e., 2.1, 2.2, 2.3, ...) Assumptions: LEN : is 5 digit decimal (left zero filled) -- largest value is 99999 bytes BCC : is 3 digit decimal (left zero filled) calculation algorithm is XOR. (999 means ignore BCC verification/calculation) NOTE: The values of the Start of Block [SOB], End of Data [EOD] and End of Block [EOB], must be UNIQUE.The original specification is as follow:
For HLLP (Hybrid Lower Layer Protocol):tvv ddddcccccxxx Blocks consist of the following fields. Note that these are LLP fields and are not the same as HL7 message fields. = Start Block character (1 byte) Configurable on a site specific basis. Unless there is a conflict, the value should be ASCII , i.e., <0x0B>. This should not be confused with the ASCII characters SOH or STX. t = Block Type (1 byte) 'D' = data block 'N' = NAK block vv = Protocol ID (2 bytes) The characters '2' '3' for this version = Carriage Return (1 byte) The ASCII carriage return character, i.e., <0x0D>. dddd = Data (variable number of bytes) In a data block, this is the data content of the block. The data can contain any displayable ASCII characters and the carriage return character, . Carriage returns that are not part of the HL7 message may be inserted as described in "Carriage Return Stuffing." In a NAK block, this field contains a 1-byte reason code as follows: 'C' - character count wrong in previous data block received 'X' - checksum wrong in previous data block received 'B' - data too long for input buffer in previous block received 'G' - Error not covered elsewhere. ccccc = Block Size (5 bytes) Character count of all characters so far in the data block up to and including the last data character. For this version of the protocol this is 5 + the size of the dddd field. Note: HL7 message ends with a character. This character is considered as part of the data. xxx = Checksum (3 bytes) Exclusive-OR checksum of all characters in the block up to and including the last data character. The checksum is expressed as a decimal number in three ASCII digits. If the value of this field is 999, the checksum should not be computed. Processing will proceed as if it were correct. This feature is used for applications where the messages will be translated from one character set to another during transmission. = End Block character (1 byte) Configurable on a site specific basis. Unless there is a conflict, the value should be ASCII , i.e., <0x1C>. This should not be confused with the ASCII characters ETX or EOT. = Carriage Return (1 byte) The ASCII carriage return character, i.e., <0x0D>. For MLLP (Minimal Lower Layer Protocol): dddd = Start Block character (1 byte) ASCII , i.e., <0x0B>. This should not be confused with the ASCII characters SOH or STX. dddd = Data (variable number of bytes) This is the HL7 data content of the block. The data can contain any displayable ASCII characters and the carriage return character, . = End Block character (1 byte) ASCII , i.e., <0x1C>. This should not be confused with the ASCII characters ETX or EOT. = Carriage Return (1 byte) The ASCII carriage return character, i.e., <0x0D>.
Field Summary | |
---|---|
static char |
HLLP_DATA_BLOCK
|
static char |
HLLP_NAK_BLOCK
|
static java.lang.String |
HLLP_REASON_CODE_CHARACTER_COUNT_WRONG
|
static java.lang.String |
HLLP_REASON_CODE_CHECKSUM_WRONG
|
static java.lang.String |
HLLP_REASON_CODE_DATA_TOO_LONG
|
static java.lang.String |
HLLP_REASON_CODE_OTHER_ERRORS
|
static java.lang.String |
version
|
Constructor Summary | |
---|---|
HLLP(HL7LLPInfo hl7LLPInfo)
Constructor for HLLP. |
Method Summary | |
---|---|
byte[] |
constructLLPMessage(byte[] pureMsgBody,
char blockType,
java.lang.String versionID)
Method constructLLPMessage. |
byte[] |
extractHL7MessageBody(byte[] llpMessage)
Method extractHL7MessageBody. |
char |
getBlockType()
Returns the blockType. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String version
public static final char HLLP_DATA_BLOCK
public static final char HLLP_NAK_BLOCK
public static final java.lang.String HLLP_REASON_CODE_CHARACTER_COUNT_WRONG
public static final java.lang.String HLLP_REASON_CODE_CHECKSUM_WRONG
public static final java.lang.String HLLP_REASON_CODE_DATA_TOO_LONG
public static final java.lang.String HLLP_REASON_CODE_OTHER_ERRORS
Constructor Detail |
---|
public HLLP(HL7LLPInfo hl7LLPInfo)
hl7LLPInfo
- Method Detail |
---|
public char getBlockType()
public byte[] extractHL7MessageBody(byte[] llpMessage) throws HLLPCharacterCountException, HLLPChecksumException, HLLPDataTooLongException, HLLPOthersException
llpMessage
-
HLLPCharacterCountException
HLLPChecksumException
HLLPDataTooLongException
HLLPOthersException
public byte[] constructLLPMessage(byte[] pureMsgBody, char blockType, java.lang.String versionID) throws HL7ApplicationException
pureMsgBody
- blockType
- versionID
-
HL7ApplicationException
|
Sun Adapter for TCP/IP HL7 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |