UNPKG

emr-types

Version:

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

85 lines 2.19 kB
/** * Priority Enum * * Common priority values used across domains * * @enum Priority * @description Priority enum for domain entities */ export var Priority; (function (Priority) { Priority["LOW"] = "low"; Priority["NORMAL"] = "normal"; Priority["HIGH"] = "high"; Priority["URGENT"] = "urgent"; Priority["CRITICAL"] = "critical"; })(Priority || (Priority = {})); /** * Priority Levels * * Numeric values for priority comparison */ export const PriorityLevels = { [Priority.LOW]: 1, [Priority.NORMAL]: 2, [Priority.HIGH]: 3, [Priority.URGENT]: 4, [Priority.CRITICAL]: 5 }; /** * Priority Utility Functions */ export const PriorityUtils = { /** * Check if priority1 is higher than priority2 */ isHigher: (priority1, priority2) => { return PriorityLevels[priority1] > PriorityLevels[priority2]; }, /** * Check if priority1 is lower than priority2 */ isLower: (priority1, priority2) => { return PriorityLevels[priority1] < PriorityLevels[priority2]; }, /** * Check if priority1 is equal to priority2 */ isEqual: (priority1, priority2) => { return PriorityLevels[priority1] === PriorityLevels[priority2]; }, /** * Get priority display name */ getDisplayName: (priority) => { return priority.charAt(0).toUpperCase() + priority.slice(1); }, /** * Get priority color (for UI) */ getColor: (priority) => { switch (priority) { case Priority.LOW: return 'gray'; case Priority.NORMAL: return 'blue'; case Priority.HIGH: return 'orange'; case Priority.URGENT: return 'red'; case Priority.CRITICAL: return 'purple'; default: return 'default'; } }, /** * Get all priorities sorted by level (highest first) */ getAllSorted: () => { return Object.entries(PriorityLevels) .sort(([, a], [, b]) => b - a) .map(([priority]) => priority); } }; //# sourceMappingURL=Priority.js.map