@Override
 public int hashCode() {
   final int prime = 31;
   int result = super.hashCode();
   result = prime * result + ((approachBodySite == null) ? 0 : approachBodySite.hashCode());
   result = prime * result + ((deliveryMethod == null) ? 0 : deliveryMethod.hashCode());
   result = prime * result + ((deliveryRate == null) ? 0 : deliveryRate.hashCode());
   result = prime * result + ((deliveryRoute == null) ? 0 : deliveryRoute.hashCode());
   result = prime * result + ((doseQuantity == null) ? 0 : doseQuantity.hashCode());
   result = prime * result + ((dosingPeriod == null) ? 0 : dosingPeriod.hashCode());
   result =
       prime * result
           + ((dosingPeriodIntervalIsImportant == null)
               ? 0
               : dosingPeriodIntervalIsImportant.hashCode());
   result = prime * result + ((substance == null) ? 0 : substance.hashCode());
   result =
       prime * result
           + ((substanceAdministrationGeneralPurpose == null)
               ? 0
               : substanceAdministrationGeneralPurpose.hashCode());
   result = prime * result + ((targetBodySite == null) ? 0 : targetBodySite.hashCode());
   result = prime * result + ((doseType == null) ? 0 : doseType.hashCode());
   return result;
 }