UNPKG

emr-types

Version:

Comprehensive TypeScript Types Library for Electronic Medical Record (EMR) Applications - Domain-Driven Design with Zod Validation

106 lines 2.98 kB
/** * Status Enum * * Common status values used across domains * * @enum Status * @description Generic status enum for domain entities */ export var Status; (function (Status) { Status["ACTIVE"] = "active"; Status["INACTIVE"] = "inactive"; Status["PENDING"] = "pending"; Status["APPROVED"] = "approved"; Status["REJECTED"] = "rejected"; Status["SUSPENDED"] = "suspended"; Status["DELETED"] = "deleted"; Status["ARCHIVED"] = "archived"; Status["DRAFT"] = "draft"; Status["PUBLISHED"] = "published"; Status["EXPIRED"] = "expired"; Status["CANCELLED"] = "cancelled"; Status["COMPLETED"] = "completed"; Status["IN_PROGRESS"] = "in_progress"; Status["ON_HOLD"] = "on_hold"; Status["FAILED"] = "failed"; Status["SUCCESS"] = "success"; Status["ERROR"] = "error"; Status["WARNING"] = "warning"; Status["INFO"] = "info"; })(Status || (Status = {})); /** * Status Categories * * Group statuses by their meaning */ export const StatusCategories = { /** Active states */ ACTIVE: [Status.ACTIVE, Status.APPROVED, Status.PUBLISHED, Status.SUCCESS], /** Inactive states */ INACTIVE: [Status.INACTIVE, Status.SUSPENDED, Status.DELETED, Status.ARCHIVED], /** Pending states */ PENDING: [Status.PENDING, Status.DRAFT, Status.ON_HOLD], /** Completed states */ COMPLETED: [Status.COMPLETED, Status.EXPIRED, Status.CANCELLED], /** Error states */ ERROR: [Status.REJECTED, Status.FAILED, Status.ERROR] }; /** * Status Utility Functions */ export const StatusUtils = { /** * Check if a status is active */ isActive: (status) => { return StatusCategories.ACTIVE.includes(status); }, /** * Check if a status is inactive */ isInactive: (status) => { return StatusCategories.INACTIVE.includes(status); }, /** * Check if a status is pending */ isPending: (status) => { return StatusCategories.PENDING.includes(status); }, /** * Check if a status is completed */ isCompleted: (status) => { return StatusCategories.COMPLETED.includes(status); }, /** * Check if a status is an error */ isError: (status) => { return StatusCategories.ERROR.includes(status); }, /** * Get status display name */ getDisplayName: (status) => { return status.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()); }, /** * Get status color (for UI) */ getColor: (status) => { if (StatusUtils.isActive(status)) return 'green'; if (StatusUtils.isInactive(status)) return 'gray'; if (StatusUtils.isPending(status)) return 'yellow'; if (StatusUtils.isCompleted(status)) return 'blue'; if (StatusUtils.isError(status)) return 'red'; return 'default'; } }; //# sourceMappingURL=Status.js.map