#hl7 #protocols #networking #codec #mllp

mllp-rs

简单的MLLP(最小底层协议)实现

2个版本

0.1.1 2022年8月12日
0.1.0 2022年8月12日

#2118 in 编码

MIT 许可证

9KB
108

mllp-rs

mllp-rs 是一个用于 HL7 文件标准的 Rust MLLP 实现。它封装了 HL7 文件在网络传输中。该库提供对封装的 HL7 文件进行编码和解码的实用工具。它还提供生成 MLLP ACK 和 MLLP NAK 的辅助工具。

安装

将以下内容放入你的 Cargo.toml 文件中的 [dependencies]

mllp-rs = "0.1.0"

入门

要编码 HL7 文件,请使用 MllpCodec::encode(),要解码请使用 MllpCodec::decode()

客户端代码可能如下所示

use std::io::prelude::*;
use std::net::TcpStream;
use mllp_rs::MllpCodec;

// Client side
let mut stream = TcpStream::connect("127.0.0.1:5000")?;
let _ = stream.write(MllpCodec::encode("MSH|^~\&|WIR|||36|20200514123930||VXU^V04^VXU_V04|43|P|2.5.1|||ER").as_bytes());

服务器端代码可能如下所示

use std::io::prelude::*;
use std::net::TcpListener;
use mllp_rs::MllpCodec;

let mut listener = TcpListener::bind(addr).unwrap();
for stream in listener.incoming() {
    let mut buf: Vec<u8> = vec![];
    let _ = stream?.read_to_end(&mut buf);
    let decoded_data = String::from_utf8_lossy(MllpCodec::decode(buf.as_slice())?);
}

杂项

你也可以查看 hl7-mllp-codec !

无运行时依赖