From 68b5e7ac0676c29d74e4152ee94be32c8cbb798f Mon Sep 17 00:00:00 2001 From: Simona Carini Date: Wed, 31 Jan 2024 11:32:49 -0800 Subject: [PATCH 1/2] Schemas body fat %, body height, body location and body mass index updated to add $id and reference IEEE schemas where relevant, sample data added --- schema/omh/body-fat-percentage-2.0.json | 40 +++++++++++++ schema/omh/body-fat-percentage-2.x.json | 1 + schema/omh/body-height-2.0.json | 40 +++++++++++++ schema/omh/body-height-2.x.json | 1 + schema/omh/body-location-1.1.json | 27 +++++++++ schema/omh/body-mass-index-3.0.json | 57 +++++++++++++++++++ schema/omh/body-mass-index-3.x.json | 1 + .../2.0/shouldFail/empty-document.json | 1 + .../2.0/shouldFail/invalid-unit.json | 9 +++ .../2.0/shouldFail/missing-time-frame.json | 6 ++ .../shouldPass/body-fat-percentage-only.json | 9 +++ .../2.0/shouldPass/with-statistic.json | 13 +++++ .../2.0/shouldFail/empty-document.json | 1 + .../2.0/shouldFail/missing-time-frame.json | 6 ++ .../2.0/shouldFail/with-part-of-day.json | 12 ++++ .../2.0/shouldPass/body-height-only.json | 9 +++ .../with-descriptive-statistic.json | 13 +++++ .../3.0/shouldFail/empty-document.json | 1 + .../3.0/shouldFail/missing-time-frame.json | 6 ++ .../3.0/shouldPass/valid-body-mass-index.json | 9 +++ .../3.0/shouldPass/with-everything.json | 13 +++++ 21 files changed, 275 insertions(+) create mode 100644 schema/omh/body-fat-percentage-2.0.json create mode 120000 schema/omh/body-fat-percentage-2.x.json create mode 100644 schema/omh/body-height-2.0.json create mode 120000 schema/omh/body-height-2.x.json create mode 100644 schema/omh/body-location-1.1.json create mode 100644 schema/omh/body-mass-index-3.0.json create mode 120000 schema/omh/body-mass-index-3.x.json create mode 100644 test-data/omh/body-fat-percentage/2.0/shouldFail/empty-document.json create mode 100644 test-data/omh/body-fat-percentage/2.0/shouldFail/invalid-unit.json create mode 100644 test-data/omh/body-fat-percentage/2.0/shouldFail/missing-time-frame.json create mode 100644 test-data/omh/body-fat-percentage/2.0/shouldPass/body-fat-percentage-only.json create mode 100644 test-data/omh/body-fat-percentage/2.0/shouldPass/with-statistic.json create mode 100644 test-data/omh/body-height/2.0/shouldFail/empty-document.json create mode 100644 test-data/omh/body-height/2.0/shouldFail/missing-time-frame.json create mode 100644 test-data/omh/body-height/2.0/shouldFail/with-part-of-day.json create mode 100644 test-data/omh/body-height/2.0/shouldPass/body-height-only.json create mode 100644 test-data/omh/body-height/2.0/shouldPass/with-descriptive-statistic.json create mode 100644 test-data/omh/body-mass-index/3.0/shouldFail/empty-document.json create mode 100644 test-data/omh/body-mass-index/3.0/shouldFail/missing-time-frame.json create mode 100644 test-data/omh/body-mass-index/3.0/shouldPass/valid-body-mass-index.json create mode 100644 test-data/omh/body-mass-index/3.0/shouldPass/with-everything.json diff --git a/schema/omh/body-fat-percentage-2.0.json b/schema/omh/body-fat-percentage-2.0.json new file mode 100644 index 00000000..b1f98deb --- /dev/null +++ b/schema/omh/body-fat-percentage-2.0.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-fat-percentage-2.0.json", + "description": "This schema represents a person's body fat percentage.", + "type": "object", + "references": [ + { + "description": "The LOINC code represents Body fat percentage:Mass Fraction:Point in time:^Patient:Quantitative:Measured", + "url": "http://purl.bioontology.org/ontology/LNC/41982-0" + } + ], + "definitions": { + "percent-unit_value": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/percent-unit-value-1.0.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_fat_percentage": { + "$ref": "#/definitions/percent-unit_value" + }, + "effective_time_frame": { + "$ref": "#/definitions/time_frame" + }, + "descriptive_statistic": { + "$ref": "#/definitions/descriptive_statistic" + } + }, + + "required": [ + "body_fat_percentage", + "effective_time_frame" + ] +} \ No newline at end of file diff --git a/schema/omh/body-fat-percentage-2.x.json b/schema/omh/body-fat-percentage-2.x.json new file mode 120000 index 00000000..310921a7 --- /dev/null +++ b/schema/omh/body-fat-percentage-2.x.json @@ -0,0 +1 @@ +body-fat-percentage-2.0.json \ No newline at end of file diff --git a/schema/omh/body-height-2.0.json b/schema/omh/body-height-2.0.json new file mode 100644 index 00000000..e740753f --- /dev/null +++ b/schema/omh/body-height-2.0.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-height-2.0.json", + "description": "This schema represents a person's body height.", + "type": "object", + "references": [ + { + "description": "The SNOMED code represents Body height measure (observable entity)", + "url": "http://purl.bioontology.org/ontology/SNOMEDCT/50373000" + } + ], + "definitions": { + "length_unit_value": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/length-unit-value-1.0.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_height": { + "$ref": "#/definitions/length_unit_value" + }, + "effective_time_frame": { + "$ref": "#/definitions/time_frame" + }, + "descriptive_statistic": { + "$ref": "#/definitions/descriptive_statistic" + } + }, + + "required": [ + "body_height", + "effective_time_frame" + ] +} \ No newline at end of file diff --git a/schema/omh/body-height-2.x.json b/schema/omh/body-height-2.x.json new file mode 120000 index 00000000..58a1af07 --- /dev/null +++ b/schema/omh/body-height-2.x.json @@ -0,0 +1 @@ +body-height-2.0.json \ No newline at end of file diff --git a/schema/omh/body-location-1.1.json b/schema/omh/body-location-1.1.json new file mode 100644 index 00000000..60a5a08e --- /dev/null +++ b/schema/omh/body-location-1.1.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-location-1.1.json", + "description": "A location on the body. This is an incomplete value set. Values from the Anatomical or acquired body structure hierarchy of SNOMED can be added as needed.", + "type": "string", + "references": [ + { + "description": "The SNOMED code represents Anatomical or acquired body structure (body structure)", + "url": "http://purl.bioontology.org/ontology/SNOMEDCT/442083009" + } + ], + + "enum": [ + "left ankle", + "right ankle", + "left hip", + "right hip", + "left thigh", + "right thigh", + "left thorax", + "middle left thorax", + "left upper arm", + "right upper arm", + "left wrist", + "right wrist" + ] +} \ No newline at end of file diff --git a/schema/omh/body-mass-index-3.0.json b/schema/omh/body-mass-index-3.0.json new file mode 100644 index 00000000..a3624c6e --- /dev/null +++ b/schema/omh/body-mass-index-3.0.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3id.org/openmhealth/schemas/omh/body-mass-index-3.0.json", + "description": "This schema represents a person's body mass index (BMI)", + "type": "object", + "references": [ + { + "description": "The SNOMED code represents Body mass index (observable entity)", + "url": "http://purl.bioontology.org/ontology/SNOMEDCT/60621009" + } + ], + "definitions": { + "unit_value": { + "$ref": "https://w3id.org/ieee/ieee-1752-schema/unit-value-1.0.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_mass_index": { + "allOf": [ + { + "$ref": "#/definitions/unit_value" + }, + { + "properties": { + "unit": { + "references": [ + { + "description": "The unit of measure the element. Allowed value is drawn from the Areic mass Units Common Synonyms (non-UCUM).", + "url": "http://download.hl7.de/documents/ucum/ucumdata.html" + } + ], + "enum": ["kg/m^2"] + } + } + } + ] + }, + "effective_time_frame": { + "$ref": "#/definitions/time_frame" + }, + "descriptive_statistic": { + "$ref": "#/definitions/descriptive_statistic" + } + }, + + "required": [ + "body_mass_index", + "effective_time_frame" + ] +} \ No newline at end of file diff --git a/schema/omh/body-mass-index-3.x.json b/schema/omh/body-mass-index-3.x.json new file mode 120000 index 00000000..670881ea --- /dev/null +++ b/schema/omh/body-mass-index-3.x.json @@ -0,0 +1 @@ +body-mass-index-3.0.json \ No newline at end of file diff --git a/test-data/omh/body-fat-percentage/2.0/shouldFail/empty-document.json b/test-data/omh/body-fat-percentage/2.0/shouldFail/empty-document.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/test-data/omh/body-fat-percentage/2.0/shouldFail/empty-document.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test-data/omh/body-fat-percentage/2.0/shouldFail/invalid-unit.json b/test-data/omh/body-fat-percentage/2.0/shouldFail/invalid-unit.json new file mode 100644 index 00000000..d1c7fb30 --- /dev/null +++ b/test-data/omh/body-fat-percentage/2.0/shouldFail/invalid-unit.json @@ -0,0 +1,9 @@ +{ + "body_fat_percentage": { + "value": 16, + "unit": "kg" + }, + "effective_time_frame": { + "date_time": "2023-02-05T07:25:00Z" + } +} \ No newline at end of file diff --git a/test-data/omh/body-fat-percentage/2.0/shouldFail/missing-time-frame.json b/test-data/omh/body-fat-percentage/2.0/shouldFail/missing-time-frame.json new file mode 100644 index 00000000..eb45e678 --- /dev/null +++ b/test-data/omh/body-fat-percentage/2.0/shouldFail/missing-time-frame.json @@ -0,0 +1,6 @@ +{ + "body_fat_percentage": { + "value": 16, + "unit": "%" + } +} \ No newline at end of file diff --git a/test-data/omh/body-fat-percentage/2.0/shouldPass/body-fat-percentage-only.json b/test-data/omh/body-fat-percentage/2.0/shouldPass/body-fat-percentage-only.json new file mode 100644 index 00000000..60831b38 --- /dev/null +++ b/test-data/omh/body-fat-percentage/2.0/shouldPass/body-fat-percentage-only.json @@ -0,0 +1,9 @@ +{ + "body_fat_percentage": { + "value": 16, + "unit": "%" + }, + "effective_time_frame": { + "date_time": "2023-02-05T07:25:00-08:00" + } +} \ No newline at end of file diff --git a/test-data/omh/body-fat-percentage/2.0/shouldPass/with-statistic.json b/test-data/omh/body-fat-percentage/2.0/shouldPass/with-statistic.json new file mode 100644 index 00000000..d10f72c4 --- /dev/null +++ b/test-data/omh/body-fat-percentage/2.0/shouldPass/with-statistic.json @@ -0,0 +1,13 @@ +{ + "body_fat_percentage": { + "value": 16, + "unit": "%" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2023-01-01T00:00:00Z", + "end_date_time": "2023-12-31T23:59:59Z" + } + }, + "descriptive_statistic": "maximum" +} \ No newline at end of file diff --git a/test-data/omh/body-height/2.0/shouldFail/empty-document.json b/test-data/omh/body-height/2.0/shouldFail/empty-document.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/test-data/omh/body-height/2.0/shouldFail/empty-document.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test-data/omh/body-height/2.0/shouldFail/missing-time-frame.json b/test-data/omh/body-height/2.0/shouldFail/missing-time-frame.json new file mode 100644 index 00000000..16404a47 --- /dev/null +++ b/test-data/omh/body-height/2.0/shouldFail/missing-time-frame.json @@ -0,0 +1,6 @@ +{ + "body_height": { + "value": 180, + "unit": "cm" + } +} \ No newline at end of file diff --git a/test-data/omh/body-height/2.0/shouldFail/with-part-of-day.json b/test-data/omh/body-height/2.0/shouldFail/with-part-of-day.json new file mode 100644 index 00000000..40a764eb --- /dev/null +++ b/test-data/omh/body-height/2.0/shouldFail/with-part-of-day.json @@ -0,0 +1,12 @@ +{ + "body_height": { + "value": 180, + "unit": "cm" + }, + "effective_time_frame": { + "time_interval": { + "date": "2023-02-05", + "part_of_day": "morning" + } + } +} \ No newline at end of file diff --git a/test-data/omh/body-height/2.0/shouldPass/body-height-only.json b/test-data/omh/body-height/2.0/shouldPass/body-height-only.json new file mode 100644 index 00000000..c58a235e --- /dev/null +++ b/test-data/omh/body-height/2.0/shouldPass/body-height-only.json @@ -0,0 +1,9 @@ +{ + "body_height": { + "value": 180, + "unit": "cm" + }, + "effective_time_frame": { + "date_time": "2023-02-05T07:25:00Z" + } +} \ No newline at end of file diff --git a/test-data/omh/body-height/2.0/shouldPass/with-descriptive-statistic.json b/test-data/omh/body-height/2.0/shouldPass/with-descriptive-statistic.json new file mode 100644 index 00000000..77da5825 --- /dev/null +++ b/test-data/omh/body-height/2.0/shouldPass/with-descriptive-statistic.json @@ -0,0 +1,13 @@ +{ + "body_height": { + "value": 180, + "unit": "cm" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2023-01-01T00:00:00Z", + "end_date_time": "2023-12-31T23:59:59Z" + } + }, + "descriptive_statistic": "maximum" +} \ No newline at end of file diff --git a/test-data/omh/body-mass-index/3.0/shouldFail/empty-document.json b/test-data/omh/body-mass-index/3.0/shouldFail/empty-document.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/test-data/omh/body-mass-index/3.0/shouldFail/empty-document.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test-data/omh/body-mass-index/3.0/shouldFail/missing-time-frame.json b/test-data/omh/body-mass-index/3.0/shouldFail/missing-time-frame.json new file mode 100644 index 00000000..813f0fbb --- /dev/null +++ b/test-data/omh/body-mass-index/3.0/shouldFail/missing-time-frame.json @@ -0,0 +1,6 @@ +{ + "body_mass_index": { + "value": 16, + "unit": "kg/m^2" + } +} \ No newline at end of file diff --git a/test-data/omh/body-mass-index/3.0/shouldPass/valid-body-mass-index.json b/test-data/omh/body-mass-index/3.0/shouldPass/valid-body-mass-index.json new file mode 100644 index 00000000..f35920a0 --- /dev/null +++ b/test-data/omh/body-mass-index/3.0/shouldPass/valid-body-mass-index.json @@ -0,0 +1,9 @@ +{ + "body_mass_index": { + "value": 16, + "unit": "kg/m^2" + }, + "effective_time_frame": { + "date_time": "2024-01-01T00:00:00Z" + } +} \ No newline at end of file diff --git a/test-data/omh/body-mass-index/3.0/shouldPass/with-everything.json b/test-data/omh/body-mass-index/3.0/shouldPass/with-everything.json new file mode 100644 index 00000000..9751cc42 --- /dev/null +++ b/test-data/omh/body-mass-index/3.0/shouldPass/with-everything.json @@ -0,0 +1,13 @@ +{ + "body_mass_index": { + "value": 16, + "unit": "kg/m^2" + }, + "effective_time_frame": { + "time_interval": { + "start_date_time": "2023-01-01T00:00:00Z", + "end_date_time": "2023-12-31T23:59:59Z" + } + }, + "descriptive_statistic": "maximum" +} \ No newline at end of file From f9442aea57b7d308ce1eeec64032caf065d31f10 Mon Sep 17 00:00:00 2001 From: Simona Carini Date: Wed, 31 Jan 2024 12:00:53 -0800 Subject: [PATCH 2/2] Schemas body temperature and body weight updated to add $id and reference IEEE schemas where relevant, sample data added --- schema/omh/body-location-1.x.json | 2 +- schema/omh/body-temperature-4.0.json | 64 +++++++++++++++++++ schema/omh/body-temperature-4.x.json | 1 + schema/omh/body-weight-3.0.json | 41 ++++++++++++ schema/omh/body-weight-3.x.json | 1 + schema/omh/temperature-unit-value-1.0.json | 5 ++ .../4.0/shouldFail/empty-document.json | 1 + .../4.0/shouldFail/invalid-unit.json | 9 +++ .../missing-effective-time-frame.json | 6 ++ .../4.0/shouldPass/basal-temperature.json | 10 +++ .../valid-temperature-with-statistic.json | 14 ++++ .../4.0/shouldPass/valid-temperature.json | 10 +++ .../3.0/shouldFail/empty-document.json | 1 + .../invalid-descriptive-statistic.json | 13 ++++ .../3.0/shouldFail/invalid-time-frame.json | 10 +++ .../3.0/shouldFail/invalid-time-interval.json | 12 ++++ .../3.0/shouldFail/invalid-unit.json | 9 +++ .../shouldFail/missing-body-weight-unit.json | 8 +++ .../shouldFail/missing-body-weight-value.json | 8 +++ .../3.0/shouldPass/body-weight-only.json | 9 +++ .../with-descriptive-statistic.json | 13 ++++ 21 files changed, 246 insertions(+), 1 deletion(-) create mode 100644 schema/omh/body-temperature-4.0.json create mode 120000 schema/omh/body-temperature-4.x.json create mode 100644 schema/omh/body-weight-3.0.json create mode 120000 schema/omh/body-weight-3.x.json create mode 100644 test-data/omh/body-temperature/4.0/shouldFail/empty-document.json create mode 100644 test-data/omh/body-temperature/4.0/shouldFail/invalid-unit.json create mode 100644 test-data/omh/body-temperature/4.0/shouldFail/missing-effective-time-frame.json create mode 100644 test-data/omh/body-temperature/4.0/shouldPass/basal-temperature.json create mode 100644 test-data/omh/body-temperature/4.0/shouldPass/valid-temperature-with-statistic.json create mode 100644 test-data/omh/body-temperature/4.0/shouldPass/valid-temperature.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/empty-document.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/invalid-descriptive-statistic.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/invalid-time-frame.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/invalid-time-interval.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/invalid-unit.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-unit.json create mode 100644 test-data/omh/body-weight/3.0/shouldFail/missing-body-weight-value.json create mode 100644 test-data/omh/body-weight/3.0/shouldPass/body-weight-only.json create mode 100644 test-data/omh/body-weight/3.0/shouldPass/with-descriptive-statistic.json 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