[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CX0Q73DPSMYEB5G6G638HM":3,"skill-same:01M6CX0Q73DPSMYEB5G6G638HM":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6CX0Q73DPSMYEB5G6G638HM","biomedical-engineering",null,"Biomedical engineering fundamentals including medical device design, signal processing for physiological data, imaging systems, and clinical instrumentation","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fengineering\u002Fbiomedical-engineering\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"engineering","biomedical engineering","biomedical","design","data","opencode","device","instrumentation","2026-11-10 10:12:30",false,"---\nname: biomedical-engineering\ndescription: Biomedical engineering fundamentals including medical device design, signal processing for physiological data, imaging systems, and clinical instrumentation\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: engineers\n  category: engineering\n---\n\n## What I do\n- Design medical devices and diagnostic equipment\n- Process physiological signals (ECG, EEG, EMG)\n- Analyze medical imaging data (CT, MRI, ultrasound)\n- Model biological systems and biomechanics\n- Design prosthetics and orthotics\n- Implement FDA regulatory compliance\n- Create clinical decision support systems\n- Design implantable medical devices\n- Implement medical data security (HIPAA)\n- Validate medical device software\n\n## When to use me\nWhen designing medical devices, processing physiological signals, implementing healthcare software, or ensuring regulatory compliance for medical products.\n\n## Core Concepts\n- Physiological signal acquisition and processing\n- Medical imaging modalities and analysis\n- Biomechanics and rehabilitation engineering\n- Medical device design and validation\n- FDA and international regulatory requirements\n- HIPAA data security and privacy\n- Clinical trials and human factors engineering\n- Biosensors and instrumentation\n- Neural interfaces and brain-computer interfaces\n- Biomaterials and tissue engineering\n\n## Code Examples\n\n### ECG Signal Processing\n```python\nimport numpy as np\nfrom scipy import signal\nfrom scipy.ndimage import uniform_filter1d\nfrom dataclasses import dataclass\n\n@dataclass\nclass ECGSignal:\n    data: np.ndarray\n    sampling_rate: float\n    patient_id: str\n\ndef detect_r_peaks(\n    ecg: ECGSignal,\n    threshold: float = 0.5,\n    min_distance: int = None\n) -> np.ndarray:\n    \"\"\"Detect R-peaks in ECG signal using Pan-Tompkins algorithm.\"\"\"\n    fs = ecg.sampling_rate\n    \n    # Bandpass filter (5-15 Hz)\n    nyquist = fs \u002F 2\n    low = 5 \u002F nyquist\n    high = 15 \u002F nyquist\n    b, a = signal.butter(4, [low, high], btype='band')\n    filtered = signal.filtfilt(b, a, ecg.data)\n    \n    # Derivative\n    diff = np.diff(filtered)\n    diff = np.concatenate([[0], diff])\n    \n    # Squaring\n    squared = diff ** 2\n    \n    # Moving average (integration window ~150ms)\n    window = int(0.15 * fs)\n    integrated = uniform_filter1d(squared, size=window)\n    \n    # Find peaks\n    if min_distance is None:\n        min_distance = int(0.4 * fs)  # Minimum 40 BPM\n    \n    peaks, properties = signal.find_peaks(\n        integrated,\n        height=threshold * np.max(integrated),\n        distance=min_distance\n    )\n    \n    return peaks\n\ndef calculate_heart_rate(\n    r_peaks: np.ndarray,\n    sampling_rate: float\n) -> float:\n    \"\"\"Calculate average heart rate from R-peaks.\"\"\"\n    if len(r_peaks) \u003C 2:\n        return 0\n    \n    rr_intervals = np.diff(r_peaks) \u002F sampling_rate  # in seconds\n    mean_rr = np.mean(rr_intervals)\n    return 60 \u002F mean_rr\n\ndef detect_qrs_complex(\n    ecg: ECGSignal,\n    r_peaks: np.ndarray\n) -> dict:\n    \"\"\"Extract QRS complex characteristics.\"\"\"\n    window_before = int(0.1 * ecg.sampling_rate)\n    window_after = int(0.15 * ecg.sampling_rate)\n    \n    qrs_data = []\n    qrs_widths = []\n    qrs_amplitudes = []\n    \n    for r_peak in r_peaks:\n        start = max(0, r_peak - window_before)\n        end = min(len(ecg.data), r_peak + window_after)\n        \n        segment = ecg.data[start:end]\n        qrs_data.append(segment)\n        \n        # QRS width (derivative-based)\n        diff = np.abs(np.diff(segment))\n        qrs_width = np.argmax(np.cumsum(diff) > 0.5 * np.sum(diff))\n        qrs_widths.append(qrs_width \u002F ecg.sampling_rate * 1000)  # ms\n        \n        # R-peak amplitude\n        qrs_amplitudes.append(ecg.data[r_peak])\n    \n    return {\n        \"qrs_widths_ms\": np.mean(qrs_widths),\n        \"r_amplitudes_mean\": np.mean(qrs_amplitudes),\n        \"beats\": len(r_peaks)\n    }\n\ndef detect_arrhythmia(\n    r_peaks: np.ndarray,\n    sampling_rate: float\n) -> list:\n    \"\"\"Detect potential arrhythmias from RR intervals.\"\"\"\n    if len(r_peaks) \u003C 3:\n        return []\n    \n    rr_intervals = np.diff(r_peaks) \u002F sampling_rate\n    rr_diff = np.diff(rr_intervals)\n    \n    arrhythmias = []\n    \n    # Tachycardia (>100 bpm)\n    hr = 60 \u002F rr_intervals\n    if np.mean(hr) > 100:\n        arrhythmias.append({\n            \"type\": \"tachycardia\",\n            \"severity\": \"warning\",\n            \"value\": np.mean(hr)\n        })\n    \n    # Bradycardia (\u003C60 bpm)\n    if np.mean(hr) \u003C 60:\n        arrhythmias.append({\n            \"type\": \"bradycardia\",\n            \"severity\": \"warning\",\n            \"value\": np.mean(hr)\n        })\n    \n    # Irregular rhythm (high RR variability)\n    rr_std = np.std(rr_intervals)\n    if rr_std > 0.1:  # >100ms variability\n        arrhythmias.append({\n            \"type\": \"irregular_rhythm\",\n            \"severity\": \"warning\",\n            \"rr_variability_ms\": rr_std * 1000\n        })\n    \n    # PVC detection (abnormally short RR)\n    pvc_indices = np.where(rr_intervals[:-1] \u003C 0.8 * np.median(rr_intervals))[0]\n    if len(pvc_indices) > 0:\n        arrhythmias.append({\n            \"type\": \"pvc\",\n            \"count\": len(pvc_indices),\n            \"severity\": \"moderate\"\n        })\n    \n    return arrhythmias\n\n# Example: ECG analysis\necg = ECGSignal(\n    data=np.load(\"ecg_sample.npy\"),\n    sampling_rate=500,\n    patient_id=\"P001\"\n)\nr_peaks = detect_r_peaks(ecg)\nhr = calculate_heart_rate(r_peaks, 500)\nqrs = detect_qrs_complex(ecg, r_peaks)\narrhythmias = detect_arrhythmia(r_peaks, 500)\nprint(f\"Heart Rate: {hr:.1f} bpm\")\nprint(f\"QRS Width: {qrs['qrs_widths_ms']:.1f} ms\")\n```\n\n### Medical Imaging Utilities\n```python\nimport numpy as np\nfrom scipy import ndimage\nfrom skimage import exposure, filters\n\ndef apply_window_level(\n    image: np.ndarray,\n    window_center: float,\n    window_width: float\n) -> np.ndarray:\n    \"\"\"Apply window\u002Flevel adjustment for medical imaging.\"\"\"\n    min_val = window_center - window_width \u002F 2\n    max_val = window_center + window_width \u002F 2\n    \n    windowed = np.clip(image, min_val, max_val)\n    windowed = (windowed - min_val) \u002F (max_val - min_val)\n    return windowed\n\ndef lung_segmentation(\n    ct_slice: np.ndarray\n) -> np.ndarray:\n    \"\"\"Simple lung segmentation using thresholding.\"\"\"\n    # Typical HU values: air \u003C-400, lung -400 to -900, tissue >0\n    lung_mask = (ct_slice \u003C -200) & (ct_slice > -1000)\n    \n    # Remove noise\n    lung_mask = ndimage.binary_opening(lung_mask, iterations=2)\n    \n    # Fill holes\n    lung_mask = ndimage.binary_closing(lung_mask, iterations=3)\n    \n    # Label and keep two largest regions (left and right lung)\n    labels, num_features = ndimage.label(lung_mask)\n    if num_features >= 2:\n        sizes = ndimage.sum(lung_mask, labels, range(1, num_features + 1))\n        keep = np.argsort(sizes)[-2:] + 1\n        lung_mask = np.isin(labels, keep)\n    \n    return lung_mask.astype(np.uint8)\n\ndef enhance_contrast(\n    image: np.ndarray,\n    method: str = \"clahe\"\n) -> np.ndarray:\n    \"\"\"Enhance contrast in medical images.\"\"\"\n    if method == \"clahe\":\n        return exposure.equalize_adapthist(image \u002F np.max(image))\n    elif method == \"histogram\":\n        return exposure.equalize_hist(image)\n    elif method == \"rescale\":\n        return exposure.rescale_intensity(image, out_range=(0, 1))\n    return image\n\ndef calculate_hu_statistics(\n    ct_image: np.ndarray,\n    mask: np.ndarray = None\n) -> dict:\n    \"\"\"Calculate Hounsfield Unit statistics within a region.\"\"\"\n    if mask is None:\n        mask = np.ones_like(ct_image, dtype=bool)\n    \n    hu_values = ct_image[mask]\n    \n    return {\n        \"mean_hu\": np.mean(hu_values),\n        \"std_hu\": np.std(hu_values),\n        \"min_hu\": np.min(hu_values),\n        \"max_hu\": np.max(hu_values),\n        \"median_hu\": np.median(hu_values),\n        \"volume_voxels\": np.sum(mask)\n    }\n```\n\n### Biomechanics Calculations\n```python\nfrom dataclasses import dataclass\nfrom typing import Tuple\n\n@dataclass\nclass ForceData:\n    force_x: np.ndarray\n    force_y: np.ndarray\n    force_z: np.ndarray\n    sampling_rate: float\n\n@dataclass\nclass BiomechanicalModel:\n    mass_kg: float\n    height_m: float\n    leg_length_m: float\n\ndef calculate_center_of_pressure(\n    force_data: ForceData\n) -> Tuple[np.ndarray, np.ndarray]:\n    \"\"\"Calculate COP from ground reaction forces.\"\"\"\n    fx, fy, fz = force_data.force_x, force_data.force_y, force_data.force_z\n    sampling_rate = force_data.sampling_rate\n    \n    # COP calculation (assuming force plate at origin)\n    cop_x = -fy \u002F fz\n    cop_y = -fx \u002F fz\n    \n    return cop_x, cop_y\n\ndef gait_analysis(\n    cop_x: np.ndarray,\n    cop_y: np.ndarray,\n    sampling_rate: float\n) -> dict:\n    \"\"\"Analyze gait from COP data.\"\"\"\n    # Find gait cycles (peaks in medial-lateral direction)\n    peaks, _ = signal.find_peaks(cop_x, distance=int(0.5 * sampling_rate))\n    \n    if len(peaks) \u003C 2:\n        return {\"error\": \"Insufficient data for gait analysis\"}\n    \n    # Calculate cadence\n    step_times = np.diff(peaks) \u002F sampling_rate\n    cadence = 60 \u002F np.mean(step_times)  # steps per minute\n    \n    # Calculate stride length\n    stride_lengths = np.abs(np.diff(cop_y[peaks]))\n    stride_length_mean = np.mean(stride_lengths)\n    \n    # COP velocity\n    velocity = np.gradient(cop_y) * sampling_rate\n    velocity_rms = np.sqrt(np.mean(velocity ** 2))\n    \n    return {\n        \"cadence_steps_min\": cadence,\n        \"stride_length_m\": stride_length_mean,\n        \"cop_velocity_m_s\": velocity_rms,\n        \"num_steps\": len(peaks)\n    }\n\ndef calculate_joint_moment(\n    force: np.ndarray,\n    moment_arm: np.ndarray\n) -> np.ndarray:\n    \"\"\"Calculate joint moment from force and moment arm.\"\"\"\n    return np.cross(moment_arm, force)\n\ndef bone_stress_analysis(\n    force: np.ndarray,\n    cross_sectional_area: float,\n    section_modulus: float\n) -> dict:\n    \"\"\"Calculate stress in bone under load.\"\"\"\n    normal_stress = force \u002F cross_sectional_area\n    bending_stress = moment \u002F section_modulus\n    \n    return {\n        \"normal_stress\": normal_stress,\n        \"bending_stress\": bending_stress\n    }\n```\n\n### Medical Device Regulatory Compliance\n```python\nfrom dataclasses import dataclass\nfrom datetime import datetime\nfrom enum import Enum\nfrom typing import List\n\nclass RiskClass(Enum):\n    CLASS_I = \"Class I\"\n    CLASS_II = \"Class II\"\n    CLASS_III = \"Class III\"\n\n@dataclass\nclass DesignControl:\n    design_input: str\n    design_output: str\n    design_review: str\n    verification: str\n    validation: str\n\n@dataclass\nclass DHFEntry:\n    document_id: str\n    title: str\n    date: datetime\n    author: str\n    reviewer: str\n    status: str\n\nclass DesignHistoryFile:\n    def __init__(self, device_name: str, risk_class: RiskClass):\n        self.device_name = device_name\n        self.risk_class = risk_class\n        self.entries: List[DHFEntry] = []\n        self.design_controls: List[DesignControl] = []\n    \n    def add_entry(self, entry: DHFEntry):\n        self.entries.append(entry)\n    \n    def add_design_control(self, control: DesignControl):\n        self.design_controls.append(control)\n    \n    def generate_compliance_report(self) -> dict:\n        \"\"\"Generate FDA design control compliance report.\"\"\"\n        return {\n            \"device_name\": self.device_name,\n            \"risk_class\": self.risk_class.value,\n            \"total_entries\": len(self.entries),\n            \"design_controls_complete\": len(self.design_controls),\n            \"required_controls\": self._get_required_controls(),\n            \"compliance_status\": self._check_compliance()\n        }\n    \n    def _get_required_controls(self) -> List[str]:\n        if self.risk_class == RiskClass.CLASS_I:\n            return [\"design_controls\", \"establish_registration\"]\n        elif self.risk_class == RiskClass.CLASS_II:\n            return [\"design_controls\", \"special_controls\", \"establish_registration\", \"pmc\"]\n        else:\n            return [\"design_controls\", \"premarket_approval\", \"establish_registration\", \"pmc\"]\n    \n    def _check_compliance(self) -> str:\n        required = self._get_required_controls()\n        return \"COMPLIANT\" if len(self.entries) >= 10 else \"INCOMPLETE\"\n\n# HIPAA Compliance Check\nclass HIPAAChecklist:\n    def __init__(self):\n        self.checks = {\n            \"access_control\": False,\n            \"audit_controls\": False,\n            \"integrity_controls\": False,\n            \"transmission_security\": False,\n            \"authentication\": False,\n            \"encryption\": False,\n            \"data_backup\": False,\n            \"disaster_recovery\": False\n        }\n    \n    def verify_compliance(self) -> dict:\n        \"\"\"Verify HIPAA compliance status.\"\"\"\n        score = sum(self.checks.values()) \u002F len(self.checks) * 100\n        return {\n            \"compliant\": score >= 80,\n            \"score_percent\": score,\n            \"passed_checks\": sum(self.checks.values()),\n            \"total_checks\": len(self.checks),\n            \"details\": self.checks\n        }\n```\n\n## Best Practices\n- Follow FDA design controls (21 CFR Part 820) for medical devices\n- Implement comprehensive risk management per ISO 14971\n- Ensure HIPAA compliance for all PHI data\n- Use validated software development processes (IEC 62304)\n- Perform human factors validation for user-facing devices\n- Document all design decisions in Design History File\n- Implement traceability from requirements to verification\n- Use proper biocompatibility testing for implantables\n- Follow cybersecurity best practices for connected devices\n- Maintain audit trails for all device modifications\n","## What I do\n- Design medical devices and diagnostic equipment\n- Process physiological signals (ECG, EEG, EMG)\n- Analyze medical imaging data (CT, MRI, ultrasound)\n- Model biological systems and biomechanics\n- Design prosthetics and orthotics\n- Implement FDA regulatory compliance\n- Create clinical decision support systems\n- Design implantable medical devices\n- Implement medical data security (HIPAA)\n- Validate medical device software\n\n## When to use me\nWhen designing medical devices, processing physiological signals, implementing healthcare software, or ensuring regulatory compliance for medical products.\n\n## Core Concepts\n- Physiological signal acquisition and processing\n- Medical imaging modalities and analysis\n- Biomechanics and rehabilitation engineering\n- Medical device design and validation\n- FDA and international regulatory requirements\n- HIPAA data security and privacy\n- Clinical trials and human factors engineering\n- Biosensors and instrumentation\n- Neural interfaces and brain-computer interfaces\n- Biomaterials and tissue engineering\n\n## Code Examples\n\n### ECG Signal Processing\n```python\nimport numpy as np\nfrom scipy import signal\nfrom scipy.ndimage import uniform_filter1d\nfrom dataclasses import dataclass\n\n@dataclass\nclass ECGSignal:\n    data: np.ndarray\n    sampling_rate: float\n    patient_id: str\n\ndef detect_r_peaks(\n    ecg: ECGSignal,\n    threshold: float = 0.5,\n    min_distance: int = None\n) -> np.ndarray:\n    \"\"\"Detect R-peaks in ECG signal using Pan-Tompkins algorithm.\"\"\"\n    fs = ecg.sampling_rate\n    \n    # Bandpass filter (5-15 Hz)\n    nyquist = fs \u002F 2\n    low = 5 \u002F nyquist\n    high = 15 \u002F nyquist\n    b, a = signal.butter(4, [low, high], btype='band')\n    filtered = signal.filtfilt(b, a, ecg.data)\n    \n    # Derivative\n    diff = np.diff(filtered)\n    diff = np.concatenate([[0], diff])\n    \n    # Squaring\n    squared = diff ** 2\n    \n    # Moving average (integration window ~150ms)\n    window = int(0.15 * fs)\n    integrated = uniform_filter1d(squared, size=window)\n    \n    # Find peaks\n    if min_distance is None:\n        min_distance = int(0.4 * fs)  # Minimum 40 BPM\n    \n    peaks, properties = signal.find_peaks(\n        integrated,\n        height=threshold * np.max(integrated),\n        distance=min_distance\n    )\n    \n    return peaks\n\ndef calculate_heart_rate(\n    r_peaks: np.ndarray,\n    sampling_rate: float\n) -> float:\n    \"\"\"Calculate average heart rate from R-peaks.\"\"\"\n    if len(r_peaks) \u003C 2:\n        return 0\n    \n    rr_intervals = np.diff(r_peaks) \u002F sampling_rate  # in seconds\n    mean_rr = np.mean(rr_intervals)\n    return 60 \u002F mean_rr\n\ndef detect_qrs_complex(\n    ecg: ECGSignal,\n    r_peaks: np.ndarray\n) -> dict:\n    \"\"\"Extract QRS complex characteristics.\"\"\"\n    window_before = int(0.1 * ecg.sampling_rate)\n    window_after = int(0.15 * ecg.sampling_rate)\n    \n    qrs_data = []\n    qrs_widths = []\n    qrs_amplitudes = []\n    \n    for r_peak in r_peaks:\n        start = max(0, r_peak - window_before)\n        end = min(len(ecg.data), r_peak + window_after)\n        \n        segment = ecg.data[start:end]\n        qrs_data.append(segment)\n        \n        # QRS width (derivative-based)\n        diff = np.abs(np.diff(segment))\n        qrs_width = np.argmax(np.cumsum(diff) > 0.5 * np.sum(diff))\n        qrs_widths.append(qrs_width \u002F ecg.sampling_rate * 1000)  # ms\n        \n        # R-peak amplitude\n        qrs_amplitudes.append(ecg.data[r_peak])\n    \n    return {\n        \"qrs_widths_ms\": np.mean(qrs_widths),\n        \"r_amplitudes_mean\": np.mean(qrs_amplitudes),\n        \"beats\": len(r_peaks)\n    }\n\ndef detect_arrhythmia(\n    r_peaks: np.ndarray,\n    sampling_rate: float\n) -> list:\n    \"\"\"Detect potential arrhythmias from RR intervals.\"\"\"\n    if len(r_peaks) \u003C 3:\n        return []\n    \n    rr_intervals = np.diff(r_peaks) \u002F sampling_rate\n    rr_diff = np.diff(rr_intervals)\n    \n    arrhythmias = []\n    \n    # Tachycardia (>100 bpm)\n    hr = 60 \u002F rr_intervals\n    if np.mean(hr) > 100:\n        arrhythmias.append({\n            \"type\": \"tachycardia\",\n            \"severity\": \"warning\",\n            \"value\": np.mean(hr)\n        })\n    \n    # Bradycardia (\u003C60 bpm)\n    if np.mean(hr) \u003C 60:\n        arrhythmias.append({\n            \"type\": \"bradycardia\",\n            \"severity\": \"warning\",\n            \"value\": np.mean(hr)\n        })\n    \n    # Irregular rhythm (high RR variability)\n    rr_std = np.std(rr_intervals)\n    if rr_std > 0.1:  # >100ms variability\n        arrhythmias.append({\n            \"type\": \"irregular_rhythm\",\n            \"severity\": \"warning\",\n            \"rr_variability_ms\": rr_std * 1000\n        })\n    \n    # PVC detection (abnormally short RR)\n    pvc_indices = np.where(rr_intervals[:-1] \u003C 0.8 * np.median(rr_intervals))[0]\n    if len(pvc_indices) > 0:\n        arrhythmias.append({\n            \"type\": \"pvc\",\n            \"count\": len(pvc_indices),\n            \"severity\": \"moderate\"\n        })\n    \n    return arrhythmias\n\n# Example: ECG analysis\necg = ECGSignal(\n    data=np.load(\"ecg_sample.npy\"),\n    sampling_rate=500,\n    patient_id=\"P001\"\n)\nr_peaks = detect_r_peaks(ecg)\nhr = calculate_heart_rate(r_peaks, 500)\nqrs = detect_qrs_complex(ecg, r_peaks)\narrhythmias = detect_arrhythmia(r_peaks, 500)\nprint(f\"Heart Rate: {hr:.1f} bpm\")\nprint(f\"QRS Width: {qrs['qrs_widths_ms']:.1f} ms\")\n```\n\n### Medical Imaging Utilities\n```python\nimport numpy as np\nfrom scipy import ndimage\nfrom skimage import exposure, filters\n\ndef apply_window_level(\n    image: np.ndarray,\n    window_center: float,\n    window_width: float\n) -> np.ndarray:\n    \"\"\"Apply window\u002Flevel adjustment for medical imaging.\"\"\"\n    min_val = window_center - window_width \u002F 2\n    max_val = window_center + window_width \u002F 2\n    \n    windowed = np.clip(image, min_val, max_val)\n    windowed = (windowed - min_val) \u002F (max_val - min_val)\n    return windowed\n\ndef lung_segmentation(\n    ct_slice: np.ndarray\n) -> np.ndarray:\n    \"\"\"Simple lung segmentation using thresholding.\"\"\"\n    # Typical HU values: air \u003C-400, lung -400 to -900, tissue >0\n    lung_mask = (ct_slice \u003C -200) & (ct_slice > -1000)\n    \n    # Remove noise\n    lung_mask = ndimage.binary_opening(lung_mask, iterations=2)\n    \n    # Fill holes\n    lung_mask = ndimage.binary_closing(lung_mask, iterations=3)\n    \n    # Label and keep two largest regions (left and right lung)\n    labels, num_features = ndimage.label(lung_mask)\n    if num_features >= 2:\n        sizes = ndimage.sum(lung_mask, labels, range(1, num_features + 1))\n        keep = np.argsort(sizes)[-2:] + 1\n        lung_mask = np.isin(labels, keep)\n    \n    return lung_mask.astype(np.uint8)\n\ndef enhance_contrast(\n    image: np.ndarray,\n    method: str = \"clahe\"\n) -> np.ndarray:\n    \"\"\"Enhance contrast in medical images.\"\"\"\n    if method == \"clahe\":\n        return exposure.equalize_adapthist(image \u002F np.max(image))\n    elif method == \"histogram\":\n        return exposure.equalize_hist(image)\n    elif method == \"rescale\":\n        return exposure.rescale_intensity(image, out_range=(0, 1))\n    return image\n\ndef calculate_hu_statistics(\n    ct_image: np.ndarray,\n    mask: np.ndarray = None\n) -> dict:\n    \"\"\"Calculate Hounsfield Unit statistics within a region.\"\"\"\n    if mask is None:\n        mask = np.ones_like(ct_image, dtype=bool)\n    \n    hu_values = ct_image[mask]\n    \n    return {\n        \"mean_hu\": np.mean(hu_values),\n        \"std_hu\": np.std(hu_values),\n        \"min_hu\": np.min(hu_values),\n        \"max_hu\": np.max(hu_values),\n        \"median_hu\": np.median(hu_values),\n        \"volume_voxels\": np.sum(mask)\n    }\n```\n\n### Biomechanics Calculations\n```python\nfrom dataclasses import dataclass\nfrom typing import Tuple\n\n@dataclass\nclass ForceData:\n    force_x: np.ndarray\n    force_y: np.ndarray\n    force_z: np.ndarray\n    sampling_rate: float\n\n@dataclass\nclass BiomechanicalModel:\n    mass_kg: float\n    height_m: float\n    leg_length_m: float\n\ndef calculate_center_of_pressure(\n    force_data: ForceData\n) -> Tuple[np.ndarray, np.ndarray]:\n    \"\"\"Calculate COP from ground reaction forces.\"\"\"\n    fx, fy, fz = force_data.force_x, force_data.force_y, force_data.force_z\n    sampling_rate = force_data.sampling_rate\n    \n    # COP calculation (assuming force plate at origin)\n    cop_x = -fy \u002F fz\n    cop_y = -fx \u002F fz\n    \n    return cop_x, cop_y\n\ndef gait_analysis(\n    cop_x: np.ndarray,\n    cop_y: np.ndarray,\n    sampling_rate: float\n) -> dict:\n    \"\"\"Analyze gait from COP data.\"\"\"\n    # Find gait cycles (peaks in medial-lateral direction)\n    peaks, _ = signal.find_peaks(cop_x, distance=int(0.5 * sampling_rate))\n    \n    if len(peaks) \u003C 2:\n        return {\"error\": \"Insufficient data for gait analysis\"}\n    \n    # Calculate cadence\n    step_times = np.diff(peaks) \u002F sampling_rate\n    cadence = 60 \u002F np.mean(step_times)  # steps per minute\n    \n    # Calculate stride length\n    stride_lengths = np.abs(np.diff(cop_y[peaks]))\n    stride_length_mean = np.mean(stride_lengths)\n    \n    # COP velocity\n    velocity = np.gradient(cop_y) * sampling_rate\n    velocity_rms = np.sqrt(np.mean(velocity ** 2))\n    \n    return {\n        \"cadence_steps_min\": cadence,\n        \"stride_length_m\": stride_length_mean,\n        \"cop_velocity_m_s\": velocity_rms,\n        \"num_steps\": len(peaks)\n    }\n\ndef calculate_joint_moment(\n    force: np.ndarray,\n    moment_arm: np.ndarray\n) -> np.ndarray:\n    \"\"\"Calculate joint moment from force and moment arm.\"\"\"\n    return np.cross(moment_arm, force)\n\ndef bone_stress_analysis(\n    force: np.ndarray,\n    cross_sectional_area: float,\n    section_modulus: float\n) -> dict:\n    \"\"\"Calculate stress in bone under load.\"\"\"\n    normal_stress = force \u002F cross_sectional_area\n    bending_stress = moment \u002F section_modulus\n    \n    return {\n        \"normal_stress\": normal_stress,\n        \"bending_stress\": bending_stress\n    }\n```\n\n### Medical Device Regulatory Compliance\n```python\nfrom dataclasses import dataclass\nfrom datetime import datetime\nfrom enum import Enum\nfrom typing import List\n\nclass RiskClass(Enum):\n    CLASS_I = \"Class I\"\n    CLASS_II = \"Class II\"\n    CLASS_III = \"Class III\"\n\n@dataclass\nclass DesignControl:\n    design_input: str\n    design_output: str\n    design_review: str\n    verification: str\n    validation: str\n\n@dataclass\nclass DHFEntry:\n    document_id: str\n    title: str\n    date: datetime\n    author: str\n    reviewer: str\n    status: str\n\nclass DesignHistoryFile:\n    def __init__(self, device_name: str, risk_class: RiskClass):\n        self.device_name = device_name\n        self.risk_class = risk_class\n        self.entries: List[DHFEntry] = []\n        self.design_controls: List[DesignControl] = []\n    \n    def add_entry(self, entry: DHFEntry):\n        self.entries.append(entry)\n    \n    def add_design_control(self, control: DesignControl):\n        self.design_controls.append(control)\n    \n    def generate_compliance_report(self) -> dict:\n        \"\"\"Generate FDA design control compliance report.\"\"\"\n        return {\n            \"device_name\": self.device_name,\n            \"risk_class\": self.risk_class.value,\n            \"total_entries\": len(self.entries),\n            \"design_controls_complete\": len(self.design_controls),\n            \"required_controls\": self._get_required_controls(),\n            \"compliance_status\": self._check_compliance()\n        }\n    \n    def _get_required_controls(self) -> List[str]:\n        if self.risk_class == RiskClass.CLASS_I:\n            return [\"design_controls\", \"establish_registration\"]\n        elif self.risk_class == RiskClass.CLASS_II:\n            return [\"design_controls\", \"special_controls\", \"establish_registration\", \"pmc\"]\n        else:\n            return [\"design_controls\", \"premarket_approval\", \"establish_registration\", \"pmc\"]\n    \n    def _check_compliance(self) -> str:\n        required = self._get_required_controls()\n        return \"COMPLIANT\" if len(self.entries) >= 10 else \"INCOMPLETE\"\n\n# HIPAA Compliance Check\nclass HIPAAChecklist:\n    def __init__(self):\n        self.checks = {\n            \"access_control\": False,\n            \"audit_controls\": False,\n            \"integrity_controls\": False,\n            \"transmission_security\": False,\n            \"authentication\": False,\n            \"encryption\": False,\n            \"data_backup\": False,\n            \"disaster_recovery\": False\n        }\n    \n    def verify_compliance(self) -> dict:\n        \"\"\"Verify HIPAA compliance status.\"\"\"\n        score = sum(self.checks.values()) \u002F len(self.checks) * 100\n        return {\n            \"compliant\": score >= 80,\n            \"score_percent\": score,\n            \"passed_checks\": sum(self.checks.values()),\n            \"total_checks\": len(self.checks),\n            \"details\": self.checks\n        }\n```\n\n## Best Practices\n- Follow FDA design controls (21 CFR Part 820) for medical devices\n- Implement comprehensive risk management per ISO 14971\n- Ensure HIPAA compliance for all PHI data\n- Use validated software development processes (IEC 62304)\n- Perform human factors validation for user-facing devices\n- Document all design decisions in Design History File\n- Implement traceability from requirements to verification\n- Use proper biocompatibility testing for implantables\n- Follow cybersecurity best practices for connected devices\n- Maintain audit trails for all device modifications\n",{"name":5,"license":14,"metadata":31,"description":7,"compatibility":23},{"audience":32,"category":18},"engineers","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41","engineering\u002Fbiomedical-engineering",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill biomedical-engineering",{"tool":46,"command":47},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill biomedical-engineering",{"tool":49,"command":50},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill biomedical-engineering","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fengineering\u002Fbiomedical-engineering\u002FSKILL.md",true,[54,60,66,70,74],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"automation_proposal.md","REFERENCE","参考文档",536,"https:\u002F\u002Fgithub.com\u002FMaCoredroid\u002FLumo_FlyWheel\u002Fblob\u002Fmain\u002Fbenchmark_blueprints\u002Ffamilies\u002Fcodex-surface-workflow-mapping\u002Freport\u002Fattempt_03_live_probe\u002Fworkdirs\u002Fv4-multi-corpus-objective-run2\u002Fworkspace\u002Fartifacts\u002Fautomation_proposal.md",{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"codex_triage.toml","OTHER","其他",638,"https:\u002F\u002Fgithub.com\u002FMaCoredroid\u002FLumo_FlyWheel\u002Fblob\u002Fmain\u002Fbenchmark_blueprints\u002Ffamilies\u002Fcodex-surface-workflow-mapping\u002Freport\u002Fattempt_03_live_probe\u002Fworkdirs\u002Fv4-multi-corpus-objective-run2\u002Fworkspace\u002Fartifacts\u002Fcodex_triage.toml",{"path":67,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":68,"sourceHtmlUrl":69},"mapping_note.md",3151,"https:\u002F\u002Fgithub.com\u002FMaCoredroid\u002FLumo_FlyWheel\u002Fblob\u002Fmain\u002Fbenchmark_blueprints\u002Ffamilies\u002Fcodex-surface-workflow-mapping\u002Freport\u002Fattempt_03_live_probe\u002Fworkdirs\u002Fv4-multi-corpus-objective-run2\u002Fworkspace\u002Fartifacts\u002Fmapping_note.md",{"path":71,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":72,"sourceHtmlUrl":73},"README.md",49,"https:\u002F\u002Fgithub.com\u002FMaCoredroid\u002FLumo_FlyWheel\u002Fblob\u002Fmain\u002Fbenchmark_blueprints\u002Ffamilies\u002Fcodex-surface-workflow-mapping\u002Freport\u002Fattempt_03_live_probe\u002Fworkdirs\u002Fv4-multi-corpus-objective-run2\u002Fworkspace\u002Fartifacts\u002FREADME.md",{"path":75,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":76,"sourceHtmlUrl":77},"workflow_map.json",6522,"https:\u002F\u002Fgithub.com\u002FMaCoredroid\u002FLumo_FlyWheel\u002Fblob\u002Fmain\u002Fbenchmark_blueprints\u002Ffamilies\u002Fcodex-surface-workflow-mapping\u002Freport\u002Fattempt_03_live_probe\u002Fworkdirs\u002Fv4-multi-corpus-objective-run2\u002Fworkspace\u002Fartifacts\u002Fworkflow_map.json",[79,90,99,108,118,127],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":26},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[81,86,87,88,23,89],"platform","cross-platform","mobile","development",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":26},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[92,97,23,98,22],"data wrangling","science",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":26},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[101,106,23,107],"system","scripting",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":26},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[115,116,23,117,22],"wide column","databases","model",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":26},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[125,116,23,126],"wide column stores","database",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":26},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[129,134,135,136,23,137,138],"websocket","real-time","time","best practices","implementation"]