SFTP
rev.1.3
Specification
| Protocol | SFTP |
| Authorization method | Password authentication |
| SFTP user | OMRON Healthcare provides this. |
| Connection destination host name | OMRON Healthcare provides this. |
| Port no. for connection | OMRON Healthcare provides this. |
Directory Structure
| 1st Tier | 2nd Tier | 3rd Tier | 4th Tier | 5th Tier | 6th Tier | Description |
|---|---|---|---|---|---|---|
| data | Directory for vital data | |||||
| {partnertId} | Directory where actual vital data is placed | |||||
| ecgdata | fixed name | |||||
| {groupD} | The ID of the group to which each user belongs. | |||||
| {Creation date/time} | The date & time when the file generation process started. The directory name follows the 'YYYYMMDDhhmmss' format. | |||||
| {Sequence No} | A 3-digit name starting with '001'. The number of files in the directory is 10,000 or less, if it exceeds 10,000, a new directory is created, and the next file is saved in the new directory. | |||||
Starting at the third tier, only ECG waveform data will be available.
SFTP server has a redundant configuration. In the case of a server failure, failover will automatically switch the server of the connection destination. It may take several minutes for switching to server. If you can not connect, please wait for a few minutes and try to connect again.
Preparation in advance
Install any OpenSSH client.
Install File decompression software (Software that can decompress ZIP files with passwords).
Get data
Specify the connection destination of the SFTP server that is presented by OMRON Healthcare then connect SFTP server with user and password.
C:\> sftp <user>@<connection destination name> [{
"PartnerId" : "a791xpp1-cb4a-11e7-ad25-0a669524e191",
"PartnerName" : "sample partner",
"GroupId" : "p2xhki12x0zk",
"GroupName" : "sample group1",
"deviceCategory" : "0",
"UserId" : "191e612349x8-9218-7e11-0c1a-Xax0a12c",
"measureList" : [{
"_created" : 1505879300391,
"_dataType" : "application/json",
"_id" : "HEM-6324T_00000094002d11020a916900ffff_1_1505855649000",
"_modified" : 1505879300391,
"_owner" : "191e612349x8-9218-7e11-0c1a-Xax0a12c",
"_version" : "1",
"deviceModel" : "HEM-6324T",
"deviceSerialID" : "00000094002d11020a916900ffff",
"userNumberInDevice" : 1,
"measureDeviceDateFrom" : "20170920060935000",
"measureDateFrom" : 1505855649000,
"userUpdateDate" : 1505879300000,
"informationList" : {
"timeZone" : "Asia/Tokyo",
"measureDateTo" : 1505916575000,
"measureDeviceDateTo" : "20170920060935000",
"transferDate" : 1505879131000},
"bodyIndexList" : {
"1" : ["130","20496","0","0"],
"2" : ["87","20496","0","0"],
"3" : ["71","61600","0","0"],
"4" : ["3","0","0","0"],
"6" : ["0","0","0","0"],
"7" : ["0","0","0","0"],
"8" : ["0","0","0","0"],
"10" : ["0","0","0","0"]},
"deleteFlag":0}]}]File Specification
Non-ECG File Specifications
| File Name | {Group ID}_{File created date and time}.json.zip File created date and time should be the format of UTC (yyyyMMddhhmmss)1 |
| Data Format | JSON |
| Character Code | utf-8 |
| File Creation Unit | Created by group, containing only the data that has changed since the last provided file. |
| Record Unit | A JSON object created by user, device category |
| File Configuration | data file only |
| Compression Format | zip Password is required for decompression 2 |
| File Creation Cycle | Daily |
| File Storage Period | 7th Generation |
1:The file name of HeartAdvisor App is 'externaldata1_[Group ID]_[File created date and time].json.zip'.
2:Password is Partner ID provided by OMRON Healthcare.
ECG Data Specification
| File name | {User ID}_{Client Application Id}16{ObjectId}_Data.json |
| Data format | JSON |
| Character code | UTF-8 |
| Record unit | 1 JSON object as per user unit |
| File configuration | data file only |
| File creation cycle | Every hour |
| File storage period | 7 days |
ECG Data (Waveform) Specification
| File name | {User ID}_{Client Application Id}16{ObjectId}_Body.zip |
| Data format | Binary (.atc) |
| Record unit | 1 object per atc file (There are multiple files in one zip file.) |
| File configuration | data file only |
| Compression format | Zip (No password) |
| File creation cycle | Every hour |
| File storage period | 7 days |
Data Structure
Non-ECG File Specifications
| PartnerId | string Partner ID |
| PartnerName | string Partner name |
| GroupId | string Group ID |
| GroupName | string Group name |
| UserId | string OMRON connect ID |
| deviceCategory | string Device category |
| MesureList | object array Measured data as per device model |
| deviceModel | string Device model |
| deviceSerialID | string Device serial ID In case of manually input data, it will be "0000000000000000". |
| userNumberInDevice | int User’s device using number |
| measureDateFrom | long Measurement start date and time (UnixTime millisecond format) 3 |
| measureDeviceDateFrom | string Measurement start date and time in device (YYYYMMDDHHMMSSsss) 3 |
| userUpdateDate | long Update date and time of measured data (UnixTime milli second format) 3 |
| informationList | object Supplementary information |
| transferDate | long Transferred date and time in between device and smart phone app (UnixTime Millisecond format) 3 |
| measureDateTo | long Measurement end date and time (UnixTime Millisecond format) 3 |
| measureDeviceDateTo | string Measurement end date and time in device (YYYYMMDDHHMMSSsss) 3 |
| timeZone | string Time zone of update /measured date and time |
| deleteFlag | int Flag that indicates the deleted data (0:Undeleted, 1:deleted) |
| bodyIndexList | object Data that is measured by device 4 |
| decisionFlag | int Decision flag. Flag that indicates the status of measured data |
| correctedDateTimeFlag | int Measurement date and time correction flag (2: corrected) |
<span style={"color":"blue","fontSize":"12px"}>3:About items containing milliseconds
The valid range of values for these items is up to seconds. Do not use the last 3 digits of the milliseconds value.
This is because the last 3 digits of the millisecond value may include device control information, etc., and has nothing to do with the user's measurement behavior.
<span style={"color":"blue","fontSize":"12px"}>4:Index is stored in object form inside the body index list (bodyIndexList).
Measured data, unit and index are type of string. Index name: [measured data, unit, index, Sequence no., time division data]
・Arbitrary data may be included in the elements thereafter the time division data.
・Index that does not have time-division data, does not include time division data.
・Regarding the details of time division data, refer to FAQ
・For index name and setting value, refer to each page for devices.
ECG Data Specifications
| clientApplicationId | int Application ID |
| measureList | object Measurement information |
| useObjectBodyFlag | boolean The flag indicating whether data of ObjectBody part(symptom data) is included (true:with waveform data/false:no waveform data) If there is no data, this key may not exist. |
| bodyIndexList | int Data that is measured by device. Index is stored in object form inside the bodyIndexList. |
| userNumberInDevice | int User’s device using number |
| uuid | int OMRON connect ID |
| informationList | int Supplementary information |
| userUpdateDate | int Update date and time of measured data (UnixTime milli second format) |
| measureDeviceDateFrom | int Measurement start date and time in device (YYYYMMDDHHMMSSsss) |
| deviceModel | int Device model |
| deviceSerialID | int Device serial ID |
| measureDateFrom | int Measurement start date and time (UnixTime millisecond format) |
{
"clientApplicationId":1,
"measureList": {
"useObjectBodyFlag": true,
"_owner": "191e695246a0-8aab-ae11-d77e-ebbf91cd",
"bodyIndexList": {
"4096": ["133", "61600", "0", "0"],
"4228": ["0", "0", "0", "\\u0031\\u0032\\u0033"]
},
"userNumberInDevice": 1,
"_dataType": "application/json",
"_bodyETag": "zop36saq169out7ormwgzjkh2",
"uuid": "191e695246a0-8aab-ae11-d77e-ebbf91cd",
"informationList": {
"measureDateTo": 1602131327000,
"timeZone": "Asia/Tokyo",
"transferDate": 1602131327000,
"measureDeviceDateTo": "20201008000000000"
},
"userUpdateDate": 1602131327000,
"measureDeviceDateFrom": "20201008000000000",
"_created": 1602493425633,
"deviceModel": "HEM-7280T-AR",
"deviceSerialID": "000000000000000q",
"_bodyType": "application/x-zip-compressed",
"_id": "HEM-7280T-AR_000000000000000q_3_1602131327000",
"_version": "11",
"_modified": 1602494255730,
"measureDateFrom": 1602131327000
}
}Updated 7 months ago