diff --git a/schema/omh/body-location-1.x.json b/schema/omh/body-location-1.x.json index 6e965753..887ed0b8 120000 --- a/schema/omh/body-location-1.x.json +++ b/schema/omh/body-location-1.x.json @@ -1 +1 @@ -body-location-1.0.json \ No newline at end of file +body-location-1.1.json \ No newline at end of file diff --git a/schema/omh/body-temperature-4.0.json b/schema/omh/body-temperature-4.0.json new file mode 100644 index 00000000..3331eb22 --- /dev/null +++ b/schema/omh/body-temperature-4.0.json @@ -0,0 +1,64 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-temperature-4.0.json", + "description": "This schema represents a person's body temperature.", + "type": "object", + "references": [ + { + "description": "The SNOMED code represents body temperature (observable entity)", + "url": "http://purl.bioontology.org/ontology/SNOMEDCT/386725007" + } + ], + + "definitions": { + "temperature_unit_value": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/temperature-unit-value-1.0.json" + }, + "time_frame": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/time-frame-1.0.json" + }, + "temporal_relationship_to_sleep": { + "$ref": "temporal-relationship-to-sleep-1.x.json" + }, + "descriptive_statistic": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/descriptive-statistic-1.0.json" + } + }, + + "properties": { + "body_temperature": { + "$ref": "#/definitions/temperature_unit_value" + }, + "effective_time_frame": { + "$ref": "#/definitions/time_frame" + }, + "descriptive_statistic": { + "$ref": "#/definitions/descriptive_statistic" + }, + "measurement_location": { + "description": "The value set is taken from SNOMED CT and LOINC. For common temperature locations, the adjective is used rather than the actual location name (e.g., axillary rather than armpit). Forehead indicates the use of a disposable strip.", + "type": "string", + "enum": [ + "axillary", + "finger", + "forehead", + "oral", + "rectal", + "temporal artery", + "toe", + "tympanic", + "wrist", + "vagina" + ] + }, + + "temporal_relationship_to_sleep": { + "description": "The temporal relationship to sleep of the temperature measurement(s). The lowest body temperature attained during rest, usually estimated by a temperature measurement immediately on waking up and before any physical activity has been undertaken is called basal temperature.", + "$ref": "#/definitions/temporal_relationship_to_sleep" + } + }, + "required": [ + "body_temperature", + "effective_time_frame" + ] +} \ No newline at end of file diff --git a/schema/omh/body-temperature-4.x.json b/schema/omh/body-temperature-4.x.json new file mode 120000 index 00000000..b9e3fbd2 --- /dev/null +++ b/schema/omh/body-temperature-4.x.json @@ -0,0 +1 @@ +body-temperature-4.0.json \ No newline at end of file diff --git a/schema/omh/body-weight-3.0.json b/schema/omh/body-weight-3.0.json new file mode 100644 index 00000000..de0f942a --- /dev/null +++ b/schema/omh/body-weight-3.0.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-weight-2.0.json", + "description": "This schema represents a person's body weight.", + + "type": "object", + "references": [ + { + "description": "The SNOMED code represents Body weight measure (observable entity)", + "url": "http://purl.bioontology.org/ontology/SNOMEDCT/363808001" + } + ], + "definitions": { + "mass_unit_value": { + "$ref": "mass-unit-value-1.x.json" + }, + "time_frame": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/time-frame-1.0.json" + }, + "descriptive_statistic": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/descriptive-statistic-1.0.json" + } + }, + + "properties": { + "body_weight": { + "$ref": "#/definitions/mass_unit_value" + }, + "effective_time_frame": { + "$ref": "#/definitions/time_frame" + }, + "descriptive_statistic": { + "$ref": "#/definitions/descriptive_statistic" + } + }, + + "required": [ + "body_weight", + "effective_time_frame" + ] +} \ No newline at end of file diff --git a/schema/omh/body-weight-3.x.json b/schema/omh/body-weight-3.x.json new file mode 120000 index 00000000..7de0b0ff --- /dev/null +++ b/schema/omh/body-weight-3.x.json @@ -0,0 +1 @@ +body-weight-3.0.json \ No newline at end of file diff --git a/schema/omh/temperature-unit-value-1.0.json b/schema/omh/temperature-unit-value-1.0.json index 13333c15..74d90617 100644 --- a/schema/omh/temperature-unit-value-1.0.json +++ b/schema/omh/temperature-unit-value-1.0.json @@ -1,5 +1,10 @@ { "$schema": "http://json-schema.org/draft-04/schema#", + "deprecation": { + "reason": "This schema is now deprecated, in favor of the IEEE 1752.1 schema of the same name.", + "supersededBy": "https://w3id.org/ieee/ieee-1752-schema/temperature-unit-value.json", + "date": "2024-01-31" + }, "type": "object", "description": "This schema represents a temperature (intensity of heat)", "references": [ diff --git a/test-data/omh/body-temperature/4.0/shouldFail/empty-document.json b/test-data/omh/body-temperature/4.0/shouldFail/empty-document.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldFail/empty-document.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test-data/omh/body-temperature/4.0/shouldFail/invalid-unit.json b/test-data/omh/body-temperature/4.0/shouldFail/invalid-unit.json new file mode 100644 index 00000000..2bbe6ad9 --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldFail/invalid-unit.json @@ -0,0 +1,9 @@ +{ + "body_temperature": { + "value": 36, + "unit": "G" + }, + "effective_time_frame": { + "date_time": "2013-02-05T07:25:00Z" + } +} \ No newline at end of file diff --git a/test-data/omh/body-temperature/4.0/shouldFail/missing-effective-time-frame.json b/test-data/omh/body-temperature/4.0/shouldFail/missing-effective-time-frame.json new file mode 100644 index 00000000..4fb3237e --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldFail/missing-effective-time-frame.json @@ -0,0 +1,6 @@ +{ + "body_temperature": { + "value": 36, + "unit": "C" + } +} \ No newline at end of file diff --git a/test-data/omh/body-temperature/4.0/shouldPass/basal-temperature.json b/test-data/omh/body-temperature/4.0/shouldPass/basal-temperature.json new file mode 100644 index 00000000..417d61a9 --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldPass/basal-temperature.json @@ -0,0 +1,10 @@ +{ + "body_temperature": { + "value": 96.5, + "unit": "F" + }, + "effective_time_frame": { + "date_time": "2023-02-05T06:25:00Z" + }, + "temporal_relationship_to_sleep": "on waking" +} \ No newline at end of file diff --git a/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature-with-statistic.json b/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature-with-statistic.json new file mode 100644 index 00000000..f63886b2 --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature-with-statistic.json @@ -0,0 +1,14 @@ +{ + "body_temperature": { + "value": 96.5, + "unit": "F" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2023-02-05T06:00:00-08:00", + "end_date_time": "2020-03-06T06:00:00-08:00" + } + }, + "measurement_location": "oral", + "descriptive_statistic": "maximum" +} \ No newline at end of file diff --git a/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature.json b/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature.json new file mode 100644 index 00000000..54065675 --- /dev/null +++ b/test-data/omh/body-temperature/4.0/shouldPass/valid-temperature.json @@ -0,0 +1,10 @@ +{ + "body_temperature": { + "value": 97, + "unit": "F" + }, + "effective_time_frame": { + "date_time": "2023-02-05T07:25:00+01:00" + }, + "measurement_location": "forehead" +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/empty-document.json b/test-data/omh/body-weight/3.0/shouldFail/empty-document.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/empty-document.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/invalid-descriptive-statistic.json b/test-data/omh/body-weight/3.0/shouldFail/invalid-descriptive-statistic.json new file mode 100644 index 00000000..07630468 --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/invalid-descriptive-statistic.json @@ -0,0 +1,13 @@ +{ + "body_weight": { + "value": 115.5, + "unit": "lb" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2013-02-05T07:25:00Z", + "end_date_time": "2013-06-05T07:25:00Z" + } + }, + "descriptive_statistic": "minmum" +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/invalid-time-frame.json b/test-data/omh/body-weight/3.0/shouldFail/invalid-time-frame.json new file mode 100644 index 00000000..0fbc6a7d --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/invalid-time-frame.json @@ -0,0 +1,10 @@ +{ + "body_weight": { + "value": 50, + "unit": "kg" + }, + "effective_time_frame": { + "start_date_time": "2013-02-05T07:25:00Z" + }, + "descriptive_statistic": "minimum" +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/invalid-time-interval.json b/test-data/omh/body-weight/3.0/shouldFail/invalid-time-interval.json new file mode 100644 index 00000000..43d255c2 --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/invalid-time-interval.json @@ -0,0 +1,12 @@ +{ + "body_weight": { + "value": 50, + "unit": "kg" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2013-02-05T07:25:00Z" + } + }, + "descriptive_statistic": "minimum" +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/invalid-unit.json b/test-data/omh/body-weight/3.0/shouldFail/invalid-unit.json new file mode 100644 index 00000000..d2c6b5a5 --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/invalid-unit.json @@ -0,0 +1,9 @@ +{ + "body_weight": { + "value": 50, + "unit": "km" + }, + "effective_time_frame": { + "date_time": "2020-02-05T09:25:00-08:00" + } +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-unit.json b/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-unit.json new file mode 100644 index 00000000..b92e94e4 --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-unit.json @@ -0,0 +1,8 @@ +{ + "body_weight": { + "value": 50 + }, + "effective_time_frame": { + "date_time": "2020-02-05T09:25:00-08:00" + } +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-value.json b/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-value.json new file mode 100644 index 00000000..dc766f7e --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-value.json @@ -0,0 +1,8 @@ +{ + "body_weight": { + "unit": "kg" + }, + "effective_time_frame": { + "date_time": "2020-02-05T09:25:00-08:00" + } +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldPass/body-weight-only.json b/test-data/omh/body-weight/3.0/shouldPass/body-weight-only.json new file mode 100644 index 00000000..195b0e39 --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldPass/body-weight-only.json @@ -0,0 +1,9 @@ +{ + "body_weight": { + "value": 50, + "unit": "kg" + }, + "effective_time_frame": { + "date_time": "2020-02-05T09:45:00-08:00" + } +} \ No newline at end of file diff --git a/test-data/omh/body-weight/3.0/shouldPass/with-descriptive-statistic.json b/test-data/omh/body-weight/3.0/shouldPass/with-descriptive-statistic.json new file mode 100644 index 00000000..d4fcd21f --- /dev/null +++ b/test-data/omh/body-weight/3.0/shouldPass/with-descriptive-statistic.json @@ -0,0 +1,13 @@ +{ + "body_weight": { + "value": 49.5, + "unit": "kg" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2020-02-05T09:45:00-08:00", + "end_date_time": "2020-03-05T10:40:00-08:00" + } + }, + "descriptive_statistic": "minimum" +} \ No newline at end of file