diff --git a/docs/index.html b/docs/index.html
index 355f6190..e3c23a1c 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -357,7 +357,7 @@
Features
diff --git a/docs/index.md b/docs/index.md
index 848c4533..8c21e091 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -21,4 +21,4 @@ It comes with **RabbitInAHat**, an application for interactive design of an ETL
- Rabbit in a Hat generates ETL specification document according to OMOP templatement according to OMOP template
# Current version
-[**v0.9.0**](https://github.com/OHDSI/WhiteRabbit/releases/tag/v0.9.0)
\ No newline at end of file
+[**v0.10.1**](https://github.com/OHDSI/WhiteRabbit/releases/latest)
\ No newline at end of file
diff --git a/examples.zip b/examples.zip
index 6a389437..f7ccf114 100644
Binary files a/examples.zip and b/examples.zip differ
diff --git a/iniFileExamples/WhiteRabbit.ini b/iniFileExamples/WhiteRabbit.ini
index 36208d19..714e88be 100644
--- a/iniFileExamples/WhiteRabbit.ini
+++ b/iniFileExamples/WhiteRabbit.ini
@@ -7,7 +7,7 @@ PASSWORD = supersecret # Password for the database
DATABASE_NAME = schema_name # Name of the data schema used
DELIMITER = , # The delimiter that separates values
TABLES_TO_SCAN = * # Comma-delimited list of table names to scan. Use "*" (asterix) to include all tables in the database
-SCAN_FIELD_VALUES = yes # Include a frequency count of field values in the scan report? "yes" or "no"
+SCAN_FIELD_VALUES = yes # Include the frequency of field values in the scan report? "yes" or "no"
MIN_CELL_COUNT = 5 # Minimum frequency for a field value to be included in the report
MAX_DISTINCT_VALUES = 1000 # Maximum number of distinct values per field to be reported
ROWS_PER_TABLE = 100000 # Maximum number of rows per table to be scanned for field values
diff --git a/pom.xml b/pom.xml
index 76fdf147..762672c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.ohdsi
leporidae
pom
- 0.10.0
+ 0.10.1
rabbitinahat
whiterabbit
diff --git a/rabbit-core/pom.xml b/rabbit-core/pom.xml
index 48511c79..a6e4e8d4 100644
--- a/rabbit-core/pom.xml
+++ b/rabbit-core/pom.xml
@@ -5,7 +5,7 @@
leporidae
org.ohdsi
- 0.10.0
+ 0.10.1
4.0.0
diff --git a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java
index aa548e5b..887262c7 100644
--- a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java
+++ b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Database.java
@@ -72,6 +72,10 @@ public void setTables(List tables) {
this.tables = tables;
}
+ public void addTable(Table table) {
+ this.tables.add(table);
+ }
+
public String getDbName() {
return dbName;
}
@@ -138,11 +142,14 @@ public static Database generateModelFromScanReport(String filename) {
Database database = new Database();
QuickAndDirtyXlsxReader workbook = new QuickAndDirtyXlsxReader(filename);
- // Create table lookup from tables overview, if exists
+ // Create table lookup from tables overview, if it exists
Map nameToTable = createTablesFromTableOverview(workbook, database);
// Field overview is the first sheet
- Sheet overviewSheet = workbook.get(0);
+ Sheet overviewSheet = workbook.getByName(ScanSheetName.FIELD_OVERVIEW);
+ if (overviewSheet == null) {
+ overviewSheet = workbook.get(0);
+ }
Iterator overviewRows = overviewSheet.iterator();
overviewRows.next(); // Skip header
@@ -168,11 +175,12 @@ public static Database generateModelFromScanReport(String filename) {
String fieldName = row.getStringByHeaderName(ScanFieldName.FIELD);
Field field = new Field(fieldName.toLowerCase(), table);
- String fractionEmpty = row.getByHeaderName(ScanFieldName.FRACTION_EMPTY);
- field.setNullable(fractionEmpty == null || !fractionEmpty.equals("0"));
field.setType(row.getByHeaderName(ScanFieldName.TYPE));
field.setMaxLength(row.getIntByHeaderName(ScanFieldName.MAX_LENGTH));
field.setDescription(row.getStringByHeaderName(ScanFieldName.DESCRIPTION));
+ field.setFractionEmpty(row.getDoubleByHeaderName(ScanFieldName.FRACTION_EMPTY));
+ field.setUniqueCount(row.getIntByHeaderName(ScanFieldName.UNIQUE_COUNT));
+ field.setFractionUnique(row.getDoubleByHeaderName(ScanFieldName.FRACTION_UNIQUE));
field.setValueCounts(getValueCounts(workbook, tableName, fieldName));
table.getFields().add(field);
@@ -186,18 +194,13 @@ public static Table createTable(String name, String description, Integer nRows,
Table table = new Table();
table.setName(name.toLowerCase());
table.setDescription(description);
- table.setRowCount((nRows == null || nRows == -1) ? nRowsChecked : nRows);
+ table.setRowCount(nRows == null ? -1 : nRows);
+ table.setRowsCheckedCount(nRowsChecked == null ? -1 : nRowsChecked);
return table;
}
public static Map createTablesFromTableOverview(QuickAndDirtyXlsxReader workbook, Database database) {
- Sheet tableOverviewSheet = null;
- for (Sheet sheet : workbook) {
- if (sheet.getName().equals(ScanSheetName.TABLE_OVERVIEW)) {
- tableOverviewSheet = sheet;
- break;
- }
- }
+ Sheet tableOverviewSheet = workbook.getByName(ScanSheetName.TABLE_OVERVIEW);
if (tableOverviewSheet == null) { // No table overview sheet, empty nameToTable
return new HashMap<>();
@@ -224,38 +227,46 @@ public static Map createTablesFromTableOverview(QuickAndDirtyXlsx
return nameToTable;
}
- private static String[][] getValueCounts(QuickAndDirtyXlsxReader workbook, String tableName, String fieldName) {
- Sheet tableSheet = null;
+ private static ValueCounts getValueCounts(QuickAndDirtyXlsxReader workbook, String tableName, String fieldName) {
String targetSheetName = Table.createSheetNameFromTableName(tableName);
- for (Sheet sheet : workbook) {
- if (sheet.getName().equals(targetSheetName)) {
- tableSheet = sheet;
- break;
- }
+ Sheet tableSheet = workbook.getByName(targetSheetName);
+
+ // Sheet not found for table, return empty
+ if (tableSheet == null) {
+ return new ValueCounts();
}
- if (tableSheet == null) // Sheet not found for table, return empty array
- return new String[0][0];
Iterator iterator = tableSheet.iterator();
org.ohdsi.utilities.files.QuickAndDirtyXlsxReader.Row header = iterator.next();
int index = header.indexOf(fieldName);
- List list = new ArrayList();
+
+ ValueCounts valueCounts = new ValueCounts();
if (index != -1) // Could happen when people manually delete columns
while (iterator.hasNext()) {
org.ohdsi.utilities.files.QuickAndDirtyXlsxReader.Row row = iterator.next();
if (row.size() > index) {
String value = row.get(index);
String count;
- if (row.size() > index + 1)
+
+ if (row.size() > index + 1) {
count = row.get(index + 1);
- else
+ } else {
count = "";
- if (value.equals("") && count.equals(""))
+ }
+
+ if (value.equals("") && count.equals("")) {
break;
- list.add(new String[] { value, count });
+ }
+
+ // If the count is not a number, ignore this row
+ try {
+ valueCounts.add(value, (int) Double.parseDouble(count));
+ } catch (NumberFormatException e) {
+ // Skip if count could not be parsed. In most cases this is for empty count at 'List Truncated...'
+ }
}
}
- return list.toArray(new String[list.size()][2]);
+ return valueCounts;
}
}
diff --git a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Field.java b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Field.java
index ed6feaec..20f1c884 100644
--- a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Field.java
+++ b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Field.java
@@ -25,13 +25,16 @@ public class Field implements MappableItem {
private Table table;
private String name;
private String comment = "";
- private String[][] valueCounts;
+ private ValueCounts valueCounts = new ValueCounts();
private boolean isNullable;
private String type;
private String description = "";
private Integer maxLength;
private boolean isStem;
private List conceptIdHints;
+ private Double fractionEmpty;
+ private Integer uniqueCount;
+ private Double fractionUnique;
public Field(String name, Table table) {
this.table = table;
@@ -66,11 +69,11 @@ public void setName(String name) {
this.name = name;
}
- public String[][] getValueCounts() {
+ public ValueCounts getValueCounts() {
return valueCounts;
}
- public void setValueCounts(String[][] valueCounts) {
+ public void setValueCounts(ValueCounts valueCounts) {
this.valueCounts = valueCounts;
}
@@ -137,4 +140,29 @@ public List getConceptIdHints() {
public void setConceptIdHints(List conceptIdHints) {
this.conceptIdHints = conceptIdHints;
}
+
+ public Double getFractionEmpty() {
+ return fractionEmpty;
+ }
+
+ public void setFractionEmpty(Double fractionEmpty) {
+ this.fractionEmpty = fractionEmpty;
+ this.setNullable(fractionEmpty == null || fractionEmpty != 0);
+ }
+
+ public Integer getUniqueCount() {
+ return uniqueCount;
+ }
+
+ public void setUniqueCount(Integer uniqueCount) {
+ this.uniqueCount = uniqueCount;
+ }
+
+ public Double getFractionUnique() {
+ return fractionUnique;
+ }
+
+ public void setFractionUnique(Double fractionUnique) {
+ this.fractionUnique = fractionUnique;
+ }
}
diff --git a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Table.java b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Table.java
index e2bd924a..e3e0f7e7 100644
--- a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Table.java
+++ b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/Table.java
@@ -96,6 +96,10 @@ public void setRowsCheckedCount(int rowsCheckedCount) {
this.rowsCheckedCount = rowsCheckedCount;
}
+ public void addField(Field field) {
+ this.fields.add(field);
+ }
+
public List getFields() {
return fields;
}
diff --git a/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ValueCounts.java b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ValueCounts.java
new file mode 100644
index 00000000..1866583d
--- /dev/null
+++ b/rabbit-core/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ValueCounts.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright 2020 Observational Health Data Sciences and Informatics
+ *
+ * This file is part of WhiteRabbit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package org.ohdsi.rabbitInAHat.dataModel;
+
+import java.util.ArrayList;
+
+public class ValueCounts {
+ private ArrayList valueCounts = new ArrayList<>();
+ private int totalFrequency = 0;
+ private String mostFrequentValue;
+ private int mostFrequentValueCount = -1;
+
+ public class ValueCount {
+ private String value;
+ private int frequency;
+
+ public ValueCount(String value, int frequency) {
+ this.value = value;
+ this.frequency = frequency;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public int getFrequency() {
+ return frequency;
+ }
+ }
+
+ public boolean add(String value, int count) {
+ totalFrequency += count;
+ if (count > mostFrequentValueCount) {
+ mostFrequentValue = value;
+ mostFrequentValueCount = count;
+ }
+ return valueCounts.add(new ValueCount(value, count));
+ }
+
+ public ArrayList getAll() {
+ return valueCounts;
+ }
+
+ public ValueCounts.ValueCount get(int i) {
+ return valueCounts.get(i);
+ }
+
+ public String getMostFrequentValue() {
+ return mostFrequentValue;
+ }
+
+ public int getTotalFrequency() {
+ return totalFrequency;
+ }
+
+ public int size() {
+ return valueCounts.size();
+ }
+
+ public boolean isEmpty() {
+ return size() == 0;
+ }
+
+}
diff --git a/rabbit-core/src/main/java/org/ohdsi/utilities/files/QuickAndDirtyXlsxReader.java b/rabbit-core/src/main/java/org/ohdsi/utilities/files/QuickAndDirtyXlsxReader.java
index e5a9b9f5..9f2add31 100644
--- a/rabbit-core/src/main/java/org/ohdsi/utilities/files/QuickAndDirtyXlsxReader.java
+++ b/rabbit-core/src/main/java/org/ohdsi/utilities/files/QuickAndDirtyXlsxReader.java
@@ -1,14 +1,14 @@
/*******************************************************************************
* Copyright 2019 Observational Health Data Sciences and Informatics
- *
+ *
* This file is part of WhiteRabbit
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -25,10 +25,10 @@
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -38,12 +38,14 @@
public class QuickAndDirtyXlsxReader extends ArrayList {
- private static final long serialVersionUID = 25124428448185386L;
+ private static final long serialVersionUID = 25124428448185386L;
+ private static final Pattern DOUBLE_IGNORE_PATTERN = Pattern.compile("[<>= ]+");
- private List sharedStrings = new ArrayList();
+ private List sharedStrings = new ArrayList<>();
- private Map rIdToSheet = new HashMap();
- private Map filenameToSheet = new HashMap();
+ private Map rIdToSheet = new HashMap<>();
+ private Map nameToSheet = new HashMap<>();
+ private Map filenameToSheet = new HashMap<>();
public QuickAndDirtyXlsxReader(String filename) {
try {
@@ -56,17 +58,10 @@ public QuickAndDirtyXlsxReader(String filename) {
readFromStream(inputStream);
// Step 3: order the sheets:
- Collections.sort(this, new Comparator() {
-
- @Override
- public int compare(Sheet o1, Sheet o2) {
- return IntegerComparator.compare(o1.order, o2.order);
- }
- });
+ Collections.sort(this, (o1, o2) -> IntegerComparator.compare(o1.order, o2.order));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
-
}
private void loadSharedStringsAndRels(FileInputStream inputStream) {
@@ -191,7 +186,7 @@ else if (tag.equals("/v") || tag.equals("/t")) {
result.add("");
if (sharedString) {
int index = Integer.parseInt(string.substring(stringStart, tagStart - 1));
- result.set(column, sharedStrings.get(index));
+ result.set(column, decode(sharedStrings.get(index)));
} else
result.set(column, decode(string.substring(stringStart, tagStart - 1)));
}
@@ -521,10 +516,15 @@ private void processWorkBook(InputStream inputStream) throws NumberFormatExcepti
Sheet sheet = rIdToSheet.get(rId);
sheet.setName(name);
sheet.order = Integer.parseInt(order);
+ nameToSheet.put(name, sheet);
}
}
}
+ public Sheet getByName(String sheetName) {
+ return nameToSheet.get(sheetName);
+ }
+
public class Sheet extends ArrayList {
private static final long serialVersionUID = -8597151681911998153L;
private String name;
@@ -590,6 +590,8 @@ public String getStringByHeaderName(String fieldName) {
public Double getDoubleByHeaderName(String fieldName) {
String value = getStringByHeaderName(fieldName);
if (value != null) {
+ // Ignore operators and spaces from double values
+ value = DOUBLE_IGNORE_PATTERN.matcher(value).replaceAll("");
return Double.parseDouble(value);
} else {
return null;
diff --git a/rabbitinahat/pom.xml b/rabbitinahat/pom.xml
index 2bcece1e..1d290a9b 100644
--- a/rabbitinahat/pom.xml
+++ b/rabbitinahat/pom.xml
@@ -5,7 +5,7 @@
leporidae
org.ohdsi
- 0.10.0
+ 0.10.1
4.0.0
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/DetailsPanel.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/DetailsPanel.java
index ccd7f5b1..fb357cbd 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/DetailsPanel.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/DetailsPanel.java
@@ -51,7 +51,6 @@
import javax.swing.undo.UndoManager;
import org.ohdsi.rabbitInAHat.dataModel.*;
-import org.ohdsi.utilities.StringUtilities;
public class DetailsPanel extends JPanel implements DetailsListener {
@@ -341,9 +340,10 @@ public void removeUpdate(DocumentEvent e) {
}
private class FieldPanel extends JPanel implements DocumentListener {
-
private static final long serialVersionUID = -4393026616049677944L;
JLabel nameLabel;
+ JLabel typeLabel;
+ JLabel valueDetailLabel;
JLabel rowCountLabel;
DescriptionTextArea description;
SimpleTableModel valueTable;
@@ -353,6 +353,8 @@ private class FieldPanel extends JPanel implements DocumentListener {
public FieldPanel() {
nameLabel = new JLabel("");
+ typeLabel = new JLabel("");
+ valueDetailLabel = new JLabel("");
rowCountLabel = new JLabel("");
description = new DescriptionTextArea ("");
valueTable = new SimpleTableModel("Value", "Frequency", "Percentage");
@@ -365,9 +367,7 @@ public void initialise() {
setLayout(new BorderLayout());
JPanel generalInfoPanel = new JPanel();
-
generalInfoPanel.setLayout(new BorderLayout(5,5));
-
generalInfoPanel.setBorder(BorderFactory.createTitledBorder("General information"));
JPanel fieldInfo = new JPanel();
@@ -377,10 +377,18 @@ public void initialise() {
fieldInfo.add(nameLabel);
fieldInfo.add(new JLabel("Field type: "));
- fieldInfo.add(rowCountLabel);
-
- generalInfoPanel.add(fieldInfo,BorderLayout.NORTH);
-
+ fieldInfo.add(typeLabel);
+
+ generalInfoPanel.add(fieldInfo, BorderLayout.NORTH);
+
+ JPanel sourceDetailsPanel = new JPanel();
+ sourceDetailsPanel.setLayout(new GridLayout(0,2));
+
+ sourceDetailsPanel.add(new JLabel("Unique values: "));
+ sourceDetailsPanel.add(valueDetailLabel);
+
+ generalInfoPanel.add(sourceDetailsPanel);
+
JPanel descriptionInfo = new JPanel();
descriptionInfo.setLayout(new GridLayout(0,2));
descriptionInfo.add(new JLabel("Description: "));
@@ -431,10 +439,27 @@ public void showField(Field field) {
this.field = field;
nameLabel.setText(field.getName());
- rowCountLabel.setText(field.getType());
- description.setText(field.getDescription());
+ typeLabel.setText(field.getType());
- // Hide description if it's empty
+ // Additional unique count and percentage empty. Hide when not given
+ StringBuilder valueDetailText = new StringBuilder();
+ if (field.getUniqueCount() != null) {
+ valueDetailText.append(numberFormat.format(field.getUniqueCount()));
+ }
+ if (field.getFractionEmpty() != null) {
+ String fractionEmptyFormatted;
+ if (field.getFractionEmpty() > 0 && field.getFractionEmpty() < 0.001) {
+ fractionEmptyFormatted = "<" + percentageFormat.format(0.001);
+ } else {
+ fractionEmptyFormatted = percentageFormat.format(field.getFractionEmpty());
+ }
+ valueDetailText.append(String.format(" (%s empty)", fractionEmptyFormatted));
+ }
+ valueDetailLabel.setText(valueDetailText.toString());
+ valueDetailLabel.getParent().setVisible(!valueDetailLabel.getText().isEmpty());
+
+ // Description. Hide when empty
+ description.setText(field.getDescription());
description.getParent().setVisible(!description.getText().isEmpty());
this.createValueList(field);
@@ -443,28 +468,24 @@ public void showField(Field field) {
public void createValueList(Field field) {
valueTable.clear();
- if (field.getValueCounts() != null) {
- int valueCountTotal = field.getRowsCheckedCount();
-
- for (String[] valueCount : field.getValueCounts()) {
- String valueNumber = valueCount[1];
- String valuePercent = "";
- if (StringUtilities.isNumber(valueNumber)) {
- double number = Double.parseDouble(valueNumber);
- valueNumber = numberFormat.format(number);
- double valueCountPercent = number / (double) valueCountTotal;
- if (valueCountPercent < 0.001) {
- valuePercent = "<" + percentageFormat.format(0.001);
- }
- else if (valueCountPercent > 0.99) {
- valuePercent = ">" + percentageFormat.format(0.99);
- }
- else {
- valuePercent = percentageFormat.format(valueCountPercent);
- }
- }
- valueTable.add(valueCount[0], valueNumber, valuePercent);
+
+ int rowsCheckedCount = field.getRowsCheckedCount();
+ for (ValueCounts.ValueCount valueCount : field.getValueCounts().getAll()) {
+ double valueCountPercent = valueCount.getFrequency() / (double) rowsCheckedCount;
+ String valuePercent;
+ if (valueCountPercent < 0.001) {
+ valuePercent = "<" + percentageFormat.format(0.001);
+ } else if (valueCountPercent > 0.99 && valueCountPercent < 1) {
+ valuePercent = ">" + percentageFormat.format(0.99);
+ } else {
+ valuePercent = percentageFormat.format(valueCountPercent);
}
+ String valueNumber = numberFormat.format(valueCount.getFrequency());
+ valueTable.add(valueCount.getValue(), valueNumber, valuePercent);
+ }
+
+ if (rowsCheckedCount != field.getValueCounts().getTotalFrequency()) {
+ valueTable.add("Truncated...", "", "");
}
}
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLMarkupDocumentGenerator.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLMarkupDocumentGenerator.java
index 2b194ba2..66f64e38 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLMarkupDocumentGenerator.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLMarkupDocumentGenerator.java
@@ -187,10 +187,7 @@ private void addSourceTablesAppendix(Table sourceTable) {
List rows = new ArrayList<>();
for (Field field : sourceTable.getFields()) {
- String mostFrequentValue = "";
- if (field.getValueCounts() != null && field.getValueCounts().length != 0) {
- mostFrequentValue = field.getValueCounts()[0][0];
- }
+ String mostFrequentValue = field.getValueCounts().getMostFrequentValue();
Row row = new Row();
row.add("Field", field.getName());
@@ -318,8 +315,14 @@ public void addTable(List rows) {
for (Row row : rows) {
line = new StringBuilder();
- for (String value : row.getCells())
- line.append("| ").append(value.replaceAll("\n", " ")).append(" ");
+ for (String value : row.getCells()) {
+ if (value != null) {
+ value = value.replaceAll("\n", " ");
+ } else {
+ value = "";
+ }
+ line.append("| ").append(value).append(" ");
+ }
line.append("|");
lines.add(line.toString());
}
@@ -418,8 +421,12 @@ public void addTable(List rows) {
for (Row row : rows) {
lines.add("\t");
- for (String cell : row.getCells())
+ for (String cell : row.getCells()) {
+ if (cell == null) {
+ cell = "";
+ }
lines.add("\t\t" + cell + " | ");
+ }
lines.add("\t
");
}
lines.add("
");
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLTestFrameWorkGenerator.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLTestFrameWorkGenerator.java
index eaa70398..97e2cdc1 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLTestFrameWorkGenerator.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLTestFrameWorkGenerator.java
@@ -115,15 +115,12 @@ private void createInitFunction() {
writer.println(" defaults <- list()");
for (Field field : table.getFields()) {
String rFieldName = convertToRName(field.getName());
- String defaultValue;
- if (field.getValueCounts().length == 0)
- defaultValue = "";
- else
- defaultValue = field.getValueCounts()[0][0];
- if (!defaultValue.equals("") && !defaultValue.equals("List truncated..."))
+ String defaultValue = field.getValueCounts().getMostFrequentValue();
+ if (defaultValue != null) {
writer.println(" defaults$" + rFieldName + " <- '" + defaultValue + "'");
- else
+ } else {
writer.println(" defaults$" + rFieldName + " <- ''");
+ }
}
writer.println(" assign('" + rTableName + "', defaults, envir = frameworkContext$defaultValues)");
}
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLWordDocumentGenerator.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLWordDocumentGenerator.java
index fa2bbc6e..e7193aa6 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLWordDocumentGenerator.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/ETLWordDocumentGenerator.java
@@ -93,8 +93,7 @@ private static void addSourceTablesAppendix(CustomXWPFDocument document, ETL etl
XWPFTableRow row = table.getRow(rowNr++);
row.getCell(0).setText(sourceField.getName());
row.getCell(1).setText(sourceField.getType());
- if (sourceField.getValueCounts() != null && sourceField.getValueCounts().length != 0)
- row.getCell(2).setText(sourceField.getValueCounts()[0][0]);
+ row.getCell(2).setText(sourceField.getValueCounts().getMostFrequentValue());
createCellParagraph(row.getCell(3), sourceField.getComment().trim());
}
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/MappingPanel.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/MappingPanel.java
index bfa9f3b5..3d9e689a 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/MappingPanel.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/MappingPanel.java
@@ -46,10 +46,7 @@
import javax.swing.KeyStroke;
import org.ohdsi.rabbitInAHat.Arrow.HighlightStatus;
-import org.ohdsi.rabbitInAHat.dataModel.ItemToItemMap;
-import org.ohdsi.rabbitInAHat.dataModel.MappableItem;
-import org.ohdsi.rabbitInAHat.dataModel.Mapping;
-import org.ohdsi.rabbitInAHat.dataModel.Table;
+import org.ohdsi.rabbitInAHat.dataModel.*;
import org.ohdsi.utilities.collections.IntegerComparator;
public class MappingPanel extends JPanel implements MouseListener, MouseMotionListener {
@@ -161,20 +158,22 @@ private void renderModel() {
sourceComponents.clear();
cdmComponents.clear();
arrows.clear();
- for (MappableItem item : mapping.getSourceItems())
+ for (MappableItem item : mapping.getSourceItems()) {
if (!showOnlyConnectedItems || isConnected(item)) {
if (item.isStem())
sourceComponents.add(new LabeledRectangle(0, 400, ITEM_WIDTH, ITEM_HEIGHT, item, new Color(160, 0, 160)));
else
sourceComponents.add(new LabeledRectangle(0, 400, ITEM_WIDTH, ITEM_HEIGHT, item, new Color(255, 128, 0)));
}
- for (MappableItem item : mapping.getTargetItems())
+ }
+ for (MappableItem item : mapping.getTargetItems()) {
if (!showOnlyConnectedItems || isConnected(item)) {
if (item.isStem())
cdmComponents.add(new LabeledRectangle(0, 400, ITEM_WIDTH, ITEM_HEIGHT, item, new Color(160, 0, 160)));
else
cdmComponents.add(new LabeledRectangle(0, 400, ITEM_WIDTH, ITEM_HEIGHT, item, new Color(128, 128, 255)));
}
+ }
for (ItemToItemMap map : mapping.getSourceToTargetMaps()) {
Arrow component = new Arrow(getComponentWithItem(map.getSourceItem(), sourceComponents), getComponentWithItem(map.getTargetItem(), cdmComponents),
map);
@@ -755,6 +754,25 @@ private void LabeledRectangleClicked(MouseEvent event, List co
boolean isSourceComponent = sourceComponents.contains(component);
detailsListener.showDetails(component.getItem(), isSourceComponent);
repaint();
+
+ if (event.getClickCount() == 2 && isSourceComponent && !component.getItem().isStem()) {
+ if (slaveMappingPanel != null) {
+ // Create dummy mapping
+ slaveMappingPanel.setMapping(
+ new Mapping<>(((Table) component.getItem()).getFields(), new ArrayList<>(), new ArrayList<>())
+ );
+ // Zoom arrow has to be set, but will not be shown
+ zoomArrow = new Arrow(
+ component,
+ components.get(0) // random target for the arrow
+ );
+
+ new AnimateThread(true).start();
+
+ slaveMappingPanel.filterComponents("", false);
+ slaveMappingPanel.filterComponents("", true);
+ }
+ }
break;
}
}
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/RabbitInAHatMain.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/RabbitInAHatMain.java
index fd2f0e9e..90996559 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/RabbitInAHatMain.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/RabbitInAHatMain.java
@@ -571,7 +571,7 @@ private void doOpenScanReport() {
private void doOpenScanReport(String filename) {
boolean replace = true;
if (ObjectExchange.etl.getSourceDatabase().getTables().size() != 0) {
- Object[] options = { "Replace current data", "Load data on field values only" };
+ Object[] options = { "Replace current data", "Update tables and fields"};
int result = JOptionPane.showOptionDialog(frame, "You already have source data loaded. Do you want to", "Replace source data?",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (result == -1)
@@ -597,32 +597,40 @@ private void doOpenScanReport(String filename) {
Database newData = Database.generateModelFromScanReport(filename);
Database oldData = ObjectExchange.etl.getSourceDatabase();
for (Table newTable : newData.getTables()) {
- Table oldTable = (Table) findByName(newTable.getName(), oldData.getTables());
+ Table oldTable = oldData.getTableByName(newTable.getName());
if (oldTable != null) {
+ oldTable.setDescription(newTable.getDescription());
+ oldTable.setRowCount(newTable.getRowCount());
+ oldTable.setRowsCheckedCount(newTable.getRowsCheckedCount());
for (Field newField : newTable.getFields()) {
- Field oldField = (Field) findByName(newField.getName(), oldTable.getFields());
+ Field oldField = oldTable.getFieldByName(newField.getName());
if (oldField != null) {
+ oldField.setDescription(newField.getDescription());
+ oldField.setFractionEmpty(newField.getFractionEmpty());
+ oldField.setUniqueCount(newField.getUniqueCount());
+ oldField.setFractionUnique(newField.getFractionUnique());
+ oldField.setNullable(newField.isNullable());
oldField.setValueCounts(newField.getValueCounts());
+ } else {
+ // Add the new field
+ oldTable.addField(newField);
}
}
+ } else {
+ // Add the new table
+ newTable.setDb(oldData);
+ oldData.addTable(newTable);
}
}
+ tableMappingPanel.setMapping(ObjectExchange.etl.getTableToTableMapping()); // Needed to render the model
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Invalid File Format", "Error", JOptionPane.ERROR_MESSAGE);
}
-
}
frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
- private MappableItem findByName(String name, List extends MappableItem> list) {
- for (MappableItem item : list)
- if (item.getName().toLowerCase().equals(name.toLowerCase()))
- return item;
- return null;
- }
-
private void doGenerateEtlWordDoc() {
String filename = chooseSavePath(FILE_FILTER_DOCX);
if (filename != null) {
diff --git a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ETL.java b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ETL.java
index bb76d223..55da8578 100644
--- a/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ETL.java
+++ b/rabbitinahat/src/main/java/org/ohdsi/rabbitInAHat/dataModel/ETL.java
@@ -211,9 +211,11 @@ public static ETL fromFile(String filename, FileFormat format) {
}
public void discardCounts() {
- for (Table table : sourceDb.getTables())
- for (Field field : table.getFields())
- field.setValueCounts(new String[0][]);
+ for (Table table : sourceDb.getTables()) {
+ for (Field field : table.getFields()) {
+ field.setValueCounts(new ValueCounts());
+ }
+ }
}
public boolean hasStemTable() {
diff --git a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_02-OCT-19.csv b/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_02-OCT-19.csv
index 5fd190db..b5503776 100644
--- a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_02-OCT-19.csv
+++ b/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_02-OCT-19.csv
@@ -159,9 +159,6 @@ cost,cost_type_concept_id,31968,Payer system (Primary payer),Type Concept,Cost T
cost,cost_type_concept_id,31969,Payer system (Secondary payer),Type Concept,Cost Type,Cost Type,S
cost,cost_type_concept_id,32504,Person (self) reported,Type Concept,Cost Type,Cost Type,S
cost,cost_type_concept_id,32505,Provider System,Type Concept,Cost Type,Cost Type,S
-cost,cost_type_concept_id,5032,"Amount charged to the patient or the payer by the provider, list price",Type Concept,Cost Type,Cost Type,
-cost,cost_type_concept_id,5031,Amount paid by the patient or reimbursed by the payer,Type Concept,Cost Type,Cost Type,
-cost,cost_type_concept_id,5033,Cost incurred by the provider,Type Concept,Cost Type,Cost Type,
death,death_type_concept_id,38003617,Death Certificate contributory cause,Type Concept,Condition Type,Death Type,S
death,death_type_concept_id,32512,Death Certificate contributory cause,Type Concept,Death Type,Death Type,S
death,death_type_concept_id,32496,Death Certificate contributory cause,Type Concept,Observation Type,Death Type,S
@@ -407,19 +404,6 @@ drug_exposure,route_concept_id,4233974,Urethral,Route,SNOMED,Qualifier Value,S
drug_exposure,route_concept_id,4170435,Urostomy route,Route,SNOMED,Qualifier Value,S
drug_exposure,route_concept_id,4057765,Vaginal,Route,SNOMED,Qualifier Value,S
drug_exposure,route_concept_id,35616190,Wound route,Route,SNOMED,Qualifier Value,S
-drug_exposure,route_concept_id,45956883,Body cavity use,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956882,Epidural,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,4228125,Haemodialysis,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,4011083,Inhalation,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956885,Intracerebroventricular,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,4186835,Intracervical,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956886,Intraepidermal,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956884,Intraventricular cardiac,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,4302956,Iontophoresis,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956876,Obsolete-Intraventricular,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,45956873,Obsolete-Oromucosal other,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,4227373,Obsolete-Oromucosal other,Route,SNOMED,Qualifier Value,
-drug_exposure,route_concept_id,40549429,Ocular,Route,SNOMED,Qualifier Value,
episode,episode_type_concept_id,32545,Episode algorithmically derived from EHR,Type Concept,Episode Type,Episode Type,S
episode,episode_type_concept_id,32548,Episode algorithmically derived from claim,Type Concept,Episode Type,Episode Type,S
episode,episode_type_concept_id,32544,Episode defined in EHR,Type Concept,Episode Type,Episode Type,S
@@ -441,6 +425,841 @@ measurement,operator_concept_id,4171754,<=,Meas Value Operator,SNOMED,Qualifier
measurement,operator_concept_id,4172703,=,Meas Value Operator,SNOMED,Qualifier Value,S
measurement,operator_concept_id,4172704,>,Meas Value Operator,SNOMED,Qualifier Value,S
measurement,operator_concept_id,4171755,>=,Meas Value Operator,SNOMED,Qualifier Value,S
+note,language_concept_id,4178690,Abazinian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178691,Abkhazian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180210,Achinese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181519,Acholi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183776,Adamawa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183775,Adamawa-Eastern language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767186,Adamorobe sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177301,Adangme language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178692,Adygei language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180043,Afar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771441,African sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180185,Afrikaans language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180041,Afro-Asiatic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181702,Agni language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182496,Ainu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40482419,Akan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771446,Al-Sayyid Bedouin sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182497,Albanian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767201,Albanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175768,Aleut language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767178,Algerian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183800,Algonkian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178567,Altai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178561,Altaic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182492,Alur language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183780,Ambo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767262,American Sign Language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182354,Amharic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182482,Andean equatorial language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183803,Apache language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181374,Arabic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483318,Aragonese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180045,Aramaic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182477,Aranda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180365,Arapaho language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182483,Araucanian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175751,Arawak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767263,Argentine sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180063,Armenian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767202,Armenian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175745,Artificial language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767177,Asian and Pacific sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182517,Assamese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182825,Assiniboin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180046,Assyrian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180370,Athapascan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175747,Australian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767242,Australian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767203,Austrian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175748,Avar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772997,Avestan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181391,Aymara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181383,Azerbaijani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180226,Bahnar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182942,Baining language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177308,Balante language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771449,Bali sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180211,Balinese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178569,Balkar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182498,Baltic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181546,Baluchi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767179,Bamako sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180359,Bambara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40482476,Bamun language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767260,Ban Khor sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183778,Banda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180053,Bari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183790,Bariba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175769,Barushaski language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182473,Bashkir language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175770,Basque language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183793,Bassa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175912,Batak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183794,Baule language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178558,Beja language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767204,Belgian-French sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180194,Belorussian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180229,Bemba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4052786,Bengali language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767243,Bengali sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183779,Benue-Congo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178554,Berber language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175906,Bhili language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180200,Bihari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181550,Bikol language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4233570,Bislama language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180366,Blackfoot language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182954,Bodo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767264,Bolivian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481563,Bosnian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175765,Brahui language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483830,Braille language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4235378,Brawa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772747,Brazilian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175773,Breton language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175755,Bribri language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767205,British sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182500,Brythonic Celtic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175929,Bubi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183664,Buginese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182512,Bulgarian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180230,Bulu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767180,Bura sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181727,Burmese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175736,Buryat language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181548,Bushman language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181395,Cabecar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177434,Caddo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182809,Caddoan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177437,Cakchiquel language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182353,Canaanitic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177463,Cantonese Chinese dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181392,Carib language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183804,Carrier language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181535,Catalan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767206,Catalan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182478,Caucasian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,37116382,Cayuga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182499,Celtic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4232100,Central Khmer language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175756,Central Sudanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181390,Central and South American Indian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767181,Chadian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182348,Chadic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181566,Chagga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183665,Cham language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180212,Chamorro language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181399,Chari-Nile language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178687,Chechen language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180373,Cherokee language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177314,Cheyenne language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767261,Chiangmai sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180377,Chickasaw language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181567,Chiga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180371,Chilcotin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767266,Chilean sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177459,Chimbu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183936,Chin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182819,Chinantec language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182948,Chinese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767244,Chinese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182807,Chipewyan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182486,Chiquito language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183808,Choctaw language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180231,Chokwe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177438,Chol language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182814,Chontal language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177466,Chuang language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180392,Chukchi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771044,Church Slavic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175738,Chuvash language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180048,Circassian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181375,Classical Arabic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767267,Colombian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180385,Comanche language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767182,Congolese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175731,Coptic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483377,Cornish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4232095,Corsican language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767268,Costa Rican sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180367,Cree language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177439,Creek language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481973,Croatian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772738,Croatian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177445,Crow language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4193700,Créole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767269,Cuba sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181396,Cuna language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178557,Cushitic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180197,Czech language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767207,Czech sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181386,Dagestan Caucasian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177298,Dagomba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180183,Danish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767208,Danish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175749,Dargin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40490381,Dari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180368,Delaware language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182493,Dinka language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175764,Djerma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767270,Dominican sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182494,Dravidian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175930,Duala language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182503,Dutch language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767209,Dutch sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181714,Dyola language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180360,Dyula language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181388,Eastern Caucasian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175758,Eastern Nilotic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181538,Eastern Slavic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181401,Eastern Sudanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183777,Eastern language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772748,Ecuadorian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183795,Edo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177295,Efik language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182352,Egyptian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767183,Egyptian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177476,Enets language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177460,Enga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180186,English language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181522,Eskimo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180060,Eskimo-Aleut language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178686,Esperanto,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183943,Estonian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767210,Estonian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767184,Ethiopian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181370,Ethiopic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767175,European sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178564,Even language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178563,Evenki language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177302,Ewe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183820,Fanakalo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181568,Fang language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181703,Fanti language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180184,Faroese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181556,Fijian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767212,Finland-Swedish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177471,Finnic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181730,Finnish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767211,Finnish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182960,Finno-Ugric language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180381,Flathead language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180187,Flemish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772739,Flemish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181704,Fon language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180369,Fox language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767185,Franco-American sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767271,French Canadian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182944,French Créole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180190,French language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767213,French sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180188,Frisian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183933,Fukienese dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481123,Fulah language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180363,Fulani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181523,Fur language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177304,Ga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4206233,Gaelic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182509,Galician Portuguese dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4261080,Galician language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180232,Ganda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182955,Garo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181565,Gbaya language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180050,Ge language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182485,Ge-Pano-Carib language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181371,Geez language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182481,Georgian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182504,German language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767216,German sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182501,Germanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772734,Ghanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183658,Gilaki language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180218,Gilbertese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181686,Gisu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181528,Goidelic Celtic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177309,Gola language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180056,Gondi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181706,Grebo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180189,Greek language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767218,Greek sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182484,Guarani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767272,Guatemalan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181397,Guaymi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767187,Guinean sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4059174,Gujarati language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177297,Gur language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182355,Gurage language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183791,Gurma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181718,Hagen language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177435,Haida language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,44802876,Haitian Creole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181723,Hakka dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175733,Harari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180208,Hatsa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178556,Hausa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767188,Hausa sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771450,Hawaii Pidgin sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181557,Hawaiian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180047,Hebrew language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181687,Hehe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181532,Hellenic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183781,Herero language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4052346,Hindi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180201,Hindustani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4076495,Hinko language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,46270898,Hmong language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183772,Ho language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181551,Hocano language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767273,Honduran sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767246,Hong Kong sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180386,Hopi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175911,Hottentot language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182950,Hsiang dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183806,Huastec language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183945,Hungarian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767219,Hungarian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4234319,Iban language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180357,Ibibio language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181707,Ibo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175776,Icelandic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772740,Icelandic sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45769393,Ido language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181708,Idoma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180213,Igorot language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181700,Ijo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180061,Independent language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772744,Indian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182516,Indic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181527,Indo-European language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180199,Indo-Iranian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183663,Indonesian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767247,Indonesian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182480,Ingush language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175746,Interlingua,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767274,Inuit sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4231509,Inuktitut language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4233020,Inupiaq language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180205,Iranian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180182,Irish Gaelic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767220,Irish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182811,Iroquoian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767234,Israeli sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182507,Italian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767221,Italian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181533,Italic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182940,Itelmen language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767275,Jamaican Country sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181524,Japanese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767248,Japanese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175913,Jarai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175914,Javanese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175752,Jivaro language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183937,Jonkha language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772743,Jordanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181389,Kabardian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181701,Kabre language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180042,Kabyle language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182956,Kachin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4230717,Kalaallisut language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181518,Kalenjin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182358,Kalmyk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180233,Kamba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182495,Kanarese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181721,Kanuri language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178570,Kara-Kalpak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175741,Karachai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181402,Karamojong language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183938,Karen language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182518,Kashmiri language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183091,Kashubian Polish dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183818,Kate language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182474,Kazakh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182815,Kekchi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767189,Kenyan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182813,Keresan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183817,Ket language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178568,Khakass language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175922,Khasi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183770,Khmer language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180207,Khoisan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181688,Kikuyu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182829,Kiowa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181379,Kirgiz language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181689,Kisii language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177310,Kissi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177461,Kituba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180380,Klamath language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181731,Komi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183782,Kongo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175907,Konkani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175771,Korean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767250,Korean sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175926,Korku language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182941,Koryak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180361,Kpelle language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181720,Krio language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177305,Kru language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481997,Kuanyama language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180057,Kui language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182475,Kumyk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175909,Kurdish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175766,Kurukh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4233169,Kutchi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771447,Kuwaiti sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183792,Kwa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177452,Kwakiutl language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181728,Lahu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181387,Lak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181520,Lango language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181735,Language commonly spoken in Europe,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182952,Lao language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767249,Laos sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182961,Lappish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181534,Latin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180064,Latvian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767222,Latvian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767239,Lebanese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182520,Lehnda punjabi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181398,Lenca language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177468,Lepcha language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175750,Lezgin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767190,Libyan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180382,Lillooet language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483319,Limburgan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181690,Lingala language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183939,Lisu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175772,Lithuanian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767223,Lithuanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181710,Loma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180349,Lomwe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181517,Lotuko language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181691,Lozi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175931,Luba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180052,Lugbara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183783,Luhya language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180350,Lunda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175760,Luo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183940,Lushei language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182505,Luxembourgian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183784,Lwea language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767215,Lyons sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183661,Maba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180209,Maban language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767251,Macao sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175905,Macedonian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181394,Macro-Chibchan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175757,Madi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180214,Madurese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45766737,Makaton vocabulary,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183785,Makonde language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175932,Makua language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180215,Malagasy language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772735,Malagasy sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183666,Malay language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180058,Malayalam language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183662,Malayo-Polynesian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771451,Malaysian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180202,Maldivian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181711,Malinke language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175735,Maltese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767224,Maltese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180375,Mam language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178565,Manchu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181724,Mandarin dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181709,Mande language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182487,Mangbetu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481069,Manx language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180223,Maori language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181552,Maranao language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182519,Marathi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181732,Mari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183819,Marind language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772749,Maritime sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183671,Marquesan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175916,Marshallese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175759,Masai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183807,Maya language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177436,Mayan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767276,Mayan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183815,Mayo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180378,Mazahua language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175910,Mazanderani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177441,Mazatec language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767193,Mbour sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181564,Mbum language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180351,Mbundu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182957,Meithei language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180221,Melanesian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177307,Mende language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,37116400,Menominee language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175933,Meru language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767277,Mexican sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182947,Miao language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182946,Miao-Yao language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177433,Micmac language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183670,Micronesian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767176,Middle Eastern sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183667,Minangkabau language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4209117,Mirpuri language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180051,Miskito language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177453,Mixe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183810,Mixtec language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182936,Mohave language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183805,Mohawk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182508,Moldavian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772741,Moldova sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175923,Mon language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181561,Mon-Khmer language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175934,Mongo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182357,Mongolian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767253,Mongolian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177472,Mordvin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767191,Moroccan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177299,Mossi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175918,Motu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767192,Mozambican sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175925,Munda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183773,Mundari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181525,Muong language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183941,Murmi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181385,Murngin language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182818,Muskogean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182830,Nahuatl language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177469,Nakhi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45773543,Namibian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181377,Nanai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183801,Naskapi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177313,Native North American language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181555,Nauruan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182808,Navajo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180352,Ndebele language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483759,Ndonga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181733,Nenets language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767254,Nepalese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175908,Nepali language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771452,New Zealand sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183942,Newari language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183811,Nez Perce language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181693,Ngala language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181734,Nganasan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767278,Nicaraguan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183771,Nicobarese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181563,Niger-Congo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767194,Nigerian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182488,Nilotic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182943,Nimboran language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180224,Niuean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181717,Nivkh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183786,Nkole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178571,Nogai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182935,Nootka language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181373,North Arabic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483852,North Ndebele language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175739,Northeastern Turkic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177464,Northern Fukienese dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175775,Northern Germanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40482032,Northern Sami language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178562,Northern Tungusic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175740,Northwestern Turkic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481150,Norwegian Bokmål language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481129,Norwegian Nynorsk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181530,Norwegian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771443,Norwegian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40482479,Nousu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175763,Nubian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175761,Nuer language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181725,Nung language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177306,Nupe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181694,Nyamwezi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180353,Nyanja language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181695,Nyoro language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181384,Occidental,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4229842,Occitan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,37116383,Odawa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,37116367,Oji-Cree language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181716,Ojibwa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177443,Okanagan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177446,Omaha language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771448,Omani sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180374,Oneida language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181542,Oriya language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182349,Oromo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177447,Osage language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180206,Ossetian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177473,Ostyak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183809,Oto-Manguean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182820,Otomi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182831,Paiute language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767255,Pakistan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180203,Pakistani punjabi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175915,Palau language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175924,Palaung language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180391,Paleo-Asiatic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767236,Palestinian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45769392,Pali language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183668,Pampangan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767279,Panamanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181553,Pangasinan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175754,Panoan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182832,Papago language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177462,Papiamento language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177458,Papuan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4052347,Pashtu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183802,Passamaquoddy language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180372,Pawnee language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181696,Pedi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767252,Penang sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180379,Penutian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183659,Persian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767237,Persian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767280,Peruvian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767245,Philippine sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183821,Pidgin English language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181719,Pidgin and Créole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183816,Pima language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45773544,Plains Indian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182945,Police Motu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182515,Polish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767225,Polish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180222,Polynesian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175917,Ponapean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181536,Portuguese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767226,Portuguese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182510,Provencal language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772750,Providencia sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767281,Puerto Rican sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4059175,Punjabi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182953,Puyi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767240,Qatari sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175753,Quechua language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182816,Quiche language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181543,Rajasthani language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183769,Rarotongan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183669,Rhade language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180192,Rhaeto-Romanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175727,Riffian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175902,Romance language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767227,Romanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4259983,Romansh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181544,Romany language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175935,Ruanda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181537,Rumanian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181697,Rundi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181539,Russian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771444,Russian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183930,Saharan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178559,Saho language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181381,Salar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182823,Salishan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767282,Salvadoran sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767256,Samoa sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181558,Samoan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177475,Samoyed language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181549,Sandawe language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180228,Sango language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183656,Sanskrit language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183774,Santali language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181400,Sara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183928,Saramacca language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180193,Sardinian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767238,Saudi Arabian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175927,Savara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181529,Scottish Gaelic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181562,Sedang language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772745,Selangor sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183946,Selkup language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177440,Seminole language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180044,Semitic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182812,Seneca language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177300,Senufo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483799,Serbian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180196,Serbo-Croatian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180364,Serer language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177467,Shan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178555,Shawia language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175762,Shilluk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175728,Shluh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175936,Shona language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180387,Shoshone language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177444,Shuswap language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181378,Sibo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178560,Sidamo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767195,Sierra Leone sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40483152,Sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771442,Sign language of the Americas,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180204,Sikh punjabi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181545,Sindhi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771453,Singapore sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183657,Sinhalese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181722,Sinitic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183932,Sino-Tibetan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182824,Siouan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180383,Sioux language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175903,Slavic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181540,Slovak language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767228,Slovakian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182513,Slovenian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767233,Slovenian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182350,Somali language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772736,Somali sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182959,Songhai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181712,Soninke language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180198,Sorbian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183787,Sotho language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767196,South African sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175734,South Arabic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481151,South Ndebele language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175742,Southeastern Turkic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178688,Southern Caucasian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182949,Southern Fukienese dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180054,Southern Nilotic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180195,Southern Slavic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4234468,Southern Sotho language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181376,Southern Tungusic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181382,Southwestern Turkic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182511,Spanish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767229,Spanish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767257,Sri Lankan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182491,Suk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175937,Sukuma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181554,Sundanese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181713,Susu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181698,Swahili language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183788,Swazi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175777,Swedish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45771445,Swedish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180191,Swiss French dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177478,Swiss German dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767214,Swiss-French sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767217,Swiss-German sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181541,Sylhety,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175732,Syriac language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182479,Tabasaran language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181393,Tacana language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180216,Tagalog language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175921,Tahitian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177465,Tai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767258,Taiwanese sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181547,Tajik language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183929,Taki-Taki language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175729,Tamazight language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181521,Tamil language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182827,Tanoan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767197,Tanzanian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180388,Tarahumara language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180384,Tarasco language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178572,Tatar language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183931,Teda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175767,Telugu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177311,Temne language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182489,Teso language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40486431,Tetum language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177448,Tewa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183934,Thai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767259,Thai sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183812,Thompson language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177470,Tibetan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772746,Tibetan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181726,Tibeto-Burman language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181372,Tigre language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182356,Tigrinya language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177296,Tiv language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182828,Tiwa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177449,Tlingit language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175919,Tolai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181559,Tongan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177291,Toro language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183814,Totonac language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183813,Towa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180219,Trukese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182822,Tsimshian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177292,Tsonga language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183789,Tswana language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180225,Tuamotu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175730,Tuareg language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180059,Tulu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177293,Tumbuka language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183935,Tung language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175737,Tungusic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767198,Tunisian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180049,Tupi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182490,Turkana language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178566,Turkic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175744,Turkish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767230,Turkish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182476,Turkmen language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,37116401,Tuscarora language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182359,Tuvinian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183796,Twi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182817,Tzeltal language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180376,Tzotzil language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183944,Udmurt language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767199,Ugandan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182962,Ugric language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178573,Uigur language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175904,Ukrainian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767231,Ukrainian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767241,United Arab Emirates sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181729,Uralic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4059788,Urdu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183797,Urhobo language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767265,Urubú-Kaapor sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767283,Uruguayan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177451,Ute language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177450,Uto-Aztecan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181560,Uvea language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175743,Uzbek language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183799,Vai language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772742,Valencian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180354,Venda language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767284,Venezuelan sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181526,Vietnamese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180217,Visayan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177474,Vogul language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45769391,Volapuk language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180227,Wa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180389,Wakashan language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481577,Walloon language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175774,Welsh language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180362,West Atlantic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178689,Western Caucasian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,40481130,Western Frisian language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182502,Western Germanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180055,Western Nilotic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182514,Western Slavic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180358,Western Sudanic language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182826,Winnebago language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177312,Wolof language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182347,World languages,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182951,Wu dialect,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180355,Xhosa language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175920,Yabim language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177442,Yakima language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4178685,Yakut language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177294,Yao language - Bantu,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177477,Yao language - Sino-Tibet,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180220,Yapese language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180356,Yaunde language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182958,Yi language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181531,Yiddish language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767235,Yiddish sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4183798,Yoruba language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767232,Yugoslavian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177457,Yukagir language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182937,Yuma language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4180390,Yuman language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45767200,Zambian sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4175928,Zande language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182821,Zapotec language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,45772737,Zimbabwe sign language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177454,Zoque language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4182938,Zoquean language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4181699,Zulu language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177456,Zuni language,Observation,SNOMED,Qualifier Value,S
+note,language_concept_id,4177455,Zunian language,Observation,SNOMED,Qualifier Value,S
note,note_type_concept_id,44814638,Admission note,Type Concept,Note Type,Note Type,S
note,note_type_concept_id,44814643,Ancillary report,Type Concept,Note Type,Note Type,S
note,note_type_concept_id,44814637,Discharge summary,Type Concept,Note Type,Note Type,S
@@ -649,7 +1468,6 @@ person,race_concept_id,4264197,Bruneians,Race,SNOMED,Social Context,
person,race_concept_id,45479793,Bulgarian,Race,Read,Read,
person,race_concept_id,4167621,Bulgarian,Race,SNOMED,Social Context,
person,race_concept_id,1397910,Bulgarian Roma,Race,Read,Read,
-person,race_concept_id,37394642,Bulgarian Roma,Race,SNOMED,Social Context,
person,race_concept_id,36717066,Bulgarian Roma,Race,SNOMED,Social Context,
person,race_concept_id,4221071,Buriats,Race,SNOMED,Social Context,
person,race_concept_id,4309789,Bushmen,Race,SNOMED,Social Context,
@@ -676,10 +1494,8 @@ person,race_concept_id,4012612,Coushatta,Race,SNOMED,Social Context,
person,race_concept_id,4182121,Cuna,Race,SNOMED,Social Context,
person,race_concept_id,45473117,Czech,Race,Read,Read,
person,race_concept_id,4102622,Czech,Race,SNOMED,Social Context,
-person,race_concept_id,44803061,Czech,Race,SNOMED,Social Context,
person,race_concept_id,1397642,Czech Roma,Race,Read,Read,
person,race_concept_id,36713937,Czech Roma,Race,SNOMED,Social Context,
-person,race_concept_id,37394638,Czech Roma,Race,SNOMED,Social Context,
person,race_concept_id,4031845,Danes,Race,SNOMED,Social Context,
person,race_concept_id,4185580,Dieguenos,Race,SNOMED,Social Context,
person,race_concept_id,4317261,Dutch,Race,SNOMED,Social Context,
@@ -735,14 +1551,13 @@ person,race_concept_id,4297991,Huichol,Race,SNOMED,Social Context,
person,race_concept_id,4273384,Hungarian,Race,SNOMED,Social Context,
person,race_concept_id,1398020,Hungarian Roma,Race,Read,Read,
person,race_concept_id,36713940,Hungarian Roma,Race,SNOMED,Social Context,
-person,race_concept_id,37394639,Hungarian Roma,Race,SNOMED,Social Context,
person,race_concept_id,4098866,Hututu,Race,SNOMED,Social Context,
person,race_concept_id,45767091,Iban,Race,SNOMED,Social Context,
person,race_concept_id,4245024,Ibo,Race,SNOMED,Social Context,
person,race_concept_id,4248713,Icelanders,Race,SNOMED,Social Context,
person,race_concept_id,4210186,Inca,Race,SNOMED,Social Context,
-person,race_concept_id,45483083,Indian,Race,Read,Read,
person,race_concept_id,45446239,Indian,Race,Read,Read,
+person,race_concept_id,45483083,Indian,Race,Read,Read,
person,race_concept_id,4091016,Indian,Race,SNOMED,Social Context,
person,race_concept_id,4185920,Indian,Race,SNOMED,Social Context,
person,race_concept_id,4090392,Indian sub-continent,Race,SNOMED,Social Context,
@@ -815,7 +1630,6 @@ person,race_concept_id,4337671,Nez Percé,Race,SNOMED,Social Context,
person,race_concept_id,4229603,Nigerians,Race,SNOMED,Social Context,
person,race_concept_id,45509567,Niuean,Race,Read,Read,
person,race_concept_id,4085489,Niuean,Race,SNOMED,Social Context,
-person,race_concept_id,9178,Non-white,Race,Race,Race,
person,race_concept_id,4077346,North African Arab,Race,SNOMED,Social Context,
person,race_concept_id,45449500,North African Arab (NMO),Race,Read,Read,
person,race_concept_id,4063377,Norwegians,Race,SNOMED,Social Context,
@@ -842,7 +1656,6 @@ person,race_concept_id,45506206,Other European in New Zealand,Race,Read,Read,
person,race_concept_id,4085488,Other European in New Zealand,Race,SNOMED,Social Context,
person,race_concept_id,45442864,Other New Zealand ethnic group,Race,Read,Read,
person,race_concept_id,45502956,Other Pacific ethnic group,Race,Read,Read,
-person,race_concept_id,8522,Other Race,Race,Race,Race,
person,race_concept_id,45462997,Other black ethnic group,Race,Read,Read,
person,race_concept_id,4202555,Other black ethnic group,Race,SNOMED,Social Context,
person,race_concept_id,45449501,Other ethnic NEC (NMO),Race,Read,Read,
@@ -872,7 +1685,6 @@ person,race_concept_id,4073535,Papuans,Race,SNOMED,Social Context,
person,race_concept_id,4217467,Pehuenches,Race,SNOMED,Social Context,
person,race_concept_id,4102599,Poles,Race,SNOMED,Social Context,
person,race_concept_id,1397643,Polish Roma,Race,Read,Read,
-person,race_concept_id,37394640,Polish Roma,Race,SNOMED,Social Context,
person,race_concept_id,36713941,Polish Roma,Race,SNOMED,Social Context,
person,race_concept_id,4053167,Polynesians,Race,SNOMED,Social Context,
person,race_concept_id,45469813,Portuguese,Race,Read,Read,
@@ -905,11 +1717,9 @@ person,race_concept_id,4051279,Race: West indian,Race,SNOMED,Clinical Finding,
person,race_concept_id,4216292,Racial group,Race,SNOMED,Social Context,
person,race_concept_id,36717683,Roma,Race,SNOMED,Social Context,
person,race_concept_id,1397856,Roma ethnic group,Race,Read,Read,
-person,race_concept_id,37398747,Roma ethnic group,Race,SNOMED,Social Context,
person,race_concept_id,45439572,Romanian,Race,Read,Read,
person,race_concept_id,40483304,Romanian,Race,SNOMED,Social Context,
person,race_concept_id,1397881,Romanian Roma,Race,Read,Read,
-person,race_concept_id,37394641,Romanian Roma,Race,SNOMED,Social Context,
person,race_concept_id,36713938,Romanian Roma,Race,SNOMED,Social Context,
person,race_concept_id,4309511,Russians,Race,SNOMED,Social Context,
person,race_concept_id,4077735,Saipanese,Race,SNOMED,Social Context,
@@ -924,11 +1734,9 @@ person,race_concept_id,4219475,Shona,Race,SNOMED,Social Context,
person,race_concept_id,4317523,Shoshone,Race,SNOMED,Social Context,
person,race_concept_id,4103243,Siamese,Race,SNOMED,Social Context,
person,race_concept_id,45483084,Slovak,Race,Read,Read,
-person,race_concept_id,44813053,Slovak,Race,SNOMED,Social Context,
person,race_concept_id,4267217,Slovak,Race,SNOMED,Social Context,
person,race_concept_id,1397882,Slovak Roma,Race,Read,Read,
person,race_concept_id,36713939,Slovak Roma,Race,SNOMED,Social Context,
-person,race_concept_id,37394635,Slovak Roma,Race,SNOMED,Social Context,
person,race_concept_id,4167520,Solomon Islanders,Race,SNOMED,Social Context,
person,race_concept_id,4263713,Somalis,Race,SNOMED,Social Context,
person,race_concept_id,4030302,South Asian AND/OR Australian aborigine,Race,SNOMED,Social Context,
@@ -964,7 +1772,6 @@ person,race_concept_id,4195322,Turks,Race,SNOMED,Social Context,
person,race_concept_id,4030735,Tutsi,Race,SNOMED,Social Context,
person,race_concept_id,4296606,Ugandans,Race,SNOMED,Social Context,
person,race_concept_id,37116384,Ukrainian,Race,SNOMED,Social Context,
-person,race_concept_id,8552,Unknown,Race,Race,Race,
person,race_concept_id,4218674,Unknown racial group,Race,SNOMED,Social Context,
person,race_concept_id,4148384,Utes,Race,SNOMED,Social Context,
person,race_concept_id,4269914,Venezuelan Indians,Race,SNOMED,Social Context,
@@ -1361,10 +2168,8 @@ visit_occurrence,visit_concept_id,32155,Ambulatory Surgery Center@Non-Payment/Ze
visit_occurrence,visit_concept_id,32161,Ambulatory Surgery Center@Replacement of Prior Claim,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,32162,Ambulatory Surgery Center@Void/ Cancel of Prior claim (a),Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,38004679,Ambulatory Surgical Center,Visit,Medicare Specialty,Visit,
-visit_occurrence,visit_concept_id,44777700,Antenatal clinic,Visit,HES Specialty,Visit,
visit_occurrence,visit_concept_id,32592,Born inside this hospital,Visit,UB04 Point of Origin,UB04 Point of Origin,
visit_occurrence,visit_concept_id,32593,Born outside this hospital,Visit,UB04 Point of Origin,UB04 Point of Origin,
-visit_occurrence,visit_concept_id,38004313,Christian Science Nursing Facility,Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32194,Clinic or physicians office,Visit,UB04 Point of Origin,UB04 Point of Origin,
visit_occurrence,visit_concept_id,32090,Clinic- Hosp Based or Indep Renal Dialysis Center@Admit through Discharge Claim,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,32097,Clinic- Hosp Based or Indep Renal Dialysis Center@CWF Initiated Adjustment Claim,Visit,UB04 Typ bill,Visit,
@@ -1601,7 +2406,6 @@ visit_occurrence,visit_concept_id,32346,Hospital-Swing Beds@Interim-Cont claim (
visit_occurrence,visit_concept_id,32345,Hospital-Swing Beds@Interim-first claim,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,32347,Hospital-Swing Beds@Interim-last claim (b),Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,32348,Hospital-Swing Beds@Replacement of Prior Claim,Visit,UB04 Typ bill,Visit,
-visit_occurrence,visit_concept_id,38004292,"Hospitals, Christian Science Sanitorium",Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32199,Information not available,Visit,UB04 Point of Origin,UB04 Point of Origin,
visit_occurrence,visit_concept_id,581382,Inpatient Intensive Care Facility,Visit,CMS Place of Service,Visit,
visit_occurrence,visit_concept_id,8970,Inpatient Long-term Care,Visit,CMS Place of Service,Visit,
@@ -1636,13 +2440,11 @@ visit_occurrence,visit_concept_id,32078,Intermediate Care - Level 2 (Including M
visit_occurrence,visit_concept_id,38004517,Intermediate Care Nursing Facility,Visit,Medicare Specialty,Visit,
visit_occurrence,visit_concept_id,38004304,Intermediate Mental Care Facility,Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32604,Internal Transfer per Legal Guidelines,Visit,UB04 Pt dis status,UB04 Pt dis status,
-visit_occurrence,visit_concept_id,44777715,Joint consultant clinic,Visit,HES Specialty,Visit,
visit_occurrence,visit_concept_id,38004355,Land Transport Ambulance,Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32216,Left against medical advice or discontinued care.,Visit,UB04 Pt dis status,UB04 Pt dis status,
visit_occurrence,visit_concept_id,32270,Licensed Freestanding Emergency Medical Facility,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,32135,Licensed Freestanding Emergency Medical Facility@Admit through Discharge Claim,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,38004273,Medicare Defined Swing Bed Hospital Unit,Visit,NUCC,Visit,
-visit_occurrence,visit_concept_id,38004289,Military Community Health Hospital,Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32595,Neonate discharged to another hospital for neonatal aftercare,Visit,UB04 Pt dis status,UB04 Pt dis status,
visit_occurrence,visit_concept_id,32587,Normal Delivery,Visit,UB04 Point of Origin,UB04 Point of Origin,
visit_occurrence,visit_concept_id,32591,Not Available,Visit,UB04 Point of Origin,UB04 Point of Origin,
@@ -1659,7 +2461,6 @@ visit_occurrence,visit_concept_id,8677,Outpatient NEC,Visit,CMS Place of Service
visit_occurrence,visit_concept_id,32257,Outpatient Skilled Nursing Facility Visit,Visit,UB04 Typ bill,Visit,
visit_occurrence,visit_concept_id,8562,Pharmacy,Visit,CMS Place of Service,Visit,
visit_occurrence,visit_concept_id,38004520,Pharmacy,Visit,Medicare Specialty,Visit,
-visit_occurrence,visit_concept_id,44777701,Postnatal clinic,Visit,HES Specialty,Visit,
visit_occurrence,visit_concept_id,32588,Premature Delivery,Visit,UB04 Point of Origin,UB04 Point of Origin,
visit_occurrence,visit_concept_id,38004271,Psychiatric Hospital Unit,Visit,NUCC,Visit,
visit_occurrence,visit_concept_id,32586,Readmission to Same Home Health Agency,Visit,UB04 Point of Origin,UB04 Point of Origin,
diff --git a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_MAR-18.csv b/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_MAR-18.csv
deleted file mode 100644
index 6911a13a..00000000
--- a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/CDMConceptIDHints_v5.0_MAR-18.csv
+++ /dev/null
@@ -1,1441 +0,0 @@
-omop_cdm_table,omop_cdm_field,concept_id,concept_name,standard_concept
-condition_occurrence,condition_type_concept_id,45756852,Carrier claim detail - 10th position,S
-condition_occurrence,condition_type_concept_id,45756853,Carrier claim detail - 11th position,S
-condition_occurrence,condition_type_concept_id,45756854,Carrier claim detail - 12th position,S
-condition_occurrence,condition_type_concept_id,45756855,Carrier claim detail - 13th position,S
-condition_occurrence,condition_type_concept_id,45756843,Carrier claim detail - 1st position,S
-condition_occurrence,condition_type_concept_id,45756844,Carrier claim detail - 2nd position,S
-condition_occurrence,condition_type_concept_id,45756845,Carrier claim detail - 3rd position,S
-condition_occurrence,condition_type_concept_id,45756846,Carrier claim detail - 4th position,S
-condition_occurrence,condition_type_concept_id,45756847,Carrier claim detail - 5th position,S
-condition_occurrence,condition_type_concept_id,45756848,Carrier claim detail - 6th position,S
-condition_occurrence,condition_type_concept_id,45756849,Carrier claim detail - 7th position,S
-condition_occurrence,condition_type_concept_id,45756850,Carrier claim detail - 8th position,S
-condition_occurrence,condition_type_concept_id,45756851,Carrier claim detail - 9th position,S
-condition_occurrence,condition_type_concept_id,45756835,Carrier claim header - 1st position,S
-condition_occurrence,condition_type_concept_id,45756836,Carrier claim header - 2nd position,S
-condition_occurrence,condition_type_concept_id,45756837,Carrier claim header - 3rd position,S
-condition_occurrence,condition_type_concept_id,45756838,Carrier claim header - 4th position,S
-condition_occurrence,condition_type_concept_id,45756839,Carrier claim header - 5th position,S
-condition_occurrence,condition_type_concept_id,45756840,Carrier claim header - 6th position,S
-condition_occurrence,condition_type_concept_id,45756841,Carrier claim header - 7th position,S
-condition_occurrence,condition_type_concept_id,45756842,Carrier claim header - 8th position,S
-condition_occurrence,condition_type_concept_id,38000246,Condition era - 0 days persistence window,S
-condition_occurrence,condition_type_concept_id,38000247,Condition era - 30 days persistence window,S
-condition_occurrence,condition_type_concept_id,5086,Condition tested for by diagnostic procedure,S
-condition_occurrence,condition_type_concept_id,42894222,EHR Chief Complaint,S
-condition_occurrence,condition_type_concept_id,45754805,EHR Episode Entry,S
-condition_occurrence,condition_type_concept_id,32019,EHR billing diagnosis,S
-condition_occurrence,condition_type_concept_id,32020,EHR encounter diagnosis,S
-condition_occurrence,condition_type_concept_id,38000245,EHR problem list entry,S
-condition_occurrence,condition_type_concept_id,44786628,First Position Condition,S
-condition_occurrence,condition_type_concept_id,38000193,Inpatient detail - 10th position,S
-condition_occurrence,condition_type_concept_id,38000194,Inpatient detail - 11th position,S
-condition_occurrence,condition_type_concept_id,38000195,Inpatient detail - 12th position,S
-condition_occurrence,condition_type_concept_id,38000196,Inpatient detail - 13th position,S
-condition_occurrence,condition_type_concept_id,38000197,Inpatient detail - 14th position,S
-condition_occurrence,condition_type_concept_id,38000198,Inpatient detail - 15th position,S
-condition_occurrence,condition_type_concept_id,44818709,Inpatient detail - 16th position,S
-condition_occurrence,condition_type_concept_id,44818710,Inpatient detail - 17th position,S
-condition_occurrence,condition_type_concept_id,44818711,Inpatient detail - 18th position,S
-condition_occurrence,condition_type_concept_id,44818712,Inpatient detail - 19th position,S
-condition_occurrence,condition_type_concept_id,38000184,Inpatient detail - 1st position,S
-condition_occurrence,condition_type_concept_id,44818713,Inpatient detail - 20th position,S
-condition_occurrence,condition_type_concept_id,38000185,Inpatient detail - 2nd position,S
-condition_occurrence,condition_type_concept_id,38000186,Inpatient detail - 3rd position,S
-condition_occurrence,condition_type_concept_id,38000187,Inpatient detail - 4th position,S
-condition_occurrence,condition_type_concept_id,38000188,Inpatient detail - 5th position,S
-condition_occurrence,condition_type_concept_id,38000189,Inpatient detail - 6th position,S
-condition_occurrence,condition_type_concept_id,38000190,Inpatient detail - 7th position,S
-condition_occurrence,condition_type_concept_id,38000191,Inpatient detail - 8th position,S
-condition_occurrence,condition_type_concept_id,38000192,Inpatient detail - 9th position,S
-condition_occurrence,condition_type_concept_id,38000183,Inpatient detail - primary,S
-condition_occurrence,condition_type_concept_id,38000209,Inpatient header - 10th position,S
-condition_occurrence,condition_type_concept_id,38000210,Inpatient header - 11th position,S
-condition_occurrence,condition_type_concept_id,38000211,Inpatient header - 12th position,S
-condition_occurrence,condition_type_concept_id,38000212,Inpatient header - 13th position,S
-condition_occurrence,condition_type_concept_id,38000213,Inpatient header - 14th position,S
-condition_occurrence,condition_type_concept_id,38000214,Inpatient header - 15th position,S
-condition_occurrence,condition_type_concept_id,38000200,Inpatient header - 1st position,S
-condition_occurrence,condition_type_concept_id,38000201,Inpatient header - 2nd position,S
-condition_occurrence,condition_type_concept_id,38000202,Inpatient header - 3rd position,S
-condition_occurrence,condition_type_concept_id,38000203,Inpatient header - 4th position,S
-condition_occurrence,condition_type_concept_id,38000204,Inpatient header - 5th position,S
-condition_occurrence,condition_type_concept_id,38000205,Inpatient header - 6th position,S
-condition_occurrence,condition_type_concept_id,38000206,Inpatient header - 7th position,S
-condition_occurrence,condition_type_concept_id,38000207,Inpatient header - 8th position,S
-condition_occurrence,condition_type_concept_id,38000208,Inpatient header - 9th position,S
-condition_occurrence,condition_type_concept_id,38000199,Inpatient header - primary,S
-condition_occurrence,condition_type_concept_id,43542353,Observation recorded from EHR,S
-condition_occurrence,condition_type_concept_id,38000224,Outpatient detail - 10th position,S
-condition_occurrence,condition_type_concept_id,38000225,Outpatient detail - 11th position,S
-condition_occurrence,condition_type_concept_id,38000226,Outpatient detail - 12th position,S
-condition_occurrence,condition_type_concept_id,38000227,Outpatient detail - 13th position,S
-condition_occurrence,condition_type_concept_id,38000228,Outpatient detail - 14th position,S
-condition_occurrence,condition_type_concept_id,38000229,Outpatient detail - 15th position,S
-condition_occurrence,condition_type_concept_id,38000215,Outpatient detail - 1st position,S
-condition_occurrence,condition_type_concept_id,38000216,Outpatient detail - 2nd position,S
-condition_occurrence,condition_type_concept_id,38000217,Outpatient detail - 3rd position,S
-condition_occurrence,condition_type_concept_id,38000218,Outpatient detail - 4th position,S
-condition_occurrence,condition_type_concept_id,38000219,Outpatient detail - 5th position,S
-condition_occurrence,condition_type_concept_id,38000220,Outpatient detail - 6th position,S
-condition_occurrence,condition_type_concept_id,38000221,Outpatient detail - 7th position,S
-condition_occurrence,condition_type_concept_id,38000222,Outpatient detail - 8th position,S
-condition_occurrence,condition_type_concept_id,38000223,Outpatient detail - 9th position,S
-condition_occurrence,condition_type_concept_id,38000239,Outpatient header - 10th position,S
-condition_occurrence,condition_type_concept_id,38000240,Outpatient header - 11th position,S
-condition_occurrence,condition_type_concept_id,38000241,Outpatient header - 12th position,S
-condition_occurrence,condition_type_concept_id,38000242,Outpatient header - 13th position,S
-condition_occurrence,condition_type_concept_id,38000243,Outpatient header - 14th position,S
-condition_occurrence,condition_type_concept_id,38000244,Outpatient header - 15th position,S
-condition_occurrence,condition_type_concept_id,38000230,Outpatient header - 1st position,S
-condition_occurrence,condition_type_concept_id,38000231,Outpatient header - 2nd position,S
-condition_occurrence,condition_type_concept_id,38000232,Outpatient header - 3rd position,S
-condition_occurrence,condition_type_concept_id,38000233,Outpatient header - 4th position,S
-condition_occurrence,condition_type_concept_id,38000234,Outpatient header - 5th position,S
-condition_occurrence,condition_type_concept_id,38000235,Outpatient header - 6th position,S
-condition_occurrence,condition_type_concept_id,38000236,Outpatient header - 7th position,S
-condition_occurrence,condition_type_concept_id,38000237,Outpatient header - 8th position,S
-condition_occurrence,condition_type_concept_id,38000238,Outpatient header - 9th position,S
-condition_occurrence,condition_type_concept_id,45905770,Patient Self-Reported Condition,S
-condition_occurrence,condition_type_concept_id,44786627,Primary Condition,S
-condition_occurrence,condition_type_concept_id,42898140,Referral record,S
-condition_occurrence,condition_type_concept_id,44786629,Secondary Condition,S
-cost,cost_concept_id,32017,Accumulated Deductible,S
-cost,cost_concept_id,32000,Allowed,S
-cost,cost_concept_id,31978,Allowed,S
-cost,cost_concept_id,31979,Allowed (calculated),S
-cost,cost_concept_id,32001,Allowed (calculated),S
-cost,cost_concept_id,31984,Average Wholesale,S
-cost,cost_concept_id,32006,Average Wholesale,S
-cost,cost_concept_id,32009,Balance bill,S
-cost,cost_concept_id,31987,Balance bill,S
-cost,cost_concept_id,31993,Bundled payment,S
-cost,cost_concept_id,32015,Bundled payment,S
-cost,cost_concept_id,32011,Capitation,S
-cost,cost_concept_id,31989,Capitation,S
-cost,cost_concept_id,32014,Care Coordination Fee,S
-cost,cost_concept_id,31992,Care Coordination Fee,S
-cost,cost_concept_id,31973,Charged,S
-cost,cost_concept_id,31995,Charged,S
-cost,cost_concept_id,31997,Coinsurance,S
-cost,cost_concept_id,31975,Coinsurance,S
-cost,cost_concept_id,31996,Copayment,S
-cost,cost_concept_id,31974,Copayment,S
-cost,cost_concept_id,31985,Cost,S
-cost,cost_concept_id,32007,Cost,S
-cost,cost_concept_id,31976,Deductible,S
-cost,cost_concept_id,31998,Deductible,S
-cost,cost_concept_id,31982,Fee,S
-cost,cost_concept_id,32004,Fee,S
-cost,cost_concept_id,32010,Incentive,S
-cost,cost_concept_id,31988,Incentive,S
-cost,cost_concept_id,32012,Lifetime limit,S
-cost,cost_concept_id,31990,Lifetime limit,S
-cost,cost_concept_id,32013,Net costs,S
-cost,cost_concept_id,31991,Net costs,S
-cost,cost_concept_id,32003,Out of pocket,S
-cost,cost_concept_id,31981,Out of pocket,S
-cost,cost_concept_id,31980,Paid,S
-cost,cost_concept_id,32002,Paid,S
-cost,cost_concept_id,31983,Pharmacy ingredient,S
-cost,cost_concept_id,32005,Pharmacy ingredient,S
-cost,cost_concept_id,31972,"Premium, employer contribution",S
-cost,cost_concept_id,31971,"Premium, member contribution",S
-cost,cost_concept_id,31994,Rebate payment,S
-cost,cost_concept_id,32016,Rebate payment,S
-cost,cost_concept_id,31977,Recovered,S
-cost,cost_concept_id,31999,Recovered,S
-cost,cost_concept_id,31986,"Usual, customary and reasonable",S
-cost,cost_concept_id,32008,"Usual, customary and reasonable",S
-cost,cost_type_concept_id,5032,"Amount charged to the patient or the payer by the provider, list price",
-cost,cost_type_concept_id,5031,Amount paid by the patient or reimbursed by the payer,
-cost,cost_type_concept_id,5033,Cost incurred by the provider,
-death,death_type_concept_id,38003617,Death Certificate contributory cause,S
-death,death_type_concept_id,38003570,Death Certificate immediate cause,S
-death,death_type_concept_id,38003618,Death Certificate underlying cause,S
-death,death_type_concept_id,255,EHR Record contributory cause,S
-death,death_type_concept_id,254,EHR Record immediate cause,S
-death,death_type_concept_id,256,EHR Record underlying cause,S
-death,death_type_concept_id,44818516,"EHR discharge status ""Expired""",S
-death,death_type_concept_id,38003569,"EHR record patient status ""Deceased""",S
-death,death_type_concept_id,38003568,Medical claim DRG code indicating death,S
-death,death_type_concept_id,38003567,Medical claim diagnostic code indicating death,S
-death,death_type_concept_id,38003566,"Medical claim discharge status ""Died""",S
-death,death_type_concept_id,242,Other government reported or identified death,S
-death,death_type_concept_id,38003565,"Payer enrollment status ""Deceased""",S
-death,death_type_concept_id,261,US Social Security Death Master File record,S
-device_exposure,device_type_concept_id,44818707,EHR Detail,S
-device_exposure,device_type_concept_id,44818705,Inferred from procedure claim,S
-device_exposure,device_type_concept_id,44818706,Patient reported device,S
-drug_exposure,drug_type_concept_id,581452,Dispensed in Outpatient office,S
-drug_exposure,drug_type_concept_id,38000181,Drug era - 0 days persistence window,S
-drug_exposure,drug_type_concept_id,38000182,Drug era - 30 days persistence window,S
-drug_exposure,drug_type_concept_id,38000180,Inpatient administration,S
-drug_exposure,drug_type_concept_id,38000178,Medication list entry,S
-drug_exposure,drug_type_concept_id,44787730,Patient Self-Reported Medication,S
-drug_exposure,drug_type_concept_id,38000179,Physician administered drug (identified as procedure),S
-drug_exposure,drug_type_concept_id,43542358,Physician administered drug (identified from EHR observation),S
-drug_exposure,drug_type_concept_id,581373,Physician administered drug (identified from EHR order),S
-drug_exposure,drug_type_concept_id,43542356,Physician administered drug (identified from EHR problem list),S
-drug_exposure,drug_type_concept_id,43542357,Physician administered drug (identified from referral record),S
-drug_exposure,drug_type_concept_id,38000175,Prescription dispensed in pharmacy,S
-drug_exposure,drug_type_concept_id,38000176,Prescription dispensed through mail order,S
-drug_exposure,drug_type_concept_id,38000177,Prescription written,S
-drug_exposure,drug_type_concept_id,44777970,Randomized Drug,S
-drug_exposure,route_concept_id,44783786,Arteriovenous fistula route,S
-drug_exposure,route_concept_id,762840,Arteriovenous graft route,S
-drug_exposure,route_concept_id,4023156,Auricular,S
-drug_exposure,route_concept_id,4222254,Body cavity use,S
-drug_exposure,route_concept_id,4181897,Buccal,S
-drug_exposure,route_concept_id,4220455,Caudal route,S
-drug_exposure,route_concept_id,4168047,Colostomy route,S
-drug_exposure,route_concept_id,40486444,Conjunctival route,S
-drug_exposure,route_concept_id,40490507,Cutaneous route,S
-drug_exposure,route_concept_id,4163765,Dental,S
-drug_exposure,route_concept_id,40487501,Digestive tract route,S
-drug_exposure,route_concept_id,4186831,Endocervical,S
-drug_exposure,route_concept_id,4157756,Endosinusial,S
-drug_exposure,route_concept_id,4186832,Endotracheopulmonary,S
-drug_exposure,route_concept_id,4167540,Enteral route,S
-drug_exposure,route_concept_id,4225555,Epidural,S
-drug_exposure,route_concept_id,45956880,Epilesional,S
-drug_exposure,route_concept_id,4172191,Esophagostomy route,S
-drug_exposure,route_concept_id,4186833,Extraamniotic,S
-drug_exposure,route_concept_id,37018288,Extracorporeal route,S
-drug_exposure,route_concept_id,4304277,Fistula route,S
-drug_exposure,route_concept_id,4168665,Gastro-intestinal stoma route,S
-drug_exposure,route_concept_id,4186834,Gastroenteral,S
-drug_exposure,route_concept_id,4132254,Gastrostomy route,S
-drug_exposure,route_concept_id,4156704,Gingival,S
-drug_exposure,route_concept_id,44801748,Haemodiafiltration route,S
-drug_exposure,route_concept_id,45956871,Haemodialysis,S
-drug_exposure,route_concept_id,45956877,Haemofiltration,S
-drug_exposure,route_concept_id,4305679,Ileostomy route,S
-drug_exposure,route_concept_id,37397638,Infiltration route,S
-drug_exposure,route_concept_id,45956874,Inhalation,S
-drug_exposure,route_concept_id,4327128,Interstitial route,S
-drug_exposure,route_concept_id,37103746,Intestinal use,S
-drug_exposure,route_concept_id,4304882,Intraabdominal route,S
-drug_exposure,route_concept_id,4163767,Intraamniotic,S
-drug_exposure,route_concept_id,4240824,Intraarterial,S
-drug_exposure,route_concept_id,4006860,Intraarticular,S
-drug_exposure,route_concept_id,4223965,Intrabiliary route,S
-drug_exposure,route_concept_id,4303263,Intrabronchial route,S
-drug_exposure,route_concept_id,4163768,Intrabursal,S
-drug_exposure,route_concept_id,4303409,Intracameral,S
-drug_exposure,route_concept_id,4156705,Intracardiac,S
-drug_exposure,route_concept_id,4303676,Intracartilaginous route,S
-drug_exposure,route_concept_id,4157757,Intracavernous,S
-drug_exposure,route_concept_id,40488317,Intracerebral route,S
-drug_exposure,route_concept_id,4224886,Intracerebroventricular,S
-drug_exposure,route_concept_id,45956872,Intracervical,S
-drug_exposure,route_concept_id,4305993,Intracisternal route,S
-drug_exposure,route_concept_id,40489990,Intracolonic route,S
-drug_exposure,route_concept_id,4305690,Intracorneal route,S
-drug_exposure,route_concept_id,4303667,Intracoronal route,S
-drug_exposure,route_concept_id,4186836,Intracoronary,S
-drug_exposure,route_concept_id,40492302,Intracorpus cavernosum route,S
-drug_exposure,route_concept_id,4171079,Intracranial route,S
-drug_exposure,route_concept_id,4156706,Intradermal,S
-drug_exposure,route_concept_id,4163769,Intradiscal,S
-drug_exposure,route_concept_id,4170083,Intraductal route,S
-drug_exposure,route_concept_id,4302354,Intraduodenal route,S
-drug_exposure,route_concept_id,40492288,Intradural route,S
-drug_exposure,route_concept_id,40487473,Intraepicardial route,S
-drug_exposure,route_concept_id,40487983,Intraepidermal,S
-drug_exposure,route_concept_id,40492284,Intraesophageal route,S
-drug_exposure,route_concept_id,40492301,Intragastric route,S
-drug_exposure,route_concept_id,40492286,Intragingival route,S
-drug_exposure,route_concept_id,40493258,Intrahepatic route,S
-drug_exposure,route_concept_id,40490837,Intraileal route,S
-drug_exposure,route_concept_id,40489989,Intrajejunal route,S
-drug_exposure,route_concept_id,4157758,Intralesional,S
-drug_exposure,route_concept_id,40493227,Intralingual route,S
-drug_exposure,route_concept_id,4292410,Intraluminal route,S
-drug_exposure,route_concept_id,4157759,Intralymphatic,S
-drug_exposure,route_concept_id,40491321,Intramammary route,S
-drug_exposure,route_concept_id,4246511,Intramedullary route,S
-drug_exposure,route_concept_id,40492300,Intrameningeal route,S
-drug_exposure,route_concept_id,46272926,Intramural route,S
-drug_exposure,route_concept_id,4302612,Intramuscular,S
-drug_exposure,route_concept_id,4168038,Intramyometrial route,S
-drug_exposure,route_concept_id,46272911,Intraneural route,S
-drug_exposure,route_concept_id,4157760,Intraocular,S
-drug_exposure,route_concept_id,4213522,Intraosseous,S
-drug_exposure,route_concept_id,4306657,Intraovarian route,S
-drug_exposure,route_concept_id,40492305,Intrapericardial route,S
-drug_exposure,route_concept_id,4243022,Intraperitoneal,S
-drug_exposure,route_concept_id,4156707,Intrapleural,S
-drug_exposure,route_concept_id,4171725,Intraprostatic route,S
-drug_exposure,route_concept_id,4169270,Intrapulmonary route,S
-drug_exposure,route_concept_id,4169440,Intrasinal route,S
-drug_exposure,route_concept_id,4302788,Intraspinal route,S
-drug_exposure,route_concept_id,4186837,Intrasternal,S
-drug_exposure,route_concept_id,4302352,Intrasynovial route,S
-drug_exposure,route_concept_id,4303939,Intratendinous route,S
-drug_exposure,route_concept_id,4171067,Intratesticular route,S
-drug_exposure,route_concept_id,4217202,Intrathecal,S
-drug_exposure,route_concept_id,4167393,Intrathoracic route,S
-drug_exposure,route_concept_id,4229543,Intratracheal route,S
-drug_exposure,route_concept_id,40491322,Intratumoral,S
-drug_exposure,route_concept_id,4168656,Intratympanic route,S
-drug_exposure,route_concept_id,4269621,Intrauterine,S
-drug_exposure,route_concept_id,40492287,Intravascular route,S
-drug_exposure,route_concept_id,4171047,Intravenous,S
-drug_exposure,route_concept_id,4170113,Intravenous central route,S
-drug_exposure,route_concept_id,4171884,Intravenous peripheral route,S
-drug_exposure,route_concept_id,4222259,Intraventricular cardiac,S
-drug_exposure,route_concept_id,4186838,Intravesical,S
-drug_exposure,route_concept_id,4302785,Intravitreal,S
-drug_exposure,route_concept_id,45956881,Iontophoresis,S
-drug_exposure,route_concept_id,4133177,Jejunostomy route,S
-drug_exposure,route_concept_id,4170440,Laryngeal route,S
-drug_exposure,route_concept_id,40490898,Lower respiratory tract route,S
-drug_exposure,route_concept_id,4171243,Mucous fistula route,S
-drug_exposure,route_concept_id,4262914,Nasal,S
-drug_exposure,route_concept_id,4172316,Nasoduodenal route,S
-drug_exposure,route_concept_id,4132711,Nasogastric route,S
-drug_exposure,route_concept_id,4305834,Nasojejunal route,S
-drug_exposure,route_concept_id,4184451,Ocular,S
-drug_exposure,route_concept_id,4132161,Oral,S
-drug_exposure,route_concept_id,4303795,Orogastric route,S
-drug_exposure,route_concept_id,4186839,Oromucosal,S
-drug_exposure,route_concept_id,4303277,Oropharyngeal route,S
-drug_exposure,route_concept_id,4303515,Paracervical route,S
-drug_exposure,route_concept_id,4170267,Paravertebral route,S
-drug_exposure,route_concept_id,4177987,Percutaneous route,S
-drug_exposure,route_concept_id,4156708,Periarticular,S
-drug_exposure,route_concept_id,4304274,Peribulbar route,S
-drug_exposure,route_concept_id,40490896,Peridural route,S
-drug_exposure,route_concept_id,4157761,Perineural,S
-drug_exposure,route_concept_id,40490866,Periodontal route,S
-drug_exposure,route_concept_id,4171893,Periosteal route,S
-drug_exposure,route_concept_id,4305564,Peritendinous route,S
-drug_exposure,route_concept_id,4303646,Periurethral route,S
-drug_exposure,route_concept_id,4290759,Rectal,S
-drug_exposure,route_concept_id,45956879,Regional perfusion,S
-drug_exposure,route_concept_id,40486069,Respiratory tract route,S
-drug_exposure,route_concept_id,4303673,Retrobulbar route,S
-drug_exposure,route_concept_id,45956875,Route of administration not applicable,S
-drug_exposure,route_concept_id,4106215,Route of administration value,S
-drug_exposure,route_concept_id,4163770,Subconjunctival,S
-drug_exposure,route_concept_id,4142048,Subcutaneous,S
-drug_exposure,route_concept_id,4306649,Subgingival route,S
-drug_exposure,route_concept_id,46270168,Sublesional route,S
-drug_exposure,route_concept_id,4292110,Sublingual,S
-drug_exposure,route_concept_id,45956878,Submucosal rectal,S
-drug_exposure,route_concept_id,4169634,Submucosal route,S
-drug_exposure,route_concept_id,4166865,Suborbital route,S
-drug_exposure,route_concept_id,36703536,Subretinal,S
-drug_exposure,route_concept_id,4302493,Subtendinous route,S
-drug_exposure,route_concept_id,4170771,Surgical cavity route,S
-drug_exposure,route_concept_id,4304412,Surgical drain route,S
-drug_exposure,route_concept_id,4263689,Topical route,S
-drug_exposure,route_concept_id,4304730,Transcervical route,S
-drug_exposure,route_concept_id,4262099,Transdermal,S
-drug_exposure,route_concept_id,40487850,Transendocardial route,S
-drug_exposure,route_concept_id,4232601,Transmucosal route,S
-drug_exposure,route_concept_id,40487858,Transplacental route,S
-drug_exposure,route_concept_id,40491832,Transtracheal route,S
-drug_exposure,route_concept_id,40491830,Transtympanic route,S
-drug_exposure,route_concept_id,4305382,Transurethral route,S
-drug_exposure,route_concept_id,4169472,Tumor cavity route,S
-drug_exposure,route_concept_id,4304571,Ureteral route,S
-drug_exposure,route_concept_id,4233974,Urethral,S
-drug_exposure,route_concept_id,4170435,Urostomy route,S
-drug_exposure,route_concept_id,4057765,Vaginal,S
-drug_exposure,route_concept_id,45956883,Body cavity use,
-drug_exposure,route_concept_id,45956882,Epidural,
-drug_exposure,route_concept_id,4228125,Haemodialysis,
-drug_exposure,route_concept_id,4011083,Inhalation,
-drug_exposure,route_concept_id,45956885,Intracerebroventricular,
-drug_exposure,route_concept_id,4186835,Intracervical,
-drug_exposure,route_concept_id,45956886,Intraepidermal,
-drug_exposure,route_concept_id,45956884,Intraventricular cardiac,
-drug_exposure,route_concept_id,4302956,Iontophoresis,
-drug_exposure,route_concept_id,45956876,Obsolete-Intraventricular,
-drug_exposure,route_concept_id,45956873,Obsolete-Oromucosal other,
-drug_exposure,route_concept_id,4227373,Obsolete-Oromucosal other,
-drug_exposure,route_concept_id,40549429,Ocular,
-measurement,measurement_type_concept_id,45754907,Derived value,S
-measurement,measurement_type_concept_id,44818701,From physical examination,S
-measurement,measurement_type_concept_id,44818702,Lab result,S
-measurement,measurement_type_concept_id,44818703,Pathology finding,S
-measurement,measurement_type_concept_id,44818704,Patient reported value,S
-measurement,measurement_type_concept_id,5001,Test ordered through EHR,S
-measurement,operator_concept_id,4171756,<,S
-measurement,operator_concept_id,4171754,<=,S
-measurement,operator_concept_id,4172703,=,S
-measurement,operator_concept_id,4172704,>,S
-measurement,operator_concept_id,4171755,>=,S
-note,note_type_concept_id,44814638,Admission note,S
-note,note_type_concept_id,44814643,Ancillary report,S
-note,note_type_concept_id,44814637,Discharge summary,S
-note,note_type_concept_id,44814646,Emergency department note,S
-note,note_type_concept_id,44814639,Inpatient note,S
-note,note_type_concept_id,44814645,Note,S
-note,note_type_concept_id,44814644,Nursing report,S
-note,note_type_concept_id,44814640,Outpatient note,S
-note,note_type_concept_id,44814642,Pathology report,S
-note,note_type_concept_id,44814641,Radiology report,S
-observation,observation_type_concept_id,38000282,Chief complaint,S
-observation,observation_type_concept_id,44786633,HRA Observation Numeric Result,S
-observation,observation_type_concept_id,44786634,HRA Observation Text,S
-observation,observation_type_concept_id,38000279,Lab observation concept code result,S
-observation,observation_type_concept_id,38000277,Lab observation numeric result,S
-observation,observation_type_concept_id,38000278,Lab observation text,S
-observation,observation_type_concept_id,45905771,Observation Recorded from a Survey,S
-observation,observation_type_concept_id,581413,Observation from Measurement,S
-observation,observation_type_concept_id,38000280,Observation recorded from EHR,S
-observation,observation_type_concept_id,38000281,Observation recorded from EHR with text result,S
-observation,observation_type_concept_id,44814721,Patient reported,S
-observation,observation_type_concept_id,38000276,Problem list from EHR,S
-observation,observation_type_concept_id,43542355,Referral Record,S
-observation_period,period_type_concept_id,44814724,Period covering healthcare encounters,S
-observation_period,period_type_concept_id,44814725,Period inferred by algorithm,S
-observation_period,period_type_concept_id,45890994,Period of complete data capture based on geographic isolation,S
-observation_period,period_type_concept_id,44814722,Period while enrolled in insurance,S
-observation_period,period_type_concept_id,44814723,Period while enrolled in study,S
-observation_period,period_type_concept_id,45747656,Pre-qualification time period,S
-person,ethnicity_concept_id,38003563,Hispanic or Latino,S
-person,ethnicity_concept_id,38003564,Not Hispanic or Latino,S
-person,gender_concept_id,8532,FEMALE,S
-person,gender_concept_id,8507,MALE,S
-person,gender_concept_id,8570,AMBIGUOUS,
-person,gender_concept_id,45766035,Feminine gender,
-person,gender_concept_id,4268709,Gender finding,
-person,gender_concept_id,45518388,Gender unknown,
-person,gender_concept_id,4214687,Gender unknown,
-person,gender_concept_id,45454912,Gender unspecified,
-person,gender_concept_id,4215271,Gender unspecified,
-person,gender_concept_id,45438358,Male,
-person,gender_concept_id,45766034,Masculine gender,
-person,gender_concept_id,42689678,Non-binary gender,
-person,gender_concept_id,8521,OTHER,
-person,gender_concept_id,4234363,Surgically transgendered transsexual,
-person,gender_concept_id,4231242,"Surgically transgendered transsexual, female-to-male",
-person,gender_concept_id,4251434,"Surgically transgendered transsexual, male-to-female",
-person,gender_concept_id,1585842,Transgender,
-person,gender_concept_id,36712829,Transgender identity,
-person,gender_concept_id,8551,UNKNOWN,
-person,race_concept_id,38003600,African,S
-person,race_concept_id,38003599,African American,S
-person,race_concept_id,38003573,Alaska Native,S
-person,race_concept_id,38003572,American Indian,S
-person,race_concept_id,8657,American Indian or Alaska Native,S
-person,race_concept_id,38003616,Arab,S
-person,race_concept_id,8515,Asian,S
-person,race_concept_id,38003574,Asian Indian,S
-person,race_concept_id,38003601,Bahamian,S
-person,race_concept_id,38003575,Bangladeshi,S
-person,race_concept_id,38003602,Barbadian,S
-person,race_concept_id,38003576,Bhutanese,S
-person,race_concept_id,38003598,Black,S
-person,race_concept_id,8516,Black or African American,S
-person,race_concept_id,38003577,Burmese,S
-person,race_concept_id,38003578,Cambodian,S
-person,race_concept_id,38003579,Chinese,S
-person,race_concept_id,38003604,Dominica Islander,S
-person,race_concept_id,38003603,Dominican,S
-person,race_concept_id,38003614,European,S
-person,race_concept_id,38003581,Filipino,S
-person,race_concept_id,38003605,Haitian,S
-person,race_concept_id,38003582,Hmong,S
-person,race_concept_id,38003583,Indonesian,S
-person,race_concept_id,38003593,Iwo Jiman,S
-person,race_concept_id,38003606,Jamaican,S
-person,race_concept_id,38003584,Japanese,S
-person,race_concept_id,38003585,Korean,S
-person,race_concept_id,38003586,Laotian,S
-person,race_concept_id,38003597,Madagascar,S
-person,race_concept_id,38003587,Malaysian,S
-person,race_concept_id,38003594,Maldivian,S
-person,race_concept_id,38003612,Melanesian,S
-person,race_concept_id,38003611,Micronesian,S
-person,race_concept_id,38003615,Middle Eastern or North African,S
-person,race_concept_id,8557,Native Hawaiian or Other Pacific Islander,S
-person,race_concept_id,38003595,Nepalese,S
-person,race_concept_id,38003588,Okinawan,S
-person,race_concept_id,38003613,Other Pacific Islander,S
-person,race_concept_id,38003589,Pakistani,S
-person,race_concept_id,38003610,Polynesian,S
-person,race_concept_id,38003596,Singaporean,S
-person,race_concept_id,38003590,Sri Lankan,S
-person,race_concept_id,38003580,Taiwanese,S
-person,race_concept_id,38003591,Thai,S
-person,race_concept_id,38003607,Tobagoan,S
-person,race_concept_id,38003608,Trinidadian,S
-person,race_concept_id,38003592,Vietnamese,S
-person,race_concept_id,38003609,West Indian,S
-person,race_concept_id,8527,White,S
-person,race_concept_id,4228069,Abyssinians,
-person,race_concept_id,4119705,Admiralty Islanders,
-person,race_concept_id,4035165,African American,
-person,race_concept_id,4211218,African race,
-person,race_concept_id,4184962,Afro-Caribbean,
-person,race_concept_id,4187747,Afro-Caucasian,
-person,race_concept_id,4100645,Ainu,
-person,race_concept_id,4231129,Alacaluf,
-person,race_concept_id,4050100,Aleuts,
-person,race_concept_id,4184966,American Indian or Alaska native,
-person,race_concept_id,4211331,American Indian race,
-person,race_concept_id,4281687,Amerind,
-person,race_concept_id,4175829,Andamanese,
-person,race_concept_id,4251760,Apache,
-person,race_concept_id,4231846,Arabs,
-person,race_concept_id,4014421,Armenians,
-person,race_concept_id,4201937,Asian - ethnic group,
-person,race_concept_id,4184984,Asian or Pacific islander,
-person,race_concept_id,4211353,Asian race,
-person,race_concept_id,4298833,Atacamenos,
-person,race_concept_id,4242388,Athabascans,
-person,race_concept_id,4183595,Australian Aborigines,
-person,race_concept_id,4186705,Australian aborigine,
-person,race_concept_id,4285116,Austrians,
-person,race_concept_id,4014099,Aymara,
-person,race_concept_id,4195705,Aztec,
-person,race_concept_id,4263311,Badagas,
-person,race_concept_id,45771426,Bajau,
-person,race_concept_id,45452880,Bangladeshi,
-person,race_concept_id,4091018,Bangladeshi,
-person,race_concept_id,4219735,Bantu,
-person,race_concept_id,4240732,Barundi,
-person,race_concept_id,4163527,Basques,
-person,race_concept_id,4034654,Batutsi,
-person,race_concept_id,4210302,Belgians,
-person,race_concept_id,4102303,Bhutanese,
-person,race_concept_id,45767090,Bidayuh,
-person,race_concept_id,4201929,Black - ethnic group,
-person,race_concept_id,45496299,Black - other African country,
-person,race_concept_id,4091011,Black - other African country,
-person,race_concept_id,45452879,Black - other Asian,
-person,race_concept_id,4091012,Black - other Asian,
-person,race_concept_id,4091013,"Black - other, mixed",
-person,race_concept_id,45502955,"Black - other, mixed",
-person,race_concept_id,4057568,Black African,
-person,race_concept_id,45469811,Black African,
-person,race_concept_id,4153158,Black African and White,
-person,race_concept_id,45499627,Black African and White,
-person,race_concept_id,4076901,Black Arab,
-person,race_concept_id,45476450,Black Arab,
-person,race_concept_id,45429648,Black Black - other,
-person,race_concept_id,45462994,Black British,
-person,race_concept_id,4090389,Black British,
-person,race_concept_id,45496298,Black Caribbean,
-person,race_concept_id,4087917,Black Caribbean,
-person,race_concept_id,45522914,Black Caribbean,
-person,race_concept_id,45456221,Black Caribbean and White,
-person,race_concept_id,4151776,Black Caribbean and White,
-person,race_concept_id,4152832,Black Caribbean/W.I./Guyana,
-person,race_concept_id,45522913,Black Caribbean/W.I./Guyana,
-person,race_concept_id,45436284,Black E Afric Asia/Indo-Caribb,
-person,race_concept_id,45479787,Black East African Asian,
-person,race_concept_id,4078123,Black East African Asian,
-person,race_concept_id,4151577,Black East African Asian/Indo-Caribbean,
-person,race_concept_id,4205380,Black Guyana,
-person,race_concept_id,45446238,Black Guyana,
-person,race_concept_id,45512960,Black Indian sub-continent,
-person,race_concept_id,4085483,Black Indian sub-continent,
-person,race_concept_id,45462995,Black Indo-Caribbean,
-person,race_concept_id,4078124,Black Indo-Caribbean,
-person,race_concept_id,45456219,Black Iranian,
-person,race_concept_id,4077358,Black Iranian,
-person,race_concept_id,4305595,Black Jews,
-person,race_concept_id,45519603,Black N African/Arab/Iranian,
-person,race_concept_id,4151576,Black N African/Arab/Iranian,
-person,race_concept_id,45429647,Black North African,
-person,race_concept_id,4078122,Black North African,
-person,race_concept_id,4203120,Black West Indian,
-person,race_concept_id,45429646,Black West Indian,
-person,race_concept_id,4211480,"Black, not of hispanic origin",
-person,race_concept_id,45516366,"Black, other, non-mixed origin",
-person,race_concept_id,4091010,"Black, other, non-mixed origin",
-person,race_concept_id,4277901,Blackfeet,
-person,race_concept_id,4139924,Bloods,
-person,race_concept_id,4169399,Bogobos,
-person,race_concept_id,4301306,Bororo,
-person,race_concept_id,4218447,Brazilian Indians,
-person,race_concept_id,45436285,Brit. ethnic minor. spec.(NMO),
-person,race_concept_id,45439570,Brit. ethnic minor. unsp (NMO),
-person,race_concept_id,4090390,British ethnic minority specified,
-person,race_concept_id,4091019,British ethnic minority unspecified,
-person,race_concept_id,4264197,Bruneians,
-person,race_concept_id,4167621,Bulgarian,
-person,race_concept_id,45479793,Bulgarian,
-person,race_concept_id,1397910,Bulgarian Roma,
-person,race_concept_id,37394642,Bulgarian Roma,
-person,race_concept_id,36717066,Bulgarian Roma,
-person,race_concept_id,4221071,Buriats,
-person,race_concept_id,4309789,Bushmen,
-person,race_concept_id,4249154,Caingang,
-person,race_concept_id,37116650,Canadian,
-person,race_concept_id,4151578,Caribbean I./W.I./Guyana,
-person,race_concept_id,45479788,Caribbean I./W.I./Guyana (NMO),
-person,race_concept_id,4077359,Caribbean Island,
-person,race_concept_id,45479789,Caribbean Island (NMO),
-person,race_concept_id,4216433,Caroline Islanders,
-person,race_concept_id,4030411,Caucasian,
-person,race_concept_id,4185154,Caucasian,
-person,race_concept_id,4185155,"Caucasian, not of hispanic origin",
-person,race_concept_id,4211849,Chenchu,
-person,race_concept_id,4144377,Chinese,
-person,race_concept_id,45419859,Chinese,
-person,race_concept_id,45476453,Chinese,
-person,race_concept_id,4215810,Chippewa,
-person,race_concept_id,4270899,Choco,
-person,race_concept_id,4178142,Congolese,
-person,race_concept_id,4087928,Cook Island Maori,
-person,race_concept_id,45522915,Cook Island Maori,
-person,race_concept_id,4012612,Coushatta,
-person,race_concept_id,4182121,Cuna,
-person,race_concept_id,44803061,Czech,
-person,race_concept_id,45473117,Czech,
-person,race_concept_id,4102622,Czech,
-person,race_concept_id,37394638,Czech Roma,
-person,race_concept_id,1397642,Czech Roma,
-person,race_concept_id,36713937,Czech Roma,
-person,race_concept_id,4031845,Danes,
-person,race_concept_id,4185580,Dieguenos,
-person,race_concept_id,4317261,Dutch,
-person,race_concept_id,4137597,Dyaks,
-person,race_concept_id,4148888,E Afric Asian/Indo-Carib,
-person,race_concept_id,45439571,E Afric Asian/Indo-Carib (NMO),
-person,race_concept_id,4077381,East African Asian,
-person,race_concept_id,45516367,East African Asian (NMO),
-person,race_concept_id,4103076,Easter Islanders,
-person,race_concept_id,4000051,Egyptians,
-person,race_concept_id,4247162,Ellice Islanders,
-person,race_concept_id,4093769,English,
-person,race_concept_id,4309952,Eskimo,
-person,race_concept_id,4090368,Estonians,
-person,race_concept_id,759814,Ethnic category unknown,
-person,race_concept_id,4155301,Ethnic group,
-person,race_concept_id,4273145,Ethnic groups (1991 census),
-person,race_concept_id,4212990,European,
-person,race_concept_id,4002414,Ewe,
-person,race_concept_id,4321400,Fijian,
-person,race_concept_id,45479791,Fijian,
-person,race_concept_id,4296018,Filipinos,
-person,race_concept_id,4005076,Finns,
-person,race_concept_id,4027841,Flathead,
-person,race_concept_id,4024294,French,
-person,race_concept_id,4292111,Fulani,
-person,race_concept_id,4236027,Gambians,
-person,race_concept_id,4138072,Georgians,
-person,race_concept_id,4297319,Germans,
-person,race_concept_id,4292272,Ghanaians,
-person,race_concept_id,4233496,Ghashgai,
-person,race_concept_id,4171181,Gilbertese,
-person,race_concept_id,4076904,Greek,
-person,race_concept_id,45423089,Greek (NMO),
-person,race_concept_id,4077361,Greek Cypriot,
-person,race_concept_id,45436287,Greek Cypriot (NMO),
-person,race_concept_id,4152834,Greek/Greek Cypriot,
-person,race_concept_id,45462996,Greek/Greek Cypriot (NMO),
-person,race_concept_id,4032635,Greeks,
-person,race_concept_id,4012103,Guamians,
-person,race_concept_id,4077360,Guyana,
-person,race_concept_id,45442862,Guyana (NMO),
-person,race_concept_id,4221073,Gypsies,
-person,race_concept_id,4065367,Hawaiians,
-person,race_concept_id,4188159,Hispanic,
-person,race_concept_id,4190391,"Hispanic, black",
-person,race_concept_id,4188161,"Hispanic, color unknown",
-person,race_concept_id,4190392,"Hispanic, white",
-person,race_concept_id,4218288,Hobe,
-person,race_concept_id,4198993,Hottentot,
-person,race_concept_id,4279480,Huasteco,
-person,race_concept_id,4297991,Huichol,
-person,race_concept_id,4273384,Hungarian,
-person,race_concept_id,1398020,Hungarian Roma,
-person,race_concept_id,37394639,Hungarian Roma,
-person,race_concept_id,36713940,Hungarian Roma,
-person,race_concept_id,4098866,Hututu,
-person,race_concept_id,45767091,Iban,
-person,race_concept_id,4245024,Ibo,
-person,race_concept_id,4248713,Icelanders,
-person,race_concept_id,4210186,Inca,
-person,race_concept_id,4091016,Indian,
-person,race_concept_id,45483083,Indian,
-person,race_concept_id,45446239,Indian,
-person,race_concept_id,4185920,Indian,
-person,race_concept_id,4090392,Indian sub-continent,
-person,race_concept_id,45476451,Indian sub-continent (NMO),
-person,race_concept_id,4276043,Indians,
-person,race_concept_id,4076903,Indo-Caribbean,
-person,race_concept_id,45436286,Indo-Caribbean (NMO),
-person,race_concept_id,4318647,Indonesians,
-person,race_concept_id,4289159,Irani,
-person,race_concept_id,4078125,Iranian,
-person,race_concept_id,45496301,Iranian (NMO),
-person,race_concept_id,4100470,Iraqi,
-person,race_concept_id,4090393,Irish,
-person,race_concept_id,45419861,Irish (NMO),
-person,race_concept_id,45512963,Irish traveller,
-person,race_concept_id,4201938,Irish traveller,
-person,race_concept_id,4221856,Irula,
-person,race_concept_id,4135806,Italians,
-person,race_concept_id,4185935,Japanese,
-person,race_concept_id,4068834,Javanese,
-person,race_concept_id,45771425,Kadazan,
-person,race_concept_id,4048709,Kapingas,
-person,race_concept_id,4036536,Kenyans,
-person,race_concept_id,4218957,Kikuyu,
-person,race_concept_id,4180571,Kirghiz,
-person,race_concept_id,4243164,Koreans,
-person,race_concept_id,4298426,Kwakiutl,
-person,race_concept_id,4326740,Labradors,
-person,race_concept_id,4069284,Lacandon,
-person,race_concept_id,4282477,Lapps,
-person,race_concept_id,4240299,Liberians,
-person,race_concept_id,4308897,Luo,
-person,race_concept_id,4071025,Madagascans,
-person,race_concept_id,4028336,Malays,
-person,race_concept_id,4249883,Maori,
-person,race_concept_id,4327656,Mapuche,
-person,race_concept_id,4180729,Marathas,
-person,race_concept_id,4245756,Marshallese,
-person,race_concept_id,4269942,Maya,
-person,race_concept_id,45767088,Melanau,
-person,race_concept_id,4189474,Melanesian,
-person,race_concept_id,4053172,Melanesians,
-person,race_concept_id,4250319,Melanuans,
-person,race_concept_id,4186453,Mexican Indians,
-person,race_concept_id,4283895,Micronesians,
-person,race_concept_id,4196429,Mixed ethnic census group,
-person,race_concept_id,4212311,Mixed racial group,
-person,race_concept_id,4087322,Mongol,
-person,race_concept_id,4165388,Mozambiquans,
-person,race_concept_id,4283366,Msutu,
-person,race_concept_id,45767089,Murut,
-person,race_concept_id,4152833,N African Arab/Iranian,
-person,race_concept_id,45419860,N African Arab/Iranian (NMO),
-person,race_concept_id,4217600,Naiars,
-person,race_concept_id,4186402,National surgical quality improvement program defined race unknown,
-person,race_concept_id,4212088,Navaho,
-person,race_concept_id,44803976,Nepali,
-person,race_concept_id,45459567,Nepali,
-person,race_concept_id,4237214,New Britons,
-person,race_concept_id,4145762,New Caledonians,
-person,race_concept_id,4273538,New Hebrideans,
-person,race_concept_id,4090521,New Zealand European,
-person,race_concept_id,45486422,New Zealand European,
-person,race_concept_id,45496302,New Zealand Maori,
-person,race_concept_id,4091022,New Zealand Maori,
-person,race_concept_id,45499628,New Zealand ethnic group NOS,
-person,race_concept_id,4087926,New Zealand ethnic groups,
-person,race_concept_id,45442863,New Zealand ethnic groups,
-person,race_concept_id,4337671,Nez Percé,
-person,race_concept_id,4229603,Nigerians,
-person,race_concept_id,4085489,Niuean,
-person,race_concept_id,45509567,Niuean,
-person,race_concept_id,9178,Non-white,
-person,race_concept_id,4077346,North African Arab,
-person,race_concept_id,45449500,North African Arab (NMO),
-person,race_concept_id,4063377,Norwegians,
-person,race_concept_id,4085322,Oceanian,
-person,race_concept_id,4017926,Onge,
-person,race_concept_id,45767087,Orang asli,
-person,race_concept_id,4235464,Oraons,
-person,race_concept_id,4189785,Oriental,
-person,race_concept_id,4199011,Oriental Jews,
-person,race_concept_id,4090391,Other African countries,
-person,race_concept_id,45469812,Other African countries (NMO),
-person,race_concept_id,4087922,Other Asian,
-person,race_concept_id,45473116,Other Asian,
-person,race_concept_id,45466387,Other Asian (NMO),
-person,race_concept_id,45512962,Other Asian ethnic group,
-person,race_concept_id,4199940,Other Asian ethnic group,
-person,race_concept_id,45496300,Other Black - Black/Asian orig,
-person,race_concept_id,4087920,Other Black - Black/Asian orig,
-person,race_concept_id,45506204,Other Black - Black/White orig,
-person,race_concept_id,4087919,Other Black - Black/White orig,
-person,race_concept_id,4090516,Other European,
-person,race_concept_id,45459564,Other European (NMO),
-person,race_concept_id,4085488,Other European in New Zealand,
-person,race_concept_id,45506206,Other European in New Zealand,
-person,race_concept_id,45442864,Other New Zealand ethnic group,
-person,race_concept_id,45502956,Other Pacific ethnic group,
-person,race_concept_id,8522,Other Race,
-person,race_concept_id,45462997,Other black ethnic group,
-person,race_concept_id,4202555,Other black ethnic group,
-person,race_concept_id,45449501,Other ethnic NEC (NMO),
-person,race_concept_id,45483082,Other ethnic group,
-person,race_concept_id,4087921,Other ethnic non-mixed,
-person,race_concept_id,45466386,Other ethnic non-mixed (NMO),
-person,race_concept_id,45459565,"Other ethnic, Asian/White orig",
-person,race_concept_id,4091021,"Other ethnic, Asian/White origin",
-person,race_concept_id,45429649,"Other ethnic, Black/White orig",
-person,race_concept_id,4085487,"Other ethnic, Black/White origin",
-person,race_concept_id,4091020,"Other ethnic, mixed origin",
-person,race_concept_id,45456220,"Other ethnic, mixed origin",
-person,race_concept_id,45423090,"Other ethnic, mixed white orig",
-person,race_concept_id,4087924,"Other ethnic, mixed white origin",
-person,race_concept_id,45506205,"Other ethnic, other mixed orig",
-person,race_concept_id,4090518,"Other ethnic, other mixed origin",
-person,race_concept_id,45436283,Other white British ethnic group,
-person,race_concept_id,4268433,Other white British ethnic group,
-person,race_concept_id,45459563,Other white ethnic group,
-person,race_concept_id,4099457,Paez,
-person,race_concept_id,45492990,Pakeha,
-person,race_concept_id,45512961,Pakistani,
-person,race_concept_id,4091017,Pakistani,
-person,race_concept_id,4216519,Pakistani,
-person,race_concept_id,4234343,Palauans,
-person,race_concept_id,4073535,Papuans,
-person,race_concept_id,4217467,Pehuenches,
-person,race_concept_id,4102599,Poles,
-person,race_concept_id,1397643,Polish Roma,
-person,race_concept_id,37394640,Polish Roma,
-person,race_concept_id,36713941,Polish Roma,
-person,race_concept_id,4053167,Polynesians,
-person,race_concept_id,4213463,Portuguese,
-person,race_concept_id,45469813,Portuguese,
-person,race_concept_id,4140692,Pueblo,
-person,race_concept_id,45767086,Punjabi,
-person,race_concept_id,4323551,Pygmies,
-person,race_concept_id,4194076,Quechua,
-person,race_concept_id,45528619,RACE AFRICAN,
-person,race_concept_id,45529590,RACE ASIAN,
-person,race_concept_id,45526661,RACE WEST INDIAN,
-person,race_concept_id,45532670,RACE WHITE,
-person,race_concept_id,45428285,RACE: Afro-caribbean,
-person,race_concept_id,45501542,RACE: Afro-caucasian,
-person,race_concept_id,45451482,RACE: Arab,
-person,race_concept_id,45458163,RACE: Bangladeshi,
-person,race_concept_id,45514934,RACE: Caucasian,
-person,race_concept_id,45421717,RACE: Chinese,
-person,race_concept_id,45441530,RACE: Japanese,
-person,race_concept_id,45504866,RACE: Korean,
-person,race_concept_id,45501541,RACE: Mixed,
-person,race_concept_id,45518249,RACE: Not stated,
-person,race_concept_id,45421718,RACE: Oriental,
-person,race_concept_id,45511540,RACE: Pakistani,
-person,race_concept_id,45431577,RACE: Unknown,
-person,race_concept_id,45511539,RACE: West indian,
-person,race_concept_id,45478359,RACE: White,
-person,race_concept_id,4190758,Race not stated,
-person,race_concept_id,4051279,Race: West indian,
-person,race_concept_id,4216292,Racial group,
-person,race_concept_id,36717683,Roma,
-person,race_concept_id,1397856,Roma ethnic group,
-person,race_concept_id,37398747,Roma ethnic group,
-person,race_concept_id,40483304,Romanian,
-person,race_concept_id,45439572,Romanian,
-person,race_concept_id,37394641,Romanian Roma,
-person,race_concept_id,36713938,Romanian Roma,
-person,race_concept_id,1397881,Romanian Roma,
-person,race_concept_id,4309511,Russians,
-person,race_concept_id,4077735,Saipanese,
-person,race_concept_id,45516368,Samoan,
-person,race_concept_id,4313587,Samoan,
-person,race_concept_id,42536269,Scandinavian,
-person,race_concept_id,4170372,Seminole,
-person,race_concept_id,4244365,Senegalese,
-person,race_concept_id,4198417,Senoi,
-person,race_concept_id,4201594,Serbs,
-person,race_concept_id,4219475,Shona,
-person,race_concept_id,4317523,Shoshone,
-person,race_concept_id,4103243,Siamese,
-person,race_concept_id,45483084,Slovak,
-person,race_concept_id,4267217,Slovak,
-person,race_concept_id,44813053,Slovak,
-person,race_concept_id,1397882,Slovak Roma,
-person,race_concept_id,37394635,Slovak Roma,
-person,race_concept_id,36713939,Slovak Roma,
-person,race_concept_id,4167520,Solomon Islanders,
-person,race_concept_id,4263713,Somalis,
-person,race_concept_id,4030302,South Asian AND/OR Australian aborigine,
-person,race_concept_id,4095109,South Asian Aborigine,
-person,race_concept_id,4087930,South East Asian,
-person,race_concept_id,45479792,South East Asian,
-person,race_concept_id,4152781,Spaniards,
-person,race_concept_id,4229453,Sudanese,
-person,race_concept_id,4216818,Swedes,
-person,race_concept_id,4297790,Swiss,
-person,race_concept_id,4241969,Syrians,
-person,race_concept_id,4270900,Taiwanese,
-person,race_concept_id,4053816,Tamils,
-person,race_concept_id,4028346,Tanganyikans,
-person,race_concept_id,4235433,Tatars,
-person,race_concept_id,4308112,Thais,
-person,race_concept_id,4192497,Toba,
-person,race_concept_id,4216036,Todas,
-person,race_concept_id,45449503,Tokelauan,
-person,race_concept_id,4091023,Tokelauan,
-person,race_concept_id,4304542,Tongan,
-person,race_concept_id,45459566,Tongan,
-person,race_concept_id,45432962,Traveller - gypsy,
-person,race_concept_id,4097690,Tristan da Cunhans,
-person,race_concept_id,4141462,Trukese,
-person,race_concept_id,4076905,Turkish,
-person,race_concept_id,45419862,Turkish (NMO),
-person,race_concept_id,4078126,Turkish Cypriot,
-person,race_concept_id,45479790,Turkish Cypriot (NMO),
-person,race_concept_id,4155521,Turkish/Turkish Cypriot,
-person,race_concept_id,45509566,Turkish/Turkish Cypriot (NMO),
-person,race_concept_id,4195322,Turks,
-person,race_concept_id,4030735,Tutsi,
-person,race_concept_id,4296606,Ugandans,
-person,race_concept_id,37116384,Ukrainian,
-person,race_concept_id,8552,Unknown,
-person,race_concept_id,4218674,Unknown racial group,
-person,race_concept_id,4148384,Utes,
-person,race_concept_id,4269914,Venezuelan Indians,
-person,race_concept_id,45489704,Vietnamese,
-person,race_concept_id,4210116,Vietnamese,
-person,race_concept_id,4033391,Welsh,
-person,race_concept_id,4216026,West Africans,
-person,race_concept_id,4076902,West Indian,
-person,race_concept_id,45446240,West Indian (NMO),
-person,race_concept_id,45442861,White,
-person,race_concept_id,4090388,White - ethnic group,
-person,race_concept_id,45519602,White British,
-person,race_concept_id,4196428,White British,
-person,race_concept_id,4201928,White Irish,
-person,race_concept_id,45479786,White Irish,
-person,race_concept_id,4268432,White Scottish,
-person,race_concept_id,45462993,White Scottish,
-person,race_concept_id,4092681,Xavante,
-person,race_concept_id,4214735,Xosa,
-person,race_concept_id,4295144,Yanomama,
-person,race_concept_id,4170060,Yapese,
-person,race_concept_id,44791722,Yemeni,
-person,race_concept_id,45456222,Yemeni,
-person,race_concept_id,4296997,Zulu,
-procedure_occurrence,procedure_type_concept_id,45756909,Carrier claim detail - 10th position,S
-procedure_occurrence,procedure_type_concept_id,45756910,Carrier claim detail - 11th position,S
-procedure_occurrence,procedure_type_concept_id,45756911,Carrier claim detail - 12th position,S
-procedure_occurrence,procedure_type_concept_id,45756912,Carrier claim detail - 13th position,S
-procedure_occurrence,procedure_type_concept_id,45756900,Carrier claim detail - 1st position,S
-procedure_occurrence,procedure_type_concept_id,45756901,Carrier claim detail - 2nd position,S
-procedure_occurrence,procedure_type_concept_id,45756902,Carrier claim detail - 3rd position,S
-procedure_occurrence,procedure_type_concept_id,45756903,Carrier claim detail - 4th position,S
-procedure_occurrence,procedure_type_concept_id,45756904,Carrier claim detail - 5th position,S
-procedure_occurrence,procedure_type_concept_id,45756905,Carrier claim detail - 6th position,S
-procedure_occurrence,procedure_type_concept_id,45756906,Carrier claim detail - 7th position,S
-procedure_occurrence,procedure_type_concept_id,45756907,Carrier claim detail - 8th position,S
-procedure_occurrence,procedure_type_concept_id,45756908,Carrier claim detail - 9th position,S
-procedure_occurrence,procedure_type_concept_id,42865906,Condition Procedure,S
-procedure_occurrence,procedure_type_concept_id,38000275,EHR order list entry,S
-procedure_occurrence,procedure_type_concept_id,42865905,Facility header,S
-procedure_occurrence,procedure_type_concept_id,257,Hospitalization Cost Record,S
-procedure_occurrence,procedure_type_concept_id,38000249,Inpatient detail - 1st position,S
-procedure_occurrence,procedure_type_concept_id,38000248,Inpatient detail - primary position,S
-procedure_occurrence,procedure_type_concept_id,38000260,Inpatient header - 10th position,S
-procedure_occurrence,procedure_type_concept_id,38000261,Inpatient header - 11th position,S
-procedure_occurrence,procedure_type_concept_id,38000262,Inpatient header - 12th position,S
-procedure_occurrence,procedure_type_concept_id,38000263,Inpatient header - 13th position,S
-procedure_occurrence,procedure_type_concept_id,38000264,Inpatient header - 14th position,S
-procedure_occurrence,procedure_type_concept_id,38000265,Inpatient header - 15th position,S
-procedure_occurrence,procedure_type_concept_id,38000251,Inpatient header - 1st position,S
-procedure_occurrence,procedure_type_concept_id,38000252,Inpatient header - 2nd position,S
-procedure_occurrence,procedure_type_concept_id,38000253,Inpatient header - 3rd position,S
-procedure_occurrence,procedure_type_concept_id,38000254,Inpatient header - 4th position,S
-procedure_occurrence,procedure_type_concept_id,38000255,Inpatient header - 5th position,S
-procedure_occurrence,procedure_type_concept_id,38000256,Inpatient header - 6th position,S
-procedure_occurrence,procedure_type_concept_id,38000257,Inpatient header - 7th position,S
-procedure_occurrence,procedure_type_concept_id,38000258,Inpatient header - 8th position,S
-procedure_occurrence,procedure_type_concept_id,38000259,Inpatient header - 9th position,S
-procedure_occurrence,procedure_type_concept_id,38000250,Inpatient header - primary position,S
-procedure_occurrence,procedure_type_concept_id,45756864,Outpatient detail - 10th position,S
-procedure_occurrence,procedure_type_concept_id,45756865,Outpatient detail - 11th position,S
-procedure_occurrence,procedure_type_concept_id,45756866,Outpatient detail - 12th position,S
-procedure_occurrence,procedure_type_concept_id,45756867,Outpatient detail - 13th position,S
-procedure_occurrence,procedure_type_concept_id,45756868,Outpatient detail - 14th position,S
-procedure_occurrence,procedure_type_concept_id,45756869,Outpatient detail - 15th position,S
-procedure_occurrence,procedure_type_concept_id,45756870,Outpatient detail - 16th position,S
-procedure_occurrence,procedure_type_concept_id,45756871,Outpatient detail - 17th position,S
-procedure_occurrence,procedure_type_concept_id,45756872,Outpatient detail - 18th position,S
-procedure_occurrence,procedure_type_concept_id,45756873,Outpatient detail - 19th position,S
-procedure_occurrence,procedure_type_concept_id,38000267,Outpatient detail - 1st position,S
-procedure_occurrence,procedure_type_concept_id,45756874,Outpatient detail - 20th position,S
-procedure_occurrence,procedure_type_concept_id,45756875,Outpatient detail - 21th position,S
-procedure_occurrence,procedure_type_concept_id,45756876,Outpatient detail - 22th position,S
-procedure_occurrence,procedure_type_concept_id,45756877,Outpatient detail - 23th position,S
-procedure_occurrence,procedure_type_concept_id,45756878,Outpatient detail - 24th position,S
-procedure_occurrence,procedure_type_concept_id,45756879,Outpatient detail - 25th position,S
-procedure_occurrence,procedure_type_concept_id,45756880,Outpatient detail - 26th position,S
-procedure_occurrence,procedure_type_concept_id,45756881,Outpatient detail - 27th position,S
-procedure_occurrence,procedure_type_concept_id,45756882,Outpatient detail - 28th position,S
-procedure_occurrence,procedure_type_concept_id,45756883,Outpatient detail - 29th position,S
-procedure_occurrence,procedure_type_concept_id,45756856,Outpatient detail - 2nd position,S
-procedure_occurrence,procedure_type_concept_id,45756884,Outpatient detail - 30th position,S
-procedure_occurrence,procedure_type_concept_id,45756885,Outpatient detail - 31th position,S
-procedure_occurrence,procedure_type_concept_id,45756886,Outpatient detail - 32th position,S
-procedure_occurrence,procedure_type_concept_id,45756887,Outpatient detail - 33th position,S
-procedure_occurrence,procedure_type_concept_id,45756888,Outpatient detail - 34th position,S
-procedure_occurrence,procedure_type_concept_id,45756889,Outpatient detail - 35th position,S
-procedure_occurrence,procedure_type_concept_id,45756890,Outpatient detail - 36th position,S
-procedure_occurrence,procedure_type_concept_id,45756891,Outpatient detail - 37th position,S
-procedure_occurrence,procedure_type_concept_id,45756892,Outpatient detail - 38th position,S
-procedure_occurrence,procedure_type_concept_id,45756893,Outpatient detail - 39th position,S
-procedure_occurrence,procedure_type_concept_id,45756857,Outpatient detail - 3rd position,S
-procedure_occurrence,procedure_type_concept_id,45756894,Outpatient detail - 40th position,S
-procedure_occurrence,procedure_type_concept_id,45756895,Outpatient detail - 41th position,S
-procedure_occurrence,procedure_type_concept_id,45756896,Outpatient detail - 42th position,S
-procedure_occurrence,procedure_type_concept_id,45756897,Outpatient detail - 43th position,S
-procedure_occurrence,procedure_type_concept_id,45756898,Outpatient detail - 44th position,S
-procedure_occurrence,procedure_type_concept_id,45756899,Outpatient detail - 45th position,S
-procedure_occurrence,procedure_type_concept_id,45756858,Outpatient detail - 4th position,S
-procedure_occurrence,procedure_type_concept_id,45756859,Outpatient detail - 5th position,S
-procedure_occurrence,procedure_type_concept_id,45756860,Outpatient detail - 6th position,S
-procedure_occurrence,procedure_type_concept_id,45756861,Outpatient detail - 7th position,S
-procedure_occurrence,procedure_type_concept_id,45756862,Outpatient detail - 8th position,S
-procedure_occurrence,procedure_type_concept_id,45756863,Outpatient detail - 9th position,S
-procedure_occurrence,procedure_type_concept_id,38000266,Outpatient detail - primary position,S
-procedure_occurrence,procedure_type_concept_id,38000269,Outpatient header - 1st position,S
-procedure_occurrence,procedure_type_concept_id,38000270,Outpatient header - 2nd position,S
-procedure_occurrence,procedure_type_concept_id,38000271,Outpatient header - 3rd position,S
-procedure_occurrence,procedure_type_concept_id,38000272,Outpatient header - 4th position,S
-procedure_occurrence,procedure_type_concept_id,38000273,Outpatient header - 5th position,S
-procedure_occurrence,procedure_type_concept_id,38000274,Outpatient header - 6th position,S
-procedure_occurrence,procedure_type_concept_id,38000268,Outpatient header - primary position,S
-procedure_occurrence,procedure_type_concept_id,43542354,Physician administered drug (identified as procedure),S
-procedure_occurrence,procedure_type_concept_id,44786630,Primary Procedure,S
-procedure_occurrence,procedure_type_concept_id,581412,Procedure Recorded from a Survey,S
-procedure_occurrence,procedure_type_concept_id,38003622,Procedure recorded as diagnostic code,S
-procedure_occurrence,procedure_type_concept_id,38003621,Procedure recorded as lab test,S
-procedure_occurrence,procedure_type_concept_id,42898141,Referral record,S
-procedure_occurrence,procedure_type_concept_id,44786631,Secondary Procedure,S
-specimen,specimen_type_concept_id,581378,EHR Detail,S
-visit_occurrence,visit_concept_id,32217,Admitted as an inpatient to this hospital,S
-visit_occurrence,visit_concept_id,8882,Adult Living Care Facility,S
-visit_occurrence,visit_concept_id,8850,Ambulance - Air or Water,S
-visit_occurrence,visit_concept_id,8668,Ambulance - Land,S
-visit_occurrence,visit_concept_id,581478,Ambulance Visit,S
-visit_occurrence,visit_concept_id,8883,Ambulatory Surgical Center,S
-visit_occurrence,visit_concept_id,8615,Assisted Living Facility,S
-visit_occurrence,visit_concept_id,8650,Birthing Center,S
-visit_occurrence,visit_concept_id,32194,Clinic or physicians office,S
-visit_occurrence,visit_concept_id,8964,Community Mental Health Center,S
-visit_occurrence,visit_concept_id,8920,Comprehensive Inpatient Rehabilitation Facility,S
-visit_occurrence,visit_concept_id,8947,Comprehensive Outpatient Rehabilitation Facility,S
-visit_occurrence,visit_concept_id,32198,Court/Law enforcement,S
-visit_occurrence,visit_concept_id,8827,Custodial Care Facility,S
-visit_occurrence,visit_concept_id,32235,Discharged to home or self-care with a planned acute care hospital readmission,S
-visit_occurrence,visit_concept_id,32210,Discharged to home/self care (routine charge).,S
-visit_occurrence,visit_concept_id,32231,Discharged/Transferred to a psychiatric hospital or psychiatric distinct unit of a hospital,S
-visit_occurrence,visit_concept_id,32219,Discharged/transferred to Court/Law Enforcement,S
-visit_occurrence,visit_concept_id,32232,Discharged/transferred to a Critical Access Hospital (CAH),S
-visit_occurrence,visit_concept_id,32245,Discharged/transferred to a Medicare certified long term care hospital (LTCH) with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32248,Discharged/transferred to a critical access hospital (CAH) with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32239,Discharged/transferred to a designated cancer center or children?s hospital with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32233,Discharged/transferred to a designated disaster alternative care site,S
-visit_occurrence,visit_concept_id,32238,Discharged/transferred to a facility that provides custodial or supportive care with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32242,Discharged/transferred to a federal health care facility with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32224,Discharged/transferred to a federal hospital,S
-visit_occurrence,visit_concept_id,32243,Discharged/transferred to a hospital-based Medicare approved swing bed with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32229,Discharged/transferred to a long term care hospitals,S
-visit_occurrence,visit_concept_id,32230,Discharged/transferred to a nursing facility certified under Medicaid but not under Medicare,S
-visit_occurrence,visit_concept_id,32247,Discharged/transferred to a psychiatric hospital/distinct part unit of a hospital with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32236,Discharged/transferred to a short term general hospital for inpatient care with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32237,Discharged/transferred to a skilled nursing facility (SNF) with Medicare certification with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32244,Discharged/transferred to an inpatient rehabilitation facility (IRF) including rehabilitation distinct part units of a hospital with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32228,Discharged/transferred to an inpatient rehabilitation facility including distinct parts units of a hospital,S
-visit_occurrence,visit_concept_id,32234,Discharged/transferred to another type of health care institution not defined elsewhere in code list.,S
-visit_occurrence,visit_concept_id,32249,Discharged/transferred to another type of health care institution not defined elsewhere in this code list with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32214,Discharged/transferred to another type of institution for inpatient care (designated cancer center or childrens hospital),S
-visit_occurrence,visit_concept_id,32241,Discharged/transferred to court/law enforcement with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32215,Discharged/transferred to home care of organized home health service organization.,S
-visit_occurrence,visit_concept_id,32240,Discharged/transferred to home under care of organized home health service organization with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32213,Discharged/transferred to intermediate care facility (ICF).,S
-visit_occurrence,visit_concept_id,32246,Discharged/transferred to nursing facility certified under Medicaid but not certified under Medicare with a planned acute care hospital inpatient readmission,S
-visit_occurrence,visit_concept_id,32211,Discharged/transferred to other short term general hospital for inpatient care.,S
-visit_occurrence,visit_concept_id,32212,Discharged/transferred to skilled nursing facility (SNF) with Medicare certification in anticipation of covered skilled care,S
-visit_occurrence,visit_concept_id,32227,Discharged/transferred within this institution to a hospital-based Medicare approved swing bed,S
-visit_occurrence,visit_concept_id,8870,Emergency Room - Hospital,S
-visit_occurrence,visit_concept_id,581381,Emergency Room Critical Care Facility,S
-visit_occurrence,visit_concept_id,9203,Emergency Room Visit,S
-visit_occurrence,visit_concept_id,262,Emergency Room and Inpatient Visit,S
-visit_occurrence,visit_concept_id,8949,End-Stage Renal Disease Treatment Facility,S
-visit_occurrence,visit_concept_id,32218,Expired,S
-visit_occurrence,visit_concept_id,32223,Expired - place unknown (Hospice claims only),S
-visit_occurrence,visit_concept_id,32221,Expired at home (hospice claims only),S
-visit_occurrence,visit_concept_id,32222,"Expired in a medical facility such as hospital, SNF, ICF, or freestanding hospice. (Hospice claims only)",S
-visit_occurrence,visit_concept_id,8966,Federally Qualified Health Center,S
-visit_occurrence,visit_concept_id,8851,Group Home,S
-visit_occurrence,visit_concept_id,8536,Home,S
-visit_occurrence,visit_concept_id,581476,Home Visit,S
-visit_occurrence,visit_concept_id,32193,Home/non health care facility point of origin,S
-visit_occurrence,visit_concept_id,8672,Homeless Shelter,S
-visit_occurrence,visit_concept_id,8546,Hospice,S
-visit_occurrence,visit_concept_id,32225,Hospice - home,S
-visit_occurrence,visit_concept_id,32226,Hospice - medical facility,S
-visit_occurrence,visit_concept_id,8716,Independent Clinic,S
-visit_occurrence,visit_concept_id,8809,Independent Laboratory,S
-visit_occurrence,visit_concept_id,8968,Indian Health Service Free-standing Facility,S
-visit_occurrence,visit_concept_id,8969,Indian Health Service Provider-based Facility,S
-visit_occurrence,visit_concept_id,32199,Information not available,S
-visit_occurrence,visit_concept_id,581383,Inpatient Cardiac Care Facility,S
-visit_occurrence,visit_concept_id,581379,Inpatient Critical Care Facility,S
-visit_occurrence,visit_concept_id,8717,Inpatient Hospital,S
-visit_occurrence,visit_concept_id,581382,Inpatient Intensive Care Facility,S
-visit_occurrence,visit_concept_id,8970,Inpatient Long-term Care,S
-visit_occurrence,visit_concept_id,581384,Inpatient Nursery,S
-visit_occurrence,visit_concept_id,8971,Inpatient Psychiatric Facility,S
-visit_occurrence,visit_concept_id,9201,Inpatient Visit,S
-visit_occurrence,visit_concept_id,32037,Intensive Care,S
-visit_occurrence,visit_concept_id,581399,Interactive Telemedicine Service,S
-visit_occurrence,visit_concept_id,8951,Intermediate Care Facility/Mentally Retarded,S
-visit_occurrence,visit_concept_id,32036,Laboratory Visit,S
-visit_occurrence,visit_concept_id,32216,Left against medical advice or discontinued care.,S
-visit_occurrence,visit_concept_id,42898160,Long Term Care Visit,S
-visit_occurrence,visit_concept_id,8858,Mass Immunization Center,S
-visit_occurrence,visit_concept_id,8905,Military Treatment Facility,S
-visit_occurrence,visit_concept_id,8584,Mobile Unit,S
-visit_occurrence,visit_concept_id,8974,Non-residential Substance Abuse Treatment Facility,S
-visit_occurrence,visit_concept_id,8676,Nursing Facility,S
-visit_occurrence,visit_concept_id,581385,Observation Room,S
-visit_occurrence,visit_concept_id,5084,Off Campus-Outpatient Hospital,S
-visit_occurrence,visit_concept_id,8940,Office,S
-visit_occurrence,visit_concept_id,581477,Office Visit,S
-visit_occurrence,visit_concept_id,8892,Other Inpatient Care,S
-visit_occurrence,visit_concept_id,8844,Other Place of Service,S
-visit_occurrence,visit_concept_id,581380,Outpatient Critical Care Facility,S
-visit_occurrence,visit_concept_id,8756,Outpatient Hospital,S
-visit_occurrence,visit_concept_id,8677,Outpatient NEC,S
-visit_occurrence,visit_concept_id,9202,Outpatient Visit,S
-visit_occurrence,visit_concept_id,8562,Pharmacy,S
-visit_occurrence,visit_concept_id,581458,Pharmacy visit,S
-visit_occurrence,visit_concept_id,581475,Place of Employment-Worksite,S
-visit_occurrence,visit_concept_id,38003619,Prison/Correctional Facility,S
-visit_occurrence,visit_concept_id,8913,Psychiatric Facility-Partial Hospitalization,S
-visit_occurrence,visit_concept_id,8976,Psychiatric Residential Treatment Center,S
-visit_occurrence,visit_concept_id,8977,Public Health Clinic,S
-visit_occurrence,visit_concept_id,581479,Rehabilitation Visit,S
-visit_occurrence,visit_concept_id,8957,Residential Substance Abuse Treatment Facility,S
-visit_occurrence,visit_concept_id,8761,Rural Health Clinic,S
-visit_occurrence,visit_concept_id,8537,School,S
-visit_occurrence,visit_concept_id,8863,Skilled Nursing Facility,S
-visit_occurrence,visit_concept_id,32220,Still patient,S
-visit_occurrence,visit_concept_id,5083,Telehealth,S
-visit_occurrence,visit_concept_id,8602,Temporary Lodging,S
-visit_occurrence,visit_concept_id,32196,"Transfer from Skilled nursing facility, Intermediate care facility, Assisted living facility",S
-visit_occurrence,visit_concept_id,32195,"Transfer from a Hospital, different facility",S
-visit_occurrence,visit_concept_id,32201,Transfer from ambulatory care center,S
-visit_occurrence,visit_concept_id,32197,Transfer from another Healthcare facility,S
-visit_occurrence,visit_concept_id,32202,Transfer from hospice,S
-visit_occurrence,visit_concept_id,32200,"Transfer within hospital, but seperate claim",S
-visit_occurrence,visit_concept_id,8941,Tribal 638 Free-standing Facility,S
-visit_occurrence,visit_concept_id,8960,Tribal 638 Provider-based Facility,S
-visit_occurrence,visit_concept_id,32209,Unknown Value (but present in data),S
-visit_occurrence,visit_concept_id,8782,Urgent Care Facility,S
-visit_occurrence,visit_concept_id,38003620,Walk-in Retail Health Clinic,S
-visit_occurrence,visit_concept_id,32288,Admission/Election Notice,
-visit_occurrence,visit_concept_id,32280,Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32274,Ambulatory Surgery Center,
-visit_occurrence,visit_concept_id,32156,Ambulatory Surgery Center@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32158,Ambulatory Surgery Center@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32157,Ambulatory Surgery Center@Interim-first claim,
-visit_occurrence,visit_concept_id,32159,Ambulatory Surgery Center@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32160,Ambulatory Surgery Center@Late Charges Only,
-visit_occurrence,visit_concept_id,32155,Ambulatory Surgery Center@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32161,Ambulatory Surgery Center@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32162,Ambulatory Surgery Center@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32292,CMS Initiated Adjustment,
-visit_occurrence,visit_concept_id,32291,CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32264,Clinic- Hosp Based or Indep Renal Dialysis Center,
-visit_occurrence,visit_concept_id,32090,Clinic- Hosp Based or Indep Renal Dialysis Center@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32097,Clinic- Hosp Based or Indep Renal Dialysis Center@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32099,Clinic- Hosp Based or Indep Renal Dialysis Center@Initiated Adjustment Claim-other,
-visit_occurrence,visit_concept_id,32092,Clinic- Hosp Based or Indep Renal Dialysis Center@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32091,Clinic- Hosp Based or Indep Renal Dialysis Center@Interim-first claim,
-visit_occurrence,visit_concept_id,32093,Clinic- Hosp Based or Indep Renal Dialysis Center@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32098,Clinic- Hosp Based or Indep Renal Dialysis Center@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32094,Clinic- Hosp Based or Indep Renal Dialysis Center@Late Charges Only,
-visit_occurrence,visit_concept_id,32089,Clinic- Hosp Based or Indep Renal Dialysis Center@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32095,Clinic- Hosp Based or Indep Renal Dialysis Center@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32096,Clinic- Hosp Based or Indep Renal Dialysis Center@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32268,Clinic-Community Mental Health Center,
-visit_occurrence,visit_concept_id,32124,Clinic-Community Mental Health Center@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32129,Clinic-Community Mental Health Center@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32126,Clinic-Community Mental Health Center@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32125,Clinic-Community Mental Health Center@Interim-first claim,
-visit_occurrence,visit_concept_id,32127,Clinic-Community Mental Health Center@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32123,Clinic-Community Mental Health Center@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32128,Clinic-Community Mental Health Center@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32267,Clinic-Comprehensive Outpatient Rehab (CORF),
-visit_occurrence,visit_concept_id,32116,Clinic-Comprehensive Outpatient Rehab (CORF)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32121,Clinic-Comprehensive Outpatient Rehab (CORF)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32118,Clinic-Comprehensive Outpatient Rehab (CORF)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32117,Clinic-Comprehensive Outpatient Rehab (CORF)@Interim-first claim,
-visit_occurrence,visit_concept_id,32119,Clinic-Comprehensive Outpatient Rehab (CORF)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32122,Clinic-Comprehensive Outpatient Rehab (CORF)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32120,Clinic-Comprehensive Outpatient Rehab (CORF)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32269,Clinic-Federally Qualified Health Center (FQHC),
-visit_occurrence,visit_concept_id,32130,Clinic-Federally Qualified Health Center (FQHC)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32134,Clinic-Federally Qualified Health Center (FQHC)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32131,Clinic-Federally Qualified Health Center (FQHC)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32132,Clinic-Federally Qualified Health Center (FQHC)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32133,Clinic-Federally Qualified Health Center (FQHC)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32265,Clinic-Freestanding,
-visit_occurrence,visit_concept_id,32100,Clinic-Freestanding@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32102,Clinic-Freestanding@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32101,Clinic-Freestanding@Interim-first claim,
-visit_occurrence,visit_concept_id,32103,Clinic-Freestanding@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32104,Clinic-Freestanding@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32271,Clinic-Other,
-visit_occurrence,visit_concept_id,32137,Clinic-Other@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32139,Clinic-Other@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32138,Clinic-Other@Interim-first claim,
-visit_occurrence,visit_concept_id,32140,Clinic-Other@Late Charges Only,
-visit_occurrence,visit_concept_id,32136,Clinic-Other@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32141,Clinic-Other@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32266,Clinic-Outpatient Rehab Facility (ORF),
-visit_occurrence,visit_concept_id,32106,Clinic-Outpatient Rehab Facility (ORF)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32114,Clinic-Outpatient Rehab Facility (ORF)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32113,Clinic-Outpatient Rehab Facility (ORF)@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32108,Clinic-Outpatient Rehab Facility (ORF)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32107,Clinic-Outpatient Rehab Facility (ORF)@Interim-first claim,
-visit_occurrence,visit_concept_id,32109,Clinic-Outpatient Rehab Facility (ORF)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32115,Clinic-Outpatient Rehab Facility (ORF)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32110,Clinic-Outpatient Rehab Facility (ORF)@Late Charges Only,
-visit_occurrence,visit_concept_id,32105,Clinic-Outpatient Rehab Facility (ORF)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32111,Clinic-Outpatient Rehab Facility (ORF)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32112,Clinic-Outpatient Rehab Facility (ORF)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32263,Clinic-Rural Health,
-visit_occurrence,visit_concept_id,32081,Clinic-Rural Health@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32086,Clinic-Rural Health@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32083,Clinic-Rural Health@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32082,Clinic-Rural Health@Interim-first claim,
-visit_occurrence,visit_concept_id,32087,Clinic-Rural Health@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32088,Clinic-Rural Health@MSP Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32080,Clinic-Rural Health@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32084,Clinic-Rural Health@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32085,Clinic-Rural Health@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32276,Critical Access Hospital,
-visit_occurrence,visit_concept_id,32165,Critical Access Hospital@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32171,Critical Access Hospital@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32167,Critical Access Hospital@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32166,Critical Access Hospital@Interim-first claim,
-visit_occurrence,visit_concept_id,32168,Critical Access Hospital@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32172,Critical Access Hospital@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32169,Critical Access Hospital@Late Charges Only,
-visit_occurrence,visit_concept_id,32164,Critical Access Hospital@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32170,Critical Access Hospital@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32287,Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32275,Freestanding Birthing Center,
-visit_occurrence,visit_concept_id,32163,Freestanding Birthing Center@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32258,Home Health-Inpatient (treatment Part B only),
-visit_occurrence,visit_concept_id,32376,Home Health-Inpatient (treatment Part B only)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32383,Home Health-Inpatient (treatment Part B only)@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32384,Home Health-Inpatient (treatment Part B only)@Initiated Adjustment Claim-other,
-visit_occurrence,visit_concept_id,32378,Home Health-Inpatient (treatment Part B only)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32377,Home Health-Inpatient (treatment Part B only)@Interim-first claim,
-visit_occurrence,visit_concept_id,32379,Home Health-Inpatient (treatment Part B only)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32380,Home Health-Inpatient (treatment Part B only)@Late Charges Only,
-visit_occurrence,visit_concept_id,32375,Home Health-Inpatient (treatment Part B only)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32381,Home Health-Inpatient (treatment Part B only)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32382,Home Health-Inpatient (treatment Part B only)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32260,Home Health-Other (Med & Surg under plan of treatment),
-visit_occurrence,visit_concept_id,32396,Home Health-Other (Med & Surg under plan of treatment)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32052,Home Health-Other (Med & Surg under plan of treatment)@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32049,Home Health-Other (Med & Surg under plan of treatment)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32048,Home Health-Other (Med & Surg under plan of treatment)@Interim-first claim,
-visit_occurrence,visit_concept_id,32050,Home Health-Other (Med & Surg under plan of treatment)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32053,Home Health-Other (Med & Surg under plan of treatment)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32395,Home Health-Other (Med & Surg under plan of treatment)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32051,Home Health-Other (Med & Surg under plan of treatment)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32054,Home Health-Other (Med & Surg under plan of treatment)@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32259,"Home Health-Outpatient (Part A, Includes DME Part A)",
-visit_occurrence,visit_concept_id,32386,"Home Health-Outpatient (Part A, Includes DME Part A)@Admit through Discharge Claim",
-visit_occurrence,visit_concept_id,32393,"Home Health-Outpatient (Part A, Includes DME Part A)@Final Claim for a Home Health PPS Episode",
-visit_occurrence,visit_concept_id,32388,"Home Health-Outpatient (Part A, Includes DME Part A)@Interim-Cont claim (b)",
-visit_occurrence,visit_concept_id,32387,"Home Health-Outpatient (Part A, Includes DME Part A)@Interim-first claim",
-visit_occurrence,visit_concept_id,32389,"Home Health-Outpatient (Part A, Includes DME Part A)@Interim-last claim (b)",
-visit_occurrence,visit_concept_id,32390,"Home Health-Outpatient (Part A, Includes DME Part A)@Late Charges Only",
-visit_occurrence,visit_concept_id,32394,"Home Health-Outpatient (Part A, Includes DME Part A)@MSP Initiated Adjustment Claim",
-visit_occurrence,visit_concept_id,32385,"Home Health-Outpatient (Part A, Includes DME Part A)@Non-Payment/Zero",
-visit_occurrence,visit_concept_id,32391,"Home Health-Outpatient (Part A, Includes DME Part A)@Replacement of Prior Claim",
-visit_occurrence,visit_concept_id,32392,"Home Health-Outpatient (Part A, Includes DME Part A)@Void/ Cancel of Prior claim (a)",
-visit_occurrence,visit_concept_id,32273,Hospice (hospital based),
-visit_occurrence,visit_concept_id,32149,Hospice (hospital based)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32151,Hospice (hospital based)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32150,Hospice (hospital based)@Interim-first claim,
-visit_occurrence,visit_concept_id,32152,Hospice (hospital based)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32153,Hospice (hospital based)@Late Charges Only,
-visit_occurrence,visit_concept_id,32154,Hospice (hospital based)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32289,Hospice/CMS Coord Care/Religious NonMed/Cent of ExcellenceDemonstration,
-visit_occurrence,visit_concept_id,32272,Hospital (non-hospital based),
-visit_occurrence,visit_concept_id,32142,Hospital (non-hospital based)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32148,Hospital (non-hospital based)@Hospice/CMS Coord Care/Religious NonMed/Cent of ExcellenceDemonstration,
-visit_occurrence,visit_concept_id,32144,Hospital (non-hospital based)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32143,Hospital (non-hospital based)@Interim-first claim,
-visit_occurrence,visit_concept_id,32145,Hospital (non-hospital based)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32146,Hospital (non-hospital based)@Late Charges Only,
-visit_occurrence,visit_concept_id,32147,Hospital (non-hospital based)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32253,Hospital -Laboratory Services provided to non-pt,
-visit_occurrence,visit_concept_id,32337,Hospital -Laboratory Services provided to non-pt@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32339,Hospital -Laboratory Services provided to non-pt@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32338,Hospital -Laboratory Services provided to non-pt@Interim-first claim,
-visit_occurrence,visit_concept_id,32340,Hospital -Laboratory Services provided to non-pt@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32341,Hospital -Laboratory Services provided to non-pt@Late Charges Only,
-visit_occurrence,visit_concept_id,32336,Hospital -Laboratory Services provided to non-pt@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32342,Hospital -Laboratory Services provided to non-pt@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32343,Hospital -Laboratory Services provided to non-pt@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32250,Hospital Inpatient (Including Medicare Part A),
-visit_occurrence,visit_concept_id,32300,Hospital Inpatient (Including Medicare Part A)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32307,Hospital Inpatient (Including Medicare Part A)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32302,Hospital Inpatient (Including Medicare Part A)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32301,Hospital Inpatient (Including Medicare Part A)@Interim-first claim,
-visit_occurrence,visit_concept_id,32303,Hospital Inpatient (Including Medicare Part A)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32308,Hospital Inpatient (Including Medicare Part A)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32304,Hospital Inpatient (Including Medicare Part A)@Late Charges Only,
-visit_occurrence,visit_concept_id,32299,Hospital Inpatient (Including Medicare Part A)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32310,Hospital Inpatient (Including Medicare Part A)@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32305,Hospital Inpatient (Including Medicare Part A)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32306,Hospital Inpatient (Including Medicare Part A)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32309,Hospital Inpatient (Including Medicare Part A)@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32251,Hospital Inpatient (Medicare Part B only),
-visit_occurrence,visit_concept_id,32312,Hospital Inpatient (Medicare Part B only)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32314,Hospital Inpatient (Medicare Part B only)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32313,Hospital Inpatient (Medicare Part B only)@Interim-first claim,
-visit_occurrence,visit_concept_id,32315,Hospital Inpatient (Medicare Part B only)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32317,Hospital Inpatient (Medicare Part B only)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32311,Hospital Inpatient (Medicare Part B only)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32316,Hospital Inpatient (Medicare Part B only)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32252,Hospital Outpatient,
-visit_occurrence,visit_concept_id,32319,Hospital Outpatient@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32329,Hospital Outpatient@CMS Initiated Adjustment,
-visit_occurrence,visit_concept_id,32328,Hospital Outpatient@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32326,Hospital Outpatient@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32331,Hospital Outpatient@Initiated Adjustment Claim-other,
-visit_occurrence,visit_concept_id,32321,Hospital Outpatient@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32320,Hospital Outpatient@Interim-first claim,
-visit_occurrence,visit_concept_id,32322,Hospital Outpatient@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32330,Hospital Outpatient@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32323,Hospital Outpatient@Late Charges Only,
-visit_occurrence,visit_concept_id,32333,Hospital Outpatient@MSP Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32318,Hospital Outpatient@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32332,Hospital Outpatient@OIG Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32335,Hospital Outpatient@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32324,Hospital Outpatient@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32325,Hospital Outpatient@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32334,Hospital Outpatient@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32327,Hospital Outpatient@Void/Cancel Hospice/CMS Coor Care/Non-med Religious/Cent for Excellence,
-visit_occurrence,visit_concept_id,32254,Hospital-Swing Beds,
-visit_occurrence,visit_concept_id,32344,Hospital-Swing Beds@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32346,Hospital-Swing Beds@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32345,Hospital-Swing Beds@Interim-first claim,
-visit_occurrence,visit_concept_id,32347,Hospital-Swing Beds@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32348,Hospital-Swing Beds@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32294,Initiated Adjustment Claim-other,
-visit_occurrence,visit_concept_id,32282,Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32281,Interim-first claim,
-visit_occurrence,visit_concept_id,32283,Interim-last claim (b),
-visit_occurrence,visit_concept_id,32293,Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32401,Intermediate Care - Level 1 (Including Medicare Part A),
-visit_occurrence,visit_concept_id,32057,Intermediate Care - Level 1 (Including Medicare Part A)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32064,Intermediate Care - Level 1 (Including Medicare Part A)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32059,Intermediate Care - Level 1 (Including Medicare Part A)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32058,Intermediate Care - Level 1 (Including Medicare Part A)@Interim-first claim,
-visit_occurrence,visit_concept_id,32060,Intermediate Care - Level 1 (Including Medicare Part A)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32065,Intermediate Care - Level 1 (Including Medicare Part A)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32061,Intermediate Care - Level 1 (Including Medicare Part A)@Late Charges Only,
-visit_occurrence,visit_concept_id,32056,Intermediate Care - Level 1 (Including Medicare Part A)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32067,Intermediate Care - Level 1 (Including Medicare Part A)@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32062,Intermediate Care - Level 1 (Including Medicare Part A)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32063,Intermediate Care - Level 1 (Including Medicare Part A)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32066,Intermediate Care - Level 1 (Including Medicare Part A)@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32402,Intermediate Care - Level 2 (Including Medicare Part A),
-visit_occurrence,visit_concept_id,32069,Intermediate Care - Level 2 (Including Medicare Part A)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32076,Intermediate Care - Level 2 (Including Medicare Part A)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32071,Intermediate Care - Level 2 (Including Medicare Part A)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32070,Intermediate Care - Level 2 (Including Medicare Part A)@Interim-first claim,
-visit_occurrence,visit_concept_id,32072,Intermediate Care - Level 2 (Including Medicare Part A)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32077,Intermediate Care - Level 2 (Including Medicare Part A)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32073,Intermediate Care - Level 2 (Including Medicare Part A)@Late Charges Only,
-visit_occurrence,visit_concept_id,32068,Intermediate Care - Level 2 (Including Medicare Part A)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32079,Intermediate Care - Level 2 (Including Medicare Part A)@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32074,Intermediate Care - Level 2 (Including Medicare Part A)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32075,Intermediate Care - Level 2 (Including Medicare Part A)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32078,Intermediate Care - Level 2 (Including Medicare Part A)@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32284,Late Charges Only,
-visit_occurrence,visit_concept_id,32270,Licensed Freestanding Emergency Medical Facility,
-visit_occurrence,visit_concept_id,32135,Licensed Freestanding Emergency Medical Facility@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32296,MSP Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32279,Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32295,OIG Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32261,Religious Non-medical Health Care Inst-Outpatient Services,
-visit_occurrence,visit_concept_id,32055,Religious Non-medical Health Care Inst-Outpatient Services@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32298,Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32285,Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32262,Reserved for NUBC,
-visit_occurrence,visit_concept_id,32174,Residential Facility@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32181,Residential Facility@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32176,Residential Facility@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32175,Residential Facility@Interim-first claim,
-visit_occurrence,visit_concept_id,32177,Residential Facility@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32182,Residential Facility@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32178,Residential Facility@Late Charges Only,
-visit_occurrence,visit_concept_id,32173,Residential Facility@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32184,Residential Facility@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32179,Residential Facility@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32180,Residential Facility@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32183,Residential Facility@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32255,Skilled Nursing-Inpatient (Includes Medicare Part A),
-visit_occurrence,visit_concept_id,32350,Skilled Nursing-Inpatient (Includes Medicare Part A)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32356,Skilled Nursing-Inpatient (Includes Medicare Part A)@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32352,Skilled Nursing-Inpatient (Includes Medicare Part A)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32351,Skilled Nursing-Inpatient (Includes Medicare Part A)@Interim-first claim,
-visit_occurrence,visit_concept_id,32353,Skilled Nursing-Inpatient (Includes Medicare Part A)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32357,Skilled Nursing-Inpatient (Includes Medicare Part A)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32349,Skilled Nursing-Inpatient (Includes Medicare Part A)@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32354,Skilled Nursing-Inpatient (Includes Medicare Part A)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32355,Skilled Nursing-Inpatient (Includes Medicare Part A)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32256,Skilled Nursing-Inpatient (Medicare Part B Only),
-visit_occurrence,visit_concept_id,32358,Skilled Nursing-Inpatient (Medicare Part B Only)@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32360,Skilled Nursing-Inpatient (Medicare Part B Only)@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32359,Skilled Nursing-Inpatient (Medicare Part B Only)@Interim-first claim,
-visit_occurrence,visit_concept_id,32361,Skilled Nursing-Inpatient (Medicare Part B Only)@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32364,Skilled Nursing-Inpatient (Medicare Part B Only)@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32362,Skilled Nursing-Inpatient (Medicare Part B Only)@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32363,Skilled Nursing-Inpatient (Medicare Part B Only)@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32257,Skilled Nursing-Outpatient,
-visit_occurrence,visit_concept_id,32366,Skilled Nursing-Outpatient@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32372,Skilled Nursing-Outpatient@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32371,Skilled Nursing-Outpatient@Final Claim for a Home Health PPS Episode,
-visit_occurrence,visit_concept_id,32368,Skilled Nursing-Outpatient@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32367,Skilled Nursing-Outpatient@Interim-first claim,
-visit_occurrence,visit_concept_id,32369,Skilled Nursing-Outpatient@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32373,Skilled Nursing-Outpatient@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32365,Skilled Nursing-Outpatient@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32370,Skilled Nursing-Outpatient@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32374,Skilled Nursing-Outpatient@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32186,Special Facility - Other@Admit through Discharge Claim,
-visit_occurrence,visit_concept_id,32397,Special Facility - Other@CWF Initiated Adjustment Claim,
-visit_occurrence,visit_concept_id,32188,Special Facility - Other@Interim-Cont claim (b),
-visit_occurrence,visit_concept_id,32187,Special Facility - Other@Interim-first claim,
-visit_occurrence,visit_concept_id,32189,Special Facility - Other@Interim-last claim (b),
-visit_occurrence,visit_concept_id,32398,Special Facility - Other@Intermediary Adjustment Claim (Other than QIO or Provider),
-visit_occurrence,visit_concept_id,32190,Special Facility - Other@Late Charges Only,
-visit_occurrence,visit_concept_id,32185,Special Facility - Other@Non-Payment/Zero,
-visit_occurrence,visit_concept_id,32400,Special Facility - Other@Replacement of Prior Abbreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32191,Special Facility - Other@Replacement of Prior Claim,
-visit_occurrence,visit_concept_id,32192,Special Facility - Other@Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32399,Special Facility - Other@Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32277,Special Facility-Other,
-visit_occurrence,visit_concept_id,32278,Special Facility-Other,
-visit_occurrence,visit_concept_id,32286,Void/ Cancel of Prior claim (a),
-visit_occurrence,visit_concept_id,32297,Void/Cance a Prior Abreviated Encounter Submission,
-visit_occurrence,visit_concept_id,32290,Void/Cancel Hospice/CMS Coor Care/Non-med Religious/Cent for Excellence,
-visit_occurrence,visit_type_concept_id,44818519,Clinical Study visit,S
-visit_occurrence,visit_type_concept_id,32034,Visit derived from EHR billing record,S
-visit_occurrence,visit_type_concept_id,32035,Visit derived from EHR encounter record,S
-visit_occurrence,visit_type_concept_id,44818518,Visit derived from EHR record,S
-visit_occurrence,visit_type_concept_id,44818517,Visit derived from encounter on claim,S
-visit_occurrence,visit_type_concept_id,32031,Visit derived from encounter on claim authorization,S
-visit_occurrence,visit_type_concept_id,32033,Visit derived from encounter on dental claim,S
-visit_occurrence,visit_type_concept_id,32021,Visit derived from encounter on medical claim,S
-visit_occurrence,visit_type_concept_id,32023,Visit derived from encounter on medical facility claim,S
-visit_occurrence,visit_type_concept_id,32027,Visit derived from encounter on medical facility claim deferred,S
-visit_occurrence,visit_type_concept_id,32026,Visit derived from encounter on medical facility claim denied,S
-visit_occurrence,visit_type_concept_id,32025,Visit derived from encounter on medical facility claim paid,S
-visit_occurrence,visit_type_concept_id,32024,Visit derived from encounter on medical professional claim,S
-visit_occurrence,visit_type_concept_id,32030,Visit derived from encounter on medical professional claim deferred,S
-visit_occurrence,visit_type_concept_id,32029,Visit derived from encounter on medical professional claim denied,S
-visit_occurrence,visit_type_concept_id,32028,Visit derived from encounter on medical professional claim paid,S
-visit_occurrence,visit_type_concept_id,32022,Visit derived from encounter on pharmacy claim,S
-visit_occurrence,visit_type_concept_id,32032,Visit derived from encounter on vision claim,S
diff --git a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/concept_id_hint_select.sql b/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/concept_id_hint_select.sql
index 473321e4..701d647b 100644
--- a/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/concept_id_hint_select.sql
+++ b/rabbitinahat/src/main/resources/org/ohdsi/rabbitInAHat/dataModel/concept_id_hint_select.sql
@@ -1,4 +1,4 @@
--- SELECT vocabulary_version from @vocab.vocabulary WHERE vocabulary_id = 'None';
+SELECT vocabulary_version from @vocab.vocabulary WHERE vocabulary_id = 'None';
WITH concept_hints AS (
SELECT 'person' AS omop_cdm_table,
@@ -10,7 +10,7 @@ WITH concept_hints AS (
concept_class_id,
standard_concept
FROM @vocab.concept
- WHERE domain_id = 'Gender'
+ WHERE domain_id = 'Gender' -- Also include invalid concepts 'UNKNOWN' and 'OTHER'
UNION ALL
SELECT 'person' AS omop_cdm_table,
'ethnicity_concept_id' AS omop_cdm_field,
@@ -22,6 +22,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Ethnicity'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'person' AS omop_cdm_table,
'race_concept_id' AS omop_cdm_field,
@@ -33,6 +34,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Race'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'condition_occurrence' AS omop_cdm_table,
'condition_type_concept_id' AS omop_cdm_field,
@@ -45,6 +47,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Condition Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'cost' AS omop_cdm_table,
'cost_type_concept_id' AS omop_cdm_field,
@@ -57,6 +60,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Cost Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'death' AS omop_cdm_table,
'death_type_concept_id' AS omop_cdm_field,
@@ -69,6 +73,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Death Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'device_exposure' AS omop_cdm_table,
'device_type_concept_id' AS omop_cdm_field,
@@ -81,6 +86,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Device Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'drug_exposure' AS omop_cdm_table,
'drug_type_concept_id' AS omop_cdm_field,
@@ -93,6 +99,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Drug Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'episode' AS omop_cdm_table,
'episode_type_concept_id' AS omop_cdm_field,
@@ -105,6 +112,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Episode Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'measurement' AS omop_cdm_table,
'measurement_type_concept_id' AS omop_cdm_field,
@@ -117,6 +125,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Meas Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'note' AS omop_cdm_table,
'note_type_concept_id' AS omop_cdm_field,
@@ -129,6 +138,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Note Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'observation_period' AS omop_cdm_table,
'period_type_concept_id' AS omop_cdm_field,
@@ -141,6 +151,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Obs Period Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'observation' AS omop_cdm_table,
'observation_type_concept_id' AS omop_cdm_field,
@@ -153,6 +164,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Observation Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'procedure_occurrence' AS omop_cdm_table,
'procedure_type_concept_id' AS omop_cdm_field,
@@ -165,6 +177,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Procedure Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'specimen' AS omop_cdm_table,
'specimen_type_concept_id' AS omop_cdm_field,
@@ -177,6 +190,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Specimen Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'visit_occurrence' AS omop_cdm_table,
'visit_type_concept_id' AS omop_cdm_field,
@@ -189,6 +203,7 @@ WITH concept_hints AS (
FROM @vocab.concept
WHERE domain_id = 'Type Concept'
AND concept_class_id = 'Visit Type'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'visit_occurrence' AS omop_cdm_table,
'visit_concept_id' AS omop_cdm_field,
@@ -200,6 +215,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Visit'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'cost' AS omop_cdm_table,
'cost_concept_id' AS omop_cdm_field,
@@ -211,6 +227,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Cost'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'payer_plan_period' AS omop_cdm_table,
'plan_concept_id' AS omop_cdm_field,
@@ -222,6 +239,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Plan'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'drug_exposure' AS omop_cdm_table,
'route_concept_id' AS omop_cdm_field,
@@ -233,6 +251,7 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Route'
+ AND invalid_reason IS NULL
UNION ALL
SELECT 'measurement' AS omop_cdm_table,
'operator_concept_id' AS omop_cdm_field,
@@ -244,8 +263,22 @@ WITH concept_hints AS (
standard_concept
FROM @vocab.concept
WHERE domain_id = 'Meas Value Operator'
+ AND invalid_reason IS NULL
+ UNION ALL
+ SELECT 'note' AS omop_cdm_table,
+ 'language_concept_id' AS omop_cdm_field,
+ concept_id,
+ concept_name,
+ domain_id,
+ vocabulary_id,
+ concept_class_id,
+ standard_concept
+ FROM @vocab.concept_ancestor
+ JOIN vocab.concept ON concept_id = descendant_concept_id
+ WHERE ancestor_concept_id = 4182347 -- World languages
+ AND invalid_reason IS NULL
)
SELECT *
FROM concept_hints
-ORDER BY omop_cdm_table, omop_cdm_field, standard_concept, concept_name, domain_id, concept_class_id, vocabulary_id
+ORDER BY omop_cdm_table, omop_cdm_field, standard_concept, concept_name, domain_id, concept_class_id, vocabulary_id, concept_id ASC
;
diff --git a/whiterabbit/pom.xml b/whiterabbit/pom.xml
index 8ebb1da5..2752e3ee 100644
--- a/whiterabbit/pom.xml
+++ b/whiterabbit/pom.xml
@@ -5,7 +5,7 @@
leporidae
org.ohdsi
- 0.10.0
+ 0.10.1
4.0.0
diff --git a/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/WhiteRabbitMain.java b/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/WhiteRabbitMain.java
index 84c93323..93c8eb09 100644
--- a/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/WhiteRabbitMain.java
+++ b/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/WhiteRabbitMain.java
@@ -105,6 +105,7 @@ public class WhiteRabbitMain implements ActionListener {
private JTextField targetDatabaseField;
private JTextField sourceDelimiterField;
private JComboBox targetCSVFormat;
+ private JCheckBox doUniformSampling;
private JTextField sourceServerField;
private JTextField sourceUserField;
private JTextField sourcePasswordField;
@@ -536,46 +537,43 @@ public void actionPerformed(ActionEvent e) {
targetPanel.setLayout(new GridLayout(0, 2));
targetPanel.setBorder(BorderFactory.createTitledBorder("Target data location"));
targetPanel.add(new JLabel("Data type"));
- targetType = new JComboBox(new String[] { "Delimited text files", "MySQL", "Oracle", "SQL Server", "PostgreSQL" });
+ targetType = new JComboBox<>(new String[] { "Delimited text files", "MySQL", "Oracle", "SQL Server", "PostgreSQL" });
targetType.setToolTipText("Select the type of source data available");
- targetType.addItemListener(new ItemListener() {
-
- @Override
- public void itemStateChanged(ItemEvent arg0) {
- targetIsFiles = arg0.getItem().toString().equals("Delimited text files");
- targetServerField.setEnabled(!targetIsFiles);
- targetUserField.setEnabled(!targetIsFiles);
- targetPasswordField.setEnabled(!targetIsFiles);
- targetDatabaseField.setEnabled(!targetIsFiles);
- targetCSVFormat.setEnabled(targetIsFiles);
-
- if (!targetIsFiles && arg0.getItem().toString().equals("Oracle")) {
- targetServerField
- .setToolTipText("For Oracle servers this field contains the SID, servicename, and optionally the port: '/', ':/', '/', or ':/'");
- targetUserField.setToolTipText("For Oracle servers this field contains the name of the user used to log in");
- targetPasswordField.setToolTipText("For Oracle servers this field contains the password corresponding to the user");
- targetDatabaseField
- .setToolTipText("For Oracle servers this field contains the schema (i.e. 'user' in Oracle terms) containing the source tables");
- } else if (!targetIsFiles && arg0.getItem().toString().equals("PostgreSQL")) {
+ targetType.addItemListener(event -> {
+ targetIsFiles = event.getItem().toString().equals("Delimited text files");
+ targetServerField.setEnabled(!targetIsFiles);
+ targetUserField.setEnabled(!targetIsFiles);
+ targetPasswordField.setEnabled(!targetIsFiles);
+ targetDatabaseField.setEnabled(!targetIsFiles);
+ targetCSVFormat.setEnabled(targetIsFiles);
+
+ if (targetIsFiles) {
+ return;
+ }
+ // Default tooltips, to be overridden per database if necessary
+ targetServerField.setToolTipText("The name or IP address of the database server");
+ targetUserField.setToolTipText("The user used to log in to the server");
+ targetPasswordField.setToolTipText("The password used to log in to the server");
+ targetDatabaseField.setToolTipText("The name of the database containing the source tables");
+
+ switch (event.getItem().toString()) {
+ case "Oracle":
+ targetServerField.setToolTipText("For Oracle servers this field contains the SID, servicename, and optionally the port: '/', ':/', '/', or ':/'");
+ targetDatabaseField.setToolTipText("For Oracle servers this field contains the schema (i.e. 'user' in Oracle terms) containing the source tables");
+ break;
+ case "PostgreSQL":
targetServerField.setToolTipText("For PostgreSQL servers this field contains the host name and database name (/)");
- targetUserField.setToolTipText("The user used to log in to the server");
- targetPasswordField.setToolTipText("The password used to log in to the server");
- targetDatabaseField.setToolTipText("For PostgreSQL servers this field contains the schema containing the source tables");
- } else if (!targetIsFiles && arg0.getItem().toString().equals("BigQuery")) {
+ targetDatabaseField.setToolTipText("For PostgreSQL servers this field contains the *schema* containing the source tables");
+ break;
+ case "BigQuery":
targetServerField.setToolTipText("GBQ ProjectID");
targetUserField.setToolTipText("GBQ OAuthServiceAccountEmail");
targetPasswordField.setToolTipText("GBQ OAuthPvtKeyPath");
targetDatabaseField.setToolTipText("GBQ Data Set within ProjectID");
- } else if (!targetIsFiles) {
- targetServerField.setToolTipText("This field contains the name or IP address of the database server");
- if (arg0.getItem().toString().equals("SQL Server"))
- targetUserField
- .setToolTipText("The user used to log in to the server. Optionally, the domain can be specified as / (e.g. 'MyDomain/Joe')");
- else
- targetUserField.setToolTipText("The user used to log in to the server");
- targetPasswordField.setToolTipText("The password used to log in to the server");
- targetDatabaseField.setToolTipText("The name of the database containing the source tables");
- }
+ break;
+ case "SQL Server":
+ targetUserField.setToolTipText("The user used to log in to the server. Optionally, the domain can be specified as / (e.g. 'MyDomain/Joe')");
+ break;
}
});
targetPanel.add(targetType);
@@ -604,6 +602,12 @@ public void itemStateChanged(ItemEvent arg0) {
targetCSVFormat.setEnabled(true);
targetPanel.add(targetCSVFormat);
+ targetPanel.add(new JLabel(""));
+ doUniformSampling = new JCheckBox("Uniform Sampling", false);
+ doUniformSampling.setToolTipText("For all fields, choose every possible value with the same probability");
+ doUniformSampling.setEnabled(true);
+ targetPanel.add(doUniformSampling);
+
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 1;
@@ -1010,7 +1014,7 @@ private void fakeDataRun() {
String message = "File " + filename + " not found";
JOptionPane.showMessageDialog(frame, StringUtilities.wordWrap(message, 80), "File not found", JOptionPane.ERROR_MESSAGE);
} else {
- FakeDataThread thread = new FakeDataThread(Integer.parseInt(generateRowCount.getValue().toString()), filename);
+ FakeDataThread thread = new FakeDataThread();
thread.start();
}
}
@@ -1052,22 +1056,23 @@ public void run() {
}
private class FakeDataThread extends Thread {
- private int maxRowCount;
- private String filename;
-
- public FakeDataThread(int maxRowCount, String filename) {
- this.maxRowCount = maxRowCount;
- this.filename = filename;
- }
public void run() {
- for (JComponent component : componentsToDisableWhenRunning)
+ for (JComponent component : componentsToDisableWhenRunning) {
component.setEnabled(false);
+ }
try {
FakeDataGenerator process = new FakeDataGenerator();
DbSettings dbSettings = getTargetDbSettings();
- if (dbSettings != null)
- process.generateData(dbSettings, maxRowCount, filename, folderField.getText());
+ if (dbSettings != null) {
+ process.generateData(
+ dbSettings,
+ Integer.parseInt(generateRowCount.getValue().toString()),
+ scanReportFileField.getText(),
+ folderField.getText(),
+ doUniformSampling.isSelected()
+ );
+ }
} catch (Exception e) {
handleError(e);
} finally {
diff --git a/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/fakeDataGenerator/FakeDataGenerator.java b/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/fakeDataGenerator/FakeDataGenerator.java
index 7b953fdf..c35f41f2 100644
--- a/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/fakeDataGenerator/FakeDataGenerator.java
+++ b/whiterabbit/src/main/java/org/ohdsi/whiteRabbit/fakeDataGenerator/FakeDataGenerator.java
@@ -17,15 +17,13 @@
******************************************************************************/
package org.ohdsi.whiteRabbit.fakeDataGenerator;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import java.util.Set;
+import java.util.*;
import org.ohdsi.databases.RichConnection;
import org.ohdsi.rabbitInAHat.dataModel.Database;
import org.ohdsi.rabbitInAHat.dataModel.Field;
import org.ohdsi.rabbitInAHat.dataModel.Table;
+import org.ohdsi.rabbitInAHat.dataModel.ValueCounts;
import org.ohdsi.utilities.StringUtilities;
import org.ohdsi.utilities.files.Row;
import org.ohdsi.utilities.files.WriteCSVFileWithHeader;
@@ -33,17 +31,22 @@
public class FakeDataGenerator {
- private RichConnection connection;
- private DbSettings.SourceType targetType;
- private int maxRowsPerTable = 1000;
+ private RichConnection connection;
+ private int maxRowsPerTable = 1000;
+ private boolean doUniformSampling;
- private static int REGULAR = 0;
- private static int RANDOM = 1;
- private static int PRIMARY_KEY = 2;
+ private static int REGULAR = 0;
+ private static int RANDOM = 1;
+ private static int PRIMARY_KEY = 2;
public void generateData(DbSettings dbSettings, int maxRowsPerTable, String filename, String folder) {
+ generateData(dbSettings, maxRowsPerTable, filename, folder, false);
+ }
+
+ public void generateData(DbSettings dbSettings, int maxRowsPerTable, String filename, String folder, boolean doUniformSampling) {
this.maxRowsPerTable = maxRowsPerTable;
- this.targetType = dbSettings.sourceType;
+ DbSettings.SourceType targetType = dbSettings.sourceType;
+ this.doUniformSampling = doUniformSampling;
StringUtilities.outputWithTime("Starting creation of fake data");
System.out.println("Loading scan report from " + filename);
@@ -76,21 +79,21 @@ public void generateData(DbSettings dbSettings, int maxRowsPerTable, String file
}
private List generateRows(Table table) {
+ if (table.getRowCount() == 0 || table.getRowsCheckedCount() == 0) {
+ // Empty table, return empty list (writes empty file)
+ return new ArrayList<>();
+ }
+
String[] fieldNames = new String[table.getFields().size()];
ValueGenerator[] valueGenerators = new ValueGenerator[table.getFields().size()];
int size = maxRowsPerTable;
for (int i = 0; i < table.getFields().size(); i++) {
Field field = table.getFields().get(i);
- // If a field in the table is empty, the whole table is empty.
- // Return empty list (writes empty file)
- if (field.getType().equals("empty")) {
- return new ArrayList<>();
- }
fieldNames[i] = field.getName();
ValueGenerator valueGenerator = new ValueGenerator(field);
valueGenerators[i] = valueGenerator;
- if (valueGenerator.generatorType == PRIMARY_KEY && valueGenerator.values.length < size)
- size = valueGenerator.values.length;
+// if (valueGenerator.generatorType == PRIMARY_KEY && valueGenerator.values.length < size)
+// size = valueGenerator.values.length;
}
List rows = new ArrayList();
for (int i = 0; i < size; i++) {
@@ -115,40 +118,6 @@ private void createTable(Table table) {
connection.execute(sql.toString());
}
- // private String correctType(Field field) {
- // String type = field.getType().toUpperCase();
- // if (field.getMaxLength() == 0)
- // field.setMaxLength(256);
- // if (dbType == DbType.MYSQL) {
- // if (isVarChar(type))
- // return "VARCHAR(" + field.getMaxLength() + ")";
- // else if (isInt(type))
- // return "BIGINT";
- // else if (isNumber(type))
- // return "DOUBLE";
- // else if (isText(type))
- // return "TEXT";
- // else if (type.equals("EMPTY"))
- // return "VARCHAR(255)";
- // else
- // return type;
- // } else if (dbType == DbType.POSTGRESQL) {
- // if (isVarChar(type))
- // return "VARCHAR(" + field.getMaxLength() + ")";
- // else if (isInt(type))
- // return "BIGINT";
- // else if (isNumber(type))
- // return "DOUBLE";
- // else if (isText(type))
- // return "TEXT";
- // else if (type.equals("EMPTY"))
- // return "VARCHAR(255)";
- // else
- // return type;
- // }
- // return null;
- // }
-
private boolean isVarChar(String type) {
type = type.toUpperCase();
return (type.equals("VARCHAR") || type.equals("VARCHAR2") || type.equals("CHARACTER VARYING"));
@@ -159,58 +128,51 @@ private boolean isInt(String type) {
return (type.equals("INT") || type.equals("INTEGER") || type.equals("BIGINT"));
}
- // private boolean isNumber(String type) {
- // type = type.toUpperCase();
- // return (type.equals("REAL") || type.equals("DOUBLE") || type.equals("NUMBER") || type.equals("FLOAT") || type.equals("DOUBLE PRECISION"));
- // }
- //
- // private boolean isText(String type) {
- // type = type.toUpperCase();
- // return (type.equals("TEXT") || type.equals("CLOB"));
- // }
-
private class ValueGenerator {
- private String[] values;
- private int[] cumulativeFrequency;
- private int totalFrequency;
- private String type;
- private int length;
- private int cursor;
- private int generatorType = REGULAR;
- private Random random = new Random();
+ private String[] values;
+ private int[] cumulativeFrequency;
+ private int totalFrequency;
+ private String fieldName;
+ private String type;
+ private int length;
+ private int pk_cursor;
+ private int generatorType;
+ private Random random = new Random();
+ private boolean isNotUniqueWarningShown = false;
public ValueGenerator(Field field) {
- String[][] valueCounts = field.getValueCounts();
+ ValueCounts valueCounts = field.getValueCounts();
+ fieldName = field.getName();
type = field.getType();
- if (valueCounts[0][0].equals("List truncated...")) {
+ boolean isUnique = field.getFractionUnique() != null && field.getFractionUnique() == 1;
+
+ if (valueCounts.isEmpty()) {
length = field.getMaxLength();
generatorType = RANDOM;
} else {
- int length = valueCounts.length;
- if (valueCounts[length - 1][1].equals("")) // Last value could be "List truncated..."
- length--;
-
+ int length = valueCounts.size();
+ int runningTotal = 0;
values = new String[length];
cumulativeFrequency = new int[length];
- totalFrequency = 0;
for (int i = 0; i < length; i++) {
- int frequency = (int) (Double.parseDouble(valueCounts[i][1]));
- totalFrequency += frequency;
-
- values[i] = valueCounts[i][0];
- cumulativeFrequency[i] = totalFrequency;
+ values[i] = valueCounts.get(i).getValue();
+ int frequency;
+ if (doUniformSampling) {
+ frequency = 1;
+ } else {
+ frequency = valueCounts.get(i).getFrequency();
+ }
+ runningTotal += frequency;
+ cumulativeFrequency[i] = runningTotal;
}
+ totalFrequency = runningTotal;
generatorType = REGULAR;
}
- }
-
- private String[] convertToArray(Set set) {
- String[] array = new String[set.size()];
- int i = 0;
- for (String item : set)
- array[i++] = item;
- return array;
+ if (isUnique) {
+ generatorType = PRIMARY_KEY;
+ pk_cursor = 0;
+ }
}
public String generate() {
@@ -233,16 +195,27 @@ else if (type.equals("Empty"))
return "";
else
return "";
- } else if (generatorType == PRIMARY_KEY) { // Pick the next value:
- String value = values[cursor];
- cursor++;
- if (cursor >= values.length)
- cursor = 0;
+ } else if (generatorType == PRIMARY_KEY) {
+ // Pick the next value or use the pk_cursor
+ String value;
+ if (values != null) {
+ if (pk_cursor >= values.length) {
+ // Loop back to the first (not a primary key anymore!)
+ pk_cursor = 0;
+ if (!isNotUniqueWarningShown) {
+ StringUtilities.outputWithTime("Used all the known " + values.length + " values for unique field '" + fieldName + "'. The values are recycled and the fake data in this column will not be unique.");
+ isNotUniqueWarningShown = true;
+ }
+ }
+ value = values[pk_cursor++];
+ } else {
+ value = String.valueOf(++pk_cursor);
+ }
return value;
} else { // Sample from values:
int index = random.nextInt(totalFrequency);
int i = 0;
- while (i < values.length - 1 && cumulativeFrequency[i] < index)
+ while (i < values.length - 1 && cumulativeFrequency[i] <= index)
i++;
if (!type.equals("VarChar") && values[i].trim().length() == 0)
return "";