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 |
iVBORw0KGgoAAAANSUhEUgAAAFAAAABPCAIAAADz89W0AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAFONJREFU eF7tXAlQlVeWPk8wahuzdJuxU92Z6U63k2qnZqZneiqVnu6emq6Zrix2IiCi4hqXaFTUuCXunVXt tBpNtGUTF8SoCELADQEFlEVWBURWkX1HQEQB73zn3p+f9x5PfO/xtNKV+euUhY///f/9zjn3bPcc DEII+k5dAPyduug7hZbV+bEBvtMkGotE5WVRGi8KTkk6LW5eFNVZorlU3Lv9mBbyaAF33RVNJaIk RuQeFznB/G9uiMgNFdd6CD/zJ/jtMXE9QtRmi847jxb5owLcVsOS1EFeOyHywsX1bxjV9UiR30P4 mT8MF3lhzAWFHGLvaHlUsB0MuLtT1OcxNoYaIoATYAAy/yQrcOEZUXhWFEWJonMaFUbxJ4WnWcMV eHwFXwTsqgzR3eV42A4DDO3FbmSlPc6ygsSweg3nWVF8ThTHiJLz4sYFcSPOhPBhSawojhYM/jR/ RYN9nH/ouOVgzA4AjF1XcbkHqlLdSJYYRMc4YyXOOFGawLp685IoSzKiRP6k9CLrP3iBmyF86AJ0 Hs9R27ulwpGYBwS4s0NUpopcaY2U9mKhrLqAGq3Jk3FKkOUpzJeKVFGZbkRp/En5ZVGeLMoSmSkM O4afwEoODQ9l9Yblc9RlJ2AocFV6r1RZexXUKE11ITHIU8MpQWJPVmWJtND6/SvSDqxKz4xorMkW NVdF9RVRlclPY+QKdjwzC9qBByr1BuZbZY6BbDNghpphCarcpZAPQ73EQqvMELVXGJKi4I+zp/4w wNUQ4EnfgFwG7fX616NFF9vrronaXAHwjDxDgw0lZ1FHS8wRUs7B4nadAzDbALjrHq9JM0tQYF2q xlCTWVa1OaKhQDQUisYCIOnyX5oyfrjPhEFHNozJDnq7duuYppVUv4gKplGU23DvxMOVwKzDhhZU prGowbVezN9I7x0i7rUPFLNVgOFsIIReqPpelQrMUr3I+7P2KuOsze/IjqmN/7o0JaRyx8x41yF7 JtLxBYMyfV6vyzzUGenV/dkIsZHEOrq3jKrmUNI4Z+8TW64pzAw7h9mKLYA934tZ7mfYMLi0+/cH hPkhgOEJ669r1lIFD8Z7FVDLLrHq1uWyXWmtFplRlX6r4tb8IdjzBZ+3nP86iUIXUs57VP4B3do0 svOjofc3kEbAvIG6V1LDfEp3Nex7/7/C0sPqdFH3Yr7I+xmmG+4Krg5Mr732yAC3VErfoPyqcjY9 ZglupjyRjRDCjOYbAnFVe4M4fzj/Y7ewOS/tfXPYF6/S1tdpJ2Q7j9IWUZ4XFS9zurGUyhQto8r3 qWk9dQL/B9SCG6bSGVfDftfBvuOG/HXSMwGez+1d8E9f71ueXhzXCdMNzLDbWACHJccHpNiWJXy/ m/0NR0vGUOFsoMDxoiKFta7humi+KdpqxZ1GcbtepEVWeP0qcMLIXdtmxCYdqcqLaUkILN/wasSU 5wLchviOG+TnYvAfR3tdJI0jv0kUtoSK11GHVO+7q6huKZUuovwFlPsuXZ1HmXMoeSKFTHjKNy24 CYYQr1ZGG4qNQMXuywJgoMXTNdca0RNCAGocb1TY24Z8cUtCbW9kwbZVi8rcOwv+5cDYJ7Yf+TBL 3439/7Di5XB3ClpCpZAzMCsNX09d2NugtdSxmtqWUfnbFO/xtG9RbCe2j67YkAS0z77LAuCbCYwW GwbbFdGvCiHKk0S1tEkKKnI9BbXlJid9+1emQIdn/nSvlWjVbfNGH55O51ZS40a6rzCbEfAvozIY gh3TE1ixY3k98FLQO4jaPutlDhhxHPinoVU6HMfqXYe9WiqhNksdrhWt5aK5WNTlw/HcnzTKG4C/ mhtvE2A44XGDfBfRdYjUImB8uJbuzKdMj6f8EJBgJeyZT2nJiX3hlzlgFc2BixwexnIUAbQw1C3l rMAdTez9WytEcwlLW8E79WUB0IJCt+TYBBg3r/x16HSKWtWvkBdTkYuT/7Uz7QjdNOslhQw7aoeQ TQBDUZV4wUXwEmjhDCFbiB2/6mgWt6vFrVLRWMgf6tjW/m+YAgwrZStg2LZxThBynrJefQkbeynd gN86s7MEgSpbrx4hI4a3Q8gmgAEDuxdCxlbBhuH6y1U2xUB7V6EtYR02RlUY3zZ2MDshUGZEva2A cf/a33OkuYRurKHb2LS6o1Y2bA21LqDsPxp2zxsTeONSl7GQlbO0VcgmgCFPGH2lzxxUpLDvuV0j 7rWI9jqWrRlaLNdvSZJCC4K47ABckdH59j8cmEDH5lGGF+UvpZvLqRIEd+1FBfhwPAW9RszTbVPP mwg5jPXR1uTRBDAsoQY4igEjpoXOwBpDmdsq2Rqb4cmKbPjj4J1jadeb5PM67ShLu2cHYHwFZu/g B+kINlycfccbDrnT1+502JUO4L8Tn/HbMTMO9+ycdWHqj/yQk5jsZBls2nSZSjjZRMKoYMAJoeZw p4F/MBNv1ZWuqc9z6jOXUhAkjKXd9qE1/hZYlhJcrSg1tFb/VUnSHTgCz+d9IAMIWZlrFWwic8SO s/4yAczZvK7ScZyywTgDcHut9EA98b364fOJMR50bOnwvBVPVMyl1DedHADYIsuyzzRN+ZEvVPoN 5+1ll7uw75CraD5ZBl6QufWXCWBkKprRwh4G4Bxpn6HP1eb6jEWMc/ZZPCJj9++a1z/dgKRnyqiA gUu47xMuBJTO+XngREMIVAl51Z/eOIk6gfLJKvDi8kCwQO3FyssEcGOxEeB4TglbK1lh8C+SW+PV LPzno9MNZ/a8VuP/350rDfWzKXHGC/sdDvjYR1fHD/Ob6RSz/mfX1v64YDZddHc+uGNGHLJlmBuE CVp0fZzTNSsvE8AIUOHcUJpC9RAshMABFUYLil3XE2YAFdwPkoEPx+TFb7u7+VnxPjXOpcvuI/yw qx2Ied/yVFRFZtOl1SNLAt1vf/Vvd9+jm1Cl8U8EhP05X6XKWgpli38yAYztyoFHOHNOU2kArpeA jdzvqt+cmGY4febj5tBZ3TL661hIeRMMR329khwFGDyFiZ5DKb5j664e7T7iLj4ZhqSqYwmVIJ2Y +Kx/zsk24yAEy26tskrGJoBR2YDRU5EWgjgkRtjDZoDhNl2H+qx/Kacuv3v7T7QsZwXVzKFEpHJw MA7BvOHVyCl0asdvq7KPdR98VfzJoAVha6gNYZknhS/592Nm/glhvzWXeSwNGwCCMcD32S0hhIZK l/VK+MTmXPjJI/Ors4O79XUgxF9IuXCh4Z/3FmsGgnza8/vmGhJPLG7z/41JIoU4bBU1IBpxHbTv yPoc9k89xRCIyhohmwMuOiuTh0hRFM2FJWRIkDBg63t48S+PzhgUc2nP7YDf9y4FYeAyqphJ5+eO PjQQnPp3PUcGzHNO2T+udfP3++aMne9R2SxKGD/cNyOkRfdP6mjqoT7ZHDDcuu6Kke43FXN6hD1c 32O03J/0XT4q69Kuu1tGmiwFlRow3m2oL3R+4Jhn/fTgbEPCphfrPx1hIVWGQnlRIapCHs/6pR5p 1qq50iejsgk/2s9lDlhVJzl/OMtFQ+BEDoydrNwSMlgXZ/+No6+fmG+ewaJMg8wWWh3tUzJwwLve SZhEIYupEBbRUhZ1f7WshE2ns27DvFOCmrhqL/Nkxhwq7rY+ELI5YORGDLjHM8G/IerQ/TASQDdD 4Ic/L97zsjlgZDZLqWQyhe+ed3HggJGEuQ1jK72carBfHoC5FXJGOv32C4dUZVOdzgAz7C6q6BYv c8DI8nXPVHxeVGezJQApCUftKRpvCFr9XPHmH5oDhjlBijOTYpf+x7GBA8YTvBckjjcEotyxiuof jLkFN7zltKck7r6OWVVacYhhFWCcpOieCYYaX4PFYgnLPYyAHsVUL6ecDUPazbgOwHBOsCXv/uKw QwDjIctfCZlIoShirqQ6aFBfOWv7iILCNhdo1VwYbVnNBVkFGDepg2z2TNF80sOlrBpZ5ZB53ISn fRH9QJh9uA7A1bMobt5LjjHUeB3sHwJpDwqGGJdTNeD1rfK9R6WeFLF9qow3VTUXm1mmyhZ3soWq Jb6AfQ8+YVfAbiHA1iWMRRz98Cq2MbgOs2z8+g3UhXdPoZNbJpxzlITxHISrK14JgW5jP6O4hRMM Y1ErCbsZDp3aUYRUGVmUCrBVCwKq5X0vC4ARo3IdFDXac+JGglbB00t2WAR8xjQ6i9cbF6IQA6EW g5Wd2V3kQMDqUX5LUlwG++Cl8ykLBzcw0ahmA/kqanqH0uALS5M7VdpoDNiif7IAGAcLxoUeOCoU d1B812EgN3Qd4jOHLqIKA7exnu6B8TCYCDwm/8DfUdGlGdeunGycOzrQddB+vAWw4bEQfiCG96RI qAAfvimVNioMWDTUFgAbZ8UwfThVgVbjDMl4BaGbcpEwzaFLcIZ4N1YA9+A61Dv5aJXDxWv8wHPe JSiAuTrtxcbG1kUFYuygLy/sLYOt0fKnKHkEJbektUYLHkiPPQAYVZV600qlWkHEtutu3/OGl0Jo 7eK0d/bPAiGER4pWf/ihdemv0bbXaDv+RTWzV7zq/Em6JVRgrQXcWwZAsfa8PPjNZeoLBiUoxFWR X1zPjWp+PFD1t+jF8ENrMrmyd0nW6KM0n9RPDcSCSsMPmVSnk0RNFvfIIep6zKj6ed2ZXYWqNpwY VNt7CiPtMxZfnWl1aIkb0T6i1z1UOb4qjXfytwpwVmQjH0EP2lYS36Xcr37OBieMxP5BlwUJGxd6 FGBoNXLjbw9g7K+rp5oB2OMHe/Tjcr2gh0YEG7Il3PptB4yWn6si2rsUgOeP0dIGrlFLZUZ62//1 tydhoEWEv9XzPAB/7nFena2pJAmwH9qeaQEwciO1h2HiH4VKI26J9b+BXgE/r+SNr59c94dvVv5n 6Dv/GOQ5ym/d/0QkHunPk+NsAGhTgxvfGrYTlHq4RTVyqaamu20Pr2pZAIwiVm+GiCPii9xlhv4V i57JSruNNOD4p9nzfxGEsyLXwX5IudzpCMIGDwqZSqdRu5jGdHYyqu1O3tN+7A9v1zdiQ0RUnNCx b3may5NfwVyFfFSgDJVqW0OGY81lATB6lR0LOPwveRO/74eUYyqdQmCIejqOo96hy/MpAyHau0zZ C+kaCJ/gBhfah6DCdcRXi3/19RaPKEWfuJyePXq/ckXuz+yO/PwGo5WZIPJZdBJZeVkAjGML45QY ZhBxOdoh7ZPwVs9YRIJzhscsejL1z68Ubf31zXV/V46K3wqqXcnU8D41gz6QhHYm5GHA/CZxD0Vf gmA/fSsqO/wOKlDccSvTQEje+ssCYHTxmABGHwAaCtE4mWNz4AE1RtT52e8ys07ciljTtPPlW5+N at/odFcefHers2/jHBPpHjDPo/QpFAkhGwPGsftnLlFpwc1aRNXTp1aRbD1YvtMCYK4ByHZgVQPg xge7AGMTQpOX/SThclCz39jGTaM6zOD1rWAg94LwoeQzKPoN+lIB9hi5x2dRUl5Uu0oPtOYl6YQA fkAdADqvuEoiEw5UA0vRdJfENWpYSCtNlLoNxyWuzns3/zb7wOS6dQbLLRzGmCF21EykSse6USAk jD6oY59crcjoQsNqb0Gjpz0Ny3tQpc62wAN3wxv11gDQ+5DIORMcoE2AuQDmFLDgeykf/X3lBsMD G5N0zCghLKaCWRTvZjjwhvMXgavTlKFGVKsdkeL0rCc9gHjtGwSxrNI1sk1YVaehNtAlvNLWcBqu aMJTfrBAiygX5yOoAT2oGaun0bT2XcpAkWjcsF3p4b2NpvCIiG35JEk1piHGOC6wQvsuy4BRqdRj DxRN2BXbZaj/MjkG3Roo+qE9BZj1LkNLTXf3cBo6m5LdDAcPrk7TVQmuAQ6Cyzc4EJbpLterjnHT mH2XZcB6sdbEbtm+jVGCm/3iQfTUAvMiuoYGaeitxYKrPBYsgDpMGOFnfFhjDhgFRul47di9ikGW AeMX+TKC4XZLlPLkNrZDqyGo0pQOnLChj3QmXZCNSQWAjRqYLIbpzqkLPfIwV9BnRGPGluLxAYZN 1rbxadmDqMKPDJtttSq1fupy1vUJ38kUMZPiUGfErkbvsAo/JFWhBoq+CVfDgZDPTPoXH6TS9lms /iSM6UdojuaNIeQ4TcgcVNsegQA2Gt69fnnUbYgfuqCnUzSssQww0yF2hJmzCadnYTNe2GcWQjPg LA7mtc4dWbLKOW7VUbDFTf5AlcbdXKBGFxNstRJyPGeb8E9YAeRvX6SJQt8mtyjP5/zHD/V3NRxE Ax4IvXaug/1nvXgg/3yrmefDW5Rb6j3vl1YadUX7rv4Ao5CtC1n5Jyg2MOP10G3UQOCZUeuCwFWV z5geWh4BNqREnCQuSUF0gZyxL1Q18KFme3q7WJAMhnAgZN/VH2A8Uc3Y8WzHSbZejBlyTuS4h2fM IG01gYVJK0VZTOAF0xUmHlrCQJbiixFrmCOKEJbpPyuu5cgBLjwqQ470pGhDa729wyH9len6Z8RD AKOAAHPNJ64Ks2yi1gYJ1YAdKJnXpBGG6jBvpyhVY4qavWO+KNboTJEcMSH8CjcAp/GgGoa24jjq UCfAqpSD0qp910MA46GYjcqTI65qhgf7GS/WRkUxQhkvKUESZiYl8VClnKvkqcNEbbSS+aKzxogj ii8aSX7xQF6SHMLEKKKEyrOnyAfl4Cm3hp94BH7YmH8onbCc1USl0ZAsIwdFM34mrEwSlsiEOVmj +dle1uhMkRwxIcUyTJoCJ8YPY5i5CCcZaoScW5JdHKjJ2H09XMLq0dBtHLLBhqnTYx5jUrPeJ+WQ sJrpl2P9iqAIPAktSY1HM18Ua3SmSI6YkGIZbgNODJj2jBMrqMj1cfMAp/GsBaxgw92XXZQzeXIA nEtn8qwdC9IIw+2SeDBcDcDrM/A6axRHMC0uB8Y1kv/V+HWK9w6LNLx3YBz9VFZWrQZktCx+GdJG dgG7guZsKFj2UZa8RsEsB57wUn/iwPivHOisMeYImGJEiln89wCk1VAPgRV4aPeV9Rpum4T7fy53 VmN0SxJO5NBBD++C5eKvPBTIiozGGjOOKL5IUsziAlM4mz0c+vRzaGI9SOM7HQnYmhUAgOIIqt/g iBmpX9latbHmvfo9jxuwTYt7FDf/P2BHcLW0tNTb2zsgIMARD3PwM/4PRhErsgUoewEAAAAASUVO RK5CYII= |
Now that’s a knife string!