Skip to content
This repository was archived by the owner on Jul 8, 2020. It is now read-only.

Commit

Permalink
Merge pull request #2 from NCIEVS/master
Browse files Browse the repository at this point in the history
NCI Term Browser 2.8
  • Loading branch information
fragosog committed May 5, 2016
2 parents af3146e + 9c9f159 commit 446d0e0
Show file tree
Hide file tree
Showing 110 changed files with 15,220 additions and 925 deletions.
Binary file modified software/browser-util/browser-util.jar
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package gov.nih.nci.evs.browser.common;

import java.util.List;
import java.util.Arrays;

/**
* <!-- LICENSE_TEXT_START -->
* Copyright 2008,2009 NGIT. This software was developed in conjunction
Expand Down Expand Up @@ -200,7 +203,9 @@ public class Constants {
"/IFRAME ", "/SCRIPT", ";DECLARE", "</SPAN>", "</XML>",
"<SCRIPT>", "<STYLE>", "=(", "=FUNCTION", "\"ALERT",
"ALERT(", "A HREF=", "BASE HREF", "BGSOUND SRC", "BODY ONLOAD",
"BR SIZE", "CAST(", "DATA=", "DIV STYLE", "E-",
//[NCITERM-733] Search using a string containing a '-' character may result in a misleading error page.
//"BR SIZE", "CAST(", "DATA=", "DIV STYLE", "E-",
"BR SIZE", "CAST(", "DATA=", "DIV STYLE",
"ECHO(", "EXEC(", "EXPRESSION(", "FONT-FAMILY", "HREF=",
"IFRAME ", "IFRAME SRC", "IMG DYNSRC", "IMG LOWSRC", "IMG SRC=",
"IMG STYLE", "INPUT TYPE", "JAVASCRIPT:ALERT", "LINK REL", "META HTTP-EQUIV",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ public boolean isResolvedValueSetCodingScheme(CodingScheme cs) {
public Vector getResolvedValueSetCodingSchemes() {
Vector w = new Vector();
try {
List<CodingScheme> choices = new ArrayList<CodingScheme>();
//List<CodingScheme> choices = new ArrayList<CodingScheme>();
LexEVSResolvedValueSetService lrvs = new LexEVSResolvedValueSetServiceImpl(lbSvc);

if (lrvs == null) {
Expand All @@ -268,7 +268,7 @@ public HashMap getResolvedValueSetHashMap() {
if (resovedValueSetHashMap != null) return resovedValueSetHashMap;
HashMap hmap = new HashMap();
try {
List<CodingScheme> choices = new ArrayList<CodingScheme>();
//List<CodingScheme> choices = new ArrayList<CodingScheme>();
LexEVSResolvedValueSetService lrvs = new LexEVSResolvedValueSetServiceImpl(lbSvc);
List<CodingScheme> schemes = lrvs.listAllResolvedValueSets();
for (int i = 0; i < schemes.size(); i++) {
Expand Down Expand Up @@ -383,7 +383,7 @@ public Vector getCodingSchemes(boolean excludeMappings) {

public Vector getMappingCodingSchemes() {
Vector w = new Vector();
resovedValueSetHashMap = getResolvedValueSetHashMap();
//resovedValueSetHashMap = getResolvedValueSetHashMap();
boolean includeInactive = false;
try {
CodingSchemeRenderingList csrl = null;
Expand Down Expand Up @@ -1121,4 +1121,22 @@ public String getMappingSourceAndTarget(String scheme, String version) {
+ relation.getTargetCodingSchemeVersion();
}


public HashMap updateCodeNamespace2VersionMap(HashMap hmap, String codeNamespace) {
if (hmap == null) {
hmap = new HashMap();
}
if (codeNamespace == null) {
return hmap;
}

if (hmap.containsKey(codeNamespace)) {
return hmap;
}

String version = getVocabularyVersionByTag(codeNamespace, "PRODUCTION");
hmap.put(codeNamespace, version);
return hmap;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ public Entity getConceptByCode(String codingSchemeName, String vers, String code

public String encodeTerm(String s) {
if (s == null) return null;
if (StringUtils.isAlphanumeric(s)) return s;
if (gov.nih.nci.evs.browser.utils.StringUtils.isAlphanumeric(s)) return s;

StringBuilder buf = new StringBuilder(s.length());
for (int i = 0; i < s.length(); i++) {
Expand Down Expand Up @@ -444,7 +444,7 @@ public String getConceptStatus(String scheme, String version,
if (status_vec == null || status_vec.size() == 0) {
con_status = c.getStatus();
} else {
con_status = StringUtils.convertToCommaSeparatedValue(status_vec);
con_status = gov.nih.nci.evs.browser.utils.StringUtils.convertToCommaSeparatedValue(status_vec);
}
return con_status;
}
Expand Down Expand Up @@ -621,7 +621,7 @@ public Vector getConceptStatusByConceptCodes(String scheme,
con_status = c.getStatus();
} else {
con_status =
StringUtils.convertToCommaSeparatedValue(status_vec);
gov.nih.nci.evs.browser.utils.StringUtils.convertToCommaSeparatedValue(status_vec);
}
w.add(con_status);
} else {
Expand Down Expand Up @@ -1144,6 +1144,78 @@ public HashMap getPropertyName2ValueHashMap(Entity curr_concept) {
return hmap;
}

public HashMap getPropertyQualifierHashMap(Entity node) {
HashMap hmap = new HashMap();
Presentation[] presentations = node.getPresentation();
for (int i = 0; i < presentations.length; i++) {
Presentation presentation = presentations[i];
String key = presentation.getPropertyName() + "$" + presentation.getValue().getContent();
PropertyQualifier[] qualifiers = presentation.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
Vector v = new Vector();
if (hmap.containsKey(key)) {
v = (Vector) hmap.get(key);
}
v.add(value);
hmap.put(key, v);
}
}

Definition[] definitions = node.getDefinition();
for (int i = 0; i < definitions.length; i++) {
Definition definition = definitions[i];
String key = definition.getPropertyName() + "$" + definition.getValue().getContent();
PropertyQualifier[] qualifiers = definition.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
Vector v = new Vector();
if (hmap.containsKey(key)) {
v = (Vector) hmap.get(key);
}
v.add(value);
hmap.put(key, v);
}
}

Comment[] comments = node.getComment();
for (int i = 0; i < comments.length; i++) {
Comment comment = comments[i];
String key = comment.getPropertyName() + "$" + comment.getValue().getContent();
PropertyQualifier[] qualifiers = comment.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
Vector v = new Vector();
if (hmap.containsKey(key)) {
v = (Vector) hmap.get(key);
}
v.add(value);
hmap.put(key, v);
}
}

Property[] properties = node.getProperty();
for (int i = 0; i < properties.length; i++) {
Property property = properties[i];
String key = property.getPropertyName() + "$" + property.getValue().getContent();
PropertyQualifier[] qualifiers = property.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
Vector v = new Vector();
if (hmap.containsKey(key)) {
v = (Vector) hmap.get(key);
}
v.add(value);
hmap.put(key, v);
}
}
return hmap;
}

public Vector getRelationshipSource(String scheme, String version, String code) {
return getRelationshipTarget(scheme, version, code, true);
}
Expand Down Expand Up @@ -1259,5 +1331,190 @@ public Vector getRelationshipTarget(String scheme, String version, String code,
return v;
}

public Vector getPropertyTable(Entity node) {
Vector w = new Vector();
StringBuffer buf = new StringBuffer();

Presentation[] presentations = node.getPresentation();
for (int i = 0; i < presentations.length; i++) {
buf = new StringBuffer();
Presentation presentation = presentations[i];
buf.append(presentation.getPropertyName() + "|" + presentation.getValue().getContent());
StringBuffer qualifier_buf = new StringBuffer();
PropertyQualifier[] qualifiers = presentation.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
qualifier_buf.append(value).append("$");
}
String qualifier_str = qualifier_buf.toString();
if (qualifier_str.endsWith("$")) {
qualifier_str = qualifier_str.substring(0, qualifier_str.length()-1);
}
if (qualifier_buf.length() > 0) {
buf.append("|").append(qualifier_str);
}
w.add(buf.toString());
}

Definition[] definitions = node.getDefinition();
for (int i = 0; i < definitions.length; i++) {
buf = new StringBuffer();
Definition definition = definitions[i];
buf.append(definition.getPropertyName() + "|" + definition.getValue().getContent());
StringBuffer qualifier_buf = new StringBuffer();
PropertyQualifier[] qualifiers = definition.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
qualifier_buf.append(value).append("$");
}
String qualifier_str = qualifier_buf.toString();
if (qualifier_str.endsWith("$")) {
qualifier_str = qualifier_str.substring(0, qualifier_str.length()-1);
}
if (qualifier_buf.length() > 0) {
buf.append("|").append(qualifier_str);
}
w.add(buf.toString());
}

Comment[] comments = node.getComment();
for (int i = 0; i < comments.length; i++) {
buf = new StringBuffer();
Comment comment = comments[i];
buf.append(comment.getPropertyName() + "|" + comment.getValue().getContent());
StringBuffer qualifier_buf = new StringBuffer();
PropertyQualifier[] qualifiers = comment.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
qualifier_buf.append(value).append("$");
}
String qualifier_str = qualifier_buf.toString();
if (qualifier_str.endsWith("$")) {
qualifier_str = qualifier_str.substring(0, qualifier_str.length()-1);
}
if (qualifier_buf.length() > 0) {
buf.append("|").append(qualifier_str);
}
w.add(buf.toString());
}

Property[] properties = node.getProperty();
for (int i = 0; i < properties.length; i++) {
buf = new StringBuffer();
Property property = properties[i];
buf.append(property.getPropertyName() + "|" + property.getValue().getContent());
StringBuffer qualifier_buf = new StringBuffer();
PropertyQualifier[] qualifiers = property.getPropertyQualifier();
for (int k=0; k<qualifiers.length; k++) {
PropertyQualifier qualifier = qualifiers[k];
String value = qualifier.getPropertyQualifierName() + "=" + qualifier.getValue().getContent();
qualifier_buf.append(value).append("$");
}
String qualifier_str = qualifier_buf.toString();
if (qualifier_str.endsWith("$")) {
qualifier_str = qualifier_str.substring(0, qualifier_str.length()-1);
}
if (qualifier_buf.length() > 0) {
buf.append("|").append(qualifier_str);
}
w.add(buf.toString());
}

w = SortUtils.quickSort(w);
return w;
}

public String sortPropertyQualifiers(String qualifiers) {
if (qualifiers == null) return null;
Vector u = gov.nih.nci.evs.browser.utils.StringUtils.parseData(qualifiers, "$");
u = SortUtils.quickSort(u);
StringBuffer buf = new StringBuffer();
for (int i=0; i<u.size(); i++) {
String t = (String) u.elementAt(i);
buf.append(t).append("$");
}
String s = buf.toString();
if (s.endsWith("$")) {
s = s.substring(0, s.length()-1);
}
return s;
}


public HashMap getPropertyNameValue2QualifierHashMap(Vector property_table) {
if (property_table == null) return null;
HashMap hmap = new HashMap();
String qualifiers = null;
for (int i=0; i<property_table.size(); i++) {
String t = (String) property_table.elementAt(i);
Vector u = gov.nih.nci.evs.browser.utils.StringUtils.parseData(t);
String proprety_name = (String) u.elementAt(0);
String proprety_value = (String) u.elementAt(1);
qualifiers = null;
if (u.size() > 2) {
qualifiers = (String) u.elementAt(2);
qualifiers = sortPropertyQualifiers(qualifiers);
}
Vector w = new Vector();
if (qualifiers != null) {
String nv = proprety_name + "|" + proprety_value;
if (hmap.containsKey(nv)) {
w = (Vector) hmap.get(nv);
}
if (!w.contains(qualifiers)) {
w.add(qualifiers);
}
hmap.put(nv, w);
}
}
return hmap;
}

public Vector searchPropertyWithQualifierNameAndValue(HashMap propertyQualifierHashMap,
String qualifierName, String qualifierValue) {
if (propertyQualifierHashMap == null) return null;
String target = qualifierName + "=" + qualifierValue;
Vector w = new Vector();
Iterator it = propertyQualifierHashMap.keySet().iterator();
while (it.hasNext()) {
String nv = (String) it.next();
Vector u = gov.nih.nci.evs.browser.utils.StringUtils.parseData(nv, "$");
if (u != null) {
String propertyName = (String) u.elementAt(0);
String propertyValue = (String) u.elementAt(1);
Vector v = (Vector) propertyQualifierHashMap.get(nv);
if (v != null) {
if (v.contains(target) && !w.contains(propertyName)) {
w.add(propertyName);
}
}
}
}
w = SortUtils.quickSort(w);
return w;
}


public Vector getPropertyNames(HashMap propertyQualifierHashMap) {
Vector w = new Vector();
Iterator it = propertyQualifierHashMap.keySet().iterator();
while (it.hasNext()) {
String nv = (String) it.next();
Vector u = gov.nih.nci.evs.browser.utils.StringUtils.parseData(nv, "$");
if (u != null) {
String propertyName = (String) u.elementAt(0);
if (!w.contains(propertyName)) {
w.add(propertyName);
}
}
}
w = SortUtils.quickSort(w);
return w;
}



}
Loading

0 comments on commit 446d0e0

Please sign in to comment.