This section documents the Pepper Objects used to communicate data between the Pepper Mobile Application (PMA) and Pepper Server Application (PSA). This includes which participant creates, reads or writes each Pepper Object, where it is stored, the internal structure of the Objects and other important notes such as how and when they are sent or accessed.
Patient
CaseBase
The remaining Objects are all effectively sent from the PMA to the PSA via the Pepper remote database.
SafetySystemResponse
BGValue
Meal
PhysicalActivity
Alcohol
Alarm
BasalProfile
Medication
InsulinInjection
The object descriptions below use an enhanced JSON Type system. The JSON standard (IETF RFC 8259, 2017) says that a JSON value must be an object, array, number, string, or one of the three literal names true, false, null. However for the purposes of the descriptions presented here and to provide additional clarity, the type number is replaced by Double and Integer. Some string values are expressed as datetimes, dd-MMM-YY HH:mm:ss Z.
Description: | The patient Object stores demographic and patient specific therapy details. |
Created by: | PSA |
Edited by: | PSA |
Stored: | Pepper Database |
Participants: | PSA. PMA and Safety System. |
Notes: |
|
Details: |
Attribute | Json Type | Used by | |||
---|---|---|---|---|---|
PMA | PSA | ||||
Core | Safety System | CBR | |||
Id
|
String (UUID)
|
Y | |||
PatientCode
|
String
|
||||
EmailAddressForTrial
|
String
|
Y | |||
DateEnrolled
|
Datetime dd-MMM-YY HH:mm:ss Z
|
||||
Password
|
String
|
Y | |||
ConfirmPassword
|
String
|
||||
Gender
|
Integer (0 = Male | 1 = Female)
|
||||
HbA1c
|
Double
|
||||
HbA1cPercent
|
Double
|
||||
GlucoseInTargetIntervalMin
|
Double
|
Y | |||
GlucoseInTargetIntervalMax
|
Double
|
Y | |||
GlucoseSetPoint
|
Double
|
Y | Y | ||
CHOmean
|
Double
|
Y | |||
Weight
|
Double
|
Y | Y | ||
Country
|
Integer (0 = UK | 1 = Spain)
|
||||
Language
|
Integer (0 = English | 1 = Spanish | 2=
Catalan)
|
||||
Clinic
|
Integer (0 = ICL | 1 = IDIBIGI | 2=
Catalqn)
|
||||
CellnovoPMASerialNo
|
String
|
||||
BgMu
|
Integer (0 = mg/dL | 1 = mmol/L)
|
Y | |||
CarerPhoneNumber
|
String
|
Y | |||
LastRevisionDate
|
Datetime dd-MMM-YY HH:mm:ss Z
|
||||
TherapyType
|
Integer (0 =CSII |1 = MDI)
|
||||
SmartphoneSerialNo
|
String
|
||||
BloodGlucoseMeterSerialNo
|
String
|
||||
CBROrStandardCalculation
|
String (CBR | Standard calculation)
|
Y | |||
StartTimeMinimumPostprandialBG
|
Integer
|
Y | |||
EndTimeMinimumPostprandialBG
|
Integer
|
Y | |||
SynchronizationDate
|
Datetime dd-MMM-YY HH:mm:ss Z
|
||||
InsulinSensitivity
|
Double
|
Y | |||
InsulinAbsorptionTime
|
Integer
|
Y | |||
CarbohydrateAbsorptionTime
|
Integer
|
Y | |||
FastingBloodGlucose
|
Integer
|
Y | |||
IcrSafety
|
Comma separated list of Double s
|
Y | |||
TimeIcrSafety
|
Comma separated list of Integer s
|
Y | |||
IsfSafety
|
Comma separated list of Double
|
Y | |||
TimeIsfSafety
|
Comma separated list of Integer s
|
Y | |||
SafetySystemActive
|
Integer (1= On | 0 = Off)
|
Y |
Example Patient Json
{
"Id": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"PatientCode": "P_020",
"EmailAddressForTrial": "pepperusability@gmail.com",
"DateEnrolled": "06-Jul-17 12:00:00 AM",
"Password": "",
"ConfirmPassword": "",
"Gender": 0,
"HbA1c": 0,
"HbA1cPercent": 0,
"GlucoseInTargetIntervalMin": 70,
"GlucoseInTargetIntervalMax": 171,
"GlucoseSetPoint": 106,
"CHOmean": 30,
"Weight": 65,
"Country": 0,
"Language": 0,
"Clinic": 0,
"CellnovoPMASerialNo": "",
"BgMu": 0,
"CarerPhoneNumber": "07590719843",
"LastRevisionDate": "01-Jan-00 12:00:00 AM",
"TherapyType": 1,
"SmartphoneSerialNo": "0257e12ce1933b90",
"BloodGlucoseMeterSerialNo": "12345",
"CBROrStandardCalculation": "Standard calculation",
"StartTimeMinimumPostprandialBG": "1",
"EndTimeMinimumPostprandialBG": "3",
"SynchronizationDate": "01-Jan-70 01:00:00 AM",
"InsulinSensitivity": 0.00255,
"InsulinAbsorptionTime": 75,
"CarbohydrateAbsorptionTime": 89,
"FastingBloodGlucose": 108,
"IcrSafety": "7.00,5.00,8.00,7.00",
"TimeIcrSafety": "00,06,14,20",
"IsfSafety": "50.00,40.00,50.00",
"TimeIsfSafety": "00,06,18",
"SafetySystemActive": 1
}
Description: |
The CaseBase Object stores information
for a CBR case. Each patient has an array of
CaseBase Objects stored on the Pepper
remote database.
|
Created by: | PSA (for new patient) and PMA (new case on PMA) |
Edited by: | PMA, PSA and Safety System |
Stored: | Pepper Database |
Participants: | PSA. PMA and Safety System. |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
Test
|
JsonArray of JsonElements
(see Table below)
|
DateTime
|
String
|
Attributes
|
JsonArray of JsonObjects
(see Table below)
|
State
|
Integer (0 = NewPMA | 1 = SentToPSA | 2 =
ReviewedPSA
|
Test JsonArray
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
attributes
|
JsonObject (see Table below)
|
Test > attributes JsonObject
Attribute | Json Type | Notes |
---|---|---|
PatientId
|
String (UUID)
|
Obtained from Patient Object |
CaseId
|
String (UUID)
|
Generated by PMA, must be the same as
Id in the Test JsonArray
|
datetime
|
String yyyy-MM-dd hh:mm:ss
|
Obtained from PMA |
timeofday
|
String (Integer 0 – 23 inclusive)
|
Obtained from PMA |
typeofday
|
String (Values = Holidays | workday)
|
Input by user |
PremealBloodGlucose
|
String | Obtained from CGM |
UserPastPhysicalActivityIntensity
|
String (Values = none | low | mild |
intense)
|
Input by user |
UserPastPhysicalActivityType
|
String (Values = aerobic | nonaerobic)
|
Input by user |
PastPhysicalActivityIntensity
|
String (Values = none | low | mild |
intense)
|
Quantified from the last 10 hours |
PastPhysicalActivityType
|
String (Values = aerobic | nonaerobic)
|
Always aerobic (currently) |
FuturePhysicalActivityIntensity
|
String (Values = none | low | mild |
intense)
|
Input by user |
FuturePhysicalActivityType
|
String (Values = aerobic | nonaerobic)
|
Input by user |
BasalDose
|
String (Real Number #.####)
|
Calculated from basal profile (CSII) |
InsulinOnBoard
|
String (Real Number #.####)
|
Obtained from Safety System |
CarbsOnBoard
|
String (Real Number #.####)
|
Obtained from Safety System |
Carbohydrates
|
String (Real Number #.#)
|
Input by user |
Fats
|
String (Values = LOW | MEDIUM | HIGH)
|
|
MealAbsorptionRate
|
String (Values = SLOW | MEDIUM | FAST)
|
Input by user |
AlcoholType
|
String (Values = Soft | High)
|
Input by user |
AlcoholQuantity
|
String (Values = None | Moderate |
High)
|
Input by user |
HoursOfSleep
|
String (Real Number #.#)
|
Input by user |
PsychologicalStress
|
String (Values = Yes | No)
|
Input by user |
Happiness
|
String (Values = Happy | Neutral |
Sad)
|
Input by user |
Tiredness
|
String (Values = Yes | No)
|
Input by user |
HormoneCycle
|
String (Values = Default | Premenstruation |
Menstruation)
|
Input by user |
Fever
|
String (Values = Yes | No)
|
Input by user |
DigestiveIllness
|
String (Values = Yes | No)
|
Input by user |
Medication
|
String (Comma separated list of
medication names)
|
Input by user |
AmbientTemperature
|
String (Integer)
|
Input by user |
ICRreuse
|
String (Real Number #.####)
|
Calculated by CBR |
ISFreuse
|
String (Real Number #.####)
|
Calculated by CBR |
BolusReuse
|
String (Real Number #.####)
|
Calculated by CBR |
TypeOfBolus
|
String (Integer)
|
|
ReusedCases
|
String (Comma separated list of reused
CaseId )
|
Calculated by CBR |
ICRsafety
|
String (Real Number #.####)
|
Calculated by CBR |
ISFsafety
|
String (Real Number #.####)
|
Calculated by CBR |
BolusSafety
|
String (Real Number #.####)
|
Calculated by Safety System |
ICRuser
|
String (Real Number #.####)
|
Calculated by CBR |
ISFuser
|
String (Real Number #.####)
|
Calculated by CBR |
BolusUser
|
String (Real Number #.####)
|
Input by user if recommendation is rejected,
otherwise the same as BolusSafety if
accepted)
|
PostprandialMinGlucose
|
String (Real Number #.####)
|
Obtained from CGM |
ICRrevise
|
String (Real Number #.####)
|
Calculated by CBR on PSA |
ISFrevise
|
String (Real Number #.####)
|
Calculated by CBR on PSA |
BolusRevise
|
String (Real Number #.####)
|
Calculated by CBR on PSA |
ExpertValidation
|
String (Values = OK | KO | MAN)
|
Input by user on PSA |
RejectCase
|
String
|
|
PendingToBeSendToServer
|
String (Values = YES | NO)
|
Calculated by PMA |
PendingToBeRetained
|
String (Values = YES | NO)
|
Calculated by PSA |
Attributes JsonArray
Attributes contains a JsonObject for each of the attributes listed in Test > attributes above. Each JsonObject has the following format:
Attribute | Json Type |
---|---|
id
|
String (Value = attribute name, e.g.
patientid)
|
description
|
String (Value = attribute name, e.g.
PatientId)
|
type
|
Integer
|
weight
|
Double
|
Example CaseBase Json
{
"Id": "4418333E-D45C-5061-E71D-06EE20F5696B",
"PatientId": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"Test":
"[{\"attributes\":{\"PatientId\":\"C0FA95EC-13D6-4CE7-8983-14221BFBE970\",\"
CaseId\":\"9f82b034-dd38-47de-8ed6-c82e32f595dd\",\"dateTime\":\"09-Jan-18
04:37:33 PM\",\"timeofday\":\"16\",\"typeofday
\":\"1\",\"PremealBloodGlucose\":\"119.74644310774195\",\"
UserPastPhysicalActivityIntensity\":\"aerobic\",\"
UserPastPhysicalActivityType\":\"none\",\"PastPhysicalActivityIntensity\":\"0
\",\"PastPhysicalActivityType\":\"0\",\"FuturePhysicalActivityIntensity\":\"0
\",\"FuturePhysicalActivityType\":\"0\",\"BasalDose\":\"1.0\",\"
InsulinOnBoard\":\"14.584875\",\"CarbsOnBoard\":\"119.30279539692404\",\"
Carbohydrates\":\"10.0\",\"Fats\":\"0\",\"MealAbsorptionRate\":\"medium\",\"
AlcoholType\":\"0\",\"AlcoholQuantity\":\"0\",\"HoursOfSleep\":\"0.0\",\"
PhysiologicalStress\":\"0\",\"Happiness\":\"0.5\",\"Tiredness\":\"0\",\"
HormoneCycle\":\"0\",\"Fever
\":\"0\",\"DigestiveIllnesses\":\"0\",\"Medication\":null,\"
AmbientTemperature\":\"0.0\",\"ICRreuse\":\"19.1\",\"ISFreuse\":\"100.4774\",
\"BolusReuse\":\"0.0\",\"TypeOfBolus\":\"1\",\"ICRsafety\":\"8.0\",\"
ISFsafety\":\"40.0\",\"BolusSafety\":\"0.0\",\"ICRuser\":null,\"ISFuser\":
null,\"BolusUser\":\"0.0\",\"PostprandialMinGlucose\":\"0.0\",\"ICRrevise\":\
"12\",\"ISFrevise\":null,\"BolusRevise\":null,\"ExpertValidation\":\"KO\",\"
RejectCase\":\"NO\",\"PendingToBeSendToServer\":\"yes\",\"PendingToBeRetained
\":\"no\"},\"id\":\"9f82b034-dd38-47de-8ed6-c82e32f595dd\"}]",
"DateTime": "09-Jan-18 04:37:33 PM",
"Attributes":
"[\r\n{\r\n\t\"id\":\"patientid\",\r\n\t\"description\":\"PatientId\",\r\n\t\
"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"caseid\",\r\n\t\"
description\":\"caseID\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\
n\t\"id\":\"datetime\",\r\n\t\"description\":\"datetime\",\r\n\t\"type\":2,\r
\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"timeofday\",\r\n\t\"description\"
:\"timeofday\",\r\n\t\"type\":2,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\
"typeofday\",\r\n\t\"description\":\"typeofday\",\r\n\t\"type\":0,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"premealbloodglucose\",\r\n\t\"
description\":\"premealBloodGlucose\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\
r\n},\r\n{\r\n\t\"id\":\"userpastphysicalactivityintensity\",\r\n\t\"
description\":\"UserPastPhysicalActivityIntensity\",\r\n\t\"type\":0,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"userpastphysicalactivitytype\",\r\n\t\"
description\":\"UserPastPhysicalActivityType\",\r\n\t\"type\":0,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"pastphysicalactivityintensity\",\r\n\t\
"description\":\"userPhysicalActivityIntensity\",\r\n\t\"type\":0,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"pastphysicalactivitytype\",\r\n\t\"
description\":\"userPhysicalActivityType\",\r\n\t\"type\":0,\r\n\t\"weight\":
1.0\r\n},\r\n{\r\n\t\"id\":\"futurephysicalactivityintensity\",\r\n\t\"
description\":\"futurePhysicalActivityIntensity\",\r\n\t\"type\":0,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"futurephysicalactivitytype\",\r\n\t\"
description\":\"futurePhysicalActivityType\",\r\n\t\"type\":0,\r\n\t\"weight\
":1.0\r\n},\r\n{\r\n\t\"id\":\"basaldose\",\r\n\t\"description\":\"basalDose\
",\r\n\t\"type\":1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
insulinonboard\",\r\n\t\"description\":\"insulinOnBoard\",\r\n\t\"type\":1,\r
\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"carbsonboard\",\r\n\t\"
description\":\"carbsOnBoard\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r
\n{\r\n\t\"id\":\"carbohydrates\",\r\n\t\"description\":\"carbohydrates\",\r\
n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"fats\",\r\n\t\"
description\":\"fats\",\r\n\t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t
\"id\":\"mealabsorptionrate\",\r\n\t\"description\":\"mealAbsorptionRate\",\r
\n\t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"alcoholtype\",\r
\n\t\"description\":\"alcoholType\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\
n},\r\n{\r\n\t\"id\":\"alcoholquantity\",\r\n\t\"description\":\"
alcoholQuantity\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id
\":\"hoursofsleep\",\r\n\t\"description\":\"hoursOfSleep\",\r\n\t\"type\":1,\
r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"psychologicalstress\",\r\n\t\"
description\":\"psychologicalStress\",\r\n\t\"type\":0,\r\n\t\"weight\":1.0\r
\n},\r\n{\r\n\t\"id\":\"happiness\",\r\n\t\"description\":\"happiness\",\r\n\
t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"tiredness\",\r\n\t\
"description\":\"tiredness\",\r\n\t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{
\r\n\t\"id\":\"hormonecycle\",\r\n\t\"description\":\"hormoneCycle\",\r\n\t\"
type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"fever\",\r\n\t\"
description\":\"fever\",\r\n\t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\
t\"id\":\"digestiveillness\",\r\n\t\"description\":\"digestiveIllness\",\r\n\
t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"medication\",\r\n\t
\"description\":\"medication\",\r\n\t\"type\":2,\r\n\t\"weight\":1.0\r\n},\r\
n{\r\n\t\"id\":\"ambienttemperature\",\r\n\t\"description\":\"
ambientTemperature\",\r\n\t\"type\":1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"
id\":\"icrreuse\",\r\n\t\"description\":\"ICRreuse\",\r\n\t\"type\":-1,\r\n\t
\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"isfreuse\",\r\n\t\"description\":\"
ISFreuse\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
bolusreuse\",\r\n\t\"description\":\"bolusReuse\",\r\n\t\"type\":-1,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"typeofbolus\",\r\n\t\"description\":\"
typeOfBolus\",\r\n\t\"type\":0,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
icrsafety\",\r\n\t\"description\":\"ICRsafety\",\r\n\t\"type\":-1,\r\n\t\"
weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"isfsafety\",\r\n\t\"description\":\"
ISFsafety\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
bolussafety\",\r\n\t\"description\":\"bolusSafety\",\r\n\t\"type\":-1,\r\n\t\
"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"bolususer\",\r\n\t\"description\":\"
bolusUser\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
isfuser\",\r\n\t\"description\":\"ISFuser\",\r\n\t\"type\":-1,\r\n\t\"weight\
":1.0\r\n},\r\n{\r\n\t\"id\":\"icruser\",\r\n\t\"description\":\"ICRuser\",\r
\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"
postprandialminglucose\",\r\n\t\"description\":\"postprandialMinGlucose\",\r\
n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"bolusrevise\",\r
\n\t\"description\":\"BolusRevise\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\
n},\r\n{\r\n\t\"id\":\"icrrevise\",\r\n\t\"description\":\"ICRrevise\",\r\n\t
\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"isfrevise\",\r\n\t\
"description\":\"ISFrevise\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n
{\r\n\t\"id\":\"expertvalidation\",\r\n\t\"description\":\"ExpertValidation\"
,\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r\n\t\"id\":\"rejectcase\"
,\r\n\t\"description\":\"rejectCase\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\
r\n},\r\n{\r\n\t\"id\":\"pendingtobesendtoserver\",\r\n\t\"description\":\"
PendingToBeSendToServer\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n},\r\n{\r
\n\t\"id\":\"pendingtoberetained\",\r\n\t\"description\":\"
PendingToBeRetained\",\r\n\t\"type\":-1,\r\n\t\"weight\":1.0\r\n}\r\n]",
"State": 1
}
SafetySystemResponse
Object
Description: |
The SafetySystemResponse Object stores
all safety system data for analysis.
|
Created by: | SafetySystem through PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA. PMA and Safety System |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
DateTime
|
String dd-MMM-YY HH:mm:ss Z
|
SafetyJson
|
String (Json Object)
|
BGValue
Object
Description: |
The BGValue Object stores blood glucose
data recorded by the PMA. The PSA will use this
information widely for statistical calculations and
numerous graphical representations of the CGM data.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
TimeStamp
|
String dd-MMM-YY HH:mm:ss Z
|
BGType
|
Integer (Value 0 = CGM | 1 = Capillary Blood
Glucose Meter | 2 = Laboratory Meter)
|
BG_MU
|
Integer (Value 0 = mg/dL | 1 = mmol/L)
|
Value
|
Double
|
Example BGValue Json
{
"Id": "7C05D3CE-B46F-4EB5-AF75-DC261BBB553B",
"BGType": 0,
"BG_MU": 1,
"TimeStamp": "09-Jan-18 06:26:35 AM",
"Value": 102.68306,
"PatientID": "C0FA95EC-13D6-4CE7-8983-14221BFBE970"
}
Meal
Object
Description: |
The Meal Object stores carbohydrate
information recorded by the Add Carbohydrates and Get
Bolus Advice interfaces on the PMA. The PSA will
display this information on the Patient Data and CBR
Case Details interfaces.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
MealType
|
Integer (0 = Snack | 1 = Breakfast | 2 =
Lunch | 3 = Dinner
|
DateTime
|
String dd-MMM-YY HH:mm:ss Z
|
CarbsMg
|
Double
|
imei
|
String
|
Example Meal
Json
{
"Id": "C09C2AB0-5E6C-4E64-8903-27B1AB7D3626",
"PatientId": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"MealType": 3,
"DateTime": "09-Jan-18 05:07:53 PM",
"CarbsMg": 10,
"imei": "353627079643469"
}
Description: |
The PhysicalActivity Object stores step
count recorded by the PMA and the quantified physical
activity. This will be displayed on the PSA Patient
Data and CBR Case Detail GUIs.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
StartTime
|
String dd-MMM-YY HH:mm:ss Z
|
EndTime
|
String dd-MMM-YY HH:mm:ss Z
|
PhysicalActivityIntensity
|
Integer (Value 0 = None | 1 = Low | 2 = Mild
| 3 = Intense)
|
PhysicalActivityType
|
Integer (Value 1 = Aerobic | 2 =
NonAerobic)
|
StepsNumber
|
Integer
|
Example PhysicalActivity Json
{
"Id": "BAFBBB35-82A1-4635-956C-00630168F586",
"PatientID": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"PhysicalActivityIntensity": 1,
"PhysicalActivityType": 2,
"StartTime": "10-Jan-18 08:43:30 PM",
"EndTime": "10-Jan-18 09:43:30 PM",
"StepsNumber": 4265
}
Description: |
The Alcohol Object stores alcohol intake
information recorded by the PMA. This will be
displayed on the PSA Hypo and Hyper event GUIs.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
Time
|
String dd-MMM-YY HH:mm:ss Z
|
AlcoholQuantity
|
Integer (Values 0 = None | 1 = Mild | 2 =
High)
|
AlcoholType
|
Integer (Value 0 = Soft | 1 = High)
|
Example Alcohol
Json
{
"Id": "41DD6460-BAE6-471E-B9FA-029D4FDD3BEB",
"PatientID": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"Time": "10-Jan-18 10:02:32 AM",
"AlcoholQuantity": 0,
"AlcoholType": 0
}
Alarm
Object
Description: |
The Alarm Object stores alarm
information triggered by the Safety System. This will
be used to send SMS alerts to the Patient’s Carer as
per the details registered in the
Patient Object.
|
Created by: | PMA after alarm returned by the Safety System |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA, Pepper web service, PMA and Safety System |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
PatientCode
|
String
|
DateTime
|
String dd-MMM-YY HH:mm:ss Z
|
AlarmNumber
|
Integer (Values 0 = Hypo | 1= Hyper | 2 =
Fault)
|
AlarmType
|
String (Values = HYPO_ALARM | HYPER_ALARM |
FAULT)
|
AlarmMessage
|
String
|
AlarmResolution
|
String
|
TelephoneNumber
|
String
|
Example Alarm
Json
{
"Id": "DD99BC36-E99F-48E6-A989-1F2ECE27F9FD",
"DateTime": "08-Nov-17 03:40:42 PM",
"AlarmType": "HYPO_ALARM",
"AlarmNumber": 1,
"PatientId": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"PatientCode": "P_020",
"AlarmMessage": "Hypo Alarm",
"AlarmResolution": "alarm resolution",
"TelephoneNumber": "07590719843"
}
Description: |
The BasalProfile Object stored basal
information recorded by the PMA. This information
will be referenced by clinicians and displayed on the
PSA via the Patient Data and CBR Case Details GUIs.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA. |
Notes: | |
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
Time
|
String dd-MMM-YY HH:mm:ss Z
|
BaselRate
|
Double
|
Example BasalProfile Json
{
"Id": "770C5C99-1606-4F44-8E5A-B7AC7B32B89E",
"PatientId": "B45FDA38-5730-4015-8A15-C0766BB53186",
"Time": "20-Oct-16 11:38:00 PM" ,
"Value": 102.68306
}
Medication
Object
Description: |
The Medication Object stores medication
details input during the PMA Get Bolus Advice
process.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA. |
Notes: | |
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
Date
|
String dd-MMM-YY HH:mm:ss Z
|
MedicationCodeId
|
String (UUID)
|
Example Medication
Json
{
"Id": "770C5C99-1606-4F44-8E5A-B7AC7B32B89E",
"MedicationCodeId": "CEFD9EFF-011D-4F3E-8F57-30FFDC28F298",
"PatientId": "B45FDA38-5730-4015-8A15-C0766BB53186",
"Date": "20-Oct-16 11:38:00 PM"
}
InsulinInjection
Object
Description: |
The InsulinInjection Object stores bolus
injections recorded by the Add Bolus and Get Bolus
Advice interfaces. The PSA will display this
information on the Patient Data and CBR Case Details
interfaces.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA. |
Notes: |
|
Details: |
Attribute | Json Type |
---|---|
Id
|
String
|
PatientId
|
String (UUID)
|
TimeStamp
|
String dd-MMM-YY HH:mm:ss Z
|
imei
|
String
|
Units
|
Double (The insulin value)
|
InsulinType
|
Integer (Value 1 = Basal | 2 = Bolus)
|
Example InsulinInjection Json
{
"Id": 126,
"InsulinType": 2,
"Units": ".00",
"PatientID": "C0FA95EC-13D6-4CE7-8983-14221BFBE970",
"TimeStamp": "04-Nov-17 10:36:41 PM",
"imei": "353627079643469"
}
Description: |
The Notes Object stores short text notes
recorded on the PMA by the patient for viewing on the
PSA.
|
Created by: | PMA |
Edited by: | None |
Stored: | Pepper Database |
Participants: | PSA and PMA. |
Notes: | |
Details: |
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
PatientId
|
String (UUID)
|
PatientCode
|
String
|
TimeStamp
|
String dd-MMM-YY HH:mm:ss Z
|
Text
|
String
|
Example Notes
Json
{
"Id": "C2651022-EC40-4739-B29B-7F7A41AD53FF",
"PatientID": "5CA3B8EF-18D4-E611-B05D-00155DF29222",
"PatientCode": null,
"Text": "text note",
"TimeStamp": "01-Jan-70 01:00:00 AM"
}
Preconditions
Patient
Object is a well formed Json
Postcondition
Process
Patient
Object
data
Patient
Object to the
Safety System for initialization
CaseBase
Objects with
State 2 from the Pepper remove database in advance of
possible ‘Get Bolus Advice’ process’
Preconditions
Postconditions
CaseBase
Object will
appear in the Pepper remote database with a State of 0
Process
CaseBase
Objects with State
2 from the Pepper remote database
CaseBase
Objects acquired from the Pepper
remote database and the new Pepper Case
Patient
Object
attribute : BolusSafety
)
and also returns this value. The internal process will
produce different results:
CaseBase
Object to the
Pepper remote database with State 0 after the
postprandial phase or when another ‘Get Bolus Advice’
process is completed.
The case-base validation is a complex process which starts on PMA, goes through the PEPPER database, is completed on PSA and then goes back to PMA (see Figure 2).
The revise and retain steps of the CBR algorithm are executed on the PSA server. The steps are as follows:
This process is running underground periodically and can also be initiated manually by pressing a button.
A flowchart of the Safety System flow is shown below in figure 3.
The Safety System requires the Patient Object for initialisation as described in Section 2.1 for a fresh install of the PMA. This initialisation process is the most optimal and should be conducted with each fresh launch of the PMA.
If no internet connectivity is available and the PMA has
been initialised successfully before, the Safety System
will revert to a local copy of the last
Patient
Object used. As a result the PMA and
Safety System will still function even if internet
connectivity is not available as long as it has been
initialised once before.
The Safety System uses the following attributes from the Patient Object:
Attribute | Json Type |
---|---|
Id
|
String (UUID)
|
GlucoseSetPoint
|
Double
|
Weight
|
Double
|
InsulinSensitivity
|
Double
|
InsulinAbsorptionTime
|
Integer
|
CarbohydrateAbsorptionTime
|
Integer
|
FastingBloodGlucose
|
Integer
|
IcrSafety
|
Comma separated list of Double s
|
TimeIcrSafety
|
Comma separated list of Integer s
|
IsfSafety
|
Comma separated list of Double s
|
SafetySystemActive
|
Integer (1= Safety System On | 0 = Safety
System Off)
|
All the attributes and values in the table above must be present and correct with the expected data types otherwise a JSONException will occur. Furthermore, the IcrSafety, TimeIcrSafety, IsfSafety and TimeIsfSafety must comply with the following rules otherwise an IllegalArguementException will be thrown and the Safety System will not be initialised:
IcrSafety
, TimeIcrSafety
,
IsfSafety
and TimeIsfSafety
must not be empty.
IcrSafety
and TimeIcrSafety
must have the same length (i.e. number of values)
IsfSafety
and TimeIsfSafety
must have the same length (i.e. number of values)
Safety System Active
If the value of SafetySystemActive is 0 in the initialisation process, the following features will be disabled:
The Safety System is updated whenever the PMA receives a blood glucose reading from the CGM. This will trigger and update in the Safety System’s internal modules.
The PMA will query the Safety System for the following information after each update:
The Safety System will use the forecasted blood glucose level based on CGM updates to decide whether the pump requires total, partial or no suspension.
Partial suspension will occur when the Safety System predicts the blood glucose level will drop below 4.5 mmol/L. This will last for at most 90 minutes or until a blood glucose forecast predicts that the pump suspension state should be changed. Re-resuspension will not occur for 30 minutes.
Total suspension will occur when the Safety System predicts the blood glucose level will drop below 3.9 mmol/L. This will last for at most 90 minutes or until a blood glucose forecast predicts that the pump suspension state should be changed. Re-resuspension will not occur for 30 minutes.
The PMA provides the ability to tell the Safety System to stop the suspension as required. Note that the time limits for automatically cancelling suspension are dependent upon regular updates of the Safety System through the main Safety System Update Loop (Section 2.3.2). The Safety System does not internally update itself, it requires interactions from the PMA.
The PMA will use the Bolus Constraint feature of the Safety System whenever the Get Bolus Advice feature is used. Please refer to Section 2.2 for details.
The PMA will query the Safety System for its data every night and send it as a SafetySystemResponse to the Pepper remote database as detailed in Section 1.4.