使用 node.js 将数据发送到 HL7 服务器时出现问题
Problems with sending data to HL7 server using node.js
我只是想使用 node.js 制作一个简单的 HL7 MLLP 客户端
我编写了一些代码,通过套接字创建与 HL7 服务器的连接。它向服务器发送一些数据。然后它等待一些回答。出于测试目的,我使用 HAPI TestPanel 2.0.1。
所以,我有一个问题。当我使用我的脚本将数据发送到 HAPI TestPanel 时,测试面板不回答我。在测试面板的日志中,它说我的客户端已经连接到它,而不是什么都没有。当我在测试面板中打开调试选项时,日志说测试面板从我的客户端接收到字节,结束然后没有别的。
我的脚本有什么问题?
谁能帮帮我?
谢谢!
这是我的脚本:
const net = require('net');
const VT = String.fromCharCode(0x0b);
const FS = String.fromCharCode(0x1c);
const CR = String.fromCharCode(0x0d);
const clientOptions = {
host: '127.0.0.1',
port: 49360
};
const client = net.createConnection(clientOptions, () => {
var reqdata = 'MSH|^~\&|HOSP|HIS|HOSP|PACS|20180104150804||ORM^O01|1|T|2.3\nZDS|1.2.398.7.1.1.2.494.0.1^^Application^DICOM';
reqdata = VT + reqdata + CR + FS + CR;
console.log(`${new Date()} connected to HL7 server!`);
console.log(reqdata);
client.write(new Buffer(reqdata, encoding = "utf8"));
});
client.on('data', (data) => {
var ansData = data.toString();
console.log(`${new Date()} HL7 answer data: ${ansData}`);
client.end();
});
client.on('error', (err) => {
var reqerror = `${new Date()} problem with request: ${err.message}`;
console.error(reqerror);
client.end();
console.log(`${new Date()} disconnected from HL7 server`);
});
client.on('end', () => {
console.log(`${new Date()} disconnected from HL7 server`);
});
这是测试面板日志的屏幕截图:
嗯,你写的 MLLP 是正确的:
reqdata = VT + reqdata + CR + FS + CR;
虽然第一个 CR
不是必需的,但以下是可以的:
reqdata = VT + reqdata + FS + CR;
但是,在 HAPI 测试面板上收到的消息看起来很乱。消息在某处被 HTML 格式化。检查您的代码以使其保持简单的文本。
我只是想使用 node.js 制作一个简单的 HL7 MLLP 客户端 我编写了一些代码,通过套接字创建与 HL7 服务器的连接。它向服务器发送一些数据。然后它等待一些回答。出于测试目的,我使用 HAPI TestPanel 2.0.1。 所以,我有一个问题。当我使用我的脚本将数据发送到 HAPI TestPanel 时,测试面板不回答我。在测试面板的日志中,它说我的客户端已经连接到它,而不是什么都没有。当我在测试面板中打开调试选项时,日志说测试面板从我的客户端接收到字节,结束然后没有别的。 我的脚本有什么问题? 谁能帮帮我?
谢谢!
这是我的脚本:
const net = require('net');
const VT = String.fromCharCode(0x0b);
const FS = String.fromCharCode(0x1c);
const CR = String.fromCharCode(0x0d);
const clientOptions = {
host: '127.0.0.1',
port: 49360
};
const client = net.createConnection(clientOptions, () => {
var reqdata = 'MSH|^~\&|HOSP|HIS|HOSP|PACS|20180104150804||ORM^O01|1|T|2.3\nZDS|1.2.398.7.1.1.2.494.0.1^^Application^DICOM';
reqdata = VT + reqdata + CR + FS + CR;
console.log(`${new Date()} connected to HL7 server!`);
console.log(reqdata);
client.write(new Buffer(reqdata, encoding = "utf8"));
});
client.on('data', (data) => {
var ansData = data.toString();
console.log(`${new Date()} HL7 answer data: ${ansData}`);
client.end();
});
client.on('error', (err) => {
var reqerror = `${new Date()} problem with request: ${err.message}`;
console.error(reqerror);
client.end();
console.log(`${new Date()} disconnected from HL7 server`);
});
client.on('end', () => {
console.log(`${new Date()} disconnected from HL7 server`);
});
这是测试面板日志的屏幕截图:
嗯,你写的 MLLP 是正确的:
reqdata = VT + reqdata + CR + FS + CR;
虽然第一个 CR
不是必需的,但以下是可以的:
reqdata = VT + reqdata + FS + CR;
但是,在 HAPI 测试面板上收到的消息看起来很乱。消息在某处被 HTML 格式化。检查您的代码以使其保持简单的文本。