C# 解析后在HL7中保留可选管道
原HL7C# 解析后在HL7中保留可选管道,c#,hl7,nhapi,C#,Hl7,Nhapi,原HL7 MSH^ ~\&RadImage^124 | xxx | EI-artifact | xxx | 123456789 | ORM^O01 | 1234 | 2.3 | AL PID | 1 | xxxxxx | xxxxx | xxxxx | xxxxx | xxx | xxx | 19391007 | F | | 104-430,xxx ^ xxx ^ xx ^ xx ^ xx | |(999)999-999 PV1 | 1 | A | 11-1 | 2 | | | | | | |
MSH^ ~\&RadImage^124 | xxx | EI-artifact | xxx | 123456789 | ORM^O01 | 1234 | 2.3 | AL
PID | 1 | xxxxxx | xxxxx | xxxxx | xxxxx | xxx | xxx | 19391007 | F | | 104-430,xxx ^ xxx ^ xx ^ xx ^ xx | |(999)999-999
PV1 | 1 | A | 11-1 | 2 | | | | | | | | | | 123 | | | | | 01 | | | | | | | | | | | | | | | | | | | | | | | ||||||||
ORC | XO | | xxx | CM | | | | | xxx | | R | | | 123456789 |接口| | 123 | xxx |医院| | | | | KDICTE | 3A | | | | | |
1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,3月12日,1日,1日,1日,1日,1日,1日,1日,1日,1日,1,3方,1日,3,1日,1日,1日,3方,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,扫描窦C,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 124xxx | A | B|||
ZDS | 1.11.11.11.1.11^RadImage^应用程序^DICOM
最终结果HL7
MSH^ ~\&RadImage^124 | xxx | EI-artifact | xxx | 123456789 | ORM^O01 | 1234 | 2.3 | AL
PID | 1 | xxxxxx | xxxxx | xxxxx | xxxxx | xxx | xxx | 19391007 | F | | 104-430,xxx ^ xxx ^ xx ^ xx ^ xx | |(999)999-999
PV1 | 1 | A | 11-1 | 2 | | | | | | | | | | 123 | | | | | 01 | | | | | | | | | | | | | | | | | | | | | | | |
ORC | XO | | xxx | CM | | | | | xxx | | R | | | 123456789 |接口| | 123 | xxx |医院| | | | | KDICTE | 3A | | | | | |
1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,1月12日,3月12日,1日,1日,1日,1日,1日,1日,1日,1日,1日,1,3方,1日,3,1日,1日,1日,3方,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,扫描窦C,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 124xxx | A | B|||
ZDS | 1.11.11.11.1.11^RadImage^应用程序^DICOM
嗨
我正在用C#制作一个DLL,用于使用nhapi HL7 DLL解析和修改HL7消息。
我唯一要做的就是将空管道保持在PV1段的末端。它正在删除“最终结果HL7”与“原始HL7”中的管道
我想保留那些烟斗
这是我的实际代码
...
using NHapi.Base.Model;
using NHapi.Base.Parser;
using NHapi.Base.Util;
using System.Diagnostics;
using NHapi.Model.V23.Segment;
using NHapi.Model.V22.Segment;
using NHapi.Model.V21.Segment;
using NHapi.Model.V231.Segment;
...
...
public void PreAnalysis(ITratmContext ctx, MemBuf mb)
{
var parser = new PipeParser();
Debug.WriteLine(mb.ToString());
var parsedMessage = parser.Parse(mb.ToString());
var pipeDelimitedMessage = parser.Encode(parsedMessage);
Debug.WriteLine(pipeDelimitedMessage); //Message lose the empty pipe HERE
var genericMethod = parsedMessage as AbstractMessage;
// create a terser object instance by wrapping it around the message object
Terser terser = new Terser(parsedMessage);
OurTerserHelper terserHelper = new OurTerserHelper(terser);
String terserExpression = "MSH-12";
String HL7Version = terserHelper.GetData(terserExpression);
if (HL7Version == "2.3")
{
var obr = genericMethod.GetStructure("OBR") as NHapi.Model.V23.Segment.OBR;
if (obr != null)
{
for (int i = 0; i < obr.ReasonForStudyRepetitionsUsed; i++)
{
obr.GetReasonForStudy(i).Identifier.Value = StringExtention.Clean(obr.GetReasonForStudy(i).Identifier.ToString());
}
}
//var obrRep = obr.ReasonForStudyRepetitionsUsed;
Debug.WriteLine(parser.Encode(genericMethod.Message));
mb.Init(parser.Encode(genericMethod.Message));
}
}
。。。
使用NHapi.Base.Model;
使用NHapi.Base.Parser;
使用NHapi.Base.Util;
使用系统诊断;
使用NHapi.Model.V23.Segment;
使用NHapi.Model.V22.Segment;
使用NHapi.Model.V21.Segment;
使用NHapi.Model.V231.Segment;
...
...
公共无效预分析(ITratmContext ctx,MemBuf mb)
{
var parser=new PipeParser();
Debug.WriteLine(mb.ToString());
var parsedMessage=parser.Parse(mb.ToString());
var pipeDelimitedMessage=parser.Encode(parsedMessage);
Debug.WriteLine(pipeDelimitedMessage);//消息在此处丢失空管道
var genericMethod=parsedMessage作为AbstractMessage;
//通过环绕消息对象创建一个更简洁的对象实例
Terser Terser=新的Terser(已解析消息);
OurTerserHelper terserHelper=新的OurTerserHelper(terser);
字符串terserExpression=“MSH-12”;
字符串HL7Version=terserHelper.GetData(terserExpression);
如果(HL7Version==“2.3”)
{
var obr=genericMethod.GetStructure(“obr”)为NHapi.Model.V23.Segment.obr;
如果(obr!=null)
{
for(int i=0;i
非常感谢 在段中最后填充的字段之后不需要保留任何字段分隔符。它们是多余的,而且浪费空间。我认为在最后填充的字段之后使用字段分隔符没有任何意义。但是如果您坚持这样做,您可以在末尾附加一个自定义分隔符 我明白你的意思,但我的问题是我怎样才能保留它们。