Stream: implementers
Topic: NDC Representation in FHIR
Joseph Athman (May 11 2017 at 17:05):
I'm wondering if someone would be able to give me some context as to why 10 digit NDC codes were chosen for use with FHIR instead of 11 digit codes. It seems like the 11 digit version is more consistent and interoperable, for some context I work for Surescripts and with ePrescribing we require the 11 digit NDC code to be used.
Grahame Grieve (May 11 2017 at 17:09):
@Rob Hausam - do you remember?
Rob Hausam (May 11 2017 at 21:01):
It's because the FDA NDC distribution and the package labels use the 10-digit format - that's the "official" one. The 11-digit codes are an unofficial derivative format that is used by drug database vendors and others. I think it's a better and more useful format, but it's an alternative code representation and not the primary one. We could possibly add an additional representation that uses the 11-digit format - maybe as a separate code system, like "NDC/NHRIC 11-digit Codes (unofficial)”? But I don't know if we should.
Joseph Athman (May 11 2017 at 22:36):
Thanks, that is helpful. In our case we are dealing with medication information that is sourced from ePrescribing related data so it would be helpful to just be able to leave it in it's original format. I'm not sure if there is a definitive way for us to go from the 11 digit code to 10 digit unless I'm missing something. At least for a company like Surescripts the 11 digit variety is much more common, but I'm not sure how that came to be the case. I'm guessing the use of drug databases would make sense there.
Rob Hausam (May 11 2017 at 23:48):
Yes, I expect that the codes you are getting came from a drug database. And you are right that there is no deterministic way to transform from the 11 digit codes back to the 10 digit. But I would do that in reverse. It's a simple algorithm to transform from 10 to 11 digits - you just pad the "short" group (it will be either the first or the second group of digits) to the maximum length with a leading '0' and then remove the dashes. For doing comparisons that can be done on the fly using a simple function or you can cache a table with the full 11 digit codes locally. Or, if we think it really is needed, we still could entertain the possibility of creating a FHIR code system for the 11 digit codes.
Grahame Grieve (May 12 2017 at 04:56):
if we can create a code system for the 11 code digits, why can't we just make it part of the existing code system?
Joseph Athman (May 12 2017 at 14:12):
Since it is always possible to go from 10 digits to 11 digits, then transmitting the data with 11 digits would be better since whether your data source is 10 or 11 digits you would always be able to transmit it as 11. In our case our source of data is 11 digits so there's no way for us to get back to 10, I think we would be required to create an extension to send our data. If I am a receiver and get an 11 digit value but need to compare it to my 10 digit data, I can easily convert my 10 digit data to an 11 digit value for comparison sake.
Elise Myers (Jun 04 2019 at 18:50):
I am exploring different coding systems and how they interact with FHIR. For NDC code system, the recommended field to use for the display value (returned by the $validate-code extended operation, for example) is the PACKAGEDESCRIPTION
from the package.txt
file. However, this field provides dosage information and is useless as a display value. The PROPRIETARYNAME
, PROPRIETARYNAMESUFFIX
, and NONPROPRIETARYNAME
fields from the product.txt
file are much more descriptive display names. So.....any reasoning behind why that field is suggested?
Elise Myers (Jun 04 2019 at 19:12):
Also, +1 on seeing 11-digit NDC codes without dashes. I'm glad i read the above thread so I know the best way is to turn my standard 10 digit dash codes into 11 digit non-dash codes for comparison's sake.
Grahame Grieve (Jun 05 2019 at 10:01):
@Rob Hausam I believe that we have a task about the description?
Rob Hausam (Jun 05 2019 at 11:59):
Well, we have GF#9555 (can't believe it's that old!) voted over 2 years ago with the status still as 'Resolved - Change required'. I think it's related, but doesn't necessarily exactly address the question(s) in this topic. I'm not seeing anything else (@Grahame Grieve is there anything else in particular that you were thinking of?). We've delayed on implementing GF#9555 for over 2 years, since we didn't really describe the solution in the resolution and said that we needed help from NLM (which, as far as I know, we haven't yet pursued). Maybe we need a couple of new trackers specifically for addressing the display and 11 digit code issues, as well as we need to finally figure out how we want to implement GF#9555.
Grahame Grieve (Jun 05 2019 at 12:19):
hmm. better make a task then
Elise Myers (Jun 06 2019 at 17:42):
Thank you for the response! Do you have an idea which field you plan on recommending instead? I want to align with y'all as much as possible. On a related topic, the newest version of LOINC that will be released in December 2019 is going to include a display field, and they recommend using that for display instead of the COMMON_LONG_NAME
that is currently recommended.
Rob Hausam (Jun 06 2019 at 18:30):
I think we haven't determined for sure yet what is the best field (or fields) to recommend for NDC. I may bring it up on the Main Vocab WG call today (beginning 3:30 PM Eastern) for at least preliminary discussion (Ted Klein is not available today and I'm not sure about the expected attendance otherwise). In the LOINC meeting today there was discussion of the proposed display field - my take away was that there are quite a few questions out there and, as I understood it, the agreement was to not include any content for it in the soon upcoming July release, and I think it may not yet be clear exactly what we will be seeing in December (if you were also in the meeting, Elise, and have a different take on that please feel free to add to or correct what I said).
Elise Myers (Jun 06 2019 at 21:22):
I was not at the LOINC committee meeting today but I was at the conference in person yesterday. It was the lead content developer there who told me about the planned release in December including display values (but as you said correctly, not in July). That very well could have changed after whatever discussions took place today, though.
Mona O (Aug 24 2019 at 12:45):
What should implementers do in the meantime with the NDC and display as defined in http://build.fhir.org/ndc.html? As @Elise Myers described the packagedescription defined for the display does not provide the product name of NDC only the package description. Even the display in the example provided for MedicationKnowledge does not align with what has been defined http://build.fhir.org/ndc.html. What are our options in representing the appropriate product name for the NDC and 11 digit NDC?
http://build.fhir.org/medicationknowledge-example.json.html
"system": "http://hl7.org/fhir/sid/ndc",
"code": "0409-6531-02",
"display": "Vancomycin Hydrochloride (VANCOMYCIN HYDROCHLORIDE)"
Melva Peters (Aug 24 2019 at 20:31):
We can fix this in the MedicationKnowledge example. I'm not sure the guidance existed when the example was created.
Mona O (Aug 26 2019 at 02:26):
@Melva Peters I believe the representation of the product name in the MedicationKnowledge example is represented correctly, but it doesn't align with how "code" and "display" are defined in http://build.fhir.org/ndc.html.
Last updated: Apr 12 2022 at 19:14 UTC