Software as a Medical Device (SaMD)

What Is Software as a Medical Device (SaMD)?

Software as a Medical Device, or SaMD, is software that performs a medical function without being part of medical device hardware. SaMD makes it possible to accelerate diagnosis, management, and treatment of medical conditions and diseases. It automates some aspects of care, while improving quality and saving time. It can be used across mobile apps, virtual networks, hospital servers, and other platforms.

Examples of SaMD

A common use case of SaMD is to assist doctors with diagnoses using software that relies on a database of patient data and algorithms that find patterns in the data. These patterns help doctors make more targeted treatment recommendations than they might when based only on their personal knowledge of case histories.

Other examples of SaMD include:

  • An app to measure physiological parameters such as tremors, using a triaxial accelerometer on a mobile device
  • Desktop software used in radiology (such as X-ray, MRI, and ultrasound) to diagnose medical conditions
  • Cloud software for remotely monitoring a patient’s vital signs in real time (e.g., sleep monitoring, blood glucose monitoring, respiratory monitoring, cardiac monitoring, etc.).

Using MATLAB and Simulink for SaMD

MATLAB® and Simulink® support a complete functional workflow for developing SaMD applications while complying with industry regulations and standards such as IEC 82304 and IEC 62304. You can use MATLAB and Simulink at each stage of SaMD development—exploring and analyzing patient data, developing algorithms, verifying and validating the algorithms, and deploying and integrating these algorithms directly as an application for mobile devices, on the cloud, or as web dashboards for hospital systems.

Integrating and Deploying SaMD Algorithms

SaMD often includes algorithms for domains such as AI, signal processing, computer vision, and wireless communications. With MATLAB and Simulink, you can develop such multidomain SaMD algorithms using biomedical signals, medical images, and healthcare data. You can automatically translate these algorithms into standalone, royalty-free C, C++, or CUDA® code, or build it into a C/C++ shared library, .NET assemblies, Java® classes, Python® packages, and Docker® container–based microservices. You can integrate these components with custom applications and then deploy them to desktop, cloud, and enterprise systems.

SaMD Verification and Validation

Verification and validation (V&V) activities are performed throughout the development cycle. The same V&V framework you created during algorithm development gets extended into the integration and deployment stage. This lets you automatically generate most of the V&V documents required for regulatory compliance, which speeds the product development cycle without compromising quality or safety.

SaMD diagram showing connections between MATLAB and data sources such as Hadoop and AWS EKS.

Architecture of a remote patient health-monitoring SaMD based on MATLAB with DevOps technologies.

See also: MATLAB Test, MATLAB Coder, MATLAB Compiler SDK, GPU Coder, artificial intelligence with MATLAB, MATLAB in the cloud, medical device design, FDA software validation, IEC 62304