簡體   English   中英

Windows腳本分析HL7文件

[英]Windows scripting to parse a HL7 file

我有一個包含很多HL7段的巨大文件。 必須將其拆分為1000個左右的較小文件。 由於它具有HL7數據,因此存在一種模式(邏輯)。 每個數據塊均以“ MSH |”開頭 並在下一段以“ MSH |”開頭時結束。

該腳本必須基於Windows(cmd)或VBS,因為我無法在該計算機上安裝任何軟件。

文件結構:

MSH|abc|123|....
s2|sdsd|2323|
...
..
MSH|ns|43|...
...
..
.. 
MSH|sdfns|4343|...
...
..
asds|sds

MSH|sfns|3|...
...
..
as|ss

上例中的文件必須分為2或3個文件。 另外,這些文件來自UNIX,因此換行符必須保留在源文件中。

有什么幫助嗎?

這是一個示例腳本,我使用該腳本將大型hl7文件解析為具有基於數據文件的新文件名的單獨文件。 使用不需要安裝的REBOL,即。 核心版本不做任何注冊表項。

我有一個更通用的版本,它掃描進入的目錄並將它們拆分為單個文件,然后等待下一個文件到達。

Rebol [
    file: %split-hl7.r
    author: "Graham Chiu"
    date: 17-Feb-2010
    purpose: {split HL7 messages into single messages}
]

fn: %05112010_0730.dat
outdir: %05112010_0730/

if not exists? outdir [
    make-dir outdir
]

data: read fn
cnt: 0
filename: join copy/part form fn -4 + length? form fn "-"
separator: rejoin [ newline "MSH"]
parse/all data [
    some [
        [ copy result to separator | copy result to end ]
        (
            write to-file rejoin [ outdir filename cnt ".txt" ] result
            print "Got result"
            ?? result
            cnt: cnt + 1
        )
        1 skip
    ]
]

HL7有很多段-我假設您知道您的文件只有MSH段。 因此,您是否嘗試過分析文件中的字符串“(newline)MSH |”? 只需保留一個正在運行的緩沖區,然后在緩沖區過大時將其轉儲到輸出文件中即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM