Main Menu

The OID and I

This article is off topic and likely not of general interest.

I was commenting over at Birther Report, explaining why Zullo’s race codes were fake, not federal codes nor Hawaiian codes. I showed from an example certificate that code “3” stood for the race “part-Hawaiian” on a 1961 Hawaiian birth certificate. One of the rather dim bulbs that comment there argued based on the same certificate:

[A] 3 is also placed by the "steamship" company, what kind of race is steam ship company. Looks more like people making things up as they go on this piece of forged paper.

That comment stuck me as pretty dumb, but then I had to realize that I am somewhat of coding wonk. Maybe some people think that the same number represents the same thing no matter what the context. Codes are meaningful only in the context of a code set, like a set of race codes, or occupation codes, or diagnosis codes.

I participated in a number of the Public Health Information Network (PHIN) conferences where coding standards (vocabularies and code sets)  were an important topic. I was also a member of Health Level 7 (HL7) which deals with protocols for electronically exchanging data in a way such that systems can understand each other. I was one of the contributors to the 2006 Implementation Guide for Immunization Data Transactions using Version 2.3.1 of the Health Level Seven (HL7) Standard Protocol and I presented at several conferences including:

I said before that codes are meaningful only in the context of a code set, so how do you identify the code set that a code comes from? It’s simple, you assign codes to code sets (see example at the end of this article). ;)

In HL7, the race code set comes from the US Office of Management and Budget, and HL7 designates the value set as User Defined Table 0005. Note the two different terms, "code set" and "value set." A code set is the comprehensive list of codes defined. A value set is a list of codes from the code set that may be used for a particular application. See the race table in the Immunization HL7 Implementation Guide, Page A1-1.

In the case of Barack Obama’s birth certificate, his father’s race of African was coded “9” which in the 1961 Hawaiian code set stood for “Other Race.” Presumably because of the low number of black residents in Hawaii at the time, there was no separate code for “black.” The whole concept of “other” presents an interesting problem because one doesn’t necessarily know whether “other” means not known but potentially available, not in the code set, not known and not obtainable, etc. See the article “Flavors of Null” by Barry Smith.

Computer programmers are probably familiar with something called a universally unique identifier (UUID), one example of which is the more familiar globally unique identifier (GUID). A GUID is a string of digits (expressed in hexadecimal notation) that’s supposed to be unique. Here’s one I just made for you, and presumably you can search the world over and never find another like it:

{56104D16-D012-4CF5-B9DF-872ED0EB36D4}

GUIDs are not necessarily unique; the Wikipedia says:

Assuming uniform probability for simplicity, the probability of one duplicate would be about 50% if every person on earth as of 2014 owned 600 million GUIDs.

One way to uniquely identify something is through a registration authority, for example the Internet Corporation for Assigned Names and Numbers (ICANN). The obamaconspiracy.org domain is globally unique and I can then use it as a context for anything else I want to define. For example, each comment on this blog has a comment ID, a number; however, that number is not unique; it exists on many blogs. I can uniquely identify a comment here by the combination of the obamaconspiracy.org domain and the comment ID. Alternately I could tell everybody about that GUID above and say it means obamaconspiracy.org and attach the comment ID to that.

There is another registration methodology that is used in healthcare (and elsewhere) called an “object identifier” or OID. OIDs are represented with numbers joined by dots, the same way an IP address appears. The first digit is the high-level assigning authority:

  • 0 – The International Telecommunications Union, ITU-T
  • 1 – International Standards Organization
  • 2 – Joint ITU-T, ISO

OIDs are used in many contexts from medical records to security certificates, and they can be used to identify code sets, such as the PHIN code set for race, with OID 2.16.840.1.113883.1.11.14914. They are also used in SNMP management:

image

When I was in private business, our company had an OID through the Department of Defense (common for US companies), subordinate to the ISO. This was our OID hierarchy:

The final company OID was 1.3.6.1.4.1.27263. With that, the company could then add onto the end of the hierarchy indefinitely, numbering anything. In the best of all possible worlds, there is a web page somewhere that explains all the codes defined. Unfortunately, the company I worked for got bought out, I retired, and the OID web page with all of its sub-definitions exists now only on the Wayback Machine. It’s not cool for these things to go away. If you would like to lookup an OID, try oid-info.com.

So can you get your own OID? Yes. There are several ways to get an OID, some free and some for a fee—some quick and some that take a while. If you have your own country, you can get an OID for your country, and then start assigning numbers from your own node. You can also attach a UUID to the OID hierarchy and use that.

So the exercise for the rest of the article is to get an OID and to number something. Obviously one wants an important-looking OID with lots of panache, a bold Internet presence and some permanence, but that’s hard to do if you’re not a company or a country. If you are are a private enterprise, then I’d suggest the DOD route. For other options, see the OID Repository FAQ. For our purposes, we could attach a UUID onto the OID tree. UUID-based OIDs all begin 2.25. Rather than use the GUID above, I’ll generate a UUID based on the ITU algorithm implementation on their web site.

7c96b8e0-e1f0-11e3-adff-0002a5d5c51b

OIDs, except for the final entry, must be decimal numbers, so we’ll have to convert that hex string to decimal. I found a web page at mobilefish.com that will do that, and the answer is:

165606865786509621373610282052264248603

I could then use 2.25.165606865786509621373610282052264248603 (called an “arc”) as a start of any coding systems I can imagine, plus assigning them to other people. However, that OID is pretty plug ugly, and extending it could create a result longer than the 64 character limit in some software.

An alternative that is easy for individuals is a free service from a company called ThinkSoft. It’s quick to have a number assigned and register it. Here is the OID I received: 1.3.6.1.4.1.37476.9000.7 (note that this is also under the DOD arc my former company used).

