SFTP

rev.1.3

Specification

ProtocolSFTP
Authorization methodPassword authentication
SFTP userOMRON Healthcare provides this.
Connection destination host nameOMRON Healthcare provides this.
Port no. for connectionOMRON Healthcare provides this.

Directory Structure

1st Tier2nd Tier3rd Tier4th Tier5th Tier6th TierDescription
dataDirectory for vital data
{partnertId}Directory where actual vital data is placed
ecgdatafixed 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 formatJSON
Character codeUTF-8
Record unit1 JSON object as per user unit
File configurationdata file only
File creation cycleEvery hour
File storage period7 days

ECG Data (Waveform) Specification

File name{User ID}_{Client Application Id}16{ObjectId}_Body.zip
Data formatBinary (.atc)
Record unit1 object per atc file (There are multiple files in one zip file.)
File configurationdata file only
Compression formatZip (No password)
File creation cycleEvery hour
File storage period7 days
Note:The ECG data (Waveform) is stored in files with the '.atc' extension. This format is based on AliveCor’s proprietary specifications. For detailed information regarding the specifications, please contact AliveCor directly.

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)

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.

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
  }
}