Skip to content

Commit d7e1d18

Browse files
avinash-palletisachinkaushikTonikaReddyTsuryam789sakshijha11
authored
Health and life sciences AI suite (open-edge-platform#1724)
Co-authored-by: Sachin Sharma <sachin.kumar.sharma@intel.com> Co-authored-by: TonikaReddyT <tonika.reddy.t@intel.com> Co-authored-by: Sachin Sharma <mrsachinsharma12@gmail.com> Co-authored-by: suryam789 <suryam.agarwal@intel.com> Co-authored-by: sakshijha11 <jha.sakshi.sanjay@intel.com>
1 parent ee0bcbe commit d7e1d18

File tree

241 files changed

+18345
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+18345
-1
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,6 @@
4242
url = https://github.com/open-edge-platform/edge-ai-suites.git
4343
branch = exp/smart-traffic-adapter
4444
shallow = true
45+
[submodule "health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/mdpnp/mdpnp"]
46+
path = health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/mdpnp/mdpnp
47+
url = https://github.com/mdpnp/mdpnp.git

health-and-life-sciences-ai-suite/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ This suite organizes workflows tailored for healthcare and life sciences, with i
1212

1313
The Multi-Modal Patient Monitoring application demonstrates how multiple AI workloads can run **simultaneously on a single platform**, enabling consolidated patient monitoring.
1414

15-
---
1615

1716
## Disclaimer
1817

1918
This software is provided for **development and evaluation purposes only** and is **not intended for clinical or diagnostic use**.
2019

20+
sazIUkohj azsPOi
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.so
6+
*.pyc
7+
*.pyo
8+
*.pyd
9+
.Python
10+
env/
11+
venv/
12+
*.egg-info/
13+
dist/
14+
build/
15+
16+
# IDE
17+
.vscode/
18+
.idea/
19+
*.swp
20+
*.bak
21+
*.backup
22+
23+
# Generated gRPC code (keep for now, regenerate at build time later)
24+
# Uncomment these when we refactor to shared proto:
25+
# services/*/proto/*_pb2.py
26+
# services/*/proto/*_pb2_grpc.py
27+
# services/*/proto/*_pb2.pyi
28+
29+
# Large data folders and files (auto-downloaded at runtime)
30+
metrics/
31+
models/
32+
videos/
33+
34+
# File-level ignores (in case folders are partially checked in)
35+
models/*.bin
36+
models/*.onnx
37+
models/*.xml
38+
models/*.pth
39+
models/*.hdf5
40+
models/*.h5
41+
videos/*.mp4
42+
videos/*.avi
43+
44+
# Allow DDS native RTI libraries to be tracked
45+
!services/dds-bridge/native/libs/linux/libnddsc.so
46+
!services/dds-bridge/native/libs/linux/libnddscore.so
47+
!services/dds-bridge/native/libs/linux/libnddsjava.so
48+
!services/dds-bridge/native/libs/linux/libnddssecurity.so
49+
50+
# Allow specific model and video files for testing
51+
!services/rppg-service/models/group1-shard1of1.bin
52+
!services/rppg-service/models/*.xml
53+
!services/rppg-service/videos/sample.mp4
54+
55+
# Keep directory structure
56+
!models/.gitkeep
57+
!videos/.gitkeep
58+
!cache/.gitkeep
59+
!logs/.gitkeep
60+
61+
# Runtime files
62+
logs/*.log
63+
cache/*
64+
*.json
65+
!services/ui/package.json
66+
67+
# Testing
68+
.pytest_cache/
69+
.coverage
70+
test_*.sh
71+
verify_*.sh
72+
check_*.sh
73+
scripts/test_*.py
74+
75+
# Temporary files
76+
fix_*.py
77+
*.tmp
78+
# env files
79+
.env
80+
device.env
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Copyright © 2026 Intel Corporation. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
5+
.PHONY: init-mdpnp build-mdpnp build-dds-bridge run down download-rppg-assets
6+
7+
MDPNP_PATH := services/mdpnp/mdpnp
8+
DDS_BRIDGE_PATH := services/dds-bridge
9+
DOCKER_COMPOSE := docker-compose.yaml
10+
REGISTRY ?= true
11+
12+
# Detect host IP for UI/backend communication (first non-loopback address)
13+
HOST_IP ?= $(shell hostname -I | awk '{print $$1}')
14+
export HOST_IP
15+
16+
17+
init-mdpnp:
18+
@echo "Initializing mdpnp submodule..."
19+
git submodule update --init $(MDPNP_PATH)
20+
21+
build-mdpnp: init-mdpnp
22+
@echo "Running mdpnp Gradle makeFlatRuntime..."
23+
cd $(MDPNP_PATH) && ./gradlew :interop-lab:demo-apps:makeFlatRuntime
24+
25+
build-dds-bridge:
26+
@echo "Running dds-bridge build..."
27+
cd $(DDS_BRIDGE_PATH) && ./gradlew clean build
28+
29+
run:
30+
@if [ "$(REGISTRY)" = "true" ]; then \
31+
echo "##############Using registry mode - fetching all images..."; \
32+
echo "Using HOST_IP=$(HOST_IP) for UI backend"; \
33+
docker compose -f $(DOCKER_COMPOSE) --env-file configs/device.env up -d; \
34+
else \
35+
echo "Using HOST_IP=$(HOST_IP) for UI backend"; \
36+
docker compose -f $(DOCKER_COMPOSE) --env-file configs/device.env up --build -d; \
37+
fi
38+
@echo "==============================================="
39+
@echo "Multi-modal patient monitoring application is starting up."
40+
@echo "Please access the UI at: http://$(HOST_IP):3000"
41+
@echo "==============================================="
42+
43+
down:
44+
@echo "Tearing down the services..."
45+
docker compose -f $(DOCKER_COMPOSE) down
46+
47+
download-rppg-assets:
48+
@echo "Downloading RPPG model and sample video assets..."
49+
cd services/rppg-service && python3 scripts/download_assets.py
50+
@echo "RPPG assets download complete."
51+
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
## Initial Application: Multi-Modal Patient Monitoring
2+
3+
The Multi-Modal Patient Monitoring application demonstrates how multiple AI workloads can run **simultaneously on a single platform**, enabling consolidated patient monitoring.
4+
5+
---
6+
7+
## Prerequisites
8+
```
9+
• MDPnP and DDS-Bridge components require Java 17.
10+
11+
• Ensure Java is installed and JAVA_HOME is set correctly.
12+
Example:
13+
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
14+
export PATH=$JAVA_HOME/bin:$PATH
15+
16+
• If you are behind a corporate proxy, configure Gradle:
17+
mkdir -p ~/.gradle
18+
nano ~/.gradle/gradle.properties
19+
20+
Add proxy details in gradle.properties:
21+
systemProp.http.proxyHost=<PROXY_HOST>
22+
systemProp.http.proxyPort=<PROXY_PORT>
23+
systemProp.https.proxyHost=<PROXY_HOST>
24+
systemProp.https.proxyPort=<PROXY_PORT>
25+
```
26+
---
27+
28+
## 🐳 Run Health-AI-Suite Using Pre-Built Images
29+
30+
```
31+
make run
32+
```
33+
---
34+
## 🚀 Run Health-AI-Suite (Local Build)
35+
```
36+
# Initialize MDPnP submodules and dependencies
37+
make init-mdpnp
38+
39+
# Build MDPnP services locally
40+
make build-mdpnp
41+
42+
# Build DDS bridge locally
43+
make build-dds-bridge
44+
45+
# Run the full Health-AI-Suite using locally built images
46+
# Set REGISTRY=false to avoid pulling images from a remote registry
47+
make run REGISTRY=false
48+
49+
# Stop and clean up all running containers
50+
make down
51+
```
52+
---
53+
54+
## Disclaimer
55+
56+
This software is provided for **development and evaluation purposes only** and is **not intended for clinical or diagnostic use**.
57+
58+
sazIUkohj azsPOi
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Default inference devices
2+
# Valid values: CPU | GPU | NPU | AUTO
3+
4+
ECG_DEVICE=GPU
5+
RPPG_DEVICE=GPU
6+
MDPNP_DEVICE=CPU
7+
POSE_3D_DEVICE=GPU

0 commit comments

Comments
 (0)