Skip to content

Instantly share code, notes, and snippets.

@kasvith
Created April 18, 2020 07:16
Show Gist options
  • Save kasvith/208b78b788bf4b57f4833c13d374a128 to your computer and use it in GitHub Desktop.
Save kasvith/208b78b788bf4b57f4833c13d374a128 to your computer and use it in GitHub Desktop.

Revisions

  1. kasvith created this gist Apr 18, 2020.
    54 changes: 54 additions & 0 deletions hl7.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    package main

    import (
    _ "fmt"
    "net"
    "strings"
    "time"
    )

    func main() {
    const msg = `MSH|^~\&|||||||ADT^A01|101|P|2.3.1|
    EVN||00000000|
    PID|||14140f00-7bbc-0478-11122d2d02000000||rep^wet|
    PV1||I|^^icu&222&&4601&&1|||||||||||||||U|4294967040||
    OBX||ST|2304^MonitorName||M0001||||||F
    OBX||CE|2305^||0^||||||F
    OBX||CE|2306^||2^||||||F
    OBX||CE|4526^||1^||||||F
    OBX||CE|2307^||1^||||||F
    OBX||NM|2211^||0||||||F
    OBX||NM|4524^||0||||||F
    OBX||ST|2308^BedNoStr||222||||||F
    OBX||ST|4527^||000000000000000000000000||||||F
    OBX||CE|4528^||16^||||||F
    OBX||ST|4529^||001005000004||||||F
    OBX||CE|4530^||1^||||||F
    OBX||ST|2319^||001000015020020188123000000000000000000000000000||||||F
    OBX||CE|2320^||7^||||||F`

    mk := strings.ReplaceAll(msg, `\n`, "\r")

    pc, err := net.ListenPacket("udp4", ":4600")
    if err != nil {
    panic(err)
    }
    defer pc.Close()

    addr, err := net.ResolveUDPAddr("udp4", "255.255.255.255:4600")
    if err != nil {
    panic(err)
    }

    pkt := []byte{ 0x0B }
    pkt = append(pkt, []byte(mk)...)
    pkt = append(pkt, 0x1C, 0x0D)
    for {
    _, err = pc.WriteTo(pkt, addr)
    if err != nil {
    panic(err)
    }
    time.Sleep(time.Second * 1)
    }

    }