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 2018/02/14 15:11:56 UTC

svn commit: r1824244 - /ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java

Author: seanfinan
Date: Wed Feb 14 15:11:56 2018
New Revision: 1824244

URL: http://svn.apache.org/viewvc?rev=1824244&view=rev
Log:
proper patient store registration

Added:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java

Added: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java?rev=1824244&view=auto
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java (added)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/CuiListFileWriter.java Wed Feb 14 15:11:56 2018
@@ -0,0 +1,58 @@
+package org.apache.ctakes.core.cc;
+
+
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
+import org.apache.ctakes.core.util.OntologyConceptUtil;
+import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
+import org.apache.log4j.Logger;
+import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
+
+import java.io.*;
+import java.util.Collection;
+
+import static org.apache.ctakes.core.pipeline.PipeBitInfo.TypeProduct.*;
+
+/**
+ * @author SPF , chip-nlp
+ * @version %I%
+ * @since 2/14/2018
+ */
+@PipeBitInfo(
+      name = "CUI List Writer",
+      description = "Writes a list of CUIs, covered text and preferred text to files.",
+      role = PipeBitInfo.Role.WRITER,
+      dependencies = { DOCUMENT_ID, SENTENCE, BASE_TOKEN },
+      usables = { DOCUMENT_ID_PREFIX, IDENTIFIED_ANNOTATION, EVENT, TIMEX, TEMPORAL_RELATION }
+)
+public class CuiListFileWriter extends AbstractJCasFileWriter {
+
+   static private final Logger LOGGER = Logger.getLogger( "CuiListFileWriter" );
+
+   /**
+    * {@inheritDoc}
+    */
+   @Override
+   public void writeFile( final JCas jCas,
+                          final String outputDir,
+                          final String documentId,
+                          final String fileName ) throws IOException {
+      final File file = new File( outputDir, fileName + "_cuis.txt" );
+      final Collection<IdentifiedAnnotation> annotations = JCasUtil.select( jCas, IdentifiedAnnotation.class );
+      LOGGER.info( "Writing CUI list to " + file.getPath() + " ..." );
+      final StringBuilder sb = new StringBuilder();
+      for ( IdentifiedAnnotation annotation : annotations ) {
+         final String coveredText = annotation.getCoveredText();
+         OntologyConceptUtil.getUmlsConceptStream( annotation )
+                            .map( c -> c.getCui() + " , " + coveredText
+                                       + (c.getPreferredText() != null ? " , " + c.getPreferredText() : "")
+                                       + "\r\n" )
+                            .forEach( sb::append );
+      }
+      try ( Writer writer = new BufferedWriter( new FileWriter( file ) ) ) {
+         writer.write( sb.toString() );
+      }
+      LOGGER.info( "Finished Writing" );
+   }
+
+}