Stream: implementers
Topic: Immunization product
Jose Costa Teixeira (Apr 22 2020 at 06:27):
Hi. How can I say "patient was in hospital with an accident, in doubt about vaccination status, patient was immunized for tetanus (GNTET/112?)and diphteria (GNDIP/12?); the product administered was TEDIVAX (1077593), with lot 12345"?
Jose Costa Teixeira (Apr 22 2020 at 06:28):
I see "manufacturer" in immunization, but I think it would make more sense to see "manufacturedProduct" (as a CodeableReference) (which itself points to manufacturer)
Jose Costa Teixeira (Apr 22 2020 at 07:00):
I think we can use a combination of immunization.code and immunization.protocolApplied.targetDisease for that, but Immunization.code seems to have an ambiguous role and the code set has a lot of different stuff in it, so I'd like to confirm.
Craig Newman (Apr 22 2020 at 18:03):
The value set for Immunization.code is purposefully an example value set because we expect that different locations will have their own value sets (SNOMED in Canada, CVX and NDC in the US, etc). I think that Immunization.code could be either relative generic (eg influenza vaccine) or product specific (like a National Drug Code in the US).
Jose Costa Teixeira (Apr 22 2020 at 18:07):
Thank you.
Yes, in my opinion the problem with that ambiguity is that
1) Immunization.code is either brand name or disease. I need to support both
2) if you are saying "GNPIP", does it really make sense to express lot number and serial number without expressing what is the brand name?
Lloyd McKenzie (Apr 23 2020 at 00:12):
- My leaning is that, in this context, it would be legitimate to send those as translations. When you send a code of "Tetanus" you're really not saying "Tetanus the disease" but rather "Vaccine against Tetanus the disease". So "Tetanus vaccine", "Diptheria vaccine" and "TEDIVAX" would all be reasonable codings of the underlying concept of what they were immunized with. @Rob Hausam do you concur that's a legitimate use of multiple codings? The alternative would be to mandate a separate element for "conditions vaccinated against" from "vaccine substance" and mandate that you must have at least one of the two - the problem for many systems is that they may have codes that cross the boundaries and not all systems dealing with the codes will know which is which.
Rob Hausam (Apr 23 2020 at 02:20):
My leaning on this is on the same lines as @Lloyd McKenzie. I agree that if you use a code for "tetanus" in the Immunization.code context the meaning is a "vaccination for the disease tetanus". And I think that multiple codings as Lloyd described is a legitimate use. I think that is more consistent with the common current practice and understanding than it would be if we tried to encourage or enforce using separate elements. Ultimately I think that doing that would prove to be more difficult and confusing.
Lloyd McKenzie (Apr 23 2020 at 02:21):
It might be good to explicitly note that as an allowed use for the element @Craig Newman
Jose Costa Teixeira (Apr 23 2020 at 04:46):
but we do have already separate elements, protocolApplied.targetDisease and code.
Jose Costa Teixeira (Apr 23 2020 at 04:48):
and shouldn't we have some invariant that expresses "if you say Tetanus, you cannot put the lot number"
Jose Costa Teixeira (Apr 23 2020 at 04:49):
My reading of this is that people usually record the disease they are vaccinating against.
Then optionally they put the actual product . I don't think "manufacturer" is more relevant than, say, a reference to a Medication.
Jose Costa Teixeira (Apr 23 2020 at 04:50):
our logical model (which represents a first collection of current requirements, and is open for change) is here:
http://build.fhir.org/ig/hl7-be/be-core/branches/master/StructureDefinition-be-model-immunization.html
Craig Newman (Apr 23 2020 at 13:00):
.protocolApplied is about what the provider "intended" the administration to do. In STU3, there was a much more robust backbone element but in R4 we split out the "evaluation" of the administration from the administration itself as the outcome of the evaluation (valid or not valid) depends heavily on what recommendations are being compared against. However, when we did that, we got feedback that in some locations the provider still needs to record the "why" of the vaccination (eg. I intended to finish off the two dose MMR series). So .protocolApplied.targetDisease is really the intent of the provider. Grahame was one of the advocates for .protocolApplied, so he can correct any mis-statements I may have just made.
Jose Costa Teixeira (Apr 23 2020 at 13:18):
So, if I don't use protocolApplied, the solution is to use a translation - this sounds strange, esp if I see Manufacturer and lot and expiry - those are attributes of medications and a vaccine is a medication, so why not simply keep code and add a codeableReference (Reference)?
Jose Costa Teixeira (Apr 23 2020 at 13:21):
I don't think "tetanus", "vaccination against tetanus" and "tedivax" are translations in the terminology sense. "Tedivax" would be at best a translation of "vaccine against tetanus" (i'n not native english speaker but Vaccine !=d Vaccination, right?)
Jose Costa Teixeira (Apr 23 2020 at 13:23):
And this option would also call for some invariants like "only put the lot number if you put the brand name"....
Jose Costa Teixeira (Apr 23 2020 at 13:23):
I'm just saying this because I think this could be simpler in those aspects
Robert McClure (Apr 23 2020 at 17:00):
@Jose Costa Teixeira @Craig Newman Immunization.vaccineCode should be a substance, not a disease. Any implementation that does something differently IMHO has it wrong. The guide you have is completely incompatible with US Core approach on this element and I'd say we're missing the boat if we allow a disease to be used in vaccineCode
Jose Costa Teixeira (Apr 23 2020 at 17:05):
I mentioned the product to expose that there are 3 different concepts - the Tetanus, Vaccination against Tetanus and tedivax
Jean Duteau (Apr 23 2020 at 17:05):
The guide is Belgian so it doesn't need to be in line with the US Core approach, but I do agree that Immunization.vaccineCode should not be the disease but the substance that was given. If your code set has a code for the disease, I think that it has to be taken as "some product that vaccinates against X". The description in the Belgian IG that says "The target of the immunization - the disease that the immunization action is protecting against" seems to be counter to the underlying resource description "Vaccine product administered"
Jose Costa Teixeira (Apr 23 2020 at 17:06):
the value set hints that this is "vaccine against Disease X" but the text of the values are Disease X.
Jean Duteau (Apr 23 2020 at 17:08):
NOTE: The CVX codes that are referenced by the resource do include terms like 'anthrax', 'hantavirus', etc. But if you look at the code system, the full name for those codes are 'anthrax vaccine', and 'hantavirus vaccine', etc. So the codes actually represent generic vaccines against the coded disease.
https://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx
Jose Costa Teixeira (Apr 23 2020 at 17:09):
but that is a minor point - I think we can all survive the fact that vaccination protocols and vaccination records mention diseases when they mean the vaccine against those
Jose Costa Teixeira (Apr 23 2020 at 17:09):
Jean Duteau said:
NOTE: The CVX codes that are referenced by the resource do include terms like 'anthrax', 'hantavirus', etc. But if you look at the code system, the full name for those codes are 'anthrax vaccine', and 'hantavirus vaccine', etc. So the codes actually represent generic vaccines against the coded disease.
https://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx
Yes, that is my understanding and I am regretting I had it as an example.
Jose Costa Teixeira (Apr 23 2020 at 17:12):
My point is that the value set has things like (vaccine against) Tetanus and Tedivax
Jose Costa Teixeira (Apr 23 2020 at 17:14):
so, why didn't we simply have vaccine code and a separate reference to a medication? AFAIK, those are separate things in practice. One is a checkbox, the other is for traceability and inventory.
Jose Costa Teixeira (Apr 23 2020 at 17:15):
Jean Duteau said:
The description in the Belgian IG that says "The target of the immunization - the disease that the immunization action is protecting against" seems to be counter to the underlying resource description "Vaccine product administered"
That is right. I will check. Possibly my mistranslation
Jean Duteau (Apr 23 2020 at 17:18):
Jose Costa Teixeira said:
My point is that the value set has things like (vaccine against) Tetanus and Tedivax
It's just an example value set, so I'm assuming they are showing that you could use code sets like CVX that are generic or you could use NDCs which are actual product codes. In Canada, we have some provinces using SNOMED which obviously has both, but Health Canada is looking at creating a new code set that would just be immunization products (i.e. close to the NDC in the US) but might have generic codes as well. It is up to your use case on whether you only want specific vaccines or if you want it to be higher-level.
Jose Costa Teixeira (Apr 23 2020 at 17:18):
Yes, I am happy with that value set
Jose Costa Teixeira (Apr 23 2020 at 17:19):
It comes down to how to express "Tedivax" AND "Tetanus" in one instance.
Jose Costa Teixeira (Apr 23 2020 at 17:20):
@Craig Newman is there a call I could join?
Jean Duteau (Apr 23 2020 at 17:21):
Jose Costa Teixeira said:
It comes down to how to express "Tedivax" AND "Tetanus" in one instance.
From your original question, you use protocolApplied.targetDisease (which is 0..*) to say "tetanus" and "diptheria" and use vaccineCode for 'Tedivax'.
Jean Duteau (Apr 23 2020 at 17:21):
That's how I've modeled it in my work on ICSR AdverseEvents.
Jose Costa Teixeira (Apr 23 2020 at 17:36):
yes, that was my starting point above, thanks for confirming. Is that still aligned with what Craig expresses, in your opinion?
Jose Costa Teixeira (Apr 23 2020 at 17:37):
.protocolApplied is about what the provider "intended" the administration to do. In STU3, there was a much more robust backbone element but in R4 we split out the "evaluation" of the administration from the administration itself as the outcome of the evaluation (valid or not valid) depends heavily on what recommendations are being compared against. However, when we did that, we got feedback that in some locations the provider still needs to record the "why" of the vaccination (eg. I intended to finish off the two dose MMR series). So .protocolApplied.targetDisease is really the intent of the provider. Grahame was one of the advocates for .protocolApplied, so he can correct any mis-statements I may have just made.
Jose Costa Teixeira (Apr 23 2020 at 17:37):
it seems we are constraining - which is OK - but tweaking the intent - which I don't want to do if it is not kosher
Jean Duteau (Apr 23 2020 at 17:37):
Yeah, that is how I read what Craig said as well. "I am giving this to vaccinate against tetanus and diphtheria"
Jose Costa Teixeira (Apr 23 2020 at 17:40):
so Protocol is not "Belgian 2018 vaccination scheme" but is "vaccination scheme for Pertussis"?
Jean Duteau (Apr 23 2020 at 17:43):
no, the protocolApplied.series would be "Belgian 2018 vaccination scheme"
Jean Duteau (Apr 23 2020 at 17:44):
but the protocolApplied.targetDisease would be codes for the disease "tetanus", "diphtheria", etc.
Jose Costa Teixeira (Apr 23 2020 at 17:47):
that makes sense,it's just not what I read from the example in the build
Jose Costa Teixeira (Apr 23 2020 at 17:47):
(or perhaps I misunderstood what is "2-dose")
Jose Costa Teixeira (Apr 28 2020 at 20:31):
the example we have says "protocolApplied.series": "2-dose" - is this the same concept as "Belgian 2018 vaccination scheme"?
Jose Costa Teixeira (Apr 28 2020 at 20:32):
@Craig Newman ? Others?
Igor Sirkovich (Apr 29 2020 at 04:56):
@Jean Duteau In Canada (particularly, in Ontario and British Columbia), we actually use a Canadian Vaccine Catalogue which defines SNOMED CT subsets for Vaccine Generic codes, Vaccine Tradename codes and Disease codes. Immunization.vaccineCode can have Vaccine Generic or Tradename code or both as two repetitions of vaccineCode.coding.
Craig Newman (Apr 29 2020 at 12:49):
protocolApplied.series is pretty vaguely defined and likely to vary by location. Out initial thoughts were that it might be more specific than just "Belgian 2018 schedule" and include specific recommendations like "Belgian 2019 Polio schedule" but I think you put whatever is useful to you there.
At least in the US, the recommendations are mostly in narrative form and not organized into discrete schedules, so it didn't make sense to try and apply codes to them. I'm not sure if the rest of the world is any more discrete when they define their recommendations.
Jose Costa Teixeira (Apr 29 2020 at 12:55):
Thanks. what does "2-dose" mean in the example in the build?
Jose Costa Teixeira (Apr 29 2020 at 12:56):
and a protocol could be something that is defined elsewhere - as a FHIR resource, so it could be a codeableReference...
(this is just a harmonisation thing)
Craig Newman (Apr 29 2020 at 17:09):
For example, for HPV either 2 or 3 doses are required in the US depending on when the first dose was given. "2-dose" is just meant to provide information on if the provider is following the set of recommendations which only require 2 doses of vaccine.
Craig Newman (Apr 29 2020 at 17:10):
It is possible that a set of recommendations (eg, the US ACIP recommendations) or even particular series (2 dose HPV series) could be defined as a FHIR resource, but we didn't know of any location's recommendations that are sufficient defined to do such a thing.
Jose Costa Teixeira (Apr 29 2020 at 17:13):
thanks. I could volunteer to prototype a PlanDefinition to express a Protocol for Vaccination.
Jose Costa Teixeira (Apr 29 2020 at 17:15):
(I understand it is not common (yet) to structure these things and the need to exchange this info is not very common. But it may be interesting for PH people to keep protocols up to date, compare them across countries, or see evolution over time...)
Jose Costa Teixeira (May 12 2020 at 21:25):
(wrong place)
Last updated: Apr 12 2022 at 19:14 UTC