diff --git a/Dockerfile b/Dockerfile index 2853437..7bb0387 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,15 @@ -FROM ubuntu:22.04 +FROM python:3.11-slim -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --assume-yes \ - pip iputils-ping curl wget wkhtmltopdf - -COPY requirements.txt /home/requirements.txt -RUN pip3 install -r /home/requirements.txt -RUN ln -s /usr/bin/python3 /usr/bin/python +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + iputils-ping curl wget \ + && rm -rf /var/lib/apt/lists/* WORKDIR /flcore -COPY . /flcore \ No newline at end of file + +COPY requirements.txt . + +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +RUN ln -s /usr/bin/python3 /usr/bin/python diff --git a/client_cmd.py b/client_cmd.py index bd3caca..7d5817c 100644 --- a/client_cmd.py +++ b/client_cmd.py @@ -29,8 +29,8 @@ parser.add_argument("--dataset", type=str, default="dt4h_format", help="Dataloader to use") parser.add_argument("--data_id", type=str, default="data_id.parquet" , help="Dataset ID") parser.add_argument("--normalization_method",type=str, default="IQR", help="Type of normalization: IQR STD MIN_MAX") - parser.add_argument("--train_labels", type=str, nargs='+', default=None, help="Dataloader to use") - parser.add_argument("--target_labels", type=str, nargs='+', default=None, help="Dataloader to use") + parser.add_argument("--train_labels", type=str, nargs='+', default=[], help="Dataloader to use") + parser.add_argument("--target_labels", type=str, nargs='+', default=[], help="Dataloader to use") parser.add_argument("--train_size", type=float, default=0.7, help="Fraction of dataset to use for training. [0,1)") parser.add_argument("--validation_size", type=float, default=0.2, help="Fraction of dataset to use for validation. [0,1)") parser.add_argument("--test_size", type=float, default=0.1, help="Fraction of dataset to use for testing. [0,1)") @@ -50,6 +50,7 @@ parser.add_argument("--local_epochs", type=int, default=10, help="Number of local epochs to train in each round") parser.add_argument("--batch_size", type=int, default=8, help="Batch size to train") parser.add_argument("--penalty", type=str, default="none", help="Penalties: none, l1, l2, elasticnet, smooth l1") + parser.add_argument("--save_every_n_rounds", type=int, default=1, help="Save model checkpoints every N rounds") # Specific variables model related # # Linear models @@ -78,8 +79,9 @@ parser.add_argument("--train_method", type=str, default="bagging", help="Train method: bagging, cyclic") parser.add_argument("--eta", type=float, default=0.1, help="ETA value") # # Survival - parser.add_argument("--time_col", type=str, default="time", help="") - parser.add_argument("--event_col", type=str, default="event", help="") + parser.add_argument("--time_col", type=str, default=None, help="") + parser.add_argument("--event_col", type=str, default=None, help="") + parser.add_argument("--accumulative_pattern_col", type=str, default=None, help="") parser.add_argument("--negative_duration_strategy", type=str, default="clip", help="") args = parser.parse_args() @@ -96,18 +98,24 @@ console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.DEBUG) - # Create a formatter for consistency - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - file_handler.setFormatter(formatter) - console_handler.setFormatter(formatter) + # Create formatters + file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + console_formatter = logging.Formatter('[%(levelname)s] %(message)s') + + file_handler.setFormatter(file_formatter) + console_handler.setFormatter(console_formatter) # Get the root logger and configure it logger = logging.getLogger() - logger.setLevel(logging.DEBUG) + logger.setLevel(logging.INFO) # Change default level to INFO logger.handlers = [] # Clear any default handlers logger.addHandler(file_handler) logger.addHandler(console_handler) + # Silence noisy dependencies + # logging.getLogger("flwr").setLevel(logging.WARNING) + logging.getLogger("flwr").setLevel(logging.ERROR) + # Create two sub-loggers stdout_logger = logging.getLogger("STDOUT") stderr_logger = logging.getLogger("STDERR") @@ -117,10 +125,7 @@ sys.stderr = StreamToLogger(stderr_logger, logging.ERROR) # Now you can use logging in both places - logging.debug("This will be logged to both the console and the file.") - - # Now you can use logging in both places - logging.debug("This will be logged to both the console and the file.") + logging.info("Starting Flower client...") #### PODRIAMOS QUITAR ESTO DE PRODUCTION MODE; NO TIENE NINGUN SENTIDO #model = config["model"] diff --git a/dataset/icrc-dataset/3362-2045-1944.parquet b/dataset/icrc-dataset/3362-2045-1944.parquet deleted file mode 100644 index 61d539e..0000000 Binary files a/dataset/icrc-dataset/3362-2045-1944.parquet and /dev/null differ diff --git a/dataset/icrc-dataset/metadata.json b/dataset/icrc-dataset/metadata.json deleted file mode 100644 index 8bc2b22..0000000 --- a/dataset/icrc-dataset/metadata.json +++ /dev/null @@ -1,5283 +0,0 @@ -{ - "total": 1, - "entries": [ - { - "resourceType": "DatasetMetadata", - "id": "d5b4d69c-575b-4e3a-8c6b-a6aba345e430", - "meta": { - "versionId": "1", - "lastUpdated": 1725640637813 - }, - "url": "https://datatools4heart.eu/datasets/study1", - "name": "study1", - "until": "2024-09-06T16:27:13.318Z", - "population": { - "url": "https://datatools4heart.eu/cohorts/study1", - "title": "Patients hospitalized with a primary discharge diagnosis of heart failure", - "description": "Patients hospitalized with a primary discharge diagnosis of heart failure where the primary discharge diagnosis refers to the main reason for admission.", - "entityColumns": [ - { - "name": "Patient" - }, - { - "name": "Encounter" - } - ], - "numOfEntities": 3299 - }, - "featureSet": { - "url": "https://datatools4heart.eu/feature-sets/study1_features_new", - "title": "Dataset for DataTools4Heart project clinical study 1", - "description": "Dataset for DataTools4Heart project clinical study 1", - "referenceTimePoints": { - "method": "feature-group", - "secondaryPoints": [] - }, - "features": [ - { - "name": "encounters_encounterClass", - "description": "Type of encounter (emergency, impatient, outpatient, etc)", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "cardinality": 2, - "valueset": [ - "AMB", - "IMP" - ], - "cardinalityPerItem": { - "AMB": 3220, - "IMP": 79 - } - } - }, - { - "name": "encounters_admissionYear", - "description": "Year of admission to hospital", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "cardinality": 24, - "valueset": [ - "2013", - "2003", - "2016", - "2019", - "2010", - "2007", - "2005", - "2014", - "2006", - "2004", - "2012", - "2015", - "2017", - "2009", - "2002", - "2021", - "2011", - "2023", - "2022", - "2000", - "2001", - "2020", - "2018", - "2008" - ], - "cardinalityPerItem": { - "2000": 5, - "2001": 29, - "2002": 104, - "2003": 93, - "2004": 89, - "2005": 101, - "2006": 88, - "2007": 128, - "2008": 90, - "2009": 145, - "2010": 170, - "2011": 132, - "2012": 149, - "2013": 104, - "2014": 275, - "2015": 276, - "2016": 208, - "2017": 120, - "2018": 197, - "2019": 127, - "2020": 92, - "2021": 231, - "2022": 167, - "2023": 179 - } - } - }, - { - "name": "encounters_primaryReasonCode", - "description": "ICD 10 code of the primary reason for the encounter", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0, - "cardinality": 0, - "valueset": [], - "cardinalityPerItem": {} - } - }, - { - "name": "patient_demographics_gender", - "description": "Gender of the patient", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "cardinality": 2, - "valueset": [ - "female", - "male" - ], - "cardinalityPerItem": { - "female": 2715, - "male": 584 - } - } - }, - { - "name": "patient_demographics_age", - "description": "Age of the patient at reference point", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 54, - "avg": 63.87359806001819, - "min": 25, - "Q2": 64, - "max": 84, - "Q3": 72, - "numOfNotNull": 3299 - } - }, - { - "name": "vital_signs_weight_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 62.0, - "avg": 71.53846153846153, - "min": 0.0, - "Q2": 68.0, - "max": 105.0, - "Q3": 84.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_weight_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 62.0, - "avg": 71.53846153846153, - "min": 0.0, - "Q2": 68.0, - "max": 105.0, - "Q3": 84.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_weight_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 62.0, - "avg": 71.53846153846153, - "min": 0.0, - "Q2": 68.0, - "max": 105.0, - "Q3": 84.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_weight_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 62.0, - "avg": 71.53846153846153, - "min": 0.0, - "Q2": 68.0, - "max": 105.0, - "Q3": 84.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_weight_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 62.0, - "avg": 71.53846153846153, - "min": 0.0, - "Q2": 68.0, - "max": 105.0, - "Q3": 84.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_weight_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_height_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 165.0, - "avg": 166.5, - "min": 0.0, - "Q2": 171.0, - "max": 194.0, - "Q3": 174.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_height_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 165.0, - "avg": 166.5, - "min": 0.0, - "Q2": 171.0, - "max": 194.0, - "Q3": 174.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_height_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 165.0, - "avg": 166.5, - "min": 0.0, - "Q2": 171.0, - "max": 194.0, - "Q3": 174.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_height_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 165.0, - "avg": 166.5, - "min": 0.0, - "Q2": 171.0, - "max": 194.0, - "Q3": 174.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_height_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 165.0, - "avg": 166.5, - "min": 0.0, - "Q2": 171.0, - "max": 194.0, - "Q3": 174.0, - "numOfNotNull": 78 - } - }, - { - "name": "vital_signs_height_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_systolicBp_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_diastolicBp_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_heartRate_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "vital_signs_oxygenSaturation_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hemoglobin_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 10.1, - "avg": 11.649095607235152, - "min": 6.5, - "Q2": 11.7, - "max": 16.4, - "Q3": 13.5, - "numOfNotNull": 387 - } - }, - { - "name": "lab_results_hemoglobin_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 10.1, - "avg": 11.649095607235152, - "min": 6.5, - "Q2": 11.7, - "max": 16.4, - "Q3": 13.5, - "numOfNotNull": 387 - } - }, - { - "name": "lab_results_hemoglobin_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 10.1, - "avg": 11.649095607235152, - "min": 6.5, - "Q2": 11.7, - "max": 16.4, - "Q3": 13.5, - "numOfNotNull": 387 - } - }, - { - "name": "lab_results_hemoglobin_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hemoglobin_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 10.1, - "avg": 11.649095607235152, - "min": 6.5, - "Q2": 11.7, - "max": 16.4, - "Q3": 13.5, - "numOfNotNull": 387 - } - }, - { - "name": "lab_results_hemoglobin_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 10.1, - "avg": 11.649095607235152, - "min": 6.5, - "Q2": 11.7, - "max": 16.4, - "Q3": 13.5, - "numOfNotNull": 387 - } - }, - { - "name": "lab_results_ferritin_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 489.7, - "avg": 1469.6230769230772, - "min": 69.9, - "Q2": 2000.0, - "max": 2000.0, - "Q3": 2000.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_ferritin_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 489.7, - "avg": 1469.6230769230772, - "min": 69.9, - "Q2": 2000.0, - "max": 2000.0, - "Q3": 2000.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_ferritin_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 489.7, - "avg": 1469.6230769230772, - "min": 69.9, - "Q2": 2000.0, - "max": 2000.0, - "Q3": 2000.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_ferritin_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ferritin_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 489.7, - "avg": 1469.6230769230772, - "min": 69.9, - "Q2": 2000.0, - "max": 2000.0, - "Q3": 2000.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_ferritin_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 489.7, - "avg": 1469.6230769230772, - "min": 69.9, - "Q2": 2000.0, - "max": 2000.0, - "Q3": 2000.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tfs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 1.21, - "avg": 1.5799999999999998, - "min": 0.86, - "Q2": 1.36, - "max": 2.56, - "Q3": 1.94, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tfs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 1.21, - "avg": 1.5799999999999998, - "min": 0.86, - "Q2": 1.36, - "max": 2.56, - "Q3": 1.94, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tfs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 1.21, - "avg": 1.5799999999999998, - "min": 0.86, - "Q2": 1.36, - "max": 2.56, - "Q3": 1.94, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tfs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tfs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 1.21, - "avg": 1.5799999999999998, - "min": 0.86, - "Q2": 1.36, - "max": 2.56, - "Q3": 1.94, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tfs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 1.21, - "avg": 1.5799999999999998, - "min": 0.86, - "Q2": 1.36, - "max": 2.56, - "Q3": 1.94, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_ntProBnp_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ntProBnp_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ntProBnp_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ntProBnp_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ntProBnp_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ntProBnp_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bnp_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_crpNonHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropIHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropInHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropTHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 0.009, - "avg": 0.009, - "min": 0.009, - "Q2": 0.009, - "max": 0.009, - "Q3": 0.009, - "numOfNotNull": 1 - } - }, - { - "name": "lab_results_tropTHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 0.009, - "avg": 0.009, - "min": 0.009, - "Q2": 0.009, - "max": 0.009, - "Q3": 0.009, - "numOfNotNull": 1 - } - }, - { - "name": "lab_results_tropTHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 0.009, - "avg": 0.009, - "min": 0.009, - "Q2": 0.009, - "max": 0.009, - "Q3": 0.009, - "numOfNotNull": 1 - } - }, - { - "name": "lab_results_tropTHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropTHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 0.009, - "avg": 0.009, - "min": 0.009, - "Q2": 0.009, - "max": 0.009, - "Q3": 0.009, - "numOfNotNull": 1 - } - }, - { - "name": "lab_results_tropTHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 0.009, - "avg": 0.009, - "min": 0.009, - "Q2": 0.009, - "max": 0.009, - "Q3": 0.009, - "numOfNotNull": 1 - } - }, - { - "name": "lab_results_tropTnHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 7.0, - "avg": 10.846153846153847, - "min": 4.0, - "Q2": 9.0, - "max": 24.0, - "Q3": 16.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tropTnHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 7.0, - "avg": 10.846153846153847, - "min": 4.0, - "Q2": 9.0, - "max": 24.0, - "Q3": 16.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tropTnHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 7.0, - "avg": 10.846153846153847, - "min": 4.0, - "Q2": 9.0, - "max": 24.0, - "Q3": 16.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tropTnHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_tropTnHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 7.0, - "avg": 10.846153846153847, - "min": 4.0, - "Q2": 9.0, - "max": 24.0, - "Q3": 16.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_tropTnHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 7.0, - "avg": 10.846153846153847, - "min": 4.0, - "Q2": 9.0, - "max": 24.0, - "Q3": 16.0, - "numOfNotNull": 13 - } - }, - { - "name": "lab_results_triGly_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 0.9, - "avg": 1.1699999999999997, - "min": 0.55, - "Q2": 1.16, - "max": 2.69, - "Q3": 1.31, - "numOfNotNull": 41 - } - }, - { - "name": "lab_results_triGly_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 0.9, - "avg": 1.1699999999999997, - "min": 0.55, - "Q2": 1.16, - "max": 2.69, - "Q3": 1.31, - "numOfNotNull": 41 - } - }, - { - "name": "lab_results_triGly_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 0.9, - "avg": 1.1699999999999997, - "min": 0.55, - "Q2": 1.16, - "max": 2.69, - "Q3": 1.31, - "numOfNotNull": 41 - } - }, - { - "name": "lab_results_triGly_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_triGly_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 0.9, - "avg": 1.1699999999999997, - "min": 0.55, - "Q2": 1.16, - "max": 2.69, - "Q3": 1.31, - "numOfNotNull": 41 - } - }, - { - "name": "lab_results_triGly_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 0.9, - "avg": 1.1699999999999997, - "min": 0.55, - "Q2": 1.16, - "max": 2.69, - "Q3": 1.31, - "numOfNotNull": 41 - } - }, - { - "name": "lab_results_cholTot_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 4.26, - "avg": 5.07767441860465, - "min": 2.37, - "Q2": 4.97, - "max": 8.64, - "Q3": 5.84, - "numOfNotNull": 43 - } - }, - { - "name": "lab_results_cholTot_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 4.26, - "avg": 5.07767441860465, - "min": 2.37, - "Q2": 4.97, - "max": 8.64, - "Q3": 5.84, - "numOfNotNull": 43 - } - }, - { - "name": "lab_results_cholTot_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.26, - "avg": 5.07767441860465, - "min": 2.37, - "Q2": 4.97, - "max": 8.64, - "Q3": 5.84, - "numOfNotNull": 43 - } - }, - { - "name": "lab_results_cholTot_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_cholTot_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 4.26, - "avg": 5.07767441860465, - "min": 2.37, - "Q2": 4.97, - "max": 8.64, - "Q3": 5.84, - "numOfNotNull": 43 - } - }, - { - "name": "lab_results_cholTot_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.26, - "avg": 5.07767441860465, - "min": 2.37, - "Q2": 4.97, - "max": 8.64, - "Q3": 5.84, - "numOfNotNull": 43 - } - }, - { - "name": "lab_results_hdl_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 1.36, - "avg": 1.5005263157894735, - "min": 0.83, - "Q2": 1.53, - "max": 2.07, - "Q3": 1.75, - "numOfNotNull": 38 - } - }, - { - "name": "lab_results_hdl_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 1.36, - "avg": 1.5005263157894735, - "min": 0.83, - "Q2": 1.53, - "max": 2.07, - "Q3": 1.75, - "numOfNotNull": 38 - } - }, - { - "name": "lab_results_hdl_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 1.36, - "avg": 1.5005263157894735, - "min": 0.83, - "Q2": 1.53, - "max": 2.07, - "Q3": 1.75, - "numOfNotNull": 38 - } - }, - { - "name": "lab_results_hdl_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hdl_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 1.36, - "avg": 1.5005263157894735, - "min": 0.83, - "Q2": 1.53, - "max": 2.07, - "Q3": 1.75, - "numOfNotNull": 38 - } - }, - { - "name": "lab_results_hdl_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 1.36, - "avg": 1.5005263157894735, - "min": 0.83, - "Q2": 1.53, - "max": 2.07, - "Q3": 1.75, - "numOfNotNull": 38 - } - }, - { - "name": "lab_results_ldl_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ldl_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ldl_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ldl_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ldl_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_ldl_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_potassium_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 4.0, - "avg": 4.361904761904759, - "min": 0.0, - "Q2": 4.3, - "max": 6.8, - "Q3": 4.7, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_potassium_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 4.0, - "avg": 4.361904761904759, - "min": 0.0, - "Q2": 4.3, - "max": 6.8, - "Q3": 4.7, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_potassium_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.0, - "avg": 4.361904761904759, - "min": 0.0, - "Q2": 4.3, - "max": 6.8, - "Q3": 4.7, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_potassium_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_potassium_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 4.0, - "avg": 4.361904761904759, - "min": 0.0, - "Q2": 4.3, - "max": 6.8, - "Q3": 4.7, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_potassium_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.0, - "avg": 4.361904761904759, - "min": 0.0, - "Q2": 4.3, - "max": 6.8, - "Q3": 4.7, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_sodium_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 135.0, - "avg": 137.55357142857142, - "min": 123.0, - "Q2": 138.0, - "max": 146.0, - "Q3": 140.0, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_sodium_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 135.0, - "avg": 137.55357142857142, - "min": 123.0, - "Q2": 138.0, - "max": 146.0, - "Q3": 140.0, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_sodium_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 135.0, - "avg": 137.55357142857142, - "min": 123.0, - "Q2": 138.0, - "max": 146.0, - "Q3": 140.0, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_sodium_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_sodium_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 135.0, - "avg": 137.55357142857142, - "min": 123.0, - "Q2": 138.0, - "max": 146.0, - "Q3": 140.0, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_sodium_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 135.0, - "avg": 137.55357142857142, - "min": 123.0, - "Q2": 138.0, - "max": 146.0, - "Q3": 140.0, - "numOfNotNull": 336 - } - }, - { - "name": "lab_results_creatBS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 8.1432, - "avg": 17.815678527607353, - "min": 4.7502, - "Q2": 9.6135, - "max": 157.3221, - "Q3": 11.8755, - "numOfNotNull": 326 - } - }, - { - "name": "lab_results_creatBS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 8.1432, - "avg": 17.815678527607353, - "min": 4.7502, - "Q2": 9.6135, - "max": 157.3221, - "Q3": 11.8755, - "numOfNotNull": 326 - } - }, - { - "name": "lab_results_creatBS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 8.1432, - "avg": 17.815678527607353, - "min": 4.7502, - "Q2": 9.6135, - "max": 157.3221, - "Q3": 11.8755, - "numOfNotNull": 326 - } - }, - { - "name": "lab_results_creatBS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_creatBS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 8.1432, - "avg": 17.815678527607353, - "min": 4.7502, - "Q2": 9.6135, - "max": 157.3221, - "Q3": 11.8755, - "numOfNotNull": 326 - } - }, - { - "name": "lab_results_creatBS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 8.1432, - "avg": 17.815678527607353, - "min": 4.7502, - "Q2": 9.6135, - "max": 157.3221, - "Q3": 11.8755, - "numOfNotNull": 326 - } - }, - { - "name": "lab_results_creatUS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 463.792, - "avg": 549.1461818181818, - "min": 452.48, - "Q2": 520.352, - "max": 678.72, - "Q3": 633.472, - "numOfNotNull": 11 - } - }, - { - "name": "lab_results_creatUS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 463.792, - "avg": 549.1461818181818, - "min": 452.48, - "Q2": 520.352, - "max": 678.72, - "Q3": 633.472, - "numOfNotNull": 11 - } - }, - { - "name": "lab_results_creatUS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 463.792, - "avg": 549.1461818181818, - "min": 452.48, - "Q2": 520.352, - "max": 678.72, - "Q3": 633.472, - "numOfNotNull": 11 - } - }, - { - "name": "lab_results_creatUS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_creatUS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 463.792, - "avg": 549.1461818181818, - "min": 452.48, - "Q2": 520.352, - "max": 678.72, - "Q3": 633.472, - "numOfNotNull": 11 - } - }, - { - "name": "lab_results_creatUS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 463.792, - "avg": 549.1461818181818, - "min": 452.48, - "Q2": 520.352, - "max": 678.72, - "Q3": 633.472, - "numOfNotNull": 11 - } - }, - { - "name": "lab_results_albuminBS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 3.37E7, - "avg": 3.866376811594203E7, - "min": 2.54E7, - "Q2": 3.81E7, - "max": 5.11E7, - "Q3": 4.43E7, - "numOfNotNull": 69 - } - }, - { - "name": "lab_results_albuminBS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 3.37E7, - "avg": 3.866376811594203E7, - "min": 2.54E7, - "Q2": 3.81E7, - "max": 5.11E7, - "Q3": 4.43E7, - "numOfNotNull": 69 - } - }, - { - "name": "lab_results_albuminBS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 3.37E7, - "avg": 3.866376811594203E7, - "min": 2.54E7, - "Q2": 3.81E7, - "max": 5.11E7, - "Q3": 4.43E7, - "numOfNotNull": 69 - } - }, - { - "name": "lab_results_albuminBS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_albuminBS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 3.37E7, - "avg": 3.866376811594203E7, - "min": 2.54E7, - "Q2": 3.81E7, - "max": 5.11E7, - "Q3": 4.43E7, - "numOfNotNull": 69 - } - }, - { - "name": "lab_results_albuminBS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 3.37E7, - "avg": 3.866376811594203E7, - "min": 2.54E7, - "Q2": 3.81E7, - "max": 5.11E7, - "Q3": 4.43E7, - "numOfNotNull": 69 - } - }, - { - "name": "lab_results_albuminUS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 3000.0, - "avg": 186325.0, - "min": 3000.0, - "Q2": 180000.0, - "max": 284600.0, - "Q3": 277700.0, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_albuminUS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 3000.0, - "avg": 186325.0, - "min": 3000.0, - "Q2": 180000.0, - "max": 284600.0, - "Q3": 277700.0, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_albuminUS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 3000.0, - "avg": 186325.0, - "min": 3000.0, - "Q2": 180000.0, - "max": 284600.0, - "Q3": 277700.0, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_albuminUS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_albuminUS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 3000.0, - "avg": 186325.0, - "min": 3000.0, - "Q2": 180000.0, - "max": 284600.0, - "Q3": 277700.0, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_albuminUS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 3000.0, - "avg": 186325.0, - "min": 3000.0, - "Q2": 180000.0, - "max": 284600.0, - "Q3": 277700.0, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_eGFR_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_eGFR_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_eGFR_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_eGFR_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_eGFR_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_eGFR_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bun_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 2.3192, - "avg": 3.451493877551022, - "min": 0.9366, - "Q2": 2.8544, - "max": 19.2672, - "Q3": 3.7464, - "numOfNotNull": 343 - } - }, - { - "name": "lab_results_bun_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 2.3192, - "avg": 3.451493877551022, - "min": 0.9366, - "Q2": 2.8544, - "max": 19.2672, - "Q3": 3.7464, - "numOfNotNull": 343 - } - }, - { - "name": "lab_results_bun_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 2.3192, - "avg": 3.451493877551022, - "min": 0.9366, - "Q2": 2.8544, - "max": 19.2672, - "Q3": 3.7464, - "numOfNotNull": 343 - } - }, - { - "name": "lab_results_bun_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_bun_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 2.3192, - "avg": 3.451493877551022, - "min": 0.9366, - "Q2": 2.8544, - "max": 19.2672, - "Q3": 3.7464, - "numOfNotNull": 343 - } - }, - { - "name": "lab_results_bun_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 2.3192, - "avg": 3.451493877551022, - "min": 0.9366, - "Q2": 2.8544, - "max": 19.2672, - "Q3": 3.7464, - "numOfNotNull": 343 - } - }, - { - "name": "lab_results_acr_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 4.425, - "avg": 333.20250000000004, - "min": 4.425, - "Q2": 346.035, - "max": 572.595, - "Q3": 409.755, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_acr_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 4.425, - "avg": 333.20250000000004, - "min": 4.425, - "Q2": 346.035, - "max": 572.595, - "Q3": 409.755, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_acr_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.425, - "avg": 333.20250000000004, - "min": 4.425, - "Q2": 346.035, - "max": 572.595, - "Q3": 409.755, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_acr_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_acr_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 4.425, - "avg": 333.20250000000004, - "min": 4.425, - "Q2": 346.035, - "max": 572.595, - "Q3": 409.755, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_acr_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 4.425, - "avg": 333.20250000000004, - "min": 4.425, - "Q2": 346.035, - "max": 572.595, - "Q3": 409.755, - "numOfNotNull": 4 - } - }, - { - "name": "lab_results_hba1c%_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "average of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c%_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c%_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "minimum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c%_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c%_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c%_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "maximum among values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "average of values", - "until that time point" - ], - "statistics": { - "Q1": 5.992986549547076, - "avg": 6.280106234283353, - "min": 4.803490712782505, - "Q2": 6.175985909049318, - "max": 7.9144798243206145, - "Q3": 6.724983987556044, - "numOfNotNull": 29 - } - }, - { - "name": "lab_results_hba1c_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 5.992986549547076, - "avg": 6.280106234283353, - "min": 4.803490712782505, - "Q2": 6.175985909049318, - "max": 7.9144798243206145, - "Q3": 6.724983987556044, - "numOfNotNull": 29 - } - }, - { - "name": "lab_results_hba1c_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "minimum among values", - "until that time point" - ], - "statistics": { - "Q1": 5.992986549547076, - "avg": 6.280106234283353, - "min": 4.803490712782505, - "Q2": 6.175985909049318, - "max": 7.9144798243206145, - "Q3": 6.724983987556044, - "numOfNotNull": 29 - } - }, - { - "name": "lab_results_hba1c_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "standard deviation of values", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "lab_results_hba1c_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 5.992986549547076, - "avg": 6.280106234283353, - "min": 4.803490712782505, - "Q2": 6.175985909049318, - "max": 7.9144798243206145, - "Q3": 6.724983987556044, - "numOfNotNull": 29 - } - }, - { - "name": "lab_results_hba1c_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "maximum among values", - "until that time point" - ], - "statistics": { - "Q1": 5.992986549547076, - "avg": 6.280106234283353, - "min": 4.803490712782505, - "Q2": 6.175985909049318, - "max": 7.9144798243206145, - "Q3": 6.724983987556044, - "numOfNotNull": 29 - } - }, - { - "name": "symptoms_Ankle swelling_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Ankle swelling (pivot value = '267039000')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Ascites_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Ascites (pivot value = '389026000')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Breathlessness_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Breathlessness (pivot value = '267036007')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Cardiac murmur_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Cardiac murmur (pivot value = '59495006')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Chest pain_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Chest pain (pivot value = '29857009')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Cheyne-stokes respiration_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Cheyne-stokes respiration (pivot value = '90480005')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Depression_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Depression (pivot value = '35489007')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Dizziness_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Dizziness (pivot value = '404640003')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Elevated jugular venous pressure_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Elevated jugular venous pressure (pivot value = '22447003')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Fatigue_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Fatigue (pivot value = '84229001')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Hepatojugular reflux_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Hepatojugular reflux (pivot value = '72196001')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Hepatomegaly_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Hepatomegaly (pivot value = '80515008')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Intermittent claudication_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Intermittent claudication (pivot value = '63491006')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Irregular pulse_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Irregular pulse (pivot value = '361137007')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Loss of appetite_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Loss of appetite (pivot value = '79890006')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Nocturnal cough_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Nocturnal cough (pivot value = '161947006')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Oliguria_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Oliguria (pivot value = '83128009')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Orthopnoea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Orthopnoea (pivot value = '62744007')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Palpitations_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Palpitations (pivot value = '80313002')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Paroxysmal nocturnal dyspnea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Paroxysmal nocturnal dyspnea (pivot value = '55442000')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Peripheral edema_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Peripheral edema (pivot value = '271809000')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Pleural effusion_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Pleural effusion (pivot value = '60046008')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Pulmonary crepitations_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Pulmonary crepitations (pivot value = '48409008')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Reduced exercise tolerance_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Reduced exercise tolerance (pivot value = '267044007')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Syncope_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Syncope (pivot value = '272030005')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Tachycardia_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Tachycardia (pivot value = '3424008')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Tachypnoea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Tachypnoea (pivot value = '271823003')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Third heart sound_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Third heart sound (pivot value = '1285004')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Weight gain_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Weight gain (pivot value = '8943002')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "symptoms_Weight loss_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Weight loss (pivot value = '89362005')", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "echocardiographs_lvef", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "Q1": 36.0, - "avg": 45.36173911716627, - "min": 36.0, - "Q2": 36.0, - "max": 70.0, - "Q3": 60.0, - "numOfNotNull": 115 - } - }, - { - "name": "electrocardiographs_ecg_qrs_duration", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "electrocardiographs_ecg_qrs_axis", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "electrocardiographs_ecg_st", - "description": "ST-elevation", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "electrocardiographs_ecg_ischemia_without_st", - "description": "Ischemia without st-elevation", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0 - } - }, - { - "name": "electrocardiographs_ecg_type_of_rhythm", - "description": "Type of rhythm", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0, - "cardinality": 0, - "valueset": [], - "cardinalityPerItem": {} - } - }, - { - "name": "smoking_status_smoker_last", - "description": "Whether the patient is smoking currently. We check the last smoking status record and expect that it does not have an end date indicating that the patient is a current smoker", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "smoking_status_totalSmokingDuration_sum", - "description": "Total duration of smoking in days.", - "dataType": "NUMERIC", - "generatedDescription": [ - "sum of values", - "until that time point" - ], - "statistics": { - "Q1": 0, - "avg": 0.0, - "min": 0, - "Q2": 0, - "max": 0, - "Q3": 0, - "numOfNotNull": 3299 - } - }, - { - "name": "smoking_status_startTime_count", - "description": "Total number of smoking periods.", - "dataType": "NUMERIC", - "generatedDescription": [ - "number of values", - "until that time point" - ], - "statistics": { - "Q1": 0, - "avg": 0.0, - "min": 0, - "Q2": 0, - "max": 0, - "Q3": 0, - "numOfNotNull": 3299 - } - }, - { - "name": "smoking_status_formerSmoker_any", - "description": "Whether the patient smoked within 1 year prior to the admission.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "nyha_value", - "description": "New York Heart Assessment value", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0, - "cardinality": 0, - "valueset": [], - "cardinalityPerItem": {} - } - }, - { - "name": "hyperkalemia_severity_categorizedValue", - "description": "Severity of hyperkalemia", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 336, - "cardinality": 4, - "valueset": [ - "moderate", - "mild", - "severe", - "normal" - ], - "cardinalityPerItem": { - "mild": 22, - "moderate": 16, - "normal": 295, - "severe": 3 - } - } - }, - { - "name": "ckd_severity_categorizedValue", - "description": "Severity of chronic kidney disease", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 0, - "cardinality": 0, - "valueset": [], - "cardinalityPerItem": {} - } - }, - { - "name": "conditions_heartFailure_earliest_first", - "description": "ICD code representing the heart failure diagnosis observed for the first time.", - "dataType": "NOMINAL", - "generatedDescription": [ - "earliest value", - "until that time point" - ], - "statistics": { - "numOfNotNull": 561, - "cardinality": 1, - "valueset": [ - "I11.0" - ], - "cardinalityPerItem": { - "I11.0": 561 - } - } - }, - { - "name": "conditions_heartFailure_timeFromEarliest_first", - "description": "Time elapsed (in months) since heart failure is observed for the first time until the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "until that time point" - ], - "statistics": { - "Q1": 0, - "avg": 21.828432858441953, - "min": 0, - "Q2": 0, - "max": 264, - "Q3": 0, - "numOfNotNull": 3299 - } - }, - { - "name": "conditions_ap_any", - "description": "Whether the patient has angina pectoris in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 4 - } - }, - { - "name": "conditions_af_any", - "description": "Whether the patient has atrial fibrillation in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 301 - } - }, - { - "name": "conditions_cm_any", - "description": "Whether the patient has cardiomyopathy in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_dysl_any", - "description": "Whether the patient has dyslipidemia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 1054 - } - }, - { - "name": "conditions_hf_any", - "description": "Whether the patient has heart failure in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 561 - } - }, - { - "name": "conditions_hyp_any", - "description": "Whether the patient has hypertension in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 1395 - } - }, - { - "name": "conditions_ihd_any", - "description": "Whether the patient has ischemic heart disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 11 - } - }, - { - "name": "conditions_mi_any", - "description": "Whether the patient has myocardial infarction in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_pad_any", - "description": "Whether the patient has peripheral artery disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 672 - } - }, - { - "name": "conditions_stroke_any", - "description": "Whether the patient has stroke in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 323 - } - }, - { - "name": "conditions_tia_any", - "description": "Whether the patient has transient ischemic attack in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 83 - } - }, - { - "name": "conditions_vd_any", - "description": "Whether the patient has valvular disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 280 - } - }, - { - "name": "conditions_revasc_any", - "description": "Whether the patient has revascularized CABG, PCI in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_devices_any", - "description": "Whether the patient has cardiac and vascular implants and grafts in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 183 - } - }, - { - "name": "conditions_aidshiv_any", - "description": "Whether the patient has AIDS or HIV in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_copd_any", - "description": "Whether the patient has COPD in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 381 - } - }, - { - "name": "conditions_diabetes_any", - "description": "Whether the patient has diabetes mellitus in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 331 - } - }, - { - "name": "conditions_dem_any", - "description": "Whether the patient has dementia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_dep_any", - "description": "Whether the patient has depression in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_dia_any", - "description": "Whether the patient has dialysis in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 458 - } - }, - { - "name": "conditions_hthyroid_any", - "description": "Whether the patient has hyperthyroidism in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 529 - } - }, - { - "name": "conditions_ibd_any", - "description": "Whether the patient has inflammable bowel disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 2 - } - }, - { - "name": "conditions_ld_any", - "description": "Whether the patient has liver disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_mc_any", - "description": "Whether the patient has malignant cancer in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 516 - } - }, - { - "name": "conditions_osa_any", - "description": "Whether the patient has obstructive sleep apnea in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "conditions_rd_any", - "description": "Whether the patient has rheumatic disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 544 - } - }, - { - "name": "conditions_ckd_chronic_any", - "description": "Whether the patient has renal disease chronic in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 567 - } - }, - { - "name": "med_rasi_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for rasi (pivot value = 'rasi'--> Renin–angiotensin system inhibitor)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 12 - } - }, - { - "name": "med_arni_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for arni (pivot value = 'arni'--> Angiotensin receptor-neprilysin inhibitor (ARNi))", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_acei_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for acei (pivot value = 'acei'--> Angiotensin-converting enzyme (ACE)-inhibitors)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 8 - } - }, - { - "name": "med_arb_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for arb (pivot value = 'arb'--> Angiotensin receptor blocker (ARB) )", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 4 - } - }, - { - "name": "med_mra_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for mra (pivot value = 'mra'--> Mineralcorticoid receptor antagonist)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_diuretics_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for diuretics (pivot value = 'diuretics'--> Diuretics)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 3 - } - }, - { - "name": "med_diuretics_loop_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for diuretics_loop (pivot value = 'diuretics_loop'--> Loop diuretics)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 2 - } - }, - { - "name": "med_anti_coag_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for anti_coag (pivot value = 'anti_coag'--> Anticoagulant agents)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_anti_plat_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for anti_plat (pivot value = 'anti_plat'--> Antiplatelet agents)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_thrombolytic_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for thrombolytic (pivot value = 'thrombolytic'--> Thrombolytic drugs/fibrinolytics)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_bb_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for bb (pivot value = 'bb'--> beta blockers)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 3 - } - }, - { - "name": "med_ccb_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for ccb (pivot value = 'ccb'--> Calcium channel blockers)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 3 - } - }, - { - "name": "med_digitalis_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for digitalis (pivot value = 'digitalis'--> Digitalis glycosides)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 1 - } - }, - { - "name": "med_antiarrhytmic_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for antiarrhytmic (pivot value = 'antiarrhytmic'--> Anti-arrhythmic drugs)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_inotropes_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for inotropes (pivot value = 'inotropes'--> Inotropes)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_vasodil_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for vasodil (pivot value = 'vasodil'--> Casodilators)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_platelet_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for platelet (pivot value = 'platelet'--> Platelets)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 2 - } - }, - { - "name": "med_ll_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for ll (pivot value = 'll'--> Lipid lowering agents)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 6 - } - }, - { - "name": "med_ivabradine_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for ivabradine (pivot value = 'ivabradine'--> Ivabradine)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_potassium_binders_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for potassium_binders (pivot value = 'potassium_binders'--> Potassium binders)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_insulins_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for insulins (pivot value = 'insulins'--> Insulins and analogs)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_oral_antidiabetic_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for oral_antidiabetic (pivot value = 'oral_antidiabetic'--> Oral antidiabetics)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 3 - } - }, - { - "name": "med_ari_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for ari (pivot value = 'ari'--> Drugs to prevent nerve damage in diabetes)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_rdoad_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for rdoad (pivot value = 'rdoad'--> Respiratory drugs for obstructive airway diseases, inhalants)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 3 - } - }, - { - "name": "med_rdoad_syst_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for rdoad_syst (pivot value = 'rdoad_syst'--> Respiratory drugs for obstructive airway diseases, systemic use)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 1 - } - }, - { - "name": "med_cortico_syst_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for cortico_syst (pivot value = 'cortico_syst'--> Corticosteroids systemic)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 0 - } - }, - { - "name": "med_antiinfl_used_any", - "description": "Whether this medication therapy is given during hospital stay", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for antiinfl (pivot value = 'antiinfl'--> anti-inflammatory drugs)", - "if any true", - "until that time point" - ], - "statistics": { - "numOfNotNull": 43, - "numOfTrue": 12 - } - } - ], - "outcomes": [ - { - "name": "encounters_hosp_for_heart_failure_f_w7d_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w1mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w3mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w6mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w1a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w3a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_heart_failure_f_w5a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w7d_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w1mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w3mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w6mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w1a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w3a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_CV_disease_f_w5a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w7d_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w1mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w3mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w6mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w1a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w3a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_non_cv_disease_f_w5a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w7d_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w1mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w3mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w6mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w1a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w3a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "encounters_hosp_for_renal_complications_f_w5a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w7d_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w1mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w3mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w6mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w1a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w3a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isCardivascular_f_w5a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w7d_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w1mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w3mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w6mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w1a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w3a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isRenal_f_w5a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w7d_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w1mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w3mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w6mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w1a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w3a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_f_w5a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "statistics": { - "numOfNotNull": 3299, - "numOfTrue": 0 - } - } - ] - }, - "size": 3299 - } - ] -} \ No newline at end of file diff --git a/dataset/kaggle_hf.csv b/dataset/kaggle_hf.csv deleted file mode 100644 index 92df5c9..0000000 --- a/dataset/kaggle_hf.csv +++ /dev/null @@ -1,919 +0,0 @@ -Age,Sex,ChestPainType,RestingBP,Cholesterol,FastingBS,RestingECG,MaxHR,ExerciseAngina,Oldpeak,ST_Slope,HeartDisease,data_center -40,M,ATA,140,289,0,Normal,172,N,0.0,Up,0,hungarian -49,F,NAP,160,180,0,Normal,156,N,1.0,Flat,1,hungarian -37,M,ATA,130,283,0,ST,98,N,0.0,Up,0,hungarian -48,F,ASY,138,214,0,Normal,108,Y,1.5,Flat,1,hungarian -54,M,NAP,150,195,0,Normal,122,N,0.0,Up,0,hungarian -39,M,NAP,120,339,0,Normal,170,N,0.0,Up,0,hungarian -45,F,ATA,130,237,0,Normal,170,N,0.0,Up,0,hungarian -54,M,ATA,110,208,0,Normal,142,N,0.0,Up,0,hungarian -37,M,ASY,140,207,0,Normal,130,Y,1.5,Flat,1,hungarian -48,F,ATA,120,284,0,Normal,120,N,0.0,Up,0,hungarian -37,F,NAP,130,211,0,Normal,142,N,0.0,Up,0,hungarian -58,M,ATA,136,164,0,ST,99,Y,2.0,Flat,1,hungarian -39,M,ATA,120,204,0,Normal,145,N,0.0,Up,0,hungarian -49,M,ASY,140,234,0,Normal,140,Y,1.0,Flat,1,hungarian -42,F,NAP,115,211,0,ST,137,N,0.0,Up,0,hungarian -54,F,ATA,120,273,0,Normal,150,N,1.5,Flat,0,hungarian -38,M,ASY,110,196,0,Normal,166,N,0.0,Flat,1,hungarian -43,F,ATA,120,201,0,Normal,165,N,0.0,Up,0,hungarian -60,M,ASY,100,248,0,Normal,125,N,1.0,Flat,1,hungarian -36,M,ATA,120,267,0,Normal,160,N,3.0,Flat,1,hungarian -43,F,TA,100,223,0,Normal,142,N,0.0,Up,0,hungarian -44,M,ATA,120,184,0,Normal,142,N,1.0,Flat,0,hungarian -49,F,ATA,124,201,0,Normal,164,N,0.0,Up,0,hungarian -44,M,ATA,150,288,0,Normal,150,Y,3.0,Flat,1,hungarian -40,M,NAP,130,215,0,Normal,138,N,0.0,Up,0,hungarian -36,M,NAP,130,209,0,Normal,178,N,0.0,Up,0,hungarian -53,M,ASY,124,260,0,ST,112,Y,3.0,Flat,0,hungarian -52,M,ATA,120,284,0,Normal,118,N,0.0,Up,0,hungarian -53,F,ATA,113,468,0,Normal,127,N,0.0,Up,0,hungarian -51,M,ATA,125,188,0,Normal,145,N,0.0,Up,0,hungarian -53,M,NAP,145,518,0,Normal,130,N,0.0,Flat,1,hungarian -56,M,NAP,130,167,0,Normal,114,N,0.0,Up,0,hungarian -54,M,ASY,125,224,0,Normal,122,N,2.0,Flat,1,hungarian -41,M,ASY,130,172,0,ST,130,N,2.0,Flat,1,hungarian -43,F,ATA,150,186,0,Normal,154,N,0.0,Up,0,hungarian -32,M,ATA,125,254,0,Normal,155,N,0.0,Up,0,hungarian -65,M,ASY,140,306,1,Normal,87,Y,1.5,Flat,1,hungarian -41,F,ATA,110,250,0,ST,142,N,0.0,Up,0,hungarian -48,F,ATA,120,177,1,ST,148,N,0.0,Up,0,hungarian -48,F,ASY,150,227,0,Normal,130,Y,1.0,Flat,0,hungarian -54,F,ATA,150,230,0,Normal,130,N,0.0,Up,0,hungarian -54,F,NAP,130,294,0,ST,100,Y,0.0,Flat,1,hungarian -35,M,ATA,150,264,0,Normal,168,N,0.0,Up,0,hungarian -52,M,NAP,140,259,0,ST,170,N,0.0,Up,0,hungarian -43,M,ASY,120,175,0,Normal,120,Y,1.0,Flat,1,hungarian -59,M,NAP,130,318,0,Normal,120,Y,1.0,Flat,0,hungarian -37,M,ASY,120,223,0,Normal,168,N,0.0,Up,0,hungarian -50,M,ATA,140,216,0,Normal,170,N,0.0,Up,0,hungarian -36,M,NAP,112,340,0,Normal,184,N,1.0,Flat,0,hungarian -41,M,ASY,110,289,0,Normal,170,N,0.0,Flat,1,hungarian -50,M,ASY,130,233,0,Normal,121,Y,2.0,Flat,1,hungarian -47,F,ASY,120,205,0,Normal,98,Y,2.0,Flat,1,hungarian -45,M,ATA,140,224,1,Normal,122,N,0.0,Up,0,hungarian -41,F,ATA,130,245,0,Normal,150,N,0.0,Up,0,hungarian -52,F,ASY,130,180,0,Normal,140,Y,1.5,Flat,0,hungarian -51,F,ATA,160,194,0,Normal,170,N,0.0,Up,0,hungarian -31,M,ASY,120,270,0,Normal,153,Y,1.5,Flat,1,hungarian -58,M,NAP,130,213,0,ST,140,N,0.0,Flat,1,hungarian -54,M,ASY,150,365,0,ST,134,N,1.0,Up,0,hungarian -52,M,ASY,112,342,0,ST,96,Y,1.0,Flat,1,hungarian -49,M,ATA,100,253,0,Normal,174,N,0.0,Up,0,hungarian -43,F,NAP,150,254,0,Normal,175,N,0.0,Up,0,hungarian -45,M,ASY,140,224,0,Normal,144,N,0.0,Up,0,hungarian -46,M,ASY,120,277,0,Normal,125,Y,1.0,Flat,1,hungarian -50,F,ATA,110,202,0,Normal,145,N,0.0,Up,0,hungarian -37,F,ATA,120,260,0,Normal,130,N,0.0,Up,0,hungarian -45,F,ASY,132,297,0,Normal,144,N,0.0,Up,0,hungarian -32,M,ATA,110,225,0,Normal,184,N,0.0,Up,0,hungarian -52,M,ASY,160,246,0,ST,82,Y,4.0,Flat,1,hungarian -44,M,ASY,150,412,0,Normal,170,N,0.0,Up,0,hungarian -57,M,ATA,140,265,0,ST,145,Y,1.0,Flat,1,hungarian -44,M,ATA,130,215,0,Normal,135,N,0.0,Up,0,hungarian -52,M,ASY,120,182,0,Normal,150,N,0.0,Flat,1,hungarian -44,F,ASY,120,218,0,ST,115,N,0.0,Up,0,hungarian -55,M,ASY,140,268,0,Normal,128,Y,1.5,Flat,1,hungarian -46,M,NAP,150,163,0,Normal,116,N,0.0,Up,0,hungarian -32,M,ASY,118,529,0,Normal,130,N,0.0,Flat,1,hungarian -35,F,ASY,140,167,0,Normal,150,N,0.0,Up,0,hungarian -52,M,ATA,140,100,0,Normal,138,Y,0.0,Up,0,hungarian -49,M,ASY,130,206,0,Normal,170,N,0.0,Flat,1,hungarian -55,M,NAP,110,277,0,Normal,160,N,0.0,Up,0,hungarian -54,M,ATA,120,238,0,Normal,154,N,0.0,Up,0,hungarian -63,M,ASY,150,223,0,Normal,115,N,0.0,Flat,1,hungarian -52,M,ATA,160,196,0,Normal,165,N,0.0,Up,0,hungarian -56,M,ASY,150,213,1,Normal,125,Y,1.0,Flat,1,hungarian -66,M,ASY,140,139,0,Normal,94,Y,1.0,Flat,1,hungarian -65,M,ASY,170,263,1,Normal,112,Y,2.0,Flat,1,hungarian -53,F,ATA,140,216,0,Normal,142,Y,2.0,Flat,0,hungarian -43,M,TA,120,291,0,ST,155,N,0.0,Flat,1,hungarian -55,M,ASY,140,229,0,Normal,110,Y,0.5,Flat,0,hungarian -49,F,ATA,110,208,0,Normal,160,N,0.0,Up,0,hungarian -39,M,ASY,130,307,0,Normal,140,N,0.0,Up,0,hungarian -52,F,ATA,120,210,0,Normal,148,N,0.0,Up,0,hungarian -48,M,ASY,160,329,0,Normal,92,Y,1.5,Flat,1,hungarian -39,F,NAP,110,182,0,ST,180,N,0.0,Up,0,hungarian -58,M,ASY,130,263,0,Normal,140,Y,2.0,Flat,1,hungarian -43,M,ATA,142,207,0,Normal,138,N,0.0,Up,0,hungarian -39,M,NAP,160,147,1,Normal,160,N,0.0,Up,0,hungarian -56,M,ASY,120,85,0,Normal,140,N,0.0,Up,0,hungarian -41,M,ATA,125,269,0,Normal,144,N,0.0,Up,0,hungarian -65,M,ASY,130,275,0,ST,115,Y,1.0,Flat,1,hungarian -51,M,ASY,130,179,0,Normal,100,N,0.0,Up,0,hungarian -40,F,ASY,150,392,0,Normal,130,N,2.0,Flat,1,hungarian -40,M,ASY,120,466,1,Normal,152,Y,1.0,Flat,1,hungarian -46,M,ASY,118,186,0,Normal,124,N,0.0,Flat,1,hungarian -57,M,ATA,140,260,1,Normal,140,N,0.0,Up,0,hungarian -48,F,ASY,120,254,0,ST,110,N,0.0,Up,0,hungarian -34,M,ATA,150,214,0,ST,168,N,0.0,Up,0,hungarian -50,M,ASY,140,129,0,Normal,135,N,0.0,Up,0,hungarian -39,M,ATA,190,241,0,Normal,106,N,0.0,Up,0,hungarian -59,F,ATA,130,188,0,Normal,124,N,1.0,Flat,0,hungarian -57,M,ASY,150,255,0,Normal,92,Y,3.0,Flat,1,hungarian -47,M,ASY,140,276,1,Normal,125,Y,0.0,Up,0,hungarian -38,M,ATA,140,297,0,Normal,150,N,0.0,Up,0,hungarian -49,F,NAP,130,207,0,ST,135,N,0.0,Up,0,hungarian -33,F,ASY,100,246,0,Normal,150,Y,1.0,Flat,1,hungarian -38,M,ASY,120,282,0,Normal,170,N,0.0,Flat,1,hungarian -59,F,ASY,130,338,1,ST,130,Y,1.5,Flat,1,hungarian -35,F,TA,120,160,0,ST,185,N,0.0,Up,0,hungarian -34,M,TA,140,156,0,Normal,180,N,0.0,Flat,1,hungarian -47,F,NAP,135,248,1,Normal,170,N,0.0,Flat,1,hungarian -52,F,NAP,125,272,0,Normal,139,N,0.0,Up,0,hungarian -46,M,ASY,110,240,0,ST,140,N,0.0,Up,0,hungarian -58,F,ATA,180,393,0,Normal,110,Y,1.0,Flat,1,hungarian -58,M,ATA,130,230,0,Normal,150,N,0.0,Up,0,hungarian -54,M,ATA,120,246,0,Normal,110,N,0.0,Up,0,hungarian -34,F,ATA,130,161,0,Normal,190,N,0.0,Up,0,hungarian -48,F,ASY,108,163,0,Normal,175,N,2.0,Up,0,hungarian -54,F,ATA,120,230,1,Normal,140,N,0.0,Up,0,hungarian -42,M,NAP,120,228,0,Normal,152,Y,1.5,Flat,0,hungarian -38,M,NAP,145,292,0,Normal,130,N,0.0,Up,0,hungarian -46,M,ASY,110,202,0,Normal,150,Y,0.0,Flat,1,hungarian -56,M,ASY,170,388,0,ST,122,Y,2.0,Flat,1,hungarian -56,M,ASY,150,230,0,ST,124,Y,1.5,Flat,1,hungarian -61,F,ASY,130,294,0,ST,120,Y,1.0,Flat,0,hungarian -49,M,NAP,115,265,0,Normal,175,N,0.0,Flat,1,hungarian -43,F,ATA,120,215,0,ST,175,N,0.0,Up,0,hungarian -39,M,ATA,120,241,0,ST,146,N,2.0,Up,0,hungarian -54,M,ASY,140,166,0,Normal,118,Y,0.0,Flat,1,hungarian -43,M,ASY,150,247,0,Normal,130,Y,2.0,Flat,1,hungarian -52,M,ASY,160,331,0,Normal,94,Y,2.5,Flat,1,hungarian -50,M,ASY,140,341,0,ST,125,Y,2.5,Flat,1,hungarian -47,M,ASY,160,291,0,ST,158,Y,3.0,Flat,1,hungarian -53,M,ASY,140,243,0,Normal,155,N,0.0,Up,0,hungarian -56,F,ATA,120,279,0,Normal,150,N,1.0,Flat,1,hungarian -39,M,ASY,110,273,0,Normal,132,N,0.0,Up,0,hungarian -42,M,ATA,120,198,0,Normal,155,N,0.0,Up,0,hungarian -43,F,ATA,120,249,0,ST,176,N,0.0,Up,0,hungarian -50,M,ATA,120,168,0,Normal,160,N,0.0,Up,0,hungarian -54,M,ASY,130,603,1,Normal,125,Y,1.0,Flat,1,hungarian -39,M,ATA,130,215,0,Normal,120,N,0.0,Up,0,hungarian -48,M,ATA,100,159,0,Normal,100,N,0.0,Up,0,hungarian -40,M,ATA,130,275,0,Normal,150,N,0.0,Up,0,hungarian -55,M,ASY,120,270,0,Normal,140,N,0.0,Up,0,hungarian -41,M,ATA,120,291,0,ST,160,N,0.0,Up,0,hungarian -56,M,ASY,155,342,1,Normal,150,Y,3.0,Flat,1,hungarian -38,M,ASY,110,190,0,Normal,150,Y,1.0,Flat,1,hungarian -49,M,ASY,140,185,0,Normal,130,N,0.0,Up,0,hungarian -44,M,ASY,130,290,0,Normal,100,Y,2.0,Flat,1,hungarian -54,M,ATA,160,195,0,ST,130,N,1.0,Up,0,hungarian -59,M,ASY,140,264,1,LVH,119,Y,0.0,Flat,1,hungarian -49,M,ASY,128,212,0,Normal,96,Y,0.0,Flat,1,hungarian -47,M,ATA,160,263,0,Normal,174,N,0.0,Up,0,hungarian -42,M,ATA,120,196,0,Normal,150,N,0.0,Up,0,hungarian -52,F,ATA,140,225,0,Normal,140,N,0.0,Up,0,hungarian -46,M,TA,140,272,1,Normal,175,N,2.0,Flat,1,hungarian -50,M,ASY,140,231,0,ST,140,Y,5.0,Flat,1,hungarian -48,M,ATA,140,238,0,Normal,118,N,0.0,Up,0,hungarian -58,M,ASY,135,222,0,Normal,100,N,0.0,Up,0,hungarian -58,M,NAP,140,179,0,Normal,160,N,0.0,Up,0,hungarian -29,M,ATA,120,243,0,Normal,160,N,0.0,Up,0,hungarian -40,M,NAP,140,235,0,Normal,188,N,0.0,Up,0,hungarian -53,M,ATA,140,320,0,Normal,162,N,0.0,Up,0,hungarian -49,M,NAP,140,187,0,Normal,172,N,0.0,Up,0,hungarian -52,M,ASY,140,266,0,Normal,134,Y,2.0,Flat,1,hungarian -43,M,ASY,140,288,0,Normal,135,Y,2.0,Flat,1,hungarian -54,M,ASY,140,216,0,Normal,105,N,1.5,Flat,1,hungarian -59,M,ATA,140,287,0,Normal,150,N,0.0,Up,0,hungarian -37,M,NAP,130,194,0,Normal,150,N,0.0,Up,0,hungarian -46,F,ASY,130,238,0,Normal,90,N,0.0,Up,0,hungarian -52,M,ASY,130,225,0,Normal,120,Y,2.0,Flat,1,hungarian -51,M,ATA,130,224,0,Normal,150,N,0.0,Up,0,hungarian -52,M,ASY,140,404,0,Normal,124,Y,2.0,Flat,1,hungarian -46,M,ASY,110,238,0,ST,140,Y,1.0,Flat,0,hungarian -54,F,ATA,160,312,0,Normal,130,N,0.0,Up,0,hungarian -58,M,NAP,160,211,1,ST,92,N,0.0,Flat,1,hungarian -58,M,ATA,130,251,0,Normal,110,N,0.0,Up,0,hungarian -41,M,ASY,120,237,1,Normal,138,Y,1.0,Flat,1,hungarian -50,F,ASY,120,328,0,Normal,110,Y,1.0,Flat,0,hungarian -53,M,ASY,180,285,0,ST,120,Y,1.5,Flat,1,hungarian -46,M,ASY,180,280,0,ST,120,N,0.0,Up,0,hungarian -50,M,ATA,170,209,0,ST,116,N,0.0,Up,0,hungarian -48,M,ATA,130,245,0,Normal,160,N,0.0,Up,0,hungarian -45,M,NAP,135,192,0,Normal,110,N,0.0,Up,0,hungarian -41,F,ATA,125,184,0,Normal,180,N,0.0,Up,0,hungarian -62,F,TA,160,193,0,Normal,116,N,0.0,Up,0,hungarian -49,M,ASY,120,297,0,Normal,132,N,1.0,Flat,0,hungarian -42,M,ATA,150,268,0,Normal,136,N,0.0,Up,0,hungarian -53,M,ASY,120,246,0,Normal,116,Y,0.0,Flat,1,hungarian -57,F,TA,130,308,0,Normal,98,N,1.0,Flat,0,hungarian -47,M,TA,110,249,0,Normal,150,N,0.0,Up,0,hungarian -46,M,NAP,120,230,0,Normal,150,N,0.0,Up,0,hungarian -42,M,NAP,160,147,0,Normal,146,N,0.0,Up,0,hungarian -31,F,ATA,100,219,0,ST,150,N,0.0,Up,0,hungarian -56,M,ATA,130,184,0,Normal,100,N,0.0,Up,0,hungarian -50,M,ASY,150,215,0,Normal,140,Y,0.0,Up,0,hungarian -35,M,ATA,120,308,0,LVH,180,N,0.0,Up,0,hungarian -35,M,ATA,110,257,0,Normal,140,N,0.0,Flat,1,hungarian -28,M,ATA,130,132,0,LVH,185,N,0.0,Up,0,hungarian -54,M,ASY,125,216,0,Normal,140,N,0.0,Flat,1,hungarian -48,M,ASY,106,263,1,Normal,110,N,0.0,Flat,1,hungarian -50,F,NAP,140,288,0,Normal,140,Y,0.0,Flat,1,hungarian -56,M,NAP,130,276,0,Normal,128,Y,1.0,Up,0,hungarian -56,F,NAP,130,219,0,ST,164,N,0.0,Up,0,hungarian -47,M,ASY,150,226,0,Normal,98,Y,1.5,Flat,1,hungarian -30,F,TA,170,237,0,ST,170,N,0.0,Up,0,hungarian -39,M,ASY,110,280,0,Normal,150,N,0.0,Flat,1,hungarian -54,M,NAP,120,217,0,Normal,137,N,0.0,Up,0,hungarian -55,M,ATA,140,196,0,Normal,150,N,0.0,Up,0,hungarian -29,M,ATA,140,263,0,Normal,170,N,0.0,Up,0,hungarian -46,M,ASY,130,222,0,Normal,112,N,0.0,Flat,1,hungarian -51,F,ASY,160,303,0,Normal,150,Y,1.0,Flat,1,hungarian -48,F,NAP,120,195,0,Normal,125,N,0.0,Up,0,hungarian -33,M,NAP,120,298,0,Normal,185,N,0.0,Up,0,hungarian -55,M,ATA,120,256,1,Normal,137,N,0.0,Up,0,hungarian -50,M,ASY,145,264,0,Normal,150,N,0.0,Flat,1,hungarian -53,M,NAP,120,195,0,Normal,140,N,0.0,Up,0,hungarian -38,M,ASY,92,117,0,Normal,134,Y,2.5,Flat,1,hungarian -41,M,ATA,120,295,0,Normal,170,N,0.0,Up,0,hungarian -37,F,ASY,130,173,0,ST,184,N,0.0,Up,0,hungarian -37,M,ASY,130,315,0,Normal,158,N,0.0,Up,0,hungarian -40,M,NAP,130,281,0,Normal,167,N,0.0,Up,0,hungarian -38,F,ATA,120,275,0,Normal,129,N,0.0,Up,0,hungarian -41,M,ASY,112,250,0,Normal,142,N,0.0,Up,0,hungarian -54,F,ATA,140,309,0,ST,140,N,0.0,Up,0,hungarian -39,M,ATA,120,200,0,Normal,160,Y,1.0,Flat,0,hungarian -41,M,ASY,120,336,0,Normal,118,Y,3.0,Flat,1,hungarian -55,M,TA,140,295,0,Normal,136,N,0.0,Flat,1,hungarian -48,M,ASY,160,355,0,Normal,99,Y,2.0,Flat,1,hungarian -48,M,ASY,160,193,0,Normal,102,Y,3.0,Flat,1,hungarian -55,M,ATA,145,326,0,Normal,155,N,0.0,Up,0,hungarian -54,M,ASY,200,198,0,Normal,142,Y,2.0,Flat,1,hungarian -55,M,ATA,160,292,1,Normal,143,Y,2.0,Flat,1,hungarian -43,F,ATA,120,266,0,Normal,118,N,0.0,Up,0,hungarian -48,M,ASY,160,268,0,Normal,103,Y,1.0,Flat,1,hungarian -54,M,TA,120,171,0,Normal,137,N,2.0,Up,0,hungarian -54,M,NAP,120,237,0,Normal,150,Y,1.5,Flat,1,hungarian -48,M,ASY,122,275,1,ST,150,Y,2.0,Down,1,hungarian -45,M,ASY,130,219,0,ST,130,Y,1.0,Flat,1,hungarian -49,M,ASY,130,341,0,Normal,120,Y,1.0,Flat,1,hungarian -44,M,ASY,135,491,0,Normal,135,N,0.0,Flat,1,hungarian -48,M,ASY,120,260,0,Normal,115,N,2.0,Flat,1,hungarian -61,M,ASY,125,292,0,ST,115,Y,0.0,Up,0,hungarian -62,M,ATA,140,271,0,Normal,152,N,1.0,Up,0,hungarian -55,M,ASY,145,248,0,Normal,96,Y,2.0,Flat,1,hungarian -53,F,NAP,120,274,0,Normal,130,N,0.0,Up,0,hungarian -55,F,ATA,130,394,0,LVH,150,N,0.0,Up,0,hungarian -36,M,NAP,150,160,0,Normal,172,N,0.0,Up,0,hungarian -51,F,NAP,150,200,0,Normal,120,N,0.5,Up,0,hungarian -55,F,ATA,122,320,0,Normal,155,N,0.0,Up,0,hungarian -46,M,ATA,140,275,0,Normal,165,Y,0.0,Up,0,hungarian -54,F,ATA,120,221,0,Normal,138,N,1.0,Up,0,hungarian -46,M,ASY,120,231,0,Normal,115,Y,0.0,Flat,1,hungarian -59,M,ASY,130,126,0,Normal,125,N,0.0,Flat,1,hungarian -47,M,NAP,140,193,0,Normal,145,Y,1.0,Flat,1,hungarian -54,M,ATA,160,305,0,Normal,175,N,0.0,Up,0,hungarian -52,M,ASY,130,298,0,Normal,110,Y,1.0,Flat,1,hungarian -34,M,ATA,98,220,0,Normal,150,N,0.0,Up,0,hungarian -54,M,ASY,130,242,0,Normal,91,Y,1.0,Flat,1,hungarian -47,F,NAP,130,235,0,Normal,145,N,2.0,Flat,0,hungarian -45,M,ASY,120,225,0,Normal,140,N,0.0,Up,0,hungarian -32,F,ATA,105,198,0,Normal,165,N,0.0,Up,0,hungarian -55,M,ASY,140,201,0,Normal,130,Y,3.0,Flat,1,hungarian -55,M,NAP,120,220,0,LVH,134,N,0.0,Up,0,hungarian -45,F,ATA,180,295,0,Normal,180,N,0.0,Up,0,hungarian -59,M,NAP,180,213,0,Normal,100,N,0.0,Up,0,hungarian -51,M,NAP,135,160,0,Normal,150,N,2.0,Flat,1,hungarian -52,M,ASY,170,223,0,Normal,126,Y,1.5,Flat,1,hungarian -57,F,ASY,180,347,0,ST,126,Y,0.8,Flat,0,hungarian -54,F,ATA,130,253,0,ST,155,N,0.0,Up,0,hungarian -60,M,NAP,120,246,0,LVH,135,N,0.0,Up,0,hungarian -49,M,ASY,150,222,0,Normal,122,N,2.0,Flat,1,hungarian -51,F,NAP,130,220,0,Normal,160,Y,2.0,Up,0,hungarian -55,F,ATA,110,344,0,ST,160,N,0.0,Up,0,hungarian -42,M,ASY,140,358,0,Normal,170,N,0.0,Up,0,hungarian -51,F,NAP,110,190,0,Normal,120,N,0.0,Up,0,hungarian -59,M,ASY,140,169,0,Normal,140,N,0.0,Up,0,hungarian -53,M,ATA,120,181,0,Normal,132,N,0.0,Up,0,hungarian -48,F,ATA,133,308,0,ST,156,N,2.0,Up,0,hungarian -36,M,ATA,120,166,0,Normal,180,N,0.0,Up,0,hungarian -48,M,NAP,110,211,0,Normal,138,N,0.0,Up,0,hungarian -47,F,ATA,140,257,0,Normal,135,N,1.0,Up,0,hungarian -53,M,ASY,130,182,0,Normal,148,N,0.0,Up,0,hungarian -65,M,ASY,115,0,0,Normal,93,Y,0.0,Flat,1,switzerland -32,M,TA,95,0,1,Normal,127,N,0.7,Up,1,switzerland -61,M,ASY,105,0,1,Normal,110,Y,1.5,Up,1,switzerland -50,M,ASY,145,0,1,Normal,139,Y,0.7,Flat,1,switzerland -57,M,ASY,110,0,1,ST,131,Y,1.4,Up,1,switzerland -51,M,ASY,110,0,1,Normal,92,N,0.0,Flat,1,switzerland -47,M,ASY,110,0,1,ST,149,N,2.1,Up,1,switzerland -60,M,ASY,160,0,1,Normal,149,N,0.4,Flat,1,switzerland -55,M,ATA,140,0,0,ST,150,N,0.2,Up,0,switzerland -53,M,ASY,125,0,1,Normal,120,N,1.5,Up,1,switzerland -62,F,ASY,120,0,1,ST,123,Y,1.7,Down,1,switzerland -51,M,ASY,95,0,1,Normal,126,N,2.2,Flat,1,switzerland -51,F,ASY,120,0,1,Normal,127,Y,1.5,Up,1,switzerland -55,M,ASY,115,0,1,Normal,155,N,0.1,Flat,1,switzerland -53,M,ATA,130,0,0,ST,120,N,0.7,Down,0,switzerland -58,M,ASY,115,0,1,Normal,138,N,0.5,Up,1,switzerland -57,M,ASY,95,0,1,Normal,182,N,0.7,Down,1,switzerland -65,M,ASY,155,0,0,Normal,154,N,1.0,Up,0,switzerland -60,M,ASY,125,0,1,Normal,110,N,0.1,Up,1,switzerland -41,M,ASY,125,0,1,Normal,176,N,1.6,Up,1,switzerland -34,M,ASY,115,0,1,Normal,154,N,0.2,Up,1,switzerland -53,M,ASY,80,0,0,Normal,141,Y,2.0,Down,0,switzerland -74,M,ATA,145,0,1,ST,123,N,1.3,Up,1,switzerland -57,M,NAP,105,0,1,Normal,148,N,0.3,Flat,1,switzerland -56,M,ASY,140,0,1,Normal,121,Y,1.8,Up,1,switzerland -61,M,ASY,130,0,1,Normal,77,N,2.5,Flat,1,switzerland -68,M,ASY,145,0,1,Normal,136,N,1.8,Up,1,switzerland -59,M,NAP,125,0,1,Normal,175,N,2.6,Flat,1,switzerland -63,M,ASY,100,0,1,Normal,109,N,-0.9,Flat,1,switzerland -38,F,ASY,105,0,1,Normal,166,N,2.8,Up,1,switzerland -62,M,ASY,115,0,1,Normal,128,Y,2.5,Down,1,switzerland -46,M,ASY,100,0,1,ST,133,N,-2.6,Flat,1,switzerland -42,M,ASY,105,0,1,Normal,128,Y,-1.5,Down,1,switzerland -45,M,NAP,110,0,0,Normal,138,N,-0.1,Up,0,switzerland -59,M,ASY,125,0,1,Normal,119,Y,0.9,Up,1,switzerland -52,M,ASY,95,0,1,Normal,82,Y,0.8,Flat,1,switzerland -60,M,ASY,130,0,1,ST,130,Y,1.1,Down,1,switzerland -60,M,NAP,115,0,1,Normal,143,N,2.4,Up,1,switzerland -56,M,ASY,115,0,1,ST,82,N,-1.0,Up,1,switzerland -38,M,NAP,100,0,0,Normal,179,N,-1.1,Up,0,switzerland -40,M,ASY,95,0,1,ST,144,N,0.0,Up,1,switzerland -51,M,ASY,130,0,1,Normal,170,N,-0.7,Up,1,switzerland -62,M,TA,120,0,1,LVH,134,N,-0.8,Flat,1,switzerland -72,M,NAP,160,0,0,LVH,114,N,1.6,Flat,0,switzerland -63,M,ASY,150,0,1,ST,154,N,3.7,Up,1,switzerland -63,M,ASY,140,0,1,LVH,149,N,2.0,Up,1,switzerland -64,F,ASY,95,0,1,Normal,145,N,1.1,Down,1,switzerland -43,M,ASY,100,0,1,Normal,122,N,1.5,Down,1,switzerland -64,M,ASY,110,0,1,Normal,114,Y,1.3,Down,1,switzerland -61,M,ASY,110,0,1,Normal,113,N,1.4,Flat,1,switzerland -52,M,ASY,130,0,1,Normal,120,N,0.0,Flat,1,switzerland -51,M,ASY,120,0,1,Normal,104,N,0.0,Flat,1,switzerland -69,M,ASY,135,0,0,Normal,130,N,0.0,Flat,1,switzerland -59,M,ASY,120,0,0,Normal,115,N,0.0,Flat,1,switzerland -48,M,ASY,115,0,1,Normal,128,N,0.0,Flat,1,switzerland -69,M,ASY,137,0,0,ST,104,Y,1.6,Flat,1,switzerland -36,M,ASY,110,0,1,Normal,125,Y,1.0,Flat,1,switzerland -53,M,ASY,120,0,1,Normal,120,N,0.0,Flat,1,switzerland -43,M,ASY,140,0,0,ST,140,Y,0.5,Up,1,switzerland -56,M,ASY,120,0,0,ST,100,Y,-1.0,Down,1,switzerland -58,M,ASY,130,0,0,ST,100,Y,1.0,Flat,1,switzerland -55,M,ASY,120,0,0,ST,92,N,0.3,Up,1,switzerland -67,M,TA,145,0,0,LVH,125,N,0.0,Flat,1,switzerland -46,M,ASY,115,0,0,Normal,113,Y,1.5,Flat,1,switzerland -53,M,ATA,120,0,0,Normal,95,N,0.0,Flat,1,switzerland -38,M,NAP,115,0,0,Normal,128,Y,0.0,Flat,1,switzerland -53,M,NAP,105,0,0,Normal,115,N,0.0,Flat,1,switzerland -62,M,NAP,160,0,0,Normal,72,Y,0.0,Flat,1,switzerland -47,M,ASY,160,0,0,Normal,124,Y,0.0,Flat,1,switzerland -56,M,NAP,155,0,0,ST,99,N,0.0,Flat,1,switzerland -56,M,ASY,120,0,0,ST,148,N,0.0,Flat,1,switzerland -56,M,NAP,120,0,0,Normal,97,N,0.0,Flat,0,switzerland -64,F,ASY,200,0,0,Normal,140,Y,1.0,Flat,1,switzerland -61,M,ASY,150,0,0,Normal,117,Y,2.0,Flat,1,switzerland -68,M,ASY,135,0,0,ST,120,Y,0.0,Up,1,switzerland -57,M,ASY,140,0,0,Normal,120,Y,2.0,Flat,1,switzerland -63,M,ASY,150,0,0,Normal,86,Y,2.0,Flat,1,switzerland -60,M,ASY,135,0,0,Normal,63,Y,0.5,Up,1,switzerland -66,M,ASY,150,0,0,Normal,108,Y,2.0,Flat,1,switzerland -63,M,ASY,185,0,0,Normal,98,Y,0.0,Up,1,switzerland -59,M,ASY,135,0,0,Normal,115,Y,1.0,Flat,1,switzerland -61,M,ASY,125,0,0,Normal,105,Y,0.0,Down,1,switzerland -73,F,NAP,160,0,0,ST,121,N,0.0,Up,1,switzerland -47,M,NAP,155,0,0,Normal,118,Y,1.0,Flat,1,switzerland -65,M,ASY,160,0,1,ST,122,N,1.2,Flat,1,switzerland -70,M,ASY,140,0,1,Normal,157,Y,2.0,Flat,1,switzerland -50,M,ASY,120,0,0,ST,156,Y,0.0,Up,1,switzerland -60,M,ASY,160,0,0,ST,99,Y,0.5,Flat,1,switzerland -50,M,ASY,115,0,0,Normal,120,Y,0.5,Flat,1,switzerland -43,M,ASY,115,0,0,Normal,145,Y,2.0,Flat,1,switzerland -38,F,ASY,110,0,0,Normal,156,N,0.0,Flat,1,switzerland -54,M,ASY,120,0,0,Normal,155,N,0.0,Flat,1,switzerland -61,M,ASY,150,0,0,Normal,105,Y,0.0,Flat,1,switzerland -42,M,ASY,145,0,0,Normal,99,Y,0.0,Flat,1,switzerland -53,M,ASY,130,0,0,LVH,135,Y,1.0,Flat,1,switzerland -55,M,ASY,140,0,0,Normal,83,N,0.0,Flat,1,switzerland -61,M,ASY,160,0,1,ST,145,N,1.0,Flat,1,switzerland -51,M,ASY,140,0,0,Normal,60,N,0.0,Flat,1,switzerland -70,M,ASY,115,0,0,ST,92,Y,0.0,Flat,1,switzerland -61,M,ASY,130,0,0,LVH,115,N,0.0,Flat,1,switzerland -38,M,ASY,150,0,1,Normal,120,Y,0.7,Flat,1,switzerland -57,M,ASY,160,0,1,Normal,98,Y,2.0,Flat,1,switzerland -38,M,ASY,135,0,1,Normal,150,N,0.0,Flat,1,switzerland -62,F,TA,140,0,1,Normal,143,N,0.0,Flat,1,switzerland -58,M,ASY,170,0,1,ST,105,Y,0.0,Flat,1,switzerland -52,M,ASY,165,0,1,Normal,122,Y,1.0,Up,1,switzerland -61,M,NAP,200,0,1,ST,70,N,0.0,Flat,1,switzerland -50,F,ASY,160,0,1,Normal,110,N,0.0,Flat,1,switzerland -51,M,ASY,130,0,1,ST,163,N,0.0,Flat,1,switzerland -65,M,ASY,145,0,1,ST,67,N,0.7,Flat,1,switzerland -52,M,ASY,135,0,1,Normal,128,Y,2.0,Flat,1,switzerland -47,M,NAP,110,0,1,Normal,120,Y,0.0,Flat,1,switzerland -35,M,ASY,120,0,1,Normal,130,Y,1.2,Flat,1,switzerland -57,M,ASY,140,0,1,Normal,100,Y,0.0,Flat,1,switzerland -62,M,ASY,115,0,1,Normal,72,Y,-0.5,Flat,1,switzerland -59,M,ASY,110,0,1,Normal,94,N,0.0,Flat,1,switzerland -53,M,NAP,160,0,1,LVH,122,Y,0.0,Flat,1,switzerland -62,M,ASY,150,0,1,ST,78,N,2.0,Flat,1,switzerland -54,M,ASY,180,0,1,Normal,150,N,1.5,Flat,1,switzerland -56,M,ASY,125,0,1,Normal,103,Y,1.0,Flat,1,switzerland -56,M,NAP,125,0,1,Normal,98,N,-2.0,Flat,1,switzerland -54,M,ASY,130,0,1,Normal,110,Y,3.0,Flat,1,switzerland -66,F,ASY,155,0,1,Normal,90,N,0.0,Flat,1,switzerland -63,M,ASY,140,260,0,ST,112,Y,3.0,Flat,1,va -44,M,ASY,130,209,0,ST,127,N,0.0,Up,0,va -60,M,ASY,132,218,0,ST,140,Y,1.5,Down,1,va -55,M,ASY,142,228,0,ST,149,Y,2.5,Up,1,va -66,M,NAP,110,213,1,LVH,99,Y,1.3,Flat,0,va -66,M,NAP,120,0,0,ST,120,N,-0.5,Up,0,va -65,M,ASY,150,236,1,ST,105,Y,0.0,Flat,1,va -60,M,NAP,180,0,0,ST,140,Y,1.5,Flat,0,va -60,M,NAP,120,0,1,Normal,141,Y,2.0,Up,1,va -60,M,ATA,160,267,1,ST,157,N,0.5,Flat,1,va -56,M,ATA,126,166,0,ST,140,N,0.0,Up,0,va -59,M,ASY,140,0,0,ST,117,Y,1.0,Flat,1,va -62,M,ASY,110,0,0,Normal,120,Y,0.5,Flat,1,va -63,M,NAP,133,0,0,LVH,120,Y,1.0,Flat,1,va -57,M,ASY,128,0,1,ST,148,Y,1.0,Flat,1,va -62,M,ASY,120,220,0,ST,86,N,0.0,Up,0,va -63,M,ASY,170,177,0,Normal,84,Y,2.5,Down,1,va -46,M,ASY,110,236,0,Normal,125,Y,2.0,Flat,1,va -63,M,ASY,126,0,0,ST,120,N,1.5,Down,0,va -60,M,ASY,152,0,0,ST,118,Y,0.0,Up,0,va -58,M,ASY,116,0,0,Normal,124,N,1.0,Up,1,va -64,M,ASY,120,0,1,ST,106,N,2.0,Flat,1,va -63,M,NAP,130,0,0,ST,111,Y,0.0,Flat,1,va -74,M,NAP,138,0,0,Normal,116,N,0.2,Up,0,va -52,M,NAP,128,0,0,ST,180,N,3.0,Up,1,va -69,M,ASY,130,0,1,ST,129,N,1.0,Flat,1,va -51,M,ASY,128,0,1,ST,125,Y,1.2,Flat,1,va -60,M,ASY,130,186,1,ST,140,Y,0.5,Flat,1,va -56,M,ASY,120,100,0,Normal,120,Y,1.5,Flat,1,va -55,M,NAP,136,228,0,ST,124,Y,1.6,Flat,1,va -54,M,ASY,130,0,0,ST,117,Y,1.4,Flat,1,va -77,M,ASY,124,171,0,ST,110,Y,2.0,Up,1,va -63,M,ASY,160,230,1,Normal,105,Y,1.0,Flat,1,va -55,M,NAP,0,0,0,Normal,155,N,1.5,Flat,1,va -52,M,NAP,122,0,0,Normal,110,Y,2.0,Down,1,va -64,M,ASY,144,0,0,ST,122,Y,1.0,Flat,1,va -60,M,ASY,140,281,0,ST,118,Y,1.5,Flat,1,va -60,M,ASY,120,0,0,Normal,133,Y,2.0,Up,0,va -58,M,ASY,136,203,1,Normal,123,Y,1.2,Flat,1,va -59,M,ASY,154,0,0,ST,131,Y,1.5,Up,0,va -61,M,NAP,120,0,0,Normal,80,Y,0.0,Flat,1,va -40,M,ASY,125,0,1,Normal,165,N,0.0,Flat,1,va -61,M,ASY,134,0,1,ST,86,N,1.5,Flat,1,va -41,M,ASY,104,0,0,ST,111,N,0.0,Up,0,va -57,M,ASY,139,277,1,ST,118,Y,1.9,Flat,1,va -63,M,ASY,136,0,0,Normal,84,Y,0.0,Flat,1,va -59,M,ASY,122,233,0,Normal,117,Y,1.3,Down,1,va -51,M,ASY,128,0,0,Normal,107,N,0.0,Up,0,va -59,M,NAP,131,0,0,Normal,128,Y,2.0,Down,1,va -42,M,NAP,134,240,0,Normal,160,N,0.0,Up,0,va -55,M,NAP,120,0,0,ST,125,Y,2.5,Flat,1,va -63,F,ATA,132,0,0,Normal,130,N,0.1,Up,0,va -62,M,ASY,152,153,0,ST,97,Y,1.6,Up,1,va -56,M,ATA,124,224,1,Normal,161,N,2.0,Flat,0,va -53,M,ASY,126,0,0,Normal,106,N,0.0,Flat,1,va -68,M,ASY,138,0,0,Normal,130,Y,3.0,Flat,1,va -53,M,ASY,154,0,1,ST,140,Y,1.5,Flat,1,va -60,M,NAP,141,316,1,ST,122,Y,1.7,Flat,1,va -62,M,ATA,131,0,0,Normal,130,N,0.1,Up,0,va -59,M,ASY,178,0,1,LVH,120,Y,0.0,Flat,1,va -51,M,ASY,132,218,1,LVH,139,N,0.1,Up,0,va -61,M,ASY,110,0,1,Normal,108,Y,2.0,Down,1,va -57,M,ASY,130,311,1,ST,148,Y,2.0,Flat,1,va -56,M,NAP,170,0,0,LVH,123,Y,2.5,Flat,1,va -58,M,ATA,126,0,1,Normal,110,Y,2.0,Flat,1,va -69,M,NAP,140,0,1,ST,118,N,2.5,Down,1,va -67,M,TA,142,270,1,Normal,125,N,2.5,Up,1,va -58,M,ASY,120,0,0,LVH,106,Y,1.5,Down,1,va -65,M,ASY,134,0,0,Normal,112,Y,1.1,Flat,1,va -63,M,ATA,139,217,1,ST,128,Y,1.2,Flat,1,va -55,M,ATA,110,214,1,ST,180,N,0.4,Up,0,va -57,M,ASY,140,214,0,ST,144,Y,2.0,Flat,1,va -65,M,TA,140,252,0,Normal,135,N,0.3,Up,0,va -54,M,ASY,136,220,0,Normal,140,Y,3.0,Flat,1,va -72,M,NAP,120,214,0,Normal,102,Y,1.0,Flat,1,va -75,M,ASY,170,203,1,ST,108,N,0.0,Flat,1,va -49,M,TA,130,0,0,ST,145,N,3.0,Flat,1,va -51,M,NAP,137,339,0,Normal,127,Y,1.7,Flat,1,va -60,M,ASY,142,216,0,Normal,110,Y,2.5,Flat,1,va -64,F,ASY,142,276,0,Normal,140,Y,1.0,Flat,1,va -58,M,ASY,132,458,1,Normal,69,N,1.0,Down,0,va -61,M,ASY,146,241,0,Normal,148,Y,3.0,Down,1,va -67,M,ASY,160,384,1,ST,130,Y,0.0,Flat,1,va -62,M,ASY,135,297,0,Normal,130,Y,1.0,Flat,1,va -65,M,ASY,136,248,0,Normal,140,Y,4.0,Down,1,va -63,M,ASY,130,308,0,Normal,138,Y,2.0,Flat,1,va -69,M,ASY,140,208,0,ST,140,Y,2.0,Flat,1,va -51,M,ASY,132,227,1,ST,138,N,0.2,Up,0,va -62,M,ASY,158,210,1,Normal,112,Y,3.0,Down,1,va -55,M,NAP,136,245,1,ST,131,Y,1.2,Flat,1,va -75,M,ASY,136,225,0,Normal,112,Y,3.0,Flat,1,va -40,M,NAP,106,240,0,Normal,80,Y,0.0,Up,0,va -67,M,ASY,120,0,1,Normal,150,N,1.5,Down,1,va -58,M,ASY,110,198,0,Normal,110,N,0.0,Flat,1,va -60,M,ASY,136,195,0,Normal,126,N,0.3,Up,0,va -63,M,ASY,160,267,1,ST,88,Y,2.0,Flat,1,va -35,M,NAP,123,161,0,ST,153,N,-0.1,Up,0,va -62,M,TA,112,258,0,ST,150,Y,1.3,Flat,1,va -43,M,ASY,122,0,0,Normal,120,N,0.5,Up,1,va -63,M,NAP,130,0,1,ST,160,N,3.0,Flat,0,va -68,M,NAP,150,195,1,Normal,132,N,0.0,Flat,1,va -65,M,ASY,150,235,0,Normal,120,Y,1.5,Flat,1,va -48,M,NAP,102,0,1,ST,110,Y,1.0,Down,1,va -63,M,ASY,96,305,0,ST,121,Y,1.0,Up,1,va -64,M,ASY,130,223,0,ST,128,N,0.5,Flat,0,va -61,M,ASY,120,282,0,ST,135,Y,4.0,Down,1,va -50,M,ASY,144,349,0,LVH,120,Y,1.0,Up,1,va -59,M,ASY,124,160,0,Normal,117,Y,1.0,Flat,1,va -55,M,ASY,150,160,0,ST,150,N,0.0,Up,0,va -45,M,NAP,130,236,0,Normal,144,N,0.1,Up,0,va -65,M,ASY,144,312,0,LVH,113,Y,1.7,Flat,1,va -61,M,ATA,139,283,0,Normal,135,N,0.3,Up,0,va -49,M,NAP,131,142,0,Normal,127,Y,1.5,Flat,1,va -72,M,ASY,143,211,0,Normal,109,Y,1.4,Flat,1,va -50,M,ASY,133,218,0,Normal,128,Y,1.1,Flat,1,va -64,M,ASY,143,306,1,ST,115,Y,1.8,Flat,1,va -55,M,ASY,116,186,1,ST,102,N,0.0,Flat,1,va -63,M,ASY,110,252,0,ST,140,Y,2.0,Flat,1,va -59,M,ASY,125,222,0,Normal,135,Y,2.5,Down,1,va -56,M,ASY,130,0,0,LVH,122,Y,1.0,Flat,1,va -62,M,NAP,133,0,1,ST,119,Y,1.2,Flat,1,va -74,M,ASY,150,258,1,ST,130,Y,4.0,Down,1,va -54,M,ASY,130,202,1,Normal,112,Y,2.0,Flat,1,va -57,M,ASY,110,197,0,LVH,100,N,0.0,Up,0,va -62,M,NAP,138,204,0,ST,122,Y,1.2,Flat,1,va -76,M,NAP,104,113,0,LVH,120,N,3.5,Down,1,va -54,F,ASY,138,274,0,Normal,105,Y,1.5,Flat,1,va -70,M,ASY,170,192,0,ST,129,Y,3.0,Down,1,va -61,F,ATA,140,298,1,Normal,120,Y,0.0,Up,0,va -48,M,ASY,132,272,0,ST,139,N,0.2,Up,0,va -48,M,NAP,132,220,1,ST,162,N,0.0,Flat,1,va -61,M,TA,142,200,1,ST,100,N,1.5,Down,1,va -66,M,ASY,112,261,0,Normal,140,N,1.5,Up,1,va -68,M,TA,139,181,1,ST,135,N,0.2,Up,0,va -55,M,ASY,172,260,0,Normal,73,N,2.0,Flat,1,va -62,M,NAP,120,220,0,LVH,86,N,0.0,Up,0,va -71,M,NAP,144,221,0,Normal,108,Y,1.8,Flat,1,va -74,M,TA,145,216,1,Normal,116,Y,1.8,Flat,1,va -53,M,NAP,155,175,1,ST,160,N,0.3,Up,0,va -58,M,NAP,150,219,0,ST,118,Y,0.0,Flat,1,va -75,M,ASY,160,310,1,Normal,112,Y,2.0,Down,0,va -56,M,NAP,137,208,1,ST,122,Y,1.8,Flat,1,va -58,M,NAP,137,232,0,ST,124,Y,1.4,Flat,1,va -64,M,ASY,134,273,0,Normal,102,Y,4.0,Down,1,va -54,M,NAP,133,203,0,ST,137,N,0.2,Up,0,va -54,M,ATA,132,182,0,ST,141,N,0.1,Up,0,va -59,M,ASY,140,274,0,Normal,154,Y,2.0,Flat,0,va -55,M,ASY,135,204,1,ST,126,Y,1.1,Flat,1,va -57,M,ASY,144,270,1,ST,160,Y,2.0,Flat,1,va -61,M,ASY,141,292,0,ST,115,Y,1.7,Flat,1,va -41,M,ASY,150,171,0,Normal,128,Y,1.5,Flat,0,va -71,M,ASY,130,221,0,ST,115,Y,0.0,Flat,1,va -38,M,ASY,110,289,0,Normal,105,Y,1.5,Down,1,va -55,M,ASY,158,217,0,Normal,110,Y,2.5,Flat,1,va -56,M,ASY,128,223,0,ST,119,Y,2.0,Down,1,va -69,M,ASY,140,110,1,Normal,109,Y,1.5,Flat,1,va -64,M,ASY,150,193,0,ST,135,Y,0.5,Flat,1,va -72,M,ASY,160,123,1,LVH,130,N,1.5,Flat,1,va -69,M,ASY,142,210,1,ST,112,Y,1.5,Flat,1,va -56,M,ASY,137,282,1,Normal,126,Y,1.2,Flat,1,va -62,M,ASY,139,170,0,ST,120,Y,3.0,Flat,1,va -67,M,ASY,146,369,0,Normal,110,Y,1.9,Flat,1,va -57,M,ASY,156,173,0,LVH,119,Y,3.0,Down,1,va -69,M,ASY,145,289,1,ST,110,Y,1.8,Flat,1,va -51,M,ASY,131,152,1,LVH,130,Y,1.0,Flat,1,va -48,M,ASY,140,208,0,Normal,159,Y,1.5,Up,1,va -69,M,ASY,122,216,1,LVH,84,Y,0.0,Flat,1,va -69,M,NAP,142,271,0,LVH,126,N,0.3,Up,0,va -64,M,ASY,141,244,1,ST,116,Y,1.5,Flat,1,va -57,M,ATA,180,285,1,ST,120,N,0.8,Flat,1,va -53,M,ASY,124,243,0,Normal,122,Y,2.0,Flat,1,va -37,M,NAP,118,240,0,LVH,165,N,1.0,Flat,0,va -67,M,ASY,140,219,0,ST,122,Y,2.0,Flat,1,va -74,M,NAP,140,237,1,Normal,94,N,0.0,Flat,1,va -63,M,ATA,136,165,0,ST,133,N,0.2,Up,0,va -58,M,ASY,100,213,0,ST,110,N,0.0,Up,0,va -61,M,ASY,190,287,1,LVH,150,Y,2.0,Down,1,va -64,M,ASY,130,258,1,LVH,130,N,0.0,Flat,1,va -58,M,ASY,160,256,1,LVH,113,Y,1.0,Up,1,va -60,M,ASY,130,186,1,LVH,140,Y,0.5,Flat,1,va -57,M,ASY,122,264,0,LVH,100,N,0.0,Flat,1,va -55,M,NAP,133,185,0,ST,136,N,0.2,Up,0,va -55,M,ASY,120,226,0,LVH,127,Y,1.7,Down,1,va -56,M,ASY,130,203,1,Normal,98,N,1.5,Flat,1,va -57,M,ASY,130,207,0,ST,96,Y,1.0,Flat,0,va -61,M,NAP,140,284,0,Normal,123,Y,1.3,Flat,1,va -61,M,NAP,120,337,0,Normal,98,Y,0.0,Flat,1,va -74,M,ASY,155,310,0,Normal,112,Y,1.5,Down,1,va -68,M,NAP,134,254,1,Normal,151,Y,0.0,Up,0,va -51,F,ASY,114,258,1,LVH,96,N,1.0,Up,0,va -62,M,ASY,160,254,1,ST,108,Y,3.0,Flat,1,va -53,M,ASY,144,300,1,ST,128,Y,1.5,Flat,1,va -62,M,ASY,158,170,0,ST,138,Y,0.0,Flat,1,va -46,M,ASY,134,310,0,Normal,126,N,0.0,Flat,1,va -54,F,ASY,127,333,1,ST,154,N,0.0,Flat,1,va -62,M,TA,135,139,0,ST,137,N,0.2,Up,0,va -55,M,ASY,122,223,1,ST,100,N,0.0,Flat,1,va -58,M,ASY,140,385,1,LVH,135,N,0.3,Up,0,va -62,M,ATA,120,254,0,LVH,93,Y,0.0,Flat,1,va -70,M,ASY,130,322,0,LVH,109,N,2.4,Flat,1,cleveland -67,F,NAP,115,564,0,LVH,160,N,1.6,Flat,0,cleveland -57,M,ATA,124,261,0,Normal,141,N,0.3,Up,1,cleveland -64,M,ASY,128,263,0,Normal,105,Y,0.2,Flat,0,cleveland -74,F,ATA,120,269,0,LVH,121,Y,0.2,Up,0,cleveland -65,M,ASY,120,177,0,Normal,140,N,0.4,Up,0,cleveland -56,M,NAP,130,256,1,LVH,142,Y,0.6,Flat,1,cleveland -59,M,ASY,110,239,0,LVH,142,Y,1.2,Flat,1,cleveland -60,M,ASY,140,293,0,LVH,170,N,1.2,Flat,1,cleveland -63,F,ASY,150,407,0,LVH,154,N,4.0,Flat,1,cleveland -59,M,ASY,135,234,0,Normal,161,N,0.5,Flat,0,cleveland -53,M,ASY,142,226,0,LVH,111,Y,0.0,Up,0,cleveland -44,M,NAP,140,235,0,LVH,180,N,0.0,Up,0,cleveland -61,M,TA,134,234,0,Normal,145,N,2.6,Flat,1,cleveland -57,F,ASY,128,303,0,LVH,159,N,0.0,Up,0,cleveland -71,F,ASY,112,149,0,Normal,125,N,1.6,Flat,0,cleveland -46,M,ASY,140,311,0,Normal,120,Y,1.8,Flat,1,cleveland -53,M,ASY,140,203,1,LVH,155,Y,3.1,Down,1,cleveland -64,M,TA,110,211,0,LVH,144,Y,1.8,Flat,0,cleveland -40,M,TA,140,199,0,Normal,178,Y,1.4,Up,0,cleveland -67,M,ASY,120,229,0,LVH,129,Y,2.6,Flat,1,cleveland -48,M,ATA,130,245,0,LVH,180,N,0.2,Flat,0,cleveland -43,M,ASY,115,303,0,Normal,181,N,1.2,Flat,0,cleveland -47,M,ASY,112,204,0,Normal,143,N,0.1,Up,0,cleveland -54,F,ATA,132,288,1,LVH,159,Y,0.0,Up,0,cleveland -48,F,NAP,130,275,0,Normal,139,N,0.2,Up,0,cleveland -46,F,ASY,138,243,0,LVH,152,Y,0.0,Flat,0,cleveland -51,F,NAP,120,295,0,LVH,157,N,0.6,Up,0,cleveland -58,M,NAP,112,230,0,LVH,165,N,2.5,Flat,1,cleveland -71,F,NAP,110,265,1,LVH,130,N,0.0,Up,0,cleveland -57,M,NAP,128,229,0,LVH,150,N,0.4,Flat,1,cleveland -66,M,ASY,160,228,0,LVH,138,N,2.3,Up,0,cleveland -37,F,NAP,120,215,0,Normal,170,N,0.0,Up,0,cleveland -59,M,ASY,170,326,0,LVH,140,Y,3.4,Down,1,cleveland -50,M,ASY,144,200,0,LVH,126,Y,0.9,Flat,1,cleveland -48,M,ASY,130,256,1,LVH,150,Y,0.0,Up,1,cleveland -61,M,ASY,140,207,0,LVH,138,Y,1.9,Up,1,cleveland -59,M,TA,160,273,0,LVH,125,N,0.0,Up,1,cleveland -42,M,NAP,130,180,0,Normal,150,N,0.0,Up,0,cleveland -48,M,ASY,122,222,0,LVH,186,N,0.0,Up,0,cleveland -40,M,ASY,152,223,0,Normal,181,N,0.0,Up,1,cleveland -62,F,ASY,124,209,0,Normal,163,N,0.0,Up,0,cleveland -44,M,NAP,130,233,0,Normal,179,Y,0.4,Up,0,cleveland -46,M,ATA,101,197,1,Normal,156,N,0.0,Up,0,cleveland -59,M,NAP,126,218,1,Normal,134,N,2.2,Flat,1,cleveland -58,M,NAP,140,211,1,LVH,165,N,0.0,Up,0,cleveland -49,M,NAP,118,149,0,LVH,126,N,0.8,Up,1,cleveland -44,M,ASY,110,197,0,LVH,177,N,0.0,Up,1,cleveland -66,M,ATA,160,246,0,Normal,120,Y,0.0,Flat,1,cleveland -65,F,ASY,150,225,0,LVH,114,N,1.0,Flat,1,cleveland -42,M,ASY,136,315,0,Normal,125,Y,1.8,Flat,1,cleveland -52,M,ATA,128,205,1,Normal,184,N,0.0,Up,0,cleveland -65,F,NAP,140,417,1,LVH,157,N,0.8,Up,0,cleveland -63,F,ATA,140,195,0,Normal,179,N,0.0,Up,0,cleveland -45,F,ATA,130,234,0,LVH,175,N,0.6,Flat,0,cleveland -41,F,ATA,105,198,0,Normal,168,N,0.0,Up,0,cleveland -61,M,ASY,138,166,0,LVH,125,Y,3.6,Flat,1,cleveland -60,F,NAP,120,178,1,Normal,96,N,0.0,Up,0,cleveland -59,F,ASY,174,249,0,Normal,143,Y,0.0,Flat,1,cleveland -62,M,ATA,120,281,0,LVH,103,N,1.4,Flat,1,cleveland -57,M,NAP,150,126,1,Normal,173,N,0.2,Up,0,cleveland -51,F,ASY,130,305,0,Normal,142,Y,1.2,Flat,1,cleveland -44,M,NAP,120,226,0,Normal,169,N,0.0,Up,0,cleveland -60,F,TA,150,240,0,Normal,171,N,0.9,Up,0,cleveland -63,M,TA,145,233,1,LVH,150,N,2.3,Down,0,cleveland -57,M,ASY,150,276,0,LVH,112,Y,0.6,Flat,1,cleveland -51,M,ASY,140,261,0,LVH,186,Y,0.0,Up,0,cleveland -58,F,ATA,136,319,1,LVH,152,N,0.0,Up,1,cleveland -44,F,NAP,118,242,0,Normal,149,N,0.3,Flat,0,cleveland -47,M,NAP,108,243,0,Normal,152,N,0.0,Up,1,cleveland -61,M,ASY,120,260,0,Normal,140,Y,3.6,Flat,1,cleveland -57,F,ASY,120,354,0,Normal,163,Y,0.6,Up,0,cleveland -70,M,ATA,156,245,0,LVH,143,N,0.0,Up,0,cleveland -76,F,NAP,140,197,0,ST,116,N,1.1,Flat,0,cleveland -67,F,ASY,106,223,0,Normal,142,N,0.3,Up,0,cleveland -45,M,ASY,142,309,0,LVH,147,Y,0.0,Flat,1,cleveland -45,M,ASY,104,208,0,LVH,148,Y,3.0,Flat,0,cleveland -39,F,NAP,94,199,0,Normal,179,N,0.0,Up,0,cleveland -42,F,NAP,120,209,0,Normal,173,N,0.0,Flat,0,cleveland -56,M,ATA,120,236,0,Normal,178,N,0.8,Up,0,cleveland -58,M,ASY,146,218,0,Normal,105,N,2.0,Flat,1,cleveland -35,M,ASY,120,198,0,Normal,130,Y,1.6,Flat,1,cleveland -58,M,ASY,150,270,0,LVH,111,Y,0.8,Up,1,cleveland -41,M,NAP,130,214,0,LVH,168,N,2.0,Flat,0,cleveland -57,M,ASY,110,201,0,Normal,126,Y,1.5,Flat,0,cleveland -42,M,TA,148,244,0,LVH,178,N,0.8,Up,0,cleveland -62,M,ATA,128,208,1,LVH,140,N,0.0,Up,0,cleveland -59,M,TA,178,270,0,LVH,145,N,4.2,Down,0,cleveland -41,F,ATA,126,306,0,Normal,163,N,0.0,Up,0,cleveland -50,M,ASY,150,243,0,LVH,128,N,2.6,Flat,1,cleveland -59,M,ATA,140,221,0,Normal,164,Y,0.0,Up,0,cleveland -61,F,ASY,130,330,0,LVH,169,N,0.0,Up,1,cleveland -54,M,ASY,124,266,0,LVH,109,Y,2.2,Flat,1,cleveland -54,M,ASY,110,206,0,LVH,108,Y,0.0,Flat,1,cleveland -52,M,ASY,125,212,0,Normal,168,N,1.0,Up,1,cleveland -47,M,ASY,110,275,0,LVH,118,Y,1.0,Flat,1,cleveland -66,M,ASY,120,302,0,LVH,151,N,0.4,Flat,0,cleveland -58,M,ASY,100,234,0,Normal,156,N,0.1,Up,1,cleveland -64,F,NAP,140,313,0,Normal,133,N,0.2,Up,0,cleveland -50,F,ATA,120,244,0,Normal,162,N,1.1,Up,0,cleveland -44,F,NAP,108,141,0,Normal,175,N,0.6,Flat,0,cleveland -67,M,ASY,120,237,0,Normal,71,N,1.0,Flat,1,cleveland -49,F,ASY,130,269,0,Normal,163,N,0.0,Up,0,cleveland -57,M,ASY,165,289,1,LVH,124,N,1.0,Flat,1,cleveland -63,M,ASY,130,254,0,LVH,147,N,1.4,Flat,1,cleveland -48,M,ASY,124,274,0,LVH,166,N,0.5,Flat,1,cleveland -51,M,NAP,100,222,0,Normal,143,Y,1.2,Flat,0,cleveland -60,F,ASY,150,258,0,LVH,157,N,2.6,Flat,1,cleveland -59,M,ASY,140,177,0,Normal,162,Y,0.0,Up,1,cleveland -45,F,ATA,112,160,0,Normal,138,N,0.0,Flat,0,cleveland -55,F,ASY,180,327,0,ST,117,Y,3.4,Flat,1,cleveland -41,M,ATA,110,235,0,Normal,153,N,0.0,Up,0,cleveland -60,F,ASY,158,305,0,LVH,161,N,0.0,Up,1,cleveland -54,F,NAP,135,304,1,Normal,170,N,0.0,Up,0,cleveland -42,M,ATA,120,295,0,Normal,162,N,0.0,Up,0,cleveland -49,F,ATA,134,271,0,Normal,162,N,0.0,Flat,0,cleveland -46,M,ASY,120,249,0,LVH,144,N,0.8,Up,1,cleveland -56,F,ASY,200,288,1,LVH,133,Y,4.0,Down,1,cleveland -66,F,TA,150,226,0,Normal,114,N,2.6,Down,0,cleveland -56,M,ASY,130,283,1,LVH,103,Y,1.6,Down,1,cleveland -49,M,NAP,120,188,0,Normal,139,N,2.0,Flat,1,cleveland -54,M,ASY,122,286,0,LVH,116,Y,3.2,Flat,1,cleveland -57,M,ASY,152,274,0,Normal,88,Y,1.2,Flat,1,cleveland -65,F,NAP,160,360,0,LVH,151,N,0.8,Up,0,cleveland -54,M,NAP,125,273,0,LVH,152,N,0.5,Down,0,cleveland -54,F,NAP,160,201,0,Normal,163,N,0.0,Up,0,cleveland -62,M,ASY,120,267,0,Normal,99,Y,1.8,Flat,1,cleveland -52,F,NAP,136,196,0,LVH,169,N,0.1,Flat,0,cleveland -52,M,ATA,134,201,0,Normal,158,N,0.8,Up,0,cleveland -60,M,ASY,117,230,1,Normal,160,Y,1.4,Up,1,cleveland -63,F,ASY,108,269,0,Normal,169,Y,1.8,Flat,1,cleveland -66,M,ASY,112,212,0,LVH,132,Y,0.1,Up,1,cleveland -42,M,ASY,140,226,0,Normal,178,N,0.0,Up,0,cleveland -64,M,ASY,120,246,0,LVH,96,Y,2.2,Down,1,cleveland -54,M,NAP,150,232,0,LVH,165,N,1.6,Up,0,cleveland -46,F,NAP,142,177,0,LVH,160,Y,1.4,Down,0,cleveland -67,F,NAP,152,277,0,Normal,172,N,0.0,Up,0,cleveland -56,M,ASY,125,249,1,LVH,144,Y,1.2,Flat,1,cleveland -34,F,ATA,118,210,0,Normal,192,N,0.7,Up,0,cleveland -57,M,ASY,132,207,0,Normal,168,Y,0.0,Up,0,cleveland -64,M,ASY,145,212,0,LVH,132,N,2.0,Flat,1,cleveland -59,M,ASY,138,271,0,LVH,182,N,0.0,Up,0,cleveland -50,M,NAP,140,233,0,Normal,163,N,0.6,Flat,1,cleveland -51,M,TA,125,213,0,LVH,125,Y,1.4,Up,0,cleveland -54,M,ATA,192,283,0,LVH,195,N,0.0,Up,1,cleveland -53,M,ASY,123,282,0,Normal,95,Y,2.0,Flat,1,cleveland -52,M,ASY,112,230,0,Normal,160,N,0.0,Up,1,cleveland -40,M,ASY,110,167,0,LVH,114,Y,2.0,Flat,1,cleveland -58,M,NAP,132,224,0,LVH,173,N,3.2,Up,1,cleveland -41,F,NAP,112,268,0,LVH,172,Y,0.0,Up,0,cleveland -41,M,NAP,112,250,0,Normal,179,N,0.0,Up,0,cleveland -50,F,NAP,120,219,0,Normal,158,N,1.6,Flat,0,cleveland -54,F,NAP,108,267,0,LVH,167,N,0.0,Up,0,cleveland -64,F,ASY,130,303,0,Normal,122,N,2.0,Flat,0,cleveland -51,F,NAP,130,256,0,LVH,149,N,0.5,Up,0,cleveland -46,F,ATA,105,204,0,Normal,172,N,0.0,Up,0,cleveland -55,M,ASY,140,217,0,Normal,111,Y,5.6,Down,1,cleveland -45,M,ATA,128,308,0,LVH,170,N,0.0,Up,0,cleveland -56,M,TA,120,193,0,LVH,162,N,1.9,Flat,0,cleveland -66,F,ASY,178,228,1,Normal,165,Y,1.0,Flat,1,cleveland -38,M,TA,120,231,0,Normal,182,Y,3.8,Flat,1,cleveland -62,F,ASY,150,244,0,Normal,154,Y,1.4,Flat,1,cleveland -55,M,ATA,130,262,0,Normal,155,N,0.0,Up,0,cleveland -58,M,ASY,128,259,0,LVH,130,Y,3.0,Flat,1,cleveland -43,M,ASY,110,211,0,Normal,161,N,0.0,Up,0,cleveland -64,F,ASY,180,325,0,Normal,154,Y,0.0,Up,0,cleveland -50,F,ASY,110,254,0,LVH,159,N,0.0,Up,0,cleveland -53,M,NAP,130,197,1,LVH,152,N,1.2,Down,0,cleveland -45,F,ASY,138,236,0,LVH,152,Y,0.2,Flat,0,cleveland -65,M,TA,138,282,1,LVH,174,N,1.4,Flat,1,cleveland -69,M,TA,160,234,1,LVH,131,N,0.1,Flat,0,cleveland -69,M,NAP,140,254,0,LVH,146,N,2.0,Flat,1,cleveland -67,M,ASY,100,299,0,LVH,125,Y,0.9,Flat,1,cleveland -68,F,NAP,120,211,0,LVH,115,N,1.5,Flat,0,cleveland -34,M,TA,118,182,0,LVH,174,N,0.0,Up,0,cleveland -62,F,ASY,138,294,1,Normal,106,N,1.9,Flat,1,cleveland -51,M,ASY,140,298,0,Normal,122,Y,4.2,Flat,1,cleveland -46,M,NAP,150,231,0,Normal,147,N,3.6,Flat,1,cleveland -67,M,ASY,125,254,1,Normal,163,N,0.2,Flat,1,cleveland -50,M,NAP,129,196,0,Normal,163,N,0.0,Up,0,cleveland -42,M,NAP,120,240,1,Normal,194,N,0.8,Down,0,cleveland -56,F,ASY,134,409,0,LVH,150,Y,1.9,Flat,1,cleveland -41,M,ASY,110,172,0,LVH,158,N,0.0,Up,1,cleveland -42,F,ASY,102,265,0,LVH,122,N,0.6,Flat,0,cleveland -53,M,NAP,130,246,1,LVH,173,N,0.0,Up,0,cleveland -43,M,NAP,130,315,0,Normal,162,N,1.9,Up,0,cleveland -56,M,ASY,132,184,0,LVH,105,Y,2.1,Flat,1,cleveland -52,M,ASY,108,233,1,Normal,147,N,0.1,Up,0,cleveland -62,F,ASY,140,394,0,LVH,157,N,1.2,Flat,0,cleveland -70,M,NAP,160,269,0,Normal,112,Y,2.9,Flat,1,cleveland -54,M,ASY,140,239,0,Normal,160,N,1.2,Up,0,cleveland -70,M,ASY,145,174,0,Normal,125,Y,2.6,Down,1,cleveland -54,M,ATA,108,309,0,Normal,156,N,0.0,Up,0,cleveland -35,M,ASY,126,282,0,LVH,156,Y,0.0,Up,1,cleveland -48,M,NAP,124,255,1,Normal,175,N,0.0,Up,0,cleveland -55,F,ATA,135,250,0,LVH,161,N,1.4,Flat,0,cleveland -58,F,ASY,100,248,0,LVH,122,N,1.0,Flat,0,cleveland -54,F,NAP,110,214,0,Normal,158,N,1.6,Flat,0,cleveland -69,F,TA,140,239,0,Normal,151,N,1.8,Up,0,cleveland -77,M,ASY,125,304,0,LVH,162,Y,0.0,Up,1,cleveland -68,M,NAP,118,277,0,Normal,151,N,1.0,Up,0,cleveland -58,M,ASY,125,300,0,LVH,171,N,0.0,Up,1,cleveland -60,M,ASY,125,258,0,LVH,141,Y,2.8,Flat,1,cleveland -51,M,ASY,140,299,0,Normal,173,Y,1.6,Up,1,cleveland -55,M,ASY,160,289,0,LVH,145,Y,0.8,Flat,1,cleveland -52,M,TA,152,298,1,Normal,178,N,1.2,Flat,0,cleveland -60,F,NAP,102,318,0,Normal,160,N,0.0,Up,0,cleveland -58,M,NAP,105,240,0,LVH,154,Y,0.6,Flat,0,cleveland -64,M,NAP,125,309,0,Normal,131,Y,1.8,Flat,1,cleveland -37,M,NAP,130,250,0,Normal,187,N,3.5,Down,0,cleveland -59,M,TA,170,288,0,LVH,159,N,0.2,Flat,1,cleveland -51,M,NAP,125,245,1,LVH,166,N,2.4,Flat,0,cleveland -43,F,NAP,122,213,0,Normal,165,N,0.2,Flat,0,cleveland -58,M,ASY,128,216,0,LVH,131,Y,2.2,Flat,1,cleveland -29,M,ATA,130,204,0,LVH,202,N,0.0,Up,0,cleveland -41,F,ATA,130,204,0,LVH,172,N,1.4,Up,0,cleveland -63,F,NAP,135,252,0,LVH,172,N,0.0,Up,0,cleveland -51,M,NAP,94,227,0,Normal,154,Y,0.0,Up,0,cleveland -54,M,NAP,120,258,0,LVH,147,N,0.4,Flat,0,cleveland -44,M,ATA,120,220,0,Normal,170,N,0.0,Up,0,cleveland -54,M,ASY,110,239,0,Normal,126,Y,2.8,Flat,1,cleveland -65,M,ASY,135,254,0,LVH,127,N,2.8,Flat,1,cleveland -57,M,NAP,150,168,0,Normal,174,N,1.6,Up,0,cleveland -63,M,ASY,130,330,1,LVH,132,Y,1.8,Up,1,cleveland -35,F,ASY,138,183,0,Normal,182,N,1.4,Up,0,cleveland -41,M,ATA,135,203,0,Normal,132,N,0.0,Flat,0,cleveland -62,F,NAP,130,263,0,Normal,97,N,1.2,Flat,1,cleveland -43,F,ASY,132,341,1,LVH,136,Y,3.0,Flat,1,cleveland -58,F,TA,150,283,1,LVH,162,N,1.0,Up,0,cleveland -52,M,TA,118,186,0,LVH,190,N,0.0,Flat,0,cleveland -61,F,ASY,145,307,0,LVH,146,Y,1.0,Flat,1,cleveland -39,M,ASY,118,219,0,Normal,140,N,1.2,Flat,1,cleveland -45,M,ASY,115,260,0,LVH,185,N,0.0,Up,0,cleveland -52,M,ASY,128,255,0,Normal,161,Y,0.0,Up,1,cleveland -62,M,NAP,130,231,0,Normal,146,N,1.8,Flat,0,cleveland -62,F,ASY,160,164,0,LVH,145,N,6.2,Down,1,cleveland -53,F,ASY,138,234,0,LVH,160,N,0.0,Up,0,cleveland -43,M,ASY,120,177,0,LVH,120,Y,2.5,Flat,1,cleveland -47,M,NAP,138,257,0,LVH,156,N,0.0,Up,0,cleveland -52,M,ATA,120,325,0,Normal,172,N,0.2,Up,0,cleveland -68,M,NAP,180,274,1,LVH,150,Y,1.6,Flat,1,cleveland -39,M,NAP,140,321,0,LVH,182,N,0.0,Up,0,cleveland -53,F,ASY,130,264,0,LVH,143,N,0.4,Flat,0,cleveland -62,F,ASY,140,268,0,LVH,160,N,3.6,Down,1,cleveland -51,F,NAP,140,308,0,LVH,142,N,1.5,Up,0,cleveland -60,M,ASY,130,253,0,Normal,144,Y,1.4,Up,1,cleveland -65,M,ASY,110,248,0,LVH,158,N,0.6,Up,1,cleveland -65,F,NAP,155,269,0,Normal,148,N,0.8,Up,0,cleveland -60,M,NAP,140,185,0,LVH,155,N,3.0,Flat,1,cleveland -60,M,ASY,145,282,0,LVH,142,Y,2.8,Flat,1,cleveland -54,M,ASY,120,188,0,Normal,113,N,1.4,Flat,1,cleveland -44,M,ATA,130,219,0,LVH,188,N,0.0,Up,0,cleveland -44,M,ASY,112,290,0,LVH,153,N,0.0,Up,1,cleveland -51,M,NAP,110,175,0,Normal,123,N,0.6,Up,0,cleveland -59,M,NAP,150,212,1,Normal,157,N,1.6,Up,0,cleveland -71,F,ATA,160,302,0,Normal,162,N,0.4,Up,0,cleveland -61,M,NAP,150,243,1,Normal,137,Y,1.0,Flat,0,cleveland -55,M,ASY,132,353,0,Normal,132,Y,1.2,Flat,1,cleveland -64,M,NAP,140,335,0,Normal,158,N,0.0,Up,1,cleveland -43,M,ASY,150,247,0,Normal,171,N,1.5,Up,0,cleveland -58,F,NAP,120,340,0,Normal,172,N,0.0,Up,0,cleveland -60,M,ASY,130,206,0,LVH,132,Y,2.4,Flat,1,cleveland -58,M,ATA,120,284,0,LVH,160,N,1.8,Flat,1,cleveland -49,M,ATA,130,266,0,Normal,171,N,0.6,Up,0,cleveland -48,M,ATA,110,229,0,Normal,168,N,1.0,Down,1,cleveland -52,M,NAP,172,199,1,Normal,162,N,0.5,Up,0,cleveland -44,M,ATA,120,263,0,Normal,173,N,0.0,Up,0,cleveland -56,F,ATA,140,294,0,LVH,153,N,1.3,Flat,0,cleveland -57,M,ASY,140,192,0,Normal,148,N,0.4,Flat,0,cleveland -67,M,ASY,160,286,0,LVH,108,Y,1.5,Flat,1,cleveland -53,F,NAP,128,216,0,LVH,115,N,0.0,Up,0,cleveland -52,M,NAP,138,223,0,Normal,169,N,0.0,Up,0,cleveland -43,M,ASY,132,247,1,LVH,143,Y,0.1,Flat,1,cleveland -52,M,ASY,128,204,1,Normal,156,Y,1.0,Flat,1,cleveland -59,M,TA,134,204,0,Normal,162,N,0.8,Up,1,cleveland -64,M,TA,170,227,0,LVH,155,N,0.6,Flat,0,cleveland -66,F,NAP,146,278,0,LVH,152,N,0.0,Flat,0,cleveland -39,F,NAP,138,220,0,Normal,152,N,0.0,Flat,0,cleveland -57,M,ATA,154,232,0,LVH,164,N,0.0,Up,1,cleveland -58,F,ASY,130,197,0,Normal,131,N,0.6,Flat,0,cleveland -57,M,ASY,110,335,0,Normal,143,Y,3.0,Flat,1,cleveland -47,M,NAP,130,253,0,Normal,179,N,0.0,Up,0,cleveland -55,F,ASY,128,205,0,ST,130,Y,2.0,Flat,1,cleveland -35,M,ATA,122,192,0,Normal,174,N,0.0,Up,0,cleveland -61,M,ASY,148,203,0,Normal,161,N,0.0,Up,1,cleveland -58,M,ASY,114,318,0,ST,140,N,4.4,Down,1,cleveland -58,F,ASY,170,225,1,LVH,146,Y,2.8,Flat,1,cleveland -58,M,ATA,125,220,0,Normal,144,N,0.4,Flat,0,cleveland -56,M,ATA,130,221,0,LVH,163,N,0.0,Up,0,cleveland -56,M,ATA,120,240,0,Normal,169,N,0.0,Down,0,cleveland -67,M,NAP,152,212,0,LVH,150,N,0.8,Flat,1,cleveland -55,F,ATA,132,342,0,Normal,166,N,1.2,Up,0,cleveland -44,M,ASY,120,169,0,Normal,144,Y,2.8,Down,1,cleveland -63,M,ASY,140,187,0,LVH,144,Y,4.0,Up,1,cleveland -63,F,ASY,124,197,0,Normal,136,Y,0.0,Flat,1,cleveland -41,M,ATA,120,157,0,Normal,182,N,0.0,Up,0,cleveland -59,M,ASY,164,176,1,LVH,90,N,1.0,Flat,1,cleveland -57,F,ASY,140,241,0,Normal,123,Y,0.2,Flat,1,cleveland -45,M,TA,110,264,0,Normal,132,N,1.2,Flat,1,cleveland -68,M,ASY,144,193,1,Normal,141,N,3.4,Flat,1,cleveland -57,M,ASY,130,131,0,Normal,115,Y,1.2,Flat,1,cleveland -57,F,ATA,130,236,0,LVH,174,N,0.0,Flat,1,cleveland -38,M,NAP,138,175,0,Normal,173,N,0.0,Up,0,cleveland diff --git a/dataset/maggic/eeacd191-a194-40eb-bee8-424e04453461/part-00000-c3afbbbb-b2d1-4493-b170-e227ba98ebc2-c000.snappy.parquet b/dataset/maggic/eeacd191-a194-40eb-bee8-424e04453461/part-00000-c3afbbbb-b2d1-4493-b170-e227ba98ebc2-c000.snappy.parquet deleted file mode 100644 index da5c074..0000000 Binary files a/dataset/maggic/eeacd191-a194-40eb-bee8-424e04453461/part-00000-c3afbbbb-b2d1-4493-b170-e227ba98ebc2-c000.snappy.parquet and /dev/null differ diff --git a/dataset/maggic/metadata.json b/dataset/maggic/metadata.json deleted file mode 100644 index ce70ec4..0000000 --- a/dataset/maggic/metadata.json +++ /dev/null @@ -1,855 +0,0 @@ -{ - "entity": { - "id": "eeacd191-a194-40eb-bee8-424e04453461", - "population": { - "url": "https://ai4hf.eu/cohorts/maggic|0.1", - "title": "Patients with Diagnosis of Heart Failure", - "description": "This cohort includes patients with a diagnosis of heart failure.", - "pipeline": { - "reference": "PopulationPipeline/maggic/_history/1", - "display": "Patients diagnosed with heart failure, using the time of their initial diagnosis as the event time." - } - }, - "featureSet": { - "url": "https://ai4hf.eu/feature-sets/maggic-mlp", - "title": "MAGGIC-MLP Features", - "description": "Set of extracted features for MAGGIC-MLP", - "pipeline": { - "reference": "FeatureSet/maggic-mlp/_history/1", - "display": "MAGGIC-MLP Features" - } - }, - "dataSource": { - "id": "myFhirServer", - "name": "myFhirServer", - "interface": "fhir", - "version": "R5", - "sourceType": "fhir-api" - }, - "issued": "2025-07-04T13:07:24.272468300Z", - "temporal": { - "end": "2025-07-04T13:06:39.982Z" - }, - "baseVariables": [ - { - "name": "pid", - "description": "A unique identifier assigned to each patient in the cohort.", - "dataType": "IDENTIFIER", - "generatedDescription": [] - }, - { - "name": "eventTime", - "description": "The time when the entity becomes eligible for the specified cohort. e.g. time of diagnosis for a cohort specific to a disease", - "dataType": "DATETIME", - "generatedDescription": [] - }, - { - "name": "exitTime", - "description": "The time when the entity is no longer eligible for the specified cohort. e.g. time of death, time of discharge", - "dataType": "DATETIME", - "generatedDescription": [] - }, - { - "name": "referenceTimePoint", - "description": "The sampling time point based on which the features and outcomes are calculated", - "dataType": "DATETIME", - "generatedDescription": [] - } - ], - "features": [ - { - "name": "patient_demographics_gender", - "description": "Gender of the patient", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "url": "http://hl7.org/fhir/ValueSet/administrative-gender", - "concept": [ - { - "code": "male", - "display": "Male" - }, - { - "code": "female", - "display": "Female" - }, - { - "code": "other", - "display": "Other" - }, - { - "code": "unknown", - "display": "Unknown" - } - ] - } - }, - { - "name": "patient_demographics_age", - "description": "Age of the patient at reference point", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "nyha_nyha", - "description": "The latest value of the New York Heart Assessment as LOINC Code", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "url": "https://datatools4heart.eu/fhir/ValueSet/nyha-classification", - "concept": [ - { - "code": "LA28404-4", - "display": "Class-I" - }, - { - "code": "LA28405-1", - "display": "Class-II" - }, - { - "code": "LA28406-9", - "display": "Class-III" - }, - { - "code": "LA28407-7", - "display": "Class-IV" - } - ] - } - }, - { - "name": "vital_signs_systolic_blood_pressure_value_p3a_avg", - "description": "The average value recorded over the three years preceding the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolic_blood_pressure (pivot value = '8480-6')", - "average of values", - "within last 3 year" - ] - }, - { - "name": "vital_signs_bmi_value_p3a_avg", - "description": "The average value recorded over the three years preceding the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bmi (pivot value = '39156-5')", - "average of values", - "within last 3 year" - ] - }, - { - "name": "lab_results_sodium_value_p3a_avg", - "description": "The average value recorded over the three years preceding the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "average of values", - "within last 3 year" - ] - }, - { - "name": "lab_results_creatinine_value_p3a_avg", - "description": "The average value recorded over the three years preceding the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatinine (pivot value = '2160-0')", - "average of values", - "within last 3 year" - ] - }, - { - "name": "lab_results_urinary_creatinine_value_p3a_avg", - "description": "The average value recorded over the three years preceding the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for urinary_creatinine (pivot value = '2161-8')", - "average of values", - "within last 3 year" - ] - }, - { - "name": "conditions_heart_failure_occurred_prior_to_18_months_any", - "description": "Indicates whether the condition was diagnosed 18 months or more before the reference time point, corresponding to the criteria for 'Heart Failure (HF) ≥ 18 Months Prior.'", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Find the Heart Failures.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_chronic_obstructive_pulmonary_disease_any", - "description": "Whether the patient has the Chronic Obstructive Pulmonary Disease (COPD).", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_atrial_fibrillation_any", - "description": "Whether the patient has the Atrial Fibrillations.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_myocardial_infarction_any", - "description": "Whether the patient has the Myocardial Infarctions.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_pci_any", - "description": "Whether the patient has the Percutaneous Coronary Intervention (PCI).", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_cabg_any", - "description": "Whether the patient has the Coronary Artery Bypass Graft (CABG) Surgeries.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_stroke_any", - "description": "Whether the patient has the strokes.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_has_diabetes_any", - "description": "Whether the patient has the diabetes.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_beta_blocker_use_administered", - "description": "Whether the medication administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Find Beta Blocker medications.", - "latest value", - "until that time point" - ] - }, - { - "name": "med_ace_inhibitors_arb_use_administered", - "description": "Whether the medication administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Find ACE Inhibitors / ARB Use medications.", - "latest value", - "until that time point" - ] - }, - { - "name": "echocardiographs_lvef", - "description": "The most recent left ventricular ejection fraction (LVEF) recorded prior to the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "smoking_status_smoker", - "description": "Indicates whether the patient's most recent recorded smoking status, collected before the reference time point, classifies them as a current smoker. A value of 1 denotes a current smoker, while 0 represents either a former smoker or someone who has never smoked.", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "concept": [ - { - "code": "1", - "display": "Smoker" - }, - { - "code": "0", - "display": "Non-smoker" - } - ] - } - } - ], - "outcomes": [ - { - "name": "patient_demographics_months_to_death_or_last_record_date_f", - "description": "The number of months between the reference time point and the patient’s date of death (if known); otherwise, the number of months between the reference time point and the last known date of recorded activity related to the patient.", - "dataType": "NUMERIC", - "generatedDescription": [ - "next value", - "from that time point" - ] - }, - { - "name": "patient_demographics_deceased_in_12_months_f", - "description": "Mortality recorded within the 12 months following the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "next value", - "from that time point" - ] - }, - { - "name": "patient_demographics_deceased_in_24_months_f", - "description": "Mortality recorded within the 24 months following the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "next value", - "from that time point" - ] - }, - { - "name": "patient_demographics_deceased_in_36_months_f", - "description": "Mortality recorded within the 36 months following the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "next value", - "from that time point" - ] - }, - { - "name": "patient_demographics_deceased_in_48_months_f", - "description": "Mortality recorded within the 48 months following the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "next value", - "from that time point" - ] - } - ], - "populationStats": { - "numOfEntries": 16, - "entityStats": { - "pid": { - "numOfEntity": 16, - "maxEntriesPerEntity": 1, - "avgEntriesPerEntity": 1.0 - } - }, - "eligibilityPeriodStats": { - "period": "d", - "min": 44, - "max": 973, - "avg": 508.5, - "ongoing": 14 - }, - "eligibilityCriteriaStats": { - "entryStats": { - "Patients diagnosed with heart failure": 16 - }, - "exitStats": { - "Patient's deceased time.": 0, - "Patients diagnosed with heart failure": 0 - }, - "eligibilityStats": {} - } - }, - "datasetStats": { - "numOfEntries": 77, - "entityStats": { - "pid": 16 - }, - "samplingStats": { - "max": 17, - "min": 1, - "avg": 4.8125 - }, - "secondaryTimePointStats": { - "lastRecordDate": 19 - }, - "featureStats": { - "med_ace_inhibitors_arb_use_administered": { - "numOfNotNull": 67, - "numOfTrue": 67 - }, - "conditions_has_stroke_any": { - "numOfNotNull": 77, - "numOfTrue": 0 - }, - "conditions_has_chronic_obstructive_pulmonary_disease_any": { - "numOfNotNull": 77, - "numOfTrue": 5 - }, - "vital_signs_bmi_value_p3a_avg": { - "numOfNotNull": 30, - "min": 12.0, - "max": 32.13, - "avg": 24.130416666666665, - "q1": 20.4, - "q2": 24.13, - "q3": 27.425, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 16.85, - "count": 1 - }, - { - "bin": 18.472083333333334, - "count": 4 - }, - { - "bin": 20.189999999999998, - "count": 3 - }, - { - "bin": 23.500833333333333, - "count": 3 - }, - { - "bin": 24.24, - "count": 5 - }, - { - "bin": 25.32875, - "count": 4 - }, - { - "bin": 27.4725, - "count": 4 - }, - { - "bin": 31.145555555555553, - "count": 3 - }, - { - "bin": 32.13, - "count": 2 - } - ] - }, - "conditions_heart_failure_occurred_prior_to_18_months_any": { - "numOfNotNull": 77, - "numOfTrue": 46 - }, - "lab_results_creatinine_value_p3a_avg": { - "numOfNotNull": 36, - "min": 2.5, - "max": 18.533333333333335, - "avg": 11.992885802469136, - "q1": 10.3, - "q2": 12.85, - "q3": 14.4, - "histogram": [ - { - "bin": 2.5, - "count": 3 - }, - { - "bin": 6.633333333333333, - "count": 2 - }, - { - "bin": 10.121666666666666, - "count": 4 - }, - { - "bin": 11.285, - "count": 3 - }, - { - "bin": 12.354166666666666, - "count": 4 - }, - { - "bin": 12.883333333333333, - "count": 7 - }, - { - "bin": 14.240370370370371, - "count": 6 - }, - { - "bin": 15.396, - "count": 5 - }, - { - "bin": 16.08, - "count": 1 - }, - { - "bin": 18.533333333333335, - "count": 1 - } - ] - }, - "echocardiographs_lvef": { - "numOfNotNull": 66, - "min": 1.5, - "max": 76.14, - "avg": 44.916363636363634, - "q1": 37.42, - "q2": 43.01, - "q3": 54.4, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 22.836000000000002, - "count": 5 - }, - { - "bin": 32.3, - "count": 7 - }, - { - "bin": 37.42, - "count": 15 - }, - { - "bin": 42.903333333333336, - "count": 6 - }, - { - "bin": 50.18, - "count": 2 - }, - { - "bin": 54.58863636363637, - "count": 22 - }, - { - "bin": 66.17, - "count": 4 - }, - { - "bin": 76.14, - "count": 3 - } - ] - }, - "conditions_has_myocardial_infarction_any": { - "numOfNotNull": 77, - "numOfTrue": 8 - }, - "lab_results_urinary_creatinine_value_p3a_avg": { - "numOfNotNull": 0 - }, - "lab_results_sodium_value_p3a_avg": { - "numOfNotNull": 41, - "min": 13.5, - "max": 152.45, - "avg": 137.7574668989547, - "q1": 137.87, - "q2": 140.57857142857142, - "q3": 142.68333333333334, - "histogram": [ - { - "bin": 13.5, - "count": 1 - }, - { - "bin": 136.50125, - "count": 4 - }, - { - "bin": 137.685, - "count": 6 - }, - { - "bin": 138.94791666666669, - "count": 6 - }, - { - "bin": 140.2580357142857, - "count": 4 - }, - { - "bin": 141.92371428571428, - "count": 7 - }, - { - "bin": 143.00598148148148, - "count": 9 - }, - { - "bin": 144.2575, - "count": 2 - }, - { - "bin": 146.23666666666668, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "patient_demographics_gender": { - "numOfNotNull": 75, - "valueSet": [ - "female", - "male" - ], - "cardinalityPerItem": { - "female": 9, - "male": 66 - } - }, - "conditions_has_pci_any": { - "numOfNotNull": 77, - "numOfTrue": 0 - }, - "conditions_has_diabetes_any": { - "numOfNotNull": 77, - "numOfTrue": 0 - }, - "patient_demographics_age": { - "numOfNotNull": 75, - "min": 16.0, - "max": 91.0, - "avg": 62.733333333333334, - "q1": 44.0, - "q2": 73.0, - "q3": 81.0, - "histogram": [ - { - "bin": 17.200000000000003, - "count": 5 - }, - { - "bin": 26.0, - "count": 5 - }, - { - "bin": 40.125, - "count": 8 - }, - { - "bin": 44.0, - "count": 1 - }, - { - "bin": 52.5, - "count": 12 - }, - { - "bin": 70.80000000000001, - "count": 5 - }, - { - "bin": 74.0, - "count": 11 - }, - { - "bin": 77.71428571428572, - "count": 7 - }, - { - "bin": 82.5, - "count": 12 - }, - { - "bin": 88.00000000000001, - "count": 9 - } - ] - }, - "vital_signs_systolic_blood_pressure_value_p3a_avg": { - "numOfNotNull": 43, - "min": 35.666666666666664, - "max": 133.85, - "avg": 114.07771548541898, - "q1": 111.3875, - "q2": 119.03375, - "q3": 122.38, - "histogram": [ - { - "bin": 35.666666666666664, - "count": 1 - }, - { - "bin": 45.0, - "count": 1 - }, - { - "bin": 98.66, - "count": 2 - }, - { - "bin": 107.2, - "count": 1 - }, - { - "bin": 109.81430555555555, - "count": 6 - }, - { - "bin": 113.4296142857143, - "count": 5 - }, - { - "bin": 116.12887499999998, - "count": 4 - }, - { - "bin": 120.0968634259259, - "count": 12 - }, - { - "bin": 123.57500000000002, - "count": 8 - }, - { - "bin": 133.2811111111111, - "count": 3 - } - ] - }, - "conditions_has_cabg_any": { - "numOfNotNull": 77, - "numOfTrue": 0 - }, - "med_beta_blocker_use_administered": { - "numOfNotNull": 68, - "numOfTrue": 68 - }, - "nyha_nyha": { - "numOfNotNull": 69, - "valueSet": [ - "LA28407-7", - "LA28405-1", - "LA28406-9" - ], - "cardinalityPerItem": { - "LA28405-1": 20, - "LA28406-9": 34, - "LA28407-7": 15 - } - }, - "conditions_has_atrial_fibrillation_any": { - "numOfNotNull": 77, - "numOfTrue": 17 - }, - "smoking_status_smoker": { - "numOfNotNull": 31, - "valueSet": [ - "1", - "0" - ], - "cardinalityPerItem": { - "0": 1, - "1": 30 - } - } - }, - "outcomeStats": { - "patient_demographics_deceased_in_12_months_f": { - "numOfNotNull": 75, - "numOfTrue": 5 - }, - "patient_demographics_deceased_in_36_months_f": { - "numOfNotNull": 75, - "numOfTrue": 7 - }, - "patient_demographics_deceased_in_24_months_f": { - "numOfNotNull": 75, - "numOfTrue": 6 - }, - "patient_demographics_deceased_in_48_months_f": { - "numOfNotNull": 75, - "numOfTrue": 7 - }, - "patient_demographics_months_to_death_or_last_record_date_f": { - "numOfNotNull": 21, - "min": -125.0, - "max": 31.0, - "avg": -10.19047619047619, - "q1": 0.0, - "q2": 2.0, - "q3": 9.0, - "histogram": [ - { - "bin": -125.0, - "count": 1 - }, - { - "bin": -113.0, - "count": 1 - }, - { - "bin": -101.0, - "count": 1 - }, - { - "bin": 0.2857142857142857, - "count": 7 - }, - { - "bin": 2.5, - "count": 2 - }, - { - "bin": 6.5, - "count": 2 - }, - { - "bin": 8.666666666666666, - "count": 3 - }, - { - "bin": 14.5, - "count": 2 - }, - { - "bin": 19.0, - "count": 1 - }, - { - "bin": 31.0, - "count": 1 - } - ] - } - } - } - } -} \ No newline at end of file diff --git a/dataset/study1/f8dc7b8c-bc6f-4584-b8a5-91f3ec7a53b9/part-00000-4fd6e72f-345a-4682-b712-630cdcf23d8e-c000.snappy.parquet b/dataset/study1/f8dc7b8c-bc6f-4584-b8a5-91f3ec7a53b9/part-00000-4fd6e72f-345a-4682-b712-630cdcf23d8e-c000.snappy.parquet deleted file mode 100644 index 65b1dac..0000000 Binary files a/dataset/study1/f8dc7b8c-bc6f-4584-b8a5-91f3ec7a53b9/part-00000-4fd6e72f-345a-4682-b712-630cdcf23d8e-c000.snappy.parquet and /dev/null differ diff --git a/dataset/study1/metadata.json b/dataset/study1/metadata.json deleted file mode 100644 index e98585f..0000000 --- a/dataset/study1/metadata.json +++ /dev/null @@ -1,10160 +0,0 @@ -{ - "entity": { - "id": "f8dc7b8c-bc6f-4584-b8a5-91f3ec7a53b9", - "population": { - "url": "https://datatools4heart.eu/cohorts/study1|0.1", - "title": "Hospitalized Patients with Primary Diagnosis of Heart Failure", - "description": "This cohort includes patients hospitalized with a primary discharge diagnosis of heart failure. The primary discharge diagnosis refers to the main clinical condition responsible for the hospital admission.", - "pipeline": { - "reference": "PopulationPipeline/study1/_history/1", - "display": "Hospitalized Patients with Primary Diagnosis of Heart Failure" - } - }, - "featureSet": { - "url": "https://datatools4heart.eu/feature-sets/study1", - "title": "Dataset for DataTools4Heart project clinical study 1", - "description": "Dataset for DataTools4Heart project clinical study 1", - "pipeline": { - "reference": "FeatureSet/study1-fs/_history/1", - "display": "Dataset for DataTools4Heart project clinical study 1" - } - }, - "dataSource": { - "id": "myFhirServer", - "name": "myFhirServer", - "interface": "fhir", - "version": "R5", - "sourceType": "fhir-api" - }, - "issued": "2025-07-04T08:23:38.259001700Z", - "temporal": { - "end": "2025-07-04T08:19:34.573Z" - }, - "baseVariables": [ - { - "name": "pid", - "description": "A unique identifier assigned to each patient in the cohort.", - "dataType": "IDENTIFIER", - "generatedDescription": [] - }, - { - "name": "encounterId", - "description": "A unique identifier for each hospital encounter.", - "dataType": "IDENTIFIER", - "generatedDescription": [] - }, - { - "name": "eventTime", - "description": "The time when the entity becomes eligible for the specified cohort. e.g. time of diagnosis for a cohort specific to a disease", - "dataType": "DATETIME", - "generatedDescription": [] - }, - { - "name": "exitTime", - "description": "The time when the entity is no longer eligible for the specified cohort. e.g. time of death, time of discharge", - "dataType": "DATETIME", - "generatedDescription": [] - }, - { - "name": "referenceTimePoint", - "description": "The sampling time point based on which the features and outcomes are calculated", - "dataType": "DATETIME", - "generatedDescription": [] - } - ], - "features": [ - { - "name": "patient_demographics_gender", - "description": "Gender of the patient", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "url": "http://hl7.org/fhir/ValueSet/administrative-gender", - "concept": [ - { - "code": "male", - "display": "Male" - }, - { - "code": "female", - "display": "Female" - }, - { - "code": "other", - "display": "Other" - }, - { - "code": "unknown", - "display": "Unknown" - } - ] - } - }, - { - "name": "patient_demographics_age", - "description": "Age of the patient at reference point", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "encounters_encounterClass", - "description": "Type of encounter (emergency, impatient, outpatient, etc)", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "url": "https://datatools4heart.eu/fhir/ValueSet/encounter-class", - "concept": [ - { - "code": "IMP", - "display": "inpatient encounter" - }, - { - "code": "AMB", - "display": "ambulatory" - }, - { - "code": "OBSENC", - "display": "observation encounter" - }, - { - "code": "EMER", - "display": "emergency" - }, - { - "code": "VR", - "display": "virtual" - }, - { - "code": "HH", - "display": "home health" - }, - { - "code": "SS", - "display": "short stay" - } - ] - } - }, - { - "name": "encounters_admissionYear", - "description": "Year of admission to hospital", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "encounters_lengthOfStay", - "description": "The total number of days the patient has been hospitalized.", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "encounters_admissionDate", - "description": "Date of hospital admission.", - "dataType": "DATETIME", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "encounters_dischargeDate", - "description": "Date of hospital discharge.", - "dataType": "DATETIME", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "latest value", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "minimum among values", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "maximum among values", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "average of values", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "standard deviation of values", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_beforeAdmission_weight_value_pET_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for weight (pivot value = '29463-7')", - "filtering Filter the vital signs observed before the admission.", - "earliest value", - "since %eventTime - 6mo" - ] - }, - { - "name": "vital_signs_height_value_pRTP_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for height (pivot value = '8302-2')", - "average of values", - "since %referenceTimePoint - 1a" - ] - }, - { - "name": "vital_signs_systolicBp_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "vital_signs_systolicBp_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "earliest value", - "until that time point" - ] - }, - { - "name": "vital_signs_systolicBp_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "average of values", - "until that time point" - ] - }, - { - "name": "vital_signs_systolicBp_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_systolicBp_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_systolicBp_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for systolicBp (pivot value = '8480-6')", - "latest value", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_diastolicBp_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for diastolicBp (pivot value = '8462-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_heartRate_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for heartRate (pivot value = '8867-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_stddev", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_first", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "earliest value", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_avg", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "average of values", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_max", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_min", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "vital_signs_oxygenSaturation_value_last", - "description": "Value of the vital sign", - "dataType": "NUMERIC", - "generatedDescription": [ - "for oxygenSaturation (pivot value = '2708-6')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_hemoglobin_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hemoglobin (pivot value = '718-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_ferritin_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ferritin (pivot value = '2276-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_tfs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tfs (pivot value = '2502-3')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_ntProBnp_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ntProBnp (pivot value = '33762-6')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_bnp_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bnp (pivot value = '30934-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_crpHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpHs (pivot value = '1988-5')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_crpNonHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for crpNonHs (pivot value = '30522-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropIHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropIHs (pivot value = '89579-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropInHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropInHs (pivot value = '10839-9')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropTHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTHs (pivot value = '67151-1')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_tropTnHs_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for tropTnHs (pivot value = '6598-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_triGly_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for triGly (pivot value = '14927-8')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_cholTot_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for cholTot (pivot value = '14647-2')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_hdl_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hdl (pivot value = '14646-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_ldl_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for ldl (pivot value = '22748-8')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_potassium_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for potassium (pivot value = '2823-3')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_sodium_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for sodium (pivot value = '2951-2')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_creatBS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatBS (pivot value = '2160-0')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_creatUS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for creatUS (pivot value = '2161-8')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_albuminBS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminBS (pivot value = '1751-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_albuminUS_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for albuminUS (pivot value = '1754-1')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_eGFR_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for eGFR (pivot value = '69405-9')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_bun_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for bun (pivot value = '14937-7')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_acr_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for acr (pivot value = '32294-1')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c%_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c% (pivot value = '4548-4')", - "latest value", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_min", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "minimum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_stddev", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "standard deviation of values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_avg", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "average of values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_max", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "maximum among values", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_first", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "earliest value", - "until that time point" - ] - }, - { - "name": "lab_results_hba1c_value_last", - "description": "Value of the lab result", - "dataType": "NUMERIC", - "generatedDescription": [ - "for hba1c (pivot value = '41995-2')", - "latest value", - "until that time point" - ] - }, - { - "name": "symptoms_firstTwentyFourHours_Ankle_swelling_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Ankle_swelling (pivot value = '267039000')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Ascites_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Ascites (pivot value = '389026000')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Breathlessness_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Breathlessness (pivot value = '267036007')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Cardiac_murmur_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Cardiac_murmur (pivot value = '59495006')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Chest_pain_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Chest_pain (pivot value = '29857009')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Cheyne_stokes_respiration_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Cheyne_stokes_respiration (pivot value = '90480005')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Depression_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Depression (pivot value = '35489007')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Dizziness_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Dizziness (pivot value = '404640003')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Elevated_jugular_venous_pressure_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Elevated_jugular_venous_pressure (pivot value = '22447003')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Fatigue_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Fatigue (pivot value = '84229001')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Hepatojugular_reflux_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Hepatojugular_reflux (pivot value = '72196001')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Hepatomegaly_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Hepatomegaly (pivot value = '80515008')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Intermittent_claudication_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Intermittent_claudication (pivot value = '63491006')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Irregular_pulse_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Irregular_pulse (pivot value = '361137007')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Loss_of_appetite_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Loss_of_appetite (pivot value = '79890006')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Nocturnal_cough_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Nocturnal_cough (pivot value = '161947006')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Oliguria_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Oliguria (pivot value = '83128009')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Orthopnoea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Orthopnoea (pivot value = '62744007')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Palpitations_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Palpitations (pivot value = '80313002')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Paroxysmal_nocturnal_dyspnea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Paroxysmal_nocturnal_dyspnea (pivot value = '55442000')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Peripheral_edema_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Peripheral_edema (pivot value = '271809000')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Pleural_effusion_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Pleural_effusion (pivot value = '60046008')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Pulmonary_crepitations_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Pulmonary_crepitations (pivot value = '48409008')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Reduced_exercise_tolerance_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Reduced_exercise_tolerance (pivot value = '267044007')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Syncope_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Syncope (pivot value = '272030005')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Tachycardia_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Tachycardia (pivot value = '3424008')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Tachypnoea_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Tachypnoea (pivot value = '271823003')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Third_heart_sound_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Third_heart_sound (pivot value = '1285004')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Weight_gain_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Weight_gain (pivot value = '8943002')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "symptoms_firstTwentyFourHours_Weight_loss_display_any", - "description": "Whether the symptom is observed or not", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Weight_loss (pivot value = '89362005')", - "filtering Filters symptoms that appeared within the first 24 hours of hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "echocardiographs_lvef_pET_first", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "since %eventTime - 6mo" - ] - }, - { - "name": "echocardiographs_lvef_pET_stddev", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "standard deviation of values", - "since %eventTime - 6mo" - ] - }, - { - "name": "echocardiographs_lvef_pET_min", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "minimum among values", - "since %eventTime - 6mo" - ] - }, - { - "name": "echocardiographs_lvef_pET_max", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "maximum among values", - "since %eventTime - 6mo" - ] - }, - { - "name": "echocardiographs_lvef_pET_avg", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "average of values", - "since %eventTime - 6mo" - ] - }, - { - "name": "echocardiographs_lvef_pET_last", - "description": "Value of left ventricular ejection fraction", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "since %eventTime - 6mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_last", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_stddev", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "standard deviation of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_max", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "maximum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_first", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_min", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "minimum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_duration_pET_avg", - "description": "Duration of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "average of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_avg", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "average of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_last", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_stddev", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "standard deviation of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_min", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "minimum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_first", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qrs_axis_pET_max", - "description": "Axis of QRS wave", - "dataType": "NUMERIC", - "generatedDescription": [ - "maximum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_avg", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "average of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_stddev", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "standard deviation of values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_max", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "maximum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_first", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_min", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "minimum among values", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_qt_duration_corrected_pET_last", - "description": "Duration of QT wave corrected", - "dataType": "NUMERIC", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_st_pET", - "description": "ST-elevation", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_ischemia_without_st_pET", - "description": "Ischemia without st-elevation", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ] - }, - { - "name": "electrocardiographs_ecg_type_of_rhythm_pET_first", - "description": "Type of rhythm", - "dataType": "NOMINAL", - "generatedDescription": [ - "earliest value", - "since %eventTime - 1mo" - ], - "valueSet": { - "url": "http://loinc.org", - "concept": [ - { - "code": "LA17083-9", - "display": "Agonal/idioventricular" - }, - { - "code": "LA17068-0", - "display": "Asystole" - }, - { - "code": "LA17084-7", - "display": "Atrial fibrillation" - }, - { - "code": "LA17085-4", - "display": "Atrial flutter" - }, - { - "code": "LA17086-2", - "display": "AV block-1st degree" - }, - { - "code": "LA17087-0", - "display": "AV block-2nd degree-type 1" - }, - { - "code": "LA17088-8", - "display": "AV block-2nd degree-type 2" - }, - { - "code": "LA17089-6", - "display": "AV block-3rd degree" - }, - { - "code": "LA17090-4", - "display": "Junctional" - }, - { - "code": "LA17091-2", - "display": "Left bundle branch block" - }, - { - "code": "LA17718-0", - "display": "Sinus rhythm" - }, - { - "code": "LA17093-8", - "display": "Paced rhythm" - }, - { - "code": "LA17070-6", - "display": "PEA" - }, - { - "code": "LA17094-6", - "display": "Premature atrial contractions" - }, - { - "code": "LA17095-3", - "display": "Premature ventricular contractions" - }, - { - "code": "LA17096-1", - "display": "Right bundle branch block" - }, - { - "code": "LA17097-9", - "display": "Sinus arrhythmia" - }, - { - "code": "LA17098-7", - "display": "Sinus bradycardia" - }, - { - "code": "LA17099-5", - "display": "Sinus tachycardia" - }, - { - "code": "LA17100-1", - "display": "Supraventricular tachycardia" - }, - { - "code": "LA17101-9", - "display": "Torsades de points" - }, - { - "code": "LA17071-4", - "display": "Unknown AED non-shockable rhythm" - }, - { - "code": "LA17072-2", - "display": "Unknown AED shockable rhythm" - }, - { - "code": "LA17073-0", - "display": "Ventricular fibrillation" - }, - { - "code": "LA17708-1", - "display": "Ventricular tachycardia with pulse" - }, - { - "code": "LA17074-8", - "display": "Ventricular tachycardia-pulseless" - }, - { - "code": "LA12904-1", - "display": "Artifact" - }, - { - "code": "LA18206-5", - "display": "Non-STEMI inferior ischemia" - }, - { - "code": "LA18205-7", - "display": "Non-STEMI anterior ischemia" - }, - { - "code": "LA18207-3", - "display": "Non-STEMI lateral ischemia" - }, - { - "code": "LA18208-1", - "display": "Non-STEMI posterior ischemia" - }, - { - "code": "LA32915-3", - "display": "Non-STEMI septal ischemia" - }, - { - "code": "LA17703-2", - "display": "STEMI-anterior ischemia" - }, - { - "code": "LA17704-0", - "display": "STEMI-inferior ischemia" - }, - { - "code": "LA17705-7", - "display": "STEMI-lateral ischemia" - }, - { - "code": "LA17706-5", - "display": "STEMI-posterior ischemia" - }, - { - "code": "LA32916-1", - "display": "STEMI septal ischemia" - }, - { - "code": "LA17059-9", - "display": "Other (not listed)" - } - ] - } - }, - { - "name": "electrocardiographs_ecg_type_of_rhythm_pET_last", - "description": "Type of rhythm", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "since %eventTime - 1mo" - ], - "valueSet": { - "url": "http://loinc.org", - "concept": [ - { - "code": "LA17083-9", - "display": "Agonal/idioventricular" - }, - { - "code": "LA17068-0", - "display": "Asystole" - }, - { - "code": "LA17084-7", - "display": "Atrial fibrillation" - }, - { - "code": "LA17085-4", - "display": "Atrial flutter" - }, - { - "code": "LA17086-2", - "display": "AV block-1st degree" - }, - { - "code": "LA17087-0", - "display": "AV block-2nd degree-type 1" - }, - { - "code": "LA17088-8", - "display": "AV block-2nd degree-type 2" - }, - { - "code": "LA17089-6", - "display": "AV block-3rd degree" - }, - { - "code": "LA17090-4", - "display": "Junctional" - }, - { - "code": "LA17091-2", - "display": "Left bundle branch block" - }, - { - "code": "LA17718-0", - "display": "Sinus rhythm" - }, - { - "code": "LA17093-8", - "display": "Paced rhythm" - }, - { - "code": "LA17070-6", - "display": "PEA" - }, - { - "code": "LA17094-6", - "display": "Premature atrial contractions" - }, - { - "code": "LA17095-3", - "display": "Premature ventricular contractions" - }, - { - "code": "LA17096-1", - "display": "Right bundle branch block" - }, - { - "code": "LA17097-9", - "display": "Sinus arrhythmia" - }, - { - "code": "LA17098-7", - "display": "Sinus bradycardia" - }, - { - "code": "LA17099-5", - "display": "Sinus tachycardia" - }, - { - "code": "LA17100-1", - "display": "Supraventricular tachycardia" - }, - { - "code": "LA17101-9", - "display": "Torsades de points" - }, - { - "code": "LA17071-4", - "display": "Unknown AED non-shockable rhythm" - }, - { - "code": "LA17072-2", - "display": "Unknown AED shockable rhythm" - }, - { - "code": "LA17073-0", - "display": "Ventricular fibrillation" - }, - { - "code": "LA17708-1", - "display": "Ventricular tachycardia with pulse" - }, - { - "code": "LA17074-8", - "display": "Ventricular tachycardia-pulseless" - }, - { - "code": "LA12904-1", - "display": "Artifact" - }, - { - "code": "LA18206-5", - "display": "Non-STEMI inferior ischemia" - }, - { - "code": "LA18205-7", - "display": "Non-STEMI anterior ischemia" - }, - { - "code": "LA18207-3", - "display": "Non-STEMI lateral ischemia" - }, - { - "code": "LA18208-1", - "display": "Non-STEMI posterior ischemia" - }, - { - "code": "LA32915-3", - "display": "Non-STEMI septal ischemia" - }, - { - "code": "LA17703-2", - "display": "STEMI-anterior ischemia" - }, - { - "code": "LA17704-0", - "display": "STEMI-inferior ischemia" - }, - { - "code": "LA17705-7", - "display": "STEMI-lateral ischemia" - }, - { - "code": "LA17706-5", - "display": "STEMI-posterior ischemia" - }, - { - "code": "LA32916-1", - "display": "STEMI septal ischemia" - }, - { - "code": "LA17059-9", - "display": "Other (not listed)" - } - ] - } - }, - { - "name": "smoking_status_smoker_last", - "description": "Determines if the patient is currently smoking. A patient is considered a current smoker if their last recorded smoking status is one of the following: 'Current every day smoker,' 'Current some day smoker,' 'Smoker, current status unknown,' 'Current heavy tobacco smoker,' or 'Current light tobacco smoker' and either has no recorded end date or the end date is after the reference time point. If the last recorded status is 'Former smoker' and it has an end date before the reference time point, the patient is considered a current smoker. If the status is 'Unknown if ever smoked,' the result is empty; otherwise, the patient is considered a non-smoker.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "smoking_status_formerSmoker_last", - "description": "Whether the patient smoked within 1 year prior to the admission end.The patient is considered to have smoked if their most recent smoking status is 'Current every day smoker,' 'Current some day smoker,' 'Smoker, current status unknown,' 'Current heavy tobacco smoker,' or 'Current light tobacco smoker' and either: 1. The recorded start date is within 365 days of the reference time point, 2. There is no recorded end date, or 3. The recorded end date is within 365 days of the reference time point. If the last recorded status is 'Former smoker,' the patient is considered to have smoked in the past year if either the smoking start date is within 365 days of the reference time point or the smoking end date is before the reference time point. If the status is 'Unknown if ever smoked,' the result is empty; otherwise, the patient is considered a non-smoker.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "latest value", - "until that time point" - ] - }, - { - "name": "smoking_status_smoker_totalSmokingDuration_sum", - "description": "Total duration of smoking in days.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for Filter the active smoking status.", - "sum of values", - "until that time point" - ] - }, - { - "name": "smoking_status_smoker_startTime_count", - "description": "Total number of smoking periods.", - "dataType": "NUMERIC", - "generatedDescription": [ - "for Filter the active smoking status.", - "number of values", - "until that time point" - ], - "default": 0 - }, - { - "name": "nyha_nyha_pET", - "description": "New York Heart Assessment value", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "since %eventTime - 6mo" - ], - "valueSet": { - "url": "https://datatools4heart.eu/fhir/ValueSet/nyha-classification", - "concept": [ - { - "code": "LA28404-4", - "display": "Class-I" - }, - { - "code": "LA28405-1", - "display": "Class-II" - }, - { - "code": "LA28406-9", - "display": "Class-III" - }, - { - "code": "LA28407-7", - "display": "Class-IV" - } - ] - } - }, - { - "name": "hyperkalemia_severity_categorizedValue", - "description": "Severity of hyperkalemia", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "concept": [ - { - "code": "severe", - "display": "Severe" - }, - { - "code": "moderate", - "display": "Moderate" - }, - { - "code": "mild", - "display": "Mild" - }, - { - "code": "normal", - "display": "Normal" - } - ] - } - }, - { - "name": "ckd_severity_categorizedValue", - "description": "Severity of chronic kidney disease", - "dataType": "NOMINAL", - "generatedDescription": [ - "latest value", - "until that time point" - ], - "valueSet": { - "concept": [ - { - "code": "advanced", - "display": "Advanced" - }, - { - "code": "moderate", - "display": "Moderate" - }, - { - "code": "mild", - "display": "Mild" - }, - { - "code": "normal", - "display": "Normal" - } - ] - } - }, - { - "name": "conditions_heartFailure_timeFromEarliest_first", - "description": "Time elapsed (in months) since heart failure is observed for the first time until the reference time point.", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "until that time point" - ] - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_ap_any", - "description": "Whether the patient has angina pectoris in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_af_any", - "description": "Whether the patient has atrial fibrillation in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_cm_any", - "description": "Whether the patient has cardiomyopathy in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_dysl_any", - "description": "Whether the patient has dyslipidemia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_hf_any", - "description": "Whether the patient has heart failure in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_hyp_any", - "description": "Whether the patient has hypertension in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_ihd_any", - "description": "Whether the patient has ischemic heart disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_mi_any", - "description": "Whether the patient has myocardial infarction in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_pad_any", - "description": "Whether the patient has peripheral artery disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_stroke_any", - "description": "Whether the patient has stroke in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_tia_any", - "description": "Whether the patient has transient ischemic attack in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_vd_any", - "description": "Whether the patient has valvular disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_revasc_any", - "description": "Whether the patient has revascularized CABG, PCI in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_devices_any", - "description": "Whether the patient has cardiac and vascular implants and grafts in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_aidshiv_any", - "description": "Whether the patient has AIDS or HIV in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_copd_any", - "description": "Whether the patient has COPD in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_diabetes_any", - "description": "Whether the patient has diabetes mellitus in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_dem_any", - "description": "Whether the patient has dementia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_dep_any", - "description": "Whether the patient has depression in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_dia_any", - "description": "Whether the patient has dialysis in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_hthyroid_any", - "description": "Whether the patient has hyperthyroidism in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_ibd_any", - "description": "Whether the patient has inflammable bowel disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_ld_any", - "description": "Whether the patient has liver disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_mc_any", - "description": "Whether the patient has malignant cancer in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_osa_any", - "description": "Whether the patient has obstructive sleep apnea in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_rd_any", - "description": "Whether the patient has rheumatic disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_betweenHospitalAdmissionAndDischargeTime_ckd_chronic_any", - "description": "Whether the patient has renal disease chronic in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred within the hospital admission and discharge timeframe.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_ap_any", - "description": "Whether the patient has angina pectoris in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_af_any", - "description": "Whether the patient has atrial fibrillation in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_cm_any", - "description": "Whether the patient has cardiomyopathy in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_dysl_any", - "description": "Whether the patient has dyslipidemia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_hf_any", - "description": "Whether the patient has heart failure in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_hyp_any", - "description": "Whether the patient has hypertension in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_ihd_any", - "description": "Whether the patient has ischemic heart disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_mi_any", - "description": "Whether the patient has myocardial infarction in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_pad_any", - "description": "Whether the patient has peripheral artery disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_stroke_any", - "description": "Whether the patient has stroke in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_tia_any", - "description": "Whether the patient has transient ischemic attack in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_vd_any", - "description": "Whether the patient has valvular disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_revasc_any", - "description": "Whether the patient has revascularized CABG, PCI in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_devices_any", - "description": "Whether the patient has cardiac and vascular implants and grafts in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_aidshiv_any", - "description": "Whether the patient has AIDS or HIV in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_copd_any", - "description": "Whether the patient has COPD in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_diabetes_any", - "description": "Whether the patient has diabetes mellitus in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_dem_any", - "description": "Whether the patient has dementia in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_dep_any", - "description": "Whether the patient has depression in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_dia_any", - "description": "Whether the patient has dialysis in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_hthyroid_any", - "description": "Whether the patient has hyperthyroidism in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_ibd_any", - "description": "Whether the patient has inflammable bowel disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_ld_any", - "description": "Whether the patient has liver disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_mc_any", - "description": "Whether the patient has malignant cancer in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_osa_any", - "description": "Whether the patient has obstructive sleep apnea in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_rd_any", - "description": "Whether the patient has rheumatic disease in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "conditions_beforeHospitalAdmission_ckd_chronic_any", - "description": "Whether the patient has renal disease chronic in their clinical history prior to the date of the data point (i.e. the reference time point)", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters conditions that occurred prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_rasi_any", - "description": "Whether renin–angiotensin system inhibitor administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_arni_any", - "description": "Whether angiotensin receptor-neprilysin inhibitor (ARNi) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_acei_any", - "description": "Whether angiotensin-converting enzyme (ACE)-inhibitors administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_arb_any", - "description": "Whether angiotensin receptor blocker (ARB) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_mra_any", - "description": "Whether mineralcorticoid receptor antagonist administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_diuretics_any", - "description": "Whether diuretics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_diuretics_loop_any", - "description": "Whether Loop diuretics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_anti_coag_any", - "description": "Whether anticoagulant agents administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_anti_plat_any", - "description": "Whether antiplatelet agents administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_thrombolytic_any", - "description": "Whether thrombolytic drugs/fibrinolytics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_bb_any", - "description": "Whether beta blockers administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_ccb_any", - "description": "Whether calcium channel blockers administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_digitalis_any", - "description": "Whether digitalis glycosides administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_antiarrhytmic_any", - "description": "Whether antiarrhythmic drugs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_inotropes_any", - "description": "Whether inotropes administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_vasodil_any", - "description": "Whether vasodil administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_platelet_any", - "description": "Whether platelet administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_ll_any", - "description": "Whether ll administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_ivabradine_any", - "description": "Whether ivabradine administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_potassium_binders_any", - "description": "Whether potassium_binders administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_insulins_any", - "description": "Whether insulins and analogs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_oral_antidiabetic_any", - "description": "Whether oral_antidiabetic administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_ari_any", - "description": "Whether ari (drugs to prevent nerve damage in diabetes) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_rdoad_any", - "description": "Whether respiratory drugs for obstructive airway diseases, inhalants administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_rdoad_syst_any", - "description": "Whether respiratory drugs for obstructive airway diseases, systemic use administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_cortico_syst_any", - "description": "Whether corticosteroids systemic administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_antiinfl_any", - "description": "Whether anti-inflammatory drugs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_rasi_any", - "description": "Whether renin–angiotensin system inhibitor administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_arni_any", - "description": "Whether angiotensin receptor-neprilysin inhibitor (ARNi) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_acei_any", - "description": "Whether angiotensin-converting enzyme (ACE)-inhibitors administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_arb_any", - "description": "Whether angiotensin receptor blocker (ARB) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_mra_any", - "description": "Whether mineralcorticoid receptor antagonist administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_diuretics_any", - "description": "Whether diuretics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_diuretics_loop_any", - "description": "Whether Loop diuretics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_anti_coag_any", - "description": "Whether anticoagulant agents administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_anti_plat_any", - "description": "Whether antiplatelet agents administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_thrombolytic_any", - "description": "Whether thrombolytic drugs/fibrinolytics administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_bb_any", - "description": "Whether beta blockers administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_ccb_any", - "description": "Whether calcium channel blockers administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_digitalis_any", - "description": "Whether digitalis glycosides administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_antiarrhytmic_any", - "description": "Whether antiarrhythmic drugs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_inotropes_any", - "description": "Whether inotropes administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_vasodil_any", - "description": "Whether vasodil administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_platelet_any", - "description": "Whether platelet administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_ll_any", - "description": "Whether ll administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_ivabradine_any", - "description": "Whether ivabradine administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_potassium_binders_any", - "description": "Whether potassium_binders administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_insulins_any", - "description": "Whether insulins and analogs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_oral_antidiabetic_any", - "description": "Whether oral_antidiabetic administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_ari_any", - "description": "Whether ari (drugs to prevent nerve damage in diabetes) administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_rdoad_any", - "description": "Whether respiratory drugs for obstructive airway diseases, inhalants administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_rdoad_syst_any", - "description": "Whether respiratory drugs for obstructive airway diseases, systemic use administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_cortico_syst_any", - "description": "Whether corticosteroids systemic administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - }, - { - "name": "med_everUsedBeforeHospitalAdmission_antiinfl_any", - "description": "Whether anti-inflammatory drugs administered.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "for Filters medication that used prior to hospital admission.", - "if any true", - "until that time point" - ], - "default": false - } - ], - "outcomes": [ - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w7d_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w1mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w3mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w6mo_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w1a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w3a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_heartFailure_f5a_w5a_any", - "description": "Whether the patient is hospitalized because of heart failure after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_HF_number_of_days_to_rehosp_for_heart_failure_f5a_first", - "description": "Number of days from reference time point until rehospitalization due to heart failure", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w7d_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w1mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w3mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w6mo_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w1a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w3a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_CV_Disease_f5a_w5a_any", - "description": "Whether the patient is hospitalized because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_CV_number_of_days_to_rehosp_for_CV_f5a_first", - "description": "Number of days from reference time point until rehospitalization due to CV disease", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w7d_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w1mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w3mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w6mo_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w1a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w3a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w5a_any", - "description": "Whether the patient is hospitalized because of any non-cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_non_CV_number_of_days_to_rehosp_for_non_CV_f5a_first", - "description": "Number of days from reference time point until rehospitalization due to non-CV disease", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w7d_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w1mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w3mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w6mo_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w1a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w3a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_renal_complications_f5a_w5a_any", - "description": "Whether the patient is hospitalized because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "encounter_primary_reason_renal_number_of_days_to_rehosp_for_renal_complications_f5a_first", - "description": "Number of days from reference time point until rehospitalization due to renal complications", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w7d_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w1mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w3mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w6mo_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w1a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w3a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_isCardiovascular_f5a_w5a_any", - "description": "Whether the patient dies because of any cardiovascular condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isCV_number_of_days_to_death_for_CV_f5a_first", - "description": "Number of days from reference time point until death due to CV disease", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w7d_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w1mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w3mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w6mo_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w1a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w3a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_isRenal_f5a_w5a_any", - "description": "Whether the patient dies because of any renal complication after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isRenal_number_of_days_to_death_for_renal_f5a_first", - "description": "Number of days from reference time point until death due to renal complications", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w7d_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w1mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w3mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w6mo_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w1a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w3a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w5a_any", - "description": "Whether the patient dies because of any non-cardiovascular and non-renal condition after the reference time point.", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isNonRenalAndNonCV_number_of_days_to_death_for_non_renal_and_non_CV_f5a_first", - "description": "Number of days from reference time point until death due to non-CV and non-renal complications", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w7d_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 7 day period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w1mo_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w3mo_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w6mo_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 6 month period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w1a_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 1 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w3a_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 3 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_isAllCause_f5a_w5a_any", - "description": "Whether the patient dies because of unspecified condition after the reference time point..", - "dataType": "BOOLEAN", - "generatedDescription": [ - "if any true", - "within 1st next 5 year period" - ], - "default": false - }, - { - "name": "cause_of_death_isAllCause_number_of_days_to_death_for_all_cause_f5a_first", - "description": "Number of days from reference time point until death due to unspecified condition", - "dataType": "NUMERIC", - "generatedDescription": [ - "earliest value", - "within next 5 year" - ] - } - ], - "populationStats": { - "numOfEntries": 18, - "entityStats": { - "pid": { - "numOfEntity": 14, - "maxEntriesPerEntity": 4, - "avgEntriesPerEntity": 1.2857142857142858 - }, - "encounterId": { - "numOfEntity": 18, - "maxEntriesPerEntity": 1, - "avgEntriesPerEntity": 1.0 - } - }, - "eligibilityPeriodStats": { - "period": "min", - "min": 0, - "max": 0, - "avg": 0.0, - "ongoing": 18 - }, - "eligibilityCriteriaStats": { - "entryStats": { - "Patient's encounter.": 18 - }, - "exitStats": {}, - "eligibilityStats": { - "eligibility[0]": 18 - } - } - }, - "datasetStats": { - "numOfEntries": 18, - "entityStats": { - "pid": 14, - "encounterId": 18 - }, - "samplingStats": { - "max": 1, - "min": 1, - "avg": 1.0 - }, - "secondaryTimePointStats": {}, - "featureStats": { - "med_anti_plat_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Weight_loss_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_anti_coag_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropTHs_value_last": { - "numOfNotNull": 0 - }, - "lab_results_hba1c_value_avg": { - "numOfNotNull": 0 - }, - "vital_signs_diastolicBp_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_cholTot_value_last": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_ll_any": { - "numOfNotNull": 18, - "numOfTrue": 5 - }, - "conditions_beforeHospitalAdmission_pad_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_acr_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_bun_value_max": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Tachypnoea_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Orthopnoea_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_ari_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hemoglobin_value_stddev": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_stddev": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_stroke_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "nyha_nyha_pET": { - "numOfNotNull": 11, - "valueSet": [ - "LA28407-7", - "LA28405-1", - "LA28406-9" - ], - "cardinalityPerItem": { - "LA28405-1": 2, - "LA28406-9": 4, - "LA28407-7": 5 - } - }, - "med_digitalis_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_potassium_binders_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_revasc_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_antiarrhytmic_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "conditions_beforeHospitalAdmission_dep_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_albuminUS_value_first": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_devices_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_crpHs_value_min": { - "numOfNotNull": 4, - "min": 15.11, - "max": 56.24, - "avg": 42.105, - "q1": 15.11, - "q2": 41.86, - "q3": 55.21, - "histogram": [ - { - "bin": 15.11, - "count": 1 - }, - { - "bin": 41.86, - "count": 1 - }, - { - "bin": 55.21, - "count": 1 - }, - { - "bin": 56.24, - "count": 1 - } - ] - }, - "lab_results_tropTHs_value_max": { - "numOfNotNull": 0 - }, - "lab_results_tropInHs_value_first": { - "numOfNotNull": 0 - }, - "med_bb_any": { - "numOfNotNull": 18, - "numOfTrue": 6 - }, - "symptoms_firstTwentyFourHours_Ascites_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_oxygenSaturation_value_first": { - "numOfNotNull": 6, - "min": 93.61, - "max": 100.07, - "avg": 97.57833333333333, - "q1": 95.74, - "q2": 97.25, - "q3": 99.93, - "histogram": [ - { - "bin": 93.61, - "count": 1 - }, - { - "bin": 95.74, - "count": 1 - }, - { - "bin": 97.25, - "count": 1 - }, - { - "bin": 98.87, - "count": 1 - }, - { - "bin": 99.93, - "count": 1 - }, - { - "bin": 100.07, - "count": 1 - } - ] - }, - "med_antiinfl_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "lab_results_ntProBnp_value_first": { - "numOfNotNull": 2, - "min": 2552.73, - "max": 15349.48, - "avg": 8951.105, - "q1": 2552.73, - "q2": 2552.73, - "q3": 15349.48, - "histogram": [ - { - "bin": 2552.73, - "count": 1 - }, - { - "bin": 15349.48, - "count": 1 - } - ] - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_af_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_tia_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "ckd_severity_categorizedValue": { - "numOfNotNull": 10, - "valueSet": [ - "moderate", - "mild", - "normal" - ], - "cardinalityPerItem": { - "mild": 2, - "moderate": 5, - "normal": 3 - } - }, - "symptoms_firstTwentyFourHours_Nocturnal_cough_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_sodium_value_avg": { - "numOfNotNull": 9, - "min": 12.0, - "max": 152.45, - "avg": 112.37444444444445, - "q1": 133.76, - "q2": 139.34, - "q3": 141.09, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 1 - }, - { - "bin": 133.76, - "count": 1 - }, - { - "bin": 135.16, - "count": 1 - }, - { - "bin": 139.34, - "count": 1 - }, - { - "bin": 140.31, - "count": 1 - }, - { - "bin": 141.09, - "count": 1 - }, - { - "bin": 142.26, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "lab_results_hemoglobin_value_min": { - "numOfNotNull": 6, - "min": 64.2, - "max": 122.6, - "avg": 92.8, - "q1": 76.1, - "q2": 95.9, - "q3": 100.3, - "histogram": [ - { - "bin": 64.2, - "count": 1 - }, - { - "bin": 76.1, - "count": 1 - }, - { - "bin": 95.9, - "count": 1 - }, - { - "bin": 97.7, - "count": 1 - }, - { - "bin": 100.3, - "count": 1 - }, - { - "bin": 122.6, - "count": 1 - } - ] - }, - "lab_results_hba1c_value_min": { - "numOfNotNull": 0 - }, - "lab_results_tfs_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_sodium_value_first": { - "numOfNotNull": 9, - "min": 12.0, - "max": 152.45, - "avg": 112.37444444444445, - "q1": 133.76, - "q2": 139.34, - "q3": 141.09, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 1 - }, - { - "bin": 133.76, - "count": 1 - }, - { - "bin": 135.16, - "count": 1 - }, - { - "bin": 139.34, - "count": 1 - }, - { - "bin": 140.31, - "count": 1 - }, - { - "bin": 141.09, - "count": 1 - }, - { - "bin": 142.26, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "lab_results_cholTot_value_min": { - "numOfNotNull": 0 - }, - "lab_results_acr_value_first": { - "numOfNotNull": 0 - }, - "lab_results_tropInHs_value_last": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Dizziness_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_potassium_value_min": { - "numOfNotNull": 7, - "min": 3.8, - "max": 4.78, - "avg": 4.341428571428572, - "q1": 4.2, - "q2": 4.33, - "q3": 4.58, - "histogram": [ - { - "bin": 3.8, - "count": 1 - }, - { - "bin": 4.2, - "count": 1 - }, - { - "bin": 4.28, - "count": 1 - }, - { - "bin": 4.33, - "count": 1 - }, - { - "bin": 4.42, - "count": 1 - }, - { - "bin": 4.58, - "count": 1 - }, - { - "bin": 4.78, - "count": 1 - } - ] - }, - "vital_signs_oxygenSaturation_value_min": { - "numOfNotNull": 6, - "min": 93.61, - "max": 100.07, - "avg": 97.57833333333333, - "q1": 95.74, - "q2": 97.25, - "q3": 99.93, - "histogram": [ - { - "bin": 93.61, - "count": 1 - }, - { - "bin": 95.74, - "count": 1 - }, - { - "bin": 97.25, - "count": 1 - }, - { - "bin": 98.87, - "count": 1 - }, - { - "bin": 99.93, - "count": 1 - }, - { - "bin": 100.07, - "count": 1 - } - ] - }, - "smoking_status_formerSmoker_last": { - "numOfNotNull": 7, - "numOfTrue": 7 - }, - "med_everUsedBeforeHospitalAdmission_cortico_syst_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "echocardiographs_lvef_pET_max": { - "numOfNotNull": 10, - "min": 1.5, - "max": 76.14, - "avg": 36.65, - "q1": 14.0, - "q2": 33.68, - "q3": 56.68, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 14.0, - "count": 1 - }, - { - "bin": 31.38, - "count": 1 - }, - { - "bin": 33.68, - "count": 1 - }, - { - "bin": 41.42, - "count": 1 - }, - { - "bin": 43.96, - "count": 1 - }, - { - "bin": 56.68, - "count": 1 - }, - { - "bin": 58.17, - "count": 1 - }, - { - "bin": 76.14, - "count": 1 - } - ] - }, - "lab_results_crpHs_value_avg": { - "numOfNotNull": 4, - "min": 15.11, - "max": 56.24, - "avg": 42.105, - "q1": 15.11, - "q2": 41.86, - "q3": 55.21, - "histogram": [ - { - "bin": 15.11, - "count": 1 - }, - { - "bin": 41.86, - "count": 1 - }, - { - "bin": 55.21, - "count": 1 - }, - { - "bin": 56.24, - "count": 1 - } - ] - }, - "vital_signs_diastolicBp_value_min": { - "numOfNotNull": 8, - "min": 52.66, - "max": 115.21, - "avg": 75.50625, - "q1": 65.58, - "q2": 72.31, - "q3": 77.26, - "histogram": [ - { - "bin": 52.66, - "count": 1 - }, - { - "bin": 65.58, - "count": 1 - }, - { - "bin": 67.05, - "count": 1 - }, - { - "bin": 72.31, - "count": 1 - }, - { - "bin": 74.25, - "count": 1 - }, - { - "bin": 77.26, - "count": 1 - }, - { - "bin": 79.73, - "count": 1 - }, - { - "bin": 115.21, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_anti_plat_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_ccb_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "lab_results_tropTHs_value_avg": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_digitalis_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_ckd_chronic_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "vital_signs_diastolicBp_value_avg": { - "numOfNotNull": 8, - "min": 52.66, - "max": 115.21, - "avg": 75.50625, - "q1": 65.58, - "q2": 72.31, - "q3": 77.26, - "histogram": [ - { - "bin": 52.66, - "count": 1 - }, - { - "bin": 65.58, - "count": 1 - }, - { - "bin": 67.05, - "count": 1 - }, - { - "bin": 72.31, - "count": 1 - }, - { - "bin": 74.25, - "count": 1 - }, - { - "bin": 77.26, - "count": 1 - }, - { - "bin": 79.73, - "count": 1 - }, - { - "bin": 115.21, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_dem_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_aidshiv_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_rdoad_syst_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_rd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_sodium_value_last": { - "numOfNotNull": 9, - "min": 12.0, - "max": 152.45, - "avg": 112.37444444444445, - "q1": 133.76, - "q2": 139.34, - "q3": 141.09, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 1 - }, - { - "bin": 133.76, - "count": 1 - }, - { - "bin": 135.16, - "count": 1 - }, - { - "bin": 139.34, - "count": 1 - }, - { - "bin": 140.31, - "count": 1 - }, - { - "bin": 141.09, - "count": 1 - }, - { - "bin": 142.26, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_hyp_any": { - "numOfNotNull": 18, - "numOfTrue": 3 - }, - "lab_results_bnp_value_stddev": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Hepatojugular_reflux_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_creatBS_value_first": { - "numOfNotNull": 7, - "min": 2.5, - "max": 22.1, - "avg": 12.3, - "q1": 8.0, - "q2": 10.3, - "q3": 19.9, - "histogram": [ - { - "bin": 2.5, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 8.2, - "count": 1 - }, - { - "bin": 10.3, - "count": 1 - }, - { - "bin": 15.1, - "count": 1 - }, - { - "bin": 19.9, - "count": 1 - }, - { - "bin": 22.1, - "count": 1 - } - ] - }, - "lab_results_bun_value_min": { - "numOfNotNull": 0 - }, - "lab_results_ntProBnp_value_min": { - "numOfNotNull": 2, - "min": 2552.73, - "max": 15349.48, - "avg": 8951.105, - "q1": 2552.73, - "q2": 2552.73, - "q3": 15349.48, - "histogram": [ - { - "bin": 2552.73, - "count": 1 - }, - { - "bin": 15349.48, - "count": 1 - } - ] - }, - "med_arni_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_stroke_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_revasc_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_ihd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_hf_any": { - "numOfNotNull": 18, - "numOfTrue": 4 - }, - "encounters_encounterClass": { - "numOfNotNull": 18, - "valueSet": [ - "AMB", - "IMP" - ], - "cardinalityPerItem": { - "AMB": 6, - "IMP": 12 - } - }, - "med_mra_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "patient_demographics_gender": { - "numOfNotNull": 18, - "valueSet": [ - "female", - "male" - ], - "cardinalityPerItem": { - "female": 3, - "male": 15 - } - }, - "vital_signs_diastolicBp_value_first": { - "numOfNotNull": 8, - "min": 52.66, - "max": 115.21, - "avg": 75.50625, - "q1": 65.58, - "q2": 72.31, - "q3": 77.26, - "histogram": [ - { - "bin": 52.66, - "count": 1 - }, - { - "bin": 65.58, - "count": 1 - }, - { - "bin": 67.05, - "count": 1 - }, - { - "bin": 72.31, - "count": 1 - }, - { - "bin": 74.25, - "count": 1 - }, - { - "bin": 77.26, - "count": 1 - }, - { - "bin": 79.73, - "count": 1 - }, - { - "bin": 115.21, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_insulins_any": { - "numOfNotNull": 18, - "numOfTrue": 8 - }, - "electrocardiographs_ecg_qrs_duration_pET_stddev": { - "numOfNotNull": 0 - }, - "lab_results_ferritin_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_tropTnHs_value_stddev": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_cm_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_dysl_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_albuminBS_value_min": { - "numOfNotNull": 3, - "min": 2.11E7, - "max": 4.336E7, - "avg": 3.412E7, - "q1": 2.11E7, - "q2": 3.79E7, - "q3": 4.336E7, - "histogram": [ - { - "bin": 2.11E7, - "count": 1 - }, - { - "bin": 3.79E7, - "count": 1 - }, - { - "bin": 4.336E7, - "count": 1 - } - ] - }, - "lab_results_acr_value_stddev": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_qrs_axis_pET_max": { - "numOfNotNull": 10, - "min": -76.96, - "max": 74.23, - "avg": 3.001, - "q1": -52.51, - "q2": 8.65, - "q3": 49.69, - "histogram": [ - { - "bin": -76.96, - "count": 1 - }, - { - "bin": -72.15, - "count": 1 - }, - { - "bin": -52.51, - "count": 1 - }, - { - "bin": -10.43, - "count": 1 - }, - { - "bin": 8.65, - "count": 1 - }, - { - "bin": 26.86, - "count": 1 - }, - { - "bin": 29.71, - "count": 1 - }, - { - "bin": 49.69, - "count": 1 - }, - { - "bin": 52.92, - "count": 1 - }, - { - "bin": 74.23, - "count": 1 - } - ] - }, - "lab_results_creatUS_value_min": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_tia_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_antiarrhytmic_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "symptoms_firstTwentyFourHours_Pulmonary_crepitations_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropIHs_value_last": { - "numOfNotNull": 0 - }, - "lab_results_creatBS_value_last": { - "numOfNotNull": 7, - "min": 2.5, - "max": 22.1, - "avg": 12.3, - "q1": 8.0, - "q2": 10.3, - "q3": 19.9, - "histogram": [ - { - "bin": 2.5, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 8.2, - "count": 1 - }, - { - "bin": 10.3, - "count": 1 - }, - { - "bin": 15.1, - "count": 1 - }, - { - "bin": 19.9, - "count": 1 - }, - { - "bin": 22.1, - "count": 1 - } - ] - }, - "med_rdoad_syst_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_crpNonHs_value_max": { - "numOfNotNull": 0 - }, - "encounters_admissionDate": { - "numOfNotNull": 18 - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_first": { - "numOfNotNull": 10, - "min": 376.16, - "max": 495.51, - "avg": 424.181, - "q1": 398.77, - "q2": 425.78, - "q3": 434.21, - "histogram": [ - { - "bin": 376.16, - "count": 1 - }, - { - "bin": 389.07, - "count": 1 - }, - { - "bin": 398.77, - "count": 1 - }, - { - "bin": 424.05, - "count": 1 - }, - { - "bin": 425.78, - "count": 1 - }, - { - "bin": 427.94, - "count": 1 - }, - { - "bin": 431.52, - "count": 1 - }, - { - "bin": 434.21, - "count": 1 - }, - { - "bin": 438.8, - "count": 1 - }, - { - "bin": 495.51, - "count": 1 - } - ] - }, - "lab_results_tropTHs_value_min": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_pad_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Third_heart_sound_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hemoglobin_value_avg": { - "numOfNotNull": 6, - "min": 64.2, - "max": 122.6, - "avg": 92.8, - "q1": 76.1, - "q2": 95.9, - "q3": 100.3, - "histogram": [ - { - "bin": 64.2, - "count": 1 - }, - { - "bin": 76.1, - "count": 1 - }, - { - "bin": 95.9, - "count": 1 - }, - { - "bin": 97.7, - "count": 1 - }, - { - "bin": 100.3, - "count": 1 - }, - { - "bin": 122.6, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qrs_axis_pET_min": { - "numOfNotNull": 10, - "min": -76.96, - "max": 74.23, - "avg": 3.001, - "q1": -52.51, - "q2": 8.65, - "q3": 49.69, - "histogram": [ - { - "bin": -76.96, - "count": 1 - }, - { - "bin": -72.15, - "count": 1 - }, - { - "bin": -52.51, - "count": 1 - }, - { - "bin": -10.43, - "count": 1 - }, - { - "bin": 8.65, - "count": 1 - }, - { - "bin": 26.86, - "count": 1 - }, - { - "bin": 29.71, - "count": 1 - }, - { - "bin": 49.69, - "count": 1 - }, - { - "bin": 52.92, - "count": 1 - }, - { - "bin": 74.23, - "count": 1 - } - ] - }, - "lab_results_bnp_value_first": { - "numOfNotNull": 0 - }, - "lab_results_ntProBnp_value_avg": { - "numOfNotNull": 2, - "min": 2552.73, - "max": 15349.48, - "avg": 8951.105, - "q1": 2552.73, - "q2": 2552.73, - "q3": 15349.48, - "histogram": [ - { - "bin": 2552.73, - "count": 1 - }, - { - "bin": 15349.48, - "count": 1 - } - ] - }, - "vital_signs_oxygenSaturation_value_avg": { - "numOfNotNull": 6, - "min": 93.61, - "max": 100.07, - "avg": 97.57833333333333, - "q1": 95.74, - "q2": 97.25, - "q3": 99.93, - "histogram": [ - { - "bin": 93.61, - "count": 1 - }, - { - "bin": 95.74, - "count": 1 - }, - { - "bin": 97.25, - "count": 1 - }, - { - "bin": 98.87, - "count": 1 - }, - { - "bin": 99.93, - "count": 1 - }, - { - "bin": 100.07, - "count": 1 - } - ] - }, - "lab_results_hdl_value_stddev": { - "numOfNotNull": 0 - }, - "echocardiographs_lvef_pET_stddev": { - "numOfNotNull": 0 - }, - "encounters_admissionYear": { - "numOfNotNull": 18, - "valueSet": [ - "2014", - "2020", - "2024", - "2022", - "2015", - "2019", - "2021", - "2017", - "2008", - "2023" - ], - "cardinalityPerItem": { - "2014": 1, - "2020": 1, - "2024": 1, - "2022": 2, - "2015": 1, - "2019": 1, - "2021": 6, - "2017": 1, - "2008": 1, - "2023": 3 - } - }, - "med_everUsedBeforeHospitalAdmission_ari_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_triGly_value_first": { - "numOfNotNull": 2, - "min": 6.442995, - "max": 9.31845, - "avg": 7.8807225, - "q1": 6.442995, - "q2": 6.442995, - "q3": 9.31845, - "histogram": [ - { - "bin": 6.442995, - "count": 1 - }, - { - "bin": 9.31845, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_platelet_any": { - "numOfNotNull": 18, - "numOfTrue": 9 - }, - "lab_results_tfs_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_eGFR_value_max": { - "numOfNotNull": 10, - "min": 16.06, - "max": 106.04, - "avg": 61.93, - "q1": 25.71, - "q2": 50.83, - "q3": 90.22, - "histogram": [ - { - "bin": 16.06, - "count": 1 - }, - { - "bin": 24.46, - "count": 1 - }, - { - "bin": 25.71, - "count": 1 - }, - { - "bin": 35.95, - "count": 1 - }, - { - "bin": 50.83, - "count": 1 - }, - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 85.99, - "count": 1 - }, - { - "bin": 90.22, - "count": 1 - }, - { - "bin": 103.04, - "count": 1 - }, - { - "bin": 106.04, - "count": 1 - } - ] - }, - "vital_signs_heartRate_value_stddev": { - "numOfNotNull": 0 - }, - "encounters_dischargeDate": { - "numOfNotNull": 18 - }, - "lab_results_tropIHs_value_first": { - "numOfNotNull": 0 - }, - "lab_results_tfs_value_min": { - "numOfNotNull": 0 - }, - "lab_results_crpHs_value_last": { - "numOfNotNull": 4, - "min": 15.11, - "max": 56.24, - "avg": 42.105, - "q1": 15.11, - "q2": 41.86, - "q3": 55.21, - "histogram": [ - { - "bin": 15.11, - "count": 1 - }, - { - "bin": 41.86, - "count": 1 - }, - { - "bin": 55.21, - "count": 1 - }, - { - "bin": 56.24, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qrs_duration_pET_last": { - "numOfNotNull": 12, - "min": 3.0, - "max": 127.73, - "avg": 86.91916666666667, - "q1": 46.13, - "q2": 101.17, - "q3": 114.81, - "histogram": [ - { - "bin": 3.0, - "count": 1 - }, - { - "bin": 13.0, - "count": 1 - }, - { - "bin": 46.13, - "count": 1 - }, - { - "bin": 77.79, - "count": 1 - }, - { - "bin": 99.33, - "count": 1 - }, - { - "bin": 101.17, - "count": 1 - }, - { - "bin": 110.41, - "count": 1 - }, - { - "bin": 114.78666666666666, - "count": 3 - }, - { - "bin": 120.11, - "count": 1 - }, - { - "bin": 127.73, - "count": 1 - } - ] - }, - "lab_results_albuminUS_value_min": { - "numOfNotNull": 0 - }, - "lab_results_creatBS_value_max": { - "numOfNotNull": 7, - "min": 2.5, - "max": 22.1, - "avg": 12.3, - "q1": 8.0, - "q2": 10.3, - "q3": 19.9, - "histogram": [ - { - "bin": 2.5, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 8.2, - "count": 1 - }, - { - "bin": 10.3, - "count": 1 - }, - { - "bin": 15.1, - "count": 1 - }, - { - "bin": 19.9, - "count": 1 - }, - { - "bin": 22.1, - "count": 1 - } - ] - }, - "lab_results_tropIHs_value_avg": { - "numOfNotNull": 0 - }, - "med_diuretics_any": { - "numOfNotNull": 18, - "numOfTrue": 5 - }, - "electrocardiographs_ecg_ischemia_without_st_pET": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_arb_any": { - "numOfNotNull": 18, - "numOfTrue": 7 - }, - "lab_results_tropInHs_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_creatUS_value_stddev": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_stddev": { - "numOfNotNull": 1, - "min": 17.08159633445696, - "max": 17.08159633445696, - "avg": 17.08159633445696, - "q1": 17.08159633445696, - "q2": 17.08159633445696, - "q3": 17.08159633445696, - "histogram": [ - { - "bin": 17.08159633445696, - "count": 1 - } - ] - }, - "lab_results_hemoglobin_value_max": { - "numOfNotNull": 6, - "min": 64.2, - "max": 122.6, - "avg": 92.8, - "q1": 76.1, - "q2": 95.9, - "q3": 100.3, - "histogram": [ - { - "bin": 64.2, - "count": 1 - }, - { - "bin": 76.1, - "count": 1 - }, - { - "bin": 95.9, - "count": 1 - }, - { - "bin": 97.7, - "count": 1 - }, - { - "bin": 100.3, - "count": 1 - }, - { - "bin": 122.6, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qrs_duration_pET_min": { - "numOfNotNull": 12, - "min": 3.0, - "max": 127.73, - "avg": 86.91916666666667, - "q1": 46.13, - "q2": 101.17, - "q3": 114.81, - "histogram": [ - { - "bin": 3.0, - "count": 1 - }, - { - "bin": 13.0, - "count": 1 - }, - { - "bin": 46.13, - "count": 1 - }, - { - "bin": 77.79, - "count": 1 - }, - { - "bin": 99.33, - "count": 1 - }, - { - "bin": 101.17, - "count": 1 - }, - { - "bin": 110.41, - "count": 1 - }, - { - "bin": 114.78666666666666, - "count": 3 - }, - { - "bin": 120.11, - "count": 1 - }, - { - "bin": 127.73, - "count": 1 - } - ] - }, - "lab_results_crpNonHs_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_potassium_value_max": { - "numOfNotNull": 7, - "min": 3.8, - "max": 4.78, - "avg": 4.341428571428572, - "q1": 4.2, - "q2": 4.33, - "q3": 4.58, - "histogram": [ - { - "bin": 3.8, - "count": 1 - }, - { - "bin": 4.2, - "count": 1 - }, - { - "bin": 4.28, - "count": 1 - }, - { - "bin": 4.33, - "count": 1 - }, - { - "bin": 4.42, - "count": 1 - }, - { - "bin": 4.58, - "count": 1 - }, - { - "bin": 4.78, - "count": 1 - } - ] - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_diabetes_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_systolicBp_value_min": { - "numOfNotNull": 9, - "min": 12.0, - "max": 135.22, - "avg": 99.34666666666666, - "q1": 97.53, - "q2": 109.8, - "q3": 114.48, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 91.62, - "count": 1 - }, - { - "bin": 97.53, - "count": 1 - }, - { - "bin": 99.26, - "count": 1 - }, - { - "bin": 109.8, - "count": 1 - }, - { - "bin": 110.71, - "count": 1 - }, - { - "bin": 114.48, - "count": 1 - }, - { - "bin": 123.5, - "count": 1 - }, - { - "bin": 135.22, - "count": 1 - } - ] - }, - "lab_results_hba1c_value_first": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_last": { - "numOfNotNull": 6, - "min": 37.43, - "max": 104.55, - "avg": 68.25333333333333, - "q1": 49.66, - "q2": 54.8, - "q3": 87.71, - "histogram": [ - { - "bin": 37.43, - "count": 1 - }, - { - "bin": 49.66, - "count": 1 - }, - { - "bin": 54.8, - "count": 1 - }, - { - "bin": 75.37, - "count": 1 - }, - { - "bin": 87.71, - "count": 1 - }, - { - "bin": 104.55, - "count": 1 - } - ] - }, - "lab_results_crpNonHs_value_min": { - "numOfNotNull": 0 - }, - "lab_results_potassium_value_last": { - "numOfNotNull": 7, - "min": 3.8, - "max": 4.78, - "avg": 4.341428571428572, - "q1": 4.2, - "q2": 4.33, - "q3": 4.58, - "histogram": [ - { - "bin": 3.8, - "count": 1 - }, - { - "bin": 4.2, - "count": 1 - }, - { - "bin": 4.28, - "count": 1 - }, - { - "bin": 4.33, - "count": 1 - }, - { - "bin": 4.42, - "count": 1 - }, - { - "bin": 4.58, - "count": 1 - }, - { - "bin": 4.78, - "count": 1 - } - ] - }, - "med_rasi_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "symptoms_firstTwentyFourHours_Peripheral_edema_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_diastolicBp_value_last": { - "numOfNotNull": 8, - "min": 52.66, - "max": 115.21, - "avg": 75.50625, - "q1": 65.58, - "q2": 72.31, - "q3": 77.26, - "histogram": [ - { - "bin": 52.66, - "count": 1 - }, - { - "bin": 65.58, - "count": 1 - }, - { - "bin": 67.05, - "count": 1 - }, - { - "bin": 72.31, - "count": 1 - }, - { - "bin": 74.25, - "count": 1 - }, - { - "bin": 77.26, - "count": 1 - }, - { - "bin": 79.73, - "count": 1 - }, - { - "bin": 115.21, - "count": 1 - } - ] - }, - "lab_results_hba1c%_value_stddev": { - "numOfNotNull": 0 - }, - "vital_signs_systolicBp_value_last": { - "numOfNotNull": 9, - "min": 12.0, - "max": 135.22, - "avg": 99.34666666666666, - "q1": 97.53, - "q2": 109.8, - "q3": 114.48, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 91.62, - "count": 1 - }, - { - "bin": 97.53, - "count": 1 - }, - { - "bin": 99.26, - "count": 1 - }, - { - "bin": 109.8, - "count": 1 - }, - { - "bin": 110.71, - "count": 1 - }, - { - "bin": 114.48, - "count": 1 - }, - { - "bin": 123.5, - "count": 1 - }, - { - "bin": 135.22, - "count": 1 - } - ] - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_vd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_bb_any": { - "numOfNotNull": 18, - "numOfTrue": 11 - }, - "lab_results_acr_value_min": { - "numOfNotNull": 0 - }, - "lab_results_acr_value_last": { - "numOfNotNull": 0 - }, - "hyperkalemia_severity_categorizedValue": { - "numOfNotNull": 7, - "valueSet": [ - "normal" - ], - "cardinalityPerItem": { - "normal": 7 - } - }, - "electrocardiographs_ecg_qrs_duration_pET_first": { - "numOfNotNull": 12, - "min": 3.0, - "max": 127.73, - "avg": 86.91916666666667, - "q1": 46.13, - "q2": 101.17, - "q3": 114.81, - "histogram": [ - { - "bin": 3.0, - "count": 1 - }, - { - "bin": 13.0, - "count": 1 - }, - { - "bin": 46.13, - "count": 1 - }, - { - "bin": 77.79, - "count": 1 - }, - { - "bin": 99.33, - "count": 1 - }, - { - "bin": 101.17, - "count": 1 - }, - { - "bin": 110.41, - "count": 1 - }, - { - "bin": 114.78666666666666, - "count": 3 - }, - { - "bin": 120.11, - "count": 1 - }, - { - "bin": 127.73, - "count": 1 - } - ] - }, - "lab_results_albuminBS_value_last": { - "numOfNotNull": 3, - "min": 2.11E7, - "max": 4.336E7, - "avg": 3.412E7, - "q1": 2.11E7, - "q2": 3.79E7, - "q3": 4.336E7, - "histogram": [ - { - "bin": 2.11E7, - "count": 1 - }, - { - "bin": 3.79E7, - "count": 1 - }, - { - "bin": 4.336E7, - "count": 1 - } - ] - }, - "symptoms_firstTwentyFourHours_Pleural_effusion_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_mi_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_mc_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_potassium_value_first": { - "numOfNotNull": 7, - "min": 3.8, - "max": 4.78, - "avg": 4.341428571428572, - "q1": 4.2, - "q2": 4.33, - "q3": 4.58, - "histogram": [ - { - "bin": 3.8, - "count": 1 - }, - { - "bin": 4.2, - "count": 1 - }, - { - "bin": 4.28, - "count": 1 - }, - { - "bin": 4.33, - "count": 1 - }, - { - "bin": 4.42, - "count": 1 - }, - { - "bin": 4.58, - "count": 1 - }, - { - "bin": 4.78, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_last": { - "numOfNotNull": 10, - "min": 376.16, - "max": 495.51, - "avg": 424.181, - "q1": 398.77, - "q2": 425.78, - "q3": 434.21, - "histogram": [ - { - "bin": 376.16, - "count": 1 - }, - { - "bin": 389.07, - "count": 1 - }, - { - "bin": 398.77, - "count": 1 - }, - { - "bin": 424.05, - "count": 1 - }, - { - "bin": 425.78, - "count": 1 - }, - { - "bin": 427.94, - "count": 1 - }, - { - "bin": 431.52, - "count": 1 - }, - { - "bin": 434.21, - "count": 1 - }, - { - "bin": 438.8, - "count": 1 - }, - { - "bin": 495.51, - "count": 1 - } - ] - }, - "lab_results_hdl_value_last": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_af_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_platelet_any": { - "numOfNotNull": 18, - "numOfTrue": 6 - }, - "lab_results_albuminUS_value_avg": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_avg": { - "numOfNotNull": 10, - "min": 376.16, - "max": 495.51, - "avg": 424.181, - "q1": 398.77, - "q2": 425.78, - "q3": 434.21, - "histogram": [ - { - "bin": 376.16, - "count": 1 - }, - { - "bin": 389.07, - "count": 1 - }, - { - "bin": 398.77, - "count": 1 - }, - { - "bin": 424.05, - "count": 1 - }, - { - "bin": 425.78, - "count": 1 - }, - { - "bin": 427.94, - "count": 1 - }, - { - "bin": 431.52, - "count": 1 - }, - { - "bin": 434.21, - "count": 1 - }, - { - "bin": 438.8, - "count": 1 - }, - { - "bin": 495.51, - "count": 1 - } - ] - }, - "lab_results_hemoglobin_value_last": { - "numOfNotNull": 6, - "min": 64.2, - "max": 122.6, - "avg": 92.8, - "q1": 76.1, - "q2": 95.9, - "q3": 100.3, - "histogram": [ - { - "bin": 64.2, - "count": 1 - }, - { - "bin": 76.1, - "count": 1 - }, - { - "bin": 95.9, - "count": 1 - }, - { - "bin": 97.7, - "count": 1 - }, - { - "bin": 100.3, - "count": 1 - }, - { - "bin": 122.6, - "count": 1 - } - ] - }, - "lab_results_albuminUS_value_max": { - "numOfNotNull": 0 - }, - "lab_results_ldl_value_max": { - "numOfNotNull": 0 - }, - "echocardiographs_lvef_pET_first": { - "numOfNotNull": 10, - "min": 1.5, - "max": 76.14, - "avg": 36.65, - "q1": 14.0, - "q2": 33.68, - "q3": 56.68, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 14.0, - "count": 1 - }, - { - "bin": 31.38, - "count": 1 - }, - { - "bin": 33.68, - "count": 1 - }, - { - "bin": 41.42, - "count": 1 - }, - { - "bin": 43.96, - "count": 1 - }, - { - "bin": 56.68, - "count": 1 - }, - { - "bin": 58.17, - "count": 1 - }, - { - "bin": 76.14, - "count": 1 - } - ] - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_devices_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_bun_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_tropIHs_value_max": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_rasi_any": { - "numOfNotNull": 18, - "numOfTrue": 12 - }, - "lab_results_triGly_value_min": { - "numOfNotNull": 2, - "min": 6.442995, - "max": 9.31845, - "avg": 7.8807225, - "q1": 6.442995, - "q2": 6.442995, - "q3": 9.31845, - "histogram": [ - { - "bin": 6.442995, - "count": 1 - }, - { - "bin": 9.31845, - "count": 1 - } - ] - }, - "lab_results_acr_value_max": { - "numOfNotNull": 0 - }, - "lab_results_hba1c%_value_last": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_dem_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Fatigue_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_acei_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "lab_results_ldl_value_avg": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_max": { - "numOfNotNull": 6, - "min": 37.43, - "max": 104.55, - "avg": 71.28, - "q1": 49.66, - "q2": 54.8, - "q3": 93.53, - "histogram": [ - { - "bin": 37.43, - "count": 1 - }, - { - "bin": 49.66, - "count": 1 - }, - { - "bin": 54.8, - "count": 1 - }, - { - "bin": 87.71, - "count": 1 - }, - { - "bin": 93.53, - "count": 1 - }, - { - "bin": 104.55, - "count": 1 - } - ] - }, - "lab_results_bnp_value_last": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Hepatomegaly_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Palpitations_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_systolicBp_value_first": { - "numOfNotNull": 9, - "min": 50.0, - "max": 135.22, - "avg": 103.56888888888889, - "q1": 97.53, - "q2": 109.8, - "q3": 114.48, - "histogram": [ - { - "bin": 50.0, - "count": 1 - }, - { - "bin": 91.62, - "count": 1 - }, - { - "bin": 97.53, - "count": 1 - }, - { - "bin": 99.26, - "count": 1 - }, - { - "bin": 109.8, - "count": 1 - }, - { - "bin": 110.71, - "count": 1 - }, - { - "bin": 114.48, - "count": 1 - }, - { - "bin": 123.5, - "count": 1 - }, - { - "bin": 135.22, - "count": 1 - } - ] - }, - "lab_results_hba1c%_value_max": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_dia_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_ccb_any": { - "numOfNotNull": 18, - "numOfTrue": 6 - }, - "med_oral_antidiabetic_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "lab_results_albuminBS_value_max": { - "numOfNotNull": 3, - "min": 2.11E7, - "max": 4.336E7, - "avg": 3.412E7, - "q1": 2.11E7, - "q2": 3.79E7, - "q3": 4.336E7, - "histogram": [ - { - "bin": 2.11E7, - "count": 1 - }, - { - "bin": 3.79E7, - "count": 1 - }, - { - "bin": 4.336E7, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_ivabradine_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "smoking_status_smoker_startTime_count": { - "numOfNotNull": 18, - "min": 0.0, - "max": 3.0, - "avg": 0.6666666666666666, - "q1": 0.0, - "q2": 0.0, - "q3": 1.0, - "histogram": [ - { - "bin": 0.0, - "count": 12 - }, - { - "bin": 1.0, - "count": 3 - }, - { - "bin": 3.0, - "count": 3 - } - ] - }, - "conditions_beforeHospitalAdmission_ihd_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "lab_results_tropTnHs_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_eGFR_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_ferritin_value_first": { - "numOfNotNull": 0 - }, - "med_thrombolytic_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_ll_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "vital_signs_heartRate_value_first": { - "numOfNotNull": 10, - "min": 57.77, - "max": 100.62, - "avg": 82.32, - "q1": 76.63, - "q2": 79.92, - "q3": 92.02, - "histogram": [ - { - "bin": 57.77, - "count": 1 - }, - { - "bin": 76.5, - "count": 1 - }, - { - "bin": 76.63, - "count": 1 - }, - { - "bin": 79.63, - "count": 1 - }, - { - "bin": 79.92, - "count": 1 - }, - { - "bin": 82.21, - "count": 1 - }, - { - "bin": 83.64, - "count": 1 - }, - { - "bin": 92.02, - "count": 1 - }, - { - "bin": 94.26, - "count": 1 - }, - { - "bin": 100.62, - "count": 1 - } - ] - }, - "med_arb_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_diastolicBp_value_max": { - "numOfNotNull": 8, - "min": 52.66, - "max": 115.21, - "avg": 75.50625, - "q1": 65.58, - "q2": 72.31, - "q3": 77.26, - "histogram": [ - { - "bin": 52.66, - "count": 1 - }, - { - "bin": 65.58, - "count": 1 - }, - { - "bin": 67.05, - "count": 1 - }, - { - "bin": 72.31, - "count": 1 - }, - { - "bin": 74.25, - "count": 1 - }, - { - "bin": 77.26, - "count": 1 - }, - { - "bin": 79.73, - "count": 1 - }, - { - "bin": 115.21, - "count": 1 - } - ] - }, - "lab_results_cholTot_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_creatUS_value_avg": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Paroxysmal_nocturnal_dyspnea_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_rd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_ldl_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_cholTot_value_max": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Tachycardia_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Elevated_jugular_venous_pressure_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Breathlessness_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_albuminBS_value_avg": { - "numOfNotNull": 3, - "min": 2.11E7, - "max": 4.336E7, - "avg": 3.412E7, - "q1": 2.11E7, - "q2": 3.79E7, - "q3": 4.336E7, - "histogram": [ - { - "bin": 2.11E7, - "count": 1 - }, - { - "bin": 3.79E7, - "count": 1 - }, - { - "bin": 4.336E7, - "count": 1 - } - ] - }, - "vital_signs_heartRate_value_max": { - "numOfNotNull": 10, - "min": 57.77, - "max": 100.62, - "avg": 82.32, - "q1": 76.63, - "q2": 79.92, - "q3": 92.02, - "histogram": [ - { - "bin": 57.77, - "count": 1 - }, - { - "bin": 76.5, - "count": 1 - }, - { - "bin": 76.63, - "count": 1 - }, - { - "bin": 79.63, - "count": 1 - }, - { - "bin": 79.92, - "count": 1 - }, - { - "bin": 82.21, - "count": 1 - }, - { - "bin": 83.64, - "count": 1 - }, - { - "bin": 92.02, - "count": 1 - }, - { - "bin": 94.26, - "count": 1 - }, - { - "bin": 100.62, - "count": 1 - } - ] - }, - "lab_results_tropTnHs_value_min": { - "numOfNotNull": 0 - }, - "lab_results_tfs_value_max": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Irregular_pulse_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hdl_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_triGly_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_ldl_value_last": { - "numOfNotNull": 0 - }, - "med_cortico_syst_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_bnp_value_min": { - "numOfNotNull": 0 - }, - "lab_results_tropTHs_value_stddev": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_diuretics_loop_any": { - "numOfNotNull": 18, - "numOfTrue": 8 - }, - "conditions_beforeHospitalAdmission_vd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropTnHs_value_max": { - "numOfNotNull": 0 - }, - "patient_demographics_age": { - "numOfNotNull": 18, - "min": 16.0, - "max": 80.0, - "avg": 48.22222222222222, - "q1": 38.0, - "q2": 41.0, - "q3": 69.0, - "histogram": [ - { - "bin": 16.0, - "count": 1 - }, - { - "bin": 19.0, - "count": 1 - }, - { - "bin": 25.0, - "count": 1 - }, - { - "bin": 37.5, - "count": 2 - }, - { - "bin": 40.25, - "count": 4 - }, - { - "bin": 51.25, - "count": 4 - }, - { - "bin": 69.0, - "count": 1 - }, - { - "bin": 72.0, - "count": 2 - }, - { - "bin": 74.0, - "count": 1 - }, - { - "bin": 80.0, - "count": 1 - } - ] - }, - "lab_results_hdl_value_min": { - "numOfNotNull": 0 - }, - "lab_results_eGFR_value_first": { - "numOfNotNull": 10, - "min": 16.06, - "max": 106.04, - "avg": 61.93, - "q1": 25.71, - "q2": 50.83, - "q3": 90.22, - "histogram": [ - { - "bin": 16.06, - "count": 1 - }, - { - "bin": 24.46, - "count": 1 - }, - { - "bin": 25.71, - "count": 1 - }, - { - "bin": 35.95, - "count": 1 - }, - { - "bin": 50.83, - "count": 1 - }, - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 85.99, - "count": 1 - }, - { - "bin": 90.22, - "count": 1 - }, - { - "bin": 103.04, - "count": 1 - }, - { - "bin": 106.04, - "count": 1 - } - ] - }, - "lab_results_triGly_value_last": { - "numOfNotNull": 2, - "min": 6.442995, - "max": 9.31845, - "avg": 7.8807225, - "q1": 6.442995, - "q2": 6.442995, - "q3": 9.31845, - "histogram": [ - { - "bin": 6.442995, - "count": 1 - }, - { - "bin": 9.31845, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_diuretics_any": { - "numOfNotNull": 18, - "numOfTrue": 9 - }, - "med_diuretics_loop_any": { - "numOfNotNull": 18, - "numOfTrue": 4 - }, - "lab_results_hemoglobin_value_first": { - "numOfNotNull": 6, - "min": 64.2, - "max": 122.6, - "avg": 92.8, - "q1": 76.1, - "q2": 95.9, - "q3": 100.3, - "histogram": [ - { - "bin": 64.2, - "count": 1 - }, - { - "bin": 76.1, - "count": 1 - }, - { - "bin": 95.9, - "count": 1 - }, - { - "bin": 97.7, - "count": 1 - }, - { - "bin": 100.3, - "count": 1 - }, - { - "bin": 122.6, - "count": 1 - } - ] - }, - "lab_results_sodium_value_max": { - "numOfNotNull": 9, - "min": 12.0, - "max": 152.45, - "avg": 112.37444444444445, - "q1": 133.76, - "q2": 139.34, - "q3": 141.09, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 1 - }, - { - "bin": 133.76, - "count": 1 - }, - { - "bin": 135.16, - "count": 1 - }, - { - "bin": 139.34, - "count": 1 - }, - { - "bin": 140.31, - "count": 1 - }, - { - "bin": 141.09, - "count": 1 - }, - { - "bin": 142.26, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_vasodil_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_hthyroid_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_bun_value_first": { - "numOfNotNull": 0 - }, - "lab_results_crpNonHs_value_last": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Chest_pain_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropInHs_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_hba1c_value_max": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_ckd_chronic_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hba1c_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_eGFR_value_last": { - "numOfNotNull": 10, - "min": 16.06, - "max": 106.04, - "avg": 61.93, - "q1": 25.71, - "q2": 50.83, - "q3": 90.22, - "histogram": [ - { - "bin": 16.06, - "count": 1 - }, - { - "bin": 24.46, - "count": 1 - }, - { - "bin": 25.71, - "count": 1 - }, - { - "bin": 35.95, - "count": 1 - }, - { - "bin": 50.83, - "count": 1 - }, - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 85.99, - "count": 1 - }, - { - "bin": 90.22, - "count": 1 - }, - { - "bin": 103.04, - "count": 1 - }, - { - "bin": 106.04, - "count": 1 - } - ] - }, - "symptoms_firstTwentyFourHours_Loss_of_appetite_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_heartFailure_timeFromEarliest_first": { - "numOfNotNull": 16, - "min": 0.0, - "max": 15.0, - "avg": 3.0, - "q1": 0.0, - "q2": 0.0, - "q3": 0.0, - "histogram": [ - { - "bin": 0.0, - "count": 12 - }, - { - "bin": 6.0, - "count": 1 - }, - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 2 - } - ] - }, - "lab_results_crpHs_value_first": { - "numOfNotNull": 4, - "min": 15.11, - "max": 56.24, - "avg": 42.105, - "q1": 15.11, - "q2": 41.86, - "q3": 55.21, - "histogram": [ - { - "bin": 15.11, - "count": 1 - }, - { - "bin": 41.86, - "count": 1 - }, - { - "bin": 55.21, - "count": 1 - }, - { - "bin": 56.24, - "count": 1 - } - ] - }, - "vital_signs_systolicBp_value_stddev": { - "numOfNotNull": 1, - "min": 26.870057685088806, - "max": 26.870057685088806, - "avg": 26.870057685088806, - "q1": 26.870057685088806, - "q2": 26.870057685088806, - "q3": 26.870057685088806, - "histogram": [ - { - "bin": 26.870057685088806, - "count": 1 - } - ] - }, - "lab_results_tropTHs_value_first": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_type_of_rhythm_pET_last": { - "numOfNotNull": 0, - "valueSet": [], - "cardinalityPerItem": {} - }, - "echocardiographs_lvef_pET_min": { - "numOfNotNull": 10, - "min": 1.5, - "max": 76.14, - "avg": 36.65, - "q1": 14.0, - "q2": 33.68, - "q3": 56.68, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 14.0, - "count": 1 - }, - { - "bin": 31.38, - "count": 1 - }, - { - "bin": 33.68, - "count": 1 - }, - { - "bin": 41.42, - "count": 1 - }, - { - "bin": 43.96, - "count": 1 - }, - { - "bin": 56.68, - "count": 1 - }, - { - "bin": 58.17, - "count": 1 - }, - { - "bin": 76.14, - "count": 1 - } - ] - }, - "lab_results_bun_value_avg": { - "numOfNotNull": 0 - }, - "med_anti_coag_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_oxygenSaturation_value_max": { - "numOfNotNull": 6, - "min": 93.61, - "max": 100.07, - "avg": 97.57833333333333, - "q1": 95.74, - "q2": 97.25, - "q3": 99.93, - "histogram": [ - { - "bin": 93.61, - "count": 1 - }, - { - "bin": 95.74, - "count": 1 - }, - { - "bin": 97.25, - "count": 1 - }, - { - "bin": 98.87, - "count": 1 - }, - { - "bin": 99.93, - "count": 1 - }, - { - "bin": 100.07, - "count": 1 - } - ] - }, - "lab_results_tfs_value_last": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_first": { - "numOfNotNull": 6, - "min": 37.43, - "max": 104.55, - "avg": 71.28, - "q1": 49.66, - "q2": 54.8, - "q3": 93.53, - "histogram": [ - { - "bin": 37.43, - "count": 1 - }, - { - "bin": 49.66, - "count": 1 - }, - { - "bin": 54.8, - "count": 1 - }, - { - "bin": 87.71, - "count": 1 - }, - { - "bin": 93.53, - "count": 1 - }, - { - "bin": 104.55, - "count": 1 - } - ] - }, - "lab_results_eGFR_value_avg": { - "numOfNotNull": 10, - "min": 16.06, - "max": 106.04, - "avg": 61.93, - "q1": 25.71, - "q2": 50.83, - "q3": 90.22, - "histogram": [ - { - "bin": 16.06, - "count": 1 - }, - { - "bin": 24.46, - "count": 1 - }, - { - "bin": 25.71, - "count": 1 - }, - { - "bin": 35.95, - "count": 1 - }, - { - "bin": 50.83, - "count": 1 - }, - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 85.99, - "count": 1 - }, - { - "bin": 90.22, - "count": 1 - }, - { - "bin": 103.04, - "count": 1 - }, - { - "bin": 106.04, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_mra_any": { - "numOfNotNull": 18, - "numOfTrue": 5 - }, - "vital_signs_oxygenSaturation_value_last": { - "numOfNotNull": 6, - "min": 93.61, - "max": 100.07, - "avg": 97.57833333333333, - "q1": 95.74, - "q2": 97.25, - "q3": 99.93, - "histogram": [ - { - "bin": 93.61, - "count": 1 - }, - { - "bin": 95.74, - "count": 1 - }, - { - "bin": 97.25, - "count": 1 - }, - { - "bin": 98.87, - "count": 1 - }, - { - "bin": 99.93, - "count": 1 - }, - { - "bin": 100.07, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_ld_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Syncope_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropIHs_value_stddev": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_ibd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_ivabradine_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "electrocardiographs_ecg_qrs_axis_pET_last": { - "numOfNotNull": 10, - "min": -76.96, - "max": 74.23, - "avg": 3.001, - "q1": -52.51, - "q2": 8.65, - "q3": 49.69, - "histogram": [ - { - "bin": -76.96, - "count": 1 - }, - { - "bin": -72.15, - "count": 1 - }, - { - "bin": -52.51, - "count": 1 - }, - { - "bin": -10.43, - "count": 1 - }, - { - "bin": 8.65, - "count": 1 - }, - { - "bin": 26.86, - "count": 1 - }, - { - "bin": 29.71, - "count": 1 - }, - { - "bin": 49.69, - "count": 1 - }, - { - "bin": 52.92, - "count": 1 - }, - { - "bin": 74.23, - "count": 1 - } - ] - }, - "vital_signs_heartRate_value_min": { - "numOfNotNull": 10, - "min": 57.77, - "max": 100.62, - "avg": 82.32, - "q1": 76.63, - "q2": 79.92, - "q3": 92.02, - "histogram": [ - { - "bin": 57.77, - "count": 1 - }, - { - "bin": 76.5, - "count": 1 - }, - { - "bin": 76.63, - "count": 1 - }, - { - "bin": 79.63, - "count": 1 - }, - { - "bin": 79.92, - "count": 1 - }, - { - "bin": 82.21, - "count": 1 - }, - { - "bin": 83.64, - "count": 1 - }, - { - "bin": 92.02, - "count": 1 - }, - { - "bin": 94.26, - "count": 1 - }, - { - "bin": 100.62, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_mi_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_ibd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "electrocardiographs_ecg_qrs_axis_pET_first": { - "numOfNotNull": 10, - "min": -76.96, - "max": 74.23, - "avg": 3.001, - "q1": -52.51, - "q2": 8.65, - "q3": 49.69, - "histogram": [ - { - "bin": -76.96, - "count": 1 - }, - { - "bin": -72.15, - "count": 1 - }, - { - "bin": -52.51, - "count": 1 - }, - { - "bin": -10.43, - "count": 1 - }, - { - "bin": 8.65, - "count": 1 - }, - { - "bin": 26.86, - "count": 1 - }, - { - "bin": 29.71, - "count": 1 - }, - { - "bin": 49.69, - "count": 1 - }, - { - "bin": 52.92, - "count": 1 - }, - { - "bin": 74.23, - "count": 1 - } - ] - }, - "lab_results_tropInHs_value_max": { - "numOfNotNull": 0 - }, - "lab_results_hdl_value_max": { - "numOfNotNull": 0 - }, - "echocardiographs_lvef_pET_avg": { - "numOfNotNull": 10, - "min": 1.5, - "max": 76.14, - "avg": 36.65, - "q1": 14.0, - "q2": 33.68, - "q3": 56.68, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 14.0, - "count": 1 - }, - { - "bin": 31.38, - "count": 1 - }, - { - "bin": 33.68, - "count": 1 - }, - { - "bin": 41.42, - "count": 1 - }, - { - "bin": 43.96, - "count": 1 - }, - { - "bin": 56.68, - "count": 1 - }, - { - "bin": 58.17, - "count": 1 - }, - { - "bin": 76.14, - "count": 1 - } - ] - }, - "symptoms_firstTwentyFourHours_Cardiac_murmur_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_heartRate_value_last": { - "numOfNotNull": 10, - "min": 57.77, - "max": 100.62, - "avg": 82.32, - "q1": 76.63, - "q2": 79.92, - "q3": 92.02, - "histogram": [ - { - "bin": 57.77, - "count": 1 - }, - { - "bin": 76.5, - "count": 1 - }, - { - "bin": 76.63, - "count": 1 - }, - { - "bin": 79.63, - "count": 1 - }, - { - "bin": 79.92, - "count": 1 - }, - { - "bin": 82.21, - "count": 1 - }, - { - "bin": 83.64, - "count": 1 - }, - { - "bin": 92.02, - "count": 1 - }, - { - "bin": 94.26, - "count": 1 - }, - { - "bin": 100.62, - "count": 1 - } - ] - }, - "lab_results_tfs_value_first": { - "numOfNotNull": 0 - }, - "med_rdoad_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "electrocardiographs_ecg_qrs_duration_pET_avg": { - "numOfNotNull": 12, - "min": 3.0, - "max": 127.73, - "avg": 86.91916666666667, - "q1": 46.13, - "q2": 101.17, - "q3": 114.81, - "histogram": [ - { - "bin": 3.0, - "count": 1 - }, - { - "bin": 13.0, - "count": 1 - }, - { - "bin": 46.13, - "count": 1 - }, - { - "bin": 77.79, - "count": 1 - }, - { - "bin": 99.33, - "count": 1 - }, - { - "bin": 101.17, - "count": 1 - }, - { - "bin": 110.41, - "count": 1 - }, - { - "bin": 114.78666666666666, - "count": 3 - }, - { - "bin": 120.11, - "count": 1 - }, - { - "bin": 127.73, - "count": 1 - } - ] - }, - "lab_results_bnp_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_crpHs_value_max": { - "numOfNotNull": 4, - "min": 15.11, - "max": 56.24, - "avg": 42.105, - "q1": 15.11, - "q2": 41.86, - "q3": 55.21, - "histogram": [ - { - "bin": 15.11, - "count": 1 - }, - { - "bin": 41.86, - "count": 1 - }, - { - "bin": 55.21, - "count": 1 - }, - { - "bin": 56.24, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_type_of_rhythm_pET_first": { - "numOfNotNull": 0, - "valueSet": [], - "cardinalityPerItem": {} - }, - "lab_results_tropTnHs_value_last": { - "numOfNotNull": 0 - }, - "lab_results_triGly_value_avg": { - "numOfNotNull": 2, - "min": 6.442995, - "max": 9.31845, - "avg": 7.8807225, - "q1": 6.442995, - "q2": 6.442995, - "q3": 9.31845, - "histogram": [ - { - "bin": 6.442995, - "count": 1 - }, - { - "bin": 9.31845, - "count": 1 - } - ] - }, - "lab_results_sodium_value_min": { - "numOfNotNull": 9, - "min": 12.0, - "max": 152.45, - "avg": 112.37444444444445, - "q1": 133.76, - "q2": 139.34, - "q3": 141.09, - "histogram": [ - { - "bin": 12.0, - "count": 1 - }, - { - "bin": 15.0, - "count": 1 - }, - { - "bin": 133.76, - "count": 1 - }, - { - "bin": 135.16, - "count": 1 - }, - { - "bin": 139.34, - "count": 1 - }, - { - "bin": 140.31, - "count": 1 - }, - { - "bin": 141.09, - "count": 1 - }, - { - "bin": 142.26, - "count": 1 - }, - { - "bin": 152.45, - "count": 1 - } - ] - }, - "lab_results_hba1c%_value_min": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_osa_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_ld_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_potassium_binders_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "smoking_status_smoker_last": { - "numOfNotNull": 7, - "numOfTrue": 7 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_hf_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_bnp_value_max": { - "numOfNotNull": 0 - }, - "lab_results_creatBS_value_stddev": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_qrs_duration_pET_max": { - "numOfNotNull": 12, - "min": 3.0, - "max": 127.73, - "avg": 86.91916666666667, - "q1": 46.13, - "q2": 101.17, - "q3": 114.81, - "histogram": [ - { - "bin": 3.0, - "count": 1 - }, - { - "bin": 13.0, - "count": 1 - }, - { - "bin": 46.13, - "count": 1 - }, - { - "bin": 77.79, - "count": 1 - }, - { - "bin": 99.33, - "count": 1 - }, - { - "bin": 101.17, - "count": 1 - }, - { - "bin": 110.41, - "count": 1 - }, - { - "bin": 114.78666666666666, - "count": 3 - }, - { - "bin": 120.11, - "count": 1 - }, - { - "bin": 127.73, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_min": { - "numOfNotNull": 10, - "min": 376.16, - "max": 495.51, - "avg": 424.181, - "q1": 398.77, - "q2": 425.78, - "q3": 434.21, - "histogram": [ - { - "bin": 376.16, - "count": 1 - }, - { - "bin": 389.07, - "count": 1 - }, - { - "bin": 398.77, - "count": 1 - }, - { - "bin": 424.05, - "count": 1 - }, - { - "bin": 425.78, - "count": 1 - }, - { - "bin": 427.94, - "count": 1 - }, - { - "bin": 431.52, - "count": 1 - }, - { - "bin": 434.21, - "count": 1 - }, - { - "bin": 438.8, - "count": 1 - }, - { - "bin": 495.51, - "count": 1 - } - ] - }, - "lab_results_albuminBS_value_first": { - "numOfNotNull": 3, - "min": 2.11E7, - "max": 4.336E7, - "avg": 3.412E7, - "q1": 2.11E7, - "q2": 3.79E7, - "q3": 4.336E7, - "histogram": [ - { - "bin": 2.11E7, - "count": 1 - }, - { - "bin": 3.79E7, - "count": 1 - }, - { - "bin": 4.336E7, - "count": 1 - } - ] - }, - "lab_results_cholTot_value_first": { - "numOfNotNull": 0 - }, - "echocardiographs_lvef_pET_last": { - "numOfNotNull": 10, - "min": 1.5, - "max": 76.14, - "avg": 36.65, - "q1": 14.0, - "q2": 33.68, - "q3": 56.68, - "histogram": [ - { - "bin": 1.5, - "count": 1 - }, - { - "bin": 9.57, - "count": 1 - }, - { - "bin": 14.0, - "count": 1 - }, - { - "bin": 31.38, - "count": 1 - }, - { - "bin": 33.68, - "count": 1 - }, - { - "bin": 41.42, - "count": 1 - }, - { - "bin": 43.96, - "count": 1 - }, - { - "bin": 56.68, - "count": 1 - }, - { - "bin": 58.17, - "count": 1 - }, - { - "bin": 76.14, - "count": 1 - } - ] - }, - "lab_results_triGly_value_max": { - "numOfNotNull": 2, - "min": 6.442995, - "max": 9.31845, - "avg": 7.8807225, - "q1": 6.442995, - "q2": 6.442995, - "q3": 9.31845, - "histogram": [ - { - "bin": 6.442995, - "count": 1 - }, - { - "bin": 9.31845, - "count": 1 - } - ] - }, - "lab_results_tropInHs_value_min": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Intermittent_claudication_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_osa_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_copd_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "electrocardiographs_ecg_st_pET": { - "numOfNotNull": 0 - }, - "vital_signs_heartRate_value_avg": { - "numOfNotNull": 10, - "min": 57.77, - "max": 100.62, - "avg": 82.32, - "q1": 76.63, - "q2": 79.92, - "q3": 92.02, - "histogram": [ - { - "bin": 57.77, - "count": 1 - }, - { - "bin": 76.5, - "count": 1 - }, - { - "bin": 76.63, - "count": 1 - }, - { - "bin": 79.63, - "count": 1 - }, - { - "bin": 79.92, - "count": 1 - }, - { - "bin": 82.21, - "count": 1 - }, - { - "bin": 83.64, - "count": 1 - }, - { - "bin": 92.02, - "count": 1 - }, - { - "bin": 94.26, - "count": 1 - }, - { - "bin": 100.62, - "count": 1 - } - ] - }, - "vital_signs_systolicBp_value_max": { - "numOfNotNull": 9, - "min": 50.0, - "max": 135.22, - "avg": 103.56888888888889, - "q1": 97.53, - "q2": 109.8, - "q3": 114.48, - "histogram": [ - { - "bin": 50.0, - "count": 1 - }, - { - "bin": 91.62, - "count": 1 - }, - { - "bin": 97.53, - "count": 1 - }, - { - "bin": 99.26, - "count": 1 - }, - { - "bin": 109.8, - "count": 1 - }, - { - "bin": 110.71, - "count": 1 - }, - { - "bin": 114.48, - "count": 1 - }, - { - "bin": 123.5, - "count": 1 - }, - { - "bin": 135.22, - "count": 1 - } - ] - }, - "electrocardiographs_ecg_qt_duration_corrected_pET_max": { - "numOfNotNull": 10, - "min": 376.16, - "max": 495.51, - "avg": 424.181, - "q1": 398.77, - "q2": 425.78, - "q3": 434.21, - "histogram": [ - { - "bin": 376.16, - "count": 1 - }, - { - "bin": 389.07, - "count": 1 - }, - { - "bin": 398.77, - "count": 1 - }, - { - "bin": 424.05, - "count": 1 - }, - { - "bin": 425.78, - "count": 1 - }, - { - "bin": 427.94, - "count": 1 - }, - { - "bin": 431.52, - "count": 1 - }, - { - "bin": 434.21, - "count": 1 - }, - { - "bin": 438.8, - "count": 1 - }, - { - "bin": 495.51, - "count": 1 - } - ] - }, - "lab_results_bun_value_last": { - "numOfNotNull": 0 - }, - "med_insulins_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "symptoms_firstTwentyFourHours_Depression_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_ap_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounters_lengthOfStay": { - "numOfNotNull": 18, - "min": 0.0, - "max": 17.0, - "avg": 5.5, - "q1": 3.0, - "q2": 4.0, - "q3": 8.0, - "histogram": [ - { - "bin": 0.0, - "count": 1 - }, - { - "bin": 1.0, - "count": 1 - }, - { - "bin": 3.0, - "count": 6 - }, - { - "bin": 4.0, - "count": 1 - }, - { - "bin": 5.0, - "count": 3 - }, - { - "bin": 6.0, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 10.0, - "count": 3 - }, - { - "bin": 17.0, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_inotropes_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_beforeHospitalAdmission_diabetes_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_ap_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_potassium_value_avg": { - "numOfNotNull": 7, - "min": 3.8, - "max": 4.78, - "avg": 4.341428571428572, - "q1": 4.2, - "q2": 4.33, - "q3": 4.58, - "histogram": [ - { - "bin": 3.8, - "count": 1 - }, - { - "bin": 4.2, - "count": 1 - }, - { - "bin": 4.28, - "count": 1 - }, - { - "bin": 4.33, - "count": 1 - }, - { - "bin": 4.42, - "count": 1 - }, - { - "bin": 4.58, - "count": 1 - }, - { - "bin": 4.78, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_arni_any": { - "numOfNotNull": 18, - "numOfTrue": 3 - }, - "conditions_beforeHospitalAdmission_dia_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Oliguria_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_albuminBS_value_stddev": { - "numOfNotNull": 0 - }, - "symptoms_firstTwentyFourHours_Reduced_exercise_tolerance_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_cholTot_value_stddev": { - "numOfNotNull": 0 - }, - "vital_signs_systolicBp_value_avg": { - "numOfNotNull": 9, - "min": 31.0, - "max": 135.22, - "avg": 101.45777777777778, - "q1": 97.53, - "q2": 109.8, - "q3": 114.48, - "histogram": [ - { - "bin": 31.0, - "count": 1 - }, - { - "bin": 91.62, - "count": 1 - }, - { - "bin": 97.53, - "count": 1 - }, - { - "bin": 99.26, - "count": 1 - }, - { - "bin": 109.8, - "count": 1 - }, - { - "bin": 110.71, - "count": 1 - }, - { - "bin": 114.48, - "count": 1 - }, - { - "bin": 123.5, - "count": 1 - }, - { - "bin": 135.22, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_mc_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_copd_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "electrocardiographs_ecg_qrs_axis_pET_avg": { - "numOfNotNull": 10, - "min": -76.96, - "max": 74.23, - "avg": 3.001, - "q1": -52.51, - "q2": 8.65, - "q3": 49.69, - "histogram": [ - { - "bin": -76.96, - "count": 1 - }, - { - "bin": -72.15, - "count": 1 - }, - { - "bin": -52.51, - "count": 1 - }, - { - "bin": -10.43, - "count": 1 - }, - { - "bin": 8.65, - "count": 1 - }, - { - "bin": 26.86, - "count": 1 - }, - { - "bin": 29.71, - "count": 1 - }, - { - "bin": 49.69, - "count": 1 - }, - { - "bin": 52.92, - "count": 1 - }, - { - "bin": 74.23, - "count": 1 - } - ] - }, - "symptoms_firstTwentyFourHours_Ankle_swelling_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_ferritin_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_ldl_value_first": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_hyp_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_potassium_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_creatBS_value_avg": { - "numOfNotNull": 7, - "min": 2.5, - "max": 22.1, - "avg": 12.3, - "q1": 8.0, - "q2": 10.3, - "q3": 19.9, - "histogram": [ - { - "bin": 2.5, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 8.2, - "count": 1 - }, - { - "bin": 10.3, - "count": 1 - }, - { - "bin": 15.1, - "count": 1 - }, - { - "bin": 19.9, - "count": 1 - }, - { - "bin": 22.1, - "count": 1 - } - ] - }, - "lab_results_hdl_value_first": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_hthyroid_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_vasodil_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hba1c_value_last": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_min": { - "numOfNotNull": 6, - "min": 37.43, - "max": 104.55, - "avg": 65.59, - "q1": 49.66, - "q2": 54.8, - "q3": 87.71, - "histogram": [ - { - "bin": 37.43, - "count": 1 - }, - { - "bin": 49.66, - "count": 1 - }, - { - "bin": 54.8, - "count": 1 - }, - { - "bin": 59.39, - "count": 1 - }, - { - "bin": 87.71, - "count": 1 - }, - { - "bin": 104.55, - "count": 1 - } - ] - }, - "vital_signs_oxygenSaturation_value_stddev": { - "numOfNotNull": 0 - }, - "lab_results_crpHs_value_stddev": { - "numOfNotNull": 0 - }, - "vital_signs_beforeAdmission_weight_value_pET_avg": { - "numOfNotNull": 6, - "min": 37.43, - "max": 104.55, - "avg": 68.37444444444445, - "q1": 49.66, - "q2": 54.8, - "q3": 87.71, - "histogram": [ - { - "bin": 37.43, - "count": 1 - }, - { - "bin": 49.66, - "count": 1 - }, - { - "bin": 54.8, - "count": 1 - }, - { - "bin": 76.09666666666666, - "count": 1 - }, - { - "bin": 87.71, - "count": 1 - }, - { - "bin": 104.55, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_antiinfl_any": { - "numOfNotNull": 18, - "numOfTrue": 7 - }, - "lab_results_ntProBnp_value_stddev": { - "numOfNotNull": 0 - }, - "med_everUsedBeforeHospitalAdmission_thrombolytic_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_creatUS_value_max": { - "numOfNotNull": 0 - }, - "lab_results_ferritin_value_min": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_aidshiv_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "med_everUsedBeforeHospitalAdmission_rdoad_any": { - "numOfNotNull": 18, - "numOfTrue": 3 - }, - "med_everUsedBeforeHospitalAdmission_acei_any": { - "numOfNotNull": 18, - "numOfTrue": 5 - }, - "lab_results_crpNonHs_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_hba1c%_value_avg": { - "numOfNotNull": 0 - }, - "lab_results_eGFR_value_min": { - "numOfNotNull": 10, - "min": 16.06, - "max": 106.04, - "avg": 61.93, - "q1": 25.71, - "q2": 50.83, - "q3": 90.22, - "histogram": [ - { - "bin": 16.06, - "count": 1 - }, - { - "bin": 24.46, - "count": 1 - }, - { - "bin": 25.71, - "count": 1 - }, - { - "bin": 35.95, - "count": 1 - }, - { - "bin": 50.83, - "count": 1 - }, - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 85.99, - "count": 1 - }, - { - "bin": 90.22, - "count": 1 - }, - { - "bin": 103.04, - "count": 1 - }, - { - "bin": 106.04, - "count": 1 - } - ] - }, - "lab_results_sodium_value_stddev": { - "numOfNotNull": 0 - }, - "conditions_betweenHospitalAdmissionAndDischargeTime_dep_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_crpNonHs_value_first": { - "numOfNotNull": 0 - }, - "lab_results_ferritin_value_max": { - "numOfNotNull": 0 - }, - "lab_results_ferritin_value_last": { - "numOfNotNull": 0 - }, - "lab_results_tropIHs_value_min": { - "numOfNotNull": 0 - }, - "lab_results_creatUS_value_first": { - "numOfNotNull": 0 - }, - "electrocardiographs_ecg_qrs_axis_pET_stddev": { - "numOfNotNull": 0 - }, - "lab_results_ldl_value_min": { - "numOfNotNull": 0 - }, - "conditions_beforeHospitalAdmission_dysl_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "vital_signs_height_value_pRTP_avg": { - "numOfNotNull": 9, - "min": 157.41, - "max": 203.58, - "avg": 170.67981481481482, - "q1": 160.35, - "q2": 169.52, - "q3": 173.43333333333334, - "histogram": [ - { - "bin": 157.41, - "count": 1 - }, - { - "bin": 159.41, - "count": 1 - }, - { - "bin": 160.35, - "count": 1 - }, - { - "bin": 162.185, - "count": 1 - }, - { - "bin": 169.52, - "count": 1 - }, - { - "bin": 172.33, - "count": 1 - }, - { - "bin": 173.43333333333334, - "count": 1 - }, - { - "bin": 177.9, - "count": 1 - }, - { - "bin": 203.58, - "count": 1 - } - ] - }, - "med_everUsedBeforeHospitalAdmission_oral_antidiabetic_any": { - "numOfNotNull": 18, - "numOfTrue": 3 - }, - "lab_results_creatUS_value_last": { - "numOfNotNull": 0 - }, - "lab_results_ntProBnp_value_max": { - "numOfNotNull": 2, - "min": 2552.73, - "max": 15349.48, - "avg": 8951.105, - "q1": 2552.73, - "q2": 2552.73, - "q3": 15349.48, - "histogram": [ - { - "bin": 2552.73, - "count": 1 - }, - { - "bin": 15349.48, - "count": 1 - } - ] - }, - "smoking_status_smoker_totalSmokingDuration_sum": { - "numOfNotNull": 6, - "min": 63.0, - "max": 1428.0, - "avg": 754.8333333333334, - "q1": 68.0, - "q2": 332.0, - "q3": 1410.0, - "histogram": [ - { - "bin": 63.0, - "count": 1 - }, - { - "bin": 68.0, - "count": 1 - }, - { - "bin": 332.0, - "count": 1 - }, - { - "bin": 1228.0, - "count": 1 - }, - { - "bin": 1410.0, - "count": 1 - }, - { - "bin": 1428.0, - "count": 1 - } - ] - }, - "conditions_beforeHospitalAdmission_cm_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_tropTnHs_value_first": { - "numOfNotNull": 0 - }, - "lab_results_creatBS_value_min": { - "numOfNotNull": 7, - "min": 2.5, - "max": 22.1, - "avg": 12.3, - "q1": 8.0, - "q2": 10.3, - "q3": 19.9, - "histogram": [ - { - "bin": 2.5, - "count": 1 - }, - { - "bin": 8.0, - "count": 1 - }, - { - "bin": 8.2, - "count": 1 - }, - { - "bin": 10.3, - "count": 1 - }, - { - "bin": 15.1, - "count": 1 - }, - { - "bin": 19.9, - "count": 1 - }, - { - "bin": 22.1, - "count": 1 - } - ] - }, - "symptoms_firstTwentyFourHours_Cheyne_stokes_respiration_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "symptoms_firstTwentyFourHours_Weight_gain_display_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_albuminUS_value_last": { - "numOfNotNull": 0 - }, - "lab_results_ntProBnp_value_last": { - "numOfNotNull": 2, - "min": 2552.73, - "max": 15349.48, - "avg": 8951.105, - "q1": 2552.73, - "q2": 2552.73, - "q3": 15349.48, - "histogram": [ - { - "bin": 2552.73, - "count": 1 - }, - { - "bin": 15349.48, - "count": 1 - } - ] - }, - "lab_results_albuminUS_value_stddev": { - "numOfNotNull": 0 - }, - "med_inotropes_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "lab_results_hba1c%_value_first": { - "numOfNotNull": 0 - } - }, - "outcomeStats": { - "cause_of_death_isCV_isCardiovascular_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isRenal_number_of_days_to_death_for_renal_f5a_first": { - "numOfNotNull": 0 - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isRenal_isRenal_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isCV_isCardiovascular_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 5 - }, - "encounter_primary_reason_renal_number_of_days_to_rehosp_for_renal_complications_f5a_first": { - "numOfNotNull": 0 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isCV_isCardiovascular_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 4 - }, - "cause_of_death_isRenal_isRenal_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isRenal_isRenal_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isRenal_isRenal_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isNonRenalAndNonCV_number_of_days_to_death_for_non_renal_and_non_CV_f5a_first": { - "numOfNotNull": 0 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "encounter_primary_reason_HF_number_of_days_to_rehosp_for_heart_failure_f5a_first": { - "numOfNotNull": 2, - "min": 81.0, - "max": 375.0, - "avg": 228.0, - "q1": 81.0, - "q2": 81.0, - "q3": 375.0, - "histogram": [ - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 375.0, - "count": 1 - } - ] - }, - "cause_of_death_isCV_isCardiovascular_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "cause_of_death_isCV_isCardiovascular_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isCV_isCardiovascular_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "cause_of_death_isCV_isCardiovascular_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 4 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w5a_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isRenal_isRenal_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "encounter_primary_reason_HF_heartFailure_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isRenal_isRenal_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isCV_number_of_days_to_death_for_CV_f5a_first": { - "numOfNotNull": 5, - "min": 40.0, - "max": 1348.0, - "avg": 603.6, - "q1": 507.0, - "q2": 516.0, - "q3": 607.0, - "histogram": [ - { - "bin": 40.0, - "count": 1 - }, - { - "bin": 507.0, - "count": 1 - }, - { - "bin": 516.0, - "count": 1 - }, - { - "bin": 607.0, - "count": 1 - }, - { - "bin": 1348.0, - "count": 1 - } - ] - }, - "encounter_primary_reason_HF_heartFailure_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_number_of_days_to_rehosp_for_CV_f5a_first": { - "numOfNotNull": 4, - "min": 81.0, - "max": 883.0, - "avg": 394.25, - "q1": 81.0, - "q2": 238.0, - "q3": 375.0, - "histogram": [ - { - "bin": 81.0, - "count": 1 - }, - { - "bin": 238.0, - "count": 1 - }, - { - "bin": 375.0, - "count": 1 - }, - { - "bin": 883.0, - "count": 1 - } - ] - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w1a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "encounter_primary_reason_non_CV_number_of_days_to_rehosp_for_non_CV_f5a_first": { - "numOfNotNull": 1, - "min": 4.0, - "max": 4.0, - "avg": 4.0, - "q1": 4.0, - "q2": 4.0, - "q3": 4.0, - "histogram": [ - { - "bin": 4.0, - "count": 1 - } - ] - }, - "cause_of_death_isNonRenalAndNonCV_isNonRenalAndNonCV_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "cause_of_death_isRenal_isRenal_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 2 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w3a_any": { - "numOfNotNull": 18, - "numOfTrue": 4 - }, - "cause_of_death_isAllCause_isAllCause_f5a_w6mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "encounter_primary_reason_renal_renal_complications_f5a_w1mo_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_non_CV_non_CV_Disease_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - }, - "cause_of_death_isAllCause_number_of_days_to_death_for_all_cause_f5a_first": { - "numOfNotNull": 2, - "min": 83.0, - "max": 331.0, - "avg": 207.0, - "q1": 83.0, - "q2": 83.0, - "q3": 331.0, - "histogram": [ - { - "bin": 83.0, - "count": 1 - }, - { - "bin": 331.0, - "count": 1 - } - ] - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w7d_any": { - "numOfNotNull": 18, - "numOfTrue": 0 - }, - "encounter_primary_reason_CV_CV_Disease_f5a_w3mo_any": { - "numOfNotNull": 18, - "numOfTrue": 1 - } - } - } - } -} \ No newline at end of file diff --git a/flcore/datasets.py b/flcore/datasets.py index a0a3c58..8b32c34 100644 --- a/flcore/datasets.py +++ b/flcore/datasets.py @@ -4,26 +4,123 @@ import urllib.request from typing import Tuple import json +import re -import numpy as np import openml #import torch -from pathlib import Path -import pandas as pd import random +import numpy as np +import pandas as pd +from pathlib import Path from sklearn.datasets import load_svmlight_file from sklearn.preprocessing import OrdinalEncoder, MinMaxScaler,StandardScaler -from sklearn.model_selection import KFold, StratifiedShuffleSplit, train_test_split +from sklearn.model_selection import KFold, train_test_split from sklearn.utils import shuffle from sklearn.feature_selection import SelectKBest, f_classif - +from sklearn.model_selection import StratifiedShuffleSplit, ShuffleSplit #from flcore.models.xgb.utils import TreeDataset, do_fl_partitioning, get_dataloader XY = Tuple[np.ndarray, np.ndarray] Dataset = Tuple[XY, XY] +def filter_nans(df, features, outcomes, verbose=True): + print(" ************************************************ ENTRA FILTER NANS") + """ + Filter patients with complete data across all feature and outcome variables. + + Parameters + ---------- + df : pd.DataFrame + Input dataframe where each row represents a patient. + features : list of str + Predictor variable names. + outcomes : list of str + Outcome variable names. + verbose : bool, default=True + If True, prints a summary report. + + Returns + ------- + df_filtered : pd.DataFrame + Dataframe containing only complete cases. + report : dict + Summary statistics. + """ + + # Combine variables preserving order and removing duplicates + variables = list(dict.fromkeys(features + outcomes)) + + # Validate columns + missing_cols = [v for v in variables if v not in df.columns] + if missing_cols: + raise ValueError( + f"Variables not found in dataframe: {missing_cols}" + ) + + n_initial = len(df) + + # Missing values per variable + missing_per_variable = ( + df[variables] + .isna() + .sum() + .to_dict() + ) + + # Complete-case filtering + df_filtered = df.dropna(subset=variables).copy() + + n_final = len(df_filtered) + n_removed = n_initial - n_final + reduction_pct = ( + n_removed / n_initial * 100 + if n_initial > 0 else 0.0 + ) + retention_pct = 100 - reduction_pct + + report = { + "features": features, + "outcomes": outcomes, + "variables_used": variables, + "n_initial": n_initial, + "n_final": n_final, + "n_removed": n_removed, + "reduction_pct": round(reduction_pct, 2), + "retention_pct": round(retention_pct, 2), + "missing_per_variable": missing_per_variable, + } + + if verbose: + print("=" * 60) + print("Complete-case filtering report") + print("=" * 60) + + print(f"Features ({len(features)}):") + print(features) + + print(f"\nOutcomes ({len(outcomes)}):") + print(outcomes) + + print(f"\nTotal variables analysed: {len(variables)}") + + print("\nMissing values per variable:") + for var, n_miss in missing_per_variable.items(): + pct = ( + n_miss / n_initial * 100 + if n_initial > 0 else 0 + ) + print(f" - {var}: {n_miss} ({pct:.2f}%)") + + print(f"\nInitial N : {n_initial}") + print(f"Final N : {n_final}") + print(f"Removed : {n_removed} ({reduction_pct:.2f}%)") + print(f"Retained : {n_final} ({retention_pct:.2f}%)") + + print("=" * 60) + + return df_filtered #, report def load_mnist(center_id=None, num_splits=5): """Loads the MNIST dataset using OpenML. @@ -549,83 +646,47 @@ def std_normalize(col, mean, std): return (col - mean) / std def iqr_normalize(col, Q1, Q2, Q3): - return (col - Q2) / (Q3 - Q1) + col = col.astype(float) + Q1, Q2, Q3 = float(Q1), float(Q2), float(Q3) + + denom = (Q3 - Q1) + if denom == 0: + return col * 0 + + return (col - Q2) / denom def min_max_normalize(col, min_val, max_val): return (col - min_val) / (max_val - min_val) -def load_dt4h(config): - metadata = Path(config['metadata_file']) - with open(metadata, 'r') as file: +def load_base(config): + """ + Things to take into account: + * In DT4H / AI4HF datasets the categorical variables can be "nominal" or "boolean" + * In DT4H / AI4HF this function maps strings into numbers, e.g. "category1" to 1, + "False" to 0, etc. + * In DT4H / AI4HF the datasets are normalized and standarized with STD and quartils + """ + with open("dataset_description.json", 'r') as file: metadata = json.load(file) - data_file = Path(config['data_file']) - dat = pd.read_parquet(data_file) - + dat = pd.read_csv("data.csv") dat_len = len(dat) - # Numerical variables - numeric_columns_non_zero = {} - for feat in metadata["entries"][0]["featureSet"]["features"]: - if feat["dataType"] == "NUMERIC" and feat["statistics"]["numOfNotNull"] != 0: - # statistic keys = ['Q1', 'avg', 'min', 'Q2', 'max', 'Q3', 'numOfNotNull'] - numeric_columns_non_zero[feat["name"]] = ( - feat["statistics"]["Q1"], - feat["statistics"]["avg"], - feat["statistics"]["min"], - feat["statistics"]["Q2"], - feat["statistics"]["max"], - feat["statistics"]["Q3"], - feat["statistics"]["numOfNotNull"], - ) - for col, (q1,avg,mini,q2,maxi,q3,numOfNotNull) in numeric_columns_non_zero.items(): - if col in dat.columns: - if config["normalization_method"] == "IQR": - dat[col] = iqr_normalize(dat[col], q1,q2,q3 ) - elif config["normalization_method"] == "STD": - pass # no std found in data set - elif config["normalization_method"] == "MIN_MAX": - dat[col] = min_max_normalize(col, mini, maxi) - tipos=[] - map_variables = {} - for feat in metadata["entries"][0]["featureSet"]["features"]: - tipos.append(feat["dataType"]) - if feat["dataType"] == "NOMINAL" and feat["statistics"]["numOfNotNull"] != 0: - num_cat = len(feat["statistics"]["valueset"]) - map_cat = {} - for ind, cat in enumerate(feat["statistics"]["valueset"]): - map_cat[cat] = ind - map_variables[feat["name"]] = map_cat - for col,mapa in map_variables.items(): - dat[col] = dat[col].map(mapa) - - dat[map_variables.keys()].dropna() - - tipos=[] - map_variables = {} - boolean_map = {np.bool_(False) :0, np.bool_(True):1, "False":0,"True":1} - for feat in metadata["entries"][0]["featureSet"]["features"]: - tipos.append(feat["dataType"]) - if feat["dataType"] == "BOOLEAN" and feat["statistics"]["numOfNotNull"] != 0: - map_variables[feat["name"]] = boolean_map - for col,mapa in map_variables.items(): - dat[col] = dat[col].map(boolean_map) - - dat[map_variables.keys()].dropna() - - """ # Print statistics - for i in dat.keys(): - maxim = dat[i].max() - minim = dat[i].min() - mean = dat[i].mean() - estd = dat[i].std() - print(f"Column: {i}") - print(f" Maximum: {maxim:10.2f}") - print(f" Minimum: {minim:10.2f}") - print(f" Mean: {mean:10.2f}") - print(f" Std dev: {estd:10.2f}") - print("-" * 40) - """ + cat_map = {} + for feat in metadata: + col = feat["name"] + categories = feat.get("categories", {}) + label_to_int = {v: int(k) for k, v in categories.items()} + label_to_int.update({int(k): int(k) for k in categories}) + label_to_int.update({k: int(k) for k in categories}) + cat_map[col] = label_to_int + for col, mapa in cat_map.items(): + dat[col] = dat[col].map(mapa) + + for feat in metadata: + if feat["type"] == "continuous": + # Should we normalize? + pass dat_shuffled = dat.sample(frac=1).reset_index(drop=True) @@ -641,6 +702,167 @@ def load_dt4h(config): y_test = data_target[int(dat_len*config["train_size"]):].iloc[:, 0] return (X_train, y_train), (X_test, y_test) +def load_dt4h(config): + metadata_path = Path(config["metadata_file"]) + with open(metadata_path) as f: + metadata = json.load(f) + + data_file = Path(config["data_file"]) + dat_ = pd.read_parquet(data_file) +# dat = pd.read_csv("/home/jorge/workdir/flcore-suite/dataset/bucarest_sintetico/synthetic_dt4h_dataset.csv") + + dat_len = len(dat_) + dat = filter_nans(dat_, config["target_labels"], config["train_labels"]) +# ................................................................... + entries = metadata.get("entries", []) + if entries: + entry = entries[0] + features = entry["features"] + outcomes = entry["outcomes"] + feature_stats = entry["datasetStats"]["featureStats"] + outcome_stats = entry["datasetStats"]["outcomeStats"] + else: + features = metadata.get("features", []) + outcomes = metadata.get("outcomes", []) + dataset_stats = metadata.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + boolean_map = {False: 0, True: 1, "False": 0, "True": 1} +# ................................................................... + n_out = None + + for feat in features: + + name = feat["name"] + dtype = feat["dataType"] + + if name not in dat.columns: + continue + + stats = feature_stats.get(name, {}) + num_not_null = stats.get("numOfNotNull", 0) + + if num_not_null == 0: + continue + + # ------------------- + # NUMERIC + # ------------------- + if dtype == "NUMERIC": + + if config["normalization_method"] == "IQR": + + q1 = stats.get("q1") + q2 = stats.get("q2") + q3 = stats.get("q3") + + dat[name] = iqr_normalize(dat[name], q1, q2, q3) + + elif config["normalization_method"] == "MIN_MAX": + + mini = stats.get("min") + maxi = stats.get("max") + + dat[name] = min_max_normalize(dat[name], mini, maxi) + + # ------------------- + # NOMINAL + # ------------------- + elif dtype == "NOMINAL": + + value_set = stats.get("valueSet", []) + + if len(value_set) > 0: + cat_map = {cat: i for i, cat in enumerate(value_set)} + dat[name] = dat[name].map(cat_map) + + # ------------------- + # BOOLEAN + # ------------------- + elif dtype == "BOOLEAN": + + dat[name] = dat[name].map(boolean_map) + + for feat in outcomes: + + name = feat["name"] + dtype = feat["dataType"] + + if name not in dat.columns: + continue + + stats = outcome_stats.get(name, {}) + num_not_null = stats.get("numOfNotNull", 0) + + if num_not_null == 0: + continue + + # ------------------- + # NUMERIC + # ------------------- + if dtype == "NUMERIC": + + if config["normalization_method"] == "IQR": + + q1 = stats.get("q1") + q2 = stats.get("q2") + q3 = stats.get("q3") + + dat[name] = iqr_normalize(dat[name], q1, q2, q3) + + elif config["normalization_method"] == "MIN_MAX": + + mini = stats.get("min") + maxi = stats.get("max") + + dat[name] = min_max_normalize(dat[name], mini, maxi) + + # ------------------- + # NOMINAL + # ------------------- + elif dtype == "NOMINAL": + + value_set = stats.get("valueSet", []) + + if len(value_set) > 0: + cat_map = {cat: i for i, cat in enumerate(value_set)} + dat[name] = dat[name].map(cat_map) + + # ------------------- + # BOOLEAN + # ------------------- + elif dtype == "BOOLEAN": + + dat[name] = dat[name].map(boolean_map) + + # ------------------- + # Shuffle dataset + # ------------------- + dat = dat.sample(frac=1).reset_index(drop=True) + + target_labels = config["target_labels"] + train_labels = config["train_labels"] + + split_idx = int(dat_len * config["train_size"]) + + X = dat[train_labels] + y = dat[target_labels].iloc[:, 0] + + # Calculate n_out dynamically + if config.get("task") == "multiclass": + config["n_out"] = len(np.unique(y)) + elif config.get("task") == "classification" and len(np.unique(y)) > 2: + config["n_out"] = len(np.unique(y)) + + X_train = X[:split_idx] + y_train = y[:split_idx] + + X_test = X[split_idx:] + y_test = y[split_idx:] + + return (X_train, y_train), (X_test, y_test) + def load_survival(config): # ********* * * * * * * * * * * * * * * * * * * # Survival model @@ -650,62 +872,134 @@ def load_survival(config): # ********* * * * * * * * * * * * * * * * * * * from sksurv.util import Surv - metadata_file = Path(config['metadata_file']) - metadata = pd.read_json(metadata_file) - features = [mdt['name'] for mdt in metadata['entity']['features']] - nominal_features = [mdt['name'] for mdt in metadata['entity']['features'] if mdt['dataType'] == 'NOMINAL'] - data_file = Path(config['data_file']) - - time_col = config['survival']['time_col'] - event_col = config['survival']['event_col'] - - if time_col is None or event_col is None: - if 'outcomes' in metadata['entity'].keys(): - outcomes = metadata['entity']['outcomes'] - elif 'foutcomes' in metadata['entity'].keys(): - outcomes = metadata['entity']['foutcomes'] - else: - raise KeyError("outcomes/foutcomes key not found in metadata") - - if time_col is None: - time_feature_candidates = [outcome['name'] for outcome in outcomes - if outcome['dataType'] == 'NUMERIC'] - time_col = random.sample(time_feature_candidates, 1)[0] - if event_col is None: - event_feature_candidates = [outcome['name'] for outcome in outcomes - if outcome['dataType'] == 'BOOLEAN'] - event_col = random.sample(event_feature_candidates, 1)[0] + # ---------------------------- + # Sanity check + # ---------------------------- + has_time_event = config["time_col"] is not None and config["event_col"] is not None + has_pattern = config["accumulative_pattern_col"] is not None + + if has_time_event and has_pattern: + raise ValueError( + "Provide either (--time_col and --event_col) OR --accumulative_pattern_col, not both." + ) + + if not has_time_event and not has_pattern: + raise ValueError( + "You must provide either (--time_col and --event_col) OR --accumulative_pattern_col." + ) + + data_file = Path(config["data_file"]) + df = pd.read_parquet(data_file) + + # ---------------------------- + # CASE 1: accumulative horizons + # ---------------------------- + if has_pattern: + + pattern = config["accumulative_pattern_col"] + + horizon_map = { + "7d": 7, + "1mo": 30, + "3mo": 90, + "6mo": 180, + "1a": 365, + "3a": 365 * 3, + "5a": 365 * 5, + } + + horizon_cols = [c for c in df.columns if c.startswith(pattern)] + + if len(horizon_cols) == 0: + raise ValueError(f"No columns found for pattern {pattern}") - df = pd.read_parquet(data_file)[[*features, time_col, event_col]] - df[features[0]] *= random.uniform(0.7, 1.4) #! slight random change to CHECK + horizon_cols = sorted( + horizon_cols, + key=lambda c: horizon_map[c.replace(pattern, "")] + ) + + times = [] + events = [] + + for _, row in df.iterrows(): + + t = None + + for c in horizon_cols: + suffix = c.replace(pattern, "") + + if row[c]: + t = horizon_map[suffix] + break + + if t is None: + t = max(horizon_map.values()) + e = 0 + else: + e = 1 + + times.append(t) + events.append(e) + + df["time"] = times + df["event"] = events + + time_col = "time" + event_col = "event" + + # ---------------------------- + # CASE 2: already survival + # ---------------------------- + else: + + time_col = config["time_col"] + event_col = config["event_col"] + + # ---------------------------- + # Select columns + # ---------------------------- + feature_cols = config["train_labels"] + + df = df[[*feature_cols, time_col, event_col]] df_clean = df.replace({None: np.nan}).dropna() - if config['survival']['negative_duration_strategy'] == "remove": + + strategy = config["negative_duration_strategy"] + + if strategy == "remove": df_clean = df_clean[df_clean[time_col] >= 0].copy() - elif config['survival']['negative_duration_strategy'] == "shift": + + elif strategy == "shift": min_time = df_clean[time_col].min() if min_time < 0: df_clean[time_col] = df_clean[time_col] - min_time - elif config['survival']['negative_duration_strategy'] == "clip": + + elif strategy == "clip": df_clean[time_col] = df_clean[time_col].clip(lower=0) + else: - raise ValueError(f"Unknown negative_duration_strategy: {config['survival']['negative_duration_strategy']}") + raise ValueError(f"Unknown negative_duration_strategy: {strategy}") + df_clean = df_clean.reset_index(drop=True) - - X = df_clean.drop(columns=[time_col, event_col]) - X = X.copy() - X[nominal_features] = X[nominal_features].fillna("missing") - X_encoded = pd.get_dummies(X, columns=nominal_features, drop_first=True) - #! SAFEGUARD: Ensure all data is numeric after encoding + + X = df_clean.drop(columns=[time_col, event_col]).copy() + + X_encoded = pd.get_dummies(X, drop_first=True) + X_encoded = X_encoded.apply(pd.to_numeric, errors="coerce") + if X_encoded.isna().any().any(): print("Numeric coercion introduced NaNs:") print(X_encoded.isna().sum()[X_encoded.isna().sum() > 0]) + y_struct = Surv.from_dataframe(event_col, time_col, df_clean) X_train, X_test, y_train, y_test = train_test_split( - X_encoded, y_struct, test_size=1 - config['train_size'] + X_encoded, + y_struct, + test_size=1 - config["train_size"], + random_state=config.get("seed", 42) ) return (X_train, y_train), (X_test, y_test), time_col, event_col @@ -770,16 +1064,35 @@ def load_dataset(config, id=None): # return load_libsvm(config, id) elif config["dataset"] == "dt4h_format": return load_dt4h(config) + elif config["dataset"] == "base_format": + return load_base(config) elif config["dataset"] == "survival": return load_survival(config) else: raise ValueError("Invalid dataset name") + +def get_partitions(n_splits, test_size, random_state, task): + + if task == "classification": + splitter = StratifiedShuffleSplit( + n_splits=n_splits, + test_size=test_size, + random_state=random_state + ) + + elif task == "regression": + splitter = ShuffleSplit( + n_splits=n_splits, + test_size=test_size, + random_state=random_state + ) + else: + raise ValueError(f"Unknown task type: {task}") + + return splitter -def get_stratifiedPartitions(n_splits,test_size, random_state): - sss = StratifiedShuffleSplit(n_splits=n_splits,test_size=test_size, random_state=random_state) - return sss -def split_partitions(n_splits,test_size, random_state,X_data, y_data): - sss = get_stratifiedPartitions(n_splits,test_size, random_state) - splits_nested = (sss.split(X_data, y_data)) - return splits_nested +def split_partitions(n_splits, test_size, random_state, X_data, y_data, task): + splitter = get_partitions(n_splits, test_size, random_state, task) + splits_nested = splitter.split(X_data, y_data) + return splits_nested \ No newline at end of file diff --git a/flcore/metrics.py b/flcore/metrics.py index c2da583..8523b6b 100644 --- a/flcore/metrics.py +++ b/flcore/metrics.py @@ -101,7 +101,11 @@ def calculate_metrics(y_true, y_pred, config): y_true = torch.tensor(y_true.tolist()) if not torch.is_tensor(y_pred): y_pred = torch.tensor(y_pred.tolist()) - metrics_collection.update(y_pred.view(-1), y_true) + + if config["task"] == "regression": + metrics_collection.update(y_pred.view(-1), y_true) + else: + metrics_collection.update(y_pred, y_true) metrics = metrics_collection.compute() metrics = {k: v.item() for k, v in metrics.items()} @@ -123,4 +127,4 @@ def metrics_aggregation_fn(distributed_metrics): metrics['per client n samples'] = [res[0] for res in distributed_metrics] - return metrics \ No newline at end of file + return metrics diff --git a/flcore/models/cox/base_model.py b/flcore/models/cox/base_model.py index 1da9016..49864ec 100644 --- a/flcore/models/cox/base_model.py +++ b/flcore/models/cox/base_model.py @@ -16,4 +16,23 @@ def get_parameters(self): @abstractmethod def set_parameters(self, params): + pass + + @abstractmethod + def explain(self, X, horizons=None): + """ + Generate local explainability (SHAP values) for the given instances. + + Parameters: + ----------- + X : array-like or pd.DataFrame + Features of the instances to be explained. + horizons : list + List of horizons (e.g. [1, 3, 5]). + + Returns: + -------- + list + Structured list of dictionaries with predictions and explainability per horizon. + """ pass \ No newline at end of file diff --git a/flcore/models/cox/client.py b/flcore/models/cox/client.py index 4e67e59..edc63a6 100644 --- a/flcore/models/cox/client.py +++ b/flcore/models/cox/client.py @@ -14,11 +14,13 @@ python client.py """ -import argparse import os import sys +import json +import argparse import flwr as fl from typing import Dict +from pathlib import Path from flcore.models.cox.model import CoxPHModel from flcore.models.cox.data_formatter import get_numpy @@ -29,11 +31,13 @@ # ------------------------------- class FLClient(fl.client.NumPyClient): - def __init__(self, local_data: Dict, client_id: str = "client", saving_path: str = "/sandbox/"): + def __init__(self, local_data, config): + self.config = config self.model_wrapper = None # will be set later self.local_data = local_data - self.id = client_id - self.saving_path = saving_path + self.id = config["node_name"] + self.saving_path = config["experiment_dir"] + self.round = 0 os.makedirs(f"{self.saving_path}", exist_ok=True) os.makedirs(f"{self.saving_path}/models/", exist_ok=True) @@ -58,6 +62,11 @@ def fit(self, parameters, config): params = self.get_parameters() num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) + + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return params, num_examples, {} def evaluate(self, parameters, config): @@ -74,15 +83,69 @@ def evaluate(self, parameters, config): metrics['client_id'] = self.id num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) - # Save model - self.model_wrapper.save_model(f"{self.saving_path}/models/cox.pkl") - return 1 - metrics['c_index'], num_examples, metrics - - - -def get_client(config, data, client_id="client") -> fl.client.Client: + def save_model(self): + save_path = Path(self.config["experiment_dir"])/"models" + save_path.mkdir(parents=True, exist_ok=True) + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.pkl" + self.model_wrapper.save_model(model_path) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"Model and metadata saved for inference at {save_path}") + +def get_client(config, data) -> fl.client.Client: (X_train, y_train), (X_test, y_test), time, event = data local_data = get_numpy(X_train, y_train, X_test, y_test, time, event) - return FLClient(local_data, client_id=client_id, saving_path=config["experiment_dir"]) \ No newline at end of file + return FLClient(local_data, config) diff --git a/flcore/models/cox/model.py b/flcore/models/cox/model.py index 4c9b89e..2efd494 100644 --- a/flcore/models/cox/model.py +++ b/flcore/models/cox/model.py @@ -312,4 +312,62 @@ def load_model(self, path: str): def predict_risk(self, X: np.ndarray) -> np.ndarray: if self.beta is None: raise ValueError("Model not trained or parameters not loaded.") - return X @ self.beta \ No newline at end of file + return X @ self.beta + + def explain(self, X, horizons=None): + """ + Generate SHAP values for the CoxPH model. + """ + import shap + import pandas as pd + + if horizons is None: + horizons = [1, 3, 5] + + if self.beta is None: + raise ValueError("Model not trained or parameters not loaded.") + + # Convert to numpy if it's a dataframe to ensure matrix multiplication works as expected + X_val = X.values if isinstance(X, pd.DataFrame) else X + + try: + # Linear Explainer is the most appropriate for CoxPH + explainer = shap.LinearExplainer((self.beta, 0.0), X_val) + shap_values = explainer.shap_values(X_val) + except Exception as e: + if self.verbose: + print(f"[CoxPHModel] LinearExplainer failed, falling back to Explainer: {e}") + explainer = shap.Explainer(self.predict_risk, X_val) + shap_values = explainer(X_val).values + + import numpy as np + shap_values_np = np.array(shap_values) + if shap_values_np.ndim > 2: + shap_values_np = shap_values_np[:, :, 0] + + mean_abs_shap = np.abs(shap_values_np).mean(axis=0) + total_shap = mean_abs_shap.sum() + + if total_shap > 0: + relative_contribution = (mean_abs_shap / total_shap) * 100 + else: + relative_contribution = np.zeros_like(mean_abs_shap) + + n_samples = X_val.shape[0] + risk_scores = self.predict_risk(X_val) + + results = [] + for i in range(n_samples): + patient_result = [] + for h in horizons: + patient_result.append({ + "horizon": str(h), + "score": float(risk_scores[i]), + "shap_data": shap_values_np[i].tolist(), + "contribution_data": relative_contribution.tolist(), + "whatever_data": [], + "distribution_data": [] + }) + results.append(patient_result) + + return results if n_samples > 1 else results[0] \ No newline at end of file diff --git a/flcore/models/cox/server.py b/flcore/models/cox/server.py index b7ea352..5e8d78f 100644 --- a/flcore/models/cox/server.py +++ b/flcore/models/cox/server.py @@ -154,9 +154,11 @@ def get_server_and_strategy( strategy = CustomStrategy( on_fit_config_fn=get_fit_config_fn(config['l1_penalty']), rounds = config['num_rounds'], + min_fit_clients = config["min_fit_clients"], + min_evaluate_clients = config["min_evaluate_clients"], min_available_clients=config['num_clients'], saving_path=config['experiment_dir'], l1_penalty=config['l1_penalty'] ) - return None, strategy \ No newline at end of file + return None, strategy diff --git a/flcore/models/gbs/base_model.py b/flcore/models/gbs/base_model.py index 735d947..ac604c3 100644 --- a/flcore/models/gbs/base_model.py +++ b/flcore/models/gbs/base_model.py @@ -15,4 +15,23 @@ def get_parameters(self): @abstractmethod def set_parameters(self, params): + pass + + @abstractmethod + def explain(self, X, horizons=None): + """ + Generate local explainability (SHAP values) for the given instances. + + Parameters: + ----------- + X : array-like or pd.DataFrame + Features of the instances to be explained. + horizons : list + List of horizons (e.g. [1, 3, 5]). + + Returns: + -------- + list + Structured list of dictionaries with predictions and explainability per horizon. + """ pass \ No newline at end of file diff --git a/flcore/models/gbs/client.py b/flcore/models/gbs/client.py index bbb7965..4856329 100644 --- a/flcore/models/gbs/client.py +++ b/flcore/models/gbs/client.py @@ -14,11 +14,14 @@ python client.py """ -import argparse import os import sys +import json +import joblib +import argparse import flwr as fl from typing import Dict +from pathlib import Path from flcore.models.gbs.model import GBSModel from flcore.models.gbs.data_formatter import get_numpy @@ -29,12 +32,13 @@ # ------------------------------- class FLClient(fl.client.NumPyClient): - def __init__(self, local_data: Dict, client_id: str = "client", saving_path: str = "/sandbox/"): + def __init__(self, local_data, config): + self.config = config self.model_wrapper = None # will be set later self.local_data = local_data - self.id = client_id - self.saving_path = saving_path - os.makedirs(f"{self.saving_path}", exist_ok=True) + self.id = config["node_name"] + self.saving_path = config["experiment_dir"] + self.round = 0 os.makedirs(f"{self.saving_path}/models/", exist_ok=True) def get_parameters(self, config=None): @@ -58,6 +62,11 @@ def fit(self, parameters, config): params = self.get_parameters() num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) + + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return params, num_examples, {} def evaluate(self, parameters, config): @@ -74,15 +83,70 @@ def evaluate(self, parameters, config): metrics['client_id'] = self.id num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) - # Save model - self.model_wrapper.save_model(f"{self.saving_path}/models/gbs.pkl") - return 1 - metrics['c_index'], num_examples, metrics - - - -def get_client(config, data, client_id="client") -> fl.client.Client: + def save_model(self): + save_path = Path(self.config["experiment_dir"])/"models" + save_path.mkdir(parents=True, exist_ok=True) + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.pkl" + self.model_wrapper.save_model(model_path) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"Model and metadata saved for inference at {save_path}") + + +def get_client(config, data) -> fl.client.Client: (X_train, y_train), (X_test, y_test), time, event = data local_data = get_numpy(X_train, y_train, X_test, y_test, time, event) - return FLClient(local_data, client_id=client_id, saving_path=config["experiment_dir"]) \ No newline at end of file + return FLClient(local_data, config) diff --git a/flcore/models/gbs/model.py b/flcore/models/gbs/model.py index e0baac7..c35b31a 100644 --- a/flcore/models/gbs/model.py +++ b/flcore/models/gbs/model.py @@ -220,3 +220,70 @@ def load_model(self, path: str): with open(path, 'rb') as f: import pickle self.set_parameters(pickle.load(f)) + + def explain(self, X, horizons=None): + """ + Generate SHAP values for the GBS model (FPBoost). + """ + import shap + import pandas as pd + + if horizons is None: + horizons = [1, 3, 5] + + try: + # TreeExplainer is efficient for tree-based models + explainer = shap.TreeExplainer(self.model) + shap_values = explainer.shap_values(X) + except Exception as e: + print(f"[GBSModel] TreeExplainer failed, falling back to Explainer: {e}") + X_val = X.values if isinstance(X, pd.DataFrame) else X + background = shap.sample(X_val, 100) if len(X_val) > 100 else X_val + explainer = shap.Explainer(self.predict_risk, background) + shap_values = explainer(X).values + + import numpy as np + shap_values_np = np.array(shap_values) + if shap_values_np.ndim > 2: + shap_values_np = shap_values_np[:, :, 0] + + mean_abs_shap = np.abs(shap_values_np).mean(axis=0) + total_shap = mean_abs_shap.sum() + + if total_shap > 0: + relative_contribution = (mean_abs_shap / total_shap) * 100 + else: + relative_contribution = np.zeros_like(mean_abs_shap) + + X_val = X.values if hasattr(X, "values") else X + n_samples = X_val.shape[0] + scores_at_horizons = {h: [] for h in horizons} + + try: + from scipy.interpolate import interp1d + surv_funcs = self.model.predict_survival_function(X) # pass original X in case of pd.DataFrame + for fn in surv_funcs: + for h in horizons: + f = interp1d(fn.x, fn.y, bounds_error=False, fill_value=(1.0, 0.0)) + scores_at_horizons[h].append(float(f(h))) + except Exception as e: + print(f"[GBSModel] Fallback to risk scores for horizon evaluation: {e}") + risk_scores = self.predict_risk(X) + for h in horizons: + scores_at_horizons[h] = risk_scores.tolist() + + results = [] + for i in range(n_samples): + patient_result = [] + for h in horizons: + patient_result.append({ + "horizon": str(h), + "score": scores_at_horizons[h][i], + "shap_data": shap_values_np[i].tolist(), + "contribution_data": relative_contribution.tolist(), + "whatever_data": [], + "distribution_data": [] + }) + results.append(patient_result) + + return results if n_samples > 1 else results[0] diff --git a/flcore/models/gbs/server.py b/flcore/models/gbs/server.py index 1f66bdc..c7823c1 100644 --- a/flcore/models/gbs/server.py +++ b/flcore/models/gbs/server.py @@ -150,6 +150,8 @@ def get_server_and_strategy( strategy = CustomStrategy( on_fit_config_fn=get_fit_config_fn(config['n_estimators']), rounds = config['num_rounds'], + min_fit_clients = config["min_fit_clients"], + min_evaluate_clients = config["min_evaluate_clients"], min_available_clients=config['num_clients'], saving_path=config['experiment_dir'], ) diff --git a/flcore/models/linear_models/client.py b/flcore/models/linear_models/client.py index d624529..9f1555a 100644 --- a/flcore/models/linear_models/client.py +++ b/flcore/models/linear_models/client.py @@ -1,4 +1,4 @@ - +from scipy.special import softmax from sklearn.linear_model import SGDClassifier from sklearn.metrics import log_loss import time @@ -16,7 +16,9 @@ from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_squared_error from sklearn.metrics import accuracy_score - +import json +import joblib +from pathlib import Path # Define Flower client class MnistClient(fl.client.NumPyClient): @@ -26,13 +28,20 @@ def __init__(self, data,config): # Load data (self.X_train, self.y_train), (self.X_test, self.y_test) = data + if self.config["task"] == "classification": + stratify=self.y_train + else: + stratify = None + # Create train and validation split - self.X_train, self.X_val, self.y_train, self.y_val = train_test_split( - self.X_train, - self.y_train, - test_size=config["test_size"], - random_state=config["seed"], - stratify=self.y_train) +# self.X_train, self.X_val, self.y_train, self.y_val = train_test_split( +# self.X_train, +# self.y_train, +# test_size=config["test_size"], +# random_state=config["seed"], +# stratify=stratify +# ) +# stratify=self.y_train) # #Only use the standardScaler to the continous variables # scaled_features_train = StandardScaler().fit_transform(self.X_train.values) @@ -47,6 +56,7 @@ def __init__(self, data,config): self.model = utils.get_model(config) self.round_time = 0 self.first_round = True + self.round = 0 self.personalize = True # Setting initial parameters, akin to model.compile for keras models utils.set_initial_params(self.model, config) @@ -91,55 +101,46 @@ def fit(self, parameters, config): # type: ignore metrics.update(local_metrics) self.first_round = False + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return utils.get_model_parameters(self.model), len(self.X_train), metrics def evaluate(self, parameters, config): utils.set_model_params(self.model, parameters) - # Calculate validation set metrics - pred = self.model.predict(self.X_val) + pred = self.model.predict(self.X_test) y_pred = pred - metrics = calculate_metrics(self.y_val, y_pred, self.config) - + metrics = calculate_metrics(self.y_test, y_pred, self.config) if self.config["task"] == "classification": if self.config["n_out"] > 1: # Multivariable - losses = [] - if hasattr(self.model, "predict_proba"): - y_score = self.model.predict_proba(self.X_val) - - for m in range(self.y_val.shape[1]): - losses.append( - log_loss( - self.y_val[:, m], - y_score[:, m] - ) - ) + y_score = self.model.predict_proba(self.X_test) + loss = log_loss(self.y_test,y_score,labels=np.arange(self.config["n_out"])) else: - print("PREDICT PROBA NO DISPONIBLE") - """ - for m in range(self.y_test.shape[1]): - losses.append( - 1.0 - accuracy_score( - self.y_test[:, m], - y_pred[:, m] - ) - ) - """ + decision = self.model.decision_function(self.X_test) + y_score = softmax(decision, axis=1) + loss = log_loss( + self.y_test, + y_score, + labels=np.arange(self.config["n_out"]) + ) + elif self.config["n_out"] == 1: # Binario if hasattr(self.model, "predict_proba"): loss = log_loss( - self.y_val, - self.model.predict_proba(self.X_val) + self.y_test, + self.model.predict_proba(self.X_test) ) else: loss = 1.0 - accuracy_score( - self.y_val, + self.y_test, y_pred ) elif self.config["task"] == "regression": - loss = mean_squared_error(self.y_val, y_pred) + loss = mean_squared_error(self.y_test, y_pred) metrics["round_time [s]"] = self.round_time # No tiene sentido agregar el client ID @@ -149,9 +150,67 @@ def evaluate(self, parameters, config): return loss, len(y_pred), metrics + def save_model(self): + save_path = Path(self.config["experiment_dir"])/"models" + save_path.mkdir(parents=True, exist_ok=True) + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.joblib" + joblib.dump(self.model, model_path) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"Model and metadata saved for inference at {save_path}") def get_client(config,data) -> fl.client.Client: return MnistClient(data,config) # # Start Flower client # fl.client.start_numpy_client(server_address="0.0.0.0:8080", client=MnistClient()) - diff --git a/flcore/models/logistic_regression/client.py b/flcore/models/logistic_regression/client.py index 73c9b11..ad3a7dd 100644 --- a/flcore/models/logistic_regression/client.py +++ b/flcore/models/logistic_regression/client.py @@ -1,9 +1,13 @@ -import warnings +import json +import joblib +import warnings import flwr as fl import numpy as np -from sklearn.linear_model import LogisticRegression +from pathlib import Path + from sklearn.metrics import log_loss +from sklearn.linear_model import LogisticRegression import flcore.models.logistic_regression.utils as utils @@ -36,6 +40,7 @@ def __init__(self, data): ) (self.X_train, self.y_train), (self.X_test, self.y_test) = data # Setting initial parameters, akin to model.compile for keras models + self.round = 0 utils.set_initial_params(self.model, data) def get_parameters(self, config): # type: ignore @@ -48,6 +53,11 @@ def fit(self, parameters, config): # type: ignore warnings.simplefilter("ignore") self.model.fit(self.X_train, self.y_train) print(f"Training finished for round {config['server_round']}") + + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return utils.get_model_parameters(self.model), len(self.X_train), {} def evaluate(self, parameters, config): # type: ignore @@ -56,6 +66,65 @@ def evaluate(self, parameters, config): # type: ignore accuracy = self.model.score(self.X_test, self.y_test) return loss, len(self.X_test), {"accuracy": accuracy} + def save_model(self): + save_path = Path(self.config["sandbox_path"])/"model" + save_path.mkdir(parents=True, exist_ok=True) + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.joblib" + joblib.dump(self.model, model_path) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"Model and metadata saved for inference at {save_path}") def get_client(data) -> fl.client.Client: return MnistClient(data) diff --git a/flcore/models/nn/FedCustomAggregator.py b/flcore/models/nn/FedCustomAggregator.py index c3d23d7..fe4fd00 100644 --- a/flcore/models/nn/FedCustomAggregator.py +++ b/flcore/models/nn/FedCustomAggregator.py @@ -50,7 +50,6 @@ def aggregate_fit(self, server_round: int, results: List[Tuple[fl.server.client_ num_examples = fitres.num_examples entropy = fitres.metrics.get("entropy", 1.0) # peso = más datos y menor entropía => mayor confianza - print(" *********************** ENTROPIA", entropy) w = num_examples / (self.epsilon + entropy) weights_results.append((ndarrays, w)) agg_weights.append(w) diff --git a/flcore/models/nn/client.py b/flcore/models/nn/client.py index 3e87299..50bdba7 100644 --- a/flcore/models/nn/client.py +++ b/flcore/models/nn/client.py @@ -23,6 +23,7 @@ # ______________________________________________________________ import sys +import json import torch import flwr as fl import numpy as np @@ -69,6 +70,8 @@ def __init__(self, config, data): self.model = BasicNN( config["n_feats"], config["n_out"], config["dropout_p"] ).to(self.device) self.optimizer = optim.Adam(self.model.parameters(), lr=self.lr) + self.round = 0 + if self.config["task"] == "classification": if config["n_out"] == 1: # Binario self.criterion = nn.BCEWithLogitsLoss() @@ -144,6 +147,10 @@ def fit(self, parameters, params): dataset_len = self.y_train.shape[0] # return get_weights(self.model), num_examples, metrics + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return self.get_parameters(config={}), dataset_len, {} # @torch.no_grad() @@ -169,7 +176,9 @@ def evaluate(self, parameters, params): probs = torch.sigmoid(logits.squeeze(1)) preds = (probs > 0.5).long() else: # Multiclase - loss = F.cross_entropy(logits, y.long()) + #y = y.squeeze() + y = y.long() + loss = F.cross_entropy(logits, y) preds = torch.argmax(logits, dim=1) correct += (preds == y).sum().item() elif self.config["task"] == "regression": @@ -186,6 +195,73 @@ def evaluate(self, parameters, params): # return total_loss / total, correct / total return float(test_loss), dataset_len, metrics + def save_model(self): + save_path = Path(self.config["sandbox_path"]) / "model" + save_path.mkdir(parents=True, exist_ok=True) + + model_name = f"{self.config['model']}_{self.config['task']}_round_{getattr(self, 'round', 0)}" + + model_path = save_path / f"{model_name}_model.pt" + torch.save(self.model.state_dict(), model_path) + + with open(self.config["metadata_file"], "r") as f: + data_metadata = json.load(f) + + entity = data_metadata.get("entries", [])[0] + + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + f_meta['stats'] = feature_stats.get(f_name, {}) + + for o_name, o_meta in all_outcomes_meta.items(): + o_meta['stats'] = outcome_stats.get(o_name, {}) + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_feats": self.config["n_feats"], # FIX + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names": self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta, + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"[Client] NN model saved at {model_path}") +""" +model = BasicNN(...) +model.load_state_dict(torch.load("model.pt")) +model.eval() +""" + def get_client(config,data) -> fl.client.Client: # client = FlowerClient(params).to_client() return FlowerClient(config,data) diff --git a/flcore/models/random_forest/client.py b/flcore/models/random_forest/client.py index db819a6..d314ba0 100644 --- a/flcore/models/random_forest/client.py +++ b/flcore/models/random_forest/client.py @@ -1,4 +1,7 @@ +import json +import joblib import warnings +from pathlib import Path import flwr as fl import numpy as np @@ -37,10 +40,12 @@ def __init__(self, data, config): config["test_size"], config["seed"], self.X_train, - self.y_train) + self.y_train, + config["task"]) self.model = utils.get_model(config) # Setting initial parameters, akin to model.compile for keras models # AQUI DEBERIA INICIALIZAR CON 0, ya que está en fit, que haga 1 iteración + self.round = 0 utils.set_initial_params_client(self.model,self.X_train, self.y_train) def get_parameters(self, ins: GetParametersIns): # , config type: ignore @@ -100,6 +105,11 @@ def fit(self, ins: FitIns): # , parameters, config type: ignore params = utils.get_model_parameters(self.model) parameters_updated = serialize_RF(params) + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 + # Build and return response status = Status(code=Code.OK, message="Success") return FitRes( @@ -147,7 +157,7 @@ def evaluate(self, ins: EvaluateIns): # , parameters, config type: ignore # ************************************************** CORREGIR ADAPTAR # ************************************* Por ahora idéntico al binario y_pred_prob = self.model.predict_proba(self.X_test) - loss = log_loss(self.y_test, y_pred_prob) + loss = log_loss(self.y_test, y_pred_prob,labels=np.arange(self.config["n_out"])) # accuracy,specificity,sensitivity,balanced_accuracy, precision, F1_score = \ # measurements_metrics(self.model,self.X_test, self.y_test) y_pred = self.model.predict(self.X_test) @@ -181,6 +191,70 @@ def evaluate(self, ins: EvaluateIns): # , parameters, config type: ignore metrics=metrics, ) + def save_model(self): + save_path = Path(self.config["experiment_dir"]) / "models" + save_path.mkdir(parents=True, exist_ok=True) + + model_name = f"{self.config['model']}_{self.config['task']}_round_{self.round}" + + model_path = save_path / f"{model_name}_model.joblib" + joblib.dump(self.model, model_path) + + with open(self.config["metadata_file"], "r") as f: + data_metadata = json.load(f) + + entity = data_metadata.get("entries", [])[0] + + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_feats": self.config["n_feats"], # <-- FIX importante + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names": self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta, + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"[Client {self.node_name}] Model saved at round {self.round} -> {model_path}") + def get_client(config,data) -> fl.client.Client: return MnistClient(data, config) # # Start Flower client diff --git a/flcore/models/rsf/base_model.py b/flcore/models/rsf/base_model.py index 735d947..ac604c3 100644 --- a/flcore/models/rsf/base_model.py +++ b/flcore/models/rsf/base_model.py @@ -15,4 +15,23 @@ def get_parameters(self): @abstractmethod def set_parameters(self, params): + pass + + @abstractmethod + def explain(self, X, horizons=None): + """ + Generate local explainability (SHAP values) for the given instances. + + Parameters: + ----------- + X : array-like or pd.DataFrame + Features of the instances to be explained. + horizons : list + List of horizons (e.g. [1, 3, 5]). + + Returns: + -------- + list + Structured list of dictionaries with predictions and explainability per horizon. + """ pass \ No newline at end of file diff --git a/flcore/models/rsf/client.py b/flcore/models/rsf/client.py index 95a50fd..442beae 100644 --- a/flcore/models/rsf/client.py +++ b/flcore/models/rsf/client.py @@ -5,24 +5,27 @@ # Project: AI4HF # ********* * * * * * * * * * * * * * * * * * * -import argparse import os import sys +import json +import joblib +import argparse import flwr as fl from typing import Dict +from pathlib import Path from flcore.models.rsf.model import RSFModel from flcore.models.rsf.data_formatter import get_numpy class FLClient(fl.client.NumPyClient): - def __init__(self, local_data: Dict, client_id: str = "client", saving_path: str = "/sandbox/"): + def __init__(self, local_data, config): + self.config = config self.model_wrapper = None # will be set later self.local_data = local_data - self.model_type = None # will be set later - self.id = client_id - self.saving_path = saving_path - os.makedirs(f"{self.saving_path}", exist_ok=True) + self.id = config["node_name"] + self.saving_path = config["experiment_dir"] + self.round = 0 os.makedirs(f"{self.saving_path}/models/", exist_ok=True) def get_parameters(self, config=None): @@ -32,7 +35,6 @@ def get_parameters(self, config=None): def fit(self, parameters, config): # Get model type from server - model_kwargs = {k: v for k, v in config.items() if k != "model_type"} if self.model_wrapper is None: self.model_wrapper = RSFModel(**model_kwargs) @@ -46,6 +48,11 @@ def fit(self, parameters, config): params = self.get_parameters() num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) + + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return params, num_examples, {} def evaluate(self, parameters, config): @@ -62,12 +69,69 @@ def evaluate(self, parameters, config): metrics['client_id'] = self.id num_examples = data.get("num_examples", len(data.get("X", [])) if "X" in data else len(data.get("df"))) - # Save model - self.model_wrapper.save_model(f"{self.saving_path}/models/rsf.pkl") - return 1 - metrics['c_index'], num_examples, metrics -def get_client(config, data, client_id="client") -> fl.client.Client: + def save_model(self): + save_path = Path(self.config["experiment_dir"])/"models" + save_path.mkdir(parents=True, exist_ok=True) + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.pkl" + self.model_wrapper.save_model(model_path) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"Model and metadata saved for inference at {save_path}") + +def get_client(config, data) -> fl.client.Client: (X_train, y_train), (X_test, y_test), time, event = data local_data = get_numpy(X_train, y_train, X_test, y_test, time, event) - return FLClient(local_data, client_id=client_id, saving_path=config["experiment_dir"]) \ No newline at end of file + return FLClient(local_data, config=config) diff --git a/flcore/models/rsf/model.py b/flcore/models/rsf/model.py index 9a98dad..1b40622 100644 --- a/flcore/models/rsf/model.py +++ b/flcore/models/rsf/model.py @@ -208,3 +208,70 @@ def load_model(self, path: str): import pickle self.set_parameters(pickle.load(f)) + def explain(self, X, horizons=None): + """ + Generate SHAP values for the RandomSurvivalForest model. + """ + import shap + import pandas as pd + + if horizons is None: + horizons = [1, 3, 5] + + try: + # Try TreeExplainer first for efficiency + explainer = shap.TreeExplainer(self.model) + shap_values = explainer.shap_values(X) + except Exception as e: + print(f"[RSFModel] TreeExplainer failed, falling back to Explainer: {e}") + X_val = X.values if isinstance(X, pd.DataFrame) else X + background = shap.sample(X_val, 100) if len(X_val) > 100 else X_val + explainer = shap.Explainer(self.predict_risk, background) + shap_values = explainer(X).values + + import numpy as np + shap_values_np = np.array(shap_values) + if shap_values_np.ndim > 2: + shap_values_np = shap_values_np[:, :, 0] + + mean_abs_shap = np.abs(shap_values_np).mean(axis=0) + total_shap = mean_abs_shap.sum() + + if total_shap > 0: + relative_contribution = (mean_abs_shap / total_shap) * 100 + else: + relative_contribution = np.zeros_like(mean_abs_shap) + + X_val = X.values if hasattr(X, "values") else X + n_samples = X_val.shape[0] + scores_at_horizons = {h: [] for h in horizons} + + try: + surv_funcs = self.predict_survival(X) + from scipy.interpolate import interp1d + for surv_series in surv_funcs: + for h in horizons: + f = interp1d(surv_series.index, surv_series.values, bounds_error=False, fill_value=(1.0, 0.0)) + scores_at_horizons[h].append(float(f(h))) + except Exception as e: + print(f"[RSFModel] Fallback to risk scores for horizon evaluation: {e}") + risk_scores = self.predict_risk(X_val) + for h in horizons: + scores_at_horizons[h] = risk_scores.tolist() + + results = [] + for i in range(n_samples): + patient_result = [] + for h in horizons: + patient_result.append({ + "horizon": str(h), + "score": scores_at_horizons[h][i], + "shap_data": shap_values_np[i].tolist(), + "contribution_data": relative_contribution.tolist(), + "whatever_data": [], + "distribution_data": [] + }) + results.append(patient_result) + + return results if n_samples > 1 else results[0] + diff --git a/flcore/models/rsf/server.py b/flcore/models/rsf/server.py index 6a2779e..88eaf04 100644 --- a/flcore/models/rsf/server.py +++ b/flcore/models/rsf/server.py @@ -150,6 +150,8 @@ def get_server_and_strategy( strategy = CustomStrategy( on_fit_config_fn=get_fit_config_fn(config['n_estimators']), rounds = config['num_rounds'], + min_fit_clients = config["min_fit_clients"], + min_evaluate_clients = config["min_evaluate_clients"], min_available_clients=config['num_clients'], saving_path=config['experiment_dir'], ) diff --git a/flcore/models/xgb/client.py b/flcore/models/xgb/client.py index e16ebb1..14eff5a 100644 --- a/flcore/models/xgb/client.py +++ b/flcore/models/xgb/client.py @@ -6,13 +6,13 @@ # ********* * * * * * * * * * * * * * * * * * * import os -from typing import Dict, Tuple, List +import json import flwr as fl -from flwr.common import NDArrays, Scalar -import xgboost as xgb import numpy as np +import xgboost as xgb from pathlib import Path - +from typing import Dict, Tuple, List +from flwr.common import NDArrays, Scalar class XGBoostClient(fl.client.NumPyClient): """Flower client for federated XGBoost training. @@ -22,11 +22,7 @@ class XGBoostClient(fl.client.NumPyClient): - cyclic: Each client refines the global model sequentially """ - def __init__( - self, - local_data: Dict, - saving_path: str = "/sandbox/", - ): + def __init__(self, local_data, config): """ Initialize XGBoost client. @@ -38,8 +34,9 @@ def __init__( - y_test: Test labels saving_path: Path to save local models and logs """ + self.config = config self.local_data = local_data - self.saving_path = Path(saving_path) + self.saving_path = config["experiment_dir"] self.saving_path.mkdir(parents=True, exist_ok=True) # Create models directory @@ -52,7 +49,8 @@ def __init__( self.dtrain = None self.dtest = None self.label_encoder = None # For categorical target encoding - + self.round = 0 + # Prepare data self._prepare_data() @@ -141,6 +139,13 @@ def fit( k: v for k, v in config.items() if k not in ["server_round", "num_local_rounds", "train_method"] } + + # If multiclass objective, ensure num_class is correctly set from local data + if self.xgb_params.get("objective", "").startswith("multi"): + n_classes = len(np.unique(self.local_data['y_train'])) + if n_classes >= 2: + self.xgb_params["num_class"] = n_classes + print(f"[Client] Multiclass detected: num_class={n_classes}") print(f"\n[Client] === Round {server_round} - FIT ===") print(f"[Client] Method: {train_method}") @@ -208,13 +213,14 @@ def fit( metrics = { "num_examples": num_examples, "num_trees": self.bst.num_boosted_rounds(), + "n_out": len(np.unique(self.local_data['y_train'])), } # Save local model - local_model_path = self.saving_path / "models" / f"xgboost_client__round_{server_round}.json" - self.bst.save_model(str(local_model_path)) - print(f"[Client] Saved local model to {local_model_path}") - + if self.round % self.config["save_every_n_rounds"] == 0: + self.save_model() + + self.round += 1 return [model_array], num_examples, metrics def evaluate( @@ -326,6 +332,66 @@ def evaluate( return loss, num_examples, metrics + def save_model(self): + save_path = Path(self.config["experiment_dir"])/"models" + save_path.mkdir(parents=True, exist_ok=True) + + model_name = self.config["model"]+"_"+self.config["task"]+"_round_"+str(self.round) + model_path = save_path / f"{model_name}_model.json" + self.bst.save_model(str(model_path)) + + data_metadata = json.load(open(self.config["metadata_file"], "r")) + entity = data_metadata.get("entries", {})[0] + features_list = entity.get("features", []) + outcomes_list = entity.get("outcomes", []) + dataset_stats = entity.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + + all_features_meta = {f['name']: f for f in features_list} + all_outcomes_meta = {o['name']: o for o in outcomes_list} + + for f_name, f_meta in all_features_meta.items(): + stats = feature_stats.get(f_name, {}) + f_meta['stats'] = stats + + for o_name, o_meta in all_outcomes_meta.items(): + stats = outcome_stats.get(o_name, {}) + o_meta['stats'] = stats + + features_meta = {} + for label in self.config["train_labels"]: + if label in all_features_meta: + features_meta[label] = all_features_meta[label] + elif label in all_outcomes_meta: + features_meta[label] = all_outcomes_meta[label] + + outcomes_meta = {} + for label in self.config["target_labels"]: + if label in all_outcomes_meta: + outcomes_meta[label] = all_outcomes_meta[label] + elif label in all_features_meta: + outcomes_meta[label] = all_features_meta[label] + +#>>> features_meta["patient_demographics_age"]["stats"]["min"] + metadata = { + "node_name": self.config["node_name"], + "task": self.config["task"], + "n_out": self.config["n_out"], + "n_out": self.config["n_feats"], + "model_type": self.config["model"], + "feature_names": self.config["train_labels"], + "target_names":self.config["target_labels"], + "metrics": getattr(self, "last_metrics", None), + "features_meta": features_meta, + "outcomes_meta": outcomes_meta + } + + metadata_path = save_path / f"{model_name}_model_metadata.json" + with open(metadata_path, "w") as f: + json.dump(metadata, f, indent=4) + + print(f"[Client] XGBoost model saved at {model_path}") def get_numpy(X_train, y_train, X_test, y_test, time_col=None, event_col=None) -> Dict: """Convert data to dictionary format expected by client. @@ -360,8 +426,7 @@ def get_numpy(X_train, y_train, X_test, y_test, time_col=None, event_col=None) - 'num_examples': len(X_train), } - -def get_client(config: Dict, data: Tuple) -> fl.client.Client: +def get_client(config, data) -> fl.client.Client: """Create and return XGBoost federated learning client. Args: @@ -378,9 +443,5 @@ def get_client(config: Dict, data: Tuple) -> fl.client.Client: local_data = get_numpy(X_train, y_train, X_test, y_test) # Create client - client = XGBoostClient( - local_data=local_data, - saving_path=config.get("experiment_dir", "/sandbox/"), - ) - - return client \ No newline at end of file + client = XGBoostClient(local_data,config) + return client diff --git a/flcore/models/xgb/server.py b/flcore/models/xgb/server.py index 718fe03..873fb9d 100644 --- a/flcore/models/xgb/server.py +++ b/flcore/models/xgb/server.py @@ -1,39 +1,132 @@ -# ********* * * * * * * * * * * * * * * * * * * -# XGBoost -# Author: Iratxe Moya -# Date: January 2026 -# Project: DT4H -# ********* * * * * * * * * * * * * * * * * * * +""" +Fully Federated XGBoost - Flower Message-Based Server +""" +import json import os -from typing import Tuple, Dict, List, Optional, Callable -import flwr as fl +from pathlib import Path +from typing import Tuple, Dict, List, Optional, Callable, Iterable, Any + +import numpy as np +import xgboost as xgb + from flwr.common import ( + ArrayRecord, + ConfigRecord, + Message, + MetricRecord, + RecordDict, Parameters, FitRes, EvaluateRes, Scalar, - NDArrays, parameters_to_ndarrays, ndarrays_to_parameters, ) +from flwr.server import Grid +from flwr.server.strategy import FedAvg from flwr.server.client_proxy import ClientProxy -import xgboost as xgb -import numpy as np -from pathlib import Path -class XGBoostStrategy(fl.server.strategy.FedAvg): - """Custom strategy for federated XGBoost training. - - Supports two training methods: - - bagging: Ensemble of trees from different clients (parallel) - - cyclic: Sequential refinement of the same model (sequential) - """ - +# ========================================================== +# BAGGING AGGREGATION (Tree-Level JSON Merge) +# ========================================================== + +def _get_tree_nums(xgb_model_org: bytes): + """Extract total tree numbers from XGBoost JSON model.""" + bst = json.loads(bytearray(xgb_model_org)) + model = bst["learner"]["gradient_booster"]["model"] + tree_num = int(model["gbtree_model_param"]["num_trees"]) + paral_tree_num = int(model["gbtree_model_param"]["num_parallel_tree"]) + return tree_num, paral_tree_num + +def aggregate_metricrecords( + records: list[RecordDict], weighting_metric_name: str +) -> MetricRecord: + """Perform weighted aggregation all MetricRecords using a specific key.""" + # Retrieve weighting factor from MetricRecord + weights: list[float] = [] + for record in records: + # Get the first (and only) MetricRecord in the record + metricrecord = next(iter(record.metric_records.values())) + # Because replies have been checked for consistency, + # we can safely cast the weighting factor to float + w = cast(float, metricrecord[weighting_metric_name]) + weights.append(w) + + # Average + total_weight = sum(weights) + weight_factors = [w / total_weight for w in weights] + + aggregated_metrics = MetricRecord() + for record, weight in zip(records, weight_factors, strict=True): + for record_item in record.metric_records.values(): + # aggregate in-place + for key, value in record_item.items(): + if key == weighting_metric_name: + # We exclude the weighting key from the aggregated MetricRecord + continue + if key not in aggregated_metrics: + if isinstance(value, list): + aggregated_metrics[key] = [v * weight for v in value] + else: + aggregated_metrics[key] = value * weight + else: + if isinstance(value, list): + current_list = cast(list[float], aggregated_metrics[key]) + aggregated_metrics[key] = [ + curr + val * weight + for curr, val in zip(current_list, value, strict=True) + ] + else: + current_value = cast(float, aggregated_metrics[key]) + aggregated_metrics[key] = current_value + value * weight + + return aggregated_metrics + +def aggregate_bagging( + bst_prev_org: bytes, + bst_curr_org: bytes, +) -> bytes: + """Conduct bagging aggregation for given trees.""" + if bst_prev_org == b"": + return bst_curr_org + + tree_num_prev, _ = _get_tree_nums(bst_prev_org) + _, paral_tree_num_curr = _get_tree_nums(bst_curr_org) + + bst_prev = json.loads(bytearray(bst_prev_org)) + bst_curr = json.loads(bytearray(bst_curr_org)) + + previous_model = bst_prev["learner"]["gradient_booster"]["model"] + previous_model["gbtree_model_param"]["num_trees"] = str( + tree_num_prev + paral_tree_num_curr + ) + + iteration_indptr = previous_model["iteration_indptr"] + previous_model["iteration_indptr"].append( + iteration_indptr[-1] + paral_tree_num_curr + ) + + trees_curr = bst_curr["learner"]["gradient_booster"]["model"]["trees"] + + for tree_count in range(paral_tree_num_curr): + trees_curr[tree_count]["id"] = tree_num_prev + tree_count + previous_model["trees"].append(trees_curr[tree_count]) + previous_model["tree_info"].append(0) + + return bytes(json.dumps(bst_prev), "utf-8") + + +# ========================================================== +# STRATEGY +# ========================================================== + +class FedXgbFullyFederated(FedAvg): + """Fully federated XGBoost strategy (bagging or cyclic).""" + def __init__( self, - train_method: str = "bagging", # "bagging" or "cyclic" num_local_rounds: int = 5, xgb_params: Dict = None, saving_path: str = "./sandbox", @@ -43,7 +136,12 @@ def __init__( evaluate_fn: Optional[Callable] = None, on_fit_config_fn: Optional[Callable] = None, on_evaluate_config_fn: Optional[Callable] = None, - **kwargs + train_method: str = "bagging", + fraction_train=1.0, + fraction_evaluate=1.0, + + # --> INHERITED + **kwargs, ): super().__init__( min_fit_clients=min_fit_clients, @@ -54,187 +152,170 @@ def __init__( on_evaluate_config_fn=on_evaluate_config_fn, **kwargs ) - + self.train_method = train_method - self.num_local_rounds = num_local_rounds self.xgb_params = xgb_params or {} self.saving_path = Path(saving_path) self.saving_path.mkdir(parents=True, exist_ok=True) - - # Global model storage - self.global_model = None - self.current_round = 0 - - print(f"[XGBoost Strategy] Initialized with method: {train_method}") - print(f"[XGBoost Strategy] Local rounds per client: {num_local_rounds}") - print(f"[XGBoost Strategy] XGBoost params: {self.xgb_params}") - - def initialize_parameters(self, client_manager) -> Optional[Parameters]: - """Initialize with empty model (clients will train from scratch in round 1).""" - # Return empty bytes - clients will create their own initial models - empty_model = b"" - ndarrays = [np.frombuffer(empty_model, dtype=np.uint8)] - return ndarrays_to_parameters(ndarrays) - + + self.current_model: Optional[bytes] = b"" + + print(f"[FedXgb] Training method: {train_method}") + print(f"[FedXgb] XGBoost params: {self.xgb_params}") + + # ------------------------------------------------------ + # INITIALIZE + # ------------------------------------------------------ + + def initialize_parameters(self, client_manager): + """Start with empty model.""" + empty = np.frombuffer(b"", dtype=np.uint8) + return ndarrays_to_parameters([empty]) + + # ------------------------------------------------------ + # AGGREGATE FIT (CRITICAL FIX) + # ------------------------------------------------------ + def aggregate_fit( self, server_round: int, results: List[Tuple[ClientProxy, FitRes]], - failures: List[Tuple[ClientProxy, FitRes] | BaseException], + failures: List, ) -> Tuple[Optional[Parameters], Dict[str, Scalar]]: - """Aggregate model updates from clients.""" - - self.current_round = server_round - + if not results: return None, {} - - print(f"\n[Round {server_round}] Aggregating {len(results)} client models...") - + + print(f"\n[Round {server_round}] Aggregating {len(results)} clients") + + models: List[bytes] = [] + + for _, fit_res in results: + ndarrays = parameters_to_ndarrays(fit_res.parameters) + model_bytes = ndarrays[0].tobytes() + + if model_bytes: + models.append(model_bytes) + + if not models: + return None, {} + + # ----------------------------------- + # BAGGING + # ----------------------------------- if self.train_method == "bagging": - # BAGGING: Combine trees from all clients into one ensemble - aggregated_model = self._aggregate_bagging(results) + + combined = self.current_model + + for m in models: + combined = aggregate_bagging(combined, m) + + # ----------------------------------- + # CYCLIC + # ----------------------------------- else: - # CYCLIC: Use the last client's model (sequential training) - aggregated_model = self._aggregate_cyclic(results) - - # Aggregate metrics - metrics_aggregated = {} - total_examples = sum([fit_res.num_examples for _, fit_res in results]) - - for client_proxy, fit_res in results: + combined = models[-1] + + self.current_model = combined + + # Save checkpoint + self._save_checkpoint(combined, server_round) + + # Convert back to Parameters + aggregated_params = ndarrays_to_parameters( + [np.frombuffer(combined, dtype=np.uint8)] + ) + + # Weighted metric aggregation + metrics_aggregated: Dict[str, Scalar] = {} + total_examples = sum(fit_res.num_examples for _, fit_res in results) + + for _, fit_res in results: + if "n_out" in fit_res.metrics: + self.xgb_params["num_class"] = int(fit_res.metrics["n_out"]) + for key, value in fit_res.metrics.items(): - # Skip non-numeric metrics (like client_id) if not isinstance(value, (int, float)): continue - - if key not in metrics_aggregated: - metrics_aggregated[key] = 0 - # Weighted average by number of examples - metrics_aggregated[key] += value * fit_res.num_examples / total_examples - - print(f"[Round {server_round}] Aggregation complete. Metrics: {metrics_aggregated}") - - # Save model checkpoint - self._save_checkpoint(aggregated_model, server_round) - - # Convert to Parameters - params = ndarrays_to_parameters([aggregated_model]) - - return params, metrics_aggregated - - def _aggregate_bagging(self, results: List[Tuple[ClientProxy, FitRes]]) -> np.ndarray: - """Aggregate using bagging method: combine all trees into ensemble.""" - - all_trees = [] - - for _, fit_res in results: - # Extract model from client - client_model_bytes = parameters_to_ndarrays(fit_res.parameters)[0].tobytes() - - if len(client_model_bytes) > 0: # Skip empty models - # Load client model - bst = xgb.Booster(params=self.xgb_params) - bst.load_model(bytearray(client_model_bytes)) - all_trees.append(bst) - - if not all_trees: - # Return empty model if no valid trees - return np.frombuffer(b"", dtype=np.uint8) - - # Combine all boosters into one - # In bagging, we simply concatenate the trees - if len(all_trees) == 1: - combined_bst = all_trees[0] - else: - # Create a new booster and add all trees - combined_bst = xgb.Booster(params=self.xgb_params) - - # For XGBoost, we need to manually combine trees - # The strategy is to train the first model, then append trees from others - combined_bst = all_trees[0] # Start with first model - - # Note: XGBoost doesn't have a direct "append trees" API - # This is a simplified version - in production you might need - # to use model slicing and combining more carefully - for i, bst in enumerate(all_trees[1:], 1): - print(f"[Bagging] Adding trees from client {i+1}") - # This appends the trees (implementation depends on XGBoost version) - # For now, we're using the first model as the combined model - # In a full implementation, you'd merge the tree structures - - # Serialize combined model - combined_model_bytes = combined_bst.save_raw("json") - return np.frombuffer(combined_model_bytes, dtype=np.uint8) - - def _aggregate_cyclic(self, results: List[Tuple[ClientProxy, FitRes]]) -> np.ndarray: - """Aggregate using cyclic method: use the last client's model.""" - - # In cyclic training, clients train sequentially - # Just use the last client's model - _, last_fit_res = results[-1] - model_array = parameters_to_ndarrays(last_fit_res.parameters)[0] - - print(f"[Cyclic] Using model from last client (sequential training)") - - return model_array - + metrics_aggregated.setdefault(key, 0.0) + metrics_aggregated[key] += ( + value * fit_res.num_examples / total_examples + ) + + print(f"[Round {server_round}] Aggregation done.") + + return aggregated_params, metrics_aggregated + + # ------------------------------------------------------ + # EVALUATION + # ------------------------------------------------------ + def aggregate_evaluate( self, server_round: int, results: List[Tuple[ClientProxy, EvaluateRes]], - failures: List[Tuple[ClientProxy, EvaluateRes] | BaseException], + failures: List, ) -> Tuple[Optional[float], Dict[str, Scalar]]: - """Aggregate evaluation metrics from clients.""" - + if not results: return None, {} - - # Aggregate metrics with weighted average - metrics_aggregated = {} - total_examples = sum([eval_res.num_examples for _, eval_res in results]) - + + total_examples = sum(eval_res.num_examples for _, eval_res in results) + + total_loss = sum( + eval_res.loss * eval_res.num_examples + for _, eval_res in results + ) + + if total_examples == 0: + return None, {} + + avg_loss = total_loss / total_examples + + metrics_aggregated: Dict[str, Scalar] = {} + for _, eval_res in results: for key, value in eval_res.metrics.items(): - # Skip non-numeric metrics (like client_id) if not isinstance(value, (int, float)): continue - - if key not in metrics_aggregated: - metrics_aggregated[key] = 0 - metrics_aggregated[key] += value * eval_res.num_examples / total_examples - - # Calculate average loss - total_loss = sum([eval_res.loss * eval_res.num_examples for _, eval_res in results]) - avg_loss = total_loss / total_examples if total_examples > 0 else 0 - - print(f"[Round {server_round}] Evaluation - Loss: {avg_loss:.4f}, Metrics: {metrics_aggregated}") - + metrics_aggregated.setdefault(key, 0.0) + metrics_aggregated[key] += ( + value * eval_res.num_examples / total_examples + ) + + print(f"[Round {server_round}] Eval loss: {avg_loss:.4f}") + return avg_loss, metrics_aggregated - - def _save_checkpoint(self, model_array: np.ndarray, round_num: int): - """Save model checkpoint.""" - checkpoint_path = self.saving_path / "checkpoints" - checkpoint_path.mkdir(exist_ok=True) - - # Save as XGBoost model - if len(model_array) > 0: - bst = xgb.Booster(params=self.xgb_params) - bst.load_model(bytearray(model_array.tobytes())) - - model_file = checkpoint_path / f"xgboost_round_{round_num}.json" - bst.save_model(str(model_file)) - print(f"[Checkpoint] Saved model to {model_file}") + + # ------------------------------------------------------ + # CHECKPOINT + # ------------------------------------------------------ + + def _save_checkpoint(self, model_bytes: bytes, round_num: int): + + if not model_bytes: + return + + checkpoint_dir = self.saving_path / "checkpoints" + checkpoint_dir.mkdir(exist_ok=True) + + bst = xgb.Booster(params=self.xgb_params) + bst.load_model(bytearray(model_bytes)) + + model_path = checkpoint_dir / f"xgboost_round_{round_num}.json" + bst.save_model(str(model_path)) + + print(f"[Checkpoint] Saved {model_path}") def get_fit_config_fn( num_local_rounds: int, train_method: str, xgb_params: Dict, -) -> Callable[[int], Dict[str, Scalar]]: +) -> Callable[[int], Dict[str, Any]]: """Return a function that returns training configuration.""" - def fit_config(server_round: int) -> Dict[str, Scalar]: + def fit_config(server_round: int) -> Dict[str, Any]: config = { "server_round": server_round, "num_local_rounds": num_local_rounds, @@ -246,11 +327,10 @@ def fit_config(server_round: int) -> Dict[str, Scalar]: return fit_config - -def get_evaluate_config_fn(xgb_params: Dict) -> Callable[[int], Dict[str, Scalar]]: +def get_evaluate_config_fn(xgb_params: Dict) -> Callable[[int], Dict[str, Any]]: """Return a function that returns evaluation configuration.""" - def evaluate_config(server_round: int) -> Dict[str, Scalar]: + def evaluate_config(server_round: int) -> Dict[str, Any]: config = { "server_round": server_round, } @@ -259,94 +339,56 @@ def evaluate_config(server_round: int) -> Dict[str, Scalar]: return evaluate_config +# ========================================================== +# SERVER FACTORY +# ========================================================== + +def get_server_and_strategy(config: dict) -> FedXgbFullyFederated: + """Create strategy from config dictionary.""" + + os.makedirs(config["experiment_dir"], exist_ok=True) -def get_server_and_strategy(config) -> Tuple[fl.server.Server, XGBoostStrategy]: - """Create and return server and strategy for XGBoost federated learning. - - Args: - config: Configuration dictionary containing: - - experiment_dir: Directory to save results - - num_clients: Number of clients - - num_rounds: Number of federated rounds - - task: Task type - 'binary', 'multiclass', or 'regression' - - n_out: Number of output classes (required for multiclass) - - xgb: XGBoost-specific parameters - - tree_num: Number of trees per local training round - - train_method: 'bagging' or 'cyclic' - - learning_rate: Learning rate (optional) - - max_depth: Max tree depth (optional) - - Returns: - Tuple of (Server, Strategy) - """ - - os.makedirs(f"{config['experiment_dir']}", exist_ok=True) - - # Extract task type from config task = config.get("task", "binary").lower() - - # Validate task type - valid_tasks = ["binary", "multiclass", "regression"] - if task not in valid_tasks: - print(f"WARNING: Invalid task '{task}', defaulting to 'binary'") - task = "binary" - - # Extract XGBoost parameters xgb_config = config.get("xgb", {}) - - # Base XGBoost hyperparameters + xgb_params = { - "eta": xgb_config.get("learning_rate", 0.1), # learning rate + "eta": xgb_config.get("learning_rate", 0.1), "max_depth": xgb_config.get("max_depth", 6), "tree_method": "hist", "subsample": 0.8, "colsample_bytree": 0.8, } - - # Configure objective and eval_metric based on task type + if task == "binary": xgb_params["objective"] = "binary:logistic" xgb_params["eval_metric"] = "auc" - print(f"[XGBoost Config] Binary classification") - + elif task == "multiclass": + n_out = config.get("n_out") xgb_params["objective"] = "multi:softmax" xgb_params["eval_metric"] = "mlogloss" - - # CRITICAL: num_class is REQUIRED for multiclass - n_out = config.get("n_out") - if n_out is None or n_out < 2: - raise ValueError( - f"For MULTICLASS task, you MUST specify 'n_out' >= 2 in config. " - f"Got: {n_out}. This should be the number of classes in your dataset." - ) - xgb_params["num_class"] = n_out - print(f"[XGBoost Config] Multiclass classification with {n_out} classes") - + if n_out is not None and n_out >= 2: + xgb_params["num_class"] = n_out + elif task == "regression": - xgb_params["objective"] = "reg:squarederror" # or reg:squaredlogerror, reg:pseudohubererror - xgb_params["eval_metric"] = "rmse" # Root Mean Squared Error - print(f"[XGBoost Config] Regression") - - # Training configuration + xgb_params["objective"] = "reg:squarederror" + xgb_params["eval_metric"] = "rmse" + train_method = xgb_config.get("train_method", "bagging") # 'bagging' or 'cyclic' num_local_rounds = xgb_config.get("tree_num", 100) // config.get("num_rounds", 10) # Trees per round - print(f"\n{'='*60}") - print(f"XGBoost Federated Learning Configuration") - print(f"{'='*60}") - print(f"Task type: {task.upper()}") - print(f"Training method: {train_method}") - print(f"Total rounds: {config.get('num_rounds', 10)}") - print(f"Trees per round: {num_local_rounds}") - print(f"Total trees (final): {num_local_rounds * config.get('num_rounds', 10)}") - print(f"Number of clients: {config.get('num_clients', 1)}") - print(f"XGBoost params: {xgb_params}") - print(f"{'='*60}\n") - - server = fl.server.Server - - strategy = XGBoostStrategy( + + print("\n" + "=" * 60) + print("Federated XGBoost Configuration") + print("=" * 60) + print("Task:", task.upper()) + print("Train method:", xgb_config.get("train_method", "bagging")) + print("Rounds:", config.get("num_rounds")) + print("Clients:", config.get("num_clients")) + print("XGBoost params:", xgb_params) + print("=" * 60 + "\n") + + strategy = FedXgbFullyFederated( train_method=train_method, num_local_rounds=num_local_rounds, xgb_params=xgb_params, @@ -356,6 +398,8 @@ def get_server_and_strategy(config) -> Tuple[fl.server.Server, XGBoostStrategy]: min_available_clients=config.get('min_available_clients', config['num_clients']), on_fit_config_fn=get_fit_config_fn(num_local_rounds, train_method, xgb_params), on_evaluate_config_fn=get_evaluate_config_fn(xgb_params), + fraction_train=1.0, + fraction_evaluate=1.0 ) - + return None, strategy \ No newline at end of file diff --git a/flcore/utils.py b/flcore/utils.py index 3c9348a..84e08b0 100644 --- a/flcore/utils.py +++ b/flcore/utils.py @@ -1,6 +1,7 @@ import os import sys import glob +import json import numpy as np from pathlib import Path @@ -82,15 +83,17 @@ def __init__(self, logger, level): self.level = level def write(self, message): - for line in message.rstrip().splitlines(): - self.logger.log(self.level, line.rstrip()) + for line in message.splitlines(): + line = line.rstrip() + if line: + self.logger.log(self.level, line) def flush(self): pass def CheckClientConfig(config): # Compaibilidad de logistic regression y elastic net con sus parámetros - assert config["task"] in ["classification","regression","none"], "Task not valid" + assert config["task"] in ["classification","regression","none","survival"], "Task not valid" if config["model"] == "logistic_regression": if (config["task"] == "classification" or config["task"].lower() == "none"): @@ -136,13 +139,13 @@ def CheckClientConfig(config): print("Since this model only supports regression assigning task automatically to regression") if config["model"] == "lasso_regression": - config["model"] == "linear_regression" + config["model"] = "linear_regression" config["penalty"] = "l1" elif config["model"] == "ridge_regression": - config["model"] == "linear_regression" + config["model"] = "linear_regression" config["penalty"] = "l2" elif config["model"] == "linear_regression_elasticnet": - config["model"] == "linear_regression" + config["model"] = "linear_regression" config["penalty"] = "elasticnet" elif config["model"] == "svm": if config["kernel"] != "linear": @@ -182,6 +185,7 @@ def CheckClientConfig(config): if len(parquet_files) == 0: print("No parquet files found in ",est) sys.exit() +# config["data_file"] = "/home/jorge/workdir/flcore-suite/dataset/bucarest_sintetico/synthetic_dt4h_dataset.csv" # ¿How to choose one of the list? config["data_file"] = parquet_files[-1] @@ -196,7 +200,7 @@ def CheckClientConfig(config): new.append(parsed) config["train_labels"] = new - if len(config["target_labels"]) == 0: + if len(config["target_labels"]) == 0 and config["task"] != "survival": print("No target labels were provided") sys.exit() @@ -206,9 +210,60 @@ def CheckClientConfig(config): new.append(parsed) config["target_labels"] = new - # VERIFICAR EL TASK SI HACE FALTA CAMBIARLO SEGUN EL NUMERO DE LABELS, binario bmulticlase¿?¿?¿?¿? +# ____________________________________________________________________ + with open(config["metadata_file"]) as f: + meta = json.load(f) + + entries = meta.get("entries", []) + if entries: + entry = entries[0] + feature_stats = entry["datasetStats"]["featureStats"] + outcome_stats = entry["datasetStats"]["outcomeStats"] + features_meta = {o["name"]: o for o in entry["features"]} + outcomes_meta = {o["name"]: o for o in entry["outcomes"]} + else: + dataset_stats = meta.get("datasetStats", {}) + feature_stats = dataset_stats.get("featureStats", {}) + outcome_stats = dataset_stats.get("outcomeStats", {}) + features_meta = {o["name"]: o for o in meta.get("features", [])} + outcomes_meta = {o["name"]: o for o in meta.get("outcomes", [])} +# ____________________________________________________________________ + + n_out = 0 + for target in config["target_labels"]: + if target in outcomes_meta.keys(): + dtype = outcomes_meta[target]["dataType"] + stats = outcome_stats.get(target, {}) + + elif target in features_meta.keys(): + dtype = features_meta[target]["dataType"] + stats = feature_stats.get(target, {}) + else: + raise ValueError(f"Target {target} no encontrado en metadata['outcomes']") + + if dtype == "BOOLEAN": + n_out += 1 + elif dtype == "NOMINAL": + n_out += len(stats.get("valueSet", [])) + elif dtype == "NUMERIC": + n_out += 1 + + if config["task"] == "regression": + if dtype != "NUMERIC": + raise ValueError( + f"Inconsistent configuration: task='regression' but target '{target}' " + f"has dtype '{dtype}'. Regression requires NUMERIC targets." + ) + + elif config["task"] == "classification": + if dtype == "NUMERIC": + raise ValueError( + f"Inconsistent configuration: task='classification' but target '{target}' " + f"has dtype NUMERIC. Classification requires BOOLEAN or NOMINAL targets." + ) + + config["n_out"] = n_out config["n_feats"] = len(config["train_labels"]) - config["n_out"] = len(config["target_labels"]) if config["model"] in ["svm","svr","lsvr"]: if config["task"] == "regression": diff --git a/muestras b/muestras new file mode 100644 index 0000000..6106c76 --- /dev/null +++ b/muestras @@ -0,0 +1,294 @@ +>>> metadata["entries"][0]["datasetStats"]["featureStats"]["med_admins_history_diuretics_loop_any"] +{'numOfNotNull': 7845, 'numOfTrue': 0} +>>> metadata["entries"][0]["datasetStats"]["featureStats"]["lab_results_tropIHs_value_max"] +{'numOfNotNull': 232, 'min': 0.012, 'max': 61.4, 'avg': 1.4874525862068966, 'q1': 0.012, 'q2': 0.042, 'q3': 0.428, 'histogram': [{'bin': 0.11627748691099472, 'count': 191}, {'bin': 1.9938888888888893, 'count': 18}, {'bin': 4.438333333333333, 'count': 12}, {'bin': 8.576666666666666, 'count': 3}, {'bin': 10.9, 'count': 1}, {'bin': 12.7, 'count': 1}, {'bin': 15.666666666666668, 'count': 3}, {'bin': 21.0, 'count': 1}, {'bin': 55.0, 'count': 1}, {'bin': 61.4, 'count': 1}]} +>>> metadata["entries"][0]["features"][0]["dataType"] +'NOMINAL' +>>> metadata["entries"][0]["datasetStats"]["featureStats"]["patient_demographics_gender"]["valueSet"] +['female', 'male'] + + +nominales: patient_demographics_gender encounters_encounterClass encounters_admissionYear +electrocardiographs_ecg_type_of_rhythm_pET_first electrocardiographs_ecg_type_of_rhythm_pET_last +nyha_nyha_pET hyperkalemia_severity_categorizedValue ckd_severity_categorizedValue +numerics: patient_demographics_age encounters_lengthOfStay vital_signs_weight_value_p6mo_min +vital_signs_weight_value_p6mo_max +vital_signs_weight_value_p6mo_first +vital_signs_weight_value_p6mo_stddev +vital_signs_weight_value_p6mo_avg +vital_signs_weight_value_p6mo_last +vital_signs_height_value_p1a_avg +vital_signs_systolicBp_value_stddev +vital_signs_systolicBp_value_first +vital_signs_systolicBp_value_avg +vital_signs_systolicBp_value_max +vital_signs_systolicBp_value_min +vital_signs_systolicBp_value_last +vital_signs_diastolicBp_value_stddev +vital_signs_diastolicBp_value_first +vital_signs_diastolicBp_value_avg +vital_signs_diastolicBp_value_max +vital_signs_diastolicBp_value_min +vital_signs_diastolicBp_value_last +vital_signs_heartRate_value_stddev +vital_signs_heartRate_value_first +vital_signs_heartRate_value_avg +vital_signs_heartRate_value_max +vital_signs_heartRate_value_min +vital_signs_heartRate_value_last +vital_signs_oxygenSaturation_value_stddev +vital_signs_oxygenSaturation_value_first +vital_signs_oxygenSaturation_value_avg +vital_signs_oxygenSaturation_value_max +vital_signs_oxygenSaturation_value_min +vital_signs_oxygenSaturation_value_last +lab_results_hemoglobin_value_min +lab_results_hemoglobin_value_stddev +lab_results_hemoglobin_value_avg +lab_results_hemoglobin_value_max +lab_results_hemoglobin_value_first +lab_results_hemoglobin_value_last +lab_results_ferritin_value_min +lab_results_ferritin_value_stddev +lab_results_ferritin_value_avg +lab_results_ferritin_value_max +lab_results_ferritin_value_first +lab_results_ferritin_value_last +lab_results_tfs_value_min +lab_results_tfs_value_stddev +lab_results_tfs_value_avg +lab_results_tfs_value_max +lab_results_tfs_value_first +lab_results_tfs_value_last +lab_results_ntProBnp_value_min +lab_results_ntProBnp_value_stddev +lab_results_ntProBnp_value_avg +lab_results_ntProBnp_value_max +lab_results_ntProBnp_value_first +lab_results_ntProBnp_value_last +lab_results_bnp_value_min +lab_results_bnp_value_stddev +lab_results_bnp_value_avg +lab_results_bnp_value_max +lab_results_bnp_value_first +lab_results_bnp_value_last +lab_results_crpNonHs_value_min +lab_results_crpNonHs_value_stddev +lab_results_crpNonHs_value_avg +lab_results_crpNonHs_value_max +lab_results_crpNonHs_value_first +lab_results_crpNonHs_value_last +lab_results_crpHs_value_min +lab_results_crpHs_value_stddev +lab_results_crpHs_value_avg +lab_results_crpHs_value_max +lab_results_crpHs_value_first +lab_results_crpHs_value_last +lab_results_tropIHs_value_min +lab_results_tropIHs_value_stddev +lab_results_tropIHs_value_avg +lab_results_tropIHs_value_max +lab_results_tropIHs_value_first +lab_results_tropIHs_value_last +lab_results_tropInHs_value_min +lab_results_tropInHs_value_stddev +lab_results_tropInHs_value_avg +lab_results_tropInHs_value_max +lab_results_tropInHs_value_first +lab_results_tropInHs_value_last +lab_results_tropTHs_value_min +lab_results_tropTHs_value_stddev +lab_results_tropTHs_value_avg +lab_results_tropTHs_value_max +lab_results_tropTHs_value_first +lab_results_tropTHs_value_last +lab_results_tropTnHs_value_min +lab_results_tropTnHs_value_stddev +lab_results_tropTnHs_value_avg +lab_results_tropTnHs_value_max +lab_results_tropTnHs_value_first +lab_results_tropTnHs_value_last +lab_results_triGly_value_min +lab_results_triGly_value_stddev +lab_results_triGly_value_avg +lab_results_triGly_value_max +lab_results_triGly_value_first +lab_results_triGly_value_last +lab_results_cholTot_value_min +lab_results_cholTot_value_stddev +lab_results_cholTot_value_avg +lab_results_cholTot_value_max +lab_results_cholTot_value_first +lab_results_cholTot_value_last +lab_results_hdl_value_min +lab_results_hdl_value_stddev +lab_results_hdl_value_avg +lab_results_hdl_value_max +lab_results_hdl_value_first +lab_results_hdl_value_last +lab_results_ldl_value_min +lab_results_ldl_value_stddev +lab_results_ldl_value_avg +lab_results_ldl_value_max +lab_results_ldl_value_first +lab_results_ldl_value_last +lab_results_potassium_value_min +lab_results_potassium_value_stddev +lab_results_potassium_value_avg +lab_results_potassium_value_max +lab_results_potassium_value_first +lab_results_potassium_value_last +lab_results_sodium_value_min +lab_results_sodium_value_stddev +lab_results_sodium_value_avg +lab_results_sodium_value_max +lab_results_sodium_value_first +lab_results_sodium_value_last +lab_results_creatBS_value_min +lab_results_creatBS_value_stddev +lab_results_creatBS_value_avg +lab_results_creatBS_value_max +lab_results_creatBS_value_first +lab_results_creatBS_value_last +lab_results_creatUS_value_min +lab_results_creatUS_value_stddev +lab_results_creatUS_value_avg +lab_results_creatUS_value_max +lab_results_creatUS_value_first +lab_results_creatUS_value_last +lab_results_albuminBS_value_min +lab_results_albuminBS_value_stddev +lab_results_albuminBS_value_avg lab_results_albuminBS_value_max lab_results_albuminBS_value_first +lab_results_albuminBS_value_last lab_results_albuminUS_value_min lab_results_albuminUS_value_stddev +lab_results_albuminUS_value_avg lab_results_albuminUS_value_max lab_results_albuminUS_value_first +lab_results_albuminUS_value_last lab_results_eGFR_value_min lab_results_eGFR_value_stddev +lab_results_eGFR_value_avg lab_results_eGFR_value_max lab_results_eGFR_value_first lab_results_eGFR_value_last +lab_results_bun_value_min lab_results_bun_value_stddev +lab_results_bun_value_avg lab_results_bun_value_max lab_results_bun_value_first lab_results_bun_value_last lab_results_acr_value_min +lab_results_acr_value_stddev lab_results_acr_value_avg lab_results_acr_value_max lab_results_acr_value_first lab_results_acr_value_last lab_results_hba1c%_value_min lab_results_hba1c%_value_stddev +lab_results_hba1c%_value_avg lab_results_hba1c%_value_max lab_results_hba1c%_value_first lab_results_hba1c%_value_last lab_results_hba1c_value_min lab_results_hba1c_value_stddev lab_results_hba1c_value_avg lab_results_hba1c_value_max +lab_results_hba1c_value_first lab_results_hba1c_value_last +echocardiographs_lvef_pET_max echocardiographs_lvef_pET_avg +echocardiographs_lvef_pET_last echocardiographs_lvef_pET_min +echocardiographs_lvef_pET_stddev echocardiographs_lvef_pET_first +electrocardiographs_ecg_qrs_duration_pET_avg +electrocardiographs_ecg_qrs_duration_pET_min +electrocardiographs_ecg_qrs_duration_pET_stddev +electrocardiographs_ecg_qrs_duration_pET_first +electrocardiographs_ecg_qrs_duration_pET_last +electrocardiographs_ecg_qrs_duration_pET_max +electrocardiographs_ecg_qrs_axis_pET_last +electrocardiographs_ecg_qrs_axis_pET_avg +electrocardiographs_ecg_qrs_axis_pET_min +electrocardiographs_ecg_qrs_axis_pET_stddev +electrocardiographs_ecg_qrs_axis_pET_first +electrocardiographs_ecg_qrs_axis_pET_max electrocardiographs_ecg_qt_duration_corrected_pET_last +electrocardiographs_ecg_qt_duration_corrected_pET_first electrocardiographs_ecg_qt_duration_corrected_pET_min +electrocardiographs_ecg_qt_duration_corrected_pET_max electrocardiographs_ecg_qt_duration_corrected_pET_avg +electrocardiographs_ecg_qt_duration_corrected_pET_stddev smoking_status_smoker_totalSmokingDuration_sum +smoking_status_smoker_startTime_count conditions_heartFailure_timeFromEarliest_first + + + +metadata["entries"][0]["datasetStats"]["featureStats"]["patient_demographics_sourceIdentifier"].keys() +dict_keys(['numOfNotNull', 'valueSet', 'cardinalityPerItem']) + + +algo raro en esto: patient_demographics_sourceIdentifier + +metadata_file = "metadata.json" + +with open(metadata_file) as f: + metadata = json.load(f) + +for feat in metadata["entries"][0]["features"]: + if feat["dataType"] == "BOOLEAN": + print("=====================") + print(feat) + +for feat in metadata["entries"][0]["outcomes"]: + if feat["dataType"] == "NOMINAL": + print("=====================") + print(feat) + + + +{'name': 'encounter_primary_reason_HF_Disease_f5a_w7d_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w1mo_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w3mo_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w6mo_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w1a_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w3a_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'encounter_primary_reason_HF_Disease_f5a_w5a_first', 'description': 'Whether the patient is hospitalized because of heart failure after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'encounter_primary_reason_number_of_days_to_rehosp_for_heart_failure_f5a_first', 'description': 'Number of days from discharge until rehospitalization due to heart failure', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w7d_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w1mo_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w3mo_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w6mo_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w1a_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w3a_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'encounter_primary_reason_CV_Disease_f5a_w5a_first', 'description': 'Whether the patient is hospitalized because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'encounter_primary_reason_number_of_days_to_rehosp_for_CV_f5a_first', 'description': 'Number of days from discharge until rehospitalization due to CV disease', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w7d_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w1mo_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w3mo_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w6mo_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w1a_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w3a_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'encounter_primary_reason_non_CV_Disease_f5a_w5a_first', 'description': 'Whether the patient is hospitalized because of any non-cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'encounter_primary_reason_number_of_days_to_rehosp_for_non_CV_f5a_first', 'description': 'Number of days from discharge until rehospitalization due to non-CV disease', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w7d_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w1mo_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w3mo_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w6mo_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w1a_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w3a_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'encounter_primary_reason_renal_complications_f5a_w5a_first', 'description': 'Whether the patient is hospitalized because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'encounter_primary_reason_number_of_days_to_rehosp_for_renal_complications_f5a_first', 'description': 'Number of days from discharge until rehospitalization due to renal complications', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'cause_of_death_isCV_f5a_w7d_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'cause_of_death_isCV_f5a_w1mo_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'cause_of_death_isCV_f5a_w3mo_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'cause_of_death_isCV_f5a_w6mo_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'cause_of_death_isCV_f5a_w1a_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'cause_of_death_isCV_f5a_w3a_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'cause_of_death_isCV_f5a_w5a_first', 'description': 'Whether the patient dies because of any cardiovascular condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'cause_of_death_number_of_days_to_death_for_CV_f5a_first', 'description': 'Number of days from discharge until death due to CV disease', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'cause_of_death_isRenal_f5a_w7d_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'cause_of_death_isRenal_f5a_w1mo_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'cause_of_death_isRenal_f5a_w3mo_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'cause_of_death_isRenal_f5a_w6mo_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'cause_of_death_isRenal_f5a_w1a_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'cause_of_death_isRenal_f5a_w3a_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'cause_of_death_isRenal_f5a_w5a_first', 'description': 'Whether the patient dies because of any renal complication after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'cause_of_death_number_of_days_to_death_for_renal_f5a_first', 'description': 'Number of days from discharge until death due to renal complications', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w7d_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w1mo_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w3mo_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w6mo_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w1a_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w3a_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'cause_of_death_isNonRenalAndNonCV_f5a_w5a_first', 'description': 'Whether the patient dies because of any non-cardiovascular and non-renal condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'cause_of_death_number_of_days_to_death_for_non_renal_and_non_CV_f5a_first', 'description': 'Number of days from discharge until death due to non-CV and non-renal complications', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} +{'name': 'cause_of_death_isAllCause_f5a_w7d_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 7 day period']} +{'name': 'cause_of_death_isAllCause_f5a_w1mo_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 month period']} +{'name': 'cause_of_death_isAllCause_f5a_w3mo_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 month period']} +{'name': 'cause_of_death_isAllCause_f5a_w6mo_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 6 month period']} +{'name': 'cause_of_death_isAllCause_f5a_w1a_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 1 year period']} +{'name': 'cause_of_death_isAllCause_f5a_w3a_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 3 year period']} +{'name': 'cause_of_death_isAllCause_f5a_w5a_first', 'description': 'Whether the patient dies because of unspecified condition after the discharge', 'dataType': 'BOOLEAN', 'generatedDescription': ['earliest value', 'within 1st next 5 year period']} +{'name': 'cause_of_death_number_of_days_to_death_for_all_cause_f5a_first', 'description': 'Number of days from discharge until death due to unspecified condition', 'dataType': 'NUMERIC', 'generatedDescription': ['earliest value', 'within next 5 year']} + +FEATURES: +patient_demographics_gender NOMINAL +encounters_encounterClass NOMINAL +encounters_admissionYear NOMINAL +patient_demographics_age NUMERIC +encounters_lengthOfStay NUMERIC +vital_signs_weight_value_p6mo_min NUMERIC +med_admins_history_diuretics_loop_any BOOLEAN +patient_flags_smoker BOOLEAN +OUTCOMES: +outcome_in_hospital_mortality BOOLEAN +outcome_readmission_30d BOOLEAN +outcome_discharge_disposition NOMINAL +outcome_severity_score NUMERIC diff --git a/pruebas.md b/pruebas.md new file mode 100644 index 0000000..7ffd475 --- /dev/null +++ b/pruebas.md @@ -0,0 +1,17 @@ + +| # | Modelo | Task | Server CMD | Cliente CMD | +|----|-------------------------------|---------------|------------|-------------| +| 1 | logistic_regression | Clasificación | `python server_cmd.py --model logistic_regression --task classification --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model logistic_regression --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 2 | linear_regression | Regresión | `python server_cmd.py --model linear_regression --task regression --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model linear_regression --task regression --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 3 | lsvc | Clasificación | `python server_cmd.py --model lsvc --task classification --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model lsvc --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 4 | svr | Regresión | `python server_cmd.py --model svr --task regression --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model svr --task regression --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 5 | lasso_regression | Regresión | `python server_cmd.py --model lasso_regression --task regression --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model lasso_regression --task regression --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 6 | ridge_regression | Regresión | `python server_cmd.py --model ridge_regression --task regression --num_rounds 3 --num_clients 1 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model ridge_regression --task regression --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 7 | logistic_regression_elasticnet | Clasificación | `python server_cmd.py --model logistic_regression_elasticnet --task classification --num_rounds 3 --num_clients 1 --l1_ratio 0.5 ` | `python client_cmd.py --model logistic_regression_elasticnet --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 8 | random_forest | Clasificación | `python server_cmd.py --model random_forest --task classification --num_rounds 3 --num_clients 1 --n_estimators 50 --max_depth 3 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model random_forest --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 9 | weighted_random_forest | Clasificación | `python server_cmd.py --model weighted_random_forest --task classification --num_rounds 3 --num_clients 1 --n_estimators 50 --max_depth 3 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model weighted_random_forest --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 10 | xgb | Clasificación | `python server_cmd.py --model xgb --task classification --num_rounds 3 --num_clients 1 --booster gbtree --tree_method hist --eta 0.2 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model xgb --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 11 | nn | Clasificación | `python server_cmd.py --model nn --task classification --num_rounds 3 --num_clients 1 --local_epochs 3 --batch_size 16 --dropout_p 0.2 --T 10 --lr 0.001 --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model nn --task classification --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 12 | cox | Supervivencia | `python server_cmd.py --model cox --task regression --num_rounds 3 --num_clients 1 --time_col time --event_col event --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model cox --task survival --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 13 | rsf | Supervivencia | `python server_cmd.py --model rsf --task regression --num_rounds 3 --num_clients 1 --time_col time --event_col event --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model rsf --task survival --train_labels patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | +| 14 | gbs | Supervivencia | `python server_cmd.py --model gbs --task regression --num_rounds 3 --num_clients 1 --time_col time --event_col event --sandbox_path ./sandbox --production_mode False` | `python client_cmd.py --model gbs --task survival patient_demographics_gender patient_demographics_age --target_labels outcome_in_hospital_mortality --sandbox_path ./sandbox --production_mode False --data_id /home/yuca/DT4H/completo/flcore-main/dataset/bucarest_sintetico` | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 21d2f6a..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,20 +0,0 @@ -[project] -name = "flcore" -description = "FLCore library of federated machine learning models" -version = "0.1.0" -authors = [ - { name = "Grzegorz Skorupko", email = "grzegorz.skorupko@ub.edu" }, - { name = "Socayna Jouide"}, - { name = "Esmeralda Ruiz Pujadas"} -] -dynamic = ["dependencies"] - -[tool.setuptools] -py-modules = ["flcore"] - -[tool.setuptools.dynamic] -dependencies = {file = ["requirements.txt"]} - -[build-system] -requires = ["setuptools", "wheel"] -build-backend = "setuptools.build_meta:__legacy__" \ No newline at end of file diff --git a/repeated.py b/repeated.py deleted file mode 100644 index 567870e..0000000 --- a/repeated.py +++ /dev/null @@ -1,42 +0,0 @@ -import subprocess -import time -import os - -import yaml - -with open("config.yaml", "r") as f: - config = yaml.safe_load(f) - -repetitions = 4 -experiment_name = config['experiment']['name'] - -config['experiment']['log_path'] = os.path.join(config['experiment']['log_path'], config['experiment']['name']) -os.makedirs(config['experiment']['log_path'], exist_ok=True) - -start_time = time.time() -for i in range(repetitions): - print(f"Experiment run {i + 1}") - config['experiment']['name'] = 'run_' + str(i + 1) - config['seed'] = i + 10 - config_path = os.path.join(config['experiment']['log_path'], "config.yaml") - log_file_path = os.path.join(config['experiment']['log_path'], config['experiment']['name'], "run_log.txt") - os.makedirs(os.path.join(config['experiment']['log_path'], config['experiment']['name']), exist_ok=True) - with open(config_path, "w") as f: - yaml.dump(config, f) - try: - run_process = subprocess.Popen(f"python run.py {config_path} | tee {log_file_path}", shell=True) - run_process.wait() - - except KeyboardInterrupt: - run_process.terminate() - run_process.wait() - -config['experiment']['name'] = experiment_name -with open(config_path, "w") as f: - yaml.dump(config, f) - -run_process = subprocess.Popen(f"python flcore/compile_results.py {config['experiment']['log_path']}", shell=True) -run_process.wait() - -print("Batch experiments finished") -print(f"Total time: {(time.time() - start_time) / 60} minutes") diff --git a/requirements.txt b/requirements.txt index 3bfaf91..c77faba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -flwr==1.5.0 +flwr==1.25.0 imblearn==0.0 joblib==1.2.0 matplotlib==3.7.1 @@ -6,7 +6,7 @@ numpy==1.26.4 mlxtend==0.23.0 openml==0.13.1 pandas==2.2.1 -PyYAML==6.0.1 +PyYAML==6.0.2 scikit_learn torch==2.3.1 torchmetrics==0.11.4 @@ -15,3 +15,4 @@ xgboost==1.7.5 pdfkit==1.0.0 scikit-survival==0.22.2 fpboost==0.1.0 +setuptools diff --git a/server_cmd.py b/server_cmd.py index c65fe8a..a65641d 100644 --- a/server_cmd.py +++ b/server_cmd.py @@ -81,18 +81,24 @@ console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.DEBUG) - # Create a formatter for consistency - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - file_handler.setFormatter(formatter) - console_handler.setFormatter(formatter) + # Create formatters + file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + console_formatter = logging.Formatter('[%(levelname)s] %(message)s') + + file_handler.setFormatter(file_formatter) + console_handler.setFormatter(console_formatter) # Get the root logger and configure it logger = logging.getLogger() - logger.setLevel(logging.DEBUG) + logger.setLevel(logging.INFO) # Change default level to INFO logger.handlers = [] # Clear any default handlers logger.addHandler(file_handler) logger.addHandler(console_handler) + # Silence noisy dependencies +# logging.getLogger("flwr").setLevel(logging.WARNING) + logging.getLogger("flwr").setLevel(logging.ERROR) + # Create two sub-loggers stdout_logger = logging.getLogger("STDOUT") stderr_logger = logging.getLogger("STDERR") @@ -102,14 +108,9 @@ sys.stderr = StreamToLogger(stderr_logger, logging.ERROR) # Now you can use logging in both places - logging.debug("This will be logged to both the console and the file.") - - # Your existing code continues here... - # For example, the following logs will go to both stdout and file: - logging.debug("Starting Flower server...") + logging.info("Starting Flower server...") if config["production_mode"] == "True": - print("TRUE") #data_path = "" central_ip = os.getenv("FLOWER_CENTRAL_SERVER_IP") central_port = os.getenv("FLOWER_CENTRAL_SERVER_PORT") @@ -127,7 +128,6 @@ # Path('.cache/certificates/server_cert.pem').read_bytes(), # Path('.cache/certificates/server_key.pem').read_bytes(), else: - print("ELSE") #data_path = config["data_path"] central_ip = "LOCALHOST" central_port = config["local_port"] @@ -210,6 +210,9 @@ metric_value = history.metrics_centralized[metric][best_round][1] if type(metric_value) in [int, float, numpy.float64]: f.write(f"{metric} {metric_value:.4f} \n") +# Compile the results +compile_results(experiment_dir) +""" dict_history = {} history = history.__dict__ @@ -230,6 +233,3 @@ with open(experiment_dir / "history.yaml", "w") as f: yaml.dump(history, f) -# Compile the results -compile_results(experiment_dir) -""" diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_models.py b/tests/test_models.py deleted file mode 100644 index 669f1d0..0000000 --- a/tests/test_models.py +++ /dev/null @@ -1,89 +0,0 @@ -import logging -import yaml -import subprocess -import os -import signal -from threading import Timer -import time - -import pytest - -# Set the logging level depending on the level of detail you would like to have in the logs while running the tests. -LOGGING_LEVEL = logging.INFO # WARNING # logging.INFO - -model_names = [ -# "logistic_regression", -# "elastic_net", -# "lsvc", - "random_forest", - # "weighted_random_forest", - # "xgb" - ] - -def free_port(port): - process = subprocess.Popen(["lsof", "-i", ":{0}".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = process.communicate() - for process in str(stdout.decode("utf-8")).split("\n")[1:]: - data = [x for x in process.split(" ") if x != ''] - if (len(data) <= 1): - continue - os.kill(int(data[1]), signal.SIGKILL) - -class TestFLCoreModels: - def setup_class(self): - with open("config.yaml", "r") as f: - self.config = yaml.safe_load(f) - - self.num_clients = 3 - - - @pytest.mark.parametrize( - "model_name", - model_names - ) - def test_get_model_client( - self, model_name - ): - self.config["model"] = model_name - - from flcore.client_selector import get_model_client - from flcore.datasets import load_dataset - data = load_dataset(self.config, 2) - - client = get_model_client(self.config, data, 2) - - assert client is not None - - - @pytest.mark.parametrize( - "model_name", - model_names - ) - def test_run(self, model_name): - - self.config["model"] = model_name - - with open("config.yaml", "r") as f: - config = yaml.safe_load(f) - config = self.config - - with open("config.yaml", "w") as f: - yaml.dump(config, f) - - free_port(config["local_port"]) - run_log = open("run.log", "w") - run_process = subprocess.Popen("python run.py", shell=True, stdout=run_log, stderr=run_log) - - timer = Timer(180, run_process.kill) - try: - timer.start() - run_process.communicate() - finally: - timer.cancel() - - # Print run_log - run_log.close() - run_log = open("run.log", "r") - print(run_log.read()) - - assert run_process.returncode == 0 diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 453ea8b..0000000 --- a/tox.ini +++ /dev/null @@ -1,22 +0,0 @@ -[tox] -env_list = - py310 - ruff -minversion = 4.14.1 - -[testenv] -description = run the tests with pytest -package = wheel -wheel_build_env = .pkg -deps = - pytest>=6 -commands = - pytest {tty:--color=yes} {posargs} -vvv - -[testenv:ruff] -description = run linter -allowlist_externals = ruff -skip_install = true -; deps = - ; -r requirements-dev.txt -commands = ruff check --extend-exclude=tests/assets/ client.py diff --git a/tutorial.md b/tutorial.md new file mode 100644 index 0000000..ea02845 --- /dev/null +++ b/tutorial.md @@ -0,0 +1,120 @@ +1. Node & Environment Variables + +| Argument | Type | Default | Description | +| ------------------- | ---- | -------------- | ------------------------------------------ | +| `--node_name` | str | "./" | Node identifier for certificate management | +| `--local_port` | int | 8081 | Local port for client-server communication | +| `--sandbox_path` | str | "/sandbox" | Path to the client sandbox | +| `--certs_path` | str | "/certs" | Path to SSL certificates | +| `--data_path` | str | "/data" | Path to the dataset | +| `--production_mode` | str | "True" | Enable production mode (minimal logs) | +| `--experiment_name` | str | "experiment_1" | Folder to store experiment outputs | +2. Dataset Variables + +| Argument | Type | Default | Description | +| ------------------------ | --------- | ----------------- | --------------------------------------------- | +| `--dataset` | str | "dt4h_format" | Dataset loader type | +| `--data_id` | str | "data_id.parquet" | Dataset filename | +| `--normalization_method` | str | "IQR" | Normalization method: `IQR`, `MIN_MAX`, `STD` | +| `--train_labels` | list[str] | None | List of feature columns for training | +| `--target_labels` | list[str] | None | List of target columns (labels) | +| `--train_size` | float | 0.7 | Fraction for training dataset | +| `--validation_size` | float | 0.2 | Fraction for validation dataset | +| `--test_size` | float | 0.1 | Fraction for testing dataset | + +3. Training Variables + +| Argument | Type | Default | Description | +| ------------------------------- | ----- | ----------- | -------------------------------------------------- | +| `--num_rounds` | int | 50 | Number of federated iterations | +| `--lr` | float | 1e-3 | Learning rate (when applicable) | +| `--checkpoint_selection_metric` | str | "precision" | Metric used to select checkpoint models | +| `--seed` | int | 42 | Random seed | +| `--num_clients` | int | 1 | Number of clients in federation (informative only) | + +4. General Model Variables + +| Argument | Type | Default | Description | +| ---------------- | ---- | --------------- | --------------------------------------------------------------------- | +| `--model` | str | "random_forest" | Model type (`random_forest`, `xgb`, `nn`, `linear`, `cox`) | +| `--n_feats` | int | 0 | Number of input features (can be inferred from dataset) | +| `--n_out` | int | 0 | Number of output features (depends on target type) | +| `--task` | str | "None" | Task type (`classification`, `regression`, `survival`) | +| `--device` | str | "cpu" | Device for training (`cpu`, `cuda`) | +| `--local_epochs` | int | 10 | Number of epochs per federated round | +| `--batch_size` | int | 8 | Batch size for training | +| `--penalty` | str | "none" | Regularization penalty: `none`, `l1`, `l2`, `elasticnet`, `smooth l1` | +5. Model-Specific Variables +Linear Models / SVR + +| Argument | Type | Default | Description | +| ------------ | ----- | -------- | --------------------------------------------------- | +| `--solver` | str | "saga" | Optimization solver | +| `--l1_ratio` | float | 0.5 | L1-L2 ratio for ElasticNet | +| `--max_iter` | int | 100000 | Maximum optimizer iterations | +| `--tol` | float | 0.001 | Tolerance for optimization | +| `--kernel` | str | "linear" | Kernel for SVR (`linear`, `poly`, `rbf`, `sigmoid`) | +| `--degree` | int | 3 | Polynomial degree (for `poly` kernel) | +| `--gamma` | str | "scale" | Gamma parameter (for `rbf` / `poly` kernels) | +Random Forest +| Argument | Type | Default | Description | +| ------------------------ | ---- | --------------- | ------------------------------ | +| `--balanced` | str | "True" | Balanced class weights | +| `--n_estimators` | int | 100 | Number of trees | +| `--max_depth` | int | 2 | Maximum tree depth | +| `--class_weight` | str | "balanced" | Class weight strategy | +| `--levelOfDetail` | str | "DecisionTree" | Logging detail level | +| `--regression_criterion` | str | "squared_error" | Criterion for regression trees | + +XGBoost +| Argument | Type | Default | Description | +| ---------------- | ----- | --------- | ------------------------------------------- | +| `--booster` | str | "gbtree" | Booster type (`gbtree`, `gblinear`, `dart`) | +| `--tree_method` | str | "hist" | Tree construction method (`exact`, `hist`) | +| `--train_method` | str | "bagging" | Training method (`bagging`, `cyclic`) | +| `--eta` | float | 0.1 | Learning rate | + +Neural Networks +| Argument | Type | Default | Description | +| ------------- | ----- | ------- | ------------------------------- | +| `--dropout_p` | float | 0.0 | Monte Carlo dropout probability | +| `--T` | int | 20 | Number of MC dropout samples | + + +Survival + +| Argument | Type | Default | Description | +| ------------------------------ | ----- | ------- | ---------------------------------- | +| `--time_col` | str | "time" | Column containing survival times | +| `--event_col` | str | "event" | Column indicating event occurrence | +| `--negative_duration_strategy` | str | "clip" | Strategy for negative durations | +| `--l1_penalty` | float | 0.0 | L1 regularization penalty | + +1. General Settings + +| Argument | Type | Default | Description | +| ------------------------- | ---- | ---------- | ---------------------------------------------- | +| `--model` | str | None | Model type | +| `--task` | str | None | Task type | +| `--num_rounds` | int | 50 | Number of federated iterations | +| `--num_clients` | int | 1 | Total number of clients | +| `--min_fit_clients` | int | 0 | Minimum clients required to perform `fit` | +| `--min_evaluate_clients` | int | 0 | Minimum clients required to perform evaluation | +| `--min_available_clients` | int | 0 | Minimum clients required to start a round | +| `--seed` | int | 42 | Random seed | +| `--sandbox_path` | str | "/sandbox" | Path to sandbox directory | +| `--local_port` | int | 8081 | Server listening port | +| `--production_mode` | str | "True" | Production mode (minimal logs) | + +2. Strategy Settings + +| Argument | Type | Default | Description | +| ------------------------------- | ----- | ------------------ | ------------------------------------ | +| `--strategy` | str | "FedAvg" | Federated aggregation strategy | +| `--smooth_method` | str | "EqualVoting" | Weight smoothing method | +| `--smoothing_strenght` | float | 0.5 | Weight smoothing strength | +| `--dropout_method` | str | None | Dropout strategy for clients | +| `--dropout_percentage` | float | 0.0 | Ratio of dropout nodes | +| `--checkpoint_selection_metric` | str | "precision" | Metric used for checkpoint selection | +| `--metrics_aggregation` | str | "weighted_average" | Aggregation method for metrics | +| `--experiment_name` | str | "experiment_1" | Directory for experiment outputs |