So let’s start numbering:

  • 1.3.6.1.4.1.37476.9000.7 – Kevin Davidson’s OID arc
  • 1.3.6.1.4.1.37476.9000.7.0 – Kevin Davidson’s domains
  • 1.3.6.1.4.1.37476.9000.7.0.0 – blogordie.com
  • 1.3.6.1.4.1.37476.9000.7.0.1 – obamaconspiracy.org
  • 1.3.6.1.4.1.37476.9000.7.0.1.0 – obamaconspiracy.org articles
  • 1.3.6.1.4.1.37476.9000.7.0.1.1 – obamaconspiracy.org comments
  • 1.3.6.1.4.1.37476.9000.7.0.1.1.10821 – first comment at obamaconspiracy.org using the phrase “any day now”

I have set up my OID page. I’ve also set up a registration at oid-info.com.

More OID links:

Print Friendly

, ,

13 Responses to The OID and I

  1. avatar
    Northland10 May 22, 2014 at 8:24 pm #

    This article is off topic and likely not of general interest.

    And yet, I have read and re-read the article. Maybe it is because I tend to work with context issues and various types of GUIDs on a regular basis (in my day job).

  2. avatar
    gorefan May 22, 2014 at 9:39 pm #

    What’s fascinating about Hawaii codes is that in almost every case whatever code is in the father’s race code is also in the kind of business box.

    Obama
    African – 9
    University – 9

    Nordyke’s
    Caucasian – 1
    Private Practice – 1

    Ah’nee
    Hawn-Caucasian-Chinese – 3
    Steamship Company – 3

    Coincidence?

  3. avatar
    Craig HS May 22, 2014 at 10:02 pm #

    “almost every case” based on an incredibly small sample of “case”. Open it up beyond the six or so we know of around the President’s certificate, and the appearance of coincidence should instantly vanish.

  4. avatar
    gorefan May 22, 2014 at 10:19 pm #

    Craig HS:
    “almost every case” based on an incredibly small sample of “case”.Open it up beyond the six or so we know of around the President’s certificate, and the appearance of coincidence should instantly vanish.

    I don’t disagree with you it is a incredibly small sample, I just found it strange that a student, a doctor and midshipman matched the categories for race.

  5. avatar
    Dr. Conspiracy May 22, 2014 at 11:39 pm #

    I took HL7 classes on this stuff, and I never did quite figure out whether the data taxonomies were something incredibly wonderful developed by geniuses for the advancement of humankind, or something designed to be too complicated to understand necessitating hiring its developers as consultants.

    Northland10: And yet, I have read and re-read the article. Maybe it is because I tend to work with context issues and various types of GUIDs on a regular basis (in my day job).

  6. avatar
    Dr. Conspiracy May 22, 2014 at 11:44 pm #

    One of the reasons I wrote this article was that I was forgetting a lot of this material. It used to be really important to me.

  7. avatar
    Dr. Conspiracy May 23, 2014 at 12:05 am #

    I read a very influential article a decade or so ago, “Cool URIs don’t change.” I wish more folks followed it.

  8. avatar
    The Magic M May 23, 2014 at 3:57 am #

    I see this stuff all the time. My company deals with medical information, and e.g. our codes for profession, discipline and activity all use the same set of numbers (profession 1 = physician, discipline 1 = general medicine, activity 1 = practice etc.).
    Same with country (1 = Albania).

    It’s actually totally uncommon to have unique IDs across different contexts, mainly because such contexts are often managed by different people in different locations (and may even be industry standards), and requiring uniqueness would increase the overhead (and likeliness of problems if errors are introduced) if someone adding “country 192″ would have to take care no profession or discipline with ID 192 already exists.

  9. avatar
    The Magic M May 23, 2014 at 4:00 am #

    3 is also placed by the “steamship” company, what kind of race is steam ship company.

    I bet this guy also thinks because he lives on Sycamore Road 29 in Boston, anyone claiming to live in Sycamore Road 29 in Vegas (or to have been born on the 29th) is lying. *smh*

  10. avatar
    Dr. Conspiracy May 23, 2014 at 4:25 pm #

    VADS, man, VADS.

    https://phinvads.cdc.gov/vads/SearchHome.action

    The Magic M: My company deals with medical information, and e.g. our codes for profession, discipline and activity all use the same set of numbers (profession 1 = physician, discipline 1 = general medicine, activity 1 = practice etc.).
    Same with country (1 = Albania).

  11. avatar
    Dr. Conspiracy May 23, 2014 at 4:35 pm #

    Added to the article:

    In the case of Barack Obama’s birth certificate, his father’s race of African was coded “9” which in the 1961 Hawaiian code set stood for “Other Race.” Presumably because of the low number of black residents in Hawaii at the time, there was no separate code for “black.” The whole concept of “other” presents an interesting problem because one doesn’t necessarily know whether “other” means not known but potentially available, not in the code set, not known and not obtainable, etc. See the article “Flavors of Null” by Barry Smith.

  12. avatar
    J.D. Sue May 23, 2014 at 5:22 pm #

    Dr. Conspiracy: The whole concept of “other” presents an interesting problem because one doesn’t necessarily know whether “other” means not known but potentially available, not in the code set, not known and not obtainable, etc

    Ah yes. 9 or 99 or 999-99-9999 etc. I remember when field office data entry operations used to have cheat-sheets that always instructed something like: If you don’t have the information, or the system doesn’t accept your entry, just enter 9(s)–it always works.

  13. avatar
    Dr. Conspiracy May 23, 2014 at 5:26 pm #

    I have now assigned the OID 1.3.6.1.4.1.37476.9000.7.0.1.2.0 for the 1961 Hawaii Department of Health race code set.

333333 44444
5555555
6666666