2016-11-29 15 views
1

Я работаю с nHapi v2.5.0.6, и я пытаюсь создать несколько сегментов RDT для HL7 v2.5.1.C# как добавить несколько сегментов RDT на NHapi с использованием версии HL7 2.5.1

сегменты должны выглядеть следующим образом:

RDT|555444222111|Adam||19600614|M| 
RDT|555444222112|Adam2||19600615|F| 
RDT|555444222113|Adam3||19600616|M| 

Но самое я могу сделать, это:

RDT|555444222111 
RDT|555444222112 
RDT|555444222113 

Я не знаю, как добавить поля после того, как первый!

Это мой код:

private void addSegmentRDT2(DataTable informationTable) 
{ 
    //RDT|555444222111|||19600614|M| 
    var tbr_r08 = new TBR_R08(); 
    int rowNumber = 0; 
    foreach (DataRow row in informationTable.Rows) 
    { 
     var RTD = tbr_r08.AddRDT(); 
     int columnNumber = 0; 
     foreach (DataColumn column in informationTable.Columns) 
     { 
      NHapi.Model.V23.Datatype.ST a = new NHapi.Model.V23.Datatype.ST(tbr_r08.Message); 
      a.Value = row[column]?.ToString() ?? ""; 
      RTD.ColumnValue.Data = a; 
     } 
    } 
} 

Любая помощь будет оценена. С благодарностью

ответ

0
This is how I resolve the problem, is not the most elegant solution but it works :). 


private void addSegmentRDT(DataTable informationTable) 
      { 
       var rowNumber = 0; 
       var tbr_r08 = new TBR_R08(); 
       foreach (DataRow row in informationTable.Rows) 
       { 
        var RTD = tbr_r08.AddRDT(); 
        var values = new Varies(tbr_r08.Message); 
        var columnNumber = 0; 
        foreach (DataColumn column in informationTable.Columns) 
        { 
         var rowColumnValue = row[columnNumber]?.ToString() ?? ""; 
         var HL7String = new NHapi.Model.V23.Datatype.ST(tbr_r08.Message); 
         HL7String.Value = rowColumnValue; 
         values.ExtraComponents.getComponent(columnNumber).Data = HL7String;      
         ++columnNumber; 
        } 
        RTD.ColumnValue.Data = values; 
        ++rowNumber; 
       } 
      }