Issue Number | 3815 |
---|---|
Summary | Add option to glossifier to not skip markup |
Created | 2014-10-20 10:04:28 |
Issue Type | New Feature |
Submitted By | Osei-Poku, William (NIH/NCI) [C] |
Assigned To | Kline, Bob (NIH/NCI) [C] |
Status | Closed |
Resolved | 2014-11-03 10:58:56 |
Resolution | Fixed |
Path | /home/bkline/backups/jira/ocecdr/issue.140011 |
As we briefly discussed in last Thursday's meeting, we want to investigate the possibility of adding an option to the glossifier interface to prevent it from skipping whole summary sections in markup. Currently when Insertion tags are wrapped around Summary Section tags, the whole summary section is skipped by the glossifier. That is probably what users wanted at the time of developing the glossifier but sometimes there is the need to glossify these summary sections.
We do not want to change the default behavior of the glossifier. Rather we want to have an option to glossify those sections when the need arises.
For the first time I was prompted to choose an Epic key when I created this ticket. If I don't pick a key, I get the following error message:
Epic with key '' does not exist.
William,
I've been looking at this issue. I created a trivial SummarySection element inside the Breast Cancer Patient Summary and put some terms that I know are in the glossary into a Para element and ran the glossifier. The glossifier stopped at each term and offered to mark it up. If I clicked the button to create the markup, it wrapped the terms in a GlossaryTermRef, the same as for text not in the inserted Summary section.
I have so little experience using XMetal that I presume I'm misunderstanding the nature of the problem. Would it be possible for you to stop by my desk after the CDR meeting on Thursday and demonstrate it for me?
Thanks.
I think the confusion arises from the fact that "markup" has been given multiple meanings in this context. I believe William has adopted "markup" as the term to mean "markup for Insertion and Deletion elements" (correct me if I'm wrong, William). The original requirements called for applying the glossification process in Summary documents to the top-level SummarySection blocks and their children, skipping over the other top-level elements in the document. So if a user wraps an entire top-level SummarySection element inside an Insertion or a Deletion element, the SummarySection element is no longer at the top level, and therefore isn't included in the search for word chains. That's my theory about what William is asking for, anyway.
If my theory is right, then what needs to happen is to change the logic in CGlossify::findChains() from
:
IF DOCUMENT IS SUMMARY-LEVEL CHILD OF THE ROOT ELEMENT:
FOR EACH TOP-SECTION:
IF THE CHILD IS A SUMMARY COLLECT THE WORD CHAINS IN THIS BLOCK
to
:
IF DOCUMENT IS SUMMARY-LEVEL CHILD OF THE ROOT ELEMENT:
FOR EACH TOP-SECTION:
IF THE CHILD IS A SUMMARY
COLLECT THE WORD CHAINS IN THIS BLOCK, IF THE CHILD IS AN INSERTION OR DELETION ELEMENT:
OTHERWISE-DIGGING, PASSING THE CHILD AS A PARAMETER CALL KEEP
The logic for the recursive KEEP-DIGGING would be:
:
FOR EACH CHILD OF THE PASSED ELEMENT-SECTION:
IF THE CHILD IS A SUMMARY
COLLECT THE WORD CHAINS IN THIS BLOCK, IF THE CHILD IS AN INSERTION OR DELETION ELEMENT:
OTHERWISE-DIGGING, PASSING THE CHILD AS A PARAMETER CALL KEEP
This logic would handle the cases in which Insertion and Deletion elements were nested inside each other. It would also include the case in which more than one formerly top-level SummarySection block were wrapped inside a single Insertion or Deletion element.
For the record, if my theories (and recollection of the original requirements) are correct, I don't believe we have ever skipped over text inside Insertion or Deletion elements, as long as those elements aren't direct children of the root (Summary) element.
I believe William has adopted "markup" as the term to mean "markup for Insertion and Deletion elements" (correct me if I'm wrong, William)
That is correct. It is mostly Insertion markup, that is what brought up the issue in the first place and I also think the fix will be used mostly when Insertion markup is applied to SummarySection elements.
Assigned to myself, and set the status to In Progress. I'm going to put some time into this enhancement while the CTS project is stalled.
Implemented on DEV. The context menu now has two options for glossifying, and the second ignores the layers of Insertion and Deletion elements around what would otherwise have been top-level SummarySection children of the root element of the Summary document.
Verified on Dev. Can you please change the text in parenthesis to (include all sections in markup) ?
Wording change made. Please verify (log off XMetaL and back on first).
Verified on DEV. Thank you!
I do not see the new option in the context menu on QA.
Alan:
Did the build/deploy scripts create a new DLL and install it (along with the new version of the macro file) to QA?
Yes. The client files were built successfully. The sources came from branches/Ampere on Jan 13 at 14:54:42.
The deployment snagged on a misconfiguration, but after being fixed, it was run again and deployed successfully. The DLL, and macros.ctm files were copied to QA along with everything else.
Verified on QA.
Verified on Stage.
Verified on PROD.
Elapsed: 0:00:00.001554