import numpy as np from CPR_Module.Common.keypoints import CocoKeypoints from CPR_Module.Common.logging_config import cpr_logger class ShouldersAnalyzer: """Calculate and store shoulder distance for CPR rescuer""" def __init__(self): self.shoulder_distance = None self.shoulder_distance_history = [] def calculate_shoulder_distance(self, rescuer_keypoints): """Calculate and store shoulder distance""" if rescuer_keypoints is None: return try: left = rescuer_keypoints[CocoKeypoints.LEFT_SHOULDER.value] right = rescuer_keypoints[CocoKeypoints.RIGHT_SHOULDER.value] distance = np.linalg.norm(np.array(left) - np.array(right)) return distance except Exception as e: cpr_logger.error(f"Shoulder distance error: {e}") return def reset_shoulder_distances(self): """Reset shoulder distances""" self.shoulder_distance_history = []