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) ›</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."</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 \"1GB\"</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."</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.