@doctorus/common
v0.0.39
Published
Common utilities and libraries for the DOCTORUS project
Readme
@doctorus/common
Common TypeScript building blocks shared across the Doctorus platform.
This package centralizes:
- operations and permission primitives
- status enums with metadata and translations
- audit event types
- AWS SSM parameter keys and path helpers
Installation
pnpm add @doctorus/commonExports
import {
// Operations
Action,
Operation,
Resource,
getActionLabel,
getOperationLabel,
// Status
MedicalServiceStatus,
getStatusLabel,
getStatusMetadata,
// Audit
AuditEvent,
// SSM
SSM_PARAM_KEY,
SSM_PARAM_METADATA,
getSSMParamDescription,
buildSSMPath,
} from '@doctorus/common';Modules
Operations
Defines typed actions, resources, and Operation pairs used for authorization, labeling, and audit context.
import { Action, Operation, Resource, getOperationLabel } from '@doctorus/common';
const operation = new Operation(Action.CREATE, Resource.PRESCRIPTION);
getOperationLabel(operation, 'us-EN'); // "Create Prescription"
getOperationLabel(operation, 'fr-FR'); // "Créer Ordonnance"Status
Provides reusable status enums and metadata with labels, descriptions, colors, and icons.
import { MedicalServiceStatus, getStatusLabel, getStatusMetadata } from '@doctorus/common';
const status = MedicalServiceStatus.IN_PROGRESS;
getStatusLabel(status, 'us-EN'); // "In Progress"
getStatusMetadata(status).icon; // e.g. "medical_services"Audit
Contains audit event types shared by services that log user or system activity.
import { AuditEvent, Action, Resource } from '@doctorus/common';
const event: AuditEvent = {
id: 'evt-123',
timestamp: new Date(),
action: Action.CREATE,
resource: Resource.PATIENT,
result: 'success',
};SSM
Defines known SSM parameter keys and utilities to build, inspect, and describe parameter paths.
import { SSM_PARAM_KEY, getSSMParamDescription, buildSSMPath, extractKeyFromPath } from '@doctorus/common';
const key = SSM_PARAM_KEY.DB_PASSWORD;
buildSSMPath('prod', key); // "/prod/db-password"
getSSMParamDescription(key); // "Database password used by application services."
extractKeyFromPath('/prod/db-password'); // SSM_PARAM_KEY.DB_PASSWORDInternationalization
User-facing labels in this package use the shared locale shape:
'us-EN''fr-FR'
This applies to operations and status metadata APIs.
Development
pnpm testruns Jest and lint checks via Projenpnpm buildcompiles the librarypnpm projenregenerates project files from .projenrc.ts
Notes
- The root
README.mdis generated from.projenrc.ts - Edit Projen configuration first, then re-run
pnpm projenwhen documentation changes
