who-fic / harmonized-cm

The prototype harmonized WHO-FIC Content Model for ICD, ICF, and ICHI
0 stars 0 forks source link

How to differentiate classes in different classifications #13

Open samsontu opened 4 years ago

samsontu commented 4 years ago

Tania Tudorache (on using superclasses to differentiate class in different classifications):

The problem here is that checking whether a class is a subclass of one of the top classes is a pretty expensive operation. We need a quick way to be able to check if a class is part of a classification for time-sensitive operations such as displaying a class (e.g. with different icons for different classifications), filtering, and access control. Doing on the server-side of iCAT the tree check each time we return a class will be very expensive and will slow down the interface significantly.

In my opinion, even if a class belongs to different classifications, it can have several metaclasses corresponding to the classifications.

Alternatively, if we don't want to use metaclasses, we can use some flags as annotation properties that say that a particular class belongs to a classification.

samsontu commented 4 years ago

I think it’s best that we stop using metaclasses when we don’t have to. Maybe we can have an annotation property that indicate the “source” or “primary home” of the classes, in the spirit of how ICD was divided among different TAGs. We have to think about how to allocate extension codes though. The anatomy hierarchy, in particular, once harmonized among the three classifications, will have classes that are used in different classifications.

Another idea: Maybe we can determine the classification a class belongs by looking at the linearization specification of the class. Until a class is linearized to a classification, it doesn’t belong to any classification. Here the problem may be that we have too many linearizations. The linearizations worthy of attention may be configurable. Instead of static metaclasses or annotation properties, where a class belong is determined by the linearizations. With respect to access control, this data-driven approach may not appropriate. Can, can you help us imagine the kind of access control we need? Who will be editing the unified Foundation? How would WHO allocate access to different parts of the Foundation?