Page tree
Skip to end of metadata
Go to start of metadata

This is about how medications are identified in Medication, MedicationRequest, MedicationAdministration, MedicationDispense, MedicationStatement, about whether extensions are needed.

Table of different combinations of brand and generic name in descriptions of a medication.

I assume that when a system is creating one of the FHIR medication resources the source system will have zero, one or two text strings or code values to identify the medication. For example a brand name code and a generic name code.

This table lists the options around whether the information is in text or code, whether it is flagged as for a generic or branded item, and whether zero, one or two items (text strings or codes) are provided. It then provides mappings to the HL7 AU Medication profile for the combinations that have been identified as being used. Combinations not identified as used are coded with reasons for not being used.

How to read Source system columns

Case #2 says that one item for medication from the source system is uncoded text marked as being a brand name

Case #7 says that one item for medication from the source system is a code with no information about being a brand or generic name

Case #17 says that one item for medication from the source system is uncoded text marked as being a generic name and a second item is a code marked as being a brand name

Policy

Do not use an extension (such as medication-brand-name) when a core element (such as code.text) is suitable.

Assumptions

  • Some source systems can distinguish brand from generic, but are too coarse to use the values in medication-type
  • Alternate values of CodeableConcept.coding are meant to be alternate codes for the same thing, not represent a classification hierarchy for that thing. The part of the classification hierarchy relevant to the medication needs to be recorded in a different element. 

Key

Values used in the columns item 1 and item 2

  • bn = the item is marked as a brand name
  • gn = the item is marked as a generic name
  • ni = no information about whether the item is a brand or generic name
  • NA = not applicable

Values in the used column

  • yes = is used
  • no = is not used
  • NA = not applicable
  • ? = unknown whether used

Values in the reason not used column, and row colours

1unused as cannot give two texts for the same class of medication
2unused as cannot give an item of unknown type with another item
3unused as cannot give two codes for the same type of medication
4duplicate row - this combination is described in another row

New extensions

  • code.med-item-type - like existing medication-type extension with the available values being "branded" and "unbranded". Allows suitably grained classification.
  • relevant-generic-medication-item - semantics: a relevant unbranded medication item for the branded item, same structure as code with extension for code.med-item-type

Source system

FHIR mapping - existing profileFHIR mapping - proposed profile
case
#
item 1item 2usedreason
not used
item 1item 2item 1item 2mapping assumptions
1--??NANANANA
2text, bn-yesNA

code.text
medication-brand-name

NA

code.text
code.med-item-type

NA
3text, gn-

yes

NA

code.text
medication-generic-name

NAcode.text
code.med-item-type
NA
4text, ni-yesNAcode.text

NA

code.text

NA


5code, bn-yesNAcode.coding.code
code.coding.medication-type
NAcode.coding.code
code.coding.medication-type
NA
6code, gn-yesNAcode.coding.code
code.coding.medication-type
NAcode.coding.code
code.coding.medication-type
NA
7code, ni-yesNAcode.coding.code

NA

code.coding.code

NA


8text, bntext, bnno1




9text, bntext, gnyesNA

code.text
medication-brand-name

medication-generic-name

code.text
code.med-item-type

relevant-generic-medication-item


10text, bntext, nino2




11text, bncode, bnyesNAcode.textcode.coding.code
code.coding.medication-type
code.textcode.coding.code
code.coding.medication-type

12text, bncode, gn??

medication-brand-name

code.coding.code
code.coding.medication-type

relevant-generic-medication-item

code.coding.code
code.coding.medication-type


13text, bncode, nino2




14text, gntext, bnNA4




15text, gntext, gnno1




16text, gntext, nino2




17text, gncode, bnyesNA

medication-generic-name

code.coding.code
code.coding.medication-type

relevant-generic-medication-item

code.coding.code
code.coding.medication-type

18text, gncode, gnyesNAcode.textcode.coding.code
code.coding.medication-type
code.textcode.coding.code
code.coding.medication-type

19text, gncode, nino2




20text, nitext, bnNA4




21text, nitext, gnNA4




22text, nitext, nino2




23text, nicode, bnno2




24text, nicode, gnno2




25text, nicode, nino2



possibly one is brand and one is generic
26code, bntext, bnNA4




27code, bntext, gnNA4




28code, bntext, niNA4




29code, bncode, bnno3




30code, bncode, gnyesNAcode.coding.code
code.coding.medication-type

code.coding.code
code.coding.medication-type

code.coding.code
code.coding.medication-type

relevant-generic-medication-item

existing profile misuses alternate values in coding
31code, bncode, nino2




32code, gntext, bnNA4




33code, gntext, gnNA4




34code, gntext, niNA4




35code, gncode, bnNA4




36code, gncode, gnno3




37code, gncode, nino2




38code, nitext, bnNA4




39code, nitext, gnNA4




40code, nitext, niNA4




41code, nicode, bnNA4




42code, nicode, gnNA4




43code, nicode, nino2code.coding.codecode.coding.codecode.coding.codecode.coding.code
  • No labels

3 Comments

  1. For these cases, what about https://www.hl7.org/fhir/medication-definitions.html#Medication.isBrand - should that be set?

    I assume that code, bn means a branded medication code for something like "Panadol 500 mg tablet", as opposed to a code for the brand "Panadol"? The latter is where I think the medication-brand-name extension should be a CodeableConcept rather than String, so that if someone has a code like "Panadol" they can say that.

    I also find the idea of code.text being set without at least one coding kind of strange in the context of the code for the Medication resource. For example cases 2, 3 and 4 - how would this differ from the resource text? What would it mean to have different resource text and code.text values for the same Medication resource?

    I also wonder if you really need a medication-type extension on Medication at the base - i.e. what kind of thing is this Medication resource identifying. You could attempt to imply that by picking the "lowest" level medication-type code from all the codings...but there may not be a coding available for the "level" that this Medication resource represents, just one or more codes representing more general levels. Not sure if that is useful, but it occurred to me as I read this.

  2. After a conversation with Dion I think that my analysis works for medicationCodeableConcept in the medication resources other than Medication itself and the vaccination resources.

    In those resources the medications is identified, in Medication the medication is described.

    Consequently I've revised the introduction and title of this page.

  3. I realised that my previous design

    • misused alternate values in CodeableConcept.coding to hold both brand and generic names for the same medication
    • uses a coding of brand/generic with more values than many systems can use

    So I added a new pair of columns.