@oystehr/sdk
Version:
Oystehr SDK
114 lines (111 loc) • 5.37 kB
text/typescript
// AUTOGENERATED -- DO NOT EDIT
import {
LabOrderableItemListParams,
LabOrderableItemListResponse,
LabOrderableItemQuestionnaireGetParams,
LabOrderableItemQuestionnaireGetResponse,
LabOrderSubmitParams,
LabRouteCreateParams,
LabRouteDeleteParams,
LabRouteListResponse,
OystehrClientRequest,
} from '../..';
import { SDKResource } from '../../client/client';
import { OystehrConfig } from '../../config';
export class Lab extends SDKResource {
constructor(config: OystehrConfig) {
super(config);
}
#baseUrlThunk(): string {
return this.config.services?.['labApiUrl'] ?? 'https://labs-api.zapehr.com/v1';
}
/**
* Gets a list of Routes associated with the project. Returns an empty list if no Routes are found.
*
* Access Policy Requirements:
* Action: `Lab:GetRoutes`
* Access Policy Resource: `Lab:Route`
*/
routeList(request?: OystehrClientRequest): Promise<LabRouteListResponse> {
return this.request('/route', 'get', this.#baseUrlThunk.bind(this))(request);
}
/**
* Create a route. A Route represents that a lab and particular customer have a relationship, and a Route is necessary to submit an order to a lab. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) for more details.
*
* Access Policy Requirements:
* Action: `Lab:CreateRoute`
* Access Policy Resource: `Lab:Route`
*/
routeCreate(params: LabRouteCreateParams, request?: OystehrClientRequest): Promise<void> {
return this.request('/route', 'post', this.#baseUrlThunk.bind(this))(params, request);
}
/**
* Delete a route. Deleting a Route will permanently remove the `routeGuid`. Orders can no longer be submitted to this lab until a new Route is created. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#delete-route) for more details.
*
* Access Policy Requirements:
* Action: `Lab:DeleteRoute`
* Access Policy Resource: `Lab:Route`
*/
routeDelete(params: LabRouteDeleteParams, request?: OystehrClientRequest): Promise<void> {
return this.request('/route/{routeGuid}', 'delete', this.#baseUrlThunk.bind(this))(params, request);
}
/**
* Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
*
* Access Policy Requirements:
* Action: `Lab:SearchOrderableItems`
* Access Policy Resource: `Lab:OrderableItem`
*/
orderableItemList(
params: LabOrderableItemListParams,
request?: OystehrClientRequest
): Promise<LabOrderableItemListResponse>;
/**
* Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
*
* Access Policy Requirements:
* Action: `Lab:SearchOrderableItems`
* Access Policy Resource: `Lab:OrderableItem`
*/
orderableItemList(request?: OystehrClientRequest): Promise<LabOrderableItemListResponse>;
/**
* Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
*
* Access Policy Requirements:
* Action: `Lab:SearchOrderableItems`
* Access Policy Resource: `Lab:OrderableItem`
*/
orderableItemList(
params?: LabOrderableItemListParams | OystehrClientRequest,
request?: OystehrClientRequest
): Promise<LabOrderableItemListResponse> {
return this.request('/orderableItem', 'get', this.#baseUrlThunk.bind(this))(params, request);
}
/**
* Retrieve the AOE (Answer on Entry) Questionnaire for the given orderable item. The orderable item is defined by its labGuid, compendiumVersion, and itemCode. See [AOE](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#AOE) for more details.
*
* Access Policy Requirements:
* Action: `Lab:SearchOrderableItems`
* Access Policy Resource: `Lab:OrderableItem`
*/
orderableItemQuestionnaireGet(
params: LabOrderableItemQuestionnaireGetParams,
request?: OystehrClientRequest
): Promise<LabOrderableItemQuestionnaireGetResponse> {
return this.request(
'/canonical-questionnaire/lab/{labGuid}/compendium/{compendiumVersion}/item/{itemCode}/questionnaire',
'get',
this.#baseUrlThunk.bind(this)
)(params, request);
}
/**
* Submit a lab order. Oystehr's [Submit Lab](https://docs.oystehr.com/oystehr/services/lab/submit-an-order/) feature allows users to submit a well configured ServiceRequest to an external lab. In order to successfully submit an order, a [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) to and Organization representing that lab must exist.
*
* Access Policy Requirements:
* Action: `Lab:SubmitOrder`
* Access Policy Resource: `Lab:Order`
*/
orderSubmit(params: LabOrderSubmitParams, request?: OystehrClientRequest): Promise<void> {
return this.request('/submit', 'post', this.#baseUrlThunk.bind(this))(params, request);
}
}