UNPKG

@oystehr/sdk

Version:

Oystehr SDK

114 lines (111 loc) 5.37 kB
// 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); } }