Should I try and support all the fields in HL7?

One of the issues with the HL7 standard is that it is very large.  The issue is that it is driven by committee so there is usually someone pushing for every edge case you can imagine.

That means the every field in the standard was pushed for by someone but most of it will be irrelevant to you.

For example most of us deal with human patients – having a species code is not required.

So one mistake that people new to HL7 can make it to make gigantic database tables which cover every field they can see in a segment – particularly tempting with some features that were in Chameleon like the include all fields option.

Don’t do this.

Try and limit yourself to sensible subset of fields which are relevant to your application.  Real world HL7 messages tend to be very sparsely populated with respect to the number of fields that are actually implemented.

It’s the 80-20 rule – for 20% of the effort you can get 80% of the value.

If you are worried about losing information then a practical approach is to archive each HL7 message.