@ssmusoke, well if you want all obs of a particular concept (eg. all weights), then you can simply use ObsForPersonDataDefinition.
If you want all encounters that contain certain obs, then you would construct an EncounterDataSetDefinition, and run it for an EvaluationContext that contains only the single patient you are interested in. This will give you a row-per-encounter data set that has encounters for just that patient.
If you need to create a data set and expose this as a data definition, then there is a PatientDataSetDataDefinition.
There are lots of different options, selecting the right one will depend on the use case.