Convert your FHIR JSON -> XML and back here. The CDA Book is sometimes listed for Kindle here and it is also SHIPPING from Amazon! See here for Errata.

Tuesday, July 28, 2009

A triangle has three sides

A triangle has three sides and three angles. Because of several properties, It is necessary and sufficient to know only:

  • The lengths of the three sides, or
  • the lengths of two sides and the measure of the interior angle, or
  • the length of one side and the measures of two other angles and their relationships to that side.

Which of the above is the best model for the triangle? This question has no correct answer.

The complete model of a triangle includes the measure of the three sides and of the three angles. Any model which functionally supports the exchange of sufficient information to determine these features is an adequate model, and functionally equivalent to any other model. The only value one model has over another is its ability to be expressed and exchanged based on available information. If I tell you the three sides of a triangle, can you readily compute the three angles? If you remember more trigonometry than I do, possibly, but if not, then no. If I gave you two sides and the interior angle, and you remembered the formulae for cosine, sine, and tangent, you might be able to derive the formula for the third side, and the two other angles. So, given the context of a limited amount of trigonometric ability, the better transmission might be two sides and the interior angle.

A similar example appears in the expression of the Interval data type. An interval has a start, end, middle and width. It is only necessary to know two of these to establish the correct values for the other two. What is the best model for transmission of this information? This question also has no correct answer without some sort of context. If start and end are commonly available data items, then why transmit anything else. In fact, I find it rare to see information system that deals with intervals as anything other than start and end point in time. The second most common model I find is start and width. I use the convention that all intervals are communicated using start and end, UNLESS only width is known, in which case, that is the only attribute transmitted. This leads to very clear and unambiguous communication. Computationally, I only need to do arithmetic, so I don't even care about how much math is necessary.

Moving one layer up, a similar case appears when dealing with the patient, subscriber and payer participants in a policy act. This is another case where we have a three way relationship. The patient is related to the payor through a subscriber by virtue of the policy. There are implicit or explicit relationships between each of these entities. The patient is a member of the policy. The subscriber is related to the patient. The payer has relationships with both. It is only necessary to know: The relationship between the patient and the subscriber, and the subscriber and the payor to determine the third relationship, between the patient and the payor. Once again, the question of which model is best is specious. The complete model includes all three relationships connected by the policy.

Most HL7 models do not typically include all of these relationships. However, this is extremely useful domain knowledge. This is not just a flaw in HL7, but appears within other standards as well, including those competing standards.

It would be useful to show these relationships within HL7 models more completely. I'd like HL7 D-MIM diagrams to reflect this domain knowledge directly. This would enable more complex decision support because the domain knowledge could be used to infer relationships that can be determined by available data.


Post a Comment