@openmrs/esm-api
Version:
The javascript module for interacting with the OpenMRS API
44 lines (35 loc) • 1.5 kB
text/typescript
/** @module @category API */
import type { UploadedFile } from './types';
import { openmrsFetch, restBaseUrl } from './openmrs-fetch';
export const attachmentUrl = `${restBaseUrl}/attachment`;
export function getAttachmentByUuid(attachmentUuid: string, abortController: AbortController) {
return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {
signal: abortController.signal,
});
}
export function getAttachments(patientUuid: string, includeEncounterless: boolean, abortController: AbortController) {
return openmrsFetch(`${attachmentUrl}?patient=${patientUuid}&includeEncounterless=${includeEncounterless}`, {
signal: abortController.signal,
});
}
export async function createAttachment(patientUuid: string, fileToUpload: UploadedFile) {
const formData = new FormData();
formData.append('fileCaption', fileToUpload.fileDescription);
formData.append('patient', patientUuid);
if (fileToUpload.file) {
formData.append('file', fileToUpload.file, fileToUpload.fileName);
} else {
formData.append('file', new File([''], fileToUpload.fileName), fileToUpload.fileName);
formData.append('base64Content', fileToUpload.base64Content);
}
return openmrsFetch(`${attachmentUrl}`, {
method: 'POST',
body: formData,
});
}
export function deleteAttachmentPermanently(attachmentUuid: string, abortController: AbortController) {
return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {
method: 'DELETE',
signal: abortController.signal,
});
}