anchor.diff:          company_id = get_component([2,1], string, 6, Segment),
           company_name = get_component([2,2], string, 30, Segment),
           company_id_coding_system = get_component([2,3], string, 20, Segment),
  -        start_date = get_field(4, date, 8, Segment),
  -        end_date = get_field(5, date, 8, Segment),
  +        start_date = get_field([4], date, 8, Segment),
  +        end_date = get_field([5], date, 8, Segment),
           authorization_id = get_component([6,1], string, 20, Segment),
  -        requested_treatments = get_field(8, integer, 2, Segment),
  -        authorized_treatments = get_field(9, integer, 2, Segment)
  +        requested_treatments = get_field([8], integer, 2, Segment),
  +        authorized_treatments = get_field([9], integer, 2, Segment)
          };
   %% @doc Decode the DG1 (Diagnosis information) segment
   decode(dg1, Segment) ->
       #dg1{
  -        set_id = get_field(1, integer, 4, Segment),
  +        set_id = get_field([1], integer, 4, Segment),
           diagnosis_id = get_component([3,1], string, 20, Segment),
           name = get_component([3,2], string, 32, Segment),
           coding_system = get_component([3,3], string, 10, Segment),
  -        diagnosis_type = get_field(6, string, 2, Segment)
  +        diagnosis_type = get_field([6], string, 2, Segment)
          };
   %% @doc Decode the DSC (Continuation pointer) segment
   decode(dsc, Segment) ->
       #dsc{
  -        continuation_pointer = get_field(1, string, 15, Segment)
  +        continuation_pointer = get_field([1], string, 15, Segment)
          };
   %% @doc Decode the DSP (Display data) segment
   decode(dsp, Segment) ->
       #dsp{
  -        set_id = get_field(1, integer, 4, Segment),
  -        display_level = get_field(2, string, 4, Segment),
  -        data_line = get_field(3, string, 40, Segment),
  -        break_point = get_field(4, string, 2, Segment),
  -        result_id = get_field(5, string, 20, Segment)
  +        set_id = get_field([1], integer, 4, Segment),
  +        display_level = get_field([2], string, 4, Segment),
  +        data_line = get_field([3], string, 40, Segment),
  +        break_point = get_field([4], string, 2, Segment),
  +        result_id = get_field([5], string, 20, Segment)
          };
   %% @doc Decode the ERR (Error information) segment
   decode(err, Segment) ->
  
positive.code: %% @doc Decode the EVN (Event type) segment
  decode(evn, Segment) ->
      #evn{
          recorded_date = get_field(2, date, 14, Segment),
          planned_event_date = get_field(3, date, 14, Segment)
         };
  %% @doc Decode the IN1 (Insurance) segment
  decode(in1, Segment) ->
      #in1{
          set_id = get_field(1, integer, 4, Segment),
          plan_id = get_component([2,1], string, 20, Segment),
          plan_name = get_component([2,2], string, 30, Segment),
          company_id = get_component([3,1], string, 6, Segment),
  
negative.code:     #qpd_q15{
          query_id = get_component([1,1], string, 20, Segment),
          query_name = get_component([1,2], string, 30, Segment),
          query_tag = get_field([2], string, 32, Segment),
          provider_id = get_component([3,1], string, 15, Segment),
          provider_id_type = get_component([3,2], string, 4, Segment),
          start_date = get_field([4], date, 12, Segment),
          end_date = get_field([5], date, 12, Segment),
          procedure_id = get_component([6,1], string, 30, Segment),
          procedure_coding_system = get_component([6,2], string, 8, Segment),
          authorizer_id = get_component([7,1], string, 6, Segment)
  