Implement first four phases of medical docs roadmap
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalCondition
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long PersonId { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public DateTime? DiagnosedDate { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public bool IsActive { get; set; } = true;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalDoctor
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? Specialty { get; set; }
|
||||
public string? Phone { get; set; }
|
||||
public string? Address { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalDocument
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long PersonId { get; set; }
|
||||
public string DocumentType { get; set; } = "file"; // "file" or "note"
|
||||
public string? FileName { get; set; }
|
||||
public string? FilePath { get; set; }
|
||||
public long? FileSize { get; set; }
|
||||
public string? MimeType { get; set; }
|
||||
public bool IsEncrypted { get; set; } = true;
|
||||
public string? Title { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public DateTime? DocumentDate { get; set; }
|
||||
public string? Classification { get; set; }
|
||||
public string? ExtractedText { get; set; }
|
||||
public bool AiProcessed { get; set; }
|
||||
public DateTime? AiProcessedAt { get; set; }
|
||||
public string? AiRawResponse { get; set; }
|
||||
public long? DoctorId { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
|
||||
// Convenience properties populated separately
|
||||
public List<MedicalTag> Tags { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalDocumentCost
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long DocumentId { get; set; }
|
||||
public long PersonId { get; set; }
|
||||
public decimal Amount { get; set; }
|
||||
public string? CostType { get; set; }
|
||||
public string? Category { get; set; }
|
||||
public DateTime? CostDate { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public string Source { get; set; } = "manual";
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalPerson
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public DateTime? DateOfBirth { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalPrescription
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long PersonId { get; set; }
|
||||
public long? DoctorId { get; set; }
|
||||
public string MedicationName { get; set; } = string.Empty;
|
||||
public string? Dosage { get; set; }
|
||||
public string? Frequency { get; set; }
|
||||
public bool IsActive { get; set; } = true;
|
||||
public DateTime? StartDate { get; set; }
|
||||
public DateTime? EndDate { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
|
||||
// Populated via JOIN, not stored in DB
|
||||
public string? DoctorName { get; set; }
|
||||
public DateTime? LastPickupDate { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalPrescriptionPickup
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long PrescriptionId { get; set; }
|
||||
public long? DocumentId { get; set; }
|
||||
public DateTime PickupDate { get; set; }
|
||||
public string? Quantity { get; set; }
|
||||
public string? Pharmacy { get; set; }
|
||||
public decimal? Cost { get; set; }
|
||||
public string? Notes { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Media.JoshHeaps.Net.Models;
|
||||
|
||||
public class MedicalTag
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user