Skip to main content
U.S. flag

An official website of the United States government

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