TriZetto QNXT is an end-to-end solution for health plan administration across multiple lines of business. QNXT uses a Microsoft BizTalk Server application called QNXT Connect to intake EDI and translate it into XML for processing; however, transforming an EDI file expands the size significantly. Large files can create a bottleneck causing BizTalk to slow or halt processing. For instance, a 10 MB EDI file can expand to 100 MB after BizTalk translates it into XML. For redundancy, BizTalk also stores that large message repeatedly within BizTalk Server’s database.
There are a few options to resolve performance issues encountered within BizTalk and QNXT system:
Scaling – Upgrading the system by adding additional servers (scaling out) or upgrading existing servers (scaling up). This may solve the problem temporarily but will quickly hit a period of diminished returns as the sheer size of the…
TriZetto QNXT is a longstanding leader in Healthcare administration platforms, supporting many lines of business including Medicare and Medicaid. An important function of QNXT is its strength in claim pricing, member administration and billing management. However, the provided QNXT toolset lacks flexibility in adapting to new processing requirements. For example, it would be difficult to perform member lookup and replacement prior to processing through QNXT’s modules.
Understanding the Workflow
QNXT utilizes Microsoft BizTalk Server to intake EDI X12 837 claims and X12 834 enrollments that are utilized in its various modules. The files are translated from EDI to XML within BizTalk’s native EDI parsing pipeline component deployed as part of QNXT’s ‘QNXT Connect’ BizTalk Application. The XML is then sent into QNXT where it travels through QNXT’s built-in agents and modules.
However, it is often the case that custom logic is necessary to…
Anyone planning to develop a VSTO Add-In may come to realize that documentation and examples are scarce or nonexistent. Recently I have found myself in this exact predicament as I have been developing a Microsoft Word VSTO Add-In to be used in the legislative drafting process. Throughout development, my team has created a handful of solutions for both simple and complex tasks. Many of these solutions could not be found online, and as a result, required significant research and testing. Here are a few examples that I wish I had when I started to develop a VSTO add-in that will hopefully jump-start your VSTO development.
Overriding Default Save Behavior
One of the core features that was required for our Word Add-In was version control. In order to support this functionality, we would need to override the default behavior of Word’s save functionality….
Some recipients of BizTalk messages (such as the SQL Server adapter and some SOAP web services) will run into problems if there’s an empty node in the message, such as:
In this example, we’d really just want to have Keeper in there and get rid of the rest (to avoid other services from throwing exceptions on those empty/valueless nodes).
There are mapping patterns to address this, generally using a Value Mapping functoid with a Logical functoid. For example, you might have a Logical Existence or Logical String as the first parameter (see this blog for an example) to prevent an empty value from being mapped to the destinatino node. With a Table Looping functoid, you can achieve this for an entire table by having the first column be gated (see the Remarks section of the Table Looping refernece: MSDN). This technique works well,…
So you’ve finished writing your new XSLT file using your favorite XML/XSLT editing tool. Great. Now for the next problem, you’ve been given the task to transform thousands of XML documents using your new XSLT file. Great… There’s no way we can transform all of these documents by hand. At this point we should be thinking about automating this process in the fastest and most efficient way possible. This scenario may sound familiar to some of us. Luckily, .Net provides us with such options.
For this example we’ll be serializing an XML file and transforming it using .Net’s XSLT processor. The process is very simple, and requires very little code.
Load the XML File into memory using the XmlReader class.
var reader = XmlReader.Create(xmlFileLocation);
Create a StreamWriter object which will be used to write the transformation to a file.
var textWriter = new StreamWriter(outputFileLocation);