UNPKG

@oystehr/sdk

Version:

Oystehr SDK

128 lines (125 loc) 6.09 kB
// AUTOGENERATED -- DO NOT EDIT import { LabOrderableItemListParams, LabOrderableItemListResponse, LabOrderableItemQuestionnaireGetParams, LabOrderableItemQuestionnaireGetResponse, LabOrderSubmitParams, LabOrderSubmitResponse, LabRouteCreateParams, LabRouteCreateResponse, LabRouteDeleteParams, LabRouteGetParams, LabRouteGetResponse, 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<LabRouteCreateResponse> { return this.request('/route', 'post', this.#baseUrlThunk.bind(this))(params, request); } /** * Gets a Route associated with the project by specified Guid. * * Access Policy Requirements: * Action: `Lab:GetSingleRoute` * Access Policy Resource: `Lab:Route` */ routeGet(params: LabRouteGetParams, request?: OystehrClientRequest): Promise<LabRouteGetResponse> { return this.request('/route/{routeGuid}', 'get', 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 an order consisting of one or more well-configured ServiceRequests 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. If the lab requires its own requisition document (eReq) or an Advance Beneficiary Notice (ABN), the appropriate DocumentReferences will be included in the response. * * Access Policy Requirements: * Action: `Lab:SubmitOrder` * Access Policy Resource: `Lab:Order` */ orderSubmit(params: LabOrderSubmitParams, request?: OystehrClientRequest): Promise<LabOrderSubmitResponse> { return this.request('/submit', 'post', this.#baseUrlThunk.bind(this))(params, request); } }