@centricare/contract 0.3.2 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import z5, { z } from 'zod';
2
- import { toMongooseSchema } from '@nullix/zod-mongoose';
3
- import { model } from 'mongoose';
2
+ import mongoose, { model } from 'mongoose';
3
+ import { withMongoose, toMongooseSchema } from '@nullix/zod-mongoose';
4
4
 
5
5
  // src/commons/timestamp.ts
6
6
  var isoDatetimeRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:?\d{2})$/;
@@ -1007,11 +1007,14 @@ var addressSchema = z.object({
1007
1007
  province: codedConceptSchema,
1008
1008
  postal_code: z.string().optional()
1009
1009
  });
1010
- var objectIdSchema = z.string().length(24, {
1011
- message: "ObjectId must be a 24-character hexadecimal string"
1012
- }).regex(/^[0-9a-fA-F]{24}$/, {
1013
- message: "ObjectId must be a valid MongoDB ObjectId (24-character hex string)"
1014
- });
1010
+ var _objectIdSchema = withMongoose(
1011
+ z.string().length(24).refine(
1012
+ (val) => /^[0-9a-fA-F]{24}$/.test(val),
1013
+ { message: "Invalid ObjectId: must be a 24-character hexadecimal string" }
1014
+ ),
1015
+ { type: mongoose.Schema.Types.ObjectId }
1016
+ );
1017
+ var objectIdSchema = _objectIdSchema;
1015
1018
  var baseSchema = (version) => z.object({
1016
1019
  _id: objectIdSchema,
1017
1020
  created_at: timestampSchema,
@@ -1029,6 +1032,234 @@ var baseSchemaWithExpiredAt = (version) => z.object({
1029
1032
  expired_at: timestampSchema,
1030
1033
  schema_version: z.number().int().positive().default(version)
1031
1034
  });
1035
+ var PATIENT_SCHEMA_VERSION = 1;
1036
+ var patientSchema = baseSchema(PATIENT_SCHEMA_VERSION).extend({
1037
+ organization_id: objectIdSchema,
1038
+ registering_facility_id: objectIdSchema,
1039
+ identifiers: z.array(codedConceptSchema),
1040
+ salutation: codedConceptSchema,
1041
+ first_name: z.string().min(1, { message: "first_name is required" }),
1042
+ middle_name: z.string().optional(),
1043
+ last_name: z.string().min(1, { message: "last_name is required" }),
1044
+ title: z.string().optional(),
1045
+ image: z.string().optional(),
1046
+ demographic: demographicSchema.extend({
1047
+ place_of_birth: demographicSchema.shape.place_of_birth.unwrap(),
1048
+ date_of_birth: demographicSchema.shape.date_of_birth.unwrap(),
1049
+ marital_status: demographicSchema.shape.marital_status.unwrap()
1050
+ }),
1051
+ statuses: z.array(codedConceptSchema).nonempty({
1052
+ message: "statuses must contain at least one CodedConcept"
1053
+ }),
1054
+ contacts: z.array(codedConceptSchema).optional(),
1055
+ address: addressSchema
1056
+ });
1057
+ var PatientMongooseSchema = toMongooseSchema(patientSchema);
1058
+ var PatientModelName = "patients";
1059
+ var PatientModel = mongoose.models[PatientModelName] || model(PatientModelName, PatientMongooseSchema);
1060
+
1061
+ // src/models/patient/patient-minimal.schema.ts
1062
+ var patientMinimalSchema = patientSchema.omit({
1063
+ _id: true,
1064
+ created_at: true,
1065
+ created_by: true,
1066
+ updated_at: true,
1067
+ updated_by: true,
1068
+ schema_version: true
1069
+ });
1070
+
1071
+ // src/models/patient/patient-partial.schema.ts
1072
+ var patientPartialSchema = patientMinimalSchema.partial();
1073
+
1074
+ // src/models/appointment/appointment.schema.ts
1075
+ var APPOINTMENT_SCHEMA_VERSION = 1;
1076
+ var appointmentSchema = baseSchema(APPOINTMENT_SCHEMA_VERSION).extend({
1077
+ facility_id: z.string(),
1078
+ organization_id: z.string(),
1079
+ identifiers: z.array(codedConceptSchema),
1080
+ patient: z.union([patientPartialSchema, objectIdSchema]),
1081
+ queue_number_id: objectIdSchema,
1082
+ practitioner_id: objectIdSchema,
1083
+ unit_id: objectIdSchema,
1084
+ date: z.string(),
1085
+ session: z.string(),
1086
+ payer_type: z.string(),
1087
+ method: codedConceptSchema,
1088
+ complaint: z.string(),
1089
+ statuses: z.array(codedConceptSchema),
1090
+ cancel_metadata: z.object({
1091
+ reason: z.string().nullable(),
1092
+ user_id: z.string().nullable(),
1093
+ timestamp: timestampSchema.nullable()
1094
+ }),
1095
+ register_metadata: z.object({
1096
+ reason: z.string().nullable(),
1097
+ user_id: z.string().nullable(),
1098
+ timestamp: timestampSchema.nullable()
1099
+ })
1100
+ });
1101
+ var AppointmentMongooseSchema = toMongooseSchema(appointmentSchema);
1102
+ var AppointmentModelName = "appointments";
1103
+ var AppointmentModel = mongoose.models[AppointmentModelName] || model(AppointmentModelName, AppointmentMongooseSchema);
1104
+
1105
+ // src/models/appointment/appointment-minimal.schema.ts
1106
+ var appointmentMinimalSchema = appointmentSchema.omit({
1107
+ _id: true,
1108
+ created_at: true,
1109
+ created_by: true,
1110
+ updated_at: true,
1111
+ updated_by: true,
1112
+ schema_version: true
1113
+ });
1114
+
1115
+ // src/models/appointment/appointment-partial.schema.ts
1116
+ var appointmentPartialSchema = appointmentMinimalSchema.partial();
1117
+ var ENCOUNTER_SCHEMA_VERSION = 1;
1118
+ var encounterSchema = baseSchema(ENCOUNTER_SCHEMA_VERSION).extend({
1119
+ facility_id: z.string(),
1120
+ organization_id: z.string(),
1121
+ identifiers: z.array(codedConceptSchema),
1122
+ type: codedConceptSchema,
1123
+ appointment_id: objectIdSchema.nullable(),
1124
+ patient: z.union([patientPartialSchema, objectIdSchema]),
1125
+ unit_id: objectIdSchema,
1126
+ practitioner_id: objectIdSchema.nullable(),
1127
+ date: z.string(),
1128
+ session: z.string(),
1129
+ queue_number_id: objectIdSchema,
1130
+ statuses: z.array(codedConceptSchema),
1131
+ cancel_metadata: z.object({
1132
+ reason: z.string().nullable(),
1133
+ user_id: z.string().nullable(),
1134
+ timestamp: timestampSchema.nullable()
1135
+ }),
1136
+ discharge_metadata: z.object({
1137
+ reason: z.string().nullable(),
1138
+ user_id: z.string().nullable(),
1139
+ timestamp: timestampSchema.nullable()
1140
+ })
1141
+ });
1142
+ var EncounterMongooseSchema = toMongooseSchema(encounterSchema);
1143
+ var EncounterModelName = "encounters";
1144
+ var EncounterModel = mongoose.models[EncounterModelName] || model(EncounterModelName, EncounterMongooseSchema);
1145
+
1146
+ // src/models/encounter/encounter-minimal.schema.ts
1147
+ var encounterMinimalSchema = encounterSchema.omit({
1148
+ _id: true,
1149
+ created_at: true,
1150
+ created_by: true,
1151
+ updated_at: true,
1152
+ updated_by: true,
1153
+ schema_version: true
1154
+ });
1155
+
1156
+ // src/models/encounter/encounter-partial.schema.ts
1157
+ var encounterPartialSchema = encounterMinimalSchema.partial();
1158
+ var ENCOUNTER_ADDITIONAL_SCHEMA_VERSION = 1;
1159
+ var encounterAdditionalSchema = baseSchema(
1160
+ ENCOUNTER_ADDITIONAL_SCHEMA_VERSION
1161
+ ).extend({
1162
+ encounter_id: objectIdSchema,
1163
+ type: codedConceptSchema,
1164
+ data: z.union([z.object({}), z.array(z.any())])
1165
+ });
1166
+ var EncounterAdditionalMongooseSchema = toMongooseSchema(encounterAdditionalSchema);
1167
+ var EncounterAdditionalModelName = "encounter_additionals";
1168
+ var EncounterAdditionalModel = mongoose.models[EncounterAdditionalModelName] || model(EncounterAdditionalModelName, EncounterAdditionalMongooseSchema);
1169
+
1170
+ // src/models/encounter-additional/encounter-additional-minimal.schema.ts
1171
+ var encounterAdditionalMinimalSchema = encounterAdditionalSchema.omit({
1172
+ _id: true,
1173
+ created_at: true,
1174
+ created_by: true,
1175
+ updated_at: true,
1176
+ updated_by: true,
1177
+ schema_version: true
1178
+ });
1179
+
1180
+ // src/models/encounter-additional/encounter-additional-partial.schema.ts
1181
+ var encounterAdditionalPartialSchema = encounterAdditionalMinimalSchema.partial();
1182
+ var MEDICAL_RECORD_SCHEMA_VERSION = 1;
1183
+ var ALLOWED_SYSTEM = {
1184
+ type: ["crn:medical-record:type"],
1185
+ identifiers: ["crn:identifier"],
1186
+ statuses: ["crn:status:system", "crn:status:medical-record"],
1187
+ component: {
1188
+ label: ["crn:medical-record:label"]
1189
+ }
1190
+ };
1191
+ var medicalRecordComponentSchema = z.object({
1192
+ label: codedConceptSchema.refine(
1193
+ (data) => ALLOWED_SYSTEM.component.label.includes(data.system),
1194
+ { message: "Invalid CodedConcept: System are not allowed" }
1195
+ ),
1196
+ value: z.any(),
1197
+ recorded_by: z.string(),
1198
+ recorded_at: timestampSchema,
1199
+ validated: z.boolean().default(false),
1200
+ validated_at: timestampSchema
1201
+ });
1202
+ var medicalRecordSchema = baseSchema(
1203
+ MEDICAL_RECORD_SCHEMA_VERSION
1204
+ ).extend({
1205
+ type: codedConceptSchema.refine(
1206
+ (data) => ALLOWED_SYSTEM.type.includes(data.system),
1207
+ { message: "Invalid CodedConcept: System are not allowed" }
1208
+ ),
1209
+ identifiers: z.array(
1210
+ codedConceptSchema.refine(
1211
+ (data) => ALLOWED_SYSTEM.identifiers.includes(data.system),
1212
+ { message: "Invalid CodedConcept: System are not allowed" }
1213
+ )
1214
+ ),
1215
+ statuses: z.array(
1216
+ codedConceptSchema.refine(
1217
+ (data) => ALLOWED_SYSTEM.statuses.includes(data.system),
1218
+ { message: "Invalid CodedConcept: System are not allowed" }
1219
+ )
1220
+ ),
1221
+ record_custodian_id: z.string(),
1222
+ locked_at: timestampSchema,
1223
+ components: z.array(medicalRecordComponentSchema)
1224
+ });
1225
+ var MedicalRecordMongooseSchema = toMongooseSchema(medicalRecordSchema);
1226
+ var MedicalRecordModelName = "medical_records";
1227
+ var MedicalRecordModel = mongoose.models[MedicalRecordModelName] || model(MedicalRecordModelName, MedicalRecordMongooseSchema);
1228
+
1229
+ // src/models/medical-record/medical-record-minimal.schema.ts
1230
+ var medicalRecordMinimalSchema = medicalRecordSchema.omit({
1231
+ _id: true,
1232
+ created_at: true,
1233
+ created_by: true,
1234
+ updated_at: true,
1235
+ updated_by: true,
1236
+ schema_version: true
1237
+ });
1238
+
1239
+ // src/models/medical-record/medical-record-partial.schema.ts
1240
+ var medicalRecordPartialSchema = medicalRecordMinimalSchema.partial();
1241
+ var NOTE_SCHEMA_VERSION = 1;
1242
+ var noteSchema = baseSchema(NOTE_SCHEMA_VERSION).extend({
1243
+ scope: z.string(),
1244
+ reference_id: objectIdSchema,
1245
+ note: z.string()
1246
+ });
1247
+ var NoteMongooseSchema = toMongooseSchema(noteSchema);
1248
+ var NoteModelName = "notes";
1249
+ var NoteModel = mongoose.models[NoteModelName] || model(NoteModelName, NoteMongooseSchema);
1250
+
1251
+ // src/models/note/note-minimal.schema.ts
1252
+ var noteMinimalSchema = noteSchema.omit({
1253
+ _id: true,
1254
+ created_at: true,
1255
+ created_by: true,
1256
+ updated_at: true,
1257
+ updated_by: true,
1258
+ schema_version: true
1259
+ });
1260
+
1261
+ // src/models/note/note-partial.schema.ts
1262
+ var notePartialSchema = noteMinimalSchema.partial();
1032
1263
  var USER_SCHEMA_VERSION = 1;
1033
1264
  var userSchema = z.object({
1034
1265
  id: z.string(),
@@ -1055,7 +1286,7 @@ var userSchema = z.object({
1055
1286
  });
1056
1287
  var UserMongooseSchema = toMongooseSchema(userSchema);
1057
1288
  var UserModelName = "users";
1058
- var UserModel = model(UserModelName, UserMongooseSchema);
1289
+ var UserModel = mongoose.models[UserModelName] || model(UserModelName, UserMongooseSchema);
1059
1290
  var USER_SETTING_FIELDS = [
1060
1291
  "lock_screen",
1061
1292
  "lock_screen_pin",
@@ -1103,10 +1334,7 @@ var assignmentSchema = baseSchema(ASSIGNMENT_SCHEMA_VERSION).extend({
1103
1334
  });
1104
1335
  var AssignmentMongooseSchema = toMongooseSchema(assignmentSchema);
1105
1336
  var AssignmentModelName = "assignments";
1106
- var AssignmentModel = model(
1107
- AssignmentModelName,
1108
- AssignmentMongooseSchema
1109
- );
1337
+ var AssignmentModel = mongoose.models[AssignmentModelName] || model(AssignmentModelName, AssignmentMongooseSchema);
1110
1338
 
1111
1339
  // src/models/assignment/assignment-minimal.schema.ts
1112
1340
  var assignmentMinimalSchema = assignmentSchema.omit({
@@ -1128,7 +1356,7 @@ var departmentSchema = baseSchema(DEPARTMENT_SCHEMA_VERSION).extend({
1128
1356
  });
1129
1357
  var DepartmentMongooseSchema = toMongooseSchema(departmentSchema);
1130
1358
  var DepartmentModelName = "departments";
1131
- var DepartmentModel = model(DepartmentModelName, DepartmentMongooseSchema);
1359
+ var DepartmentModel = mongoose.models[DepartmentModelName] || model(DepartmentModelName, DepartmentMongooseSchema);
1132
1360
 
1133
1361
  // src/models/department/department-minimal.schema.ts
1134
1362
  var departmentMinimalSchema = departmentSchema.omit({
@@ -1155,7 +1383,7 @@ var facilitySchema = z.object({
1155
1383
  });
1156
1384
  var FacilityMongooseSchema = toMongooseSchema(facilitySchema);
1157
1385
  var FacilityModelName = "facilities";
1158
- var FacilityModel = model(FacilityModelName, FacilityMongooseSchema);
1386
+ var FacilityModel = mongoose.models[FacilityModelName] || model(FacilityModelName, FacilityMongooseSchema);
1159
1387
  var FACILITY_SETTING_FIELDS = [
1160
1388
  "branding_logo",
1161
1389
  "satusehat_org_id",
@@ -1229,7 +1457,7 @@ var locationSchema = baseSchema(LOCATION_SCHEMA_VERSION).extend({
1229
1457
  });
1230
1458
  var LocationMongooseSchema = toMongooseSchema(locationSchema);
1231
1459
  var LocationModelName = "locations";
1232
- var LocationModel = model(LocationModelName, LocationMongooseSchema);
1460
+ var LocationModel = mongoose.models[LocationModelName] || model(LocationModelName, LocationMongooseSchema);
1233
1461
  var LOCATION_SETTING_FIELDS = [
1234
1462
  "sex_restriction",
1235
1463
  "is_inventory_location",
@@ -1277,7 +1505,7 @@ var memberSchema = z.object({
1277
1505
  });
1278
1506
  var MemberMongooseSchema = toMongooseSchema(memberSchema);
1279
1507
  var MemberModelName = "members";
1280
- var MemberModel = model(MemberModelName, MemberMongooseSchema);
1508
+ var MemberModel = mongoose.models[MemberModelName] || model(MemberModelName, MemberMongooseSchema);
1281
1509
 
1282
1510
  // src/models/member/member-minimal.schema.ts
1283
1511
  var memberMinimalSchema = memberSchema.omit({
@@ -1302,7 +1530,7 @@ var organizationSchema = z.object({
1302
1530
  });
1303
1531
  var OrganizationMongooseSchema = toMongooseSchema(organizationSchema);
1304
1532
  var OrganizationModelName = "organizations";
1305
- var OrganizationModel = model(OrganizationModelName, OrganizationMongooseSchema);
1533
+ var OrganizationModel = mongoose.models[OrganizationModelName] || model(OrganizationModelName, OrganizationMongooseSchema);
1306
1534
  var ORGANIZATION_SETTING_FIELDS = [
1307
1535
  "patient_mrn_length",
1308
1536
  "patient_mrn_separator",
@@ -1336,44 +1564,6 @@ var organizationMinimalSchema = organizationSchema.omit({
1336
1564
 
1337
1565
  // src/models/organization/organization-partial.schema.ts
1338
1566
  var organizationPartialSchema = organizationMinimalSchema.partial();
1339
- var PATIENT_SCHEMA_VERSION = 1;
1340
- var patientSchema = baseSchema(PATIENT_SCHEMA_VERSION).extend({
1341
- organization_id: objectIdSchema,
1342
- registering_facility_id: objectIdSchema,
1343
- identifiers: z.array(codedConceptSchema),
1344
- salutation: codedConceptSchema,
1345
- first_name: z.string().min(1, { message: "first_name is required" }),
1346
- middle_name: z.string().optional(),
1347
- last_name: z.string().min(1, { message: "last_name is required" }),
1348
- title: z.string().optional(),
1349
- image: z.string().optional(),
1350
- demographic: demographicSchema.extend({
1351
- place_of_birth: demographicSchema.shape.place_of_birth.unwrap(),
1352
- date_of_birth: demographicSchema.shape.date_of_birth.unwrap(),
1353
- marital_status: demographicSchema.shape.marital_status.unwrap()
1354
- }),
1355
- statuses: z.array(codedConceptSchema).nonempty({
1356
- message: "statuses must contain at least one CodedConcept"
1357
- }),
1358
- contacts: z.array(codedConceptSchema).optional(),
1359
- address: addressSchema
1360
- });
1361
- var PatientMongooseSchema = toMongooseSchema(patientSchema);
1362
- var PatientModelName = "patients";
1363
- var PatientModel = model(PatientModelName, PatientMongooseSchema);
1364
-
1365
- // src/models/patient/patient-minimal.schema.ts
1366
- var patientMinimalSchema = patientSchema.omit({
1367
- _id: true,
1368
- created_at: true,
1369
- created_by: true,
1370
- updated_at: true,
1371
- updated_by: true,
1372
- schema_version: true
1373
- });
1374
-
1375
- // src/models/patient/patient-partial.schema.ts
1376
- var patientPartialSchema = patientMinimalSchema.partial();
1377
1567
  var PATIENT_ADDITIONAL_SCHEMA_VERSION = 1;
1378
1568
  var patientAdditionalSchema = baseSchema(PATIENT_ADDITIONAL_SCHEMA_VERSION).extend({
1379
1569
  patient_id: objectIdSchema,
@@ -1382,7 +1572,7 @@ var patientAdditionalSchema = baseSchema(PATIENT_ADDITIONAL_SCHEMA_VERSION).exte
1382
1572
  });
1383
1573
  var PatientAdditionalMongooseSchema = toMongooseSchema(patientAdditionalSchema);
1384
1574
  var PatientAdditionalModelName = "patient_additionals";
1385
- var PatientAdditionalModel = model(PatientAdditionalModelName, PatientAdditionalMongooseSchema);
1575
+ var PatientAdditionalModel = mongoose.models[PatientAdditionalModelName] || model(PatientAdditionalModelName, PatientAdditionalMongooseSchema);
1386
1576
 
1387
1577
  // src/models/patient-additional/patient-additional-minimal.schema.ts
1388
1578
  var patientAdditionalMinimalSchema = patientAdditionalSchema.omit({
@@ -1408,7 +1598,7 @@ var staffSchema = baseSchema(STAFF_SCHEMA_VERSION).extend({
1408
1598
  });
1409
1599
  var StaffMongooseSchema = toMongooseSchema(staffSchema);
1410
1600
  var StaffModelName = "staffs";
1411
- var StaffModel = model(StaffModelName, StaffMongooseSchema);
1601
+ var StaffModel = mongoose.models[StaffModelName] || model(StaffModelName, StaffMongooseSchema);
1412
1602
 
1413
1603
  // src/models/staff/staff-minimal.schema.ts
1414
1604
  var staffMinimalSchema = staffSchema.omit({
@@ -1436,7 +1626,7 @@ var unitSchema = baseSchema(UNIT_SCHEMA_VERSION).extend({
1436
1626
  });
1437
1627
  var UnitMongooseSchema = toMongooseSchema(unitSchema);
1438
1628
  var UnitModelName = "units";
1439
- var UnitModel = model(UnitModelName, UnitMongooseSchema);
1629
+ var UnitModel = mongoose.models[UnitModelName] || model(UnitModelName, UnitMongooseSchema);
1440
1630
 
1441
1631
  // src/models/unit/unit-minimal.schema.ts
1442
1632
  var unitMinimalSchema = unitSchema.omit({
@@ -1463,7 +1653,7 @@ var practitionerScheduleSchema = baseSchema(
1463
1653
  });
1464
1654
  var PractitionerScheduleMongooseSchema = toMongooseSchema(practitionerScheduleSchema);
1465
1655
  var PractitionerScheduleModelName = "practitioner_schedules";
1466
- var PractitionerScheduleModel = model(PractitionerScheduleModelName, PractitionerScheduleMongooseSchema);
1656
+ var PractitionerScheduleModel = mongoose.models[PractitionerScheduleModelName] || model(PractitionerScheduleModelName, PractitionerScheduleMongooseSchema);
1467
1657
 
1468
1658
  // src/models/practitioner-schedule/practitioner-schedule-minimal.schema.ts
1469
1659
  var practitionerScheduleMinimalSchema = practitionerScheduleSchema.omit({
@@ -1490,7 +1680,7 @@ var practitionerSessionSchema = baseSchema(
1490
1680
  });
1491
1681
  var PractitionerSessionMongooseSchema = toMongooseSchema(practitionerSessionSchema);
1492
1682
  var PractitionerSessionModelName = "practitioner_sessions";
1493
- var PractitionerSessionModel = model(PractitionerSessionModelName, PractitionerSessionMongooseSchema);
1683
+ var PractitionerSessionModel = mongoose.models[PractitionerSessionModelName] || model(PractitionerSessionModelName, PractitionerSessionMongooseSchema);
1494
1684
 
1495
1685
  // src/models/practitioner-session/practitioner-session-minimal.schema.ts
1496
1686
  var practitionerSessionMinimalSchema = practitionerSessionSchema.omit({
@@ -1513,7 +1703,7 @@ var ksmSchema = baseSchema(KSM_SCHEMA_VERSION).extend({
1513
1703
  });
1514
1704
  var KsmMongooseSchema = toMongooseSchema(ksmSchema);
1515
1705
  var KsmModelName = "medical_staff_groups";
1516
- var KsmModel = model(KsmModelName, KsmMongooseSchema);
1706
+ var KsmModel = mongoose.models[KsmModelName] || model(KsmModelName, KsmMongooseSchema);
1517
1707
 
1518
1708
  // src/models/ksm/ksm-minimal.schema.ts
1519
1709
  var ksmMinimalSchema = ksmSchema.omit({
@@ -1568,7 +1758,7 @@ var payerSchema = baseSchema(PAYER_SCHEMA_VERSION).extend({
1568
1758
  });
1569
1759
  var PayerMongooseSchema = toMongooseSchema(payerSchema);
1570
1760
  var PayerModelName = "payers";
1571
- var PayerModel = model(PayerModelName, PayerMongooseSchema);
1761
+ var PayerModel = mongoose.models[PayerModelName] || model(PayerModelName, PayerMongooseSchema);
1572
1762
  var PAYER_SETTING_FIELDS = [
1573
1763
  "use_header_contact_info",
1574
1764
  "use_header_bank_info",
@@ -1650,7 +1840,7 @@ var queueSchema = baseSchema(QUEUE_SCHEMA_VERSION).extend({
1650
1840
  });
1651
1841
  var QueueMongooseSchema = toMongooseSchema(queueSchema);
1652
1842
  var QueueModelName = "queues";
1653
- var QueueModel = model(QueueModelName, QueueMongooseSchema);
1843
+ var QueueModel = mongoose.models[QueueModelName] || model(QueueModelName, QueueMongooseSchema);
1654
1844
 
1655
1845
  // src/models/queue/queue-minimal.schema.ts
1656
1846
  var queueMinimalSchema = queueSchema.omit({
@@ -1673,7 +1863,7 @@ var queueEventLogSchema = baseSchema(QUEUE_EVENT_LOG_SCHEMA_VERSION).extend({
1673
1863
  });
1674
1864
  var QueueEventLogMongooseSchema = toMongooseSchema(queueEventLogSchema);
1675
1865
  var QueueEventLogModelName = "queue_event_logs";
1676
- var QueueEventLogModel = model(QueueEventLogModelName, QueueEventLogMongooseSchema);
1866
+ var QueueEventLogModel = mongoose.models[QueueEventLogModelName] || model(QueueEventLogModelName, QueueEventLogMongooseSchema);
1677
1867
 
1678
1868
  // src/models/queue-event-log/queue-event-log-minimal.schema.ts
1679
1869
  var queueEventLogMinimalSchema = queueEventLogSchema.omit({
@@ -1710,10 +1900,7 @@ var queueNumberSchema = baseSchemaWithExpiredAt(
1710
1900
  });
1711
1901
  var QueueNumberMongooseSchema = toMongooseSchema(queueNumberSchema);
1712
1902
  var QueueNumberModelName = "queue_numbers";
1713
- var QueueNumberModel = model(
1714
- QueueNumberModelName,
1715
- QueueNumberMongooseSchema
1716
- );
1903
+ var QueueNumberModel = mongoose.models[QueueNumberModelName] || model(QueueNumberModelName, QueueNumberMongooseSchema);
1717
1904
  var QUEUE_NUMBER_SETTING_FIELDS = [
1718
1905
  "use_header_contact_info",
1719
1906
  "use_header_bank_info",
@@ -1788,7 +1975,7 @@ var articleSchema = baseSchema(ARTICLE_SCHEMA_VERSION).extend({
1788
1975
  });
1789
1976
  var ArticleMongooseSchema = toMongooseSchema(articleSchema);
1790
1977
  var ArticleModelName = "articles";
1791
- var ArticleModel = model(ArticleModelName, ArticleMongooseSchema);
1978
+ var ArticleModel = mongoose.models[ArticleModelName] || model(ArticleModelName, ArticleMongooseSchema);
1792
1979
 
1793
1980
  // src/models/article/article-minimal.schema.ts
1794
1981
  var articleMinimalSchema = articleSchema.omit({
@@ -1803,6 +1990,6 @@ var articleMinimalSchema = articleSchema.omit({
1803
1990
  // src/models/article/article-partial.schema.ts
1804
1991
  var articlePartialSchema = articleMinimalSchema.partial();
1805
1992
 
1806
- export { ARTICLE_SCHEMA_VERSION, ASSIGNMENT_SCHEMA_VERSION, ArticleModel, ArticleMongooseSchema, AssignmentModel, AssignmentMongooseSchema, DEPARTMENT_SCHEMA_VERSION, DepartmentModel, DepartmentMongooseSchema, FACILITY_SCHEMA_VERSION, FACILITY_SETTINGS_SCHEMA_VERSION, FacilityModel, FacilityMongooseSchema, KSM_SCHEMA_VERSION, KsmModel, KsmMongooseSchema, LOCATION_SCHEMA_VERSION, LOCATION_SETTINGS_SCHEMA_VERSION, LocationModel, LocationMongooseSchema, MEMBER_SCHEMA_VERSION, MemberModel, MemberMongooseSchema, ORGANIZATION_SCHEMA_VERSION, ORGANIZATION_SETTINGS_SCHEMA_VERSION, OrganizationModel, OrganizationMongooseSchema, PATIENT_ADDITIONAL_SCHEMA_VERSION, PATIENT_SCHEMA_VERSION, PAYER_SCHEMA_VERSION, PAYER_SETTINGS_SCHEMA_VERSION, PRACTITIONER_SCHEDULE_SCHEMA_VERSION, PRACTITIONER_SESSION_SCHEMA_VERSION, PatientAdditionalModel, PatientAdditionalMongooseSchema, PatientModel, PatientMongooseSchema, PayerModel, PayerMongooseSchema, PractitionerScheduleModel, PractitionerScheduleMongooseSchema, PractitionerSessionModel, PractitionerSessionMongooseSchema, QUEUE_EVENT_LOG_SCHEMA_VERSION, QUEUE_NUMBER_SCHEMA_VERSION, QUEUE_NUMBER_SETTINGS_SCHEMA_VERSION, QUEUE_SCHEMA_VERSION, QueueEventLogModel, QueueEventLogMongooseSchema, QueueModel, QueueMongooseSchema, QueueNumberModel, QueueNumberMongooseSchema, STAFF_SCHEMA_VERSION, StaffModel, StaffMongooseSchema, UNIT_SCHEMA_VERSION, USER_SCHEMA_VERSION, USER_SETTINGS_SCHEMA_VERSION, UnitModel, UnitMongooseSchema, UserModel, UserMongooseSchema, addressSchema, apiResponseSchema, articleMinimalSchema, articlePartialSchema, articleSchema, assignmentMinimalSchema, assignmentPartialSchema, assignmentSchema, baseSchema, baseSchemaWithExpiredAt, codedConceptSchema, demographicSchema, departmentMinimalSchema, departmentPartialSchema, departmentSchema, facilityMinimalSchema, facilityPartialSchema, facilitySchema, facilitySettingsKVSchema, facilitySettingsSchema, ksmMinimalSchema, ksmPartialSchema, ksmSchema, locationMinimalSchema, locationPartialSchema, locationSchema, locationSettingsKVSchema, locationSettingsSchema, memberMinimalSchema, memberPartialSchema, memberSchema, metadataSchema, objectIdSchema, organizationMinimalSchema, organizationPartialSchema, organizationSchema, organizationSettingsKVSchema, organizationSettingsSchema, patientAdditionalMinimalSchema, patientAdditionalPartialSchema, patientAdditionalSchema, patientMinimalSchema, patientPartialSchema, patientSchema, payerMinimalSchema, payerPartialSchema, payerSchema, payerSettingsKVSchema, payerSettingsSchema, practitionerScheduleMinimalSchema, practitionerSchedulePartialSchema, practitionerScheduleSchema, practitionerSessionMinimalSchema, practitionerSessionPartialSchema, practitionerSessionSchema, queueEventLogMinimalSchema, queueEventLogPartialSchema, queueEventLogSchema, queueMinimalSchema, queueNumberMinimalSchema, queueNumberPartialSchema, queueNumberSchema, queueNumberSettingsKVSchema, queueNumberSettingsSchema, queuePartialSchema, queueSchema, settingOptionSchema, settingOptionTypeSchema, singleResourceResponseSchema, staffMinimalSchema, staffPartialSchema, staffSchema, timestampSchema, unitMinimalSchema, unitPartialSchema, unitSchema, userMinimalSchema, userPartialSchema, userSchema, userSettingsKVSchema, userSettingsSchema };
1993
+ export { APPOINTMENT_SCHEMA_VERSION, ARTICLE_SCHEMA_VERSION, ASSIGNMENT_SCHEMA_VERSION, AppointmentModel, AppointmentMongooseSchema, ArticleModel, ArticleMongooseSchema, AssignmentModel, AssignmentMongooseSchema, DEPARTMENT_SCHEMA_VERSION, DepartmentModel, DepartmentMongooseSchema, ENCOUNTER_ADDITIONAL_SCHEMA_VERSION, ENCOUNTER_SCHEMA_VERSION, EncounterAdditionalModel, EncounterAdditionalMongooseSchema, EncounterModel, EncounterMongooseSchema, FACILITY_SCHEMA_VERSION, FACILITY_SETTINGS_SCHEMA_VERSION, FacilityModel, FacilityMongooseSchema, KSM_SCHEMA_VERSION, KsmModel, KsmMongooseSchema, LOCATION_SCHEMA_VERSION, LOCATION_SETTINGS_SCHEMA_VERSION, LocationModel, LocationMongooseSchema, MEDICAL_RECORD_SCHEMA_VERSION, MEMBER_SCHEMA_VERSION, MedicalRecordModel, MedicalRecordMongooseSchema, MemberModel, MemberMongooseSchema, NOTE_SCHEMA_VERSION, NoteModel, NoteMongooseSchema, ORGANIZATION_SCHEMA_VERSION, ORGANIZATION_SETTINGS_SCHEMA_VERSION, OrganizationModel, OrganizationMongooseSchema, PATIENT_ADDITIONAL_SCHEMA_VERSION, PATIENT_SCHEMA_VERSION, PAYER_SCHEMA_VERSION, PAYER_SETTINGS_SCHEMA_VERSION, PRACTITIONER_SCHEDULE_SCHEMA_VERSION, PRACTITIONER_SESSION_SCHEMA_VERSION, PatientAdditionalModel, PatientAdditionalMongooseSchema, PatientModel, PatientMongooseSchema, PayerModel, PayerMongooseSchema, PractitionerScheduleModel, PractitionerScheduleMongooseSchema, PractitionerSessionModel, PractitionerSessionMongooseSchema, QUEUE_EVENT_LOG_SCHEMA_VERSION, QUEUE_NUMBER_SCHEMA_VERSION, QUEUE_NUMBER_SETTINGS_SCHEMA_VERSION, QUEUE_SCHEMA_VERSION, QueueEventLogModel, QueueEventLogMongooseSchema, QueueModel, QueueMongooseSchema, QueueNumberModel, QueueNumberMongooseSchema, STAFF_SCHEMA_VERSION, StaffModel, StaffMongooseSchema, UNIT_SCHEMA_VERSION, USER_SCHEMA_VERSION, USER_SETTINGS_SCHEMA_VERSION, UnitModel, UnitMongooseSchema, UserModel, UserMongooseSchema, addressSchema, apiResponseSchema, appointmentMinimalSchema, appointmentPartialSchema, appointmentSchema, articleMinimalSchema, articlePartialSchema, articleSchema, assignmentMinimalSchema, assignmentPartialSchema, assignmentSchema, baseSchema, baseSchemaWithExpiredAt, codedConceptSchema, demographicSchema, departmentMinimalSchema, departmentPartialSchema, departmentSchema, encounterAdditionalMinimalSchema, encounterAdditionalPartialSchema, encounterAdditionalSchema, encounterMinimalSchema, encounterPartialSchema, encounterSchema, facilityMinimalSchema, facilityPartialSchema, facilitySchema, facilitySettingsKVSchema, facilitySettingsSchema, ksmMinimalSchema, ksmPartialSchema, ksmSchema, locationMinimalSchema, locationPartialSchema, locationSchema, locationSettingsKVSchema, locationSettingsSchema, medicalRecordMinimalSchema, medicalRecordPartialSchema, medicalRecordSchema, memberMinimalSchema, memberPartialSchema, memberSchema, metadataSchema, noteMinimalSchema, notePartialSchema, noteSchema, objectIdSchema, organizationMinimalSchema, organizationPartialSchema, organizationSchema, organizationSettingsKVSchema, organizationSettingsSchema, patientAdditionalMinimalSchema, patientAdditionalPartialSchema, patientAdditionalSchema, patientMinimalSchema, patientPartialSchema, patientSchema, payerMinimalSchema, payerPartialSchema, payerSchema, payerSettingsKVSchema, payerSettingsSchema, practitionerScheduleMinimalSchema, practitionerSchedulePartialSchema, practitionerScheduleSchema, practitionerSessionMinimalSchema, practitionerSessionPartialSchema, practitionerSessionSchema, queueEventLogMinimalSchema, queueEventLogPartialSchema, queueEventLogSchema, queueMinimalSchema, queueNumberMinimalSchema, queueNumberPartialSchema, queueNumberSchema, queueNumberSettingsKVSchema, queueNumberSettingsSchema, queuePartialSchema, queueSchema, settingOptionSchema, settingOptionTypeSchema, singleResourceResponseSchema, staffMinimalSchema, staffPartialSchema, staffSchema, timestampSchema, unitMinimalSchema, unitPartialSchema, unitSchema, userMinimalSchema, userPartialSchema, userSchema, userSettingsKVSchema, userSettingsSchema };
1807
1994
  //# sourceMappingURL=index.mjs.map
1808
1995
  //# sourceMappingURL=index.mjs.map