recieved_msg = HL7::Message.new
recieved_msg.parse @buf
msh = recieved_msg[:MSH]
if msh
ack_msg = HL7::Message.new
msh_ack = HL7::Message::Segment::MSH.new
msh_ack.enc_chars = msh.e1
msh_ack.sending_app = 'test'
msh_ack.sending_facility = 'test'
msh_ack.recv_app = msh.e2
msh_ack.recv_facility = msh.e3
msh_ack.message_type = "ACK^#{msh.e8.split('^')[1]}"
msh_ack.message_control_id = msh.e9
msh_ack.processing_id = msh.e10
msh_ack.version_id = msh.e11
msa_ack = HL7::Message::Segment::MSA.new
msa_ack.ack_code = 'AA'
msa_ack.control_id = msh.e9
msa_ack.text = 'Received successfully'
ack_msg << msh_ack
ack_msg << msa_ack
send_data ack_msg.to_mllp
end