The DataCapture package contains classes used to describe the process of collecting, acquiring, or capturing data from various sources. Sources could include surveys, databases, registries, administrative data, bio-medical devices, environmental sensors, or any other source or instrument.

Namespace URI:
Color of objects in the uml graph: 
Include in build?: 


Question has been considered a distinct element separate from Measurement, but in reality Question is a sub-class of Measurement. If you model Question as a sub-class of Measurement, then you have to model all the other potential sub-classes (which can be virtually any other non-survey type measurement). When we model them as separate entities, we have to instantiate multiple relationships, e.g., to Concept, and this is inefficient! :)

ImplementedInstrument is instantiated by invoking a Sequence, which is the order for operations expressed as ControlConstructs (the instrument logic). The InstrumentComponents are executed as Acts within the instrument logic.

I am wondering what the purpose of InstrumentComponent is. What is the difference between it and Capture. Would the model be simpler if we had just Capture? There is a lot of redundancy between the two.


The difference is that Instrument components are all inheriting from Act, and thus connect this whole thing to the process model. Capture on the other hand is inheriting directly from AnnotatedIdentifiable. The two are thus functionally very different. All instrument components describe the flow of the instrument. Capture is the supertype (and extension point) which allows us to have specific types of specialized atomic data collection (eg, questions). Also, capture is a logical construct, and instrument component is mere plumbing.

Package Graph