UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

121 lines (120 loc) 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CAdmissionVitalInformation = exports.CAdmissionEntityAccessPassManagementAdmvi = void 0; var mongoose_1 = require("mongoose"); /** * Admission Vital Information Schema * * Purpose: Store flexible vital information for admission applications with timestamps * Prefix: admvi_ (admission vital information) * * BUSINESS LOGIC: * 1. Multiple vital information entries per admission (height, weight, blood pressure, etc.) * 2. Flexible structure - vital types configurable via general master * 3. Each entry has capture date and user for audit trail * 4. Supports various units of measurement (configurable via general master) * 5. Entity-based access control */ /* SCHEMA START */ var admission_vital_information = new mongoose_1.Schema({ admvi_admission_id_admap: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'admission_application_main', required: true, comment: "Reference to admission application" }, admvi_vital_type_id_sygms: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'core_general_master', required: true, comment: "Vital information type (Height, Weight, Blood Pressure, etc.) - Reference to core_general_master with type 'VITAL_INFORMATION_TYPE'" }, admvi_value: { type: String, maxlength: 100, trim: true, required: true, comment: "Vital information value (stored as string to support various data types)" }, admvi_unit_id_sygms: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'core_general_master', comment: "Unit of measurement (cm, kg, mmHg, bpm, etc.) - Reference to core_general_master with type 'VITAL_INFORMATION_UNIT'" }, admvi_captured_date: { type: Date, required: true, default: Date.now, comment: "Date when vital information was captured" }, admvi_captured_by_user: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'auth_user_mst', comment: "User who captured the vital information" }, admvi_remarks: { type: String, maxlength: 500, trim: true, comment: "Additional remarks/notes about the vital information" }, admvi_isactive: { type: Boolean, default: true, comment: "Is active" } }, { collection: 'admission_vital_information' }); // Indexes for better performance admission_vital_information.index({ admvi_admission_id_admap: 1 }); admission_vital_information.index({ admvi_vital_type_id_sygms: 1 }); admission_vital_information.index({ admvi_captured_date: 1 }); admission_vital_information.index({ admvi_isactive: 1 }); var CAdmissionVitalInformation = mongoose_1.default.model("admission_vital_information", admission_vital_information); exports.CAdmissionVitalInformation = CAdmissionVitalInformation; // Access pass for entity-based access control var admission_entity_access_pass_management_admvi = new mongoose_1.Schema({ admepm_user_id_user: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'auth_user_mst', comment: "User who has access" }, admepm_entity_id_syen: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'core_system_entity', comment: "Entity context" }, admepm_access_pass_to: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'admission_vital_information', comment: "Vital information record access" }, admepm_is_owner: { type: Boolean, default: true, comment: "Is owner of record" }, admepm_can_edit: { type: Boolean, default: true, comment: "Can edit permission" }, admepm_can_view: { type: Boolean, default: true, comment: "Can view permission" }, admepm_isactive: { type: Boolean, default: true, comment: "Is access active" }, admepm_actions_allowed: { type: Object, default: {}, comment: "Specific actions allowed" } }, { collection: 'admission_entity_access_pass_management_admvi' }); var CAdmissionEntityAccessPassManagementAdmvi = mongoose_1.default.model("admission_entity_access_pass_management_admvi", admission_entity_access_pass_management_admvi); exports.CAdmissionEntityAccessPassManagementAdmvi = CAdmissionEntityAccessPassManagementAdmvi;