CDR Tickets

Issue Number 4253
Summary Spike Story: Prototype Python version of CDR Server Filter Module
Created 2017-04-06 05:41:55
Issue Type Task
Submitted By Kline, Bob (NIH/NCI) [C]
Assigned To Kline, Bob (NIH/NCI) [C]
Status Closed
Resolved 2017-04-11 11:42:56
Resolution Fixed
Path /home/bkline/backups/jira/ocecdr/issue.206161
Description

The Problem:
CDR filtering is currently implemented in C++ using the third-party open-source Sablotron package. This package is no longer supported by the original developers, and there are gaps in its compliance with the W3C standard.

The Question:
It is possible to re-implement the CDR filtering module using Python without introducing any new problems (e.g., performance or concurrency issues)?

Objective of this Spike Story:
Create a proof of concept for filtering CDR documents using Python, determining whether:

  • the CDR filters can be made to conform to the standard without loss of functionality

  • the implementation can support the existing custom extensions

  • the filtered documents produced by the Python implementation match those created by the legacy server

  • the performance of the new implementation is acceptable

Comment entered 2017-04-11 11:42:56 by Kline, Bob (NIH/NCI) [C]

I have confirmed that we will be able to provide the functionality of the CDR Filter module in a Python implementation using the lxml package. Performance actually appears to improve in the Python version.

Elapsed: 0:00:00.001286