Fully implement medical documentation

This commit is contained in:
Josh-Heaps
2026-02-10 16:54:51 -07:00
parent 9ede3ae53f
commit 6814270b7c
29 changed files with 5617 additions and 1165 deletions
+21
View File
@@ -0,0 +1,21 @@
namespace Media.JoshHeaps.Net.Models;
public class MedicalBill
{
public long Id { get; set; }
public long PersonId { get; set; }
public decimal TotalAmount { get; set; }
public string? Summary { get; set; }
public string? Category { get; set; }
public DateTime? BillDate { get; set; }
public long? DoctorId { get; set; }
public long? ProviderId { get; set; }
public string Source { get; set; } = "manual";
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
// Populated via JOIN, not stored in DB
public string? DoctorName { get; set; }
public string? ProviderName { get; set; }
public string? DocumentNames { get; set; }
}
@@ -0,0 +1,11 @@
namespace Media.JoshHeaps.Net.Models;
public class MedicalBillCharge
{
public long Id { get; set; }
public long BillId { get; set; }
public string Description { get; set; } = "";
public decimal Amount { get; set; }
public string Source { get; set; } = "manual";
public DateTime CreatedAt { get; set; }
}
@@ -0,0 +1,17 @@
namespace Media.JoshHeaps.Net.Models;
public class MedicalBillPayment
{
public long Id { get; set; }
public long BillId { get; set; }
public long? DocumentId { get; set; }
public decimal Amount { get; set; }
public string PaymentType { get; set; } = string.Empty;
public DateTime? PaymentDate { get; set; }
public string? Description { get; set; }
public string Source { get; set; } = "manual";
public DateTime CreatedAt { get; set; }
// Populated via JOIN, not stored in DB
public string? DocumentName { get; set; }
}
@@ -0,0 +1,18 @@
namespace Media.JoshHeaps.Net.Models;
public class MedicalBillingProvider
{
public long Id { get; set; }
public string Name { get; set; } = "";
public long PersonId { get; set; }
public string? Notes { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
// Populated via aggregation, not stored in DB
public decimal TotalCharged { get; set; }
public decimal TotalPaid { get; set; }
public int BillCount { get; set; }
public decimal Balance => TotalCharged - TotalPaid;
}
@@ -8,6 +8,7 @@ public class MedicalPrescription
public string MedicationName { get; set; } = string.Empty;
public string? Dosage { get; set; }
public string? Frequency { get; set; }
public string? RxNumber { get; set; }
public bool IsActive { get; set; } = true;
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
@@ -1,14 +1,12 @@
namespace Media.JoshHeaps.Net.Models;
public class MedicalDocumentCost
public class MedicalProviderPayment
{
public long Id { get; set; }
public long DocumentId { get; set; }
public long PersonId { get; set; }
public long ProviderId { get; set; }
public long? DocumentId { get; set; }
public decimal Amount { get; set; }
public string? CostType { get; set; }
public string? Category { get; set; }
public DateTime? CostDate { get; set; }
public DateTime? PaymentDate { get; set; }
public string? Description { get; set; }
public string Source { get; set; } = "manual";
public DateTime CreatedAt { get; set; }
@@ -0,0 +1,13 @@
namespace Media.JoshHeaps.Net.Models;
public class TimelineEvent
{
public string EventType { get; set; } = "";
public long Id { get; set; }
public string? Label { get; set; }
public string? Detail { get; set; }
public string? SubType { get; set; }
public DateTime? EventDate { get; set; }
public long? DoctorId { get; set; }
public DateTime CreatedAt { get; set; }
}
@@ -0,0 +1,27 @@
namespace Media.JoshHeaps.Net.Models;
public class VisitPrepData
{
public List<VisitPrepDocument> RecentDocuments { get; set; } = [];
public List<MedicalCondition> ActiveConditions { get; set; } = [];
public List<MedicalPrescription> ActivePrescriptions { get; set; } = [];
public List<VisitPrepBill> RecentBills { get; set; } = [];
}
public class VisitPrepDocument
{
public long Id { get; set; }
public string? Title { get; set; }
public string? FileName { get; set; }
public DateTime? DocumentDate { get; set; }
public string? Classification { get; set; }
}
public class VisitPrepBill
{
public long Id { get; set; }
public decimal TotalAmount { get; set; }
public string? Summary { get; set; }
public string? Category { get; set; }
public DateTime? BillDate { get; set; }
}