forked from hapifhir/hapi-hl7v2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index_old.html
191 lines (187 loc) · 16.5 KB
/
index_old.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-06-23
| Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20170623" />
<meta http-equiv="Content-Language" content="en" />
<title>HAPI – Free and open-source HL7 Java Parser and Library</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left"><a href="https://hapifhir.github.io/hapi-hl7v2" id="bannerLeft"><img src="images/hapi_banner.png" alt="HAPI"/></a></div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2017-06-23<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 2.3</li>
<li class="pull-right"><span class="divider">|</span>
<a href="http://www.uhn.ca/" class="externalLink" title="University Health Network">University Health Network</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="http://hl7.org/" class="externalLink" title="hl7.org">hl7.org</a></li>
<li class="pull-right"><a href="https://github.com/hapifhir/hapi-hl7v2" class="externalLink" title="GitHub Project Page">GitHub Project Page</a></li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Welcome</li>
<li><a href="index.html" title="Introduction"><span class="none"></span>Introduction</a> </li>
<li><a href="changes-report.html" title="Changelog"><span class="none"></span>Changelog</a> </li>
<li><a href="https://smilecdr.com/blog/" class="externalLink" title="Blog"><span class="none"></span>Blog</a> </li>
<li class="nav-header">FHIR</li>
<li><a href="hapi-fhir/" title="HAPI FHIR"><span class="none"></span>HAPI FHIR</a> </li>
<li class="nav-header">Tools</li>
<li><a href="hapi-testpanel/index.html" title="TestPanel"><span class="none"></span>TestPanel</a> </li>
<li><a href="hapi-hl7overhttp/index.html" title="HL7 over HTTP"><span class="none"></span>HL7 over HTTP</a> </li>
<li><a href="colouriser.html" title="Colouriser"><span class="none"></span>Colouriser</a> </li>
<li class="nav-header">Download</li>
<li><a href="https://sourceforge.net/projects/hl7api/files/hl7api/" class="externalLink" title="Download Java API"><span class="none"></span>Download Java API</a> </li>
<li><a href="hapi-testpanel/install.html" title="Download TestPanel"><span class="none"></span>Download TestPanel</a> </li>
<li class="nav-header">Documentation</li>
<li><a href="getting_started.html" title="Getting Started"><span class="none"></span>Getting Started</a> </li>
<li><a href="devbyexample.html" title="HAPI By Example"><span class="none"></span>HAPI By Example</a> </li>
<li><a href="base/apidocs/index.html" title="JavaDoc (API core)"><span class="icon-chevron-down"></span>JavaDoc (API core)</a>
<ul class="nav nav-list">
<li><a href="v21/apidocs/index.html" title="v2.1 Messages"><span class="none"></span>v2.1 Messages</a> </li>
<li><a href="v22/apidocs/index.html" title="v2.2 Messages"><span class="none"></span>v2.2 Messages</a> </li>
<li><a href="v23/apidocs/index.html" title="v2.3 Messages"><span class="none"></span>v2.3 Messages</a> </li>
<li><a href="v231/apidocs/index.html" title="v2.3.1 Messages"><span class="none"></span>v2.3.1 Messages</a> </li>
<li><a href="v24/apidocs/index.html" title="v2.4 Messages"><span class="none"></span>v2.4 Messages</a> </li>
<li><a href="v25/apidocs/index.html" title="v2.5 Messages"><span class="none"></span>v2.5 Messages</a> </li>
<li><a href="v251/apidocs/index.html" title="v2.5.1 Messages"><span class="none"></span>v2.5.1 Messages</a> </li>
<li><a href="v26/apidocs/index.html" title="v2.6 Messages"><span class="none"></span>v2.6 Messages</a> </li>
<li><a href="v27/apidocs/index.html" title="v2.7 Messages"><span class="none"></span>v2.7 Messages</a> </li>
<li><a href="v28/apidocs/index.html" title="v2.8 Messages"><span class="none"></span>v2.8 Messages</a> </li>
<li><a href="v281/apidocs/index.html" title="v2.8.1 Messages"><span class="none"></span>v2.8.1 Messages</a> </li>
</ul>
</li>
<li><a href="xref/index.html" title="Source XRef"><span class="none"></span>Source XRef</a> </li>
<li><a href="hapi-faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li>
<li><a href="conformance.html" title="Conformance Tools"><span class="none"></span>Conformance Tools</a> </li>
<li><a href="hapi-sourcegen/confgen-usage.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a> </li>
<li class="nav-header">Get Help</li>
<li><a href="mail-lists.html" title="Mailing List"><span class="none"></span>Mailing List</a> </li>
<li class="nav-header">Contribute</li>
<li><a href="building.html" title="Hacking HAPI"><span class="none"></span>Hacking HAPI</a> </li>
<li><a href="submissions.html" title="Submitting Code"><span class="none"></span>Submitting Code</a> </li>
<li><a href="issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li>
<li><a href="source-repository.html" title="Source Code"><span class="none"></span>Source Code</a> </li>
<li class="nav-header">Reports</li>
<li><a href="team-list.html" title="HAPI Developers"><span class="none"></span>HAPI Developers</a> </li>
<li><a href="surefire-report.html" title="Unit Test Report"><span class="none"></span>Unit Test Report</a> </li>
<li><a href="taglist.html" title="Source Tag List"><span class="none"></span>Source Tag List</a> </li>
<li><a href="cobertura/index.html" title="Cobertura"><span class="none"></span>Cobertura</a> </li>
<li><a href="findbugs.html" title="FindBugs"><span class="none"></span>FindBugs</a> </li>
<li><a href="license.html" title="License"><span class="none"></span>License</a> </li>
<li class="nav-header">Older Documentation</li>
<li><a href="parsing.html" title="Parsing Messages"><span class="none"></span>Parsing Messages</a> </li>
<li><a href="installation.html" title="Installation"><span class="none"></span>Installation</a> </li>
<li><a href="links.html" title="Helpful Links"><span class="none"></span>Helpful Links</a> </li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org" title="Built with Maven 2" class="builtBy"><img class="builtBy" alt="Built with Maven 2" src="images/logos/maven-feather.png" /></a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<div class="section">
<h2><a name="Welcome"></a>Welcome</h2>
<p>This is the home page for the HAPI project. HAPI (HL7 application programming interface; pronounced "happy") is an open-source, object-oriented HL7 2.x parser for Java. HL7 (<a class="externalLink" href="http://hl7.org">http://hl7.org</a>) is a messaging specification for healthcare information systems. This project is not affiliated with the HL7 organization; we are just writing some software that conforms to their specification. The project was initiated by <a class="externalLink" href="http://www.uhn.ca">University Health Network</a> (a large multi-site teaching hospital in Toronto, Canada). </p>
<p><b><a class="externalLink" href="https://sourceforge.net/apps/limesurvey/hl7api/index.php?sid=69291&newtest=Y">Support HAPI! Answer the 2011 HAPI Community Survey!</a></b></p></div>
<div class="section">
<h2><a name="HAPI_Birthday_October_30_2011"></a>HAPI Birthday! October 30, 2011</h2>
<p>On October 30 2001. Bryan Tripp and a team at University Health Network registered the HAPI project with Sourceforge, and a new project was born. On November 15 2001 HAPI 0.1 was released, and 10 releases later HAPI is probably the most widely used HL7 v2 library there is.</p>
<p>A few stats:</p>
<ul>
<li>Over the last five years, the number of visitors to the HAPI website has doubled, and it continues to grow. The graph below shows the number of unique visitors to our online documentation each month between 2006 and 2011.<img src="images/10yr_visitors.png" alt="Five years of growth!" /></li></ul>
<ul>
<li>Foo </li></ul></div>
<div class="section">
<h2><a name="HAPI_sources_moved_to_Subversion_SVN_-_October_2_2011"></a>HAPI sources moved to Subversion (SVN) - October 2, 2011</h2>
<p>The HAPI source code has been migrated to a new Subversion repository <a class="externalLink" href="https://hl7api.svn.sourceforge.net/svnroot/hl7api/">here</a>.</p>
<p>Thank you to everyone who put forward ideas on what VCS we should move to! The decision to move to SVN instead of Git (the second most popular choice) was a challenging one. Git is a modern and very powerful tool to be sure, but in the end we have concluded that SVN is probably the right balance between ease of use and features.</p>
<p>If you have any patches against the old repository that you would like to see incorporated into the new one, please get in touch.</p>
<p>The old CVS repository will be left around for the time being, just in case it is needed.</p>
<p>-<a class="externalLink" href="mailto:[email protected]">James Agnew</a></p></div>
<div class="section">
<h2><a name="HAPI_1.2_Released_-_June_26_2011"></a>HAPI 1.2 Released! - June 26, 2011</h2>
<p>HAPI 1.2 has been uploaded to Sourceforge. This release brings some bug fixes and a few enhancements. The primary focus of this release is in fixing issues relating to parsing and encoding. In particular, a number of issues specific to parsing of OBX-5 (Varies) values have been corrected.</p>
<p>See the <a href="./changes-report.html">Changelog</a> for more a complete list of what's new. Thanks to everyone who contributed!</p>
<p>Also, don't forget to <a class="externalLink" href="https://sourceforge.net/apps/limesurvey/hl7api/index.php?sid=69291&newtest=Y">take the 2011 survey!</a></p>
<p>In other HAPI news: Next up for HAPI will be a switch to a new version control system. It looks like through the responses to our survey so far, there is good support for moving to Subversion (52%) followed closely by Git (44%), with Mercurial (which would have been my preference, go figure) and remaining with CVS trailing at 8% and 5% respectively.</p>
<p>My own gut feel on this is that while Git is undoubtedly the more modern and powerful VCS, Subversion has been around for a lot longer and is much less likely to present a barrier to entry for anyone looking to get involved. I'd love to hear opinions either way.</p>
<p>-<a class="externalLink" href="mailto:[email protected]">James Agnew</a></p></div>
<div class="section">
<h2><a name="HAPI_Community_Survey_-_June_1_2011"></a>HAPI Community Survey - June 1, 2011</h2>
<p>This year, HAPI will be ten years old! To celebrate, we are launching our first survey on the HAPI user community. The survey takes less than five minutes to fill out, as it is just 8 quick multiple choice questions. Please take a few minutes to show your support!</p>
<p><a class="externalLink" href="https://sourceforge.net/apps/limesurvey/hl7api/index.php?sid=69291&newtest=Y">Access the survey here</a></p>
<p>The survey will run until the fall.</p></div>
<div class="section">
<h2><a name="Older_News"></a>Older News</h2>
<p>Read previous announcements <a href="./older_news.html">here</a>.</p></div>
<div class="section">
<h2><a name="Get_Involved"></a>Get Involved </h2>
<p>There are several ways you can get involved and help this project along. See details <a href="./getinvolved.html">here</a>. </p></div>
<div class="section">
<h2><a name="Contact"></a>Contact</h2>
<p>Please send development-related questions to the mailing list at <a class="externalLink" href="mailto:[email protected]">mailto:[email protected]</a>. For anything else, please contact <a class="externalLink" href="mailto:[email protected]">mailto:[email protected]</a></p></div>
<div class="section">
<h2><a name="Project_Overview"></a>Project Overview</h2>
<p>HAPI is a parser and encoder for HL7 version 2.x messages. HL7 is a widely used messaging specification for healthcare information systems. For more information on HL7 please visit <a class="externalLink" href="http://hl7.org">hl7.org</a>. </p>
<p>Prior to HAPI, we parsed HL7 messages using very generic objects (e.g. "Message", "Segment"). However there are many different types of messages and segments defined in the HL7 specification. Each has a different structure, of which the generic objects were unaware. This made development very slow, for the following reasons: </p>
<ol style="list-style-type: decimal">
<li>The generic objects were unable to enforce the majority of the specification at compile time. We had to verify message validity manually. </li>
<li>We had to refer to the specification constantly while programming. The specification is very extensive and not well-suited for quick reference in this sense. </li></ol>
<p>The HAPI object model defines Java classes for every HL7 2.x data type, segment, and message. This means that we can take a lot if mistakes that previously would have resulted in invalid messages and turn them into compile-time errors or Java Exceptions, which are apparent much more quickly. For example, to create an ADT_A01 message (a message that a registration system sends when a patient is admitted to hospital), and set it's time to right now, we would use code like this:</p>
<div>
<pre>ADT_A01 testMessage = new ADT_A01();
testMessage.getMSH().getDateTimeOfMessage().setValue("foo"); //throws exception because "foo" is not a valid date
testMessage.getMSH().getDateTimeOfMessage().setValue(ValidTS.toHL7TSFormat(System.currentTimeMillis())); //OK
// ... set other fields ...
Parser parser = new PipeParser();
existingWriter.write(parser.encode(testMessage)); //assuming "existingWriter" belongs to a socket that points to a remote system</pre></div>
<p>If it compiles and runs without error, we know the message structure is valid. Likewise, when incoming messages (from other systems) are parsed, we do not have to check the message structure ourselves because the parser throws meaningful exceptions if there is a problem. The other advantage of encoding message structures directly in Java is that we can use code completion and JavaDocs most of the time, instead of flipping through the specification. </p>
<p>The API is composed of a group of core classes that are hand-written, and hundreds of version-specific classes that are generated automatically. The automatically generated classes correspond to specific messages, segments, and datatypes. HL7 defines all of these components in a relational database. We have simply written scripts that create Java source code from the database entries (see ca.uhn.hl7v2.sourcegen.SourceGenerator) instead of writing all of this code by hand. </p></div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright ©2001–2017
<a href="http://www.uhn.ca">University Health Network</a>.
All rights reserved.</p>
</div>
</div>
</footer>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-1395874-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body >
</html>