EMD Technologies – Your healthcare solution provider #practice #management #specialists, #medical


Your Healthcare Solution

Our Practice Management philosophy is simple. We aim to improve effectiveness and efficiency within a healthcare provider’s practice, by removing tedious and non-productive tasks from the practitioner’s schedule as far as possible, leaving the practitioner free to give their patients the care they require. At eMD we strive to ease the management and automate all repetitive tasks, such as submissions and orders. Whether managed care is your goal or you work on a fee for service model, or even a combination, eMD is the only powerful integrated platform which allows one to work today without limiting one’s options tomorrow.

Practice Management Software

Healthcare providers need specific and focused solutions, with intuitive workflows and rich specialty specific content. With eMD Technologies, Healthcare Solutions is at our core. Trusted by more than 3000 practices and more than 87 provider types.


Providers have to watch over different dimensions simultaneously, balancing quality care delivery and moderating costs by tracking workforce and their financials. Keeping a record of all these dimensions is impossible without using a centralized system.

Debt Management

Our dedicated collections and billing specialists are equipped to provide an unmatched level of service. Using aging reports, electronic claims processing, and monthly status reviews, we customize your billing and collections process so it’s quicker, easier, and simpler.

Information Technology Consulting

The changing healthcare environment means that healthcare providers need to respond with rapid transformation. Learn how we can help you increase organizational flexibility, agility and responsiveness, while reducing costs.

Healthcare Advisory Services

The eMD advisory services team work interactively to understand the unique fabric of our clients’ organizations. We formulate solutions that ensure your vision becomes a reality. At the eMD Group, we design your tactical solutions through well-developed project plans.

Training Services

It is vital in any area of business to offer continual staff training to your employees. This not only helps your employees improve their position in your company but will also enable you to draw the full potential from your workforce, and unlock the full effectiveness from your practice.

Electronic Medical Records

An EMR contains the standard medical and clinical data gathered in one provider’s office. EMRs go beyond the data collected in the provider’s office and include a more comprehensive patient history.

Mobile Web Application

With our new web based mobile App you will have a birds eye view of exactly what is transpiring in your practice at any given time and from any mobile device anywhere in the world, 24/7.


Our Practice Management philosophy is simply. To improve effectiveness and efficiency within a healthcare provider’s practice by removing tedious and non-productive tasks from a healthcare providers’ schedule wherever possible. Simply put, the healthcare provider should only have to see patients. Our system will ease the management of tasks and automate all repetitive tasks such as appointments, claims and orders.

As an added value extension of eMD Technologies; we have introduced our eRecoveries Department. Our collection is done in an assertive and professional manner which includes the sending of highly customized debt collection letters and telephonic follow ups. We use a number of investigative techniques and resources to gather as much current information as possible.


Posted In: NEWS

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Leave a Comment

BizTalk and #biztalk #edi


BizTalk and .NET Ambient Transactions

One day, I hope to be able to fully understand and explain the Ambient Transaction true/false option in BizTalk WCF-SQL and WCF-Custom send and receive ports. Until then, I m going to collect the most relevant info and blogs here:

The official Microsoft BizTalk parameter definition (for the WCF Send or Receive Port): http://msdn.microsoft.com/en-us/library/dd787981.aspx

Specifies whether the SQL adapter performs the operations using the transactional context provided by the caller. Default is true. which means that the adapter always performs the operations in a transactional context. If there are other resources participating in the transaction, and SQL Server also joins the transaction, the transaction gets elevated to an MSDTC transaction.

However, there can be scenarios where you do not want the adapter to perform operations in a transactional context. For example:

  • While performing a simple Select operation on a SQL Server database
  • While specifying a polling statement that performs a Select operation, and does not involve any changes to the table either through a Delete statement or by invoking a stored procedure.

Both these operations do not make any updates to the database table and, hence, elevating these operations to use an MSDTC transaction can be a performance overhead. In such scenarios, you can set the binding property to false so that the SQL adapter does not perform the operations in a transactional context.

Not performing operations in a transactional context is advisable only for operations that do not make changes to the database. For operations that update data in the database, we recommend setting the binding property to true; otherwise you might either experience message loss or duplicate messages, depending on whether you are performing inbound or outbound operations.

