diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/base_index_settings.json b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/base_index_settings.json new file mode 100644 index 0000000..949426e --- /dev/null +++ b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/base_index_settings.json @@ -0,0 +1,70 @@ +{ + "index_patterns": [ + "admissions", + "drgcodes", + "emar", + "icustays", + "patients", + "poe" + ], + "template": { + "mappings": { + "date_detection": true, + "dynamic_date_formats": [ + "yyyy-MM-dd HH:mm:ss", + "yyyy-MM-dd", + "basic_date", + "date_hour", + "date_hour_minute", + "date_hour_minute_second", + "time", + "hour_minute", + "yyyy/MM/dd", + "dd/MM/yyyy", + "dd/MM/yyyy HH:mm", + "date_time", + "t_time", + "date_hour_minute_second_millis", + "basic_time", + "basic_time_no_millis", + "basic_t_time", + "hour_minute_second", + "HH:mm.ss", + "HH:mm.ssZ" + ], + "dynamic_templates": [ + { + "dates": { + "match_mapping_type": "string", + "match_pattern": "regex", + "match": "(?i).*(date|_datetime|_dt|_dttm|_dat|_datime|_time|_ts|_timestamp|time|when|dt|dttm|timestamp|created|updated|modified|inserted|recorded|logged|entered|performed|signed|cosigned|completed|admit|discharge|visit|appointment|service|start|end|effective|expiry|validfrom|validto|close)$", + "mapping": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis||basic_date||date_hour_minute_second" + } + } + }, + { + "strings_as_text": { + "match_mapping_type": "string", + "mapping": { + "type": "text", + "analyzer": "standard", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } + ], + "properties": { + "id": { + "type": "keyword" + } + } + } + } +} \ No newline at end of file diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/dashboards.ndjson b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/dashboards.ndjson new file mode 100644 index 0000000..4e241db --- /dev/null +++ b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/dashboards.ndjson @@ -0,0 +1,21 @@ +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"admission_location\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"admission_location.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"admission_location\"}}},{\"count\":0,\"name\":\"admission_type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"admission_type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"admission_type\"}}},{\"count\":0,\"name\":\"admit_provider_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"admit_provider_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"admit_provider_id\"}}},{\"count\":0,\"name\":\"admittime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"comments\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"deathtime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"discharge_location\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"discharge_location.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"discharge_location\"}}},{\"count\":0,\"name\":\"dischtime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"dose_val_rx\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"edouttime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"edregtime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"gen_loc\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"geoLocation.lat\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"geoLocation.lon\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"hadm_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"hospital_expire_flag\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"insurance\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"insurance.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"insurance\"}}},{\"count\":0,\"name\":\"language\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"language.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"language\"}}},{\"count\":0,\"name\":\"marital_status\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"marital_status.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"marital_status\"}}},{\"count\":0,\"name\":\"race\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"race.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"race\"}}},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"admissions"},"id":"ba325bb0-061f-11ef-a513-a5083c720401","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-08T15:56:44.176Z","version":"WzE0LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Admissions Per Year","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Admissions Per Year\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"admittime\",\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\"},\"useNormalizedOpenSearchInterval\":true,\"scaleMetricValues\":false,\"interval\":\"y\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"Admissions\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}"},"id":"31302c60-16bf-11ef-9606-3fa2532fcc62","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"ba325bb0-061f-11ef-a513-a5083c720401","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-20T15:39:54.626Z","version":"WzM0LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Deaths Per Year","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Deaths Per Year\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"deathtime\",\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\"},\"useNormalizedOpenSearchInterval\":true,\"scaleMetricValues\":false,\"interval\":\"y\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}"},"id":"d5b67c20-16b6-11ef-9606-3fa2532fcc62","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"ba325bb0-061f-11ef-a513-a5083c720401","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-20T15:39:01.951Z","version":"WzM1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Admission Location","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Admission Location\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"admission_location.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":7,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}"},"id":"77448ac0-16bf-11ef-9606-3fa2532fcc62","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"ba325bb0-061f-11ef-a513-a5083c720401","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-20T15:41:46.732Z","version":"WzQwLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Race","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Race\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"race.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"row\":true}}"},"id":"263f9ff0-1793-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"ba325bb0-061f-11ef-a513-a5083c720401","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-21T16:57:04.111Z","version":"WzQxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Insurance","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Insurance\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"insurance.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Insurance\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"row\":true}}"},"id":"c5ba7510-1792-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"ba325bb0-061f-11ef-a513-a5083c720401","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-21T16:54:54.412Z","version":"WzM3LDFd"} +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"charttime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"comments\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"emar_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"emar_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"emar_id\"}}},{\"count\":0,\"name\":\"emar_seq\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"enter_provider_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"enter_provider_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"enter_provider_id\"}}},{\"count\":0,\"name\":\"event_txt\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_txt.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_txt\"}}},{\"count\":0,\"name\":\"hadm_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"medication\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"medication.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"medication\"}}},{\"count\":0,\"name\":\"pharmacy_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"poe_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"poe_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"poe_id\"}}},{\"count\":0,\"name\":\"scheduletime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"storetime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"emar"},"id":"cb5795c0-13c3-11ef-9606-3fa2532fcc62","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-16T20:35:12.283Z","version":"WzE4LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Medication_WC","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Medication_WC\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"medication.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":40,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":true}}"},"id":"b3253970-1856-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"cb5795c0-13c3-11ef-9606-3fa2532fcc62","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-22T16:16:52.358Z","version":"WzQ4LDFd"} +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"comments\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"discontinue_of_poe_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"discontinue_of_poe_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"discontinue_of_poe_id\"}}},{\"count\":0,\"name\":\"discontinued_by_poe_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"discontinued_by_poe_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"discontinued_by_poe_id\"}}},{\"count\":0,\"name\":\"hadm_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"order_provider_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"order_provider_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"order_provider_id\"}}},{\"count\":0,\"name\":\"order_status\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"order_status.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"order_status\"}}},{\"count\":0,\"name\":\"order_subtype\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"order_subtype.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"order_subtype\"}}},{\"count\":0,\"name\":\"order_type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"order_type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"order_type\"}}},{\"count\":0,\"name\":\"ordertime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"poe_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"poe_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"poe_id\"}}},{\"count\":0,\"name\":\"poe_seq\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"transaction_type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"transaction_type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"transaction_type\"}}}]","title":"poe"},"id":"b65c0790-13ce-11ef-9606-3fa2532fcc62","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-16T21:53:21.545Z","version":"WzMwLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Poe_ordertypes","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Poe_ordertypes\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"order_type.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":4,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"split\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"order_subtype.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"row\":true}}"},"id":"ac17f0d0-185d-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"b65c0790-13ce-11ef-9606-3fa2532fcc62","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-22T17:06:47.005Z","version":"WzQ2LDFd"} +{"attributes":{"description":"Mapping showing generated locations for patients.","layerList":"[{\"name\":\"Default map\",\"description\":\"\",\"type\":\"opensearch_vector_tile_map\",\"id\":\"1e5268c9-d86c-4fc0-9860-637435b75608\",\"zoomRange\":[0,22],\"opacity\":100,\"visibility\":\"visible\"},{\"name\":\"Patients\",\"description\":\"\",\"type\":\"documents\",\"id\":\"0b830d8f-f485-4759-80e2-db14ac04a78d\",\"zoomRange\":[0,22],\"opacity\":70,\"visibility\":\"visible\",\"source\":{\"indexPatternRefName\":\"patients\",\"geoFieldType\":\"geo_point\",\"geoFieldName\":\"gen_dom\",\"documentRequestNumber\":10000,\"tooltipFields\":[],\"showTooltips\":false,\"displayTooltipsOnHover\":true,\"applyGlobalFilters\":true,\"indexPatternId\":\"e6ff0d40-11f1-11ef-ad94-374d81247b5b\",\"filters\":[]},\"style\":{\"fillColor\":\"#cc6f44\",\"borderColor\":\"#cc6f44\",\"borderThickness\":1,\"markerSize\":5,\"label\":{\"enabled\":false,\"textByFixed\":\"\",\"textByField\":\"\",\"textType\":\"by_field\",\"size\":15,\"borderWidth\":0,\"color\":\"#000000\",\"borderColor\":\"#FFFFFF\"}}}]","mapState":"{\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"refreshInterval\":{\"pause\":true,\"value\":12000}}","title":"Patients Map"},"id":"0616a360-1390-11ef-9606-3fa2532fcc62","references":[],"type":"map","updated_at":"2024-05-20T14:35:11.683Z","version":"WzMyLDFd"} +{"attributes":{"description":"","layerList":"[{\"name\":\"Default map\",\"description\":\"\",\"type\":\"opensearch_vector_tile_map\",\"id\":\"42c14d6f-fe9c-4337-acd0-29bb612c81a7\",\"zoomRange\":[0,22],\"opacity\":100,\"visibility\":\"visible\"},{\"name\":\"New layer 2\",\"description\":\"\",\"type\":\"documents\",\"id\":\"6d9cc9f7-a14c-4a6a-a229-2be53ebe553b\",\"zoomRange\":[0,22],\"opacity\":70,\"visibility\":\"visible\",\"source\":{\"indexPatternRefName\":\"admissions\",\"geoFieldType\":\"geo_point\",\"geoFieldName\":\"gen_loc\",\"documentRequestNumber\":10000,\"tooltipFields\":[],\"showTooltips\":false,\"displayTooltipsOnHover\":true,\"applyGlobalFilters\":true,\"indexPatternId\":\"ba325bb0-061f-11ef-a513-a5083c720401\",\"filters\":[{\"meta\":{\"index\":\"ba325bb0-061f-11ef-a513-a5083c720401\",\"alias\":null,\"negate\":false,\"disabled\":false},\"query\":{\"match_phrase\":{\"race\":\"WHITE\"}},\"$state\":{\"store\":\"appState\"}}]},\"style\":{\"fillColor\":\"#4b7960\",\"borderColor\":\"#4b7960\",\"borderThickness\":1,\"markerSize\":5,\"label\":{\"enabled\":false,\"textByFixed\":\"\",\"textByField\":\"\",\"textType\":\"by_field\",\"size\":15,\"borderWidth\":0,\"color\":\"#000000\",\"borderColor\":\"#FFFFFF\"}}}]","mapState":"{\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"refreshInterval\":{\"pause\":true,\"value\":12000}}","title":"Hospital Locations"},"id":"821e5fc0-0d78-11ef-a513-a5083c720401","references":[],"type":"map","updated_at":"2024-05-20T14:37:28.622Z","version":"WzMzLDFd"} +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"description\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"description.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"description\"}}},{\"count\":1,\"name\":\"drg_code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"drg_mortality\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"drg_severity\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"drg_type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"drg_type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"drg_type\"}}},{\"count\":0,\"name\":\"hadm_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"drgcodes"},"id":"c37bcfb0-e44d-11ee-9fc2-ab16f365fa8c","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-22T16:05:35.079Z","version":"WzQ5LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Drug Mortality vs Severity Heat Map","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Drug Mortality vs Severity Heat Map\",\"type\":\"heatmap\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"drg_mortality\",\"orderBy\":\"_key\",\"order\":\"asc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"drg_severity\",\"orderBy\":\"_key\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"group\"}],\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Greens\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":false,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\"show\":false,\"rotate\":0,\"overwriteColor\":false,\"color\":\"black\"}}],\"row\":true}}"},"id":"584cd8d0-e7a7-11ee-99af-876c5d67a178","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"c37bcfb0-e44d-11ee-9fc2-ab16f365fa8c","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-03-21T18:48:40.797Z","version":"WzksMV0="} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"MedicationxEvent","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"MedicationxEvent\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"event_txt.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":4,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\" \"},\"schema\":\"split\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"medication.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"row\":true}}"},"id":"92855e10-1857-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"cb5795c0-13c3-11ef-9606-3fa2532fcc62","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-22T16:23:07.120Z","version":"WzQ0LDFd"} +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"comments\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"first_careunit\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"first_careunit.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"first_careunit\"}}},{\"count\":0,\"name\":\"hadm_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"intime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"last_careunit\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"last_careunit.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"last_careunit\"}}},{\"count\":0,\"name\":\"los\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"outtime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"stay_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"icustays"},"id":"9e9ef4f0-13c4-11ef-9606-3fa2532fcc62","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-16T20:41:06.750Z","version":"WzIwLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"First_last_unit","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"First_last_unit\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"first_careunit.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"last_careunit.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100}}}"},"id":"ced096e0-1858-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"9e9ef4f0-13c4-11ef-9606-3fa2532fcc62","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-22T16:31:57.774Z","version":"WzQ1LDFd"} +{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"anchor_age\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"anchor_year\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"anchor_year_group\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"anchor_year_group.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"anchor_year_group\"}}},{\"count\":0,\"name\":\"comments\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":1,\"name\":\"dod\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"dose_val_rx\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"gen_dom\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"gen_loc\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"gen_loc.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"gen_loc\"}}},{\"count\":0,\"name\":\"gender\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"gender.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"gender\"}}},{\"count\":0,\"name\":\"subject_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"patients"},"id":"e6ff0d40-11f1-11ef-ad94-374d81247b5b","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-05-24T17:32:47.161Z","version":"WzUwLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Patient_Age","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Patient_Age\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"histogram\",\"params\":{\"field\":\"anchor_age\",\"interval\":\"auto\",\"min_doc_count\":false,\"has_extended_bounds\":false,\"extended_bounds\":{\"max\":\"\",\"min\":\"\"},\"customLabel\":\"Age\"},\"schema\":\"segment\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]}}"},"id":"9babc1b0-185b-11ef-8167-970bdc38cc41","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"e6ff0d40-11f1-11ef-ad94-374d81247b5b","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-05-22T16:52:00.458Z","version":"WzQzLDFd"} +{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":24,\"h\":15,\"i\":\"f3b28bcf-f3a0-4f97-93fe-2173dd6ae800\"},\"panelIndex\":\"f3b28bcf-f3a0-4f97-93fe-2173dd6ae800\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":15,\"i\":\"b745abf1-caed-4c86-9691-52debc610257\"},\"panelIndex\":\"b745abf1-caed-4c86-9691-52debc610257\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":15,\"w\":12,\"h\":12,\"i\":\"ddb64d89-b811-41ce-92c1-25bab88c6d6b\"},\"panelIndex\":\"ddb64d89-b811-41ce-92c1-25bab88c6d6b\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":12,\"y\":15,\"w\":12,\"h\":12,\"i\":\"a970b0d9-dff5-4b87-bef4-1d7788e6a4b1\"},\"panelIndex\":\"a970b0d9-dff5-4b87-bef4-1d7788e6a4b1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":24,\"y\":15,\"w\":12,\"h\":12,\"i\":\"b857c534-28da-4a43-9c41-e36353aa86b3\"},\"panelIndex\":\"b857c534-28da-4a43-9c41-e36353aa86b3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":36,\"y\":15,\"w\":12,\"h\":12,\"i\":\"9b043ef6-98a1-4e08-9ed4-7989e7776939\"},\"panelIndex\":\"9b043ef6-98a1-4e08-9ed4-7989e7776939\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":27,\"w\":26,\"h\":14,\"i\":\"c5b3a525-a1b8-4878-8bb1-61a852adb016\"},\"panelIndex\":\"c5b3a525-a1b8-4878-8bb1-61a852adb016\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":26,\"y\":27,\"w\":22,\"h\":14,\"i\":\"323fbcc4-6724-4767-8b5a-af0fe2111d16\"},\"panelIndex\":\"323fbcc4-6724-4767-8b5a-af0fe2111d16\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":41,\"w\":24,\"h\":15,\"i\":\"b511c52f-1fd0-4391-bd3a-c34abc0c8f6e\"},\"panelIndex\":\"b511c52f-1fd0-4391-bd3a-c34abc0c8f6e\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":24,\"y\":41,\"w\":24,\"h\":15,\"i\":\"e88e9d91-452e-49a8-8d43-4b37b22c9444\"},\"panelIndex\":\"e88e9d91-452e-49a8-8d43-4b37b22c9444\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":56,\"w\":24,\"h\":15,\"i\":\"55842b9a-3ae3-4313-9298-35693e14ef2a\"},\"panelIndex\":\"55842b9a-3ae3-4313-9298-35693e14ef2a\",\"embeddableConfig\":{\"vis\":null},\"panelRefName\":\"panel_10\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":24,\"y\":56,\"w\":24,\"h\":15,\"i\":\"71eeee2e-f551-4d2e-bdd6-6bf9fa578dd8\"},\"panelIndex\":\"71eeee2e-f551-4d2e-bdd6-6bf9fa578dd8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":0,\"y\":71,\"w\":24,\"h\":15,\"i\":\"383dad7a-3c80-4afc-9835-443e576f7dc4\"},\"panelIndex\":\"383dad7a-3c80-4afc-9835-443e576f7dc4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"2.19.0\",\"gridData\":{\"x\":24,\"y\":71,\"w\":24,\"h\":15,\"i\":\"eac18176-42d0-463d-88a5-d52cbba3f21c\"},\"panelIndex\":\"eac18176-42d0-463d-88a5-d52cbba3f21c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]","timeRestore":false,"title":"Demo Dashboard","version":1},"id":"69908e20-e7a7-11ee-99af-876c5d67a178","migrationVersion":{"dashboard":"7.9.3"},"references":[{"id":"31302c60-16bf-11ef-9606-3fa2532fcc62","name":"panel_0","type":"visualization"},{"id":"d5b67c20-16b6-11ef-9606-3fa2532fcc62","name":"panel_1","type":"visualization"},{"id":"77448ac0-16bf-11ef-9606-3fa2532fcc62","name":"panel_2","type":"visualization"},{"id":"263f9ff0-1793-11ef-8167-970bdc38cc41","name":"panel_3","type":"visualization"},{"id":"77448ac0-16bf-11ef-9606-3fa2532fcc62","name":"panel_4","type":"visualization"},{"id":"c5ba7510-1792-11ef-8167-970bdc38cc41","name":"panel_5","type":"visualization"},{"id":"b3253970-1856-11ef-8167-970bdc38cc41","name":"panel_6","type":"visualization"},{"id":"ac17f0d0-185d-11ef-8167-970bdc38cc41","name":"panel_7","type":"visualization"},{"id":"0616a360-1390-11ef-9606-3fa2532fcc62","name":"panel_8","type":"map"},{"id":"821e5fc0-0d78-11ef-a513-a5083c720401","name":"panel_9","type":"map"},{"id":"584cd8d0-e7a7-11ee-99af-876c5d67a178","name":"panel_10","type":"visualization"},{"id":"92855e10-1857-11ef-8167-970bdc38cc41","name":"panel_11","type":"visualization"},{"id":"ced096e0-1858-11ef-8167-970bdc38cc41","name":"panel_12","type":"visualization"},{"id":"9babc1b0-185b-11ef-8167-970bdc38cc41","name":"panel_13","type":"visualization"}],"type":"dashboard","updated_at":"2025-07-08T13:47:18.459Z","version":"WzEwMywyMl0="} +{"exportedCount":20,"missingRefCount":0,"missingReferences":[]} \ No newline at end of file diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/opensearch-provisioning.sh b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/opensearch-provisioning.sh new file mode 100644 index 0000000..94c566a --- /dev/null +++ b/deployment/kubernetes/charts/cogstack-helm-ce/provisioning/opensearch-provisioning.sh @@ -0,0 +1,134 @@ +#!/usr/bin/sh +set -e +log() { + local ts + ts=$(date +"%Y-%m-%d %H:%M:%S") + echo "[$ts] $*" +} + +: "${OPENSEARCH_URL:?OPENSEARCH_URL is required. Include scheme, port and /api eg http://localhost:9200/ }" +: "${OPENSEARCH_DASHBOARD_URL:?OPENSEARCH_DASHBOARD_URL is required. Include scheme, port and /api eg http://localhost:5601/api }" +: "${OPENSEARCH_USERNAME:?OPENSEARCH_USERNAME is required. }" +: "${OPENSEARCH_PASSWORD:?OPENSEARCH_PASSWORD is required. }" + +: "${CONFIG_DIR:?CONFIG_DIR is required. }" +: "${CURL_BODY_FILE:=/tmp/curl_body.$$}" +# OPENSEARCH_URL=https://localhost:9200 +# OPENSEARCH_DASHBOARD_URL=http://localhost:5601 +# OPENSEARCH_USERNAME=admin +# OPENSEARCH_PASSWORD=opensearch-312$A + +wait_for_service() { + local service_name="$1" + local url="$2" + local curl_extra_args="${3:-}" + local max_wait=120 + local interval=2 + local elapsed=0 + + while true; do + if curl -sf --insecure $curl_extra_args "$url" >/dev/null; then + log "$service_name is running" + return 0 + else + log "$service_name is not running at $url" + if [ "$elapsed" -ge "$max_wait" ]; then + log "Timed out waiting for $service_name to become healthy" + return 1 + fi + log "Retrying in $interval seconds..." + sleep "$interval" + elapsed=$((elapsed + interval)) + interval=$(( interval * 2 )) + if [ "$interval" -gt 10 ]; then + interval=10 + fi + fi + done +} + +OPENSEARCH_AUTH="$OPENSEARCH_USERNAME:$OPENSEARCH_PASSWORD" + +if [ "$PROVISION_OPENSEARCH_INDEX_TEMPLATE_ENABLED" = "true" ]; then + wait_for_service "OpenSearch" "$OPENSEARCH_URL" "-u $OPENSEARCH_AUTH" || exit 1 + # See: https://docs.opensearch.org/latest/im-plugin/index-templates/ + log "Creating index template - PUT $OPENSEARCH_URL/_index_template/base_index_template" + os_status="$(curl -sS \ + -o "$CURL_BODY_FILE" \ + -w "%{http_code}" \ + -X PUT "$OPENSEARCH_URL/_index_template/base_index_template" \ + -H "Content-Type: application/json" \ + -u "$OPENSEARCH_AUTH" \ + -k \ + -d @"${CONFIG_DIR}/base_index_settings.json")" + if [ "$os_status" != "200" ] && [ "$os_status" != "201" ]; then + log "Failed to create index template (http_status=$os_status)" + if [ -s "$CURL_BODY_FILE" ]; then + log "Response body:" + sed 's/^/ /' "$CURL_BODY_FILE" + fi + exit 1 + fi +fi + +if [ "$PROVISION_OPENSEARCH_EXAMPLE_DOCUMENTS_ENABLED" = "true" ]; then + wait_for_service "OpenSearch" "$OPENSEARCH_URL" "-u $OPENSEARCH_AUTH" || exit 1 + log "Creating example admissions document - POST $OPENSEARCH_URL/admissions/_doc" + os_status="$(curl -sS \ + -o "$CURL_BODY_FILE" \ + -w "%{http_code}" \ + -X POST "$OPENSEARCH_URL/admissions/_doc" \ + -H "Content-Type: application/json" \ + -u "$OPENSEARCH_AUTH" \ + -k \ + -d '{ + "subject_id": 10000032, + "hadm_id": 22595853, + "admittime": "2180-05-06 22:23:00", + "dischtime": "2180-05-07 17:15:00", + "admission_type": "URGENT", + "admit_provider_id": "P49AFC", + "admission_location": "TRANSFER FROM HOSPITAL", + "discharge_location": "HOME", + "insurance": "Medicaid", + "language": "English", + "marital_status": "WIDOWED", + "race": "WHITE", + "edregtime": "2180-05-06 19:17:00", + "edouttime": "2180-05-06 23:30:00", + "hospital_expire_flag": 0 +}')" + if [ "$os_status" != "200" ] && [ "$os_status" != "201" ]; then + log "Failed to create example admissions document (http_status=$os_status)" + if [ -s "$CURL_BODY_FILE" ]; then + log "Response body:" + sed 's/^/ /' "$CURL_BODY_FILE" + fi + exit 1 + fi +fi + +if [ "$PROVISION_OPENSEARCH_DASHBOARDS_ENABLED" = "true" ]; then + log "Provisioning OpenSearch Dashboards" + wait_for_service "OpenSearch Dashboard" "$OPENSEARCH_DASHBOARD_URL" || exit 1 + + log "Importing dashboards - POST $OPENSEARCH_DASHBOARD_URL/api/saved_objects/_import?overwrite=true" + osd_status="$(curl -sS \ + -o "$CURL_BODY_FILE" \ + -w "%{http_code}" \ + -X POST "$OPENSEARCH_DASHBOARD_URL/api/saved_objects/_import?overwrite=true" \ + -H "osd-xsrf: true" \ + --form "file=@${CONFIG_DIR}/dashboards.ndjson" \ + -u "$OPENSEARCH_AUTH" \ + --insecure)" + if [ "$osd_status" != "200" ] && [ "$osd_status" != "201" ]; then + log "Failed to import dashboards (http_status=$osd_status)" + if [ -s "$CURL_BODY_FILE" ]; then + log "Response body:" + sed 's/^/ /' "$CURL_BODY_FILE" + fi + exit 1 + fi +fi + +log "Provisioning completed" \ No newline at end of file diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/templates/_helpers.tpl b/deployment/kubernetes/charts/cogstack-helm-ce/templates/_helpers.tpl index 6c00b8e..9ec6d37 100644 --- a/deployment/kubernetes/charts/cogstack-helm-ce/templates/_helpers.tpl +++ b/deployment/kubernetes/charts/cogstack-helm-ce/templates/_helpers.tpl @@ -60,3 +60,32 @@ Create the name of the service account to use {{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} + +{{/* +Dependency URLs +*/}} + +{{- define "opensearch.url" -}} +{{- $serviceName := include "opensearch.serviceName" (index .Subcharts "opensearch") -}} +{{- $scheme := default "https" .Values.opensearch.protocol -}} +{{- $port := default 9200 .Values.opensearch.httpPort -}} +{{- printf "%s://%s:%v" $scheme $serviceName $port -}} +{{- end }} + +{{- define "opensearch-dashboards.url" -}} +{{- $serviceName := include "opensearch-dashboards.fullname" (index .Subcharts "opensearch-dashboards") -}} +{{- $scheme := "http" -}} +{{- $port := default 5601 (index .Values "opensearch-dashboards" "service" "port") -}} +{{- printf "%s://%s:%v" $scheme $serviceName $port -}} +{{- end }} + +{{- define "opensearch.initialAdminPassword" -}} +{{- $val := "" -}} +{{- range .Values.opensearch.extraEnvs }} + {{- if eq .name "OPENSEARCH_INITIAL_ADMIN_PASSWORD" }} + {{- $val = .value -}} + {{- end }} +{{- end }} +{{- $val -}} +{{- end }} + diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-config-map.yaml b/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-config-map.yaml new file mode 100644 index 0000000..ffe6529 --- /dev/null +++ b/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-config-map.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: opensearch-provisioning-config +data: +{{ (.Files.Glob "provisioning/*").AsConfig | indent 2 }} diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-post-install.yaml b/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-post-install.yaml new file mode 100644 index 0000000..c70dd14 --- /dev/null +++ b/deployment/kubernetes/charts/cogstack-helm-ce/templates/opensearch-provisioning-post-install.yaml @@ -0,0 +1,43 @@ +{{- if .Values.provisioning.enabled }} +apiVersion: v1 +kind: Pod +metadata: + labels: + {{- include "cogstack-helm-ce.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation + #"helm.sh/hook-delete-policy": before-hook-creation + name: {{ include "cogstack-helm-ce.fullname" . }}-opensearch-provisioning +spec: + restartPolicy: OnFailure + containers: + - image: curlimages/curl + name: opensearch-provisioning + command: ["/bin/sh", "/etc/config/opensearch-provisioning-config/opensearch-provisioning.sh"] + env: + - name: OPENSEARCH_URL + value: {{ include "opensearch.url" . }} + - name: OPENSEARCH_DASHBOARD_URL + value: {{ include "opensearch-dashboards.url" . }} + - name: OPENSEARCH_USERNAME + value: admin + - name: OPENSEARCH_PASSWORD + value: {{ include "opensearch.initialAdminPassword" . }} + - name: CONFIG_DIR + value: /etc/config/opensearch-provisioning-config + - name: PROVISION_OPENSEARCH_DASHBOARDS_ENABLED + value: "{{ .Values.provisioning.opensearchDashboards.createDashboards }}" + - name: PROVISION_OPENSEARCH_INDEX_TEMPLATE_ENABLED + value: "{{ .Values.provisioning.opensearch.createIndexTemplate }}" + - name: PROVISION_OPENSEARCH_EXAMPLE_DOCUMENTS_ENABLED + value: "{{ .Values.provisioning.opensearch.createExampleDocuments }}" + volumeMounts: + - name: opensearch-provisioning-config + mountPath: /etc/config/opensearch-provisioning-config + volumes: + - name: opensearch-provisioning-config + configMap: + name: opensearch-provisioning-config +{{- end }} \ No newline at end of file diff --git a/deployment/kubernetes/charts/cogstack-helm-ce/values.yaml b/deployment/kubernetes/charts/cogstack-helm-ce/values.yaml index 8febfe0..2f31def 100644 --- a/deployment/kubernetes/charts/cogstack-helm-ce/values.yaml +++ b/deployment/kubernetes/charts/cogstack-helm-ce/values.yaml @@ -34,6 +34,14 @@ medcat-trainer: env: CSRF_TRUSTED_ORIGINS: "http://localhost:8080" +provisioning: + enabled: true + opensearch: + createIndexTemplate: true + createExampleDocuments: true + opensearchDashboards: + createDashboards: true + opensearch: enabled: true extraEnvs: