Unclaimed Devices
| Device Name | Model | Category | Manufacturer | Service Provider | Organization | Registered | Action |
|---|---|---|---|---|---|---|---|
| {{d.name}} | {{d.model}} | {{d.category}} | {{d.manufacturer||'-'}} | {{d.serviceProvider||'-'}} | {{d.usingOrganization||'-'}} | {{new Date(d.createdAt).toLocaleDateString()}} |
Online Chat
Stay in touch with hospitals & vendors
Conversations ({{ filteredChatThreads.length }})
| Conversation | Order Title | Counterpart | Messages | Last Message | Last Active | Status | Actions |
|---|---|---|---|---|---|---|---|
| No conversations yet | |||||||
| {{ t.otherName || '-' }}({{ t.otherTenant }}) | {{ t.messages || 0 }} | {{ t.lastAt ? fmtDateTime(t.lastAt) : '-' }} | {{ t.status==='closed'?'Ended':'Active' }} | ||||
Call Platform
Handle call messages from hospital & vendor users
Need help? Chat directly with the platform admin
Platform Call List ({{ filteredHelpThreads.length }})
| User | Tenant | Last Message | Unread | Status | Last Active | Actions |
|---|---|---|---|---|---|---|
| No platform calls yet | ||||||
| {{ t.username || '-' }} | {{ t.tenantName || '-' }} | {{ t.adminUnread }} new0 | {{ t.status==='closed'?'Ended':'Active' }} | {{ t.lastAt ? fmtDateTime(t.lastAt) : '-' }} | ||
Conversation with {{ helpDetailThread.username }}οΌ{{ helpDetailThread.tenantName }}οΌ
My Conversation {{ helpThread.status==='closed'?'Ended':'Active' }}
You have not contacted the platform yet
Type a message below to start a text conversation with the platform admin
Dashboard
Welcome back, {{ user.name || user.username }}
Pending Device Entry ({{ filteredPendingDevices.length }})
Order Status
Order Trend (Last {{ trendDays }} Days)
Device Categories
Engineer Workload
π₯ {{ myTenantName || 'My Hospital' }}
Device & Order Overview
Order Status
Device Categories
Recent Orders
| Title | Category | Engineer | SLA | Status | Created | Actions |
|---|---|---|---|---|---|---|
| No orders yet | ||||||
| {{ o.deviceCategory }} | {{ o.assignedEngineerName || (o.assignedEngineer ? o.assignedEngineer.substring(0,8) : 'β') }} | {{ slaText(o) }}β | {{ statusLabel(o.status) }} | {{ fmtDate(o.createdAt) }} | ||
My Devices
View registered medical devices and contact manufacturers for service
Device List ({{ filteredDevices.length }})
| Device Name | Model | Category | Registration No. | Serial No. | Install Date | Warranty Expiry | Status | Using Organization | Action |
|---|---|---|---|---|---|---|---|---|---|
| No devices yet. Contact manufacturer to register devices | |||||||||
| {{ d.name }} | {{ d.model }} | {{ d.category || '-' }} | {{ d.registrationNo || '-' }} | {{ d.serialNumber || '-' }} | {{ d.installDate ? fmtDate(d.installDate) : '-' }} | {{ fmtDate(d.warrantyExpiry) }} {{ warrantyLabel(d.warrantyExpiry) }} β | {{ d.status==='active'?'Active':'Inactive' }} | {{ d.usingOrganization || '-' }} | |
My Orders
View service orders, track maintenance progress
{{ isHospAdminView ? 'All Hospital Orders' : 'My Orders' }} ({{ filteredOrders.length }})
| Order No. | Title | Category | Initiator | Assigned Engineer | SLA Status | Status | Priority | Created | Actions |
|---|---|---|---|---|---|---|---|---|---|
| {{ isHospAdminView ? 'No orders yet' : 'No related orders yet' }} | |||||||||
| {{ o.orderNo || '-' }} | {{ o.deviceCategory }} | {{ o.createdByName || (o.createdBy ? o.createdBy.substring(0,8) : 'β') }} | {{ o.assignedEngineerName || (o.assignedEngineer ? o.assignedEngineer.substring(0,8) : 'Unassigned') }} | {{ slaText(o) }}β | {{ statusLabel(o.status) }} | {{ priorityLabel(o.priority) }} | {{ fmtDate(o.createdAt) }} | ||
Orders from Vendor Engineers ({{ filteredVendorOrders.length }})
| Order No. | Title | Category | Initiator | Assigned Engineer | SLA Status | Status | Priority | Created | Actions |
|---|---|---|---|---|---|---|---|---|---|
| No orders from vendor engineers yet | |||||||||
| {{ o.orderNo || '-' }} | {{ o.deviceCategory }} | {{ o.createdByName || 'Vendor Engineer' }} | {{ o.assignedEngineerName || o.assignedEngineer.substring(0,8) }}Unassigned | {{ slaText(o) }}β | {{ statusLabel(o.status) }} | {{ priorityLabel(o.priority) }} | {{ fmtDate(o.createdAt) }} |
|
|
Devices
Manage all registered medical devices
Device List ({{ filteredDeviceMgmt.length }})
| Device Name | Model | Manufacturer | Service Provider | Using Organization | Registration No. | Serial No. | Status | Install Date | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|
| No devices. Click button to add | ||||||||||
| {{ d.name }} | {{ d.model }} | {{ d.manufacturer || '-' }} | {{ d.serviceProvider || '-' }} | {{ d.usingOrganization || '-' }} | {{ d.registrationNo || '-' }} | {{ d.serialNumber || '-' }} | {{ d.status==='active'?'Active':'Inactive' }} | {{ claimBadge(d).text }} | {{ d.installDate ? fmtDate(d.installDate) : '-' }} | |
{{ user.role==='mfg_engineer' && !user.isTenantAdmin ? 'My Orders' : 'Orders' }}
{{ user.role==='mfg_engineer' && !user.isTenantAdmin ? 'View orders you created and orders from on-site engineers' : 'Manage repair and technical support orders' }}
{{ user.role==='mfg_engineer' ? 'My Orders' : 'Order List' }} ({{ filteredOrders.length }})
| Work Order No. | Title | Category | Assigned Engineer | SLAStatus | Status | Priority | Created | Actions | ||
|---|---|---|---|---|---|---|---|---|---|---|
| {{ user.role==='mfg_engineer' ? 'No orders created by you yet. Click "+ New Order" to create one.' : 'No orders yet' }} | ||||||||||
| {{ o.orderNo || '-' }} | {{ o.deviceCategory }} | {{ o.assignedEngineer ? (o.assignedEngineerName || o.assignedEngineer.substring(0,8)) : 'β' }} | {{ slaText(o) }}β | {{ statusLabel(o.status) }} | {{ priorityLabel(o.priority) }} | {{ fmtDate(o.createdAt) }} |
|
|||
Orders from Field Engineers ({{ filteredHospitalOrders.length }})
| Work Order No. | Title | Category | Initiated By | Assigned Engineer | SLAStatus | Status | Priority | Created | Actions |
|---|---|---|---|---|---|---|---|---|---|
| No orders from field engineers yet | |||||||||
| {{ o.orderNo || '-' }} | {{ o.deviceCategory }} | {{ o.createdByName || 'Field engineer' }} | {{ o.assignedEngineerName || o.assignedEngineer.substring(0,8) }}Not assigned | {{ slaText(o) }}β | {{ statusLabel(o.status) }} | {{ priorityLabel(o.priority) }} | {{ fmtDate(o.createdAt) }} |
|
|
Sessions
TRTC audio/video call records
Session List ({{ filteredSessions.length }})
| Order ID | Order Title | Device Category | TRTC Room | Manufacturer | Engineer | Recording | Duration | Start Time | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
| No session records yet | ||||||||||
| {{ (s.orderId||'').slice(0,8) }}... | {{ s.deviceCategory || '-' }} | {{ s.trtcRoomId || '-' }} | {{ s.manufacturerUsername || s.manufacturerUserId || '-' }} | {{ s.engineerUsername || s.engineerUserId || '-' }} | {{ s.recording ? 'πΉ' : 'β' }} | {{ fmtDuration(s.durationSeconds) }} | {{ s.startedAt ? fmtDate(s.startedAt) : '-' }} | {{ s.endedAt ? 'Ended' : 'Active' }} | ||
AI Summary
Knowledge summaries from chats and remote sessions
Summaries ({{ filteredAiSummaries.length }})
| Order No. | Model | Order Title | Source | Summary | Participants | Time | Actions | |
|---|---|---|---|---|---|---|---|---|
| No AI summary records | ||||||||
| {{ s.orderNo || s.orderId?.substring(0,8) || '-' }} | {{ s.deviceModel || '-' }} | {{ s.orderTitle || '-' }} | {{ s.sourceType==='chat'?'Chat':'Session' }} | {{ s.shortDesc || '-' }} | {{ s.participants || '-' }} | {{ fmtDate(s.createdAt) }} | ||
Users
Manage all user accounts
User List ({{ filteredUsers.length }})
| Username | Name | Role | Company | Phone | Status | Registered At | Actions | |
|---|---|---|---|---|---|---|---|---|
| No users yet | ||||||||
| {{ u.username }} | {{ u.name || '-' }} | {{ roleLabel(u.role) }} | {{ u.company || '-' }} | {{ u.phone || '-' }} | {{ u.email || '-' }} | {{ u.active?'Active':'Inactive' }} | {{ fmtDate(u.createdAt) }} | |
Engineer Team
{{ isHospitalRole ? 'Manage your hospital engineer team and view workload and performance' : 'Manage your engineer team and view workload and performance' }}
Team Members
Billing
Manage plans, view usage and billing
Current Subscription
Quota Usage
Features & Access
Upgrade Plans
- User limit: {{ plan.maxUsers }}
- Device limit: {{ plan.maxDevices }}
- AI Service Report
- AI Diagnosis
- AI Repair Guide
- AI Knowledge Base
- Post-Market Analysis
- Priority Technical Support
Payment History
| Order No. | Plan | Amount | Method | Status | Time |
|---|---|---|---|---|---|
| No payment history yet | |||||
| {{ p.orderNo }} | {{ planLabel(p.plan) }} | Β₯{{ p.amount }} | {{ payMethodLabel(p.method) }} | {{ payStatusLabel(p.status) }} | {{ fmtDate(p.createdAt) }} |
Tenants
Manage Manufacturer and Hospital tenants on the platform
Tenant List ({{ filteredTenants.length }})
| Name | Type | Contact | Phone | Plan | Subscription Status | Users | Devices | Created | Actions |
|---|---|---|---|---|---|---|---|---|---|
| No tenants yet | |||||||||
| {{ t.name }} | {{ tenantTypeLabel(t.type) }} | {{ t.contactName || '-' }} | {{ t.contactPhone || '-' }} | {{ planLabel(t.subscription.plan) }}β | {{ subStatusLabel(t.subscription.status) }}β | {{ t.userCount || 0 }} | {{ t.deviceCount || 0 }} | {{ fmtDate(t.createdAt) }} | |
Duplicate Tenants Merge
Registration Approvals
Verify authorization documents submitted by engineers and approve their registrations
Registration Requests ({{ regRequests.length }})
| Username | Name | Role | Tenant | Status | Created | Actions |
|---|---|---|---|---|---|---|
| {{ r.username }} | {{ r.name }} | {{ r.role === 'hosp_engineer' ? 'Hospital Engineer' : 'Mfg Engineer' }} | {{ r.tenantName }} | {{ regStatusLabel(r.status) }} | {{ fmtDateTime(r.createdAt) }} |
|
{{chatTarget.title||'Chat'}}
β My Authorizations ({{myAuths.length}})
π Request History ({{myAuthReqs.length}})
| Vendor | Category | Status | Submitted | Vendor Comment |
|---|---|---|---|---|
| {{r.tenantName}} | {{r.catCode}} {{(certifCatalog.find(c=>c.code===r.catCode)||{}).name || ''}} | {{r.status==='pending' ? 'Pending' : (r.status==='approved' ? 'Approved' : 'Rejected')}} | {{fmtDate(r.createdAt)}} | {{r.reviewComment || '-'}} |
Please complete the 16 Ophthalmic Devices exam first to unlock all platform features.
You may start with the Platform Materials; once vendors publish their courses, you can learn here to meet their service-authorization requirements.
Materials from other vendors are not visible. You may start with the Platform Materials to complete learning and certification.
Once published, they become your company's dedicated learning and certification content for authorized engineers.
When disabled: only the platform category exam is required. The course must be published (>=10 questions) before enabling. This only affects new requests, not submitted requests or granted authorizations.
Question List ({{vendorQuestions.length}})
You may start with the Platform Materials to complete learning and unlock all platform features.
{{q.explanation}}
Recent Exams
| Date | Score | Result |
|---|---|---|
| {{new Date(e.createdAt).toLocaleString('en-US',{month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit'})}} | {{e.score!==null?e.score:'--'}} | PassedFailedIn Progress |
Progress by Category
Recent Exams
| Date | Questions | Score | Result |
|---|---|---|---|
| {{new Date(e.createdAt).toLocaleString('en-US',{month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit'})}} | {{e.questionCount}} | {{e.score!==null?e.score:'--'}} | PassedFailed |