You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2019/11/30 19:25:39 UTC
svn commit: r1870643 - in /ctakes/trunk/ctakes-web-rest: docker/pom.xml
src/main/java/org/apache/ctakes/rest/service/CuiResponse.java
src/main/java/org/apache/ctakes/rest/util/JCasParser.java
Author: seanfinan
Date: Sat Nov 30 19:25:39 2019
New Revision: 1870643
URL: http://svn.apache.org/viewvc?rev=1870643&view=rev
Log:
Refactor CuiResponse and JCasParser.
Add dependency-parser-res-clear to docker pom dependencies.
Modified:
ctakes/trunk/ctakes-web-rest/docker/pom.xml
ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/service/CuiResponse.java
ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/util/JCasParser.java
Modified: ctakes/trunk/ctakes-web-rest/docker/pom.xml
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-web-rest/docker/pom.xml?rev=1870643&r1=1870642&r2=1870643&view=diff
==============================================================================
--- ctakes/trunk/ctakes-web-rest/docker/pom.xml (original)
+++ ctakes/trunk/ctakes-web-rest/docker/pom.xml Sat Nov 30 19:25:39 2019
@@ -184,6 +184,7 @@
<module>ctakes-core-res</module>
<module>ctakes-coreference-res</module>
<module>ctakes-dependency-parser-res</module>
+ <module>ctakes-dependency-parser-res-clear</module>
<module>ctakes-dictionary-lookup-res</module>
<module>ctakes-lvg-res</module>
<module>ctakes-pos-tagger-res</module>
@@ -752,6 +753,13 @@
<dependency>
<groupId>org.apache.ctakes</groupId>
<artifactId>
+ ctakes-dependency-parser-res-clear
+ </artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ctakes</groupId>
+ <artifactId>
ctakes-relation-extractor
</artifactId>
<version>${project.version}</version>
@@ -989,8 +997,9 @@
<additionalClasspathElement>ctakes-constituency-parser-res/src/main/resources</additionalClasspathElement>
<additionalClasspathElement>ctakes-core-res/src/main/resources</additionalClasspathElement>
<additionalClasspathElement>ctakes-coreference-res/src/main/resources</additionalClasspathElement>
- <additionalClasspathElement>ctakes-dependency-parser-res/src/main/resources</additionalClasspathElement>
- <additionalClasspathElement>ctakes-dictionary-lookup-res/src/main/resources</additionalClasspathElement>
+ <additionalClasspathElement>ctakes-dependency-parser-res/src/main/resources</additionalClasspathElement>
+ <additionalClasspathElement>ctakes-dependency-parser-res-clear/src/main/resources</additionalClasspathElement>
+ <additionalClasspathElement>ctakes-dictionary-lookup-res/src/main/resources</additionalClasspathElement>
<additionalClasspathElement>ctakes-drug-ner-res/src/main/resources</additionalClasspathElement>
<additionalClasspathElement>ctakes-lvg-res/src/main/resources</additionalClasspathElement>
<additionalClasspathElement>ctakes-ne-contexts-res/src/main/resources</additionalClasspathElement>
Modified: ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/service/CuiResponse.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/service/CuiResponse.java?rev=1870643&r1=1870642&r2=1870643&view=diff
==============================================================================
--- ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/service/CuiResponse.java (original)
+++ ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/service/CuiResponse.java Sat Nov 30 19:25:39 2019
@@ -32,6 +32,7 @@ import java.util.Map;
* Created by tmill on 12/20/18.
*/
public class CuiResponse {
+ final private String _type;
public int begin;
public int end;
public String text;
@@ -39,6 +40,7 @@ public class CuiResponse {
public List<Map<String,String>> conceptAttributes = new ArrayList<>();
public CuiResponse(Annotation annotation){
+ _type = annotation.getClass().getSimpleName();
begin = annotation.getBegin();
end = annotation.getEnd();
text = annotation.getCoveredText();
@@ -58,4 +60,9 @@ public class CuiResponse {
}
}
}
+
+ final public String getType() {
+ return _type;
+ }
+
}
Modified: ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/util/JCasParser.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/util/JCasParser.java?rev=1870643&r1=1870642&r2=1870643&view=diff
==============================================================================
--- ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/util/JCasParser.java (original)
+++ ctakes/trunk/ctakes-web-rest/src/main/java/org/apache/ctakes/rest/util/JCasParser.java Sat Nov 30 19:25:39 2019
@@ -25,50 +25,62 @@ import org.apache.uima.fit.util.JCasUtil
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
+ * Extracts desired Annotations from a jcas, returning information as a map containing {@link CuiResponse}.
+ *
* Created by tmill on 12/20/18.
*/
-public class JCasParser {
- List<Class<? extends Annotation>> semClasses = new ArrayList<>();
+final public class JCasParser {
+
+ final private List<Class<? extends Annotation>> semClasses;
+
+ /**
+ * Initializes a list indicating which Annotation types are of interest.
+ */
+ public JCasParser(){
+ semClasses = Arrays.asList(
+
+ // CUI types:
+ DiseaseDisorderMention.class,
+ SignSymptomMention.class,
+ ProcedureMention.class,
+ AnatomicalSiteMention.class,
+ MedicationMention.class,
+
+ // Temporal types:
+ TimeMention.class,
+ DateAnnotation.class,
+
+ // Drug-related types:
+ FractionStrengthAnnotation.class,
+ DrugChangeStatusAnnotation.class,
+ StrengthUnitAnnotation.class,
+ StrengthAnnotation.class,
+ RouteAnnotation.class,
+ FrequencyUnitAnnotation.class,
+ MeasurementAnnotation.class
+
+ );
+
+ }
+
+ /**
+ * @param jcas ye olde ...
+ * @return A Map, key is annotation class name (type), value is a list of {@link CuiResponse},
+ * one for each annotation of interest.
+ */
+ public Map<String, List<CuiResponse>> parse( final JCas jcas ) { //throws Exception {
+
+ return JCasUtil.select( jcas, Annotation.class ).stream()
+ .filter( a -> semClasses.contains( a.getClass() ) )
+ .map( CuiResponse::new )
+ .collect( Collectors.groupingBy( CuiResponse::getType ) );
+
+ }
- public JCasParser(){
- // CUI types:
- semClasses.add(DiseaseDisorderMention.class);
- semClasses.add(SignSymptomMention.class);
- semClasses.add(ProcedureMention.class);
- semClasses.add(AnatomicalSiteMention.class);
- semClasses.add(MedicationMention.class);
-
- // Temporal types:
- semClasses.add(TimeMention.class);
- semClasses.add(DateAnnotation.class);
-
- // Drug-related types:
- semClasses.add(FractionStrengthAnnotation.class);
- semClasses.add(DrugChangeStatusAnnotation.class);
- semClasses.add(StrengthUnitAnnotation.class);
- semClasses.add(StrengthAnnotation.class);
- semClasses.add(RouteAnnotation.class);
- semClasses.add(FrequencyUnitAnnotation.class);
- semClasses.add(MeasurementAnnotation.class);
- }
-
- public Map<String, List<CuiResponse>> parse(JCas jcas) throws Exception {
-
- Map<String, List<CuiResponse>> responseMap = new HashMap<>();
- for(Class<? extends Annotation> semClass : semClasses){
- List<CuiResponse> annotations = new ArrayList<>();
- for(Annotation annot : JCasUtil.select(jcas, semClass)){
- CuiResponse response = new CuiResponse(annot);
- annotations.add(response);
- }
- responseMap.put(semClass.getSimpleName(), annotations);
- }
- return responseMap;
- }
}