List of HIPAA transactions:

270 Eligibility Request
271 Eligibility Response
275 Claims Attachment
276/277 Claims Status Request and Response
277 Claim Request for Additional Information
278 Referral/Authorization Request and Response
834 Enrollment
835 Claim Payment/Advice
837 Dental (837-D), Institutional (837-I), Professional (837-P) Claims
NCPDP 5.1 Pharmacy

NPI = National Provider Identifier – a new unique identifier assigned to all providers. Current requirement is that by May 2009 all claims must contain this number. http://www.cms.hhs.gov/NationalProvIdentstand/

These steps worked for me:

1) From Command Prompt, type in “regedit” (open the registry editor)
2) Navigate to HKEY_LOCAL_MACHINE > SOFTWARE > ODBC
3) Right click – select Export, and save as filename such as ODBC_Registry_Settings_from_machine-xyz.reg
4) Copy the file to the target machine, and double click the file.

Not sure if:
1) reboot is required, I can go to AdminTools/ODBC and see the changes immediately after running the .reg file.
2) changes overlay or add to what you already have on that machine.

Probably writing some WMI code is a better idea – but I didn’t have time, and in my case, it was a clean machine that I was targeting.

I created two schema that are identical except for one thing.
One of them has an extra element after the max-occurs=unbounded.

First schema – DemoRequest1.xsd

Second schema – DemoRequest2.xsd

I then created two identical orchestrations, except one receives DemoRequest1 and one receives DemoRequest2 (they both return the same message in the response).

Then both orchestraiton were published as WCF services.

We can see the differences in two ways:
1) By using the WCFClientTest.exe utility (found here:
C:Program FilesMicrosoft Visual Studio 9.0Common7IDE)
2) By creating a C# program, and adding a service reference to the published orchestration (WCF web service)

WCFTestClient shows the following:

DemoRequest1.xsd:

DemoRequest2.xsd:

The results are perhaps more clear in C#:

        static void Main(string[] args)
        {
            svcref1.Demo1Request req1 = new WCFOddityConsumeConsoleApp.svcref1.Demo1Request();
            svcref1.Demo2Request req2 = new WCFOddityConsumeConsoleApp.svcref1.Demo2Request();



            req1.DemoRequest1[2].MyString = "abc";      //Note the element ?MyGroup? does not even appear here!
            req1.DemoRequest1[2].MyDecimal = 123;

            req2.DemoRequest2.MyGroup[2].MyString = "abc";
            req2.DemoRequest2.MyGroup[2].MyDecimal = 123;
            req2.DemoRequest2.AfterMyGroup = "test";


        }

You can see how in one case, the “MyGroup” element has totally disappeared, and the subscript is now on it’s parent element!

So the moral of the story is, we sometimes add a “DummyElement” after the maxOccurs=unbounded group/record – so the world seem more normal.

If you are getting this error:

The “succeeded” operator can only be applied to an immediate child scope or service,
then make sure you specify a valid transactionName in parentheses, for example:

!succeeded(SendLoanData)

Note: SendLoanData is not the name of the scope, it is the TransactionIdentifier that you assign to the scope (which you could then use the same text value as the scope name).

This error was related to the compiler error:
“must receive before sending a fault message on an implemented port”.

The issue here has to do with publishing an orchestration as a web service.

This has already been discussed in the two blogs below
(more references for more info about the “succeeded” operator in BizTalk).

http://www.traceofthought.net/CommentView,guid,abdd6ca2-e964-437d-8bee-0188ec5b5afa.aspx#commentstart

http://staff.southworks.net/blogs/lito/archive/2007/01/02/Biztalk-Server-2004_3A00_-The-_1C20_succeded_280029001D20_-operator.aspx

1) This one comes with Visual Studio:
C:Program FilesMicrosoft Visual Studio 9.0Common7IDEWCFTestClient.exe
a) Just add your the URL to your service
b) double clik on the method you want to call
c) fill in the values
d) click invoke
It shows the response formatted, and there is an XML tab to show you the full XML.

2) CodePlex has several:
a) http://wcftestharness.codeplex.com/
b) http://www.codeplex.com/wsdldisco

3) http://www.soapui.org/ – Free and paid version – I think you have to register to get the free version.

If you want to do Load Testing – http://wcfloadtest.codeplex.com/

Neal Walters
March 6, 2009

BizTalk itself can be installed and configured in about an hour if everything goes well.

If you are starting from scatch however, you should probably allow at least one full work day. By this, I mean you build a Virtual PC or a new machine and install all the prerequisites.

Here is a list of things I installed on a new Virtual PC, in preparation for creating a new WCF/BizTalk course:

  1. Windows 2003 – about 1.5 hours
  2. Windows 2003 SP2 – about an hour
  3. SQL 2005 – about an hour
  4. SQL 2005 SP3 – about an hour
  5. Visual Studio 2005 – about an hour
  6. Visual Studio 2005 SP1 – about an hour
  7. Visual Studio 2008 – about an hour
  8. Visual Studio 2008 SP1 – about 1.5 hours
  9. Create userids and groups before BizTalk Install – about 10 minutes
  10. BizTalk 2006 R2 – about an hour

It all adds up fast. All the above take about 10 hours, but you can be doing other things while all the installs are running.

I did the above on a 500 GB USB drive, so it might actually run faster on a real machine, local disk, non-virtual.
I did not include SharePoint or MOSS on the above install. The time above also excludes the time to install Office (Excel and Infopath – needed for BAM and Trading Partner Management).

Neal Walters
March 6, 2009