# US 9,519,334 B2 · Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,334 B2
- Document ID: US9519334B2
- Status: Granted
- Kind: B2
- Application number: 14/747,792
- Filed: 2015-06-23
- Published: 2015-10-15
- Granted: 2016-12-13
- Earliest claimed: 2009-09-08
- Assignees: Abbott Diabetes Care Inc.
- Applicants: Abbott Diabetes Care Inc.
- Inventors: Daniel M. Bernstein; Saeed Nekoomaram; Mark K. Sloan
- Web page: https://patentgrep.com/patent/US9519334B2

## CPC

- G06F 1/3287: by switching off individual functional units in the computer system
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 1/3203: Power management, i.e. event-based initiation of a power-saving mode
- G06F 8/61: Installation
- G06F 8/656: while running
- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- G06F 11/0721: {within a central processing unit [CPU]}
- G06F 11/0736: {in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function (testing or monitoring of automated control systems G05B23/02)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/3668: Testing of software
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3692: {for test results analysis}
- G16H 40/40: for the management of medical equipment or devices, e.g. scheduling maintenance or upgrades
- G06F 2201/865: Monitoring of software
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G16H: HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device are provided. Various combinations of installation, functional, host integrity, coexistence, interoperability, power management, and environment checks are performed at various times to determine if the safety critical application operates properly on the device. The operation of the SCA on the UDPD may be controlled accordingly.

## Claims

### Claim 1

A method for executing instructions with an uncontrolled data processing device (UDPD) to determine whether a safety critical application (SCA) is functioning properly on the UDPD, the method comprising:
executing instructions with the UDPD to retrieve a saved first current environment from a memory of the UDPD associated with a time when the SCA is permitted to operate freely on the UDPD;
identifying, with the UDPD, a second current environment of the UDPD associated with a time after the SCA is permitted to operate freely on the UDPD;
comparing, with the UDPD, the second current environment with the saved first current environment; and
determining, with the UDPD, whether an environment change has occurred between the saved first current environment and the second current environment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first saved and second current environments takes into account applications installed on the UDPD.

### Claim 3 (depends on 1)

The method of claim 1, further comprising determining that the SCA is functioning properly on the UDPD and permitting the SCA to operate freely on the UDPD, if a determination is made that an environment change has not occurred between the first current environment and the second current environment.

### Claim 4 (depends on 1)

The method of claim 1, further comprising determining that the SCA is not functioning properly on the UDPD, thereby preventing the SCA to operate freely on the UDPD, if a determination is made that an environment change has occurred between the first current environment and the second current environment.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining that the SCA is not installed properly on the UDPD, thereby disabling safety critical features of the SCA from being executed on the UDPD and enabling non-safety critical features of the SCA to be executed on the UDPD, if a determination is made that an environment change has occurred between the first current environment and the second current environment.

### Claim 6 (depends on 5)

The method of claim 5, wherein the safety critical features of the SCA comprises communication of the SCA with a remote device external to the UDPD.

### Claim 7 (depends on 5)

The method of claim 5, wherein the safety critical features of the SCA comprises determining an analyte concentration from a bodily fluid executed on the UDPD.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first saved current environment is recorded before the determination of whether the SCA is functioning properly on the UDPD.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determination of whether the SCA is functioning properly on the UDPD at predetermined times or time intervals.

### Claim 10 (depends on 1)

The method of claim 1, wherein the determination of whether the SCA is functioning properly on the UDPD upon occurrence of a predetermined event.

### Claim 11 (depends on 10)

The method of claim 10, wherein the predetermined event is when the SCA is launched.

### Claim 12 (depends on 1)

The method of claim 1, wherein the SCA is a glucose monitoring application.

### Claim 13 (depends on 1)

The method of claim 1, wherein the UDPD is a mobile phone or personal digital assistant (PDA).

### Claim 14 (depends on 1)

The method of claim 1, further comprising executing instructions with the UDPD to determine whether the SCA is functioning properly on the UDPD, the method comprising:
executing instructions with the UDPD to establish a communication link between the UDPD and an external device;
retrieving a reference communication data from the memory of the UDPD;
comparing, with the UDPD, a result of the communication link with the retrieved reference communication data; and
determining, with the UDPD, whether the communication link is properly established.

### Claim 15 (depends on 14)

The method of claim 14, wherein the result of the communication link is the amount of time required to establish the communication link between the UDPD and the external device, and the reference communication data is a predetermined amount of time to establish the communication link between the UDPD and the external device.

### Claim 16 (depends on 14)

The method of claim 14, wherein the result of the communication link is the amount of time required to retrieve a data request from the external device by the UDPD, and the reference communication data is a predetermined amount of time to retrieve a data request from the external device by the UDPD.

### Claim 17 (depends on 1)

The method of claim 1, further comprising executing instructions with the UDPD to determine whether the SCA is functioning properly on the UDPD, the method comprising:
executing instructions, with the UDPD, to initiate a computation using reference computational inputs by the SCA to derive a computation test result;
retrieving a corresponding reference computational data from the memory of the UDPD;
comparing the derived computation test result with the retrieved corresponding reference computational data; and
determining whether the SCA is functioning properly on the UDPD based on the comparing.

### Claim 18 (depends on 17)

The method of claim 17, wherein the computation comprises computing a glucose measurement.

### Claim 19 (depends on 1)

The method of claim 1, further comprising executing instructions with the UDPD to determine whether the SCA is functioning properly on the UDPD, comprising:
determining, with the UDPD, a time to perform a computation using the reference computational inputs by the SCA to derive a test result time; and
retrieving a corresponding reference timing data from the memory of the UDPD;
comparing the derived test result time with the retrieved corresponding reference timing data; and
determining whether the SCA is functioning properly on the UDPD based on the comparing.

### Claim 20 (depends on 1)

The method of claim 1, further comprising executing instructions with the UDPD to determine whether the SCA is functioning properly on the UDPD by determining whether the codetext of the SCA is uncorrupted, comprising:
calculating, with the UDPD, a host integrity check for a codetext of the SCA;
retrieving a corresponding reference host integrity check calculation from the memory of the UDPD;
comparing, with the UDPD, the calculated host integrity check and the retrieved corresponding reference host integrity check calculation; and
determining, with the UDPD, whether a change exists in the calculated host integrity check and the reference host integrity check.

### Claim 21 (depends on 20)

The method of claim 20, wherein the reference host integrity check is a host integrity check calculated previously during manufacturing and testing and stored in memory for later retrieval.
