Concept Design Approach for Multiple Doses - Immunisation, Treatment etc

I am looking for the design approach and best practice for capturing/tracking multiple occurrences of an event within implementations e.g.,

  1. Tetenas Diptheria does - 1st, 2nd, 3rd, 4th, 5th final
  2. Antenantal or HIV Exposed Infant visits - up to 8
  3. Follow-up visits - at times up to 6

@akanter @burke @ball @mogoodrich @mseaton @mksd

We don’t record the number of visits. Each visit is recorded as an encounter, so no need to record the number of visits. The only situation where we record multiple occurrences of an event – collecting the chemotherapy cycle number (question/numeric).

Immunizations: UI:

Concepts: image

Code:

2 Likes

@ball thanks, how do you then track Dose 0, Dose 1, Dose 2, Dose 3, Booster 1 and Booster 2 values and separate across them

We use the concept "Immunization sequence number. Look here: https://github.com/PIH/openmrs-module-pihcore/blob/master/omod/src/main/webapp/resources/scripts/visit/vaccinations.js#L99

@ball @ddesimone as hinted here and here you have modelled an immunization as a group of three obs:

  1. The actual vaccination given - CIEL:984
  2. The sequence number (dose 0, 1, 2, 
) - CIEL:1418
  3. The vaccination date - CIEL:1410

Wondering if you are anticipating the addition of two more members: 1) vaccination lot number and 2) vaccination lot expiry date in order to comply (at least in part) with ‘The Drug Supply Chain Security Act and 2D Vaccine Barcodes’ (CDC ref. here) and to enable “tracking and tracing”.

Cc @jesplana @rrameshbtech


Another question, why is CIEL:984 a ConvSet? Looks like this would mean that one immunization could involve multiple given vaccines then?

@mksd Yes. It would be easy to modify the convset to include lot number and expiration date.

If you look at Immunization History (CIEL:1421) concept, it already includes lot number, and manufacturer. @akanter might consider adding the lot expiry date to the same construct, unless this would be modeled differently with the lot number as a key to other data (expiry date and manufacturer).

image

As for CIEL:984, it doesn’t need to be class=ConvSet, but that’s how it is in CIEL, but it works with coded datatype. I would have made it class=Drug.

Thanks @ball! Great.

So, through the UI above, out of the 6 group members, you guys fill in 3 of them. Namely:

  1. IMMUNIZATION SEQUENCE NUMBER (1418)
  2. VACCINE LOT NUMBER (1420)
  3. VACCINATION DATE (1410)
  4. IMMUNIZATIONS (984)
  5. VACCINE MANUFACTURER (1419)
  6. Procedure received by patient (163100)

Correct?

Yes. We use only those 3 concepts within the Immunizaton History ConvSet.

Hi @akanter,

As @mksd has mentioned in the above messages, capturing Vaccine Expiry date is mandatory to be in comply with ‘ The Drug Supply Chain Security Act and 2D Vaccine Barcodes ’ (CDC ref. here). Could you help us with this to add Vaccine Expiry date to add IMMUNIZATION HISTORY concept?

1 Like

Hi @akanter @ball, in short we suggest to add #7 to the construct:

  1. IMMUNIZATION SEQUENCE NUMBER (1418)
  2. VACCINE LOT NUMBER (1420)
  3. VACCINATION DATE (1410)
  4. IMMUNIZATIONS (984)
  5. VACCINE MANUFACTURER (1419)
  6. Procedure received by patient (163100)
  7. VACCINE LOT EXPIRY DATE (?)

You think that’d be doable?

1 Like

Thanks @akanter. So @rrameshbtech had a quick look at those two releases and could not find the new concept CIEL:165907 in it:

  • openmrs_concepts_2.1_20200401.sql.zip
  • openmrs_concepts_2.2_20200401.sql.zip

When do you think this could be made available?

1 Like

I only created it yesterday :slight_smile: It will be in the next CIEL release which is probably in a week or so. That will not likely be posted as quickly to OCL until we work on that process, but should be able to be in dropbox. If you need it now, you can create it using the information in the screenshot. The UUIDs also follow the pattern of the other CIEL terms.

1 Like

@akanter would it make sense to also add as part of the construct a ‘vaccine booster date’ or a ‘next immunization date’?

Deep down the idea would be that those next immunization dates could be used to help build reminders, as a workaround for not having a fully fledged immunization planning feature.

Adding a next immunization date is interesting. However, its not so simple. Happy to have a separate conversation about this. However, the calculation of the next immunization is based on the specific component and not necessarily the exact same immunization that was provided previously. Also changes in the patient might change the window. We have done work in the past where we stored a text version of the recommendations based on series and put it in the Immunization Recommendation concept. I’d ask the community whether it makes sense to store this in the immunization history on a line by line basis. @paul as a pediatrician, what do you think?

1 Like

Hi @akanter,

Sorry for adding one more conversation in between. I have found this thread might be suitable for this question.

As part of our existing work related to Immunization History, we want to capture the name of the vaccine which is not available in Immunizations (5622) list (For ex. Corona).

Immunizations allows us to choose Other ( 5622) when do not have the vaccine in our list. But we do not have a concept like Other Vaccine Name to capture that vaccine name (Corona) which is not available in the list.

Please share your thoughts about adding a new concept to capture Other Vaccine Name to IMMUNIZATION HISTORY (1421)? or do we have any other option to capture the same.

CC: @mksd @mddubey

1 Like

Hi @akanter,

Could you provide your thoughts on the above message?

CC: @mksd @mddubey

Sorry, I missed this. I would prefer to add any immunization to the database because for immunization monitoring to work properly there needs to be properly documentation (including CVX codes). It would be possible to include Other Vaccine Name (Text) to history, but it will be non-standard and would not be recommended to use. For COVID-19, I would prefer to include that in the database if people are actually using one.

Wouldn’t it make sense to start something to build an immunization planning feature? We could maybe start by looking at something like the corresponding FHIR resource.

Hi @ibacher, just stepping back, how do we simply fetch and record immunizations with FHIR? Because that’s where we’ll start.

If we were to ignore FHIR it’s pretty straightforward, it’s just an obs group saved during an immunization encounter.

Cc @jesplana