resume-client-socket.io
Version:
Resume Client API for Socket.IO and Node.JS - Medical Speech to Summarized Text
203 lines (165 loc) • 13.6 kB
Markdown
# Resume REST API Connector :: Resume-REST-API-Connect.js
Node.JS module for HTTPS RESTful Resume API Client
<a name="module_Resume-REST-API-Connect"></a>
## Resume-REST-API-Connect
<!-- no toc -->
* [Resume-REST-API-Connect](#module_Resume-REST-API-Connect)
* [~ResumeHttpAPIClient](#module_Resume-REST-API-Connect..ResumeHttpAPIClient)
* [new ResumeHttpAPIClient([host], [username], [password])](#new_module_Resume-REST-API-Connect..ResumeHttpAPIClient_new)
* _instance_
* [.test()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+test) ⇒ <code>Promise.<axios></code>
* [.testAnonymous()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous) ⇒ <code>Promise.<axios></code>
* [.newSession()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession) ⇒ <code>Promise.<ResumeSessionResponse></code>
* [.sendSound(sessionId, sectionID, info, soundStream, cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+sendSound) ⇒ <code>Promise.<Transcript></code>
* [.updateResult(sessionId, sectionID, [lastUpdate], cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+updateResult) ⇒ <code>Promise.<(Transcript\|null)></code>
* _static_
* [.responseResolve(res)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient.responseResolve) ⇒ <code>ResumeSoundInfo</code>
* [~ResumeNewSessionData](#module_Resume-REST-API-Connect..ResumeNewSessionData)
* [~GroupText](#module_Resume-REST-API-Connect..GroupText) : <code>Object.<string, Array.<string>></code>
* [~Transcript](#module_Resume-REST-API-Connect..Transcript) : <code>object</code>
* [~ResumeSoundInfo](#module_Resume-REST-API-Connect..ResumeSoundInfo) : <code>object</code>
* [~ResumeSessionResponse](#module_Resume-REST-API-Connect..ResumeSessionResponse)
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient"></a>
### Resume-REST-API-Connect~ResumeHttpAPIClient <br>
***Note:*** the `HttpClient` object is totally stateless. Every method call, it ***always*** needs *session ID*, *section ID*, and *cookies* (for load balancer) to communication with correct session on Resume API.
<br>
**Kind**: inner class of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Summary**: Class for connect Resume API via HTTPS/1.1 REST API
<!-- no toc -->
* [~ResumeHttpAPIClient](#module_Resume-REST-API-Connect..ResumeHttpAPIClient)
* [new ResumeHttpAPIClient([host], [username], [password])](#new_module_Resume-REST-API-Connect..ResumeHttpAPIClient_new)
* _instance_
* [.test()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+test) ⇒ <code>Promise.<axios></code>
* [.testAnonymous()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous) ⇒ <code>Promise.<axios></code>
* [.newSession()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession) ⇒ <code>Promise.<ResumeSessionResponse></code>
* [.sendSound(sessionId, sectionID, info, soundStream, cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+sendSound) ⇒ <code>Promise.<Transcript></code>
* [.updateResult(sessionId, sectionID, [lastUpdate], cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+updateResult) ⇒ <code>Promise.<(Transcript\|null)></code>
* _static_
* [.responseResolve(res)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient.responseResolve) ⇒ <code>ResumeSoundInfo</code>
<a name="new_module_Resume-REST-API-Connect..ResumeHttpAPIClient_new"></a>
#### new ResumeHttpAPIClient([host], [username], [password])
Create ResumeHttpAPIClient
| Param | Type | Description |
| --- | --- | --- |
| [host] | <code>string</code> | full host path for Resume API (https://resume.sati.co.th) |
| [username] | <code>string</code> | Resume API username if leave blank, will load from [ResumeCredentials](config.md) |
| [password] | <code>string</code> | Resume API password if leave blank, will load from [ResumeCredentials](config.md) |
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+test"></a>
#### resumeHttpAPIClient.test() ⇒ <code>Promise.<axios></code>
Test Resume API connection and Authenication
<br>
**Kind**: instance method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>Promise.<axios></code> - Promise.all() of axios object
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous"></a>
#### resumeHttpAPIClient.testAnonymous() ⇒ <code>Promise.<axios></code>
Test Resume API connection without username and password
<br>
**Kind**: instance method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>Promise.<axios></code> - Promise of axios object
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession"></a>
#### resumeHttpAPIClient.newSession() ⇒ <code>Promise.<ResumeSessionResponse></code>
Request new Resume Transcript Session from Resume API.
<br>
**Kind**: instance method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>Promise.<ResumeSessionResponse></code> - Promise object of Session ID <br>
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| sectionId | <code>int</code> \| <code>string</code> | ID of section e.g. department number, section of organization name |
| lang | <code>Array.<string></code> | language hints must be BCP-47 language code in string type or array of string type ordered by highest priority to suggest the speech-to-text API - the default is located in ./public/lang.json . See more detail of [BCP-47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) |
| docFormat | <code>string</code> | Format of document to let the speech-to-text API to generate returned data - reference the name from "C-CDA 1.1.0 on FHIR" otherwise will be "Default". Please read [README.md](../README.md) and http://hl7.org/fhir/us/ccda/artifacts.html |
| multiSpeaker | <code>Boolean</code> | mode of transcription automatically given from ResumeOne().newSession(...) |
| userStartTime | <code>Date</code> | session starting datetime automatically given from ResumeOne().newSession(...) |
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+sendSound"></a>
#### resumeHttpAPIClient.sendSound(sessionId, sectionID, info, soundStream, cookies) ⇒ <code>Promise.<Transcript></code>
Send sound chunk to Resume API
<br>
**Kind**: instance method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>Promise.<Transcript></code> - Promise object of Transcript from Resume API
| Param | Type | Description |
| --- | --- | --- |
| sessionId | <code>string</code> | Resume API Session ID from newSession method |
| sectionID | <code>string</code> \| <code>int</code> | ID of section e.g. department number, section of organization name |
| info | <code>ResumeSoundInfo</code> | sound chunk information for Resume API |
| soundStream | <code>Blob</code> | chunk of sound in WAV format |
| cookies | <code>string</code> | HTTP header-encoded cookies string from newSession return, important for Resume API server process |
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+updateResult"></a>
#### resumeHttpAPIClient.updateResult(sessionId, sectionID, [lastUpdate], cookies) ⇒ <code>Promise.<(Transcript\|null)></code>
Request for Resume API transcription result
<br>
**Kind**: instance method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>Promise.<(Transcript\|null)></code> - Promise object of Transcript from Resume API, **null** if there is no new update for lastUpdate time.
| Param | Type | Description |
| --- | --- | --- |
| sessionId | <code>string</code> | Resume API Session ID from newSession method |
| sectionID | <code>string</code> \| <code>int</code> | ID of section e.g. department number, section of organization name |
| [lastUpdate] | <code>Date</code> | Last update datetime if user has caching. |
| cookies | <code>string</code> | HTTP header-encoded cookies string from newSession return, important for Resume API server process |
<a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient.responseResolve"></a>
#### ResumeHttpAPIClient.responseResolve(res) ⇒ <code>ResumeSoundInfo</code>
Process Response from Resume HTTP REST API
<br>
**Kind**: static method of [<code>ResumeHttpAPIClient</code>](#module_Resume-REST-API-Connect..ResumeHttpAPIClient) <br>
**Returns**: <code>ResumeSoundInfo</code> - response from Resume API
| Param | Type | Description |
| --- | --- | --- |
| res | <code>AxiosResponse</code> | AxiosResponse object |
<a name="module_Resume-REST-API-Connect..ResumeNewSessionData"></a>
### Resume-REST-API-Connect~ResumeNewSessionData
Response data in ResumeSessionResponse
<br>
**Kind**: inner typedef of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| session_id | <code>string</code> | Session ID of Resume Transcription API |
| section_id | <code>string</code> \| <code>int</code> | Section ID given by user, response for feedback checking |
<a name="module_Resume-REST-API-Connect..GroupText"></a>
### Resume-REST-API-Connect~GroupText : <code>Object.<string, Array.<string>></code>
Object contains keys - part of document following Terminology of "C-CDA 1.1.0 on FHIR resource profile" (see README.md), and values - array of sentences or pharse (join into one string). `{"problem_section":["This is sentence one.","more pharse here..."]}`
<br>
**Kind**: inner typedef of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Summary**: Object contains keys - part of document (as C-CDA on FHIR), and values - array of string.
<a name="module_Resume-REST-API-Connect..Transcript"></a>
### Resume-REST-API-Connect~Transcript : <code>object</code>
Transcript response of sent sound from Resume API
<br>
**Kind**: inner typedef of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| [RawTxt] | <code>Array.<Array.<string>></code> | array of sentence. Each sentence is array of word. `[["This","is","first","sentence","."],["...","next","and","more"]]` |
| [RawSpk] | <code>Array.<int></code> | array of speaker index correlated with sentence in RawTxt, starting from zero. |
| [MlGroupTxt] | <code>GroupText</code> | object of formatted and groupped text by Resume API Algorithm |
| [TagRawTxt] | <code>GroupText</code> | object of raw sentence groupped by client tag (`ResumeOne.tag`). |
| [user_transcript] | <code>GroupText</code> | object of user-input form data |
<a name="module_Resume-REST-API-Connect..ResumeSoundInfo"></a>
### Resume-REST-API-Connect~ResumeSoundInfo : <code>object</code>
Main format for sound chunk request and Transcript response of sent sound from Resume API
<br>
**Kind**: inner typedef of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| [RawTxt] | <code>Array.<Array.<string>></code> | array of sentence. Each sentence is array of word. `[["This","is","first","sentence","."],["...","next","and","more"]]` |
| datetime | <code>Date</code> | datetime that Resume.js send chunk of sound |
| is_end | <code>Boolean</code> | true if user or Resume.js end the transcription Resume session |
| [tag] | <code>string</code> | tag (form input name) used in Dictation or Combination mode should correlate Terminology of "C-CDA 1.1.0 on FHIR resource profile" (see README.md) |
| [_id] | <code>Array.<int></code> | array of sound chunk index |
| [user_transcript] | <code>GroupText</code> | object of user-input form data |
<a name="module_Resume-REST-API-Connect..ResumeSessionResponse"></a>
### Resume-REST-API-Connect~ResumeSessionResponse
Returns from newSession method
<br>
**Kind**: inner typedef of [<code>Resume-REST-API-Connect</code>](#module_Resume-REST-API-Connect) <br>
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| status | <code>int</code> | HTTP response status |
| data | <code>ResumeNewSessionData</code> | response from Resume API containing session id and its information |
| clientStartTime | <code>Date</code> | time that function called in server-sided Node.JS (client of API) |
| userStartTime | <code>Date</code> | time that user (client-sided JavaScript) requests new Resume Session ID |
| [pseudoIdentifier] | <code>string</code> | fake (pseudo) identifier generated by Resume REST API Client and sent to server |
| cookies | <code>string</code> | HTTP header-encoded cookies string that Resume API responses. It must be included in consequenct resquest in same Session ID. Because it is important for API server routing. |
-------
© 2021 - copyright by Tanapat Kahabodeekanokkul - the founder of `RESUME`.