http://msdn.microsoft.com/en-us/library/ms973865.aspx (Richard Seroter above refers to the Ambient Transaction feature as being part of the Systems.Transaction in .NET Framework 2.0 and afterwards. It seems like understanding Ambient Transactions from native C# first would be key to understanding how it works in BizTalk.

The above link provides the following information, but as for me now, it does not pass the so what and the WIIFM (What s In It for Me) test.

System.Transactions defines a concept called an ambient transaction. The ambient transaction is the transaction that is present in the thread that the current application code is executing within. To obtain a reference to the ambient transaction call the static Current property of Transaction:

If there is no ambient transaction, Current will return null .

The ambient transaction object is stored in the thread local storage (TLS). As a result, when the thread winds its way across multiple objects and methods, all objects and methods can access their ambient transaction.

The value of TransactionScopeOption lets you control whether the scope takes part in a transaction, and if so, whether it will join the ambient transaction or become the root scope of a new transaction.

A TransactionScope object has three options:

  • Join the ambient transaction.
  • Be a new scope root, that is, start a new transaction and have that transaction be the new ambient transaction inside its own scope.
  • Do not take part in a transaction at all.

This forum post tries to answer the question: What exactly is an ambient transaction?

There are 2 main kinds of transactions; connection transactions and ambient transactions. A connection transaction (such as SqlTransaction) is tied directly to the db connection (such as SqlConnection), which means that you have to keep passing the connection around OK in some cases, but doesn t allow create/use/release usage, and doesn t allow cross-db work.

The alternative is an ambient transaction; new in .NET 2.0, the TransactionScope object (System.Transactions.dll) allows use over a range of operations (suitable providers will automatically enlist in the ambient transaction). This makes it easy to retro-fit into existing (non-transactional) code, and to talk to multiple providers (although DTC will get involved if you talk to more than one).

Note here that the two methods can handle their own connections (open/use/close/dispose), yet they will silently become part of the ambient transaction without us having to pass anything in.

If your code errors, Dispose() will be called without Complete(), so it will be rolled back. The expected nesting etc is supported, although you can t roll-back an inner transaction yet complete the outer transaction: if anybody is unhappy, the transaction is aborted.

The other advantage of TransactionScope is that it isn t tied just to databases; any transaction-aware provider can use it. WCF, for example. Or there are even some TransactionScope-compatible object models around (i.e. NET classes with rollback capability perhaps easier than a memento, although I ve never used this approach myself).

Blog on on the topic: Transaction.Current and Ambient Transactions by Florin Lazar:

Key phrase from above blog: Transaction.Current can detect that the transaction was created inside a COM+ context and provide it to anyone asking for the ambient transaction.

StackOverflow: Difference Between Transaction and TransactionScope

Key phrase: The ambient transaction is the transaction within which your code executes.

And final link to a comparison of Transaction Handling in 1.0 and 2.0 .NET (rather old, but may help give the background of when the Ambient Transaction was birthed: http://msdn.microsoft.com/en-us/library/ms973865.aspx

A transaction which automatically identifies a code block that needs to support a transaction without explicitly mentioning any transaction related things. An ambient transaction is not tied just to a database, any transaction aware provider can be used. TransactionScope implements an ambient transaction. If you see the use of TransactionScope, you will not find transaction related anything sent to any method or setting any property. A code block is automatically attached with the transaction if that code is in any TransactionScope. A WCF transaction is another example of a transaction aware provider. Any one can write a transaction aware provider like the WCF implementation.

WCF-SQL and DTC Ambient Transactions in a cross domain scenario

The ambient transaction option ensures that the BizTalk adapter flows a transaction through to SQL Server and thus the SQL transaction will only commit when the message received by BizTalk is successfully written to the BizTalk message box database. This is of course crucial in a guaranteed delivery based solution where you can’t afford to lose any messages.

I found that all worked well when ambient transactions were turned off, however when turned on it looked like the receive location just hangs, holding a lock on SQL resources (I tried to do a select on the table in question using SQL Server Management Studio and it couldn’t return any values due to locks being in place) which won’t be removed until the host instance is reset.

The above blog talks about using DTCPing and DTCTester to identify DTC issues, and fixing them by laxing the security options in the DTC configuration.

Conclusions (or lack thereof):

So for now, I suggest studying that second web page to get an idea of what the topic is really about. If I had time, I would write some C# programs to test outside of BizTalk.


Posted In: NEWS

Tags: ,

Leave a Comment