UNPKG

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
# 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.&lt;axios&gt;</code> * [.testAnonymous()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous) ⇒ <code>Promise.&lt;axios&gt;</code> * [.newSession()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession) ⇒ <code>Promise.&lt;ResumeSessionResponse&gt;</code> * [.sendSound(sessionId, sectionID, info, soundStream, cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+sendSound) ⇒ <code>Promise.&lt;Transcript&gt;</code> * [.updateResult(sessionId, sectionID, [lastUpdate], cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+updateResult) ⇒ <code>Promise.&lt;(Transcript\|null)&gt;</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.&lt;string, Array.&lt;string&gt;&gt;</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.&lt;axios&gt;</code> * [.testAnonymous()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous) ⇒ <code>Promise.&lt;axios&gt;</code> * [.newSession()](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession) ⇒ <code>Promise.&lt;ResumeSessionResponse&gt;</code> * [.sendSound(sessionId, sectionID, info, soundStream, cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+sendSound) ⇒ <code>Promise.&lt;Transcript&gt;</code> * [.updateResult(sessionId, sectionID, [lastUpdate], cookies)](#module_Resume-REST-API-Connect..ResumeHttpAPIClient+updateResult) ⇒ <code>Promise.&lt;(Transcript\|null)&gt;</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.&lt;axios&gt;</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.&lt;axios&gt;</code> - Promise.all() of axios object <a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+testAnonymous"></a> #### resumeHttpAPIClient.testAnonymous() ⇒ <code>Promise.&lt;axios&gt;</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.&lt;axios&gt;</code> - Promise of axios object <a name="module_Resume-REST-API-Connect..ResumeHttpAPIClient+newSession"></a> #### resumeHttpAPIClient.newSession() ⇒ <code>Promise.&lt;ResumeSessionResponse&gt;</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.&lt;ResumeSessionResponse&gt;</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.&lt;string&gt;</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.&lt;Transcript&gt;</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.&lt;Transcript&gt;</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.&lt;(Transcript\|null)&gt;</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.&lt;(Transcript\|null)&gt;</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.&lt;string, Array.&lt;string&gt;&gt;</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.&lt;Array.&lt;string&gt;&gt;</code> | array of sentence. Each sentence is array of word. `[["This","is","first","sentence","."],["...","next","and","more"]]` | | [RawSpk] | <code>Array.&lt;int&gt;</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.&lt;Array.&lt;string&gt;&gt;</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.&lt;int&gt;</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. | ------- &copy; 2021 - copyright by Tanapat Kahabodeekanokkul - the founder of `RESUME`.