/ /
Integrating Binah connect with Custom Server
Updated last year

The Binah Connect application sends several of messages to the server during it operation. By default, it sends the vital sign results and monitoring messages to the My Binah Check portal where the history of events can be viewed. Instead of sending to My Binah Check the account can be configured to send the messages to a custom server. In that case the messages will only be sent to that server, and not to My Binah Check.

This document shows examples of the messages sent by the application for integration purposes.

Messages

The application sends the following to the server:

1. Final results

The final results message includes a “sensorId” value, and results of the relevant vital signs that have been processed during the measurement.

{
   "body":{
      "user":{
         "age":34,
         "sex":"male",
         "weight":85,
         "userId":10002,
         "height":184
      },
      "metadata":{
         "deviceMarketName":"iPhone 13 Pro Max",
         "sensorId":C2463B22,
         "appVersion":"1.0.1",
         "measurementDuration":60,
         "osVersion":"14.3.1",
         "platform":"ios",
         "timestamp":"2024-05-07T00:58:55.261+03:00",
         "batteryLevel":68,
         "geolocation":{
            "longitude":-73.78117241770961,
            "latitude":40.65613957004047
         },
         "deviceModel":"iPhone14,3"
      },
      "vitals":{
         "prq":{
            "value":1.2
         },
         "sd2":{
            "value":60
         },
         "respirationRate":{
            "value":14
         },
         "sns":{
            "value":{
               "index":-3.1,
               "zone":3
            }
         },
         "pulseRate":{
            "confidenceLevel":2,
            "value":67
         },
         "lfhf":{
            "value":0.3
         },
         "rri":{
            "confidenceLevel":3,
            "value":[
               {
                  "interval":943,
                  "timestamp":3.7334191958354324
               },
               {
                  "interval":863,
                  "timestamp":4.5968347069432065
               },
               {
                  "interval":891,
                  "timestamp":5.487749507357108
               },
               {
                  "interval":1004,
                  "timestamp":6.491998961574751
               },
               {
                  "interval":1059,
                  "timestamp":7.551278204853351
               },
               {
                  "interval":1087,
                  "timestamp":8.638161154668335
               }
            ]
         },
         "bloodPressure":{
            "value":{
               "diastolic":70,
               "systolic":112
            }
         },
         "pns":{
            "value":{
               "index":-1.7,
               "zone":3
            }
         },
         "wellness":{
            "value":{
               "level":3,
               "index":7
            }
         },
         "meanRri":{
            "confidenceLevel":3,
            "value":1000
         },
         "sdnn":{
            "value":17,
            "confidenceLevel":3
         },
         "stress":{
            "value":{
               "index":45,
               "level":4
            }
         },
         "sd1":{
            "value":50
         },
         "rmssd":{
            "value":1
         }
      },
      "monitoring":{
         "fall":null
      }
   },
   "query":{

   },
   "reqId":"d567e8d0-0bf3-11ef-8271-f5cefd187dc2",
   "level":"verbose",
   "message":"/v3/bct-report",
   "label":"Incoming Request:001c13e0-eb82-11ee-8271-f5cefd187dc2",
   "timestamp":"2024-05-06T21:58:55.709Z"

2. Communication Check

The communication check message is similar in its format to the “Final Report” message, with value of the sensorId field equals to null.

{
   "body":{
      "user":{
         "age":34,
         "sex":"male",
         "weight":85,
         "userId":10002,
         "height":184
      },
      "metadata":{
         "deviceMarketName":"iPhone 13 Pro Max",
         "sensorId":null,
         "appVersion":"1.0.1",
         "measurementDuration":60,
         "osVersion":"14.3.1",
         "platform":"ios",
         "timestamp":"2024-05-07T00:58:55.261+03:00",
         "batteryLevel":68,
         "geolocation":{
            "longitude":-73.78117241770961,
            "latitude":40.65613957004047
         },
         "deviceModel":"iPhone14,3"
      },
      "vitals":{
         "prq":{
            "value":1.2
         },
         "sd2":{
            "value":60
         },
         "respirationRate":{
            "value":14
         },
         "sns":{
            "value":{
               "index":-3.1,
               "zone":3
            }
         },
         "pulseRate":{
            "confidenceLevel":2,
            "value":67
         },
         "lfhf":{
            "value":0.3
         },
         "rri":{
            "confidenceLevel":3,
            "value":[
               {
                  "interval":943,
                  "timestamp":3.7334191958354324
               },
               {
                  "interval":863,
                  "timestamp":4.5968347069432065
               },
               {
                  "interval":891,
                  "timestamp":5.487749507357108
               },
               {
                  "interval":1004,
                  "timestamp":6.491998961574751
               },
               {
                  "interval":1059,
                  "timestamp":7.551278204853351
               },
               {
                  "interval":1087,
                  "timestamp":8.638161154668335
               }
            ]
         },
         "bloodPressure":{
            "value":{
               "diastolic":70,
               "systolic":112
            }
         },
         "pns":{
            "value":{
               "index":-1.7,
               "zone":3
            }
         },
         "wellness":{
            "value":{
               "level":3,
               "index":7
            }
         },
         "meanRri":{
            "confidenceLevel":3,
            "value":1000
         },
         "sdnn":{
            "value":17,
            "confidenceLevel":3
         },
         "stress":{
            "value":{
               "index":45,
               "level":4
            }
         },
         "sd1":{
            "value":50
         },
         "rmssd":{
            "value":1
         }
      },
      "monitoring":{
         "fall":null
      }
   },
   "query":{

   },
   "reqId":"d567e8d0-0bf3-11ef-8271-f5cefd187dc2",
   "level":"verbose",
   "message":"/v3/bct-report",
   "label":"Incoming Request:001c13e0-eb82-11ee-8271-f5cefd187dc2",
   "timestamp":"2024-05-06T21:58:55.709Z"
}

3. Fall Indication

The fall indication message includes null values as the vital signs end results, and also the detectionTime of a fall under monitoring->fall sections. The "measurementDuration" of a fall is always 0.

{
   "metadata":{
      "appVersion":"2.0.2",
      "batteryLevel":62,
      "deviceMarketName":"Samsung SM-G998B",
      "deviceModel":"Samsung SM-G998B",
      "geolocation":{
         "latitude":32.1105528,
         "longitude":34.7929796
      },
      "measurementDuration":0,
      "osVersion":"13",
      "platform":"android",
      "sensorId":"C2463B22",
      "timestamp":"2024-05-02T11:06:51.475+03:00"
   },
   "monitoring":{
      "fall":{
         "detectionTime":"2024-05-02T11:06:19.345+03:00"
      }
   },
   "user":{
      "age":18.82191780821918,
      "height":180,
      "sex":"female",
      "userId":16954775,
      "weight":69
   },
   "vitals":{
      "bloodPressure":null,
      "lfhf":null,
      "meanRri":null,
      "pns":null,
      "prq":null,
      "pulseRate":null,
      "respirationRate":null,
      "rmssd":null,
      "rri":null,
      "sd1":null,
      "sd2":null,
      "sdnn":null,
      "sns":null,
      "stress":null,
      "wellness":null
   }

Fields explanation

For additional information regarding the JSON fields see the attached file BCT Post message Fields explanation.txt

Was this article helpful?