Tuesday, October 18, 2011

Phasing out of this blog.

Hi all. I decided to phase out this blog for various reasons and create a new blog with fresh perspective of my various current interests. Please visit my new blog site.

Monday, October 25, 2010

Top 10 Approaches for Professional Development

I found this article in February 2010 issue of "HIMSS Clinical Informatics Insights" magazine.

I think that it works in any sector and at any level. You might be doing some of these already, but this article shows what else you can do to successfully grow professionally in any job you choose. Infact, I am testing those rules on my career too. I will let you know how succesful I am in few months time.

Also, don't forget to read my other article - Healthcare IT jobs... What should you know?.

- Cheers.

Thursday, March 11, 2010

Delighted to join HIMSS Southern California chapter

I am delighted to join Southern California's HIMSS(Healthcare Information and Management Systems Society) chapter. It is a brand new start for me in healthcare IT. I am hoping to attend the meetings and do some volunteer work.Here is my membership card.

Sunday, January 3, 2010

Healthcare IT books

Here is a link for you, in case you are searching for a "Healthcare IT book store".

Monday, December 7, 2009

Choosing to solve the right Healthcare IT problem first.

I found another nice article in the "The Healthcare IT guy" blog. Instead of rephrasing it, I am just linking to the blog posting.

You must read it if you are venturing into "Healthcare IT solutions".

Healthcare IT jobs... What should you know?

I recently got very curious about this whole Healthcare sector, and started doing some research about it's current needs and the kind of IT people who fit into this sector. As I was looking around, I came across a nice blog posting from Shahid Shah.


"...

If you’re not an expert in healthcare IT, how could enter the field? It’s actually a little easier than you might think but you’ll need to be creative. Here are some ideas.

If you’ve got experience running or working in a medical office or you’re an experienced project manager you can apply for an implementation specialist or assistant at almost any healthcare IT firm like an EMR or EHR vendor, consulting firm, or systems integrator. The thing to keep in mind is that every customer that buys an EMR needs to have it installed and deployed and that’s done by implementation folks. There is a shortage of people that can take complex products like EHRs and EMRs live.

If you have a little or a lot of general IT experience but no healthcare IT experience you can start by working in a technical support or training capacity. You would get the opportunity to learn new products and use your IT experience to provide customer service, support, and training talent.

If you’re interested in the software side you can think of being a tester of software; vendors need good quality assurance and configuration management personnel and that’s a great place to begin your healthcare IT career.

If you’re good at writing, consider joining the documentation team for creating training materials, videos, screencasts, or other related artifacts necessary to teach people how to use healthcare IT.

If you’re a developer interested in writing software but you’re not experienced in healthcare, join one of the many open source projects that are out there building open source EMRs, EHRs, PHRs, and related tools. Open source is a great way to join a community of people willing to help you if you’re willing to give back to them, too.

If you’re an integration specialist (you know EAI, EDI, EII, ETL, ESBs, or other integration techniques) start to learn HL7, CCR, and CCD and you can write your own ticket almost anywhere. The majority of healthcare problems in the IT arena are integration and deployment problems so if you know scripting and HL7 you’re good to go.

..."

Monday, November 30, 2009

Integration Concerns for Healthcare Organizations

"...

Today’s healthcare organizations face many challenges in implementing, managing and maintaining HL7 integration solutions. Integration solutions must be able to support mission-critical healthcare systems, and meet the requirements of the current regional and provincial initiatives while at the same time ensuring future EHR initiatives can be accommodated within the solution’s framework.
This event will focus on tools, methodologies and best practices to help simplify and accelerate Healthcare Integration solutions. Attend and learn from real-world success stories on how Microsoft-based technologies were applied to deliver healthcare solutions.

- EHR and HealthVault
- HL7 v2 and v3
- Regional Integration
- Patient & Provider Portals
- Paperless Clinical Operation
- Medical Device Integration
- Reporting & Analytics
- Performance Management

..."

Watch this Web cast.

Microsoft ESB Guidence/Toolkit Videos

Peter Kelcey's 7 part Video series
Brian Loesgen's 2 ESB demos
From Microsoft ESB site
An ESB itinerary introduction demo

Wednesday, July 1, 2009

