Update of Facility in CCE Equipment

Hello Everyone,

Right now OpenLMIS doesn’t provide the functionality to change the location of CCE Equipment. SELV implementation request this kind of feature. To do that we need to add this possibility to update the facility in the core CCE service. It looks like a simple change here. The question is can I add this functionality to the core service? Or should I create an extension point for this?


The comment on that method says
Copy all values except invariants (id, program, facility, catalog item).

I wonder if there was any reason to disallow facility updates (moving equipment from one facility to another). To me, this sounds like something we could enable in core, but we would also need to check whether the facility update may have any further implications somewhere (or figure out why it was disabled in the first place - anyone knows?).

Best regards,

Agreed this sounds like it could be a feature in core, and sparks some rough memories of what was discussed way back when.

In the wiki, the search phrase “cce transfer” seems to be most relevant. Relevant pages 1 and 2.

A few things off the top of my head we should account for:

  • Who is the user that can move equipment? Does it need any review from another user?
    • It was mentioned, briefly, that “transferring” was turned off in VIMS, which suggests this needs to be an assignable right / configuration.
  • If a piece of CCE moves, the history of its installation and status should stay with the facility, and a new history trail is started as it’s installed in the new location. (e.g. the single installation date isn’t enough to maintain this trail).
  • That piece of CCE should be searchable across the locations it has been installed/used. e.g. I have different personas potentially, one that wants to see where the equipment is and how it’s doing there, and another persona that might want to see the history of this piece of equipment across all the places it has been installed.
  • The integration with FHIR + Coldtrace needs to maintain. We said then that both OpenLMIS and Coldtrace would follow a FHIR datastore for maintaining a consistent record of which CCE is installed where. And in the absence of there being a 3rd party FHIR datastore, OpenLMIS’ own would act as the authority to maintain a consistent view between the systems. Lets be extra sure we don’t break anything here, and double/triple check the tests that we have to ensure we cover these adequately.
  • I recall that there was confusion in early user-stories about what a CCE was in terms of referencing a “transfer”. In some cases it could be considered a big bulky fridge/freezer, in some it could be a piece of equipment needed to run a fridge/freezer (30DTR, voltage stabilizer, etc), in others it could be a smaller passive cooler, and in others it could be a small frozen block that came out of special freezers for use in transfering vaccines. I believe we optimized much more for the former (big fridges/freezers) rather than the latter. Lets be sure our use-case here is inline with that. I remember for the latter that the workflow looked quite a bit different, involving higher quantities and more of a need to forecast need.

@Chongsun_Ahn you’re a SME on this, what do you think?

Thanks for bringing this up, it sounds quite useful.


Hi all,

From what I remember, I believe we were intentional about not allowing CCE to be moved, i.e. not allowing the facility to be changed. From skimming the CCE code and schema, it appears that we do not currently have any way to support change history, not even for status. So if we want to take some of these issues into account, we would need to add/modify schema to support installation/status history for CCE. Which is possible, but this is not simply an issue of removing facility as an invariant.