- CurrentPatientOptions
- CurrentUserOptions
- CurrentUserWithResponseOption
- CurrentUserWithoutResponseOption
- FHIRCode
- FHIRRequestObj
- FHIRResource
- FetchHeaders
- FetchResponse
- Location
- LoggedInUser
- LoggedInUserFetchResponse
- NewVisitPayload
- OnlyThePatient
- OpenmrsResource
- PatientWithFullResponse
- Person
- Privilege
- Role
- SessionUser
- UnauthenticatedUser
- User
- Visit
- VisitItem
- VisitType
- WorkspaceItem
- getLocations
- getLoggedInUser
- getVisitTypes
- getVisitsForPatient
- makeUrl
- openVisitsNoteWorkspace
- saveVisit
- toLocationObject
- toVisitTypeObject
- updateVisit
- userHasAccess
Ƭ CurrentPatient: fhir.Patient
| FetchResponse<fhir.Patient>
packages/framework/esm-api/src/shared-api-objects/current-patient.ts:4
Ƭ PatientUuid: string
| null
packages/framework/esm-api/src/shared-api-objects/current-patient.ts:18
Ƭ UpdateVisitPayload: NewVisitPayload & {}
packages/framework/esm-api/src/types/visit-resource.ts:12
• Const
fhir: FhirClient
The fhir
object is an instance of fhir.js
that can be used to call FHIR-compliant OpenMRS APIs. See
the docs for fhir.js for more info
and example usage.
packages/framework/esm-api/src/fhir.ts:41
• Const
backendDependencies: Object
Name | Type |
---|---|
fhir2 |
string |
webservices.rest |
string |
packages/framework/esm-api/src/openmrs-backend-dependencies.ts:1
• Const
fhirBaseUrl: "/ws/fhir2/R4"
packages/framework/esm-api/src/fhir.ts:4
• Const
getStartedVisit: BehaviorSubject
<null
| VisitItem>
packages/framework/esm-api/src/shared-api-objects/visit-utils.ts:84
• Const
sessionEndpoint: "/ws/rest/v1/session"
packages/framework/esm-api/src/openmrs-fetch.ts:6
▸ openmrsFetch<T>(path
, fetchInit?
): Promise
<FetchResponse<T>>
The openmrsFetch function is a wrapper around the browser's built-in fetch function, with extra handling for OpenMRS-specific API behaviors, such as request headers, authentication, authorization, and the API urls.
Name | Type |
---|---|
T |
T = any |
Name | Type | Description |
---|---|---|
path |
string |
A string url to make the request to. Note that the openmrs base url (by default /openmrs ) will be automatically prepended to the URL, so there is no need to include it. |
fetchInit |
FetchConfig |
A fetch init object. Note that the body property does not need to be JSON.stringify() ed because openmrsFetch will do that for you. |
Promise
<FetchResponse<T>>
A Promise
that resolves with a Response object.
Note that the openmrs version of the Response object has already
downloaded the HTTP response body as json, and has an additional
data
property with the HTTP response json as a javascript object.
import { openmrsFetch } from '@openmrs/esm-api'
const abortController = new AbortController();
openmrsFetch('/ws/rest/v1/session', {signal: abortController.signal})
.then(response => {
console.log(response.data.authenticated)
})
.catch(err => {
console.error(err.status);
})
abortController.abort();
openmrsFetch('/ws/rest/v1/session', {
method: 'POST',
body: {
username: 'hi',
password: 'there',
}
})
To cancel a network request, use an AbortController. It is best practice to cancel your network requests when the user navigates away from a page while the request is pending request, to free up memory and network resources and to prevent race conditions.
packages/framework/esm-api/src/openmrs-fetch.ts:61
▸ openmrsObservableFetch<T>(url
, fetchInit?
): Observable
<FetchResponse<T>>
The openmrsObservableFetch function is a wrapper around openmrsFetch that returns an Observable instead of a promise. It exists in case using an Observable is preferred or more convenient than a promise.
Name |
---|
T |
Name | Type | Description |
---|---|---|
url |
string |
See openmrsFetch |
fetchInit |
FetchConfig |
See openmrsFetch |
Observable
<FetchResponse<T>>
An Observable that produces exactly one Response object. The response object is exactly the same as for openmrsFetch.
import { openmrsObservableFetch } from '@openmrs/esm-api'
const subscription = openmrsObservableFetch('/ws/rest/v1/session').subscribe(
response => console.log(response.data),
err => {throw err},
() => console.log('finished')
)
subscription.unsubscribe()
To cancel the network request, simply call subscription.unsubscribe();
packages/framework/esm-api/src/openmrs-fetch.ts:232
▸ fetchCurrentPatient(patientUuid
): Promise
<Object
> | Promise
<null
>
Name | Type |
---|---|
patientUuid |
PatientUuid |
Promise
<Object
> | Promise
<null
>
packages/framework/esm-api/src/shared-api-objects/current-patient.ts:23
▸ getCurrentUser(): Observable
<LoggedInUser>
The getCurrentUser function returns an observable that produces zero or more values, over time. It will produce zero values by default if the user is not logged in. And it will provide a first value when the logged in user is fetched from the server. Subsequent values will be produced whenever the user object is updated.
Observable
<LoggedInUser>
An Observable that produces zero or more values (as
described above). The values produced will be a user object (if
includeAuthStatus
is set to false
) or an object with a session
and authenticated property (if includeAuthStatus
is set to true
).
import { getCurrentUser } from '@openmrs/esm-api'
const subscription = getCurrentUser().subscribe(
user => console.log(user)
)
subscription.unsubscribe()
getCurrentUser({includeAuthStatus: true}).subscribe(
data => console.log(data.authenticated)
)
Otherwise your code will continue getting updates to the user object even after the UI component is gone from the screen. This is a memory leak and source of bugs.
packages/framework/esm-api/src/shared-api-objects/current-user.ts:56
▸ getCurrentUser(opts
): Observable
<UnauthenticatedUser>
Name | Type |
---|---|
opts |
CurrentUserWithResponseOption |
Observable
<UnauthenticatedUser>
packages/framework/esm-api/src/shared-api-objects/current-user.ts:57
▸ getCurrentUser(opts
): Observable
<LoggedInUser>
Name | Type |
---|---|
opts |
CurrentUserWithoutResponseOption |
Observable
<LoggedInUser>
packages/framework/esm-api/src/shared-api-objects/current-user.ts:60
▸ refetchCurrentUser(): void
The refetchCurrentUser
function causes a network request to redownload
the user. All subscribers to the current user will be notified of the
new users once the new version of the user object is downloaded.
void
The same observable as returned by getCurrentUser.
import { refetchCurrentUser } from '@openmrs/esm-api'
refetchCurrentUser()
packages/framework/esm-api/src/shared-api-objects/current-user.ts:116
▸ getLocations(): Observable
<Location[]>
Observable
<Location[]>
packages/framework/esm-api/src/shared-api-objects/location.ts:13
▸ getLoggedInUser(): Promise
<LoggedInUser>
Promise
<LoggedInUser>
packages/framework/esm-api/src/shared-api-objects/current-user.ts:125
▸ getVisitTypes(): Observable
<VisitType[]>
Observable
<VisitType[]>
packages/framework/esm-api/src/shared-api-objects/visit-type.ts:14
▸ getVisitsForPatient(patientUuid
, abortController
, v?
): Observable
<FetchResponse<Object
>>
Name | Type |
---|---|
patientUuid |
string |
abortController |
AbortController |
v? |
string |
Observable
<FetchResponse<Object
>>
packages/framework/esm-api/src/shared-api-objects/visit-utils.ts:23
▸ makeUrl(path
): string
Name | Type |
---|---|
path |
string |
string
packages/framework/esm-api/src/openmrs-fetch.ts:8
▸ openVisitsNoteWorkspace(componentName
, title
): void
Name | Type |
---|---|
componentName |
string |
title |
string |
void
packages/framework/esm-api/src/shared-api-objects/visit-utils.ts:12
▸ saveVisit(payload
, abortController
): Observable
<FetchResponse<any>>
Name | Type |
---|---|
payload |
NewVisitPayload |
abortController |
AbortController |
Observable
<FetchResponse<any>>
packages/framework/esm-api/src/shared-api-objects/visit-utils.ts:55
▸ toLocationObject(openmrsRestForm
): Location
Name | Type |
---|---|
openmrsRestForm |
any |
packages/framework/esm-api/src/shared-api-objects/location.ts:6
▸ toVisitTypeObject(openmrsRestForm
): VisitType
Name | Type |
---|---|
openmrsRestForm |
any |
packages/framework/esm-api/src/shared-api-objects/visit-type.ts:6
▸ updateVisit(uuid
, payload
, abortController
): Observable
<any>
Name | Type |
---|---|
uuid |
string |
payload |
UpdateVisitPayload |
abortController |
AbortController |
Observable
<any>
packages/framework/esm-api/src/shared-api-objects/visit-utils.ts:69
▸ userHasAccess(requiredPrivilege
, user
): undefined
| Privilege
Name | Type |
---|---|
requiredPrivilege |
string |
user |
LoggedInUser |
undefined
| Privilege
packages/framework/esm-api/src/shared-api-objects/current-user.ts:121
▸ getNewWorkspaceItem(): Observable
<WorkspaceItem>
Observable
<WorkspaceItem>
packages/framework/esm-api/src/workspace/workspace.resource.tsx:19
▸ newWorkspaceItem(item
): void
Name | Type |
---|---|
item |
WorkspaceItem |
void
packages/framework/esm-api/src/workspace/workspace.resource.tsx:10