@simple-fhir/fhir-resource-fetch
v1.8.0
Published
The `FHIRAuthentication` class provides methods for managing FHIR server authentication and authorization using OpenID Connect (OIDC) protocol. It allows you to set credentials, discover the issuer metadata, set the client metadata, refresh tokens, and re
Downloads
4
Readme
FHIRAuthentication and FHIRClient
The FHIRAuthentication
class provides methods for managing FHIR server authentication and authorization using OpenID Connect (OIDC) protocol. It allows you to set credentials, discover the issuer metadata, set the client metadata, refresh tokens, and retrieve authorization URLs.
The FHIRClient
class represents a client application that interacts with the FHIR server. It allows you to configure the client's credentials, grant types, response types, token endpoint authentication method, and redirect URIs.
Example Usage
// Initialize FHIRAuthentication
const fhirAuth = new FHIRAuthentication(fhirInstance);
// Set credentials and issuer metadata
fhirAuth.setCredentials(credentials);
fhirAuth.setIssuer(issuerMetadata);
// Discover the issuer
await fhirAuth.discover();
// Set the client metadata
fhirAuth.setClient(clientMetadata);
// Get the client
const client = await fhirAuth.getClient();
// Get the authorization URL
const authUrl = await fhirAuth.authorizationUrl(params);
// Initialize FHIRClient
const fhirClient = new FHIRClient(clientId, clientSecret);
// Configure the client
fhirClient.setGrantTypes(grantTypes);
fhirClient.setResponseTypes(responseTypes);
fhirClient.setTokenEndpointTypes(tokenEndpointAuthMethod);
fhirClient.setRedirectUris(redirectUris);
// Retrieve the client credentials
const clientId = fhirClient.getClientId();
const clientSecret = fhirClient.getClientSecret();
// Fetch FHIR server metadata
const fhirServer = new FHIRServer(baseURL);
const metadata = await fhirServer.metadata();
// Fetch available resources
const resources = await fhirServer.availableResources();
// Fetch a specific resource
const resourceFetch = new FHIRResourceFetch(fhirBaseURL);
resourceFetch.setResourceType(resourceType);
resourceFetch.setAuthorization(accessToken);
resourceFetch.setContentType(contentType);
const resourceData = await resourceFetch.fetch();
// Fetch a Patient resource
const patientFetch = new FetchFHIRPatient(fhirBaseURL);
patientFetch.setAuthorization(accessToken);
patientFetch.searchById(patientId);
const patientData = await patientFetch.fetch();
// Fetch AllergyIntolerance resources for a patient
const allergyIntoleranceFetch = new FetchFHIRAllergyIntolerance(fhirBaseURL);
allergyIntoleranceFetch.setAuthorization(accessToken);
allergyIntoleranceFetch.searchByPatient(patientId);
const allergyIntoleranceData = await allergyIntoleranceFetch.fetch();
// Fetch Immunization resources for a patient
const immunizationFetch = new FetchFHIRImmunization(fhirBaseURL);
immunizationFetch.setAuthorization(accessToken);
immunizationFetch.searchByPatient(patientId);
const immunizationData = await immunizationFetch.fetch();
// Fetch a bundle of resources for a patient
const bundle = new FHIRSinglePatientBundle(fhirBaseURL);
bundle.setPatientId(patientId);
bundle.setAuthorization(token);
const result = await bundle.fetchAll();
// Configure FHIR server
const serverConfig = new FHIRServerConfig(identifier);
serverConfig.setBaseURL(baseURL);
serverConfig.setAuthURL(authURL);
serverConfig.addClient(client);
serverConfig.getClient(clientId);
// Serialize server config to JSON
const serverConfigJson = serverConfig.toJSON();