BAM Alerts issue while installing BizTalk Server 2009



Problem:


While configuring BizTalk Server's BAM Alerts, you might get the following error:

Microsoft (R) Business Activity Monitoring Utility Version 3.8.368.0
Copyright (C) 2006 Microsoft Corporation. All rights reserved.
ERROR: Failed to set up BAM database(s).
There was a failure while executing nscontrol.exe. Error:"Microsoft Notification Services Control Utility 9.0.242.0
Microsoft Corp. All rights reserved.


Analysis:

This happens when the notification services are not properly installed in this environment. The real problem is that – Notification services is not part of the SQL Server 2008 installation, unlike SQL Server 2005.

http://sqlblog.com/blogs/tibor_karaszi/archive/2007/08/03/no-notification-services-in-sql-server-2008.aspx

http://social.msdn.microsoft.com/Forums/en-US/sqlnotificationservices/thread/03cb63a9-7fe7-408d-b194-7ff3d14e682a

So, products like BizTalk will eventually rely on a different mechanism to notify ( for alerts). I also found few blog postings which might of some help to you.

http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/7f4c1060-c47c-4467-8ada-778bb47f7c1c

http://msinnovations.spaces.live.com/blog/cns!62E68922E47BC425!609.entry

The person who posted this could finally make the installation work by taking the following steps:

“VM Base: Windows Server 2003 R2 SP2, SQL 2008, VS 2008 (minus SQL Express) installed in this order.
VM Diff:
• Don't use the SQL 2005 SSNS RC1 linked in the 2009 beta install guide. Use a SQL 2005 full version.
• Install SQL 2005 as a named instance (installing after SQL 2008 was the default instance worked fine for me), install the database services, notification services, and analysis services.
• Run SQL 2005 SP2. If you forget this step, the BAM Alerts tells you the current SQL 2005 instance is not supported.
• Install BizTalk 2009 full
• Configure BizTalk 2009, use the named instance of SQL 2005 for all of the BAM databases. “


Another way could be –

“I have been able to get SQL Notifications working with Biztalk 2009 and SQL Server 2008. In the installation doc for BizTalk 2009 under the "Install SQL Notification Services" section there are a couple of hotfixs to download. SQLServer2005_XMO and Yukon_SP2_CU9_SNAC. You receive an email with the download link and a password. The Install doc say to leave the password blank. Enter the password and an msi will be extracted to your directory. Install the msi and for each of the 2 downloads. Extract and install the Yukon_SP2_CU9_SNAC first.

