cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
121 lines (120 loc) • 4.51 kB
JavaScript
"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;