PageSourceSearch

https://hapifhir.io/hapi-fhir/

html hapifhir.io collected 2026-09-25 08:50:46 UTC 62,170 bytes, 802 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5	<!-- tab name -->
6	<title>HAPI FHIR - The Open Source FHIR API for Java</title>
7
8	
9
10	<!-- required meta tags -->
11	<meta charset="utf-8">
12	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
13
14	<!-- objectgraph -->
15	
16	<meta property="og:title" content="Smile CDR"/>
17	
18	<meta property="og:url" content="https://smilecdr.com/"/>
19	
20	<meta property="og:site_name"
21			content="HAPI FHIR// A Free and Open Source Global Good"/>
22	<meta property="og:type" content="website"/>
23    <meta property="og:image"
24          content="https://hapifhir.io/hapi-fhir/images/logos/raccoon-forwards.png"/>
25	<meta property="og:description"
26			content="HAPI FHIR is an Open Source FHIR-based Clinical Data Repository. Powering the next generation of connected health systems."/>
27
28	<!-- Favicon -->
29	<link rel="icon" href="https://www.smiledigitalhealth.com/favicon.ico">
30
31	<!-- font, icons -->
32	<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
33
34	<!-- jquery, bootstrap script for dropdown and hover-->
35	
35<script src="/hapi-fhir/resources/jquery/dist/jquery.min.js"></script>
35
36	
36<script src="/hapi-fhir/resources/popper.js/umd/popper.min.js"></script>
36
37	
37<script src="/hapi-fhir/resources/bootstrap/js/bootstrap.min.js"></script>
37
38	<link rel="stylesheet" href="/hapi-fhir/resources/bootstrap/css/bootstrap.min.css"/>
39
40	<!-- fontawesome -->
41	
41<script src="/hapi-fhir/resources/font-awesome/js/all.min.js" data-auto-replace-svg="nest"></script>
41
42	<link rel="stylesheet" media="screen" href="/hapi-fhir/resources/font-awesome/css/fontawesome.min.css" />
43
44	<!-- Clipboard.js -->
45	
45<script src="/hapi-fhir/resources/clipboard.js/clipboard.min.js"></script>
45
46
47	
48	
48<script src="/hapi-fhir/resources/prismjs/prism.js" type="text/javascript"></script>
48
49	
49<script src="/hapi-fhir/resources/prismjs/components/prism-bash.js" type="text/javascript"></script>
49
50	
50<script src="/hapi-fhir/resources/prismjs/components/prism-http.js" type="text/javascript"></script>
50
51	
51<script src="/hapi-fhir/resources/prismjs/components/prism-java.js" type="text/javascript"></script>
51
52	
52<script src="/hapi-fhir/resources/prismjs/components/prism-javascript.js" type="text/javascript"></script>
52
53	
53<script src="/hapi-fhir/resources/prismjs/components/prism-json.js" type="text/javascript"></script>
53
54	
54<script src="/hapi-fhir/resources/prismjs/components/prism-json5.js" type="text/javascript"></script>
54
55	
55<script src="/hapi-fhir/resources/prismjs/components/prism-nginx.js" type="text/javascript"></script>
55
56	
56<script src="/hapi-fhir/resources/prismjs/components/prism-properties.js" type="text/javascript"></script>
56
57	
57<script src="/hapi-fhir/resources/prismjs/components/prism-sql.js" type="text/javascript"></script>
57
58	
58<script src="/hapi-fhir/resources/prismjs/plugins/toolbar/prism-toolbar.js" type="text/javascript"></script>
58
59	
59<script src="/hapi-fhir/resources/prismjs/plugins/command-line/prism-command-line.js" type="text/javascript"></script>
59
60	
60<script src="/hapi-fhir/resources/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js" type="text/javascript"></script>
60
61	
61<script src="/hapi-fhir/resources/prismjs/plugins/line-numbers/prism-line-numbers.js" type="text/javascript"></script>
61
62	<link href="/hapi-fhir/resources/prismjs/themes/prism.css" rel="stylesheet" type="text/css"/>
63	<link href="/hapi-fhir/resources/prismjs/themes/prism-coy.css" rel="stylesheet" type="text/css"/>
64	<link href="/hapi-fhir/resources/prismjs/plugins/toolbar/prism-toolbar.css" rel="stylesheet" type="text/css"/>
65	<link href="/hapi-fhir/resources/prismjs/plugins/line-numbers/prism-line-numbers.css" rel="stylesheet" type="text/css"/>
66
67	<link rel="stylesheet" type="text/css" href="/hapi-fhir/css/hapifhir.css">
68
69	<!-- Mermaid diagram rendering -->
70	<meta name="mermaid-font-family"   content="Roboto, sans-serif" />
71	<meta name="mermaid-javahook-icon" content="/hapi-fhir/resources/cdr-web-resources/images/icons/java.png" />
72	<meta name="mermaid-jshook-icon"   content="/hapi-fhir/resources/cdr-web-resources/images/icons/javascript.jpeg" />
73	<link rel="stylesheet" type="text/css" href="/hapi-fhir/resources/cdr-web-resources/css/docs-mermaid.css" />
74	
74<script type="module" src="/hapi-fhir/resources/cdr-web-resources/js/docs-mermaid.js"></script>
74
75
76
77
78
79	<!-- tab icon -->
80	<link rel="icon" href="https://www.smiledigitalhealth.com/favicon.ico">
81
82</head>
83
84<body>
85
86
87
88    <header class="header orange-header" id="header">
89        <nav class="navbar fixed-top navbar-expand-sm navbar-light navbar-noshadow">
90            <a class="navbar-brand text-center" href="/hapi-fhir/" title="Home">
91                <img src="/hapi-fhir/images/logos/raccoon-forwards.png" alt="raccoon mascot" width="85" id="full-logo" class="pb-1">
92                <img src="/hapi-fhir/images/logos/small-logo.png" alt="HAPI FHIR logo" width="156" id="collapsed-logo">
93            </a>
94
95            <!-- Version Dropdown Code -->
96            <div id="select-hapi-fhir-version:">Select HAPI FHIR version to view:</div>
97            <div id="hapi-fhir-versions"></div>
98            
98<script>
99                window.onload = onLoad();
100
101                function onLoad() {
102                    $.get("\/hapi-fhir\/available-versions", function(data) {
103                        const selectedDocsVersion = null;
104                        let availableDocsVersions = data.versions;
105                        if (availableDocsVersions.length <= 1) {
106                            // Remove the dropdown container if there is only one version
107                            document.getElementById("select-hapi-fhir-version:").style.display = 'none';
108                            document.getElementById("hapi-fhir-versions").style.display = 'none';
109                            return;
110                        }
111                        let select = document.createElement("select");
112                        select.name = "hapi-fhir-versions";
113                        select.id = "hapi-fhir-versions";
114                        select.className = "my-auto";
115
116                        for (const hapiFhirDocsVersion of availableDocsVersions) {
117                            let option = document.createElement("option");
118                            option.value = hapiFhirDocsVersion;
119                            option.text = hapiFhirDocsVersion;
120                            select.appendChild(option);
121                            if (hapiFhirDocsVersion === selectedDocsVersion) {
122                                option.selected = true;
123                            }
124                        }
125
126                        let label = document.createElement("label");
127                        label.htmlFor = "hapi-fhir-versions";
128                        label.className = "mb-0 ms-1";
129
130                        document.getElementById("hapi-fhir-versions")
131                            .appendChild(label)
132                            .appendChild(select);
133
134                        select.onchange = function () {
135                            let selectedValue = select.options[select.selectedIndex].value;
136                            const currentUrl = window.location.pathname;
137                            const isVersioned = currentUrl.includes('/v/');
138                            const isDefaultVersionSelected = select.selectedIndex === 0;
139                            let newUrl = "";
140
141                            if (isDefaultVersionSelected) {
142                                newUrl = currentUrl.replace(/\/v\/[^/]+/, '');
143                            } else {
144                                if (isVersioned) {
145                                    newUrl = currentUrl.replace(/\/v\/[^/]+/, '/v/' + selectedValue);
146                                } else {
147                                    newUrl = currentUrl.replace(/\/docs/, '/docs/v/' + selectedValue);
148                                }
149                            }
150
151                            window.location.href = newUrl;
152                        }
153                    });
154
155						 $.get("\/hapi-fhir\/available-sites", function(data) {
156							 let availableDocsSites = data.docSiteResponseJsonList;
157							 let docDiv = document.getElementById("navbarDOCDIV");
158
159							 for (const docSite of availableDocsSites) {
160
161								 let a = document.createElement("a");
162								 a.classList.add("dropdown-item");
163
164								 if (docSite.selected) {
165									 a.classList.add("activeDoc");
166								 }
167
168								 a.textContent = docSite.siteName;
169								 a.href = docSite.siteBaseUrl;
170								 docDiv.appendChild(a);
171							 }
172						 });
173                }
174            </script>
174
175            <!-- End of Version Dropdown Code -->
176
177            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
178                <span class="navbar-toggler-icon"></span>
179            </button>
180
181            
181<script type="application/javascript">
182                $(function(){
183                    $(".dropdown").hover(
184                        function() {
185                            if ($( window ).width() >= 960) {
186                                $('.dropdown-menu', this).stop(true, true).fadeIn("fast");
187                                $(this).toggleClass('open');
188                                $('b', this).toggleClass("caret caret-up");
189                            } else {
190                                $('.dropdown-menu', this).css("display", "");
191                            }
192                        },
193                        function() {
194                            if ($( window ).width() >= 960) {
195                                $('.dropdown-menu', this).stop(true, true).fadeOut("fast");
196                                $(this).toggleClass('open');
197                                $('b', this).toggleClass("caret caret-up");
198                            }
199                        });
200                });
201            </script>
201
202
203            <div class="collapse navbar-collapse" id="navbarSupportedContent">
204                <ul class="nav navbar-nav ms-auto nav-text">
205                    <li class="nav-item"><a class="nav-link" href="https://smilecdr.com/">Support</a></li>
206                    <li class="nav-item"><a class="nav-link" target="_blank" href="https://github.com/jamesagnew/hapi-fhir">Github</a></li>
207                    <li class="nav-item"><a class="nav-link" href="/hapi-fhir/blog/">News</a></li>
208                    <li class="nav-item dropdown">
209							  <a class="nav-link nav-link-dropdown" data-bs-toggle="dropdown" id="navbarDOCUMENTATION" href="#">Documentation <i class="nav-chevron fas fa-chevron-down"></i></a>
210							  <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDOCUMENTATION" id="navbarDOCDIV"></div>
211						  </li>
212                    <li class="nav-item dropdown">
213                        <a class="nav-link nav-link-dropdown" data-bs-toggle="dropdown" id="navbarGETHELP" href="#">Get Help <i class="nav-chevron fas fa-chevron-down"></i></a>
214                        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarGETHELP" id="navbarGETHELPDIV">
215                            <a href="https://github.com/jamesagnew/hapi-fhir/wiki/Getting-Help" class="dropdown-item">Getting Help (read this first!)</a>
216                            <a href="https://groups.google.com/d/forum/hapi-fhir" class="dropdown-item">Google Group (ask questions)</a>
217                            <a href="https://github.com/jamesagnew/hapi-fhir/issues" class="dropdown-item">Issue Tracker (report bugs/request features)</a>
218                            <a href="https://chat.fhir.org/" class="dropdown-item">chat.fhir.org (live chat with FHIR implementers)</a>
219                            <a href="/hapi-fhir/docs/appendix/faq.html" class="dropdown-item">Frequently Asked Questions (FAQ)</a>
220                        </div>
221                    </li>
222                    <li class="nav-item dropdown">
223                        <a class="nav-link nav-link-dropdown" data-bs-toggle="dropdown" id="navbarTESTSERVERS" href="#">Test Server <i class="nav-chevron fas fa-chevron-down"></i></a>
224                        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarTESTSERVERS" id="navbarTESTSERVERSDIV">
225                            <a href="http://hapi.fhir.org" class="dropdown-item">HAPI FHIR Public Test Server</a>
226                        </div>
227                    </li>
228
229                </ul>
230            </div>
231        </nav>
232    </header>
233
234    
234<script>
235        var scrollAfter = 145;
236    </script>
236
237    
238
239    
239<script>
240        $(function () {
241            $(window).scroll(function () {
242                if ($(this).scrollTop() > scrollAfter) {
243                    $("header nav").removeClass("navbar-noshadow");
244                    $("#full-logo").addClass("header-raccoon-large-hidden");
245                    $("#full-logo").removeClass("header-raccoon-large-visible");
246                } else {
247                    $("#full-logo").removeClass("header-raccoon-large-hidden");
248                    $("#full-logo").addClass("header-raccoon-large-visible");
249                    $("header nav").addClass("navbar-noshadow");
250                }
251            });
252        });
253    </script>
253
254
255
256<div class="wrapper">
257	<div class="container-fluid banner orange-banner">
258
259      <h1>
260
261         <img src="/hapi-fhir/images/logos/raccoon-in-mask.png" style="float: right; width: 150px;"/>
262
263			A Free and Open Source Global Good:<br>
264			Powering Interoperability Around the World for
265			<a href="hapi-history.html" style="white-space: nowrap;">23 Years.</a>
266		</h1>
267		<p class="headline-text pt-2">
268			HAPI FHIR is a complete implementation of the
269			<a href="http://hl7.org/fhir/">HL7 FHIR</a>
270			standard for healthcare interoperability in Java.
271			We are an
272			<a href="/hapi-fhir/contributors.html">open community</a>
273			developing software licensed under the business-friendly
274			<span style="white-space: nowrap;"><a href="/hapi-fhir/license.html">Apache Software License 2.0</a>.
275         HAPI FHIR is a product of <a href="https://www.smiledigitalhealth.com/">Smile Digital Health</a>.
276         </span>
277		</p>
278	</div>
279	<div class="container-fluid text-center map-container">
280
281		<div class="row">
282			<div class="col-xs-12 col-md-12 offset-xl-1 col-xl-10">
283
284				
285				<div style="position: relative; z-index: 100; height: 200px;">
286					<div class="map-banner">
287						<a href="/hapi-fhir/global-atlas.html" style="color: #000000;">
288							Who's Using <span class="red">HAPI</span>
289							<br/>
290							Add Yourself to the Atlas
291							<img src="/hapi-fhir/images/map/pin.png" style="height: 1.4em; height: auto; width: 30px;"/>
292						</a>
293					</div>
294				</div>
295
296				<div style="position: relative; margin-top: -110px; z-index: 0;">
297					<div style="max-width: 1000px; display: inline-block; position: relative;" id="map-container">
298						<img src="/hapi-fhir/images/map/map.png" alt="World Map of FHIR users" style="width: 100%; position: relative;" onclick="selectPin(-1);">
299					</div>
300					<p style="max-width: 1200px;">
301						The HAPI FHIR Global Atlas is inspired by our friends at the
302						<a href="https://atlas.openmrs.org">OpenMRS</a> project.
303						We would love to add your project, company, or organization to the map.
304						<a href="/hapi-fhir/global-atlas.html">Learn more</a>
305						about how you can add yourself (or update/remove an existing entry).
306					</p>
307				</div>
308
309			</div>
310		</div>
311
312		
313		
313<script type="application/javascript">const mapPointsJson = {"points":[{"title":"OKDC - FHIR Manager","description":"Post orders, get results from federal laboratory system","lat":47.22304,"lon":39.72138,"city":"Rostov-On-Don","added":"2019-08-19"},{"title":"Care Connect Reference Implementation","description":"UK/England NHS Reference FHIR Implementation","company":"Mayfield IS","contactName":"Kevin Mayfield","contactEmail":"[email protected]","link":"https://data.developer.nhs.uk/ccri/exp","city":"UK","lat":55.378052,"lon":-3.435973,"added":"2019-08-19"},{"title":"clinFHIR","contactName":"David Hay","contactEmail":"[email protected]","link":"http://clinfhir.com","city":"New Zealand","lat":-42.651737,"lon":171.926909,"added":"2019-08-18"},{"title":"EDS AP-HP","description":"Health Datawarehouse","lat":48.8647,"lon":2.349014,"city":"Paris","added":"2019-09-02"},{"title":"eHealth Innovation","description":"eHealth Innovation uses HAPI FHIR to power patient apps for managing chronic conditions","link":"http://ehealthinnovation.org","lat":43.741667,"lon":-79.373333,"city":"Toronto","added":"2019-11-20"},{"title":"CSIRO OntoServer","description":"Australia\u0027s national terminology server.  FHIR-native, fast, and comprehensive support for FHIR DSTU2.1, STU3, and R4","link":"https://ontoserver.csiro.au","contactName":"Michael Lawley","contactEmail":"[email protected]","city":"Brisbane","lat":-27.46977,"lon":153.025131},{"title":"MOLIT Institut: VITU, HUB, EQU","description":"Virtual tumorboard based on FHIR, Management Frontend to import Patients from HIS and assign Questionnaire Tasks, Electronic Questionnaire based on FHIR Questionnaire","link":"https://demo.molit.eu","contactName":"Patrick Werner","contactEmail":"[email protected]","city":"Germany","lat":50.1188,"lon":8.6843,"added":"2019-08-18"},{"title":"Altarum Institute","link":"https://demo.molit.eu","contactName":"Altarum Institute","contactEmail":"[email protected]","city":"Michigan","lat":42.2807,"lon":-83.7801,"added":"2019-08-18"},{"title":"Audacious Inquiry","description":"HIE Services","contactName":"Keith Boone","contactEmail":"[email protected]","city":"Maryland","lat":39.4756,"lon":-76.242,"added":"2019-08-18"},{"title":"InfoClinic","description":"InfoClinic HAPI FHIR R4 Testing Server","link":"http://fhir.infoclinic.co","city":"Seoul, South Korea","lat":37.5339,"lon":126.9775,"added":"2019-08-18"},{"title":"PGD FHIR","description":"Apothesource","city":"South Carolina, USA","lat":34.2296,"lon":-80.7147,"added":"2019-08-19"},{"title":"Drummond Group: Interoperability Hub","description":"Certified EHR FHIR Surveillance App","link":"http://www.interophub.com","city":"USA","lat":35.3961,"lon":-81.6303,"added":"2019-08-19"},{"title":"United States Digital Service/CMS","description":"Data at the Point of Care: FHIR API for enabling providers to retrieve CMS claims data in a bulk manner.","link":"http://dpc.cms.gov","city":"Washington DC, USA","lat":38.8939,"lon":-77.0365,"added":"2019-08-20"},{"title":"AHDIS AG","description":"Matchbox: Validation and conversion services","link":"http://dpc.cms.gov","contactName":"Oliver Egger","contactEmail":"[email protected]","city":"Switzerland","lat":47.2569,"lon":8.6989,"added":"2019-08-20"},{"title":"Trifork","description":"National Telemedicine Project","link":"https://docs.ehealth.sundhed.dk/latest/ig/index.html","contactName":"Jens Villadsen","contactEmail":"[email protected]","city":"Aarhus, Denmark","lat":56.1534,"lon":10.2255,"added":"2019-08-20"},{"title":"VietTel","description":"VEHR-HL7","city":"Vietnam","lat":10.8142,"lon":106.6438,"added":"2019-08-20"},{"title":"ISKRA Solutions Inc.","description":"Automatic reconciliation of FHIR messages: Highly scalable FHIR based microservice that uses rules engine to automatically match/reconcile FHIR submissions based on externalized configurable set of business defined criteria.","city":"Toronto, Canada","lat":43.741667,"lon":-79.373333,"added":"2019-08-20"},{"title":"Insiel S.p.a.","contactName":"Ivano Tomainu","contactEmail":"[email protected]","city":"Italy","lat":38.1193,"lon":13.3675,"added":"2019-08-20"},{"title":"Insiel S.p.a.","description":"PathLab.Tech","contactName":"Prateek Patil","contactEmail":"[email protected]","city":"Santa Clara, California","lat":37.3526,"lon":-121.9541,"added":"2019-09-13"},{"title":"Telemedis","description":"tisFHIR: Telemedicine Information System","contactName":"Władysław Węglarz","contactEmail":"[email protected]","city":"Warsaw, Poland","lat":52.25,"lon":21.0,"added":"2019-09-13"},{"title":"CINVESTAV","description":"Estudio de algoritmos criptograficos ligeros para la seguridad de expedientes clínicos electrónicos","lat":40.4172,"lon":-3.684,"added":"2019-09-29"},{"title":"Highmark","description":"FHIR-based Provider Directory Message Model: Using R4 FHIR we created a standard provider directory message model that captures all practitioners, practitioner roles, vendors, vendor roles, locations, healthcare services, affiliated directory networks and tiered insurance plans. We supply this FHIR-based extract to a well-known transparency vendor whom processes our FHIR message model extract and loads the data to be consumed and accessed on a web-based provider search application. Members can then access this provider search app to search for practitioners whom participate in their products and networks.","link":"https://highmark.sapphirecareselect.com","contactName":"Wayne Williams","contactEmail":"[email protected]","city":"Pittsburgh, PA","lat":40.4562,"lon":-79.8163,"added":"2019-09-29"},{"title":"ePHealth: ACS Health Care","description":"With the ACS App, Community Health Agents (CHA) work gets faster and faster, and they can take better care of their community. Best of all, it is 100% free to the Health Agent.","link":"http://ephealth.com.br/?lang\u003den","contactName":"Alan Lescano","contactEmail":"[email protected]","city":"Sao Paulo, Brazil","lat":-23.533773,"lon":-4
3136.62529,"added":"2019-09-29"},{"title":"CENS","description":"Centro Nacional en Sistemas de Información en Salud - CENS operates a national testing infrastructure based on HAPI FHIR.","link":"http://cens.cl","city":"Santiago, Chile","lat":-33.4,"lon":-70.6,"added":"2019-11-25"},{"title":"Standards and Interoperability Lab Asia","description":"SIL-A maintains a suite of tools used to promote interoperability and medical informatics across Asia.","link":"http://sil-asia.org/","city":"Manila, Philippines","lat":14.6914,"lon":120.9686,"added":"2019-11-25"},{"title":"Lifen","description":"Lifen is a messaging platform to simplify data exchange between medical professionals, patients and EHRs systems","link":"https://www.lifen.fr","city":"Paris","lat":48.8647,"lon":2.349014,"added":"2019-11-22"},{"title":"Aksara Digital Indonesia, PT.","description":"SaaS ERP for Healthcare Services","link":"https://ehealth.co.id","contactName":"Ibrohim Kholilul Islam","contactEmail":"[email protected]","city":"Bandung, Indonesia","lat":-6.914744,"lon":107.60981,"added":"2019-11-22"},{"title":"Ivido","description":"Revolutionary personal healthcare environment","link":"https://ivido.nl/","contactName":"Jari Maijenburg","contactEmail":"[email protected]","city":"The Hague, The Netherlands","lat":52.070499,"lon":4.3007,"added":"2019-12-18"},{"title":"CDSS for EHR","description":"\"Hospital Italiano de Buenos Aires\", founded in 1853, is a non-profit civil association dedicated to general and highly complex medicine.","contactName":"Natalia Pérez López","contactEmail":"[email protected]","city":"Buenos Aires, Argentina","lat":-34.603683,"lon":-58.381557,"added":"2019-12-27"},{"title":"German Society for Wound Healing and Wound Treatment","description":"Establishment of regional registers based on HAPI FHIR for the global exchange of health data/eHealth Ressort of the DGfW e.V.: As the eHealth department of the DGfW e.V. we are looking for partners with whom we can jointly develop projects based on open standards for the national and global exchange of health information in the field of chronic wound care. In this context, we rely on open standards such as HAPI FHIR. In one of our latest projects \"EsmAiL\" we use HAPI FHIR together with the synaptor medical collaboration platform.","contactName":"Falk Huneke","link":"http://www.dgfw.de/akneinversa.html","city":"Germany","lat":51.165691,"lon":10.451526},{"title":"VEIG","description":"Vietnam Ehealth Innovation Group","link":"http://emr.com.vn","contactName":"Nguyen Hai Phong","contactEmail":"[email protected]","city":"Hanoi,Vietnam","lat":21.026058,"lon":105.822715,"added":"2020-03-06"},{"title":"Ohum - OhumSKY, OhumG and OhumAIR","description":"Ohumhealthcare Pvt Ltd","link":"http://ohumhealthcare.com","contactName":"Sumeet Chhetri","contactEmail":"[email protected]","city":"Pune,India","lat":18.5204,"lon":73.8567,"added":"2020-06-18"},{"title":"Grand Rounds, Inc.","description":"Our mission is to raise the standard of healthcare for everyone, everywhere.","link":"https://grandrounds.com","contactName":"Simon Yun","contactEmail":"[email protected]","city":"San Francisco, CA","lat":37.7826622,"lon":-122.3983786,"added":"2020-05-06"},{"title":"MEDplat","description":"A comprehensive public health platform","link":"https://argusoft.com","contactName":"Kunjan Patel","contactEmail":"[email protected]","city":"Gandhinagar,India","lat":23.242,"lon":72.6272,"added":"2021-03-17"},{"title":"Snowstorm by SNOMED International","description":"Open Source Scalable SNOMED CT Terminology Server. Support for FHIR R4.","link":"https://github.com/IHTSDO/snowstorm","contactName":"Kai Kewley","contactEmail":"[email protected]","city":"London","lat":51.507351,"lon":-0.127758},{"title":"Cortico Health Technologies Inc.","description":"Making health technology work in the service of patients, doctors and healthcare staff.","company":"Cortico Health Technologies Inc.","contactName":"Clark Van Oyen","contactEmail":"[email protected]","link":"https://cortico.health","city":"Vancouver, BC","lat":49.234,"lon":-123.06589,"added":"2021-06-29"},{"title":"Innovattic","description":"Creating remote monitoring solutions for several hospitals in the Netherlands.","contactName":"Lauwerens Metz","contactEmail":"[email protected]","link":"https://innovattic.com/","city":"Delft, The Netherlands","lat":52.01804,"lon":4.354307,"added":"2021-07-15"},{"title":"Columna Cura","description":"The electronic care record that ensures efficie
313nt documentation and optimal task management of community care services.","company":"Systematic","contactName":"Columna Cura","link":"https://systematic.com/en-gb/industries/healthcare/community-care/columna-cura","city":"Aarhus, Denmark","lat":56.15195,"lon":10.17705,"added":"2021-10-06"},{"title":"Burai L.L.C","description":"SaaS ERP for Healthcare Services, SMART ON FHIR compliance with 21st century cures act and HIPPA","company":"Burai LLC","contactName":"Tomomi Yamano","link":"https:burai.live","city":"Tokyo Japan, Florida USA","lat":35.6762,"lon":139.6503,"added":"2021-12-03"},{"title":"HealthChain","description":"Mobile FHIR EMR","company":"imageRAD Yazalım A.Ş.","contactName":"Haluk Çelikel","link":"https://www.imagerad.com/home/","city":"Urla İzmir, Turkey","lat":38.313733,"lon":26.634074,"added":"2022-06-20"},{"title":"SOLUTEMA, SRL","description":"Infrastructure based on HAPI FHIR + GNU Health to simplify data exchange between medical professionals, patients and EHRs systems Making technology work as service throught standards.","company":"SOLUTEMA, SRL","contactName":"José Arturo García","contactEmail":"[email protected]","link":"https://www.solutema.com","city":"Santo Domingo, Dominican Repúblic","lat":18.483402,"lon":-69.929611,"added":"2022-08-15"},{"title":"Eviden BSD R\u0026D Spain (Atos)","description":"Use of HAPI-FHIR as the centralized data aggregation repository for clinical research studies.","company":"Eviden BSD R\u0026D Spain (Atos)","contactName":"Alberto Acebes","contactEmail":"[email protected]","link":"https://booklet.evidenresearch.eu/","city":"Madrid","lat":40.43486,"lon":-3.6322,"added":"2022-07-19"},{"title":"Healthsoft","description":"Innovative software solutions for future-proof healthcare.","company":"Healthsoft B.V.","contactName":"Bart Embregts","contactEmail":"[email protected]","link":"https://healthsoft.nl/","city":"Rotterdam","lat":51.908779,"lon":4.47752,"added":"2024-11-14"},{"title":"HAPI FHIR + GNU Health","description":"Promoviendo la interoperabilidad en Salud: HAPI + GNU Health","company":"INTEGRADORES PERUANOS SAC","contactName":"Fernando Sánchez","contactEmail":"[email protected]","link":"https://www.integraper.com","city":"Lima, Perú","lat":-11.920878,"lon":-77.059573,"added":"2025-08-25"}]};</script>
313
314
315
316		
317		
318			
318<script type="application/javascript" src="/hapi-fhir/js/index-global-atlas.js"></script>
318
319		
320
321	</div>
322
323	<div class="container-fluid grey-banner text-center">
324		<div class="center-info">
325			<p class="banner-text">This is the homepage for the HAPI-FHIR library. We are developing an open-source
326				implementation of the FHIR specification in Java. FHIR (Fast Healthcare Interoperability Resources) is a
327				specification for exchanging healthcare data in a modern and developer friendly way. Note that this is the
328				home for the FHIR version of HAPI. For HL7 v2 support, see <br><a href="https://github.com/hapifhir/hapi-hl7v2">hapi-hl7v2.</a></p>
329		</div>
330	</div>
331	<div class="container-fluid row info-section">
332		<div class="col-md-6 card">
333			<div class="card-body">
334				<h2 class="red"><a href="/hapi-fhir/blog/">HAPI FHIR 6.2.0 (Vishwa) &rsaquo;</a></h2>
335
336				<div class="PostBody"><p>Welcome to the winter release of HAPI FHIR! Support has been added for FHIR R4B (4.3.0). See the <a href="/hapi-fhir/docs/getting_started/r4b.html">R4B Documentation</a> for more information on what this means. Now onto the rest!</p>
337<h3>Breaking Changes</h3>
338<ul>
339<li>The <code>ActionRequestDetails</code> class has been dropped (it has been deprecated
340since HAPI FHIR 4.0.0). This class was used as a parameter to the
341<code>SERVER_INCOMING_REQUEST_PRE_HANDLED</code> interceptor pointcut, but can be
342replaced in any existing client code with <code>RequestDetails</code>. This change
343also removes an undocumented behaviour where the JPA server internally
344invoked the <code>SERVER_INCOMING_REQUEST_PRE_HANDLED</code> a second time from
345within various processing methods. This behaviour caused performance
346problems for some interceptors (e.g. <code>SearchNarrowingInterceptor</code>) and
347no longer offers any benefit so it is being removed.</li>
348<li>Previously when ValueSets were pre-expanded after loinc terminology upload, expansion was failing with an exception for each ValueSet
349with more than 10,000 properties. This problem has been fixed.
350This fix changed some freetext mappings (definitions about how resources are freetext indexed) for terminology resources, which requires
351reindexing those resources. To do this use the <code>reindex-terminology</code> command.&quot;</li>
352<li>Removed Flyway database migration engine.  The migration table still tracks successful and failed migrations
353to determine which migrations need to be run at startup.  Database migrations no longer need to run differently when
354using an older database version.</li>
355<li>The interceptor system has now deprecated the concept of ThreadLocal interceptors. This feature was
356added for an anticipated use case, but has never seen any real use that we are aware of and removing it
357should provide a minor performance improvement to the interceptor registry.</li>
358</ul>
359<h3>Security Changes</h3>
360<ul>
361<li>Upon hitting a subscription delivery failure, we currently log the failing payload which could be considered PHI. Resource content is no longer written to logs on subscription failure.</li>
362</ul>
363<h3>General Client/Server/Parser Changes</h3>
364<ul>
365<li>Previously, Celsius and Fahrenheit temperature quantities were not normalized. This is now fixed.
366This change requires reindexing of resources containing Celsius or Fahrenheit temperature quantities.</li>
367<li>Fixed bug where searching with a target resource parameter (Coverage:payor:Patient) as value to an _include parameter would fail with a 500 response.</li>
368<li>Previously, DELETE request type is not supported for any operations. DELETE is now supported, and is enabled for operation $export-poll-status to allow cancellation of jobs</li>
369<li>Previously, when a client would provide a requestId within the source uri of a Meta.source, the provided requestId would get discarded and replaced by an id generated by the system. This has been corrected</li>
370<li>In the JPA server, when a resource is being updated, the response will now include any tags or
371security labels which were not present in the request but were carried forward from the previous
372version of the resource.</li>
373<li>Previously, if the Endpoint Base URL is set to something different from the default value, the URL that export-poll-status returned is incorrect.
374After correcting the export-poll-status URL, the binary file URL returned is also incorrect. This error has also been fixed and the URLs that are returned
375from $export and $export-poll-status will not contain the extra path from 'Fixed Value for Endpoint Base URL'.</li>
376<li>Previously, the <code>:nickname</code> qualifier only worked with the predefined <code>name</code> and <code>given</code> SearchParameters.
377This has been fixed and now the <code>:nickname</code> qualifier can be used with any string SearchParameters.</li>
378<li>Previously, when executing a '[base]/_history' search, '_since' and '_at' shared the same behaviour. When a user searched for the date between the records' updated date with '_at', the record of '_at' time was not returned.
379This has been corrected. '_since' query parameter works as it previously did, and the '_at' query parameter returns the record of '_at' time.</li>
380<li>Previously, creating a DSTU3 SearchParameter with an expression that does not start with a resource type would throw an error. This has been corrected.</li>
381<li>There was a bug in content-type negotiation when reading Binary resources. Previously, when a client requested a Binary resource and with an <code>Accept</code>
382header that matched the <code>contentType</code> of the stored resource, the server would return an XML representation of the Binary resource. This has been fixed, and a request with a matching <code>Accept</code> header will receive
383the stored binary data directly as the requested content type.</li>
384<li>A new built-in server interceptor called the InteractionBlockingInterceptor has been added. This interceptor
385allows individual operations to be included/excluded from a RestfulServer's exported capabilities.</li>
386<li>The OpenApi generator now allows additional CSS customization for the Swagger UI page, as well as the
387option to disable resource type pages.</li>
388<li>Modified BinaryAccessProvider to use a safer method of checking the contents of an input stream. Thanks to @ttntrifork for the fix!</li>
389<li>Fixed issue where adding a sort parameter to a query would return an incomplete result set.</li>
390<li>Added new attribute for the @Operation annotation to define the operation's canonical URL. This canonical URL value will populate
391the operation definition in the CapabilityStatement resource.</li>
392<li>A new interceptor pointcut <code>STORAGE_TRANSACTION_PROCESSING</code> has been added. Hooks for this
393pointcut can examine and modify FHIR transaction bundles being processed by the JPA server before
394processing starts.</li>
395<li>In the JPA server, when deleting a resource the associated tags were previously deleted even though
396the FHIR specification states that tags are independent of FHIR versioning. After this fix, resource tags
397and security labels will remain when a resource is deleted. They can be fetched using the <code>$meta</code> operation
398against the deleted resource, and will remain if the resource is brought back in a subsequent update.</li>
399<li>Fixed a bug which caused a failure when combining a Consent Interceptor with version conversion via the <code>Accept</code> header.</li>
400</ul>
401<h3>Bulk Export</h3>
402<ul>
403<li>Previously, bulk export for Group type with _typeFilter did not apply the filter if it was for the patients, and returned all members of the group.
404This has now been fixed, and the filter will apply.</li>
405<li>A regression was introduced in 6.1.0 which caused bulk export jobs to not default to the correct output format when the <code>_outputFormat</code> parameter was omitted. This behaviour has been fixed, and if omitted, will now default to the only legal value <code>application/fhir+ndjson</code>.</li>
406<li>Fixed a bug in Group Bulk Export where the server would crash in oracle due to too many clauses.</li>
407<li>Fixed a Group Bulk Export bug which was causing it to fail to return resources due to an incorrect search.</li>
408<li>Fixed a Group Bulk Export bug in which the group members would not be expanded correctly.</li>
409<li>Fixed a bug in Group Bulk Export:  If a group member was part of multiple groups , it was causing other groups to be included during Group Bulk Export, if the Group resource type was specified. Now, when
410doing an export on a specific group, and you elect to return Group resources, only the called Group will be returned, regardless of cross-membership.</li>
411<li>Previously, Patient Bulk Export only supported endpoint [fhir base]/Patient/$export, which exports all patients.
412Now, Patient Export can be done at the instance level, following this format: <code>[fhir base]/Patient/[id]/$export</code>, which will export only the records for one patient.
413Additionally, added support for the <code>patient</code> parameter in Patient Bulk Export, which is another way to get the records of only one patient.</li>
414<li>Fixed the <code>$poll-export-status</code> endpoint so that when a job is complete, this endpoint now correctly includes the <code>request</code> and <code>requiresAccessToken</code> attributes.</li>
415<li>Fixed a bug where /Patient/$export would fail if _type=Patient parameter
416was not included.</li>
417<li>Previously, Group Bulk Export did not support the inclusion of resources referenced in the resources in the patient compartment.
418This is now supported.</li>
419<li>A previous fix resulted in Bulk Export files containing mixed resource types, which is
420not allowed in the bulk data access IG. This has been corrected.</li>
421<li>A previous fix resulted in Bulk Export files containing duplicate resources, which is
422not allowed in the bulk data access IG. This has been corrected.</li>
423<li>Previously, the number of resources per binary file in bulk export was a static 1000. This is now configurable by a new JpaStorageSettings property called
424'setBulkExportFileMaximumCapacity()', and the default value is 1000 resources per file.</li>
425<li>By default, if the <code>$export</code> operation receives a request that is identical to one that has been recently
426processed, it will attempt to reuse the batch job from the former request. A new configuration parameter has been</li>
427<li>introduced that disables this behavior and forces a new batch job on every call.</li>
428<li>Bulk Group export was failing to export Patient resources when Client ID mode was set to: ANY. This has been fixed</li>
429<li>Previously, Bulk Export jobs were always reused, even if completed. Now, jobs are only reused if an identical job is already running, and has not yet completed or failed.</li>
430</ul>
431<h3>Other Operations</h3>
432<ul>
433<li>Extend $member-match to validate matched patient against family name and birthdate</li>
434<li><code>$mdm-submit</code> can now be run as a batch job, which will return a job ID, and can be polled for status. This can be accomplished by sending a <code>Prefer: respond-async</code> header with the request.</li>
435<li>Previously, if the <code>$reindex</code> operation failed with a <code>ResourceVersionConflictException</code> the related<br />
436batch job would fail. This has been corrected by adding 10 retry attempts for transactions that have
437failed with a <code>ResourceVersionConflictException</code> during the <code>$reindex</code> operation. In addition, the <code>ResourceIdListStep</code>
438was submitting one more resource than expected (i.e. 1001 records processed during a <code>$reindex</code> operation if only 1000
439<code>Resources</code> were in the database). This has been corrected.</li>
440</ul>
441<h3>Command-line tool changes :</h3>
442<ul>
443<li>Added a new optional parameter to the <code>upload-terminology</code> operation of the HAPI-FHIR command-line tool. You can pass the <code>-s</code> or <code>--size</code> parameter to specify
444the maximum size that will be transmitted to the server, before a local file reference is used. This parameter can be filled in using human-readable format, for example:
445<code>upload-terminology -s \&quot;1GB\&quot;</code> will permit zip files up to 1 gigabyte, and anything larger than that would default to using a local file reference.</li>
446<li>Previously, using the <code>import-csv-to-conceptmap</code> command in the command-line tool successfully created ConceptMap resources
447without a <code>ConceptMap.status</code> element, which is against the FHIR specification. This has been fixed by adding a required
448option for status for the command.</li>
449<li>
449Added support for -l parameter for providing a local validation profile in the HAPI FHIR command-line tool.</li>
450<li>Previously, when the upload-terminology command was used to upload a terminology file with endpoint validation enabled, a validation error occurred due to a missing file content type.
451This has been fixed by specifying the file content type of the uploaded file.</li>
452<li>For SNOMED CT, upload-terminology now supports both Canadian and International edition's file names for the SCT Description File</li>
453<li>Documentation was added for <code>reindex-terminology</code> command.</li>
454</ul>
455<h3>JPA Server General Changes</h3>
456<ul>
457<li>Changed Minimum Size (bytes) in FHIR Binary Storage of the persistence module from an integer to a long. This will permit larger binaries.</li>
458<li>Previously, if a FullTextSearchSvcImpl was defined, but was disabled via configuration, there could be data loss when reindexing due to transaction rollbacks. This has been corrected. Thanks to @dyoung-work for the fix!</li>
459<li>Fixed a bug where the $everything operation on Patient instances and the Patient type was not correctly propagating the transactional semantics. This was causing callers to not be in a transactional context.</li>
460<li>Previously when updating a phonetic search parameter, any existing resource will not have its search parameter String updated upon reindex if the normalized String is the same letter as under the old algorithm (ex JN to JAN).  Searching on the new normalized String was failing to return results. This has been corrected.</li>
461<li>Previously, when creating a <code>DocumentReference</code> with an <code>Attachment</code> containing a URL over 254 characters
462an error was thrown. This has been corrected and now an <code>Attachment</code> URL can be up to 500 characters.</li>
463</ul>
464<h3>JPA Server Performance Changes</h3>
465<ul>
466<li>Initial page loading has been optimized to reduce the number of prefetched resources. This should improve the speed of initial search queries in many cases.</li>
467<li>Cascading deletes don't work correctly if multiple threads initiate a delete at the same time.  Either the resource won't be found or there will be a collision on inserting the new version.  This changes fixes the problem by better handling these conditions to either ignore an already deleted resource or to keep retrying in a new inner transaction.</li>
468<li>When using SearchNarrowingInterceptor, FHIR batch operations with a large number
469of conditional create/update entries exhibited very slow performance due to an
470unnecessary nested loop. This has been corrected.</li>
471<li>When using ForcedOffsetSearchModeInterceptor, any synchronous searches initiated programmatically (i.e. through the
472internal java API, not the REST API) will not be modified. This prevents issues when a java call requests a synchronous
473search larger than the default offset search page size</li>
474<li>Previously, when using _offset, the queries will result in short pages, and repeats results on different pages.
475This has now been fixed.</li>
476<li>Processing for <code>_include</code> and <code>_revinclude</code> parameters in the JPA server has been streamlined, which should
477improve performance on systems where includes are heavily used.</li>
478</ul>
479<h3>Database-specific Changes</h3>
480<ul>
481<li>Database migration steps were failing with Oracle 19C. This has been fixed by allowing the database engine to skip dropping non-existent indexes.</li>
482</ul>
483<h3>Terminology Server, Fulltext Search, and Validation Changes</h3>
484<ul>
485<li>With Elasticsearch configured, including terminology, an exception was raised while expanding a ValueSet
486with more than 10,000 concepts. This has now been fixed.</li>
487<li>Previously when ValueSets were pre-expanded after loinc terminology upload, expansion was failing with an exception for each ValueSet
488with more than 10,000 properties. This problem has been fixed.
489This fix changed some freetext mappings (definitions about how resources are freetext indexed) for terminology resources, which requires
490reindexing those resources. To do this use the <code>reindex-terminology</code> command.&quot;</li>
491<li>
491Added support for AWS OpenSearch to Fulltext Search. If an AWS Region is configured, HAPI-FHIR will assume you intend to connect to an AWS-managed OpenSearch instance, and will use
492Amazon's <a href="https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html">DefaultAwsCredentialsProviderChain</a> to authenticate against it. If both username and password are provided, HAPI-FHIR will attempt to use them as a static credentials provider.</li>
493<li>Search for strings with <code>:text</code> qualifier was not performing advanced search. This has been corrected.</li>
494<li>LOINC terminology upload process was enhanced to consider 24 additional properties which were defined in
495loinc.csv file but not uploaded.</li>
496<li>LOINC terminology upload process was enhanced by loading <code>MAP_TO</code> properties defined in MapTo.csv input file to TermConcept(s).</li>
497</ul>
498<h3>MDM (Master Data Management)</h3>
499<ul>
500<li>MDM messages were using the resource id as a message key when it should be using the EID as a partition hash key.
501This could lead to duplicate golden resources on systems using Kafka as a message broker.</li>
502<li><code>$mdm-submit</code> can now be run as a batch job, which will return a job ID, and can be polled for status. This can be accomplished by sending a <code>Prefer: respond-async</code> header with the request.</li>
503</ul>
504<h3>Batch Framework</h3>
505<ul>
506<li>Fast-tracking batch jobs that produced only one chunk has been rewritten to use Quartz triggerJob.  This will
507ensure that at most one thread is updating job status at a time.  Also jobs that had FAILED, ERRORED, or been CANCELLED
508could be accidentally set back to IN_PROGRESS; this has been corrected</li>
509<li>All Spring Batch dependencies and services have been removed.  Async processing has fully migrated to Batch 2.</li>
510<li>In HAPI-FHIR 6.1.0, a regression was introduced into bulk export causing exports beyond the first one to fail in strange ways. This has been corrected.</li>
511<li>A remove method has been added to the Batch2 job registry. This will allow for dynamic job registration
512in the future.</li>
513<li>Batch2 jobs were incorrectly prevented from transitioning from ERRORED to COMPLETE status.</li>
514</ul>
515<h3>Package Registry</h3>
516<ul>
517<li>Provided the ability to have the NPM package installer skip installing a package if it is already installed and matches the version requested. This can be controlled by
518the <code>reloadExisting</code> attribute in PackageInstallationSpec. It defaults to <code>true</code>, which is the existing behaviour. Thanks to  Craig McClendon (@XcrigX) for the contribution!</li>
519</ul>
520</div>
521
522				<div>
523					Posted: 2022-11-17T13:00:00<br/>
524					By: <a>james</a>
525				</div>
526
527				<div class="homepage-blog-permalinks">
528					<a href="/hapi-fhir/blog/20221117_hapi_fhir_6_2_0">Read More (Humans)</a>
529					<a href="/hapi-fhir/blog/fhir/baseR4/Communication/20221117_hapi_fhir_6_2_0">Read More (Robots)</a>
530				</div>
531
532			</div>
533		</div>
534		<div class="col-md-6 card-padding">
535			<h2>Demonstration/Test Page</h2>
536			<p>
537				A public test server can be found at <a href="http://hapi.fhir.org">http://hapi.fhir.org</a>.
538				This server is built entirely using
539				components of HAPI-FHIR and demonstrates all of its capabilities.
540				This server is also entirely open source.
541				You can host your own copy by following instructions on our 
542				<a href="/hapi-fhir/docs/server_jpa/">JPA Server documentation</a>.
543			</p>
544			<h2 class="pt-4">Commercial Support</h2>
545			<p>Commercial support for HAPI FHIR is available through <a href="https://smilecdr.com">Smile CDR</a>.</p>
546
547			<div class="row">
548				<div class="col-4" style="display: flex; align-items: center;">
549					<img src="images/logos/raccoon-sashay.png" alt="raccoon sashay" class="img-fluid">
550				</div>
551				<div class="col-xs-12 col-md-6 col-xl-5" style="display: flex; align-items: start; flex-direction: column-reverse;">
552					<a class="externalLink"
553						href="https://dev.azure.com/hapifhir/HAPI%20FHIR/_apis/build/status/jamesagnew.hapi-fhir?branchName=master"><img
554						id="badge-ci"
555						src=""
556						alt="Build Status" class="img-fluid"></a>
557					<a class="externalLink" href="https://codecov.io/gh/jamesagnew/hapi-fhir"><img
558						id="badge-coverage"
559						src="" alt="Coverage Status"
560						class="img-fluid"></a>
561					<a class="externalLink" href="https://lgtm.com/projects/g/jamesagnew/hapi-fhir/alerts/"><img
562						id="badge-lgtm-alerts"
563						alt="Total alerts"
564						src=""
565						class="img-fluid"/></a>
566					<a class="externalLink"
567						href="https://maven-badges.herokuapp.com/maven-central/ca.uhn.hapi.fhir/hapi-fhir-base/badge.svg"><img
568						id="badge-maven"
569						src=""
570						alt="Maven Central" class="img-fluid"></a>
571					<a class="externalLink" href="http://jamesagnew.github.io/hapi-fhir/lice
571nse.html"><img
572						id="badge-license"
573						src="" alt="Apache 2.0 Licensed"
574						class="img-fluid"></a>
575					
575<script type="application/javascript" async defer>
576						$( document ).ready(function() {
577							document.getElementById('badge-ci').src = 'https://dev.azure.com/hapifhir/HAPI%20FHIR/_apis/build/status/SNAPSHOT%20pipeline?branchName=master';
578							document.getElementById('badge-coverage').src = 'https://codecov.io/gh/hapifhir/hapi-fhir/branch/master/graph/badge.svg?token=zHfnKfQB9X';
579							document.getElementById('badge-lgtm-alerts').src = 'https://img.shields.io/lgtm/grade/java/g/hapifhir/hapi-fhir.svg?logo=lgtm&logoWidth=18';
580							document.getElementById('badge-maven').src = 'https://maven-badges.herokuapp.com/maven-central/ca.uhn.hapi.fhir/hapi-fhir-base/badge.svg';
581							document.getElementById('badge-license').src = 'https://img.shields.io/badge/license-apache%202.0-60C060.svg';
582						});
583					</script>
583
584				</div>
585				<div class="col-xs-12 col-lg-2" style="display: flex; align-items: start; flex-direction: column-reverse; margin-bottom: -6px;">
586
587					<a class="github-button" href="https://github.com/jamesagnew/hapi-fhir" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star jamesagnew/hapi-fhir on GitHub">Star</a>
588					<a class="github-button" href="https://github.com/jamesagnew/hapi-fhir/fork" data-icon="octicon-repo-forked" data-size="large" data-show-count="true" aria-label="Fork jamesagnew/hapi-fhir on GitHub">Fork</a>
589					<a class="github-button" href="https://github.com/jamesagnew/hapi-fhir/subscription" data-icon="octicon-eye" data-size="large" data-show-count="true" aria-label="Watch jamesagnew/hapi-fhir on GitHub">Watch</a>
590
591				</div>
592			</div>
593
594		</div>
595	</div>
596
597	<div class="container-fluid grey-banner text-center">
598		<div class="center-info">
599			<h2>Some Ways You Can Use HAPI FHIR</h2>
600			<p>HAPI is designed with one main intent: providing a flexible way of adding FHIR capability to applications.
601				This project was originally developed at
602				<a href="https://www.uhn.ca">University Health Network</a> to allow UHN to build up a system of unified FHIR
603				services to expose data backed by a number of systems and repositories. It is designed to be flexible
604				and composable above all else.</p>
605		</div>
606	</div>
607	<div class="container-fluid grey-how-you-can-use">
608		<div class="row">
609			<div class="col-md-3 offset-lg-1 col-lg-3">
610				<div class="card arrow-right">
611					<div class="card-body">
612						<p>Use the HAPI FHIR parser and encoder to convert between FHIR and your application's data model.</p>
613						<p class="mb-0"><a href="/hapi-fhir/docs/model/parsers.html">Learn More</a>
614					</div>
615				</div>
616			</div>
617			<div class="col-md-9 col-lg-7 middle-align">
618				<img src="images/use-diagrams/infog1.png" alt="diagram of HAPI FHIR parser" class="img-fluid">
619			</div>
620		</div>
621		<div class="row">
622			<div class="col-md-3 offset-lg-1 col-lg-3">
623				<div class="card arrow-right">
624					<div class="card-body">
625						<p>Use the HAPI FHIR client in an application to fetch from or store resources to an external
626							server.</p>
627						<p class="mb-0"><a href="/hapi-fhir/docs/client/">Learn More</a>
628					</div>
629				</div>
630			</div>
631			<div class="col-md-9 col-lg-7 middle-align">
632				<img src="images/use-diagrams/infog2.png" alt="diagram of storing resources" class="img-fluid">
633			</div>
634		</div>
635		<div class="row">
636			<div class="col-md-3 offset-lg-1 col-lg-3">
637				<div class="card arrow-right">
638					<div class="card-body">
639						<p>Use the HAPI FHIR server in an application to allow external applications to access or modify your
640							application's data.</p>
641						<p class="mb-0"><a href="/hapi-fhir/docs/server_plain/">Learn More</a>
642					</div>
643				</div>
644			</div>
645			<div class="col-md-9 col-lg-7 middle-align">
646				<img src="images/use-diagrams/infog3.png" alt="diagram of access resources" class="img-fluid">
647			</div>
648		</div>
649		<div class="row">
650			<div class="col-md-3 offset-lg-1 col-lg-3">
651				<div class="card arrow-right">
652					<div class="card-body">
653						<p>Use the HAPI JPA/Database Server to deploy a fully functional FHIR server you can develop
654							applications against.</p>
655						<p class="mb-0"><a href="/hapi-fhir/docs/server_jpa/">Learn More</a>
656					</div>
657				</div>
658			</div>
659			<div class="col-md-9 col-lg-7 middle-align">
660				<img src="images/use-diagrams/infog4.png" alt="diagram of deploying resources" class="img-fluid">
661			</div>
662		</div>
663	</div>
664
665	<div class="container-fluid text-center info-section">
666		<div class="row">
667			<div class="col-12 offset-lg-1 col-lg-10">
668
669		<div class="center-info">
670			<h1 class="friends-of-hapi-fhir">Friends of HAPI FHIR</h1>
671			<p>
672				We are on a mission to improve global healthcare. We know that we can't do it alone though!
673				HAPI FHIR thanks all of these amazing organizations who have sponsored HAPI FHIR development, helped
674				out with infrastructure, or otherwise helped us keep the lights on.
675			</p>
676		</div>
677		<div class="friendsBox">
678			<div><a href="https://smiledigitalhealth.com"><img src="/hapi-fhir/resources/cdr-web-resources/images/smilecdr_digitalhealth.svg" alt="Smile Digital Health" class="friendsBoxBigImage"/></a></div>
679			<div><a href="https://www.uhn.ca/"><img src="/hapi-fhir/images/friends-logos/uhn.jpg" alt="UHN" class="friendsBoxBigImage"/></a></div>
680			<div><a href="http://ehealthinnovation.org/"><img src="/hapi-fhir/images/friends-logos/ehi.png" alt="eHealth Innovation" class="friendsBoxBigImage"/></a></div>
681			<div><a href="https://lhncbc.nlm.nih.gov/"><img src="/hapi-fhir/images/friends-logos/lhncbc.jpg" alt="Lister Hill National Centre for Biomedical Computing"/></a></div>
682			<div><a href="https://nih.gov/"><img src="/hapi-fhir/images/friends-logos/nih.png" alt="National Institutes for Health"/></a></div>
683			<div><a href="https://loinc.org/"><img src="/hapi-fhir/images/friends-logos/loinc.png" alt="LOINC"/></a></div>
684			<div><a href="https://www.jdrf.org/"><img src="/hapi-fhir/images/friends-logos/jdrf.png" alt="JDRF" class="friendsBoxBigImage"/></a></div>
685			<div><a href="https://www.adb.org/"><img src="/hapi-fhir/images/friends-logos/adb.png" alt="ADB"/></a></div>
686			<div><a href="https://cloud.google.com/"><img src="/hapi-fhir/images/friends-logos/google-cloud.png" alt="Google Cloud"/></a></div>
687			<div><a href="https://www.hl7.org"><img src="/hapi-fhir/images/friends-logos/hl7-int.png" alt="HL7 International"/></a></div>
688			<div><a href="http://sil-asia.org"><img src="/hapi-fhir/images/friends-logos/sila.png" alt="SIL ASIA"/></a></div>
689		</div>
690
691			</div>
692		</div>
693
694	</div>
695	
696
697	<!-- footer -->
698	<footer class="page-footer">
699		<div class="container-fluid text-center text-md-left">
700			<hr class="bottom-hr">
701			<div class="row pt-3 pb-3">
702				<div class="col-md-3 text-center">
703					<img src="/hapi-fhir/images/logos/raccoon-forwards.png" alt="raccoon logo without text" width="100">
704				</div>
705				<div class="col-md-2">
706					<p class="footer-heading">HAPI HAPI</p>
707					<ul class="list-unstyled">
708						<li><a href="/hapi-fhir/">Home</a></li>
709						<li><a href="/hapi-fhir/docs/getting_started/downloading_and_importing.html">Download</a></li>
710						<li><a href="/hapi-fhir/docs/introduction/changelog.html">Changelog</a></li>
711						<li><a href="/hapi-fhir/license.html">License</a></li>
712						<li><a href="/hapi-fhir/blog/">News</a></li>
713					</ul>
714					<p class="footer-heading">TEST SERVER</p>
715					<ul class="list-unstyled">
716						<li><a href="http://hapi.fhir.org/" target="_blank">Public Test Server</a></li>
717					</ul>
718					<p class="footer-heading">SUPPORT</p>
719					<ul class="list-unstyled">
720						<li><a href="https://smilecdr.com/" target="_blank">Smile CDR</a></li>
721					</ul>
722				</div>
723				<div class="col-md-2">
724					<p class="footer-heading">USING HAPI</p>
725					<ul class="list-unstyled">
726						<li><a href="/hapi-fhir/docs/">Documentation</a></li>
727						<li><a href="">Command Line Tool (cli)</a></li>
728					</ul>
729					<p class="footer-heading">STARTER PROJECTS</p>
730					<ul class="list-unstyled">
731						<li><a href="https://github.com/FirelyTeam/fhirstarters/tree/master/java/hapi-fhirstarters-client-skeleton">Client</a></li>
732						<li><a href="https://github.com/FirelyTeam/fhirstarters/tree/master/java/hapi-fhirstarters-rest-server-skeleton">Plain Server</a></li>
733						<li><a href="https://github.com/hapifhir/hapi-fhir-jpaserver-starter">JPA Server</a></li>
734					</ul>
735				</div>
736				<div class="col-md-2">
737					<p class="footer-heading">JAVADOCS</p>
738					<ul class="list-unstyled">
739						<li><a href="/hapi-fhir/apidocs/hapi-fhir-base/">Core API</a></li>
740						<li><a href="/hapi-fhir/apidocs/hapi-fhir-structures-dstu2/">Model API (DSTU2)</a></li>
741						<li><a href="/hapi-fhir/apidocs/hapi-fhir-structures-dstu3/">Model API (DSTU3)</a></li>
742						<li><a href="/hapi-fhir/apidocs/hapi-fhir-structures-r4/">Model API (R4)</a></li>
743						<li><a href="/hapi-fhir/apidocs/hapi-fhir-structures-r5/">Model API (R5)</a></li>
744						<li><a href="/hapi-fhir/apidocs/hapi-fhir-client/">Client API</a></li>
745						<li><a href="/hapi-fhir/apidocs/hapi-fhir-server/">Plain Server - API</a></li>
746                  <li><a href="/hapi-fhir/apidocs/hapi-fhir-server-mdm/">Plain Server - MDM API</a></li>
747                  <li><a href="/hapi-fhir/apidocs/hapi-fhir-server-openapi/">Plain Server - OpenAPI</a></li>
748						<li><a href="/hapi-fhir/apidocs/hapi-fhir-storage/">JPA Server - API</a></li>
749						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jpaserver-model/">JPA Server - Model</a></li>
750						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jpaserver-searchparam/">JPA Server - Search Param Support</a></li>
751						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jpaserver-subscription/">JPA Server - Subscription</a></li>
752						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jpaserver-base/">JPA Server - Base</a></li>
753						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jpaserver-ips/">JPA Server - IPS</a></li>
754						<li><a href="/hapi-fhir/apidocs/hapi-fhir-validation/">Validation API</a></li>
755						<li><a href="/hapi-fhir/apidocs/hapi-fhir-converter/">Version Converter API</a></li>
756						<li><a href="/hapi-fhir/apidocs/hapi-fhir-jaxrsserver-base/">Server API (JAX-RS)</a></li>
757					</ul>
758				</div>
759				<div class="col-md-3">
760					<p class="footer-heading">GET HELP</p>
761					<ul class="list-unstyled">
762						<li><a href="https://github.com/jamesagnew/hapi-fhir/wiki/Getting-Help" target="_blank">How to Ask for Help (read this first!)</a></li>
763						<li><a href="https://groups.google.com/d/forum/hapi-fhir" target="_blank">Google Group (Ask Questions)</a></li>
764						<li><a href="https://github.com/jamesagnew/hapi-fhir/issues" target="_blank">Issue Tracker (Report Bugs/Request Features)</a></li>
765						<li><a href="https://chat.fhir.org/" target="_blank">FHIR.org Chat (Live Chat with FHIR Implementors)</a></li>
766						<li><a href="/hapi-fhir/docs/appendix/faq.html">Frequently Asked Questions (FAQ)</a></li>
767					</ul>
768					<p class="footer-heading">CONTRIBUTE</p>
769					<ul class="list-unstyled">
770						<li><a href="/hapi-fhir/docs/contributing/hacking_guide.html">Guide to Hacking HAPI</a></li>
771						<li><a href="/hapi-fhir/contributors.html">Contributors</a></li>
772					</ul>
773				</div>
774			</div>
775		</div>
776
777		<!-- footer copyright -->
778		<div class="footer-copyright text-center py-3">
779			<p>Updated: 2026-09-18T09:34:13.854Z — Made with <i style="color: #FF6600;" class="fas fa-heart"></i> in <a href="https://www.cbc.ca/news/canada/toronto/raccoon-city-wildlife-in-toronto-1.2742231"><img src="/hapi-fhir/images/icons/raccoon.svg" alt="Raccoon" width="20"></a>
780		</div>
781
782	</footer>
783
784   <!-- Google tag (gtag.js) GA4 -->
vendor: 67 bytes, lines 784-785
784
785   <script async src="https://www.googletagmanager.com/gtag/js?id=
785G-7KR8W2MZFQ
vendor: 15 bytes, lines 785-786
785"></script>
786   
786<script>
787      
vendor: 146 bytes, lines 787-791
787window.dataLayer = window.dataLayer || [];
788      function gtag(){dataLayer.push(arguments);}
789      gtag('js', new Date());
790
791      gtag('config', '
791G-7KR8W2MZFQ
vendor: 7 bytes, lines 791-792
791');
792   
792</script>
792
793
794
795</div>
796
797<script async defer src="//buttons.github.io/buttons.js"></script>
797
798</body>
799
800</html>
801
802

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.