Publicly Available FHIR Servers for testing
Back to FHIR home page
Introduction
This page lists FHIR servers that are publically available for testing. In order to avoid spam etc, the servers are generally password protected. A contact is provided to get a password.
List
Note that these servers are testing servers. They may be sporadically unavailable, and as the FHIR specification is a moving target, they may not always implement the latest version, or do so correctly.
- http://hl7connect.healthintersections.com.au/svc/fhir/ - Grahame's test server.
- Supports all resource types, all operations, xml + json
- implementation details: delphi code/sql server, uses the delphi reference implementation
- also available using SSL at https://hl7connect.healthintersections.com.au/svc/fhir/
- also available as an secured endpoint at http://hl7connect.healthintersections.com.au/svc/secure/fhir/ (and https too) see Health Intersections FHIR Server login documentation
- http://spark.furore.com - Ewout's test server (previously fhir.furore.com). The actual service endpoint is at http://spark.furore.com/fhir.
- Supports all resource types, all operations, xml + json
- implementation details: C# reference implementation, WCF Rest library, Mongo DB for storage, Lucene for search.
- Server is running on AppHarbor, Mongo at MongoLab, and storage of binary is done on Amazon S3
- http://nprogram.azurewebsites.net/ - Rik Smithies/NProgram test server
- person and patient resources, read only (C#)
- http://oridashi.com.au/fhir/ - Brett Esler/Oridashi demo servers overview
- read-only implementation: .NET 2.0, C#, self-host web server, SQL Server DB - legacy CIS
- End point #1: 'Best Practice CIS' http://demo.oridashi.com.au:8190/
- End point #2: 'Medical Director CIS' http://demo.oridashi.com.au:8191/
- https://api.fhir.me - Josh Mandel / SMART Platforms
- Open-source server in Grails (Java/Groovy) + MongoDB
- "SMART on FHIR" Server: https://api.fhir.me | Source
- "FHIR Starter" App Launcher https://apps.fhir.me | Source
SSL Fix
On Grahame's SSL server the SSL trust certificate is not signed by a known Cert Authority. At least in JAVA or SCALA to get the resources you will have to set up a trustStore and manually import the cert from the server and assert that it is trusted.
To create the trustStore use the Java utility called keytool. First create a trustStore in the directory of your choice like this.
keytool -genkeypair -keyalg RSA -keysize 1024 -dname "CN=hl7.kp.org, OU=Pleasanton, O=Kaiser Permanente , L=Corona, S=California, C=US, EMAILADDRESS=Me@server.com" -validity 365 -keystore fhirTruststore
Note you will be prompted for a new password. Choose one and remember it.
You can obtain the cert from Grahame's server with various browsers, instructions differ.
Once you have the cert add it as a trusted cert to the trustStore like this, the cert file is fhir_der_x509.cer.
keytool -import -trustcacerts -alias hl7.kp.org -file fhir_der_x509.cer -keystore fhirTruststore
You can confirm it worked with this line.
keytool -list -v -keystore fhirTruststore
Now that you have that done, know the directory you put it, and know the password, then in your JAVA code you must add these lines.
System.setProperty("javax.net.ssl.trustStore", "/Users/peterhendler/development/FHIR/certificates/fhirTruststore"); System.setProperty("javax.net.ssl.trustStorePassword", "fhirdemo");
Finally, and this is important, you can not use the URL published above. The cert is actually from Amazon AWS so you must connect like this.
url = new URL("https://ec2-107-20-116-177.compute-1.amazonaws.com/svc/fhir/people/@34234");
Note the server name been has changed.