Secure HL7 Transactions using Internet Mail

DRAFT Version 1.4

This document was originally edited in Microsoft Word for Windows but this became a nightmare to manage. Word always messed up with the floating material whenever an other printer was selected, although the paper format did not change. In addition, every couple of sentences to be edited Word began swapping like hell (on a 64 MB DRAM machine!) Meanwhile, I was forced to do other things. Moreover, it is simply not possible to do consistent markup with WYSIWYG text editors. This situation was no longer acceptable.

The requirement to produce a plain ASCII document for submission to the IETF was only a trigger to look for something else.

What is the most flexible way for typesetting a document? In our times, the first answer is ``SGML.'' SGML is well known for supporting consistent logical markup. SGML is independent from the rendering device, which is a requirement if the document is to be rendered into different output formats, like HTML, PostScript, PDF and plain ASCII text. However, it turned out that typesetting software that uses SGML is very rare and mostly experimental. I tried hard, looked at Jade, and other SGML rendering software, I experimented with several DTDs, including HTML (lacking footnotes and symbolic references), QWERTZ (rather spartanic), DocBook (markup overkill). The rendering software, that I had available did not cover the required range of formats. I even started writing my own DTD translators for TeX, HTML and nroff.

The difficulty with SGML is, that it has no macros and does not at all allow to work on a document within real world requirements. By that, I mean that locical markup is a good thing, but when it comes to rendering there are always things to be finetuned: a bad hyphen, an ugly line- or page break, etc. This requires you to give directives to the formatter even if the ideal is a perfectly logical markup. Macros allow working on your markup and formatting while working in your text. With SGML, you have to work at three ends: your text, its DTD, and its rendering programs and (style sheets). With a macro-based formatter, you can stay within one place, your text. SGML misses the point that typesetting is about aesthetics that cannot be covered by logic only.

What remains is TeX and troff. TeX is certainly the superior typesetter, probably the best at all. It allows all logical markup that SGML allows, but it also allows you to work on the aesthetics of the appearance of the document. TeX can work on huge documents without any problems, modularizing stylesheets and other macros is posible. However, TeX is tuned to high resolution output devices, it cannot produce ASCII, one essential requirement that I have. I know, there is dvi2tty which I used once, but this requires manual postprocessing of the ASCII document to smoothen the rough edges. Something I cannot afford in this case.

The typesetter that does the best job on ASCII output is nroff. Troff is its companion for high resolution devices. Thus, whith a single input document troff and nroff can meet my needs. Of course, HTML output is not available with troff, however, HTML was only nice to have, not a requirement. I solved all my problems with troff within two and a half work days.

Conclusion: There was nothing else that could help me out of my crisis other that the ``assembler of typesetting languages'' -- troff, written by Joe Ossana 1973--1977 and Brian Kernighan 1979--1989 and reimplemented as part of the GNU project. It was both, a good and a bad experience for me. The good news is, that the old software around UNIX is still the most flexible, most reliable, most stable and most efficient for all serious real-world applications. Of course, it requires some skills, but most important, it requires that you want to do better than today's market buzz software lets you do. The bad news is that the new stuff is mostly hype, without flesh when it comes to serious applications under real world requirements.

So, here goes the result:

This is the version for HL7 PostScript, PDF, and ASCII.

This is the version to be submitted to the IETF PostScript, PDF, and ASCII.