ex_hl7 v0.4.2 HL7.Reader

Reader for the HL7 protocol. You can test its functionality with the following lines on ìex:

r HL7.Lexer
r HL7.Reader
reader = HL7.Reader.new
buffer = 
"MSH|^~\&|SERV|223344^^II|POSM|CARRIER^CL9999^IP|20030127202538||RPA^I08|5307938|P|2.3|||NE|NE

“ <>

"MSA|AA|CL999920030127203647||||B006^

“ <>

"AUT|TESTPLAN|223344^^II||||5307938||0|0

“ <>

"PRD|RT|NOMBRE PRESTADOR SALUD|||||99999999999^CU^GUARDIA

“ <>

"PRD|RP||||||9^^N

“ <>

"PID|||2233441000013527101=0000000000002|1|APELLIDO^NOMBRE

“ <>

"PR1|1||420101^CONSULTA EN CONSULTORIO^NA^||20030127203642|Z

“ <>

"AUT|PLANSALUD|||20030127|20030127|5307938|0.00^$|1|1

“ <>

"NTE|1||SIN CARGO

“ <>

"NTE|2||IVA: SI

b1 =
MSH|^~\&|SERV|223344^^II|POSM|CARRIER^CL9999^IP|20030127202538||RPA^I08|5307938|P|2.3|||NE|NE
MSA|AA|CL999920030127203647||||B006
AUT|TESTPLAN|223344^^II||||5307938||0|0
PRD|RT|NOMBRE PRESTADOR SALUD|||||99999999999^CU^GUARDIA
PRD|RP||||||9^^N
PID|||2233441000013527101=0000000000002|1|APELLIDO^NOMBRE
PR1|1||420101^CONSULTA EN CONSULTORIO^NA^||20030127203642|Z
AUT|PLANSALUD|||20030127|20030127|5307938|0.00^$|1|1
NTE|1||SIN CARGO
NTE|2||IVA: SI

{:ok, {reader, token, rest}} = HL7.Reader.read(reader, buffer)
token
{:ok, {reader, token, rest}} = HL7.Reader.read(reader, rest); {reader.segment_id, reader.sequence, token}

{:ok, msg} = HL7.read(buffer)
buf2 = HL7.write(msg, input_format: :text)
IO.puts(buf2)

Link to this section Summary

Functions

Create a new Reader instance

Read a token from the reader

Return the segment ID of the segment that is being read by the Reader

Return the separators that were used in the message that was read by the Reader

Return the sequence number of the last field that was read by the Reader

Link to this section Types

Link to this type t()
t() :: %HL7.Reader{item_type: HL7.Type.item_type, lexer: HL7.Lexer.t, segment_creator: (HL7.Type.segment_id -> {module, HL7.Segment.t}), segment_id: HL7.Type.segment_id, sequence: non_neg_integer, trim: boolean}
Link to this type token()
token ::
  {:start_segment, HL7.Type.segment_id} |
  {:end_segment, HL7.Type.segment_id} |
  {:field, HL7.Type.field}

Link to this section Functions

Link to this function create_segment(reader, segment_id)
create_segment(t, HL7.Type.segment_id) :: {module, HL7.Segment.t}
Link to this function new(options \\ [])
new([option]) :: t

Create a new Reader instance

Link to this function read(reader, buffer)
read(t, binary) ::
  {:token, {t, token, binary}} |
  {:incomplete, {t, binary}} |
  {:complete, t} |
  {:error, any}

Read a token from the reader.

Link to this function segment_id(reader)
segment_id(t) :: HL7.Type.segment_id

Return the segment ID of the segment that is being read by the Reader.

Link to this function separators(reader)
separators(t) :: binary

Return the separators that were used in the message that was read by the Reader.

Link to this function sequence(reader)
sequence(t) :: 0 | HL7.Type.sequence

Return the sequence number of the last field that was read by the Reader.