docstr: returns the percentage of images that have already been approved by given client (=Annotator)
  and the value: (total number of images approved by given client (=Annotator))/(total number of imageData)
docstr_tok: ["returns","the","percentage","of","images","that","have","already","been","approved","by","given","client","(","=Annotator",")","and","the","value",":","(","total","number","of","images","approved","by","given","client","(","=Annotator",")",")","\/","(","total","number","of","imageData",")"]
code: def getPercentageApproved(self, clientId: str):
      """
      returns the percentage of images that have already been approved by given client (=Annotator)
      and the value: (total number of images approved by given client (=Annotator))/(total number of imageData)
      """
      listImageData = self.getImageDataByClientId(clientId=clientId)
      approvedCount = self.countApprovedSegmentation(listImageData)
      if len(listImageData) == 0:
          logging.warning(
              f"{self.getCurrentTime()}: There are no images"
          )
          return 0
      fraction = approvedCount / len(listImageData)
      precentage = int(fraction * 100)
      idxApprovedOfClient: str = f"{approvedCount}/{len(listImageData)}"
      return precentage, idxApprovedOfClient
  
imports: import datetime
  import logging
  from typing import Dict, List
  from MONAILabelReviewerLib.ImageData import ImageData
  from MONAILabelReviewerLib.MONAILabelReviewerEnum import Level
label_desc: Use image node_id 30 for calling the ImageDataExtractor obj's underlying member method code with example usage: obj.getPercentageApproved(clientId) and returns: precentage,  idxApprovedOfClient, int