That’s not a string… This, is a string! (Annotation reference sets)

By | January 7, 2014

Yesterday I was explaining to a colleague that reference sets can be used to do all sorts of interesting things other than just describe basic subsets of content, when I realised an option I’d not considered before…

The SNOMED CT RF2 specification details a core structure of 6 fields (the simple refset pattern) and from my experience this is what most people tend to have in mind when talking about refsets. However, the specification is extendible and allows for any combination of Integer, String or an Component ID fields to be added on for further patterns. What this allows is all sorts of extensions to be created, shared and used.

One idea I’ve always liked is annotating components something like a link to a reference article or an image. As an example :

referencedComponentId
Annotation
127913001
127916009

And this pattern too, is also described in the specification. So I mentioned annotations with images (like above) as an example of something different you could do, and as I say it I remember Base64 encoding. Obviously size is the main consideration, with the URL annotation above being just 65 bytes compared to the 7,400 of the encoded target image (which itself is 5.3Kb). And though I’ve got limited experience with Base64, decoding performance doesn’t seem too bad.

So while there is a significant hit on refset size, I can imagine applications that might benefit from this, particularly where offline use is a consideration or maintenance/reliability of online targets is a concern (Link rot).

And if you’re curious – here’s what the first entry of the above refset might look like:

referencedComponentId
Annotation
127913001
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
RK5CYII=

Now that’s a knife string!

Leave a Reply