Background
At present the Refiner allows 3 operations for coded data at a section level:
- Retaining or Keeping - this keeps the original section data unmodified
- Refining - this keeps only the coded data elements in a section that contain codes that match codes in the configuration
- Removing - this removes the data in a section entirely (while still keeping it valid from a validation perspective)
The refining option right now works on a retention model: users specify which codes relate to information they want to keep or retain while discarding the rest. There is, however, an alternate approach to refining that would allow the user to specify what coded information to omit and to keep the rest.

Users may want to utilize an omission approach to refinement in order to remove common data elements that they know aren't needed or relevant (or may even be sensitive) and to capture the segment of data that may be relevant to the condition, but that they won't know to specify in advance. The trade-off is that more of the retained data may be irrelevant, but it reduces the risk of removing relevant data that hasn't been specified in the configuration.
🏗️ Potential user stories
- As a user, I can specify which coded information to omit, so that I ensure I'm not keeping sensitive information that could get us into trouble
- As a user, I can choose whether to refine by retention or omission, so that I ensure that I'm getting the level of detail that I want in my outputs
- As a user, I can specify which coded information to omit, so that I ensure I'm removing irrelevant info without risking missing anything I don't know that I need
🎬 Scenarios
- Excluding any STI- or HIV-related codes for conditions where that information is irrelevant or possibly sensitive
- Excluding abortion-related data or drug abuse data for conditions where that information isn't relevant (or even across all conditions)
- Choosing to refine by omitting certain coded information (e.g. pulse ox readings, vital signs, generic blood test panels, etc.) to get rid of the most common irrelevant data
🎨 Design Notes
- Could be implemented at the section, configuration/condition, or cross-condition level; however, we should keep in mind that our change control happens at the configuration/condition level currently
- We should think about what combinations of things we want to offer. For instance, we could offer omission as its own setting for a section. Or refinement + omission where we run refinement first against the code set, then run omission to make sure we aren't keeping anything sensitive.
📜 Additional context
Background
At present the Refiner allows 3 operations for coded data at a section level:
The refining option right now works on a retention model: users specify which codes relate to information they want to keep or retain while discarding the rest. There is, however, an alternate approach to refining that would allow the user to specify what coded information to omit and to keep the rest.

Users may want to utilize an omission approach to refinement in order to remove common data elements that they know aren't needed or relevant (or may even be sensitive) and to capture the segment of data that may be relevant to the condition, but that they won't know to specify in advance. The trade-off is that more of the retained data may be irrelevant, but it reduces the risk of removing relevant data that hasn't been specified in the configuration.
🏗️ Potential user stories
🎬 Scenarios
🎨 Design Notes
📜 Additional context