If you're going to be an HIE, you're going to need to handle both HL7 v2 and v3. My experience is that almost all "real life" data transmission is v2 (I think this is probably because most systems capable of v3 transmission also allow v2 formatting, whereas the older systems cannot handle v3, but this is just speculation). There's a very superficial overview of the core differences between v2 and v3 here, which talks a bit about what fundamental changes are being made besides format (delimited
vs xml
)
The second part of your questions doesn't really have a definitive answer, and ties in with your fourth question. CCD can be HL7v2 compatible, but it's a lot more difficult and relies on the sender and receiver both having a common understanding on a number of issues (hl7v2 is a very loose "standard"). Here's HL7standard.com's thoughts on the subject:
The short answer is "yes" with the long answer being "it depends."
There are different levels of CDA/CCD documents. It probably would be
possible to create a Level-1 CDA document from an HL7 v2 message,
assuming you had a fairly robust HL7 v2 report of some flavor (MDM or
ORU type of message most likely).
It would be harder to take an HL7 v2 message and convert it into a
Level-2 or Level-3 CDA document. More data is required in those
formats, and that data needs to be structured, not just free form
text.
The CDA is based on the HL7 v3 RIM, and compliant CDA documents will
follow that data model. Mapping from one data model to another can be
challenging.
All CDA documents need to have a responsible party or person who
'signs' the document. At a minimum, the HL7 v2 message would have to
have this information.
Converting a CDA document into an HL7 v2 message is possible, but you
run the risk of losing the 'context' of the data that is in the
original document if it is a highly structured Level-2 or Level-3
document. If the CDA contains nothing more than a textual report and
some patient demographic information, then it can be converted into a
comparable v2 message.
For getting a full list of fields, I'd just purchase the full HL7 standard... and maybe have a look over at bluebuttonplus.org... though keep in mind that v2 can result in some confusion, as message sub-segments aren't always consistently used between different actors. Anyway, I don't think that there are clean answers to most of what you're asking, but at the very least you will really need to handle both formats. I'd also throw in that you may want to look at a product like Mirth or InterfaceWare to handle some of your parsing and testing.