You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by ja...@apache.org on 2013/05/08 22:03:13 UTC
svn commit: r1480432 -
/ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java
Author: james-masanz
Date: Wed May 8 20:03:13 2013
New Revision: 1480432
URL: http://svn.apache.org/r1480432
Log:
CTAKES-190 "dictionary lookup should create specific XxxxMention annotations instead of more generic EntityMention." Also as part of CTAKES-190, drug-ner will now create MedicationMentions rather than MedicationEventMentions. this revision is also for that change.
Modified:
ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java
Modified: ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java?rev=1480432&r1=1480431&r2=1480432&view=diff
==============================================================================
--- ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java (original)
+++ ctakes/trunk/ctakes-drug-ner/src/main/java/org/apache/ctakes/drugner/cc/ConsumeNamedEntityRecordModel.java Wed May 8 20:03:13 2013
@@ -48,12 +48,26 @@ import org.apache.uima.resource.Resource
import org.apache.ctakes.core.util.FSUtil;
import org.apache.ctakes.typesystem.type.textspan.Segment;
import org.apache.ctakes.typesystem.type.refsem.Date;
+import org.apache.ctakes.typesystem.type.refsem.MedicationDosage;
+import org.apache.ctakes.typesystem.type.refsem.MedicationDuration;
+import org.apache.ctakes.typesystem.type.refsem.MedicationForm;
+import org.apache.ctakes.typesystem.type.refsem.MedicationFrequency;
+import org.apache.ctakes.typesystem.type.refsem.MedicationRoute;
+import org.apache.ctakes.typesystem.type.refsem.MedicationStatusChange;
import org.apache.ctakes.typesystem.type.refsem.MedicationStrength;
import org.apache.ctakes.typesystem.type.refsem.OntologyConcept;
import org.apache.ctakes.typesystem.type.syntax.WordToken;
import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
import org.apache.ctakes.drugner.type.ChunkAnnotation;
-import org.apache.ctakes.typesystem.type.textsem.MedicationEventMention;
+import org.apache.ctakes.typesystem.type.textsem.MedicationDosageModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationDurationModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationFormModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationFrequencyModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationMention;
+import org.apache.ctakes.typesystem.type.textsem.MedicationRouteModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationStatusChangeModifier;
+import org.apache.ctakes.typesystem.type.textsem.MedicationStrengthModifier;
+import org.apache.ctakes.typesystem.type.textsem.TimeMention;
import org.apache.ctakes.typesystem.type.util.Pair;
import org.apache.ctakes.typesystem.type.util.Pairs;
//import org.apache.ctakes.drugner.type.DrugMentionAnnotation;
@@ -273,10 +287,10 @@ public class ConsumeNamedEntityRecordMod
//System.err.println("Segment :"+ s.getCoveredText());
}
- Iterator nerItr = indexes.getAnnotationIndex(MedicationEventMention.type).iterator();
+ Iterator nerItr = indexes.getAnnotationIndex(MedicationMention.type).iterator();
while (nerItr.hasNext())
{
- MedicationEventMention neAnnot = (MedicationEventMention) nerItr.next();
+ MedicationMention neAnnot = (MedicationMention) nerItr.next();
//System.err.println("DrugNE :"+neAnnot.getCoveredText());
gotDup = false;
@@ -304,8 +318,10 @@ public class ConsumeNamedEntityRecordMod
keepTrackOfDupEnd = neAnnot.getEnd();
-
- Date localDate = neAnnot.getStartDate();//.getStartDate();
+ TimeMention startTimeMention = neAnnot.getStartDate();
+
+ Date localDate = null;
+ if (startTimeMention!=null) localDate = startTimeMention.getDate();
String chunk = null;
boolean foundChunk = false;
@@ -383,29 +399,52 @@ public class ConsumeNamedEntityRecordMod
}
}
- MedicationStrength strengthTerm = neAnnot.getMedicationStrength();//getStrength();
+ MedicationStrengthModifier strength = neAnnot.getMedicationStrength();
+ MedicationStrength strengthTerm = (MedicationStrength) strength.getNormalizedForm();
String strengthTermString = "null";
- if (strengthTerm != null)
+ if (strengthTerm != null) {
strengthTermString = strengthTerm.getNumber()+ " " +strengthTerm.getUnit();
+ }
+
String medicationDosageString = "null";
- if (neAnnot.getMedicationDosage() != null && neAnnot.getMedicationDosage().getValue() != null)
- medicationDosageString = neAnnot.getMedicationDosage().getValue();
+ MedicationDosageModifier dosageModifier = neAnnot.getMedicationDosage();
+ if (dosageModifier != null) {
+ MedicationDosage d = (MedicationDosage) dosageModifier.getNormalizedForm();
+ if (d!=null) medicationDosageString = d.getValue();
+ }
String medicationFrequencyNumber = "null";
- if (neAnnot.getMedicationFrequency() != null && neAnnot.getMedicationFrequency().getNumber() != null)
- medicationFrequencyNumber = neAnnot.getMedicationFrequency().getNumber()+" "+neAnnot.getMedicationFrequency().getUnit();
+ MedicationFrequencyModifier freqModifier = neAnnot.getMedicationFrequency();
+ if (freqModifier != null) {
+ MedicationFrequency f = (MedicationFrequency) freqModifier.getNormalizedForm();
+ if (f != null) medicationFrequencyNumber = f.getNumber()+" "+f.getUnit();
+ }
String duration = "null";
- if (neAnnot.getMedicationDuration() != null && neAnnot.getMedicationDuration().getValue() != null)
- duration = neAnnot.getMedicationDuration().getValue();
+ MedicationDurationModifier durationModifier = neAnnot.getMedicationDuration();
+ if (durationModifier != null) {
+ MedicationDuration d = (MedicationDuration) durationModifier.getNormalizedForm();
+ if (d!=null) duration = d.getValue();
+ }
String route = "null";
- if (neAnnot.getMedicationRoute() != null && neAnnot.getMedicationRoute().getValue() != null)
- route = neAnnot.getMedicationRoute().getValue();
+ MedicationRouteModifier routeModifier = neAnnot.getMedicationRoute();
+ if (routeModifier != null) {
+ MedicationRoute r = (MedicationRoute) routeModifier.getNormalizedForm();
+ if (r != null) route = r.getValue();
+ }
String form = "null";
- if (neAnnot.getMedicationForm() != null && neAnnot.getMedicationForm().getValue() != null)
- form = neAnnot.getMedicationForm().getValue();
+ MedicationFormModifier formModifier = neAnnot.getMedicationForm();
+ if (formModifier != null) {
+ MedicationForm f = (MedicationForm) formModifier.getNormalizedForm();
+ if (f!=null) form = f.getValue();
+ }
+
String changeStatus = "null";
- if (neAnnot.getMedicationStatusChange() != null && neAnnot.getMedicationStatusChange().getValue() != null )
- changeStatus = neAnnot.getMedicationStatusChange().getValue();
+ MedicationStatusChangeModifier scModifier = neAnnot.getMedicationStatusChange();
+ if (scModifier != null) {
+ MedicationStatusChange sc = (MedicationStatusChange) scModifier.getNormalizedForm();
+ if (sc!=null) changeStatus = sc.getValue();
+ }
+
medInfo = clinicNumber + "," +neAnnot.getCoveredText() + "," + rxNormCui
+ ",\"" + neAnnot.getStartDate() + "\","
+ globalDate + "," + medicationDosageString + "," +strengthTermString + ","