feat: complete Jane App feature set with Telehealth, Retail POS, Memberships, Multi-Discipline Charting, Waitlist & RBAC
This commit is contained in:
+65
-9
@@ -1,3 +1,7 @@
|
||||
export type StaffRole = 'doctor' | 'front_desk' | 'billing_admin';
|
||||
|
||||
export type ClinicalDiscipline = 'chiropractic' | 'physical_therapy' | 'acupuncture' | 'massage_therapy';
|
||||
|
||||
export interface ClinicTenant {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -23,7 +27,7 @@ export interface Provider {
|
||||
tenantId: string;
|
||||
name: string;
|
||||
title: string;
|
||||
credentials: string; // e.g., "D.C., CCSP"
|
||||
credentials: string;
|
||||
specialty: string;
|
||||
npi: string;
|
||||
email: string;
|
||||
@@ -36,7 +40,7 @@ export interface CarePlan {
|
||||
title: string;
|
||||
totalVisits: number;
|
||||
completedVisits: number;
|
||||
frequency: string; // e.g. "2x / week for 6 weeks"
|
||||
frequency: string;
|
||||
targetCondition: string;
|
||||
startDate: string;
|
||||
status: 'on_track' | 'lagging' | 'at_risk' | 'completed';
|
||||
@@ -60,6 +64,8 @@ export interface Patient {
|
||||
status: 'active' | 'dropout_risk' | 'reactivated' | 'discharged';
|
||||
chiefComplaint: string;
|
||||
daysSinceLastVisit: number;
|
||||
activeMembership?: string;
|
||||
packageCreditsRemaining?: number;
|
||||
}
|
||||
|
||||
export type AppointmentStatus = 'booked' | 'confirmed' | 'arrived' | 'in_room' | 'completed' | 'no_show';
|
||||
@@ -72,20 +78,21 @@ export interface Appointment {
|
||||
patientPhone: string;
|
||||
providerId: string;
|
||||
providerName: string;
|
||||
date: string; // YYYY-MM-DD
|
||||
time: string; // HH:MM AM/PM
|
||||
date: string;
|
||||
time: string;
|
||||
durationMinutes: number;
|
||||
serviceType: string;
|
||||
status: AppointmentStatus;
|
||||
room: string;
|
||||
notes?: string;
|
||||
fee: number;
|
||||
isTelehealth?: boolean;
|
||||
}
|
||||
|
||||
export interface SpinalAdjustmentEntry {
|
||||
vertebra: string; // e.g. "C2", "L5"
|
||||
vertebra: string;
|
||||
region: 'Cervical' | 'Thoracic' | 'Lumbar' | 'Pelvis/Sacrum';
|
||||
listing: string; // e.g., "Right Lateral / Posterior"
|
||||
listing: string;
|
||||
technique: 'Diversified' | 'Thompson Drop' | 'Activator' | 'Gonstead' | 'Webster' | 'Flexion-Distraction';
|
||||
notes?: string;
|
||||
}
|
||||
@@ -111,6 +118,7 @@ export interface SoapNote {
|
||||
appointmentId?: string;
|
||||
date: string;
|
||||
status: 'draft' | 'signed';
|
||||
discipline: ClinicalDiscipline;
|
||||
subjective: string;
|
||||
objective: string;
|
||||
assessment: string;
|
||||
@@ -118,7 +126,7 @@ export interface SoapNote {
|
||||
spinalAdjustments: SpinalAdjustmentEntry[];
|
||||
icd10Codes: Icd10CodeItem[];
|
||||
cptCodes: CptCodeItem[];
|
||||
vasScore: number; // 0-10
|
||||
vasScore: number;
|
||||
signedAt?: string;
|
||||
signedBy?: string;
|
||||
}
|
||||
@@ -145,7 +153,7 @@ export interface Superbill {
|
||||
clinicAddress: string;
|
||||
clinicTaxId: string;
|
||||
dateOfService: string;
|
||||
posCode: string; // Place of Service "11 - Office"
|
||||
posCode: string;
|
||||
icd10Codes: Icd10CodeItem[];
|
||||
items: SuperbillLineItem[];
|
||||
totalAmount: number;
|
||||
@@ -165,7 +173,7 @@ export interface IntakeSubmission {
|
||||
chiefComplaints: string[];
|
||||
painAreas: string[];
|
||||
vasScore: number;
|
||||
painNature: string[]; // ['Sharp', 'Dull Ache', 'Shooting']
|
||||
painNature: string[];
|
||||
symptomsOnset: string;
|
||||
medications: string;
|
||||
priorChiropractic: boolean;
|
||||
@@ -173,3 +181,51 @@ export interface IntakeSubmission {
|
||||
submittedAt: string;
|
||||
status: 'pending_review' | 'imported_to_chart';
|
||||
}
|
||||
|
||||
export interface RetailProduct {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
name: string;
|
||||
sku: string;
|
||||
category: 'Supplements' | 'Orthotics & Pillows' | 'Topical & Pain Relief' | 'Rehab Gear';
|
||||
price: number;
|
||||
cost: number;
|
||||
stockQty: number;
|
||||
reorderPoint: number;
|
||||
supplier: string;
|
||||
}
|
||||
|
||||
export interface WellnessMembership {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
name: string;
|
||||
monthlyFee: number;
|
||||
includedVisits: number;
|
||||
additionalVisitDiscount: string;
|
||||
activeMembers: number;
|
||||
mrrContribution: number;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface PrePaidPackage {
|
||||
id: string;
|
||||
tenantId: string;
|
||||
name: string;
|
||||
totalVisits: number;
|
||||
price: number;
|
||||
perVisitRate: number;
|
||||
savings: string;
|
||||
activeSold: number;
|
||||
}
|
||||
|
||||
export interface WaitlistEntry {
|
||||
id: string;
|
||||
patientName: string;
|
||||
phone: string;
|
||||
providerName: string;
|
||||
requestedService: string;
|
||||
preferredDays: string;
|
||||
preferredTimeRange: string;
|
||||
notes: string;
|
||||
status: 'waiting' | 'notified' | 'filled';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user