V3 Menstrual Historical Data Delivery
Function: setHistoryMenstrual 【supportSetHistoricalMenstruationUseVersion2】
Flutter Example:
/// Menstrual historical data delivery event number
getHistoricalMenstruation(
evtBase: _VBusEvtBase.base_app_set,
evtType: _VBusEvtType.func_v3_get_historical_menstruation
);
/// Menstrual historical data delivery
libManager.send(
evt: CmdEvtType.getHistoricalMenstruation,
json: jsonEncode(json)
);
JSON fields sent by the app:
| Field Name | Field Type | Field Description |
|---|---|---|
| version | int | Protocol library version number Default: 0 |
| avg_menstrual_day | int | Average menstrual period length Unit: days |
| avg_cycle_day | int | Average cycle length Unit: days |
| items_len | int | Number of items in menstrual period history data details, maximum: 5 |
| items | Collection | Menstrual period history data details Collection of year, mon, day, menstrual_day, and cycle_dayovulation_interval_day, ovulation_before_day, and ovulation_after_day are valid when supportSetHistoricalMenstruationUseVersion2 is enabled in the function table |
| operate | int | Operation 0: Invalid; 1: Set, 2: Query, 3: Modify, 4: Add, 5: Delete Only valid if supportHistoricalMenstruationExchange is enabled |
| last_change_time | long | UTC timestamp of the last modification time Only valid if supportHistoricalMenstruationExchange is enabled |
| support_set_max_menstruation_num | int | Maximum number of menstrual period history data items that can be set Only valid if supportHistoricalMenstruationExchange is enabled |
| Field Name | Field Type | Field Description |
|---|---|---|
| year | int | Year when menstruation begins |
| mon | int | Month when menstruation begins |
| day | int | Day when menstruation begins |
| menstrual_day | int | Menstrual period length (in days) |
| cycle_day | int | Cycle length (in days) |
| ovulation_interval_day | int | The interval from the start of the next menstrual period to the day of ovulation, typically 14 days. Valid only if supportSetHistoricalMenstruationUseVersion2 is enabled. |
| ovulation_before_day | int | Number of fertile days before ovulation, typically 5 days. Valid only if supportSetHistoricalMenstruationUseVersion2 is enabled. |
| ovulation_after_day | int | The number of days after ovulation that are considered fertile. This number is generally 5. Valid only when supportSetHistoricalMenstruationUseVersion2 is enabled. |
| index | int | Index, starting at 0. Unique identifier. Valid only when supportHistoricalMenstruationExchange is enabled. |
| last_change_time | long | Time of the last change (UTC timestamp). Valid only when supportHistoricalMenstruationExchange is enabled. |
| is_menstrual_end | int | Whether the menstrual period has ended. 0: Invalid 1: Ended 2: Not ended. Valid only when supportSetHistoricalMenstruationExchangeVersion21 or supportHistoricalMenstruationExchangeVersion31 is enabled. |
| change_type | int | Modified item. 0: Invalid 1: Added 2: Modified 3: Deleted. Valid only when supportHistoricalMenstruationExchangeVersion31 is enabled. |
| grade_val | Collection | Dysmenorrhea and flow levels for each day of the menstrual period. Length equals the menstrual period length. A combination of dys_grade and mf_grade. Valid if supportHistoricalMenstruationExchange is enabled. |
| Field Name | Field Type | Field Description |
|---|---|---|
| dys_grade | int | Dysmenorrhea level. Valid if supportHistoricalMenstruationExchange is enabled. |
| mf_grade | int | Flow level. Valid if supportHistoricalMenstruationExchange is enabled. |
Example:
{
"version": 2,
"operate":2,
"support_set_max_menstruation_num" : 0,
"last_change_time" : 0,
"avg_menstrual_day": 7,
"avg_cycle_day": 29,
"items_len": 1,
"items": [
{
"year": 2023,
"mon": 8,
"day": 1,
"menstrual_day": 7,
"cycle_day":30,
"ovulation_interval_day":14,
"ovulation_before_day":5,
"ovulation_after_day":5,
"grade_val" :
[
{
"dys_grade" : 0,
"mf_grade" : 0
},
{
"dys_grade" : 0,
"mf_grade" : 0
}
],
"index" : 0,
"last_change_time" : 1731691056,
"is_menstrual_end" : 0,
"change_type" : 0
},
{
"year": 2023,
"mon": 8,
"day": 31,
"menstrual_day": 7,
"cycle_day":28,
"ovulation_interval_day":14,
"ovulation_before_day":5,
"ovulation_after_day":5,
"grade_val" :
[
{
"dys_grade" : 0,
"mf_grade" : 0
},
{
"dys_grade" : 0,
"mf_grade" : 0
}
],
"index" : 0,
"last_change_time" : 1731691056,
"is_menstrual_end" : 0,
"change_type" : 0
}
]
}
JSON Fields Received by the App:
| Field Name | Field Type | Field Description |
|---|---|---|
| err_code | int | Error code: 0 for success, non-zero for failure |
| version | int | Protocol library version number Default: 0 |
| avg_menstrual_day | int | Average menstrual period length Unit: days |
| avg_cycle_day | int | Average cycle length Unit: days |
| items_len | int | Number of items in menstrual period history data details, maximum: 5 |
| items | Collection | Menstrual period history data details Collection of year, mon, day, menstrual_day, and cycle_dayovulation_interval_day, ovulation_before_day, and ovulation_after_day are valid when supportSetHistoricalMenstruationUseVersion2 is enabled |
| operate | int | Operation 0: Invalid; 1: Set, 2: Query, 3: Modify, 4: Add, 5: Delete If supportHistoricalMenstruationExchange is enabled |
| last_change_time | long | Last modification time (UTC timestamp) If supportHistoricalMenstruationExchange is enabled |
| support_set_max_menstruation_num | int | Maximum number of menstrual period history data items that can be set If supportHistoricalMenstruationExchange is enabled |
| Field Name | Field Type | Field Description |
|---|---|---|
| year | int | Year when menstruation begins |
| mon | int | Month when menstruation begins |
| day | int | Day when menstruation begins |
| menstrual_day | int | Menstrual period length (in days) |
| cycle_day | int | Cycle length (in days) |
| ovulation_interval_day | int | The interval from the start of the next menstrual period to the day of ovulation, typically 14 days. Valid only if supportSetHistoricalMenstruationUseVersion2 is enabled. |
| ovulation_before_day | int | Number of fertile days before ovulation, typically 5 days. Valid only if supportSetHistoricalMenstruationUseVersion2 is enabled. |
| ovulation_after_day | int | The number of days in the fertile period after ovulation, generally 5. When supportSetHistoricalMenstruationUseVersion2 is enabled |
| index | int | Index, starting at 0. Unique identifier When supportHistoricalMenstruationExchange is enabled |
| last_change_time | long | Time of the last change (UTC timestamp) When supportHistoricalMenstruationExchange is enabled |
| is_menstrual_end | int | Whether the menstrual period has ended. 0: Invalid 1: Ended 2: Not ended When supportHistoricalMenstruationExchangeVersion31 is enabled |
| change_type | int | Modified item 0: Invalid 1: Added 2: Modified 3: Deleted When supportHistoricalMenstruationExchangeVersion31 is enabled |
| grade_val | Collection | The level of menstrual pain and flow for each day of the menstrual period Length equal to the menstrual period length. A combination of dys_grade and mf_grade. Valid when supportHistoricalMenstruationExchange is enabled. |
| Field Name | Field Type | Field Description |
|---|---|---|
| dys_grade | int | Dysmenorrhea grade. Valid when supportHistoricalMenstruationExchange is enabled. |
| mf_grade | int | Flow rate grade. Valid when supportHistoricalMenstruationExchange is enabled. |
Example:
{
"err_code": 0,
"version": 2,
"operate":2,
"support_set_max_menstruation_num" : 0,
"last_change_time" : 0,
"avg_menstrual_day": 7,
"avg_cycle_day": 29,
"items_len": 1,
"items": [
{
"year": 2023,
"mon": 8,
"day": 1,
"menstrual_day": 7,
"cycle_day":30,
"ovulation_interval_day":14,
"ovulation_before_day":5,
"ovulation_after_day":5,
"grade_val" :
[
{
"dys_grade" : 0,
"mf_grade" : 0
},
{
"dys_grade" : 0,
"mf_grade" : 0
}
],
"index" : 0,
"last_change_time" : 1731691056
},
{
"year": 2023,
"mon": 8,
"day": 31,
"menstrual_day": 7,
"cycle_day":28,
"ovulation_interval_day":14,
"ovulation_before_day":5,
"ovulation_after_day":5,
"grade_val" :
[
{
"dys_grade" : 0,
"mf_grade" : 0
},
{
"dys_grade" : 0,
"mf_grade" : 0
}
],
"index" : 0,
"last_change_time" : 1731691056
}
]
}