Once this section of the doc is complete you can now configure the BAM Alerts (Which will create the Databases. You will have to ensure that your BAM users (BAM Notifications Services User, BAM Management Web Servcies User) have the correct access to the database tables. Check out this link for windows groups and user accounts (http://msdn.microsoft.com/en-us/library/aa577661.aspx)”


My suggestion:

“BAM Alerts “ are not the most critical for BizTalk’s primary function. It is just an add on feature that most of the clients do not use. Bam Alerts basically use SQL Server’s Notification services to send alerts to BizTalk Notification subscribers. So far, I have not seen this feature being used by any of the clients I have worked with.

Monday, April 27, 2009

BizTalk 2009 books in the market

Hey BizTalkers, you must be all excited about the new version of BizTalk 2009 with lot of cool features, and must be waiting to get your hands dirty. Here are the books that help you learn the new features and set you up for your dirty work. :)

The authors are almost done with most of their content, and some are in the market already.

Tuesday, September 23, 2008

BizTalk Server 2009 Roadmap

Finally, the roadmap for BizTalk Server 2009 is revealed. It appears to have lot of new and exciting features in it. I can't wait to play with it.

Updated list of BizTalk 2006 R2 posters

Here is the updated list of BizTalk 2006 R2 posters. It also has interactive capabilities reader. Enjoy.

Monday, April 21, 2008

Microsoft's Messaging, Workflow Roadmap Announced

" A project code-named Oslo will deliver updated messaging and workflow
technologies in the next version of BizTalk Server and other products
starting in 2009."
- Research Directions

Here is the roadmap

Tuesday, April 15, 2008

Debatching XML using Index Functoid and Map parameters

Scenario:
In one of the applications that I am actively working on has need to de-batch a Product from an XML which has "n" number of products in it, and persist one product at a time by calling a stored procedure. I have to loop through the collection of products and persist individual Product. Just to make it worse, each of the stored procedure calls need more than the information provided in the Product node.

Solution:
There are many ways of retrieving the product information from the XML, like XPaths and loops. But, in this scenario I wanted to try something different. I decided to use a combination of - Index Functoids, Parameters to maps, and looping of Products. I did the following to accomplish this task -

a. I created a schema which holds the index of the loop, and called it context schema. A new message of this type will be created in every iteration of the loop.


b. I created a interesting multi-part message map. It has 2 input schemas - the order schema with multiple products in it; the second one is the above context schema. The interesting thing here is that, I can pass the index of the loop into the map and get the correct product out of the product collection, and pass the values to the target SQL request schema.


c. A simple Orchestration does the rest of the work. It looks like below -



If you look at it closely it just does the following to accomplish the task:

1. Get Item Record Count Expression shape - gets the count of Products in the order message.



2. while the there are products continue the loop.



3. Construct a context message that will hold the current index value of the loop. This message will be used as a "parameter to the map".



4. Create a map which

a. takes two input messages



b. and gives one message which will be used in calling the stored procedure



5. The stored procedure is now called with the request and a response comes back from it.

6. Finally, the loop is incremented to pick the next Product from the Order message.


That's it. Now you know how easy it is to use Index functoid and multi-part maps to get the specific information from a record.

ESB Evaluation Framework

I accidentally came across the "Enterprise Service Bus Evaluation Framework" by Patricia Seybold Group. The author of this article Brenda M. Michelson identified the very improtant criteria in evaluating the Enterprise Service Bus.

- Integration Scenarios
- Design, Development and Deployment
- Management and monitoring
- Architecture
- Product Viability
- Company Viability

I suggest you to consider these in evaluating your next ESB product for your organization.

Monday, April 7, 2008

BizTalk magazine - BizTalk Hot rod Issue3

I recently came across a BizTalk magazine, named BizTalk Hotrod. Infact, this is the only BizTalk maganize dedicated purely to BizTalk that I found till this point. It has lot of interesting articles from lot of BizTalk specialists. Sal & Todd put together a great magazine. They recently released the Issue 3 of Hot rod magazine. You can also download the PDF version of the magazine.

Sunday, February 17, 2008

WCF primer

I am not a man of 1000 words. Instead, I like being very visual. And it makes me understand the concpets better. I am pretty sure that, I am not the only .NET developer looking for .NET 3.5 stuff, WCF in specific.So, the attached a set of Visio diagrams which made it easy for me put concepts in context. I suggest you to download and browse through it for a better understanding of WCF. And, Happy coding ...

1. Server Side WCF



2. CLient side WCF



3. WCF Framework

Friday, August 17, 2007

BizTalk Case study – A Ticketing System (Part 1)

Introduction:


Couple years ago, I was taken as consultant to solve a business problem of automating a concert ticketing process. During the implementation of this application I learnt lot good things about asynchronous communication, ordered processing and reliability. In this article, I will take you through the entire project life cycle of this application. During this I will try to avoid non relevant details and stick to the usage of BizTalk and web services; and make it as interesting as possible. I will use a fictitious ticketing web application named mytickets.com in the article.

Overview:


Mytickets.com is nation-wide Rock concert ticket selling company. It caters it’s customers by selling concert tickets through it’s ticketing web application. Like any reservation system, it has a internet web application for customers who go through a series of steps before they confirm their ticket.

Usage scenario:


The above scenario is a very common one. But, what happens underneath in the system is complicated. To avoid the unnecessary details I will walk you through the following critical usage scenario of the Ticketing system:
- System shows the concert listing and inventory to the customer.
- Customer selects the tickets for a specific concert.
- Customer Logs into his/her profile.
- Customer puts credit card information, and personal billing information
- System sends an immediate conformation which says – “ Your request
is under consideration, here is your conformation number, and we will send an email with the tickets in few minutes.”
- At some point later user gets another email with either confirmation or
Failure notification (Email).
Let’s delve into the details of this.
1. Generation of Confirmation number & Priority number

System has to generate a confirmation number and a priority number for every customer request. Confirmation number will be used by the customer to track his request with mytickets.com, incase the second email(ticket Confirmation email) does not arrive on time, and also for any other clarifications. Priority number tells the customer that his ticket is being processed in the order in which the requests have arrived, and his request is located at the n th location in the queue. For example, he is the 16th person to request for the concert. This will also protect mytickets.com from any law suites by customers for out of order processing of requests. Ticketing system uses an internal web service to create a confirmation and priority numbers.


2. Sending first E-mail to the customer

Just after receiving the confirmation and priority numbers an email is sent to the client that says - “ Your request is under consideration, here is your conformation number and priority number, and we will send an email with the tickets in few minutes.” This e-mail is sent by the ticketing web application. SMTP service of IIS server can send the email to the customer. (Refer to Previous Sequence Diagram)
3. Processing the request and sending the confirmation e-mail to the customer

The customer’s ticket request is processed in the order arrival. His credit card and address are verified. If the initial validation fails then, a failure e-mail is sent to him immediately. Otherwise, after the initial validation, availability of seats for the selected concert is verified. If the seats are available then the inventory is updated and a confirmation email is sent to the user. This process is complicated and also the system needs to process the request orderly fashion based on priority number. The design of the process also needs to consider the high volume scenario. (Consider buying tickets for “Rolling Stones” Concert) and reliability. So BizTalk is used to take care of the purchase process.



The architecture of the ticketing application looks as below:



In the part 2 of this posting I will walk you through the implementation of this system.

Thursday, August 16, 2007

BizTalk Tools and guidelines

I have been collecting the tools and guidelines coded and written by BizTalk developers and designers. I always wanted share these with the developer community. I finally put all of them in one place, and also classified them based on the life cycle stage of the BizTalk project. - Happy coding.

Design:


1. Naming Conventions(Author: Scott Colestock)
2. Enterprise Integration Patterns(Author:Gregor Hohpe)
3. Pattern Wizard(Author/Company: Codeplex.com,BTS Version:2006)
4. Orchestration Designer for Business Analysts(Author/Company:Microsoft,BTS Version:2006)

Development:


1. Pipeline Viewer(Author:Jon Flander)
2. SSO Config App(Author:Jon Flander)
3. Context Adder(Author:Jon Flander)
4. Schema Viewer(Author:Jon Flander)
5. Correlation with MSMQ(Author:Jon Flander)
6. OrderMapping.exe(Author/Company:Microsoft)
7. ExportCatalog.exe(Author/Company:Microsoft)
8. Std. BizTalk Tools(Author/Company:Microsoft,BTS Version:2006)
9. DebugView for Windows v4.64 (Author/Company:Mark Russinovich, Microsoft;BTS Version:2006)
10. TCP Trace(Author/Company:PocketSOAP,BTS Version:2006)
11. Delimited File schema Generator(Author/Company:gotdotnet.com,BTS Version:2004)
12. Adapter Wizard(Author/Company:codeplex.com,BTS Version:2006)
13. Pipeline testing Tools(Author/Company: Microsoft BizTalk Std SDK tool,BTS Version:2006)
14. Best Practices Analyzer(Author/Company:Microsoft,BTS Version:2006)
15. Understanding the BizTalk Server WS-Addressing Helper(Author/Company:Microsoft,BTS Version:2006)
16. Rule Manager(Author/Company: Acuman Business,BTS Version: 2006)
17. BizTalk Server Pipeline Component Wizard(Author/Company: Codeplex.com,BTS Version: 2006)
18. BizTalk Server Orchestration profiler(Author/Company: Codeplex.com<,BTS Version: 2006)
19. WCF Adapter for BizTalk server 2006(Author/Company: Codeplex.com,BTS Version: 2006)
20. TCP/IP adapter for BizTalk server 2006(Author/Company: Codeplex.com,BTS Version: 2006)
21. BizTalk Software factory(Author/Company: Codeplex.com,BTS Version: 2006)
22. Project Solution Kits(Author/Company: Codeplex.com,BTS Version: 2006)
23. Map Cop(Author/Company: Codeplex.com,BTS Version: 2006)
24. ADO Adapter for BizTalk server(Author/Company: Codeplex.com,BTS Version: 2006)
25. XChain(Author/Company: Codeplex.com,BTS Version: 2006)
26. Debatching sample for BizTalk server 2004 and SQL Adapter(Author/Company: Codeplex.com,BTS Version: 2006)
27. Custom Event log Functoid(Author/Company: Codeplex.com,BTS Version: 2006)
28. Custom Receive File Adapter(Author/Company: Codeplex.com,BTS Version: 2006)
29. Tool for generating metadata(Author/Company:Jesus Rodriguez,BTS Version: 2006)
30. TIBCO Adapter(Author/Company:Pallavi Narayanaswamy, gotdotnet.com;BTS Version: 2004)
31. Batch Execution Framework for BizTalk 2004 Orchestrations(Author/Company: Pallavi Narayanaswamy, gotdotnet.com;BTS Version: 2004)

Testing:


1. BizUnit(Author/Company: Codeplex.com,BTS Version: 2006)
2. BizUnit Extensions(Author/Company: Codeplex.com,BTS Version: 2006)
3. LoadGen Tool(Author/Company: Microsoft,BTS Version: 2004)
4. Quick Counters(Author/Company:Codeplex.com,BTS Version: 2006)
5. PerfMon counters(Windows OS: $SystemRoot\system32\perfmon.msc,BTS Version:2004/2006)

Configuration/Management:


1. BizTalk Assembly Viewer(Author/Company: Microsoft BizTalk Std SDK tool,BTS Version:2004/2006)
2. BizTalk Subscription Viewer(Author/Company: Microsoft BizTalk Std SDK,BTS Version:2004/2006)
3. Assembly checker and remote GAC Tool(Author/Company:Codeplex.com,BTS Version: 2006)
4. BizTalk Host Configurator per Application(Author/Company: Codeplex.com,BTS Version: 2006)
5. Storing Usernames, Passwords in SSODB Database using MMC 3.0-Biztalk(Author/Company: Codeplex.com, BTS Version: 2006)
6. BizTalk Service instance controller(Author/Company: Patrick Wellink,BTS Version: 2006)
7. SDC tasks library(Author/Company: Codeplex.com,BTS Version: 2006)

Deployment:


1. Deployment Frameworks for BizTalk 2004/2006(Author: Scott Colestock,BTS Version: 2004/2006)
2. Deploy Tool(Author: Richard<,BTS Version: 2006)
3. Log4Net for BizTalk(Author: Scott Colestock<,BTS Version: 2004/2006)
4. BizTalk Namespace verification tool(Author: Jon Flander,BTS Version: 2006)

Misc:


1. System Verification tool v1.0(Author/Company: Microsoft,BTS Version: 2006)
2. Restore Script for BizTalk 2006 Std. Edition(Author/Company: Microsoft ,BTS Version: 2006)
3. BizTalk 2006 Documenter(Author/Company: Codeplex.com,BTS Version: 2006)
4. Powershell BizTalk Provider(Author/Company:Codeplex.com,BTS Version: 2006)
5. File Dump Utility(Author/Company: gotdotnet.com,BTS Version: 2004)
6. SSO Trace Utility(Author/Company: Microsoft,BTS Version: 2006)

Saturday, July 21, 2007

Binding of orchestration's logical ports

Binding of orchestration's logical ports is one of the most basic features that every BizTalk developer uses. But, it also confuses lot of BizTalk newbies. Being a developer myself I understand the pain. Initally, when I started coding BizTalk, I, myself looked for a very simple working code which covers some of the scenarios.

During my "googling" process I found many good references. Some of them went deep into the thoeretical side of the port bindings, and some of them covered very specific scenarios. But I could not find any code samples which do a comparision of diffrent features of orchestration's logical port bindings. So, I thought, I would help the BizTalk newbies in understanding logical port bindings, by putting together some very simple code samples. And the resultant code covered the following scenarios:

1. Direct port binding
      a. Direct binding with "Partner ports" (Multiple forward partners scenario)
      b. Direct binding with "MessageBox"
      c. Direct Binding with "Self correlating ports"
2. Dynamic port binding
3. Specify Later Port Bindings
4. Specify Now Port Binding

And this code can downloaded from my code samples page(It's called "BizTalk Development - Orchestration Port Bindings").