Hello Sean, et al, Does anyone have chance to update on my issues mentioned in thread ?
On 29 November 2017 at 18:35, Bhagwat Posane <bhagwat.pos...@gmail.com> wrote: > Sure, Sean. Please ! > > On 28 November 2017 at 23:16, Finan, Sean <Sean.Finan@childrens.harvard. > edu> wrote: > >> Hi Bhagwat, >> >> I will try to answer this over the next day or two. Somebody else may >> have some free time and get to you first ... >> >> Sean >> >> -----Original Message----- >> From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> Sent: Tuesday, November 28, 2017 12:11 AM >> To: dev@ctakes.apache.org >> Subject: Re: Interpret context out of clinical note [EXTERNAL] >> >> Hello Sean, >> >> Thank you very much for your patience and bare with my basic queries. >> >> 1) What information you are trying to obtain from a note. An example >> sentence would help. >> >> >> Here are some example sentence from which I want to make out weather >> >> cystoscopy >> is done or not. >> >> ex: >> Note 1: >> In addition he has bilateral stones, non-obstructing and bilateral renal >> cysts. I have been recommended that he >> obtain a CT scan for staging, office cystoscopy for diagnosis, and >> subsequently a bladder biopsy excision of the bladder tumor. >> ----> cystoscopy not done >> >> >> Note 2: >> He has incidental bilateral renal stones 4.4 mm on the right and 2 mm on >> the left. Cystoscopy showed a bladder >> tumor on the floor of the bladder right side sessile 3 cm. suspicious for >> invasion . Biopsy showed no invasion but high grade. >> ---> cystoscopy done >> >> >> Note 3: >> Cystoscopy 2/10/16 shows the fistula, BPH, and no bladder lesions. Will >> proceed with the fistula closure. CT >> DONE IN THE HOSPITAL 2/24/16 SHOWED INVASIVE BLADDER CANCER INTRA-MURAL >> OBSTRUCTING BOTH KIDNEYS. PATIENT WILL REQURIE A CYSTECTOMY AND URINARY >> DIVERSION. >> ---> Cystoscopy done / CYSTECTOMY not done >> >> >> Note 4: >> Other medical history in this patient includes diabetes, high blood >> pressure. Surgical history includes gallbladder, >> liver biopsy, bladder tumor resection as stated above. Return in 12 >> mos. >> for repeat cystoscopy. >> ---> cystoscopy done >> >> >> Note 5: >> Medical history in this patient is left blank except for thyroid disease. >> Surgical history includes some hand >> surgery. He also had some kind of eye surgery in 1987. Plan will be >> cystoscopy, resection of bladder tumor for staging and retrograde >> pyelogram. This is scheduled to be done at Medical City on July 20 at 7:30 >> in the morning. >> ----> cystoscopy done >> >> ************************************************************ >> ************************************************************ >> ******************************************************************** >> >> 2) What you have already done to successfully or unsuccessfully obtain >> the information. >> >> >> I had checked outputs on web api of ctakes by giving some notes, I >> suspected TLINK must be helpful component to get the above work done. >> >> so I followed the path how to get the TLINK statement output and I >> achieved it using piper file. >> >> ************************************************************ >> ************************************************************ >> ******************************************************************** >> >> 3) What you do understand at this point in time. >> >> I understood only how to run particular pipeline using piper file and >> get the output in HTML file. >> >> I have gone through the ctakes-wiki, I have brief idea about each >> module. >> >> ************************************************************ >> ************************************************************ >> ******************************************************************** >> >> 4) What you think is missing from your understanding. >> >>Till now I had thought of using TLINKS to capture the context out of >> note. I think so because of categories in TLINKS. After fetching TLINKS >> in HTML format, while interpreting context, I feel mere TLINK wont help and >> I need something else to get my work done. >> >>At present I think I am lost somewhere and not able to figure out the >> pipeline that needs to be used to get my work done >> >> ************************************************************ >> ************************************************************ >> ******************************************************************** >> 5) What you really need from us. A workflow? A pipeline? Pointers >> toward existing code? Pointers toward datatypes? A deeper explanation of >> existing code (pick 1 class)? Help writing new ctakes code of your own? >> >> >> More precisely, I need a pipeline to do above task, and deeper >> explanation of code of this pipeline. Having code insight I will have a >> better control on the output, i.e. instead of having output in xmi/html, I >> can prepare collection or so for the output. This may need to write new >> cTakes code, not sure though. >> >> >> >> On 27 November 2017 at 19:02, Finan, Sean <Sean.Finan@childrens.harvard. >> edu> >> wrote: >> >> > Hi Bhagwat. >> > >> > You wrote: >> > > Now coming back to our original question for which this thread has >> > > been >> > initiated. >> > > I was trying to get the context out of clinical notes. for ex. If >> > > any >> > procedure is happened or not on patient. >> > > ... >> > > By following this clues, I am nowhere. >> > > Could you please provide information on which pipeline I should have >> > > to >> > run to achieve this goal, and how? >> > >> > Your snippet of my previous message is incomplete. The sentence that >> > I wrote following what you copied was: >> > --- In those files each "add" statement is followed by an annotator >> > class name. >> > >> > Those were your clues. Those annotator classes provide the information >> > that you were asking about. Here are the contents of the >> > AttributeClearTkSubPipe.piper: >> > ========================================== >> > // Commands and parameters to create a default entity attributes >> > processing sub-pipeline. This is not a full pipeline. >> > >> > // Add the Dependency parser for use by cleartk addDescription >> > ClearNLPDependencyParserAE // Add the Semantic Role Labeler parser for >> > use by cleartk addLogged ClearNLPSemanticRoleLabelerAE >> > >> > // Add the cleartk package for cleartk class lookups package >> > org.apache.ctakes.assertion.medfacts.cleartk >> > >> > // Add the cleartk attribute engines, logging for them as a block add >> > StartFinishLogger LOGGER_NAME=CleartkAnalysisEngine >> > LOGGER_TASK="Assigning Attributes" IS_START=true addDescription >> > PolarityCleartkAnalysisEngine addDescription >> > UncertaintyCleartkAnalysisEngine addDescription >> > HistoryCleartkAnalysisEngine addDescription >> > ConditionalCleartkAnalysisEngine addDescription >> > GenericCleartkAnalysisEngine addDescription >> > SubjectCleartkAnalysisEngine add StartFinishLogger >> > LOGGER_NAME=CleartkAnalysisEngine LOGGER_TASK="Assigning Attributes" >> > ========================================== >> > >> > The comments in the file provide hints, and the names of the annotator >> > classes should give an even greater indication of function. >> "PolarityCleartkAnalysisEngine" >> > assigns polarity (negation), "UncertaintyCleartkAnalysisEngine" >> > assigns uncertainty, etc. >> > >> > It is far from exhaustive, but you should always browse the ctakes >> > wiki before posting to the dev list. The page on Assertion: >> > https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_ >> > confluence_display_CTAKES_cTAKES-2B4.0-2B-2D-2BAssertion&d=DwIBaQ&c=qS >> > 4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6 >> > r0bcpKGd4f7d4gTao&m=xI09LL4AitA-w9uu3DF3OBqlDGFKNeuB7wCAi5UxnYY&s=7oBh >> > A5oVMUlUqetkOGeynSeay1WE4SnfhRU9agGr8gs&e= >> > >> > If you visit the page on the default clinical pipeline you will see >> > that it extracts negation, uncertainty and subject (right at the top, >> > plus a diagram). >> > https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_ >> > confluence_display_CTAKES_&d=DwIBaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMS >> > dioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=xI09LL4Ait >> > A-w9uu3DF3OBqlDGFKNeuB7wCAi5UxnYY&s=HOuzDHk2YB6nz0Lm-E0TR2oSxUA-j30dPj >> > 4PXUR-aeY&e= >> > Default+Clinical+Pipeline >> > >> > Near the bottom of that wiki page is stated "... runClinicalPipeline >> > runs the piper file DefaultFastPipeline.piper ...", and "piper file" is >> a link. >> > https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_ >> > confluence_display_CTAKES_Piper-2BFiles&d=DwIBaQ&c=qS4goWBT7poplM69zy_ >> > 3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao >> > &m=xI09LL4AitA-w9uu3DF3OBqlDGFKNeuB7wCAi5UxnYY&s=c2wUBjNt1mjoFtkAx1kKb >> > nDiMv7PSkXF5HBv1j-pOXg&e= >> > >> > Near the bottom of the piper files wiki page is a diagram of the >> > DefaultFastPipeline.piper that clearly indicates that it uses the >> > AttributeClearTkSubPipe.piper, and it even lists the contents (as >> > above) of that sub-pipeline. >> > >> > So, I am really confused as to what information you really want. You >> > actually started this topic with: >> > > I have seen the results of user installation of cTakes , the output >> > > is >> > pretty interesting. >> > > Can anybody point to the source code of the same? >> > >> > Gandi pointed you towards the ctakes source repository. >> > >> > You apparently got the source code for ctakes, and then stated: >> > > Now I am looking for the source-code that gives this result for a >> > clinical note. >> > >> > Tim pointed you to Apache UIMA and the different modules that make up >> > the default clinical pipeline. >> > I pointed you toward the wiki page for some additional information. >> > >> > You then stated: >> > > I have run ctakes-example project that internally executes >> > ClinicalPipelineFactory.getDefaultPipeline() method. >> > > This has given results like POS tag, Polarity, etc. >> > > Now, I am more interested in finding Procedure, Medication, Drug, etc. >> > > Could you please point me to the code file ... >> > >> > At this point Gandhi pointed to some helpful code. >> > >> > Then later you asked about temporal links because you thought that you >> > needed them to provide certain information. >> > > I think TLINKS values on web API maybe helpful to get the required >> > result, not sure though. Please confirm >> > > I am not able to find the code to generate TLINKS, could you please >> > > help >> > me locate the code. >> > >> > Tim (correctly) stated that you might be more interested in >> > event/entity attributes such as negation and pointed you towards >> > modules that make up the default pipeline. >> > >> > Then, in your last message you ask: >> > > Could you please provide information on which pipeline I should have >> > > to >> > run to achieve this goal, and how? >> > >> > Since we seem to have gone back and forth on this, I think that it >> > might help everybody trying to help you if you could start over and >> clearly state: >> > 1) What information you are trying to obtain from a note. An example >> > sentence would help. >> > 2) What you have already done to successfully or unsuccessfully obtain >> > the information. >> > 3) What you do understand at this point in time. >> > 4) What you think is missing from your understanding. >> > 5) What you really need from us. A workflow? A pipeline? Pointers >> > toward existing code? Pointers toward datatypes? A deeper >> > explanation of existing code (pick 1 class)? Help writing new ctakes >> code of your own? >> > >> > >> > Thank you, >> > Sean >> > >> > >> > -----Original Message----- >> > From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> > Sent: Monday, November 27, 2017 12:49 AM >> > To: dev@ctakes.apache.org >> > Subject: Re: Interpret context out of clinical note [EXTERNAL] >> > >> > Hello Sean, >> > >> > Thank you for the inputs, Now coming back to our original question for >> > which this thread has been initiated. >> > >> > I was trying to get the context out of clinical notes. for ex. If any >> > procedure is happened or not on patient. >> > >> > To achieve this you mentioned some points : >> > >> > You can visit the ctakes-assertion-res module for some clues. >> > > Navigate to ctakes-assertion-res src/main/resources/ >> > > org/apache/ctakes/assertion/pipeline/ >> > > There are two .piper files there. Each one covers a different way >> > > to get the information that you mentioned. >> > >> > >> > By following this clues, I am nowhere. >> > Could you please provide information on which pipeline I should have >> > to run to achieve this goal, and how? >> > >> > >> > On 24 November 2017 at 21:24, Finan, Sean <Sean.Finan@childrens.harvard. >> > edu> >> > wrote: >> > >> > > Hi Bhagwat, >> > > >> > > Ok, a couple of things are problematic. >> > > >> > > 1. the DefaultFastPipeline already contains attribute detection >> > > using the AttributeClearTkSubPipe.piper. That sub- pipeline adds >> > > the ClearNLPSemanticRoleLabelerAE. So does the >> AssertionSubPipe.piper. >> > > The pipeline cannot have two instances of that annotator. The fix >> > > for this is to just add the AssertionEngines that are at the bottom >> > > of the AssertionSubPipe.piper. >> > > >> > > 2. The assertion engines don't work. They will spit out some log >> > > messages about not being usable until ctakes-76 is implemented. >> > > Then you will get a NullPointerException and ctakes will happily >> crash. >> > > >> > > James Masanz made the last comment on ctakes-76: >> > > https://urldefense.proofpoint.com/v2/url?u=https-3A__issues.apache.o >> > > rg >> > > _jira_browse_CTAKES-2D76&d=DwIBaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMS >> > > di >> > > oCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=wGmqUbPS3- >> > > WJ >> > > RSYmkNbjZ1e-OfMJTOVk6wbzOElQUrE&s=ZyPD1MbOImp08cCdSo0HeecCXAqUatZEZm >> > > hA >> > > W-cJVtc&e= >> > > which includes the information: >> > > "when this issue gets resolved (the jars are available from maven >> > > central) then ctakes-assertion could be updated again to use" >> > > >> > > So, what to do? >> > > Well, my advice would be to just skip the Assertion engines. The >> > > default ClearTk attribute engines will produce the same types of >> > > event and entity attributes and they are already in the default >> pipeline. >> > > Is there a reason that you wanted to use the older Assertion engines? >> > > Was it just listed in (unfortunately) outdated documentation? >> > > >> > > Sean >> > > >> > > >> > > -----Original Message----- >> > > From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> > > Sent: Friday, November 24, 2017 8:58 AM >> > > To: dev@ctakes.apache.org >> > > Subject: Re: Interpret context out of clinical note [EXTERNAL] >> > > >> > > Hello Sean, >> > > >> > > As you mentioned in previous email The annotators in the Assertion >> > > piper require several other annotators to run first, so to run >> > > AssertionSubPipe.piper I have added DefaultFastPipeline and >> > > AssertionDefaults piper file before that. >> > > >> > > for reference below text is from my piper file: >> > > >> > > ************************************************************ >> > > ********************* >> > > reader FileTreeReader InputDirectory=D:\Bhagwat\Notes load >> > > org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper >> > > load org/apache/ctakes/examples/pipeline/AssertionDefaults.piper >> > > load AssertionSubPipe.piper >> > > >> > > // Temporal (event, time, dtr, tlink) load TemporalSubPipe.piper >> > > >> > > // Html output >> > > set OutputDirectory=D:\Bhagwat\HTMLoutput >> > > add pretty.html.HtmlTextWriter >> > > >> > > //XMI output >> > > //writeXmis D:\Bhagwat\XMI >> > > ************************************************************ >> > > ********************* >> > > >> > > As I run this piper file the command addLogged >> > > ClearNLPSemanticRoleLabelerAE It is showing started processing.... >> > > and never finished. when I debugged the code I found it is going in >> > > infinite loop for one of the sentence from clinical note. >> > > >> > > The code which goes in Infinite loop is in DEPNode.class file >> > > ************************************************************ >> > > ************************************************************ >> > > ******************** >> > > public boolean isDescendentOf(DEPNode node) { DEPNode head = >> > > getHead(); while (head != null) { if (head == node) return true; >> > > head = head.getHead(); } return false; } >> > > ************************************************************ >> > > ************************************************************ >> > > ******************** >> > > if (head == node) this condition never becomes true ! >> > > >> > > >> > > I have added clinical notes for your reference,for the highlighted >> > > line the ClearNLPSemanticRoleLablerAE goes in infinite loop. >> > > >> > > ************************************************************ >> > > ************************************************************ >> > > ********************* >> > > Note 1: >> > > The patient is XX years old with gross hematuria beginning ten days >> ago. >> > > He has pain over the bladder. >> > > He smoked until XXXX. His country of origin is XXXX. He has been >> > > here for two years. >> > > Ultrasound is planned on 3/26/2015 shows a mass in the bladder 3.4 >> > > x >> > > 3.8 x >> > > 3.1 cm. >> > > >> > > >> > > >> > > Note 2: >> > > This is a 67-year-old patient followed for erectile dysfunction and >> > benign >> > > prostatic hyperplasia. Prostate symptoms consist of slow stream >> and >> > NX >> > > X 2. TUMT explained to the patient. >> > > Urinalysis showed 2+ sugar before and trace of blood. No retention, >> > > burning or blood. He is up perhaps once at night to void depending >> > > upon his fluid >> > > intake. PSA was .3 on 1/12. >> > > The patient use to take AndroGel squirt three a day. T was 483 in Nov. >> > > 2011. T was 531 on 1/13 by internist. He has been off the Androgel. >> > > Testosterone is rechecked. He may choose to use IM testosterone at >> home >> > > self administered. He also uses TriMix for ED. >> > > He has diminished number and frequency of erections. Duration is >> years. >> > > Modifying factors include Diabetes. Severity is 8 of 10. He no >> > > logner uses Dialis. TriMix refilled. >> > > Patient has lost 40 lbs on Victosa administered by his >> endocrinologist. >> > > >> > > ************************************************************ >> > > ************************************************************ >> > > ********************* >> > > >> > > The Interesting thing is when I run only the highlighted sentence as >> > > a note it executes successfully, it means to get into infinite loop >> > > the highlighted sentence should have at least one sentence with it. >> > > Could you please provide your thoughts on it. >> > > >> > > Sorry for lengthy explanation, but I thought it is necessary. >> > > >> > > >> > > >> > > On 24 November 2017 at 01:22, Finan, Sean >> <Sean.Finan@childrens.harvard. >> > > edu> >> > > wrote: >> > > >> > > > Hi Bhagwat, >> > > > >> > > > Thanks for the heads up on the "file:" issue. I will check to see >> > > > if the usage has changed and fix the piper. >> > > > >> > > > Sean >> > > > >> > > > -----Original Message----- >> > > > From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> > > > Sent: Thursday, November 23, 2017 9:17 AM >> > > > To: dev@ctakes.apache.org >> > > > Subject: Re: Interpret context out of clinical note [EXTERNAL] >> > > > >> > > > Thanks James, It worked using cast to Map. ! >> > > > >> > > > Sean, >> > > > In AssertionDefaults.piper you set the file like: >> > > > >> > > > set >> > > > assertionModelResource=file:org/apache/ctakes/assertion/mode >> ls/i2b2. >> > > > mo >> > > > del >> > > > >> > > > As I run this piper file it throws file not found exception, it >> > > > resolved for me by removing "file:" from command, I suppose this >> > > > needs >> > > to be fixed. >> > > > >> > > > >> > > > On 22 November 2017 at 23:21, Finan, Sean >> > <Sean.Finan@childrens.harvard. >> > > > edu> >> > > > wrote: >> > > > >> > > > > Wow, that is really strange. >> > > > > >> > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__uima.apache >> > > > > .o >> > > > > rg >> > > > > _d >> > > > > _uimafit-2Dcurrent_api_org_&d=DwIBaQ&c=qS4goWBT7poplM69zy_3xhKwE >> > > > > W1 >> > > > > 4J >> > > > > ZM >> > > > > SdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=1A9 >> > > > > as >> > > > > f1 >> > > > > ga >> > > > > bEGz-5fQfVfXbp2BcZEJaZIiJ4zSk09P1M&s=jo0yN7BJTt98IHerLXLK4aQvmSO >> > > > > An >> > > > > 90 >> > > > > pU >> > > > > lzHg00ynFI&e= >> > > > > apache/uima/fit/util/JCasUtil.html >> > > > > >> > > > > >> > > > > >> > > > > -----Original Message----- >> > > > > From: James Masanz [mailto:masanz.ja...@gmail.com] >> > > > > Sent: Wednesday, November 22, 2017 12:50 PM >> > > > > To: dev@ctakes.apache.org >> > > > > Subject: Re: Interpret context out of clinical note [EXTERNAL] >> > > > > >> > > > > If I use Eclipse, at build time I also get the error >> > > > > >> > > > > method putAll(Map<? extends Annotation,? extends >> > > > > List<IdentifiedAnnotation>>) in the type Map<Annotation,List< >> > > > > IdentifiedAnnotation>> >> > > > > is not applicable for the arguments (Map) >> > > > > >> > > > > I haven't looked into why. >> > > > > >> > > > > A quick workaround is to add a cast to Map >> > > > > >> > > > > allCovering.putAll( (Map)JCasUtil.indexCovering( jCas, covered, >> > > > > covering ) ); >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > On Wed, Nov 22, 2017 at 8:40 AM, Finan, Sean < >> > > > > sean.fi...@childrens.harvard.edu> wrote: >> > > > > >> > > > > > Hi Bhagwat, >> > > > > > >> > > > > > I have no idea what is going on with your system. >> > > > > > >> > > > > > > The method putAll(Map<? extends Annotation,? extends >> > > > > > > List<IdentifiedAnnotation>>) in the type >> > > > > > > Map<Annotation,List<IdentifiedAnnotation>> is not applicable >> > > > > > > for the arguments (Map) >> > > > > > >> > > > > > That doesn't make any sense to me. That is exactly what >> > > > > > putAll is for ... Unless your uimafit does not return a typed >> > > > > > map? In which case it is an old version? I am not sure how >> > > > > > that would >> > > happen. >> > > > > > >> > > > > > > When I run AssertionSubPipe.piper I am getting below error: >> > > > > > The .piper files should all have line comments in them. The >> > > > > > *SubPipe pipers should all have something like "This is not a >> > > > > > complete pipeline" at the top. This means that it cannot be >> > > > > > run alone. The annotators in the Assertion piper require >> > > > > > several other annotators to run first. In addition to the >> > > > > > default clinical piper I think that there are some piper files >> > > > > > in ctakes-example-res that you can look at to >> > > > > start. >> > > > > > >> > > > > > >, I don't find any variables value in understandable format >> > > > > > >like (JCas >> > > > > > jcas) object. How would I understand JCas object values? >> > > > > > >> > > > > > ctakes is built upon the Apache UIMA framework. >> > > > > > >> > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__uima.apac >> > > > > > he >> > > > > > .o >> > > > > > rg >> > > > > > _& >> > > > > > d=DwIBaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67G >> > > > > > vl >> > > > > > GZ >> > > > > > st >> > > > > > Tp >> > > > > > yIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=rVKcbkbznwk6V-PLUy56sA4hGgN0F >> > > > > > 4q >> > > > > > rL >> > > > > > N5 Ik 6FIDnM&s=ebIFQbW0D4VLpTWv9a4YQqy_G30S_hDeDEbhCTesFuk&e= >> > > > > > >> > > > > > This should probably be on our wiki ... Anyway, the best way >> > > > > > to learn about how ctakes pipelines are put together and how >> > > > > > data is passed is to read some of the intro documentation for >> uima. >> > > > > > >> > > > > > The Javadoc for jcas is here: >> > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__uima.apac >> > > > > > he >> > > > > > .o >> > > > > > rg >> > > > > > _d >> > > > > > _&d=DwIBaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs6 >> > > > > > 7G >> > > > > > vl >> > > > > > GZ >> > > > > > st >> > > > > > TpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=rVKcbkbznwk6V-PLUy56sA4hGgN >> > > > > > 0F >> > > > > > 4q >> > > > > > rL >> > > > > > N5 Ik6FIDnM&s=I_7BH2bDGR48vI03bE1dirKGCgq33PKB9vXN2VDrMA8&e= >> > > > > > uimaj-current/apidocs/org/apache/uima/jcas/JCas.html >> > > > > > >> > > > > > Sean >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > -----Original Message----- >> > > > > > From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> > > > > > Sent: Wednesday, November 22, 2017 3:38 AM >> > > > > > To: dev@ctakes.apache.org >> > > > > > Subject: Re: Interpret context out of clinical note [EXTERNAL] >> > > > > > >> > > > > > Hello Sean, >> > > > > > >> > > > > > Thank you for the inputs. I have gone through both the piper >> > > > > > files which you have mentioned. >> > > > > > >> > > > > > When I run AssertionSubPipe.piper I am getting below error: >> > > > > > >> > > > > > //////////////////////////////////////////////////////////// >> > > > > > //////////////////////////////////////////////////////////// >> > > > > > //////////////////////////////////////////// >> > > > > > >> > > > > > 22 Nov 2017 12:55:31 WARN SingleDocumentProcessor - This >> > > > > > class cannot be used until CTAKES-76 is implemented. >> > > > > > 22 Nov 2017 12:55:31 WARN SingleDocumentProcessor - This >> > > > > > class cannot be used until CTAKES-76 is implemented. >> > > > > > Nov 22, 2017 12:55:31 PM >> > > > > > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_i >> > > > > > mp >> > > > > > l >> > > > > > callAnalysisComponentProcess(430) >> > > > > > SEVERE: Exception occurred >> > > > > > org.apache.uima.analysis_engine.AnalysisEngineProcessException: >> > > > > > Annotator processing failed. >> > > > > > at org.apache.uima.analysis_engine.impl. >> > > PrimitiveAnalysisEngine_impl. >> > > > > > callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java >> > > > > > :4 >> > > > > > 12 >> > > > > > ) at >> > > > > > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine >> _impl. >> > > > > > processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:314 >> > > > > > ) at org.apache.uima.analysis_engine.asb.impl.ASB_impl$ >> > > > > AggregateCasIterator. >> > > > > > processUntilNextOutputCas(ASB_impl.java:570) >> > > > > > at org.apache.uima.analysis_engine.asb.impl.ASB_impl$ >> > > > > > AggregateCasIterator.<init>(ASB_impl.java:412) >> > > > > > at org.apache.uima.analysis_engine.asb.impl.ASB_impl. >> > > > > > process(ASB_impl.java:344) >> > > > > > at org.apache.uima.analysis_engine.impl. >> > > AggregateAnalysisEngine_impl. >> > > > > > processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:265 >> > > > > > ) at org.apache.uima.analysis_engine.asb.impl.ASB_impl$ >> > > > > AggregateCasIterator. >> > > > > > processUntilNextOutputCas(ASB_impl.java:570) >> > > > > > at org.apache.uima.analysis_engine.asb.impl.ASB_impl$ >> > > > > > AggregateCasIterator.<init>(ASB_impl.java:412) >> > > > > > at org.apache.uima.analysis_engine.asb.impl.ASB_impl. >> > > > > > process(ASB_impl.java:344) >> > > > > > at org.apache.uima.analysis_engine.impl. >> > > AggregateAnalysisEngine_impl. >> > > > > > processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:265 >> > > > > > ) >> > > > > > at >> > > > > > org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.pr >> > > > > > oc >> > > > > > es >> > > > > > s( >> > > > > > AnalysisEngineImplBase.java:269) at >> > > > > > org.apache.uima.fit.pipeline.SimplePipeline.runPipeline( >> > > > > > SimplePipeline.java:150) >> > > > > > at org.apache.ctakes.core.pipeline.PipelineBuilder.run( >> > > > > > PipelineBuilder.java:348) >> > > > > > at org.apache.ctakes.core.pipeline.PiperFileRunner.run( >> > > > > > PiperFileRunner.java:72) >> > > > > > at org.apache.ctakes.core.pipeline.PiperFileRunner.main( >> > > > > > PiperFileRunner.java:30) >> > > > > > Caused by: java.lang.NullPointerException at >> > > > org.apache.ctakes.assertion. >> > > > > > medfacts.AssertionAnalysisEngineFit.process( >> > > > > > AssertionAnalysisEngineFit.java:145) >> > > > > > at >> > > > > > org.apache.uima.analysis_component.JCasAnnotator_ImplBase.proc >> > > > > > es >> > > > > > s( >> > > > > > JCasAnnotator_ImplBase.java:48) at >> > > > > > org.apache.uima.analysis_engine.impl. >> > > PrimitiveAnalysisEngine_impl. >> > > > > > callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java >> > > > > > :3 >> > > > > > 96 >> > > > > > ) >> > > > > > ... 14 more >> > > > > > >> > > > > > //////////////////////////////////////////////////////////// >> > > > > > //////////////////////////////////////////////////////////// >> > > > > > //////////////////////////////////////////////////////////// >> > > > > > /////////////////////// >> > > > > > >> > > > > > The error is causing due to the command : add >> > > > > > AssertionAnalysisEngineFit I have comment out this command and >> > > > > > ran it, the html output doesn't have any difference with >> > > > > > previous >> > output. >> > > > > > Could you please help me to resolve this error. >> > > > > > >> > > > > > >> > > > > > On 21 November 2017 at 18:43, Finan, Sean >> > > > <Sean.Finan@childrens.harvard. >> > > > > > edu> >> > > > > > wrote: >> > > > > > >> > > > > > > Hi Bhagwat, >> > > > > > > >> > > > > > > You can visit the ctakes-assertion-res module for some clues. >> > > > > > > >> > > > > > > Navigate to ctakes-assertion-res src/main/resources/ >> > > > > > > org/apache/ctakes/assertion/pipeline/ >> > > > > > > >> > > > > > > There are two .piper files there. Each one covers a >> > > > > > > different way to get the information that Tim mentioned. In >> > > > > > > those files >> > > each "add" >> > > > > > > statement is followed by an annotator class name. In >> > > > > > > IntelliJ you can press CTRL-N and enter the class name to >> view the code. >> > > > > > > There are also a few comments in the piper files that may >> help. >> > > > > > > >> > > > > > > Sean >> > > > > > > >> > > > > > > -----Original Message----- >> > > > > > > From: Bhagwat Posane [mailto:bhagwat.pos...@gmail.com] >> > > > > > > Sent: Tuesday, November 21, 2017 6:21 AM >> > > > > > > To: dev@ctakes.apache.org >> > > > > > > Subject: Interpret context out of clinical note [EXTERNAL] >> > > > > > > >> > > > > > > Hello Sean,Tim, et al, >> > > > > > > >> > > > > > > I would like to Interpret context out of clinical note, e.g. >> > > > > > > interpretation of the procedure, lab tests for a patient. >> > > > > > > For this, I suppose TLINK statements would be of much help. >> > > > > > > >> > > > > > > Ex. for the note- "Cystoscopy is planned on 3 / 26 / 2018." >> > > > > > > I get TLINK as >> > > > > > > Cystoscopy contains 3 / 26 / 2018, >> > > > > > > 3 / 26 / 2018 contains Cystoscopy >> > > > > > > 3 / 26 / 2018 contains planned we can make out that >> > > > > > > Cystoscopy is not yet done looking at "planned"(in this >> > > > > > > case), >> > > > > > > >> > > > > > > Could you please let me know if I am on right path and also >> > > > > > > help me understand if any other approach to do this. >> > > > > > > >> > > > > > > >> > > > > > > @Tim, >> > > > > > > Couple of days back you mentioned about the context >> > understanding : >> > > > > > > >> > > > > > > "if any procedure is happened or not." >> > > > > > > > I think you need a formal definition of this to understand >> > > > > > > > what you're trying to do. >> > > > > > > > As a guess, you want it to be in the past, related to the >> > > > > > > > patient (not a family member), and not negated or >> > > > > > > > hypothetical or uncertain, >> > > > > > etc.? >> > > > > > > > This would require multiple components, but most of them >> > > > > > > > should run in the temporal pipeline. >> > > > > > > >> > > > > > > >> > > > > > > > Tim >> > > > > > > >> > > > > > > >> > > > > > > Could you please provide some insight on this, as what are >> > > > > > > the multiple components are required and how to use them to >> > > > > > > achieve this >> > > > > > goal. >> > > > > > > >> > > > > > > -- >> > > > > > > Thanks, >> > > > > > > Bhagwat Posane >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > Thanks, >> > > > > > Bhagwat Posane >> > > > > > >> > > > > >> > > > >> > > > >> > > > >> > > > -- >> > > > Thanks, >> > > > Bhagwat Posane >> > > > >> > > >> > > >> > > >> > > -- >> > > Thanks, >> > > Bhagwat Posane >> > > >> > >> > >> > >> > -- >> > Thanks, >> > Bhagwat Posane >> > >> >> >> >> -- >> Thanks, >> Bhagwat Posane >> > > > > -- > Thanks, > Bhagwat Posane > -- Thanks, Bhagwat Posane