package gov.samhsa.acs.documentsegmentation.valueset;
public class ConceptCode {
private String code;
private String codeSystem;
private String codeSystemName;
private String valueSet;
private String valueSetCategory;
private String codeName;
private static final String CODE = "ConceptCode:";
private static final String CODESYSTEM = "CodeSystem:";
private static final String CODESYSTEMNAME = "CodeSystemName:";
private static final String VALUESET = "ValueSet:";
private static final String VALUESETCATEGORY = "ValueSetCategory:";
private static final String CODENAME = "ConceptCodeName:";
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCodeSystem() {
return codeSystem;
}
public void setCodeSystem(String codeSystem) {
this.codeSystem = codeSystem;
}
public String getCodeSystemName() {
return codeSystemName;
}
public void setCodeSystemName(String codeSystemName) {
this.codeSystemName = codeSystemName;
}
public String getValueSet() {
return valueSet;
}
public void setValueSet(String valueSet) {
this.valueSet = valueSet;
}
public String getValueSetCategory() {
return valueSetCategory;
}
public void setValueSetCategory(String valueSetCategory) {
this.valueSetCategory = valueSetCategory;
}
public String getCodeName() {
return codeName;
}
public void setCodeName(String codeName) {
this.codeName = codeName;
}
public void setVariable(String value) {
String actualValue = extractActualValue(value);
if (value.startsWith(CODE)) {
setCode(actualValue);
} else if (value.startsWith(CODENAME)) {
setCodeName(actualValue);
} else if (value.startsWith(CODESYSTEM)) {
setCodeSystem(actualValue);
} else if (value.startsWith(CODESYSTEMNAME)) {
setCodeSystemName(actualValue);
} else if (value.startsWith(VALUESET)) {
setValueSet(actualValue);
} else if (value.startsWith(VALUESETCATEGORY)) {
setValueSetCategory(actualValue);
} else {
throw new IllegalArgumentException(
"The type of data cannot be identified.");
}
}
@Override
public String toString(){
return code+":"+codeSystem+":"+valueSet+":"+valueSetCategory;
}
private String extractActualValue(String value) {
if (value.indexOf(":") + 1 == value.length()) {
return "";
}
return value.substring(value.indexOf(":") + 1);
}
}