-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Open
Description
<title>RCM Body Scanner</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #2112C5;
color: #000000;
line-height: 1.6;
padding: 7px;
max-width: 800px;
margin: 0 auto;
}
.container {
background-color: white;
border-radius: 5px;
box-shadow: 0 5px 20px rgba(0, 0, 150, 0.1);
overflow: hidden;
margin-bottom: 20px;
}
header {
background: linear-gradient(to right, #2c6fbb, #4a90e2);
color: white;
padding: 20px;
text-align: center;
}
header h1 {
font-size: 20px;
margin-bottom: 5px;
}
header p {
opacity: 0.9;
font-size: 14px;
}
.logo {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin-bottom: 10px;
}
.logo i {
font-size: 29px;
}
.ai-badge {
display: inline-flex;
align-items: center;
gap: 5px;
background: rgba(255,255,255,0.2);
padding: 4px 12px;
border-radius: 20px;
font-size: 12px;
margin-top: 10px;
}
.tab-container {
display: flex;
background-color: #e6f0ff;
border-bottom: 2px solid #4a90e2;
}
.tab {
flex: 1;
padding: 15px;
text-align: center;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
}
.tab.active {
background-color: #4a90e2;
color: white;
}
.tab-content {
display: none;
padding: 20px;
}
.tab-content.active {
display: block;
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #2c6fbb;
}
input, select {
width: 100%;
padding: 12px 15px;
border: 1px solid #ccc;
border-radius: 8px;
font-size: 16px;
transition: border 0.3s;
}
input:focus, select:focus {
border-color: #4a90e2;
outline: none;
}
.gender-options {
display: flex;
gap: 20px;
margin-top: 10px;
}
.gender-option {
flex: 1;
text-align: center;
padding: 12px;
border: 2px solid #ddd;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s;
}
.gender-option.selected {
border-color: #4a90e2;
background-color: #e6f0ff;
}
.gender-option i {
font-size: 24px;
margin-bottom: 5px;
display: block;
}
.btn {
display: block;
width: 100%;
padding: 15px;
background-color: #4a90e2;
color: white;
border: none;
border-radius: 8px;
font-size: 18px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 20px;
}
.btn:hover {
background-color: #2c6fbb;
}
.btn-share {
background-color: #2ecc71;
margin-top: 10px;
}
.btn-share:hover {
background-color: #27ae60;
}
.btn-madison {
background-color: #e74c3c;
margin-top: 10px;
}
.btn-madison:hover {
background-color: #c0392b;
}
.report-section {
background-color: #f9f9f9;
border-radius: 10px;
padding: 15px;
margin-bottom: 20px;
}
.report-section h3 {
color: #2c6fbb;
margin-bottom: 15px;
padding-bottom: 8px;
border-bottom: 1px solid #ddd;
}
.metric {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
padding: 8px;
background-color: white;
border-radius: 6px;
}
.metric-value {
font-weight: 600;
}
.metric.normal .metric-value {
color: #2ecc71;
}
.metric.warning .metric-value {
color: #e74c3c;
}
.product-list {
display: grid;
grid-template-columns: 1fr;
gap: 15px;
}
.product-card {
background-color: white;
border-radius: 10px;
padding: 15px;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
border-left: 5px solid #4a90e2;
position: relative;
}
.madison-badge {
position: absolute;
top: 10px;
right: 10px;
background: linear-gradient(45deg, #e74c3c, #c0392b);
color: white;
padding: 4px 8px;
border-radius: 12px;
font-size: 10px;
font-weight: 600;
}
.product-card h4 {
color: #2c6fbb;
margin-bottom: 8px;
}
.product-card p {
font-size: 14px;
color: #666;
margin-bottom: 10px;
}
.priority {
display: inline-block;
padding: 3px 8px;
background-color: #ff9900;
color: white;
border-radius: 4px;
font-size: 12px;
font-weight: 600;
margin-top: 5px;
}
.priority.critical {
background-color: #e74c3c;
}
.priority.high {
background-color: #f39c12;
}
.priority.medium {
background-color: #3498db;
}
.priority.low {
background-color: #95a5a6;
}
.deficiency-section {
background-color: #fff3cd;
border-left: 4px solid #ffc107;
padding: 12px;
margin-bottom: 10px;
border-radius: 6px;
}
.footer {
text-align: center;
padding: 20px;
color: #777;
font-size: 14px;
border-top: 1px solid #eee;
margin-top: 20px;
}
.chart-container {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
margin-top: 15px;
}
.chart {
background-color: white;
border-radius: 10px;
padding: 15px;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}
.chart-title {
font-weight: 600;
margin-bottom: 10px;
color: #2c6fbb;
font-size: 14px;
}
.chart-bar {
height: 20px;
background-color: #e6f0ff;
border-radius: 10px;
overflow: hidden;
position: relative;
margin-bottom: 5px;
}
.chart-fill {
height: 100%;
background-color: #4a90e2;
border-radius: 10px;
transition: width 1s ease-in-out;
}
.chart-value {
position: absolute;
right: 10px;
top: 0;
height: 100%;
display: flex;
align-items: center;
font-weight: 600;
font-size: 12px;
color: #333;
}
.chart-info {
font-size: 12px;
color: #666;
text-align: center;
margin-top: 5px;
}
.no-deficiencies {
text-align: center;
padding: 40px;
color: #28a745;
font-size: 18px;
}
.ai-powered {
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 15px;
border-radius: 10px;
margin-bottom: 20px;
text-align: center;
}
@media (max-width: 600px) {
.chart-container {
grid-template-columns: 1fr;
}
.gender-options {
flex-direction: column;
gap: 10px;
}
}
.hidden {
display: none !important;
}
.share-options {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1px;
margin-top: 15px;
}
.share-btn {
background: #f8f9fa;
border: 1px solid #ddd;
border-radius: 8px;
padding: 10px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
cursor: pointer;
transition: all 0.3s;
}
.share-btn:hover {
background: #e9ecef;
transform: translateY(-2px);
}
.share-btn i {
font-size: 0px;
}
.share-btn.whatsapp {
color: #25D366;
}
.share-btn.facebook {
color: #1877F2;
}
.share-btn.telegram {
color: #0088cc;
}
.share-btn.email {
color: #EA4335;
}
.share-btn.print {
color: #4285F4;
}
.share-btn.download {
color: #34A853;
}
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
z-index: 1000;
align-items: center;
justify-content: center;
}
.modal.active {
display: flex;
}
.modal-content {
background: white;
border-radius: 15px;
padding: 25px;
width: 90%;
max-width: 500px;
max-height: 80vh;
overflow-y: auto;
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.modal-header h3 {
color: #2c6fbb;
}
.close-modal {
background: none;
border: none;
font-size: 24px;
cursor: pointer;
color: #666;
}
.report-format {
background: #f8f9fa;
border-radius: 10px;
padding: 15px;
margin-bottom: 15px;
border: 1px solid #ddd;
}
.report-format h4 {
margin-bottom: 10px;
color: #2c6fbb;
}
.format-options {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.format-btn {
padding: 8px 15px;
background: white;
border: 1px solid #4a90e2;
border-radius: 5px;
cursor: pointer;
transition: all 0.3s;
}
.format-btn.active {
background: #4a90e2;
color: white;
}
</style>
RCM Body Scanner Health Report
Powered by Google AI • Real Report Assistance • RCM Health Care Products
<div class="tab-container">
<div class="tab active" data-tab="input">Health Data Input</div>
<div class="tab " data-tab="report">AI Health Report</div>
<div class="tab" data-tab="products">RCM Health Care</div>
<div class="tab" data-tab="share">Share Report</div>
</div>
<!-- Input Tab -->
<div class="tab-content active" id="input">
<div class="ai-powered">
<i class="fas fa-brain"></i> Google AI analyzes your body composition data in real-time
</div>
<form id="health-form">
<div class="form-group">
<label for="name">Full Name</label>
<input type="text" id="name" placeholder="Enter your full name" required>
</div>
<div class="form-group">
<label>Gender</label>
<div class="gender-options">
<div class="gender-option selected" data-gender="male">
<i class="fas fa-male"></i>
<div>Male</div>
</div>
<div class="gender-option" data-gender="female">
<i class="fas fa-female"></i>
<div>Female</div>
</div>
</div>
<input type="hidden" id="gender" value="male" required>
</div>
<div class="form-group">
<label for="age">Age (Years)</label>
<input type="number" id="age" min="1" max="120" placeholder="Enter your age" required>
</div>
<div class="form-group">
<label for="height">Height (cm)</label>
<input type="number" id="height" min="50" max="250" placeholder="Height in centimeters" required>
</div>
<div class="form-group">
<label for="weight">Weight (kg)</label>
<input type="number" id="weight" min="10" max="300" step="0.1" placeholder="Weight in kilograms" required>
</div>
<div class="form-group">
<label for="body-fat">Body Fat Percentage (%)</label>
<input type="number" id="body-fat" min="1" max="60" step="0.1" placeholder="Body fat percentage" required>
</div>
<div class="form-group">
<label for="water">Water Percentage (%)</label>
<input type="number" id="water" min="20" max="80" step="0.1" placeholder="Body water percentage" required>
</div>
<div class="form-group">
<label for="muscle-mass">Muscle Mass (kg)</label>
<input type="number" id="muscle-mass" min="10" max="150" step="0.1" placeholder="Muscle mass in kg" required>
</div>
<div class="form-group">
<label for="bone-mass">Bone Mass (kg)</label>
<input type="number" id="bone-mass" min="0.5" max="20" step="0.1" placeholder="Bone mass in kg" required>
</div>
<div class="form-group">
<label for="visceral-fat">Visceral Fat Level</label>
<input type="number" id="visceral-fat" min="1" max="30" placeholder="Visceral fat level (1-30)" required>
</div>
<div class="form-group">
<label for="bmr">BMR (Basal Metabolic Rate)</label>
<input type="number" id="bmr" min="500" max="5000" placeholder="Calories per day" required>
</div>
<div class="form-group">
<label for="metabolic-age">Metabolic Age</label>
<input type="number" id="metabolic-age" min="10" max="120" placeholder="Metabolic age in years" required>
</div>
<div class="form-group">
<label for="smr">Skeletal Muscle Ratio (%)</label>
<input type="number" id="smr" min="10" max="60" step="0.1" placeholder="Skeletal muscle ratio" required>
</div>
<button type="submit" class="btn">
<i class="fas fa-magic"></i> Generate AI Health Report
</button>
</form>
</div>
<!-- Report Tab -->
<div class="tab-content" id="report">
<div class="ai-powered">
<i class="fas fa-chart-line"></i> Google AI Real Report Assistance - Comprehensive Analysis
</div>
<div class="report-section">
<h3>Personal Information</h3>
<div class="metric">
<span>Name:</span>
<span class="metric-value" id="report-name">-</span>
</div>
<div class="metric">
<span>Gender:</span>
<span class="metric-value" id="report-gender">-</span>
</div>
<div class="metric">
<span>Age:</span>
<span class="metric-value" id="report-age">-</span>
</div>
</div>
<div class="report-section">
<h3>AI Body Scanner Analysis</h3>
<div class="chart-container" id="chart-container">
<!-- Charts will be generated here -->
</div>
</div>
<button class="btn btn-share" id="share-report-btn">
<i class="fas fa-share-alt"></i> SHARE AI REPORT
</button>
</div>
<!-- Products Tab -->
<div class="tab-content" id="products">
<div class="ai-powered">
<i class="fas fa-capsules"></i> Nutricharge Health Care Products - AI Selected Recommendations
</div>
<div class="report-section">
<h3>Nutricharge Personalized Recommendations</h3>
<p id="products-subtitle">AI-powered supplement selection from Nutricharge Health Care Products:</p>
</div>
<div class="product-list" id="product-recommendations">
<!-- Product cards will be generated here -->
</div>
<button class="btn btn-madison" id="order-btn">
<i class="fas fa-shopping-cart"></i> Order Nutricharge Products
</button>
<button class="btn btn-share" id="share-products-btn">
<i class="fas fa-share-alt"></i> Share Recommendations
</button>
</div>
<!-- Share Tab -->
<div class="tab-content" id="share">
<div class="ai-powered">
<i class="fas fa-share-square"></i> Share Your Health Report
</div>
<div class="report-section">
<h3>Share Complete Report</h3>
<p>Share your complete health analysis and product recommendations:</p>
<div class="share-options">
<div class="share-btn whatsapp" data-share="whatsapp">
<i class="fab fa-whatsapp"></i>
<span>WhatsApp</span>
</div>
<div class="share-btn facebook" data-share="facebook">
<i class="fab fa-facebook"></i>
<span>Facebook</span>
</div>
<div class="share-btn telegram" data-share="telegram">
<i class="fab fa-telegram"></i>
<span>Telegram</span>
</div>
<div class="share-btn email" data-share="email">
<i class="fas fa-envelope"></i>
<span>Email</span>
</div>
<div class="share-btn print" data-share="print">
<i class="fas fa-print"></i>
<span>Print</span>
</div>
<div class="share-btn download" data-share="download">
<i class="fas fa-download"></i>
<span>Download</span>
</div>
</div>
</div>
<div class="report-section">
<h3>Advanced Sharing Options</h3>
<div class="format-options">
<button class="format-btn " data-format="summary">Summary Report</button>
<button class="format-btn active" data-format="detailed">Detailed Report</button>
<button class="format-btn" data-format="products">Product Recommendations</button>
<button class="format-btn" data-format="all">Complete Package</button>
</div>
<div class="report-format">
<h4>Generate Shareable Link</h4>
<div class="form-group">
<input type="text" id="share-link" readonly placeholder="Your shareable link will appear here">
</div>
<button class="btn" id="generate-link-btn">
<i class="fas fa-link"></i> Generate Share Link
</button>
</div>
<div class="report-format">
<h4>Export Report</h4>
<p>Export your health report in different formats:</p>
<div class="share-options">
<div class="share-btn" data-export="pdf">
<i class="fas fa-file-pdf"></i>
<span>PDF</span>
</div>
<div class="share-btn" data-export="image">
<i class="fas fa-image"></i>
<span>Image</span>
</div>
<div class="share-btn" data-export="excel">
<i class="fas fa-file-excel"></i>
<span>Excel</span>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<p>Powered by Google AI • Real Report Assistance • rcm<strong> <a href="https://www.rcmworld.com/" > OPEN RCM APP </a> </strong></p>
<p>© 2026 RCM Health Solutions. All rights reserved. Consult healthcare professional.</p>
</div>
</div>
<!-- Share Modal -->
<div class="modal" id="share-modal">
<div class="modal-content">
<div class="modal-header">
<h3>Share Report</h3>
<button class="close-modal" id="close-modal">×</button>
</div>
<div id="modal-content">
<!-- Dynamic content will be loaded here -->
</div>
</div>
</div>
<script>
// Database Structure (Using your SQL data)
const database = {
products: [
{ product_id: 1, product_name: 'Nutricharge BJ' },
{ product_id: 2, product_name: 'Nutricharge Man' },
{ product_id: 3, product_name: 'Nutricharge Woman' },
{ product_id: 4, product_name: 'Health Guard (Gamma Oryzanol)' },
{ product_id: 5, product_name: 'Nutricharge S5' },
{ product_id: 6, product_name: 'Nutricharge BioAge' },
{ product_id: 7, product_name: 'Nutricharge Veg Omega' },
{ product_id: 8, product_name: 'Nutricharge DHA 200' },
{ product_id: 9, product_name: 'Nutricharge Glycem' },
{ product_id: 10, product_name: 'Nutricharge View' },
{ product_id: 11, product_name: 'Nutricharge ProDiet Shake Coffee Hazelnut' },
{ product_id: 12, product_name: 'Nutricharge Slim & Fit' },
{ product_id: 13, product_name: 'Nutricharge Kids Nutrition' },
{ product_id: 14, product_name: 'Nutricharge All Pro Plant Protein' },
{ product_id: 15, product_name: 'Nutricharge Kesar Pista ProDiet' },
{ product_id: 16, product_name: 'Nutricharge Cocoa ProDiet' },
{ product_id: 17, product_name: 'Nutricharge Strawberry ProDiet' },
{ product_id: 18, product_name: 'Nutricharge Gainer' },
{ product_id: 19, product_name: 'Giloy Tulsi Navras Trikara' },
{ product_id: 20, product_name: 'Nutricharge Immunity Plus' }
],
health_categories: [
{ category_id: 1, category_name: 'Immunity' },
{ category_id: 2, category_name: 'Iron Supplement for Women' },
{ category_id: 3, category_name: 'Brain Health' },
{ category_id: 4, category_name: 'Eye Health' },
{ category_id: 5, category_name: 'Skin & Beauty' },
{ category_id: 6, category_name: 'Heart Health' },
{ category_id: 7, category_name: 'High Blood Sugar' },
{ category_id: 8, category_name: 'Liver & Gut Health' },
{ category_id: 9, category_name: 'Bone & Joint Health' },
{ category_id: 10, category_name: 'Weight Management' },
{ category_id: 11, category_name: 'Weight Gain' },
{ category_id: 12, category_name: 'Digestion & Detoxification' },
{ category_id: 13, category_name: 'Men Health' },
{ category_id: 14, category_name: 'Kids Nutrition' }
],
product_category_map: [
{ map_id: 1, product_id: 5, category_id: 1 },
{ map_id: 2, product_id: 20, category_id: 1 },
{ map_id: 3, product_id: 19, category_id: 1 },
{ map_id: 4, product_id: 3, category_id: 2 },
{ map_id: 5, product_id: 8, category_id: 3 },
{ map_id: 6, product_id: 14, category_id: 3 },
{ map_id: 7, product_id: 10, category_id: 4 },
{ map_id: 8, product_id: 5, category_id: 5 },
{ map_id: 9, product_id: 7, category_id: 5 },
{ map_id: 10, product_id: 7, category_id: 6 },
{ map_id: 11, product_id: 4, category_id: 6 },
{ map_id: 12, product_id: 9, category_id: 7 },
{ map_id: 13, product_id: 6, category_id: 8 },
{ map_id: 14, product_id: 1, category_id: 9 },
{ map_id: 15, product_id: 12, category_id: 10 },
{ map_id: 16, product_id: 11, category_id: 10 },
{ map_id: 17, product_id: 15, category_id: 10 },
{ map_id: 18, product_id: 16, category_id: 10 },
{ map_id: 19, product_id: 17, category_id: 10 },
{ map_id: 20, product_id: 18, category_id: 11 },
{ map_id: 21, product_id: 6, category_id: 12 },
{ map_id: 22, product_id: 2, category_id: 13 },
{ map_id: 23, product_id: 13, category_id: 14 }
]
};
// Extended product information
const productDetails = {
1: { description: "Premium bone & joint support formula", priority: 'high' },
2: { description: "Advanced men's health & vitality formula", priority: 'medium', gender: "male" },
3: { description: "Premium women's health formula", priority: 'medium', gender: "female" },
4: { description: "Premium antioxidant & stress defense - GAMMA ORYZANOL", priority: 'high' },
5: { description: "Elite stress relief & hydration support", priority: 'medium' },
6: { description: "AI-recommended metabolic optimizer", priority: 'high' },
7: { description: "Plant-based heart health essential", priority: 'medium' },
8: { description: "High-potency brain & cognitive support", priority: 'medium' },
9: { description: "Blood sugar management & glycemic control", priority: 'critical' },
10: { description: "Advanced eye health & vision support", priority: 'medium' },
11: { description: "Premium weight management shake - Coffee Hazelnut flavor", priority: 'critical' },
12: { description: "Advanced fat burning & metabolism booster", priority: 'critical' },
13: { description: "Complete nutrition for children's growth", priority: 'medium' },
14: { description: "Elite plant protein for muscle growth & recovery", priority: 'high' },
15: { description: "Weight management shake - Kesar Pista flavor", priority: 'critical' },
16: { description: "Weight management shake - Cocoa flavor", priority: 'critical' },
17: { description: "Weight management shake - Strawberry flavor", priority: 'critical' },
18: { description: "Mass gainer for healthy weight gain", priority: 'high' },
19: { description: "Traditional immunity booster with 9 herbs", priority: 'medium' },
20: { description: "Advanced immunity support with vitamins & minerals", priority: 'medium' }
};
// DOM elements
const tabs = document.querySelectorAll('.tab');
const tabContents = document.querySelectorAll('.tab-content');
const genderOptions = document.querySelectorAll('.gender-option');
const healthForm = document.getElementById('health-form');
const genderInput = document.getElementById('gender');
const shareModal = document.getElementById('share-modal');
const closeModal = document.getElementById('close-modal');
let reportData = null;
let deficiencies = [];
let recommendedProducts = [];
// Tab switching
tabs.forEach(tab => {
tab.addEventListener('click', () => {
const tabId = tab.getAttribute('data-tab');
tabs.forEach(t => t.classList.remove('active'));
tab.classList.add('active');
tabContents.forEach(content => {
content.classList.remove('active');
if (content.id === tabId) {
content.classList.add('active');
}
});
});
});
// Gender selection
genderOptions.forEach(option => {
option.addEventListener('click', () => {
genderOptions.forEach(opt => opt.classList.remove('selected'));
option.classList.add('selected');
genderInput.value = option.getAttribute('data-gender');
});
});
// Form submission
healthForm.addEventListener('submit', function(e) {
e.preventDefault();
if (!genderInput.value) {
alert('Please select your gender');
return;
}
// Get form values
reportData = {
name: document.getElementById('name').value || 'User',
gender: genderInput.value,
age: parseInt(document.getElementById('age').value) || 30,
height: parseInt(document.getElementById('height').value) || 170,
weight: parseFloat(document.getElementById('weight').value) || 70,
bodyFat: parseFloat(document.getElementById('body-fat').value) || 22,
water: parseFloat(document.getElementById('water').value) || 60,
muscleMass: parseFloat(document.getElementById('muscle-mass').value) || 35,
boneMass: parseFloat(document.getElementById('bone-mass').value) || 3.2,
visceralFat: parseInt(document.getElementById('visceral-fat').value) || 5,
bmr: parseInt(document.getElementById('bmr').value) || 1800,
metabolicAge: parseInt(document.getElementById('metabolic-age').value) || 35,
smr: parseFloat(document.getElementById('smr').value) || 42
};
// Calculate BMI
const heightM = reportData.height / 100;
reportData.bmi = (reportData.weight / (heightM * heightM)).toFixed(1);
// Analyze deficiencies
analyzeDeficiencies();
// Update report tab
document.getElementById('report-name').textContent = reportData.name;
document.getElementById('report-gender').textContent = reportData.gender === 'male' ? 'Male' : 'Female';
document.getElementById('report-age').textContent = reportData.age + ' years';
// Update charts
generateCharts();
// Generate product recommendations
generateProductRecommendations();
// Switch to report tab
document.querySelector('[data-tab="report"]').click();
});
// Deficiency Analysis
function analyzeDeficiencies() {
deficiencies = [];
const idealWeightMin = (reportData.height - 100) - 3;
const idealWeightMax = (reportData.height - 100) + 3;
// Weight-related deficiencies
if (reportData.weight < idealWeightMin) deficiencies.push('weight-low');
if (reportData.weight > idealWeightMax) deficiencies.push('weight-high');
// BMI deficiencies
if (parseFloat(reportData.bmi) < 18.5) deficiencies.push('bmi-low');
if (parseFloat(reportData.bmi) > 25) {
deficiencies.push('bmi-high');
deficiencies.push('weight-loss');
}
// Body fat deficiencies
const idealFat = reportData.gender === 'male' ? 20 : 25;
if (reportData.bodyFat > idealFat) deficiencies.push('fat-high');
// Hydration deficiency
if (reportData.water < 55) deficiencies.push('water-low');
// Muscle mass deficiency
const idealMusclePercentage = reportData.gender === 'male' ? 0.45 : 0.36;
const currentMusclePercentage = reportData.muscleMass / reportData.weight;
if (currentMusclePercentage < idealMusclePercentage) {
deficiencies.push('muscle-low');
}
// Bone mass deficiency
if (reportData.boneMass < 3) deficiencies.push('bone-low');
// Visceral fat deficiency
if (reportData.visceralFat > 3) deficiencies.push('visceral-high');
// BMR deficiency
const idealBmrMin = reportData.gender === 'male' ? 1700 : 1500;
if (reportData.bmr < idealBmrMin) deficiencies.push('bmr-low');
// Metabolic age deficiency
if (reportData.metabolicAge > reportData.age) {
deficiencies.push('metabolic-age');
}
// Age-related deficiencies
if (reportData.age > 40) {
deficiencies.push('age-40plus');
}
return deficiencies;
}
// Generate Charts
function generateCharts() {
const chartContainer = document.getElementById('chart-container');
chartContainer.innerHTML = '';
const charts = [
{
id: 'weight',
title: 'Weight / वजन',
value: reportData.weight,
min: (reportData.height - 100) - 3,
max: (reportData.height - 100) + 3,
unit: 'kg',
info: 'Height in Cms -100 ±3 Kg'
},
{
id: 'bmi',
title: 'BMI / बॉडी मास इंडेक्स',
value: parseFloat(reportData.bmi),
min: 18.5,
max: 25,
unit: '',
info: 'Normal: 20-25'
},
{
id: 'fat',
title: 'Body Fat % / शारीरिक वसा %',
value: reportData.bodyFat,
min: 0,
max: reportData.gender === 'male' ? 20 : 25,
unit: '%',
info: reportData.gender === 'male' ? 'Male: 20% or less' : 'Female: 25% or less'
},
{
id: 'water',
title: 'Water % / शारीरिक जल%',
value: reportData.water,
min: 55,
max: 80,
unit: '%',
info: 'Normal: 55% or more'
},
{
id: 'muscle',
title: 'Muscle Mass / मांसपेशियों का वजन',
value: reportData.muscleMass,
min: 0,
max: reportData.weight * 0.45,
unit: 'kg',
info: ''
},
{
id: 'bone',
title: 'Bone Mass / हड्डी का वजन',
value: reportData.boneMass,
min: 3,
max: 5,
unit: 'kg',
info: 'Normal: 3 KG or More'
},
{
id: 'visceral',
title: 'Visceral Fat / विसरल वसा',
value: reportData.visceralFat,
min: 1,
max: 3,
unit: '',
info: 'Normal: 3 Or Less'
},
{
id: 'bmr',
title: 'BMR / शारीरिक चयापचय दर',
value: reportData.bmr,
min: reportData.gender === 'male' ? 1700 : 1500,
max: reportData.gender === 'male' ? 2000 : 1800,
unit: 'cal',
info: reportData.gender === 'male' ? 'Male: 1700-2000 Calories' : 'Female: 1500-1800 Calories'
},
{
id: 'metabolic-age',
title: 'Metabolic Age / मेटाबोलिक उम्र',
value: reportData.metabolicAge,
min: 0,
max: reportData.age,
unit: 'years',
info: 'Should be same or less than physical age'
},
{
id: 'smr',
title: 'SMR / स्केलेटल मसल रेशियो',
value: reportData.smr,
min: reportData.gender === 'male' ? 45 : 36,
max: 60,
unit: '%',
info: reportData.gender === 'male' ? 'Male: 45% or more' : 'Female: 36% or more'
}
];
charts.forEach(chart => {
const percentage = Math.min(100, Math.max(0, ((chart.value - chart.min) / (chart.max - chart.min)) * 100));
const color = chart.value >= chart.min && chart.value <= chart.max ? '#2ecc71' :
chart.value < chart.min ? '#3498db' : '#e74c3c';
const chartElement = document.createElement('div');
chartElement.className = 'chart';
chartElement.innerHTML = `
<div class="chart-title">${chart.title}</div>
<div class="chart-bar">
<div class="chart-fill" style="width: ${percentage}%; background-color: ${color};"></div>
<div class="chart-value">${chart.value.toFixed(1)}${chart.unit}</div>
</div>
<div class="chart-info">${chart.info}</div>
`;
chartContainer.appendChild(chartElement);
});
}
// Generate Product Recommendations
function generateProductRecommendations() {
const productContainer = document.getElementById('product-recommendations');
const subtitle = document.getElementById('products-subtitle');
productContainer.innerHTML = '';
recommendedProducts = [];
// Map deficiencies to health categories
const deficiencyToCategory = {
'weight-low': [11], // Weight Gain
'weight-high': [10], // Weight Management
'bmi-low': [11], // Weight Gain
'bmi-high': [10], // Weight Management
'fat-high': [10], // Weight Management
'water-low': [1, 5, 12], // Immunity, Skin & Beauty, Digestion & Detoxification
'muscle-low': [2, 14], // Men Health, Plant Protein
'bone-low': [9], // Bone & Joint Health
'visceral-high': [10], // Weight Management
'bmr-low': [7, 10], // High Blood Sugar, Weight Management
'metabolic-age': [6, 8], // Heart Health, Liver & Gut Health
'age-40plus': [1, 3, 4, 6, 9] // Immunity, Brain, Eye, Heart, Bone & Joint
};
// Get relevant categories based on deficiencies
const relevantCategories = new Set();
deficiencies.forEach(def => {
if (deficiencyToCategory[def]) {
deficiencyToCategory[def].forEach(cat => relevantCategories.add(cat));
}
});
// Add gender-specific categories
if (reportData.gender === 'male') relevantCategories.add(13);
if (reportData.gender === 'female') relevantCategories.add(2);
// If no specific deficiencies, recommend general health products
if (relevantCategories.size === 0) {
relevantCategories.add(1); // Immunity
relevantCategories.add(12); // Digestion & Detoxification
}
// Get products for relevant categories
const categoryArray = Array.from(relevantCategories);
const productScores = {};
categoryArray.forEach(categoryId => {
const productMappings = database.product_category_map.filter(m => m.category_id === categoryId);
productMappings.forEach(mapping => {
const product = database.products.find(p => p.product_id === mapping.product_id);
if (product) {
if (!productScores[product.product_id]) {
productScores[product.product_id] = {
product: product,
score: 0,
categories: new Set()
};
}
productScores[product.product_id].score += 10;
productScores[product.product_id].categories.add(categoryId);
}
});
});
// Sort by score
const sortedProducts = Object.values(productScores)
.filter(item => {
const details = productDetails[item.product.product_id];
// Agar product Male ya Female ke liye hai
if (details && details.gender) {
return details.gender === reportData.gender;
}
// Jo product common hai (gender nahi likha)
return true;
})
.sort((a, b) => b.score - a.score);
// Select top products
const topProducts = sortedProducts.slice(0, 6);
// Update subtitle
const defCount = deficiencies.length;
if (defCount === 0) {
subtitle.textContent = "Excellent Health! Nutricharge Maintenance Program:";
} else if (defCount <= 3) {
subtitle.textContent = `Good Health! Nutricharge Optimization (${defCount} areas to improve):`;
} else {
subtitle.textContent = `Priority Health Support! Nutricharge Program (${defCount} areas to address):`;
}
// Generate product cards
topProducts.forEach((item, index) => {
const product = item.product;
const details = productDetails[product.product_id] || {};
const categories = Array.from(item.categories).map(catId =>
database.health_categories.find(c => c.category_id === catId)?.category_name || ''
).filter(Boolean);
const priorityClass = `priority ${details.priority || 'medium'}`;
const productCard = document.createElement('div');
productCard.className = 'product-card';
productCard.innerHTML = `
<div class="madison-badge">NUTRICHARGE</div>
<h4>${product.product_name}</h4>
<p>${details.description || 'Health supplement'}</p>
<div class="deficiency-tags">Benefits: ${categories.join(', ')}</div>
<div class="${priorityClass}">${(details.priority || 'medium').toUpperCase()} PRIORITY • Score: ${item.score}</div>
`;
productContainer.appendChild(productCard);
recommendedProducts.push({
name: product.product_name,
description: details.description,
categories: categories,
priority: details.priority
});
});
}
// Share functionality
document.getElementById('share-report-btn').addEventListener('click', () => {
document.querySelector('[data-tab="share"]').click();
});
document.getElementById('share-products-btn').addEventListener('click', () => {
showShareModal('products');
});
document.getElementById('order-btn').addEventListener('click', () => {
window.open('https://www.nutricharge.in', '_blank');
});
// Share options
document.querySelectorAll('.share-btn').forEach(btn => {
btn.addEventListener('click', function() {
const platform = this.getAttribute('data-share');
const exportType = this.getAttribute('data-export');
if (exportType) {
handleExport(exportType);
} else {
shareReport(platform);
}
});
});
// Format options
document.querySelectorAll('.format-btn').forEach(btn => {
btn.addEventListener('click', function() {
document.querySelectorAll('.format-btn').forEach(b => b.classList.remove('active'));
this.classList.add('active');
});
});
// Generate share link
document.getElementById('generate-link-btn').addEventListener('click', generateShareLink);
// Close modal
closeModal.addEventListener('click', () => {
shareModal.classList.remove('active');
});
// Share functions
function showShareModal(type) {
const modalContent = document.getElementById('modal-content');
let content = '';
if (type === 'products') {
content = `
<h4>Share Product Recommendations</h4>
<p>Share these personalized Nutricharge recommendations:</p>
<div class="product-list">
${recommendedProducts.map((product, index) => `
<div class="product-card">
<h5>${product.name}</h5>
<p>${product.description}</p>
<small>Categories: ${product.categories.join(', ')}</small>
</div>
`).join('')}
</div>
<div class="share-options" style="margin-top: 20px;">
<div class="share-btn whatsapp" onclick="shareProducts('whatsapp')">
<i class="fab fa-whatsapp"></i> WhatsApp
</div>
<div class="share-btn email" onclick="shareProducts('email')">
<i class="fas fa-envelope"></i> Email
</div>
</div>
`;
}
modalContent.innerHTML = content;
shareModal.classList.add('active');
}
function shareReport(platform) {
if (!reportData) {
alert('Please generate a report first');
return;
}
const format = document.querySelector('.format-btn.active').getAttribute('data-format');
let message = '';
switch(format) {
case 'summary':
message = `Health Report Summary for ${reportData.name}:\n`;
message += `Age: ${reportData.age}, Gender: ${reportData.gender}\n`;
message += `BMI: ${reportData.bmi}, Body Fat: ${reportData.bodyFat}%\n`;
message += `Metabolic Age: ${reportData.metabolicAge}\n`;
message += `Deficiencies: ${deficiencies.length} areas identified`;
break;
case 'detailed':
message = `Detailed Health Report - ${reportData.name}\n\n`;
message += `Personal Information:\n`;
message += `- Age: ${reportData.age} years\n`;
message += `- Gender: ${reportData.gender}\n`;
message += `- Height: ${reportData.height} cm\n`;
message += `- Weight: ${reportData.weight} kg\n\n`;
message += `Body Composition:\n`;
message += `- BMI: ${reportData.bmi}\n`;
message += `- Body Fat: ${reportData.bodyFat}%\n`;
message += `- Muscle Mass: ${reportData.muscleMass} kg\n`;
message += `- Bone Mass: ${reportData.boneMass} kg\n`;
message += `- Water: ${reportData.water}%\n`;
message += `- Visceral Fat: ${reportData.visceralFat}\n`;
message += `- BMR: ${reportData.bmr} cal\n`;
message += `- Metabolic Age: ${reportData.metabolicAge}\n`;
message += `- SMR: ${reportData.smr}%\n\n`;
message += `Health Areas to Improve: ${deficiencies.join(', ')}`;
break;
case 'products':
message = `Nutricharge Product Recommendations for ${reportData.name}:\n\n`;
recommendedProducts.forEach((product, index) => {
message += `${index + 1}. ${product.name}\n`;
message += ` ${product.description}\n`;
message += ` Categories: ${product.categories.join(', ')}\n\n`;
});
break;
case 'all':
message = `Complete Health Package - ${reportData.name}\n\n`;
message += `Health Summary:\n`;
message += `BMI: ${reportData.bmi}, Metabolic Age: ${reportData.metabolicAge}\n`;
message += `Key Areas: ${deficiencies.slice(0, 3).join(', ')}\n\n`;
message += `Recommended Products:\n`;
recommendedProducts.slice(0, 3).forEach((product, index) => {
message += `${index + 1}. ${product.name}\n`;
});
message += `\nView full report: ${generateReportLink()}`;
break;
}
switch(platform) {
case 'whatsapp':
window.open(`https://wa.me/?text=${encodeURIComponent(message)}`, '_blank');
break;
case 'facebook':
window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(generateReportLink())}"e=${encodeURIComponent(message)}`, '_blank');
break;
case 'telegram':
window.open(`https://t.me/share/url?url=${encodeURIComponent(generateReportLink())}&text=${encodeURIComponent(message)}`, '_blank');
break;
case 'email':
window.open(`mailto:?subject=Health Report - ${reportData.name}&body=${encodeURIComponent(message)}`);
break;
case 'print':
window.print();
break;
case 'download':
downloadReport();
break;
}
}
function generateShareLink() {
if (!reportData) {
alert('Please generate a report first');
return;
}
// Create a unique ID for the report
const reportId = 'report_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
// In a real application, you would save the report data to a database
// and generate a link to retrieve it
const link = `https://rcmhealth.com/report/${reportId}`;
document.getElementById('share-link').value = link;
// Copy to clipboard
navigator.clipboard.writeText(link).then(() => {
alert('Shareable link copied to clipboard!');
});
}
function generateReportLink() {
return window.location.href + '#report=' + btoa(JSON.stringify({
name: reportData.name,
timestamp: Date.now()
}));
}
function handleExport(type) {
if (!reportData) {
alert('Please generate a report first');
return;
}
switch(type) {
case 'pdf':
alert('PDF export would be generated here. In production, this would create a downloadable PDF.');
break;
case 'image':
alert('Image export would be generated here. In production, this would create a downloadable image.');
break;
case 'excel':
alert('Excel export would be generated here. In production, this would create a downloadable Excel file.');
break;
}
}
function downloadReport() {
if (!reportData) {
alert('Please generate a report first');
return;
}
const report = {
title: 'RCM Body Scanner Health Report',
date: new Date().toISOString(),
personalInfo: {
name: reportData.name,
gender: reportData.gender,
age: reportData.age
},
bodyComposition: {
height: reportData.height,
weight: reportData.weight,
bmi: reportData.bmi,
bodyFat: reportData.bodyFat,
muscleMass: reportData.muscleMass,
boneMass: reportData.boneMass,
water: reportData.water,
visceralFat: reportData.visceralFat,
bmr: reportData.bmr,
metabolicAge: reportData.metabolicAge,
smr: reportData.smr
},
deficiencies: deficiencies,
recommendations: recommendedProducts
};
const dataStr = JSON.stringify(report, null, 2);
const dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr);
const exportFileDefaultName = `rcm-health-report-${reportData.name}-${Date.now()}.json`;
const linkElement = document.createElement('a');
linkElement.setAttribute('href', dataUri);
linkElement.setAttribute('download', exportFileDefaultName);
linkElement.click();
}
// Global functions for modal
window.shareProducts = function(platform) {
let message = `Nutricharge Product Recommendations for ${reportData.name}:\n\n`;
recommendedProducts.forEach((product, index) => {
message += `${index + 1}. ${product.name}\n`;
message += ` ${product.description}\n\n`;
});
if (platform === 'whatsapp') {
window.open(`https://wa.me/?text=${encodeURIComponent(message)}`, '_blank');
} else if (platform === 'email') {
window.open(`mailto:?subject=Nutricharge Recommendations&body=${encodeURIComponent(message)}`);
}
shareModal.classList.remove('active');
};
console.log('RCM Body Scanner loaded with complete sharing features');
</script>
Metadata
Metadata
Assignees
Labels
No labels