Random Stuff of Randomness



A cross-platform hl7 viewer for Windows, Linux und MacOS.

Lanugages: C C++ qt5 python


Cross-platform HL7 viewer for Linux, MacOS and Windows

7view is a simple and fast hl7 viewer that can be used on Windows, MacOS and Linux. The main features of the viewer are:

This project also contains a collection of hl7 utilities written in C and C++. All tools are available and tested on Debian, Windows and MacOS. The packaged tools provide the following functionality:


SystemDownloadSystem Requirements
WindowsInstaller, ZIP, SourceWindows 7/10 (maybe Vista, 64 bit only)
MacOSDisk Image (dmg), SourceMacOS 10.15 (Catalina)
DebianDebian Package (deb), SourceDebian Buster or equivalent Ubuntu
Linuxx64 binary, Source
Python3pip packageTested with Python 3.8+ (no python2 support)


All work product by the team is provided β€‹β€œAS IS”. Other than as provided in this agreement, the team makes no other warranties, express or implied, and hereby disclaims all implied warranties, including any warranty of merchantability and warranty of fitness for a particular purpose.

Release 0.4.1 - moar HEX’n streams

The 0.4.1 Release is a maintanance release. with a few new features.

A lot of infrastructure has been changed

Source Code

1me@there:~$ git clone https://gitlab.com/wunderlins/hl7parse.git
2me@there:~$ git submodule init   # optional for doxygen theme
3me@there:~$ git submodule update # optional for doxygen theme

Python module


1pip install --user lib7-X.X.X.tar.gz


1pip uninstall -y "$(pip freeze --user | grep lib7)"


Example from the API Documentation:

 1import lib7
 3msg = lib7.open("path/to/some/file.hl7")
 5# check what sort of message type this is, defined in MsH-9.1
 6msh91 = None
 7msh92 = None
 9    msh91 = msg.get("MSH-9.1")
10    print(msh91) # should print the content of the FIELD
11except Hl7StructureException:
12    print("MSH-9.1 Not found)
15    msh92 = msh91.next_sibling
16except Hl7StructureException:
17    print("MSH-9.2 Not found)
19root = msh92
20while root.parent:
21    root = root.parent
23# we have now found the top most node which is of type MESSAGE
24# This node contains N segments in children
25print(root.type) # prints: Type.MESSAGE
26print("%r" % root) # prints: <MESSAGE (children: 2)>
27print(root.num_children) # prints: 2
28assert(root == msg) # same same but different (variable name)
30# every node in the structure is an iterator which will
31# iterate over all child nodes.
33# This is the preferred way, because it is faster than first
34# fetching all nodes via `n.children` and then looping over them.
35for seg in root:
36    print("%r" % seg)
37    # prints: <SEGMENT MSH(1) (children: 18), MSH>
38    #         <SEGMENT PID(1) (children: 1), PID>
40    print(seg.addr)
41    # prints: MSH(1)
42    #         PID(1)
44# or you may fetch a list of child ndoes like this:
45children = root.children
47# print the segment names
48for c in children:
49    print(c.data) # prints: MSH, PID, ...