Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

VSAC Support Center

FHIR Client Java Example

This Java example is for Java developers to use and modify when they wish to make a VSAC FHIR API call from within their program.

import java.io.IOException;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.http.HttpHeaders;

public class FhirClient {

	public static void main(String[] args) throws IOException {

		String fhirServerBase = "https://cts.nlm.nih.gov/fhir/";
		String username = "";
		String password = "d4c9d78b-83dc-499e-ae27-947cc00fb438"; // Assign an API key to password
		String valueToEncode = username + ":" + password;
	    String basicAuthHeader =  "Basic " + Base64.getEncoder().encodeToString(valueToEncode.getBytes());		

		HttpClient client = HttpClientBuilder.create().build();
		try {

			// Request sample 1: value set
			HttpGet httpGet = new HttpGet();
			httpGet.setHeader(HttpHeaders.AUTHORIZATION, basicAuthHeader);

			httpGet.setURI(new URIBuilder(fhirServerBase + "ValueSet/2.16.840.1.113762.1.4.1018.98").build()); // VSAC OID example
			HttpResponse response = client.execute(httpGet);
			String responseString = EntityUtils.toString(response.getEntity());
			System.out.println(responseString);

			// Request sample 2: code system lookup
			httpGet.setURI(new URIBuilder(fhirServerBase + "CodeSystem/$lookup?system=http://loinc.org&code=1963-8").build());

			response = client.execute(httpGet);
			responseString = EntityUtils.toString(response.getEntity());
			System.out.println(responseString);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Last Reviewed: September 7, 2023