app info modified
This commit is contained in:
parent
b6f4c8f5df
commit
9d7ebbcb3a
@ -11,11 +11,8 @@ import {
|
|||||||
Text,
|
Text,
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
Image,
|
|
||||||
Linking,
|
|
||||||
TouchableOpacity,
|
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import { theme } from '../../../theme/theme';
|
import { theme } from '../../../theme/theme';
|
||||||
import { SettingsHeader } from '../components/SettingsHeader';
|
import { SettingsHeader } from '../components/SettingsHeader';
|
||||||
import { CustomModal } from '../../../shared/components';
|
import { CustomModal } from '../../../shared/components';
|
||||||
@ -59,75 +56,32 @@ export const AppInfoScreen: React.FC<AppInfoScreenProps> = ({
|
|||||||
buildNumber: '2025.08.001',
|
buildNumber: '2025.08.001',
|
||||||
releaseDate: 'August 2025',
|
releaseDate: 'August 2025',
|
||||||
developer: 'Tech4Biz Solutions',
|
developer: 'Tech4Biz Solutions',
|
||||||
copyright: '© 2024 Spurrin Innovations. All rights reserved.',
|
copyright: '© 2025 Spurrin Innovations. All rights reserved.',
|
||||||
};
|
};
|
||||||
|
|
||||||
// App features and description
|
// App features and description
|
||||||
const appDescription = {
|
const appDescription = {
|
||||||
title: 'Emergency Radiology Physician App',
|
title: 'AI-Powered Medical Imaging Radiologist App',
|
||||||
description: 'Advanced medical imaging and patient management platform designed specifically for emergency room physicians. Provides real-time access to critical patient scans, AI-powered diagnostic assistance, and streamlined clinical workflows.',
|
description: 'Comprehensive medical imaging and patient management platform designed specifically for radiologists. Provides access to AI-powered diagnostic predictions, DICOM image viewing with Cornerstone.js integration, and streamlined clinical workflows for reviewing radiologist feedback.',
|
||||||
features: [
|
features: [
|
||||||
'Real-time patient monitoring',
|
'AI-powered diagnostic predictions with confidence scores',
|
||||||
'AI-powered diagnostic assistance',
|
'DICOM image viewer with Cornerstone.js integration',
|
||||||
'Emergency alert system',
|
'Radiologist feedback review system',
|
||||||
'Secure patient data management',
|
'Patient case management and tracking',
|
||||||
'Mobile-optimized interface',
|
'Hospital integration and user management',
|
||||||
'Hospital system integration',
|
'Mobile-optimized interface for clinical use',
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
// Legal and support information
|
|
||||||
const legalInfo = {
|
|
||||||
privacyPolicy: 'https://neoscan.com/privacy',
|
|
||||||
termsOfService: 'https://neoscan.com/terms',
|
|
||||||
supportEmail: 'support@neoscan.com',
|
|
||||||
supportPhone: '+1-800-NEOSCAN',
|
|
||||||
website: 'https://neoscan.com',
|
|
||||||
};
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// EVENT HANDLERS
|
// EVENT HANDLERS
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
/**
|
|
||||||
* handleExternalLink Function
|
|
||||||
*
|
|
||||||
* Purpose: Handle opening external links in browser
|
|
||||||
*
|
|
||||||
* @param url - URL to open
|
|
||||||
*/
|
|
||||||
const handleExternalLink = async (url: string) => {
|
|
||||||
try {
|
|
||||||
const supported = await Linking.canOpenURL(url);
|
|
||||||
if (supported) {
|
|
||||||
await Linking.openURL(url);
|
|
||||||
} else {
|
|
||||||
console.log("Can't open URL:", url);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error opening URL:', error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* handleEmailSupport Function
|
|
||||||
*
|
|
||||||
* Purpose: Handle opening email client for support
|
|
||||||
*/
|
|
||||||
const handleEmailSupport = () => {
|
|
||||||
const emailUrl = `mailto:${legalInfo.supportEmail}?subject=NeoScan Physician App Support`;
|
|
||||||
handleExternalLink(emailUrl);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* handlePhoneSupport Function
|
|
||||||
*
|
|
||||||
* Purpose: Handle opening phone dialer for support
|
|
||||||
*/
|
|
||||||
const handlePhoneSupport = () => {
|
|
||||||
const phoneUrl = `tel:${legalInfo.supportPhone}`;
|
|
||||||
handleExternalLink(phoneUrl);
|
|
||||||
};
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// MAIN RENDER
|
// MAIN RENDER
|
||||||
@ -201,60 +155,7 @@ export const AppInfoScreen: React.FC<AppInfoScreenProps> = ({
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
{/* Support and contact section */}
|
|
||||||
<View style={styles.infoSection}>
|
|
||||||
<Text style={styles.sectionTitle}>Support & Contact</Text>
|
|
||||||
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.contactItem}
|
|
||||||
onPress={handleEmailSupport}
|
|
||||||
activeOpacity={0.7}
|
|
||||||
>
|
|
||||||
<Text style={styles.contactLabel}>Email Support:</Text>
|
|
||||||
<Text style={styles.contactValue}>{legalInfo.supportEmail}</Text>
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.contactItem}
|
|
||||||
onPress={handlePhoneSupport}
|
|
||||||
activeOpacity={0.7}
|
|
||||||
>
|
|
||||||
<Text style={styles.contactLabel}>Phone Support:</Text>
|
|
||||||
<Text style={styles.contactValue}>{legalInfo.supportPhone}</Text>
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.contactItem}
|
|
||||||
onPress={() => handleExternalLink(legalInfo.website)}
|
|
||||||
activeOpacity={0.7}
|
|
||||||
>
|
|
||||||
<Text style={styles.contactLabel}>Website:</Text>
|
|
||||||
<Text style={styles.contactValue}>{legalInfo.website}</Text>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
{/* Legal information section */}
|
|
||||||
<View style={styles.infoSection}>
|
|
||||||
<Text style={styles.sectionTitle}>Legal Information</Text>
|
|
||||||
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.legalItem}
|
|
||||||
onPress={() => handleExternalLink(legalInfo.privacyPolicy)}
|
|
||||||
activeOpacity={0.7}
|
|
||||||
>
|
|
||||||
<Text style={styles.legalText}>Privacy Policy</Text>
|
|
||||||
<Icon name="chevron-right" size={20} color={theme.colors.primary} />
|
|
||||||
</TouchableOpacity>
|
|
||||||
|
|
||||||
<TouchableOpacity
|
|
||||||
style={styles.legalItem}
|
|
||||||
onPress={() => handleExternalLink(legalInfo.termsOfService)}
|
|
||||||
activeOpacity={0.7}
|
|
||||||
>
|
|
||||||
<Text style={styles.legalText}>Terms of Service</Text>
|
|
||||||
<Icon name="chevron-right" size={20} color={theme.colors.primary} />
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
{/* Copyright section */}
|
{/* Copyright section */}
|
||||||
<View style={styles.copyrightSection}>
|
<View style={styles.copyrightSection}>
|
||||||
@ -423,43 +324,9 @@ const styles = StyleSheet.create({
|
|||||||
color: theme.colors.textSecondary,
|
color: theme.colors.textSecondary,
|
||||||
},
|
},
|
||||||
|
|
||||||
// Contact items
|
|
||||||
contactItem: {
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'space-between',
|
|
||||||
alignItems: 'center',
|
|
||||||
paddingVertical: theme.spacing.sm,
|
|
||||||
borderBottomColor: theme.colors.border,
|
|
||||||
borderBottomWidth: 1,
|
|
||||||
},
|
|
||||||
|
|
||||||
contactLabel: {
|
|
||||||
fontSize: theme.typography.fontSize.bodyMedium,
|
|
||||||
fontFamily: theme.typography.fontFamily.medium,
|
|
||||||
color: theme.colors.textPrimary,
|
|
||||||
},
|
|
||||||
|
|
||||||
contactValue: {
|
|
||||||
fontSize: theme.typography.fontSize.bodyMedium,
|
|
||||||
fontFamily: theme.typography.fontFamily.regular,
|
|
||||||
color: theme.colors.primary,
|
|
||||||
},
|
|
||||||
|
|
||||||
// Legal items
|
|
||||||
legalItem: {
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'space-between',
|
|
||||||
alignItems: 'center',
|
|
||||||
paddingVertical: theme.spacing.sm,
|
|
||||||
borderBottomColor: theme.colors.border,
|
|
||||||
borderBottomWidth: 1,
|
|
||||||
},
|
|
||||||
|
|
||||||
legalText: {
|
|
||||||
fontSize: theme.typography.fontSize.bodyMedium,
|
|
||||||
fontFamily: theme.typography.fontFamily.medium,
|
|
||||||
color: theme.colors.primary,
|
|
||||||
},
|
|
||||||
|
|
||||||
// Copyright section
|
// Copyright section
|
||||||
copyrightSection: {
|
copyrightSection: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user