1

我正在使用 nHapi v2.5.0.6,并且正在尝试为 HL7 v2.5.1 创建多个 RDT 段。

段应如下所示:

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;
        }
    }
} 

任何帮助将不胜感激。谢谢

4

1 回答 1

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;
                }
            }
于 2016-12-06T14:20:24.460 回答