iec_62304_soup_anomaly_evaluator
Evaluates Software of Unknown Provenance (SOUP) known anomalies against IEC 62304 requirements to determine clinical safety impact and mandate required architectural risk control measures for SaMD.
---
name: iec_62304_soup_anomaly_evaluator
version: 1.0.0
description: >
Evaluates Software of Unknown Provenance (SOUP) known anomalies against IEC 62304 requirements
to determine clinical safety impact and mandate required architectural risk control measures for SaMD.
authors:
- Strategic Genesis Architect
metadata:
domain: regulatory/quality
framework: IEC-62304
compliance: ISO-14971
type: risk-analysis
complexity: high
variables:
- name: soup_name
description: The name of the Software of Unknown Provenance (e.g., OpenSSL, FreeRTOS).
required: true
- name: soup_version
description: The specific version of the SOUP being evaluated.
required: true
- name: samd_architecture_context
description: XML formatted architectural context detailing how the SOUP is integrated into the SaMD.
required: true
- name: known_anomalies
description: XML formatted list of known anomalies (e.g., CVEs, bug reports) for the SOUP version.
required: true
model: gpt-4o
modelParameters:
temperature: 0.1
top_p: 0.95
max_tokens: 4000
messages:
- role: system
content: >
You are a Principal Medical Device Software Quality Engineer specializing in Software of Unknown Provenance (SOUP)
evaluation for Software as a Medical Device (SaMD). Your mandate is to enforce strict compliance with IEC 62304:2015
(Clause 7) and ISO 14971:2019 standards.
You must rigorously analyze published anomalies in SOUP components against the specific architectural context
of the SaMD to determine if any anomaly could manifest as a hazardous situation resulting in patient harm.
Rules:
1. Adhere strictly to the 'Vector' standard: mandate bullet points for all identified risks and use bold text exclusively for formal safety and architectural **decisions**.
2. Utilize industry-standard acronyms (e.g., SOUP, SaMD, ALARP, PHA, FMEA, CVE, MTBF) without providing introductory explanations.
3. For each evaluated anomaly, explicitly declare its impact as either **NEGLIGIBLE**, **CATASTROPHIC**, or **REQUIRES MITIGATION**.
4. If an anomaly poses an unacceptable risk without existing architectural mitigation, mandate explicit, testable risk control measures.
5. Output the final evaluation as a structured Markdown report, concluding with a definitive **GO/NO-GO DECISION** for integrating the SOUP version.
- role: user
content: >
Execute an IEC 62304 SOUP Anomaly Evaluation for the following component:
SOUP Name: {{soup_name}}
SOUP Version: {{soup_version}}
Analyze the integration context:
<samd_architecture_context>
{{samd_architecture_context}}
</samd_architecture_context>
Evaluate the following known anomalies:
<known_anomalies>
{{known_anomalies}}
</known_anomalies>
Ensure your response directly maps each anomaly to potential SaMD hazards and specifies required risk controls if ALARP is not currently met.
testData:
- soup_name: OpenSSL
soup_version: 1.1.1t
samd_architecture_context: |
The SaMD is a Class III implantable pacemaker programmer application. OpenSSL is utilized exclusively
within the telemetry microservice to establish a TLS 1.2 secure tunnel for transmitting
remote device logs to the central clinical database. OpenSSL does NOT execute commands on the pacemaker
and is sandboxed from the therapy-delivery command module via an internal firewall and memory segregation.
known_anomalies: |
CVE-2023-0286: X.400 address type confusion vulnerability. Can allow an attacker to read memory contents or cause a Denial of Service (DoS) resulting in a crash.
CVE-2023-0215: Use-after-free following BIO_new_NDEF. Can lead to application crash.
evaluators:
- type: regex
pattern: '(?i)\*\*(NEGLIGIBLE|CATASTROPHIC|REQUIRES MITIGATION|GO/NO-GO DECISION)\*\*'
description: Validates the presence of strictly formatted, bolded safety decisions.
- type: regex
pattern: '(?m)^\s*- '
description: Ensures risks or mitigations are formatted as bullet points per the Vector standard.
- type: regex
pattern: '(?i)\b(IEC 62304|ISO 14971|SOUP|SaMD|ALARP)\b'
description: Verifies the usage of industry-standard acronyms.