msupply-foundation / open-msupply

Open mSupply represents our most recent advancement in the Logistics Management Information System (LMIS), expanding on more than two decades of development inherited from the well-established legacy of the original mSupply.
https://msupply.foundation/open-msupply/
Other
20 stars 12 forks source link

GAPS: Implement item variants: Item UI changes #4789

Open mark-prins opened 1 month ago

mark-prins commented 1 month ago

Part of epic #4362

Is your feature request related to a problem? Please describe 👀

There are several aspects of the GAPS work which require item variant capabilities For reference this is the full item variant PRD

We won't need all aspects of that; but we will need the ability to create and edit and sync item variants.

The variants will need to have these properties for the GAPS work:

Name Type Reference
Volume (x3) float #3917
Bundle items reference to n item variants #3923
Temperature range enum #4368

Describe the solution you'd like 🎁

See #5141

UI - on OMS central:

Image

Handling stock

Done in separate issue: #5145

Describe alternatives you've considered 💭

Additional context 💌

Moneyworks Jobcode 🧰

adamdewey commented 1 month ago

One other thing to note here is that GAPS would require item variants to be used during stock management so we know which item variant is currently taking up space within CCE...

Big change to standard stock management functionality!

Also worth mentioning that Craig suggests using barcode table which is basically doing the same thing as item variants - i.e. capturing products at the GTIN level

lache-melvin commented 1 week ago
adamdewey commented 1 week ago

Unto the breach!

...

One thing to consider: there should be a hardcoded pack size for each item variant, so if choosing an item variant it wouldn't make sense to also be able to specify a pack size for the generic item (our current functionality)

lache-melvin commented 1 week ago

Hi Adam - is the configured pack size for each variant a definite requirement for GAPS?

In conversations with @mark-prins, we'd agreed that for this round of GAPS, item variant would only include item "metadata" for GAPS calculations at this stage (i.e. packaging dimensions, temperature range). Otherwise we'll keep impacts on the rest of the app to a minimum for now.

Configuring pack size is still in the full Item Variant spec, but has a lot more UI implications, which require significant design investment - à la pack variants from early this year 😅

If this raises functionality concerns, please do let us know ASAP! 🙏

adamdewey commented 1 week ago

Hey @lache-melvin - ah I see!

Hmm, actually I don't think pack size is strictly required at this stage.

What we do need is to have a volume per dose for each item variant.

(Originally I was thinking that the unit for vaccines should be dose and the pack size would represent the number of doses per vial, but now I've been convinced by Louisa that the unit needs to be vial and that we need to have an additional dose number property.)

I was assuming the volume per item variant would be added as volume per unit, volume per pack, volume per secondary pack so that it can be used for items other than vaccines, but that will mean for vaccines we also need to capture the dose number per item variant so we can make the calculation for volume per dose.

lache-melvin commented 1 week ago

Thanks for raising this Adam! Have just had a chat with Mark, this was the outcome:

We'll capture doses per unit on the item variant, and will do the volume per unit, volume per pack, and volume per secondary pack, as you say -- is this the equivalent of primary, secondary, tertiary? (Assuming this means we also need something to the tune of packs per secondary pack)

I think volume per dose can be derived from volume per unit / doses per unit, seeing as doses wouldn't be individually?

IMPORTANT TO NOTE: the doses per unit at the item variant level will be for GAPS purposes ONLY. It's just additional metadata to help make your storage requirement calculations more accurate.

Doses per unit is captured against the item in mSupply, and this is what informs the amount of vaccine item dispensed per dose from the vaccine card.

We don't have budget to adapt vax card for variants at this stage, so we'll recommend setting up another item if they need to dispense from variants with different doses per unit.

Hopefully one day we can wire these two up - same with pack size - just won't be in scope for now 🙏

adamdewey commented 1 week ago

Thanks for the update @lache-melvin !

Hmm, yeah feels like we need an item variant overhaul project to tie everything together.

Having 'doses per unit' in 2 places like that is a bit nasty - I wonder how we can capture these loose ends so they aren't forgotten for addressing later on?