0
, wie man Get „0x0d“?Encoding Zeichenfolge Get „0x0d“.
var hl7 = @"MSH|^~\&|||||20170718110131||DSR^Q03|1|P|2.3.1|||P|||ASCII|||@MSA|AA|1|Message accepted|||0|@ERR|0|@QAK|SR|OK|@QRD|20170718110131|R|D|2|||RD||OTH|||T|@QRF||||||RCT|COR|ALL||@DSP|1||1212|||@DSP|2||27|||@DSP|3||Tommy|||@DSP|4||19620824000000|||@DSP|5||M|||@DSP|6||O|||@DSP|7|||||@DSP|8|||||@DSP|9|||||@DSP|10|||||@DSP|11|||||@DSP|12|||||@DSP|13|||||@DSP|14|||||@DSP|15||outpatient|||@DSP|16|||||@DSP|17||own|||@DSP|18|||||@DSP|19|||||@DSP|20|||||@DSP|21||0019|||@DSP|22||3|||@DSP|23||20170718120500|||@DSP|24||N|||@DSP|25||1|||@DSP|26||serum|||@DSP|27|||||@DSP|28|||||@DSP|29||1^^^|||@DSP|30||2^^^|||@DSP|31||5^^^|||@DSC||@";
byte[] msg;
int len = Encoding.ASCII.GetByteCount(hl7);
len += 3;
msg = new byte[len];
msg[0] = 0x0b;
Encoding.ASCII.GetBytes(hl7).CopyTo(msg, 1);
new byte[] { 0x1c, 0x0d }.CopyTo(msg, len - 2);
for (var i = 0; i < msg.Length; i++)
{
if (msg[i] == 64)
{
msg[i] = 0x0d;
}
}
tcpServer.Send(client, msg);
I senden DSR^Q03 Nachricht Chemical Analyzer, ist die Botschaft, die ich sent.The Problem gelöst ist, aber ich möchte eine bessere Lösung erhalten
Ein weiteres Problem hl7 verwenden. Arbeiten Sie jedes Jahr ein paar davon. Es sieht so aus, als hätten Sie String-Daten, die nur mit einer Rückgabe (Unix) enden, anstatt mit einem Windows-Return und einem Zeilenvorschub. Wie erhalten Sie die Nachricht? Wenn es sich um TCP-Streams handelt, können Daten an jedem Ort geteilt werden, so dass Code, den Sie programmieren, möglicherweise nicht sehr robust ist, um Daten in Echtzeit zu erhalten. – jdweng