-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Description
Environment details
- OS: macOS Sonoma 14.4.1
- Node.js version: 20.5.1
- npm version: 9.8.0
@googleapis/healthcare
version: 16.0.0
Hi there- following the example code for creating FHIR resources, it seems the generated types do not match what the api expects.
Running the example code indicates the requestBody
is mistyped and should be of type Scehma$HttpBody.
The response is also mistyped as it seems to return a BLOB. Below is the example code with comments added. This was tested using valid config variables.
const google = require('@googleapis/healthcare');
const healthcare = google.healthcare({
version: 'v1',
auth: new google.auth.GoogleAuth({
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
}),
headers: { 'Content-Type': 'application/fhir+json' },
});
async function createFhirResource() {
// Replace the following body with the data for the resource you want to
// create.
const body = {
name: [{ use: 'official', family: 'Smith', given: ['Darcy'] }],
gender: 'female',
birthDate: '1970-01-01',
resourceType: 'Patient',
};
// TODO(developer): uncomment these lines before running the sample
// const cloudRegion = 'us-central1';
// const projectId = 'adjective-noun-123';
// const datasetId = 'my-dataset';
// const fhirStoreId = 'my-fhir-store';
// const resourceType = 'Patient';
// Example code request - type errors for `requestBody`, returns 200
const request = { parent, type: resourceType, requestBody: body };
const resource = await healthcare.projects.locations.datasets.fhirStores.fhir.create(request);
// Modified to satisfy type errors, throws 400
// const request = { parent, type: resourceType, requestBody: { data: JSON.stringify(body) } };
// const resource = await healthcare.projects.locations.datasets.fhirStores.fhir.create(request);
// Example code response - `id` is undefined, `resource.data` is a BLOB. Type error: Property 'id' does not exist on type 'Schema$HttpBody'.
// console.log(`Created FHIR resource with ID ${resource.data.id}`);
// console.log(resource.data);
// Modified to parse response correctly, throws type errors
const textData = await resource.data.text();
const parsedData = JSON.parse(textData);
console.log(`Created FHIR resource with ID ${parsedData.id}`);
console.log(parsedData);
}
createFhirResource();
It seems there have been a couple other similar issues in the other api libraries.
See: #1944 and #1168
SargisPlusPlus, jacknewberry and jacob-bennett
Metadata
Metadata
Assignees
Labels
priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.