Tallan's Technology Blog

Tallan's Top Technologists Share Their Thoughts on Today's Technology Challenges

Posts Tagged ".net"

SNIP 3 835 Balancing

835 and 837 EDI transactions have transformed the adjudication cycle for providers and health plans over the last two decades, but challenges remain in reconciling payments with claims. Today we’ll focus on the 835 Claim Payment/Remittance Advice. Health plans submit 835s to providers (or their intermediaries) to explain which claims are being paid, and any reductions to the submitted amount and the reasoning for the adjustment. This is an important function – a significant pain point experienced by providers is the reconciliation of their income against claims submitted.
Before this valuable information can be loaded in practice management software, the 835 should pass validation checks. Common issues affecting 835s are balancing errors between the header and detail payment amounts. Imbalanced 835s lower the quality of reporting and can lead to billing errors and lost revenue.
WEDI describes up to seven levels of validation,…

BizTalk 2016 Feature Pack 1 Management REST API Tutorial

Kevin Morillo

One of the great new additions of the recently released Feature Pack 1 for Microsoft BizTalk 2016 is a REST API, which can be used to administer BizTalk Server.  Longtime users of BizTalk may have experience with using ExplorerOM.dll or WMI based scripts to manage their BizTalk environment.  The REST API introduced in Feature Pack 1 provides a more flexible alternative, including a Swagger definition providing rapid implementation of an application to consume the API.  In this post, I will walk through the process of installing the API as well as using Swagger to generate a C# client and demonstrating a simple command.

Salesforce .NET Connection Pool

Nick Rubino

The following write-up will go through how to setup a connection to the Salesforce SOAP API using the Force.com Enterprise WSDL along with a custom connection pool wrapper I have written. I have used the repository pattern and object pool pattern to design a connection and connection pool for querying, saving, and deleting data from Salesforce through this SOAP API.
The connection pool code can be downloaded at the following github link.
The code from the link above enables you to query against any out of the box object or property. To hook into your custom Salesforce environment objects and properties you will need to update the Web Reference in the salesforce.connection project as outlined here. Also do not forget to modify the wsdl before updating the Web Reference because of the known bug with the wsdl generated from Salesforce.
Once you have…

Rate Limited Threading in C#

Jeremy Mill

I recently ran into an issue while working on a project dealing with an external, rate limited, REST API. We wanted to perform an action on several thousand local objects which required hitting this external service and getting back a response. Running in an iterative pattern wasn’t an option for us because it would take too long, and guessing the number to try per minute wasn’t an option either because we might incur extra charges from the provider of the external API. The solution was to create a rate limited ThreadPool in our C# application to perform the requests, and a BlockingCollection to store the responses.

Enhanced QNXT Integration – EDI Transformation and Tracking

TriZetto’s QNXT is a widely adopted platform for claim processing and membership administration. QNXT relies on the Microsoft stack, particularly BizTalk, .Net and SQL Server, to process and store EDI messages.
These technologies give developers many tools for customizing and tracking HIPAA transactions, but the complexity of implementing business rules and lifecycle reporting on EDI data are constant concerns for health plan payers.
Tallan’s T-Connect EDI Management Platform is an optimized integration solution founded on three core design principles:

An accessible API. One of the most common challenges our partners face is implementing business logic on EDI. T-Connect loads all HIPAA transactions into a fully compliant hierarchical data structure that can be manipulated with familiar tools such as Visual Studio and .Net.
Full database persistence. Going from EDI to a relational database is a frequent business need, but capturing the full set of fields present in an 837 alone represents…

Integrating Braintree Auth Allows Customers to Connect Their Braintree Account to Your Platform

Devin Clark

Braintree Auth is a new feature of Braintree that allows customers to link their personal Braintree accounts to a company’s platform. This technology allows the company to do all the heavy lifting by reading transactions and processing payments on the customer’s behalf. The process works similar to the way customers can sign in on other sites using their social media credentials.
Tallan is the first company to ever set up the Braintree Auth feature. We found a need for it on the SmartRaiser platform. Before we used Braintree Auth, customers were required to get their funds from SmartRaiser directly and the process could take several months to allow all payments to settle. With Braintree Auth, customers can access transactional information much faster and receive payments in as little as two business days.
Braintree has created a simple API to get started with…

Dynamically set InstanceContextMode for a WCF Service from app.config or web.config

Dan Field

WCF offers a lot of very powerful configuration and extensibility options – sometimes it becomes a bit dizzying.
I recently had a requirement to design a WCF service that could potentially consume many system resources (particularly, RAM) in some client scenarios. Any single call will be manageable, and concurrent calls would be manageable in some environments (but not others – the service is required to be able to process large files in a single call, but can only handle so much before running out of memory). Obviously, it would be good to find ways to split up calls to the service or for the client to sequence them, but WCF offers a very simple configuration attribute to specify that the service should run as a Singleton, processing only one call at a time:
Problem solved, right? Now what if a particular environment…

How to resolve the “Reason: Unexpected event (“eos”) in state “processing_header”.” error from the XML Disassembler

Dan Field

This error is typically harmless, but can result when the XML Disassembler encounters an empty Envelope message instance that’s formatted like this:
instead of this:
BizTalk chooses to make a semantic difference between these two instances, and process the second one fine (publishing no messages), but raising an exception like this for the first:
There was a failure executing the response(receive) pipeline: “…” Source: “XML disassembler” Send Port: “…” URI: “…” Reason: Unexpected event (“eos”) in state “processing_header”.

This can happen particularly when using an XmlProcedure or XmlPolling from SQL – if the resultset is empty, the adapter will publish this message. While this behavior may be desirable (and can frequently be avoided by ensuring you have good Data Available statements on your polling ports, and only call XmlProcedures with valid parameters/at valid times), it can also generate a lot of alarming errors….

Setting Up Automated Azure IaaS VM Shutdown

Kevin Morillo

The Tallan Integration Practice heavily utilizes Azure Infrastructure as a Service (IaaS) virtual machines for quickly setting up isolated environments for prototypes and BizTalk development environments.  However, with so many virtual machines it is often difficult to remember to shut them off when not needed.  With Azure‘s Automation features, we can setup a scheduled job to shut down non mission critical VM’s, saving on hosting costs.

Xsd.exe, Arrays, and “Specified”

Dan Field

Microsoft’s XSD utility provides an excellent way to generate classes from schema definition files, but has a few quirks that can make using the generated classes a bit tougher. In particular, it serializes repeating structures as arrays rather than using the generic List class, and it serializes any element with a “minOccurs = ‘0’” with a separate “Specified” property (which must be set to true if the member is to be serialzied back to XML).
We frequently use serialization techniques here, and while there are some utilities out there that offer similar post processing, many of them are not free and/or difficult to package with a build (include an executable in the project? not ideal). In light of that, I wrote a PowerShell script (below) that can be included in source control and utilized in a post-build event. For example,
The /c…