@burdenoff/microfe-mybodyshield 2026.511.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +18199 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +43046 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/mybodyshield/MyBodyShieldRoot.d.ts +5 -0
- package/dist/mybodyshield/MyBodyShieldRoot.d.ts.map +1 -0
- package/dist/mybodyshield/MyBodyShieldRoot.js +364 -0
- package/dist/mybodyshield/MyBodyShieldRoot.js.map +1 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.d.ts +2 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.d.ts.map +1 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.js +199 -0
- package/dist/mybodyshield/MyBodyShieldRoutes.js.map +1 -0
- package/dist/mybodyshield/index.d.ts +5 -0
- package/dist/mybodyshield/index.d.ts.map +1 -0
- package/dist/mybodyshield/index.js +3 -0
- package/dist/mybodyshield/pages/AdminAiinsightsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminAiinsightsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminAiinsightsPage.js +161 -0
- package/dist/mybodyshield/pages/AdminAiinsightsPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminAnalyticsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminAnalyticsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminAnalyticsPage.js +193 -0
- package/dist/mybodyshield/pages/AdminAnalyticsPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminComplianceReportsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminComplianceReportsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminComplianceReportsPage.js +214 -0
- package/dist/mybodyshield/pages/AdminComplianceReportsPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminDashboardPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminDashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminDashboardPage.js +186 -0
- package/dist/mybodyshield/pages/AdminDashboardPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminOrganizationManagementPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminOrganizationManagementPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminOrganizationManagementPage.js +252 -0
- package/dist/mybodyshield/pages/AdminOrganizationManagementPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminSystemSettingsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminSystemSettingsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminSystemSettingsPage.js +159 -0
- package/dist/mybodyshield/pages/AdminSystemSettingsPage.js.map +1 -0
- package/dist/mybodyshield/pages/AdminUserManagementPage.d.ts +2 -0
- package/dist/mybodyshield/pages/AdminUserManagementPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/AdminUserManagementPage.js +208 -0
- package/dist/mybodyshield/pages/AdminUserManagementPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessAssessmentsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessAssessmentsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessAssessmentsPage.js +194 -0
- package/dist/mybodyshield/pages/FitnessAssessmentsPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessClientDetailsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessClientDetailsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessClientDetailsPage.js +192 -0
- package/dist/mybodyshield/pages/FitnessClientDetailsPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessClientManagementPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessClientManagementPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessClientManagementPage.js +128 -0
- package/dist/mybodyshield/pages/FitnessClientManagementPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessDashboardPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessDashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessDashboardPage.js +156 -0
- package/dist/mybodyshield/pages/FitnessDashboardPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessReportsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessReportsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessReportsPage.js +138 -0
- package/dist/mybodyshield/pages/FitnessReportsPage.js.map +1 -0
- package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.d.ts +2 -0
- package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.js +176 -0
- package/dist/mybodyshield/pages/FitnessWorkoutPlansPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientAppointmentsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientAppointmentsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientAppointmentsPage.js +132 -0
- package/dist/mybodyshield/pages/PatientAppointmentsPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientDashboardPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientDashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientDashboardPage.js +190 -0
- package/dist/mybodyshield/pages/PatientDashboardPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientFitnessTrackingPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientFitnessTrackingPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientFitnessTrackingPage.js +137 -0
- package/dist/mybodyshield/pages/PatientFitnessTrackingPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientHealthGoalsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientHealthGoalsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientHealthGoalsPage.js +131 -0
- package/dist/mybodyshield/pages/PatientHealthGoalsPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientHealthOverviewPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientHealthOverviewPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientHealthOverviewPage.js +273 -0
- package/dist/mybodyshield/pages/PatientHealthOverviewPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientLabResultsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientLabResultsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientLabResultsPage.js +133 -0
- package/dist/mybodyshield/pages/PatientLabResultsPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientMedicationsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientMedicationsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientMedicationsPage.js +158 -0
- package/dist/mybodyshield/pages/PatientMedicationsPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientMentalHealthPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientMentalHealthPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientMentalHealthPage.js +152 -0
- package/dist/mybodyshield/pages/PatientMentalHealthPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientNutritionTrackingPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientNutritionTrackingPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientNutritionTrackingPage.js +141 -0
- package/dist/mybodyshield/pages/PatientNutritionTrackingPage.js.map +1 -0
- package/dist/mybodyshield/pages/PatientVitalSignsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/PatientVitalSignsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/PatientVitalSignsPage.js +160 -0
- package/dist/mybodyshield/pages/PatientVitalSignsPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderCalendarPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderCalendarPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderCalendarPage.js +127 -0
- package/dist/mybodyshield/pages/ProviderCalendarPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderCarePlansPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderCarePlansPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderCarePlansPage.js +153 -0
- package/dist/mybodyshield/pages/ProviderCarePlansPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderClinicalToolsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderClinicalToolsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderClinicalToolsPage.js +174 -0
- package/dist/mybodyshield/pages/ProviderClinicalToolsPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderDashboardPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderDashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderDashboardPage.js +154 -0
- package/dist/mybodyshield/pages/ProviderDashboardPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderPatientDetailsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderPatientDetailsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderPatientDetailsPage.js +295 -0
- package/dist/mybodyshield/pages/ProviderPatientDetailsPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderPatientManagementPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderPatientManagementPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderPatientManagementPage.js +133 -0
- package/dist/mybodyshield/pages/ProviderPatientManagementPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderPrescriptionsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderPrescriptionsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderPrescriptionsPage.js +138 -0
- package/dist/mybodyshield/pages/ProviderPrescriptionsPage.js.map +1 -0
- package/dist/mybodyshield/pages/ProviderReportsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/ProviderReportsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/ProviderReportsPage.js +149 -0
- package/dist/mybodyshield/pages/ProviderReportsPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedAppointmentsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedAppointmentsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedAppointmentsPage.js +129 -0
- package/dist/mybodyshield/pages/SharedAppointmentsPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedCommunityPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedCommunityPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedCommunityPage.js +152 -0
- package/dist/mybodyshield/pages/SharedCommunityPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.js +165 -0
- package/dist/mybodyshield/pages/SharedEmergencyAlertsPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedEmergencyPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedEmergencyPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedEmergencyPage.js +183 -0
- package/dist/mybodyshield/pages/SharedEmergencyPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.js +159 -0
- package/dist/mybodyshield/pages/SharedHealthAnalyticsPage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedMarketplacePage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedMarketplacePage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedMarketplacePage.js +193 -0
- package/dist/mybodyshield/pages/SharedMarketplacePage.js.map +1 -0
- package/dist/mybodyshield/pages/SharedMessagesPage.d.ts +2 -0
- package/dist/mybodyshield/pages/SharedMessagesPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/SharedMessagesPage.js +156 -0
- package/dist/mybodyshield/pages/SharedMessagesPage.js.map +1 -0
- package/dist/mybodyshield/pages/WellnessAssessmentsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/WellnessAssessmentsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/WellnessAssessmentsPage.js +147 -0
- package/dist/mybodyshield/pages/WellnessAssessmentsPage.js.map +1 -0
- package/dist/mybodyshield/pages/WellnessClientsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/WellnessClientsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/WellnessClientsPage.js +182 -0
- package/dist/mybodyshield/pages/WellnessClientsPage.js.map +1 -0
- package/dist/mybodyshield/pages/WellnessDashboardPage.d.ts +2 -0
- package/dist/mybodyshield/pages/WellnessDashboardPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/WellnessDashboardPage.js +136 -0
- package/dist/mybodyshield/pages/WellnessDashboardPage.js.map +1 -0
- package/dist/mybodyshield/pages/WellnessProgramsPage.d.ts +2 -0
- package/dist/mybodyshield/pages/WellnessProgramsPage.d.ts.map +1 -0
- package/dist/mybodyshield/pages/WellnessProgramsPage.js +140 -0
- package/dist/mybodyshield/pages/WellnessProgramsPage.js.map +1 -0
- package/dist/mybodyshield/providers/MyBodyShieldProvider.d.ts +6 -0
- package/dist/mybodyshield/providers/MyBodyShieldProvider.d.ts.map +1 -0
- package/dist/mybodyshield/providers/MyBodyShieldProvider.js +27 -0
- package/dist/mybodyshield/providers/MyBodyShieldProvider.js.map +1 -0
- package/dist/mybodyshield/store/mybodyshieldStore.d.ts +197 -0
- package/dist/mybodyshield/store/mybodyshieldStore.d.ts.map +1 -0
- package/dist/mybodyshield/store/mybodyshieldStore.js +710 -0
- package/dist/mybodyshield/store/mybodyshieldStore.js.map +1 -0
- package/dist/mybodyshield/types/index.d.ts +51 -0
- package/dist/mybodyshield/types/index.d.ts.map +1 -0
- package/dist/mybodyshield/utils/cn.d.ts +4 -0
- package/dist/mybodyshield/utils/cn.d.ts.map +1 -0
- package/dist/mybodyshield/utils/navigation.d.ts +2 -0
- package/dist/mybodyshield/utils/navigation.d.ts.map +1 -0
- package/dist/mybodyshield/utils/navigation.js +8 -0
- package/dist/mybodyshield/utils/navigation.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { useMyBodyShieldStore as e } from "../store/mybodyshieldStore.js";
|
|
2
|
+
import { AlertTriangle as t, CheckCircle as n, Clock as r, FlaskConical as i } from "lucide-react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/mybodyshield/pages/PatientLabResultsPage.tsx
|
|
6
|
+
var d = {
|
|
7
|
+
normal: "bg-green-100 text-green-700",
|
|
8
|
+
abnormal: "bg-orange-100 text-orange-700",
|
|
9
|
+
critical: "bg-red-100 text-red-700",
|
|
10
|
+
pending: "bg-yellow-100 text-yellow-700"
|
|
11
|
+
};
|
|
12
|
+
function f() {
|
|
13
|
+
let { labResults: f } = e(), p = f.filter((e) => e.status === "normal").length, m = f.filter((e) => e.status === "abnormal" || e.status === "critical").length, h = f.filter((e) => e.status === "pending").length;
|
|
14
|
+
return /* @__PURE__ */ o("div", {
|
|
15
|
+
className: "space-y-6 p-6",
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
18
|
+
className: "text-2xl font-semibold",
|
|
19
|
+
children: "Lab Results"
|
|
20
|
+
}), /* @__PURE__ */ a("p", {
|
|
21
|
+
className: "text-sm text-muted-foreground",
|
|
22
|
+
children: "View your laboratory test results and reference ranges"
|
|
23
|
+
})] }),
|
|
24
|
+
/* @__PURE__ */ o("div", {
|
|
25
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
28
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
29
|
+
children: [/* @__PURE__ */ a(u, {
|
|
30
|
+
className: "text-sm font-medium",
|
|
31
|
+
children: "Total Tests"
|
|
32
|
+
}), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-blue-500" })]
|
|
33
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
34
|
+
className: "text-2xl font-bold",
|
|
35
|
+
children: f.length
|
|
36
|
+
}), /* @__PURE__ */ a("p", {
|
|
37
|
+
className: "text-xs text-muted-foreground",
|
|
38
|
+
children: "All lab orders"
|
|
39
|
+
})] })] }),
|
|
40
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
41
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
42
|
+
children: [/* @__PURE__ */ a(u, {
|
|
43
|
+
className: "text-sm font-medium",
|
|
44
|
+
children: "Normal Results"
|
|
45
|
+
}), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-green-500" })]
|
|
46
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
47
|
+
className: "text-2xl font-bold",
|
|
48
|
+
children: p
|
|
49
|
+
}), /* @__PURE__ */ a("p", {
|
|
50
|
+
className: "text-xs text-muted-foreground",
|
|
51
|
+
children: "Within reference range"
|
|
52
|
+
})] })] }),
|
|
53
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
54
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
55
|
+
children: [/* @__PURE__ */ a(u, {
|
|
56
|
+
className: "text-sm font-medium",
|
|
57
|
+
children: "Abnormal/Critical"
|
|
58
|
+
}), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-orange-500" })]
|
|
59
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
60
|
+
className: "text-2xl font-bold",
|
|
61
|
+
children: m
|
|
62
|
+
}), /* @__PURE__ */ a("p", {
|
|
63
|
+
className: "text-xs text-muted-foreground",
|
|
64
|
+
children: "Requires attention"
|
|
65
|
+
})] })] }),
|
|
66
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
67
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
68
|
+
children: [/* @__PURE__ */ a(u, {
|
|
69
|
+
className: "text-sm font-medium",
|
|
70
|
+
children: "Pending"
|
|
71
|
+
}), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-yellow-500" })]
|
|
72
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
73
|
+
className: "text-2xl font-bold",
|
|
74
|
+
children: h
|
|
75
|
+
}), /* @__PURE__ */ a("p", {
|
|
76
|
+
className: "text-xs text-muted-foreground",
|
|
77
|
+
children: "Awaiting results"
|
|
78
|
+
})] })] })
|
|
79
|
+
]
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, { children: "Lab Results Detail" }) }), /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a("div", {
|
|
82
|
+
className: "space-y-3",
|
|
83
|
+
children: f.map((e) => /* @__PURE__ */ o("div", {
|
|
84
|
+
className: "flex items-center justify-between p-3 rounded-lg bg-muted/50",
|
|
85
|
+
children: [/* @__PURE__ */ o("div", {
|
|
86
|
+
className: "flex-1",
|
|
87
|
+
children: [/* @__PURE__ */ o("div", {
|
|
88
|
+
className: "flex items-center gap-2 mb-1",
|
|
89
|
+
children: [/* @__PURE__ */ a("p", {
|
|
90
|
+
className: "text-sm font-medium",
|
|
91
|
+
children: e.testName
|
|
92
|
+
}), /* @__PURE__ */ a("span", {
|
|
93
|
+
className: `text-xs font-medium px-2 py-0.5 rounded-full ${d[e.status]}`,
|
|
94
|
+
children: e.status
|
|
95
|
+
})]
|
|
96
|
+
}), /* @__PURE__ */ o("p", {
|
|
97
|
+
className: "text-xs text-muted-foreground",
|
|
98
|
+
children: [
|
|
99
|
+
e.category,
|
|
100
|
+
" · Ordered by ",
|
|
101
|
+
e.orderedBy
|
|
102
|
+
]
|
|
103
|
+
})]
|
|
104
|
+
}), /* @__PURE__ */ o("div", {
|
|
105
|
+
className: "text-right",
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ o("p", {
|
|
108
|
+
className: "text-sm font-medium",
|
|
109
|
+
children: [
|
|
110
|
+
e.value,
|
|
111
|
+
" ",
|
|
112
|
+
e.unit
|
|
113
|
+
]
|
|
114
|
+
}),
|
|
115
|
+
/* @__PURE__ */ o("p", {
|
|
116
|
+
className: "text-xs text-muted-foreground",
|
|
117
|
+
children: ["Ref: ", e.referenceRange]
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ a("p", {
|
|
120
|
+
className: "text-xs text-muted-foreground",
|
|
121
|
+
children: e.resultDate
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
})]
|
|
125
|
+
}, e.id))
|
|
126
|
+
}) })] })
|
|
127
|
+
]
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
export { f as PatientLabResultsPage };
|
|
132
|
+
|
|
133
|
+
//# sourceMappingURL=PatientLabResultsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientLabResultsPage.js","names":[],"sources":["../../../src/mybodyshield/pages/PatientLabResultsPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { FlaskConical, CheckCircle, AlertTriangle, Clock } from 'lucide-react';\nimport { useMyBodyShieldStore } from '../store/mybodyshieldStore';\n\nconst statusColors: Record<string, string> = {\n normal: 'bg-green-100 text-green-700',\n abnormal: 'bg-orange-100 text-orange-700',\n critical: 'bg-red-100 text-red-700',\n pending: 'bg-yellow-100 text-yellow-700',\n};\n\nexport function PatientLabResultsPage() {\n const { labResults } = useMyBodyShieldStore();\n const normal = labResults.filter((l) => l.status === 'normal').length;\n const abnormal = labResults.filter(\n (l) => l.status === 'abnormal' || l.status === 'critical'\n ).length;\n const pending = labResults.filter((l) => l.status === 'pending').length;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Lab Results</h1>\n <p className=\"text-sm text-muted-foreground\">\n View your laboratory test results and reference ranges\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Tests</CardTitle>\n <FlaskConical className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{labResults.length}</div>\n <p className=\"text-xs text-muted-foreground\">All lab orders</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Normal Results</CardTitle>\n <CheckCircle className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{normal}</div>\n <p className=\"text-xs text-muted-foreground\">Within reference range</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Abnormal/Critical</CardTitle>\n <AlertTriangle className=\"h-4 w-4 text-orange-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{abnormal}</div>\n <p className=\"text-xs text-muted-foreground\">Requires attention</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Pending</CardTitle>\n <Clock className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{pending}</div>\n <p className=\"text-xs text-muted-foreground\">Awaiting results</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Lab Results Detail</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {labResults.map((lab) => (\n <div\n key={lab.id}\n className=\"flex items-center justify-between p-3 rounded-lg bg-muted/50\"\n >\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2 mb-1\">\n <p className=\"text-sm font-medium\">{lab.testName}</p>\n <span\n className={`text-xs font-medium px-2 py-0.5 rounded-full ${statusColors[lab.status]}`}\n >\n {lab.status}\n </span>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {lab.category} · Ordered by {lab.orderedBy}\n </p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">\n {lab.value} {lab.unit}\n </p>\n <p className=\"text-xs text-muted-foreground\">Ref: {lab.referenceRange}</p>\n <p className=\"text-xs text-muted-foreground\">{lab.resultDate}</p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientMedicationsPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/PatientMedicationsPage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,sBAAsB,4CAyHrC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { useMyBodyShieldStore as e } from "../store/mybodyshieldStore.js";
|
|
2
|
+
import { AlertCircle as t, FileText as n, Pill as r, RefreshCw as i } from "lucide-react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/mybodyshield/pages/PatientMedicationsPage.tsx
|
|
6
|
+
function d() {
|
|
7
|
+
let { medications: d } = e(), f = d.filter((e) => e.isActive), p = d.filter((e) => e.isActive && e.refillsRemaining <= 1).length, m = d.reduce((e, t) => e + t.sideEffects.length, 0);
|
|
8
|
+
return /* @__PURE__ */ o("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
12
|
+
className: "text-2xl font-semibold",
|
|
13
|
+
children: "My Medications"
|
|
14
|
+
}), /* @__PURE__ */ a("p", {
|
|
15
|
+
className: "text-sm text-muted-foreground",
|
|
16
|
+
children: "Track your prescriptions, dosages, and refill schedules"
|
|
17
|
+
})] }),
|
|
18
|
+
/* @__PURE__ */ o("div", {
|
|
19
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
22
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
23
|
+
children: [/* @__PURE__ */ a(u, {
|
|
24
|
+
className: "text-sm font-medium",
|
|
25
|
+
children: "Active Medications"
|
|
26
|
+
}), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-blue-500" })]
|
|
27
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
28
|
+
className: "text-2xl font-bold",
|
|
29
|
+
children: f.length
|
|
30
|
+
}), /* @__PURE__ */ a("p", {
|
|
31
|
+
className: "text-xs text-muted-foreground",
|
|
32
|
+
children: "Currently prescribed"
|
|
33
|
+
})] })] }),
|
|
34
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
35
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
36
|
+
children: [/* @__PURE__ */ a(u, {
|
|
37
|
+
className: "text-sm font-medium",
|
|
38
|
+
children: "Refills Needed"
|
|
39
|
+
}), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-orange-500" })]
|
|
40
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
41
|
+
className: "text-2xl font-bold",
|
|
42
|
+
children: p
|
|
43
|
+
}), /* @__PURE__ */ a("p", {
|
|
44
|
+
className: "text-xs text-muted-foreground",
|
|
45
|
+
children: "1 or fewer refills left"
|
|
46
|
+
})] })] }),
|
|
47
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
48
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
49
|
+
children: [/* @__PURE__ */ a(u, {
|
|
50
|
+
className: "text-sm font-medium",
|
|
51
|
+
children: "Total Prescriptions"
|
|
52
|
+
}), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-purple-500" })]
|
|
53
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
54
|
+
className: "text-2xl font-bold",
|
|
55
|
+
children: d.length
|
|
56
|
+
}), /* @__PURE__ */ a("p", {
|
|
57
|
+
className: "text-xs text-muted-foreground",
|
|
58
|
+
children: "Active & inactive"
|
|
59
|
+
})] })] }),
|
|
60
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
61
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
62
|
+
children: [/* @__PURE__ */ a(u, {
|
|
63
|
+
className: "text-sm font-medium",
|
|
64
|
+
children: "Side Effects Tracked"
|
|
65
|
+
}), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-red-500" })]
|
|
66
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
67
|
+
className: "text-2xl font-bold",
|
|
68
|
+
children: m
|
|
69
|
+
}), /* @__PURE__ */ a("p", {
|
|
70
|
+
className: "text-xs text-muted-foreground",
|
|
71
|
+
children: "Across all medications"
|
|
72
|
+
})] })] })
|
|
73
|
+
]
|
|
74
|
+
}),
|
|
75
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, { children: "Medication Details" }) }), /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a("div", {
|
|
76
|
+
className: "space-y-4",
|
|
77
|
+
children: d.map((e) => /* @__PURE__ */ o("div", {
|
|
78
|
+
className: `p-4 rounded-lg border ${e.isActive ? "bg-muted/30" : "bg-muted/10 opacity-60"}`,
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ o("div", {
|
|
81
|
+
className: "flex items-center justify-between mb-2",
|
|
82
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
|
|
83
|
+
className: "text-sm font-medium",
|
|
84
|
+
children: e.name
|
|
85
|
+
}), /* @__PURE__ */ a("p", {
|
|
86
|
+
className: "text-xs text-muted-foreground",
|
|
87
|
+
children: e.genericName
|
|
88
|
+
})] }), /* @__PURE__ */ a("span", {
|
|
89
|
+
className: `text-xs font-medium px-2 py-0.5 rounded-full ${e.isActive ? "bg-green-100 text-green-700" : "bg-gray-100 text-gray-700"}`,
|
|
90
|
+
children: e.isActive ? "Active" : "Inactive"
|
|
91
|
+
})]
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ o("div", {
|
|
94
|
+
className: "grid grid-cols-2 md:grid-cols-4 gap-2 text-xs",
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ o("div", { children: [
|
|
97
|
+
/* @__PURE__ */ a("span", {
|
|
98
|
+
className: "text-muted-foreground",
|
|
99
|
+
children: "Dosage:"
|
|
100
|
+
}),
|
|
101
|
+
" ",
|
|
102
|
+
/* @__PURE__ */ a("span", {
|
|
103
|
+
className: "font-medium",
|
|
104
|
+
children: e.dosage
|
|
105
|
+
})
|
|
106
|
+
] }),
|
|
107
|
+
/* @__PURE__ */ o("div", { children: [
|
|
108
|
+
/* @__PURE__ */ a("span", {
|
|
109
|
+
className: "text-muted-foreground",
|
|
110
|
+
children: "Frequency:"
|
|
111
|
+
}),
|
|
112
|
+
" ",
|
|
113
|
+
/* @__PURE__ */ a("span", {
|
|
114
|
+
className: "font-medium",
|
|
115
|
+
children: e.frequency
|
|
116
|
+
})
|
|
117
|
+
] }),
|
|
118
|
+
/* @__PURE__ */ o("div", { children: [
|
|
119
|
+
/* @__PURE__ */ a("span", {
|
|
120
|
+
className: "text-muted-foreground",
|
|
121
|
+
children: "Prescribed by:"
|
|
122
|
+
}),
|
|
123
|
+
" ",
|
|
124
|
+
/* @__PURE__ */ a("span", {
|
|
125
|
+
className: "font-medium",
|
|
126
|
+
children: e.prescribedBy
|
|
127
|
+
})
|
|
128
|
+
] }),
|
|
129
|
+
/* @__PURE__ */ o("div", { children: [
|
|
130
|
+
/* @__PURE__ */ a("span", {
|
|
131
|
+
className: "text-muted-foreground",
|
|
132
|
+
children: "Refills:"
|
|
133
|
+
}),
|
|
134
|
+
" ",
|
|
135
|
+
/* @__PURE__ */ o("span", {
|
|
136
|
+
className: `font-medium ${e.refillsRemaining <= 1 ? "text-orange-600" : ""}`,
|
|
137
|
+
children: [e.refillsRemaining, " remaining"]
|
|
138
|
+
})
|
|
139
|
+
] })
|
|
140
|
+
]
|
|
141
|
+
}),
|
|
142
|
+
e.sideEffects.length > 0 && /* @__PURE__ */ a("div", {
|
|
143
|
+
className: "mt-2 flex gap-1 flex-wrap",
|
|
144
|
+
children: e.sideEffects.map((e, t) => /* @__PURE__ */ a("span", {
|
|
145
|
+
className: "text-xs px-2 py-0.5 rounded-full bg-red-50 text-red-600",
|
|
146
|
+
children: e
|
|
147
|
+
}, t))
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
}, e.id))
|
|
151
|
+
}) })] })
|
|
152
|
+
]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
export { d as PatientMedicationsPage };
|
|
157
|
+
|
|
158
|
+
//# sourceMappingURL=PatientMedicationsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientMedicationsPage.js","names":[],"sources":["../../../src/mybodyshield/pages/PatientMedicationsPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Pill, AlertCircle, RefreshCw, FileText } from 'lucide-react';\nimport { useMyBodyShieldStore } from '../store/mybodyshieldStore';\n\nexport function PatientMedicationsPage() {\n const { medications } = useMyBodyShieldStore();\n const activeMeds = medications.filter((m) => m.isActive);\n const refillsNeeded = medications.filter((m) => m.isActive && m.refillsRemaining <= 1).length;\n const totalSideEffects = medications.reduce((acc, m) => acc + m.sideEffects.length, 0);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">My Medications</h1>\n <p className=\"text-sm text-muted-foreground\">\n Track your prescriptions, dosages, and refill schedules\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Medications</CardTitle>\n <Pill className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{activeMeds.length}</div>\n <p className=\"text-xs text-muted-foreground\">Currently prescribed</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Refills Needed</CardTitle>\n <RefreshCw className=\"h-4 w-4 text-orange-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{refillsNeeded}</div>\n <p className=\"text-xs text-muted-foreground\">1 or fewer refills left</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Prescriptions</CardTitle>\n <FileText className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{medications.length}</div>\n <p className=\"text-xs text-muted-foreground\">Active & inactive</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Side Effects Tracked</CardTitle>\n <AlertCircle className=\"h-4 w-4 text-red-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{totalSideEffects}</div>\n <p className=\"text-xs text-muted-foreground\">Across all medications</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Medication Details</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {medications.map((med) => (\n <div\n key={med.id}\n className={`p-4 rounded-lg border ${med.isActive ? 'bg-muted/30' : 'bg-muted/10 opacity-60'}`}\n >\n <div className=\"flex items-center justify-between mb-2\">\n <div>\n <p className=\"text-sm font-medium\">{med.name}</p>\n <p className=\"text-xs text-muted-foreground\">{med.genericName}</p>\n </div>\n <span\n className={`text-xs font-medium px-2 py-0.5 rounded-full ${med.isActive ? 'bg-green-100 text-green-700' : 'bg-gray-100 text-gray-700'}`}\n >\n {med.isActive ? 'Active' : 'Inactive'}\n </span>\n </div>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-2 text-xs\">\n <div>\n <span className=\"text-muted-foreground\">Dosage:</span>{' '}\n <span className=\"font-medium\">{med.dosage}</span>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Frequency:</span>{' '}\n <span className=\"font-medium\">{med.frequency}</span>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Prescribed by:</span>{' '}\n <span className=\"font-medium\">{med.prescribedBy}</span>\n </div>\n <div>\n <span className=\"text-muted-foreground\">Refills:</span>{' '}\n <span\n className={`font-medium ${med.refillsRemaining <= 1 ? 'text-orange-600' : ''}`}\n >\n {med.refillsRemaining} remaining\n </span>\n </div>\n </div>\n {med.sideEffects.length > 0 && (\n <div className=\"mt-2 flex gap-1 flex-wrap\">\n {med.sideEffects.map((se, i) => (\n <span\n key={i}\n className=\"text-xs px-2 py-0.5 rounded-full bg-red-50 text-red-600\"\n >\n {se}\n </span>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientMentalHealthPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/PatientMentalHealthPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,uBAAuB,4CA0GtC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { useMyBodyShieldStore as e } from "../store/mybodyshieldStore.js";
|
|
2
|
+
import { Brain as t, Moon as n, Smile as r, Zap as i } from "lucide-react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/mybodyshield/pages/PatientMentalHealthPage.tsx
|
|
6
|
+
var d = {
|
|
7
|
+
great: "bg-green-100 text-green-700",
|
|
8
|
+
good: "bg-blue-100 text-blue-700",
|
|
9
|
+
okay: "bg-yellow-100 text-yellow-700",
|
|
10
|
+
bad: "bg-orange-100 text-orange-700",
|
|
11
|
+
terrible: "bg-red-100 text-red-700"
|
|
12
|
+
};
|
|
13
|
+
function f() {
|
|
14
|
+
let { mentalHealthEntries: f } = e(), p = f[0];
|
|
15
|
+
return /* @__PURE__ */ o("div", {
|
|
16
|
+
className: "space-y-6 p-6",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
19
|
+
className: "text-2xl font-semibold",
|
|
20
|
+
children: "Mental Health"
|
|
21
|
+
}), /* @__PURE__ */ a("p", {
|
|
22
|
+
className: "text-sm text-muted-foreground",
|
|
23
|
+
children: "Track your mood, stress, energy, and sleep quality"
|
|
24
|
+
})] }),
|
|
25
|
+
p && /* @__PURE__ */ o("div", {
|
|
26
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
29
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
30
|
+
children: [/* @__PURE__ */ a(u, {
|
|
31
|
+
className: "text-sm font-medium",
|
|
32
|
+
children: "Current Mood"
|
|
33
|
+
}), /* @__PURE__ */ a(r, { className: "h-4 w-4 text-green-500" })]
|
|
34
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a("div", {
|
|
35
|
+
className: "text-2xl font-bold capitalize",
|
|
36
|
+
children: p.mood
|
|
37
|
+
}), /* @__PURE__ */ a("p", {
|
|
38
|
+
className: "text-xs text-muted-foreground",
|
|
39
|
+
children: "Reported today"
|
|
40
|
+
})] })] }),
|
|
41
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
42
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
43
|
+
children: [/* @__PURE__ */ a(u, {
|
|
44
|
+
className: "text-sm font-medium",
|
|
45
|
+
children: "Energy Level"
|
|
46
|
+
}), /* @__PURE__ */ a(i, { className: "h-4 w-4 text-yellow-500" })]
|
|
47
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o("div", {
|
|
48
|
+
className: "text-2xl font-bold",
|
|
49
|
+
children: [p.energy, "/10"]
|
|
50
|
+
}), /* @__PURE__ */ a("p", {
|
|
51
|
+
className: "text-xs text-muted-foreground",
|
|
52
|
+
children: "Self-reported scale"
|
|
53
|
+
})] })] }),
|
|
54
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
55
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
56
|
+
children: [/* @__PURE__ */ a(u, {
|
|
57
|
+
className: "text-sm font-medium",
|
|
58
|
+
children: "Stress Level"
|
|
59
|
+
}), /* @__PURE__ */ a(t, { className: "h-4 w-4 text-red-500" })]
|
|
60
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o("div", {
|
|
61
|
+
className: "text-2xl font-bold",
|
|
62
|
+
children: [p.stressLevel, "/10"]
|
|
63
|
+
}), /* @__PURE__ */ a("p", {
|
|
64
|
+
className: "text-xs text-muted-foreground",
|
|
65
|
+
children: "Lower is better"
|
|
66
|
+
})] })] }),
|
|
67
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ o(l, {
|
|
68
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
69
|
+
children: [/* @__PURE__ */ a(u, {
|
|
70
|
+
className: "text-sm font-medium",
|
|
71
|
+
children: "Sleep Quality"
|
|
72
|
+
}), /* @__PURE__ */ a(n, { className: "h-4 w-4 text-indigo-500" })]
|
|
73
|
+
}), /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ o("div", {
|
|
74
|
+
className: "text-2xl font-bold",
|
|
75
|
+
children: [p.sleepQuality, "/10"]
|
|
76
|
+
}), /* @__PURE__ */ a("p", {
|
|
77
|
+
className: "text-xs text-muted-foreground",
|
|
78
|
+
children: "Higher is better"
|
|
79
|
+
})] })] })
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, { children: "Daily Mood Journal" }) }), /* @__PURE__ */ a(c, { children: /* @__PURE__ */ a("div", {
|
|
83
|
+
className: "space-y-4",
|
|
84
|
+
children: f.map((e) => /* @__PURE__ */ o("div", {
|
|
85
|
+
className: "p-4 rounded-lg border",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ o("div", {
|
|
88
|
+
className: "flex items-center justify-between mb-2",
|
|
89
|
+
children: [/* @__PURE__ */ a("p", {
|
|
90
|
+
className: "text-xs text-muted-foreground",
|
|
91
|
+
children: e.date
|
|
92
|
+
}), /* @__PURE__ */ a("span", {
|
|
93
|
+
className: `text-xs font-medium px-2 py-0.5 rounded-full capitalize ${d[e.mood]}`,
|
|
94
|
+
children: e.mood
|
|
95
|
+
})]
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ o("div", {
|
|
98
|
+
className: "grid grid-cols-3 gap-3 mb-3",
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ o("div", {
|
|
101
|
+
className: "text-center p-2 rounded bg-muted/50",
|
|
102
|
+
children: [/* @__PURE__ */ a("p", {
|
|
103
|
+
className: "text-xs text-muted-foreground",
|
|
104
|
+
children: "Energy"
|
|
105
|
+
}), /* @__PURE__ */ o("p", {
|
|
106
|
+
className: "text-sm font-medium",
|
|
107
|
+
children: [e.energy, "/10"]
|
|
108
|
+
})]
|
|
109
|
+
}),
|
|
110
|
+
/* @__PURE__ */ o("div", {
|
|
111
|
+
className: "text-center p-2 rounded bg-muted/50",
|
|
112
|
+
children: [/* @__PURE__ */ a("p", {
|
|
113
|
+
className: "text-xs text-muted-foreground",
|
|
114
|
+
children: "Stress"
|
|
115
|
+
}), /* @__PURE__ */ o("p", {
|
|
116
|
+
className: "text-sm font-medium",
|
|
117
|
+
children: [e.stressLevel, "/10"]
|
|
118
|
+
})]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ o("div", {
|
|
121
|
+
className: "text-center p-2 rounded bg-muted/50",
|
|
122
|
+
children: [/* @__PURE__ */ a("p", {
|
|
123
|
+
className: "text-xs text-muted-foreground",
|
|
124
|
+
children: "Sleep"
|
|
125
|
+
}), /* @__PURE__ */ o("p", {
|
|
126
|
+
className: "text-sm font-medium",
|
|
127
|
+
children: [e.sleepQuality, "/10"]
|
|
128
|
+
})]
|
|
129
|
+
})
|
|
130
|
+
]
|
|
131
|
+
}),
|
|
132
|
+
e.notes && /* @__PURE__ */ a("p", {
|
|
133
|
+
className: "text-sm text-muted-foreground mb-2",
|
|
134
|
+
children: e.notes
|
|
135
|
+
}),
|
|
136
|
+
/* @__PURE__ */ a("div", {
|
|
137
|
+
className: "flex gap-1 flex-wrap",
|
|
138
|
+
children: e.activities.map((e, t) => /* @__PURE__ */ a("span", {
|
|
139
|
+
className: "text-xs px-2 py-0.5 rounded-full bg-primary/10 text-primary",
|
|
140
|
+
children: e
|
|
141
|
+
}, t))
|
|
142
|
+
})
|
|
143
|
+
]
|
|
144
|
+
}, e.id))
|
|
145
|
+
}) })] })
|
|
146
|
+
]
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//#endregion
|
|
150
|
+
export { f as PatientMentalHealthPage };
|
|
151
|
+
|
|
152
|
+
//# sourceMappingURL=PatientMentalHealthPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientMentalHealthPage.js","names":[],"sources":["../../../src/mybodyshield/pages/PatientMentalHealthPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Smile, Zap, Brain, Moon } from 'lucide-react';\nimport { useMyBodyShieldStore } from '../store/mybodyshieldStore';\n\nconst moodEmojis: Record<string, string> = {\n great: 'bg-green-100 text-green-700',\n good: 'bg-blue-100 text-blue-700',\n okay: 'bg-yellow-100 text-yellow-700',\n bad: 'bg-orange-100 text-orange-700',\n terrible: 'bg-red-100 text-red-700',\n};\n\nexport function PatientMentalHealthPage() {\n const { mentalHealthEntries } = useMyBodyShieldStore();\n const latest = mentalHealthEntries[0];\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Mental Health</h1>\n <p className=\"text-sm text-muted-foreground\">\n Track your mood, stress, energy, and sleep quality\n </p>\n </div>\n\n {latest && (\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Current Mood</CardTitle>\n <Smile className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold capitalize\">{latest.mood}</div>\n <p className=\"text-xs text-muted-foreground\">Reported today</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Energy Level</CardTitle>\n <Zap className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{latest.energy}/10</div>\n <p className=\"text-xs text-muted-foreground\">Self-reported scale</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Stress Level</CardTitle>\n <Brain className=\"h-4 w-4 text-red-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{latest.stressLevel}/10</div>\n <p className=\"text-xs text-muted-foreground\">Lower is better</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Sleep Quality</CardTitle>\n <Moon className=\"h-4 w-4 text-indigo-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{latest.sleepQuality}/10</div>\n <p className=\"text-xs text-muted-foreground\">Higher is better</p>\n </CardContent>\n </Card>\n </div>\n )}\n\n <Card>\n <CardHeader>\n <CardTitle>Daily Mood Journal</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {mentalHealthEntries.map((entry) => (\n <div key={entry.id} className=\"p-4 rounded-lg border\">\n <div className=\"flex items-center justify-between mb-2\">\n <p className=\"text-xs text-muted-foreground\">{entry.date}</p>\n <span\n className={`text-xs font-medium px-2 py-0.5 rounded-full capitalize ${moodEmojis[entry.mood]}`}\n >\n {entry.mood}\n </span>\n </div>\n <div className=\"grid grid-cols-3 gap-3 mb-3\">\n <div className=\"text-center p-2 rounded bg-muted/50\">\n <p className=\"text-xs text-muted-foreground\">Energy</p>\n <p className=\"text-sm font-medium\">{entry.energy}/10</p>\n </div>\n <div className=\"text-center p-2 rounded bg-muted/50\">\n <p className=\"text-xs text-muted-foreground\">Stress</p>\n <p className=\"text-sm font-medium\">{entry.stressLevel}/10</p>\n </div>\n <div className=\"text-center p-2 rounded bg-muted/50\">\n <p className=\"text-xs text-muted-foreground\">Sleep</p>\n <p className=\"text-sm font-medium\">{entry.sleepQuality}/10</p>\n </div>\n </div>\n {entry.notes && <p className=\"text-sm text-muted-foreground mb-2\">{entry.notes}</p>}\n <div className=\"flex gap-1 flex-wrap\">\n {entry.activities.map((act, i) => (\n <span\n key={i}\n className=\"text-xs px-2 py-0.5 rounded-full bg-primary/10 text-primary\"\n >\n {act}\n </span>\n ))}\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatientNutritionTrackingPage.d.ts","sourceRoot":"","sources":["../../../src/mybodyshield/pages/PatientNutritionTrackingPage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,4BAA4B,4CAgG3C"}
|