<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_data_health(self, props=[], element=None):
 r""" Check the health of pore and throat data arrays. Parameters element : string, optional Can be either 'pore' or 'throat', which will limit the checks to only those data arrays. props : list of pore (or throat) properties, optional If given, will limit the health checks to only the specfied properties. Also useful for checking existance. Returns ------- Returns a HealthDict object which a basic dictionary with an added ``health`` attribute that is True is all entries in the dict are deemed healthy (empty lists), or False otherwise. Examples -------- True """

        health = HealthDict()
        if props == []:
            props = self.props(element)
        else:
            if type(props) == str:
                props = [props]
        for item in props:
            health[item] = []
            if self[item].dtype == 'O':
                health[item] = 'No checks on object'
            elif sp.sum(sp.isnan(self[item])) > 0:
                health[item] = 'Has NaNs'
            elif sp.shape(self[item])[0] != self._count(item.split('.')[0]):
                health[item] = 'Wrong Length'
        return health