Working with Databases

Inserting data into a ‘hostile’ vendor application

There are many times the business requirement arises where you want to insert data into a third party application database directly without the co-operation of the vendor.

Typical scenarios this may occur are:

  • You are a vendor selling a replacement system, your customer still have this system from a competitor which they are forced to use for a time.
  • It might be an end of lifed system which is no longer supported – perhaps the vendor is no longer in business.

For these types of scenarios it’s not a bad strategy to consider actually mapping data directly into the database of such a system. The database schema is static and so it often easier to feed data directly into the database rather than attempting to use a poorly documented ‘official’ HL7 or other type of interface.

It’s going to depend on the application in question. So the million dollar question – how difficult is this and what’s a good strategy to do it?

What we recommend is:

  1. Get the application in a virtualized image like a VMware image.
  2. Use tricks the one for quickly surveying a database.
  3. This means you can use a process of trial and error with inserting data into the system in the convenience of your work environment and easily roll back any mistakes.
  4. When it comes to production deployment it makes sense to set up a test system and clearly the define the user acceptance criteria for the integration.

The amount of effort required will be directly proportional to:

  1. How much data you attempt to push into the system.
  2. The quality of the data model – if it’s a poorly organized datamodel with a lot of complexity and duplication of data then it will make the integration work harder.
  3. How skilled the person programming is at navigating and comprehending the database of the app.

Using the Iguana Translator makes this work a lot more rapid since you can iteratively and quickly verify the integration but unavoidably there will be a considerable amount of analysis required of the application you are feeding into.