@blackcode_sa/metaestetics-api 1.14.53 → 1.14.54
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/admin/index.d.mts +1 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +37 -15
- package/dist/index.mjs +37 -15
- package/package.json +1 -1
- package/src/services/appointment/utils/extended-procedure.utils.ts +54 -17
- package/src/types/appointment/index.ts +2 -1
package/dist/admin/index.d.mts
CHANGED
package/dist/admin/index.d.ts
CHANGED
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -5369,12 +5369,19 @@ async function addExtendedProcedureUtil(db, appointmentId, procedureId) {
|
|
|
5369
5369
|
appointment.practitionerId,
|
|
5370
5370
|
appointment.clinicBranchId
|
|
5371
5371
|
);
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5372
|
+
const existingFormIds = new Set(updatedLinkedFormIds);
|
|
5373
|
+
const newFormIds = formInitResult.allLinkedFormIds.filter((id) => !existingFormIds.has(id));
|
|
5374
|
+
updatedLinkedFormIds = [...updatedLinkedFormIds, ...newFormIds];
|
|
5375
|
+
const existingFormIdsInLinkedForms = new Set(updatedLinkedForms.map((f) => f.formId));
|
|
5376
|
+
const newLinkedForms = formInitResult.initializedFormsInfo.filter(
|
|
5377
|
+
(form) => !existingFormIdsInLinkedForms.has(form.formId)
|
|
5378
|
+
);
|
|
5379
|
+
updatedLinkedForms = [...updatedLinkedForms, ...newLinkedForms];
|
|
5380
|
+
const existingPendingIds = new Set(updatedPendingUserFormsIds);
|
|
5381
|
+
const newPendingIds = formInitResult.pendingUserFormsIds.filter(
|
|
5382
|
+
(id) => !existingPendingIds.has(id)
|
|
5383
|
+
);
|
|
5384
|
+
updatedPendingUserFormsIds = [...updatedPendingUserFormsIds, ...newPendingIds];
|
|
5378
5385
|
}
|
|
5379
5386
|
const extendedProcedures = [...metadata.extendedProcedures || [], extendedProcedureInfo];
|
|
5380
5387
|
const appointmentRef = (0, import_firestore10.doc)(db, APPOINTMENTS_COLLECTION, appointmentId);
|
|
@@ -5417,15 +5424,30 @@ async function removeExtendedProcedureUtil(db, appointmentId, procedureId) {
|
|
|
5417
5424
|
`\u{1F5D1}\uFE0F [removeExtendedProcedure] Removed ${productsRemovedFromZones} products from zones for procedure ${procedureId}`
|
|
5418
5425
|
);
|
|
5419
5426
|
const removedFormIds = await removeFormsForExtendedProcedure(db, appointmentId, procedureId);
|
|
5420
|
-
const
|
|
5421
|
-
|
|
5422
|
-
)
|
|
5423
|
-
|
|
5424
|
-
(
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
);
|
|
5427
|
+
const removedFormIdsSet = new Set(removedFormIds);
|
|
5428
|
+
const linkedFormIdsSet = /* @__PURE__ */ new Set();
|
|
5429
|
+
const updatedLinkedFormIds = (appointment.linkedFormIds || []).filter((formId) => {
|
|
5430
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
5431
|
+
if (linkedFormIdsSet.has(formId)) return false;
|
|
5432
|
+
linkedFormIdsSet.add(formId);
|
|
5433
|
+
return true;
|
|
5434
|
+
});
|
|
5435
|
+
const linkedFormsMap = /* @__PURE__ */ new Map();
|
|
5436
|
+
(appointment.linkedForms || []).forEach((form) => {
|
|
5437
|
+
if (!removedFormIdsSet.has(form.formId)) {
|
|
5438
|
+
if (!linkedFormsMap.has(form.formId)) {
|
|
5439
|
+
linkedFormsMap.set(form.formId, form);
|
|
5440
|
+
}
|
|
5441
|
+
}
|
|
5442
|
+
});
|
|
5443
|
+
const updatedLinkedForms = Array.from(linkedFormsMap.values());
|
|
5444
|
+
const pendingIdsSet = /* @__PURE__ */ new Set();
|
|
5445
|
+
const updatedPendingUserFormsIds = (appointment.pendingUserFormsIds || []).filter((formId) => {
|
|
5446
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
5447
|
+
if (pendingIdsSet.has(formId)) return false;
|
|
5448
|
+
pendingIdsSet.add(formId);
|
|
5449
|
+
return true;
|
|
5450
|
+
});
|
|
5429
5451
|
const appointmentRef = (0, import_firestore10.doc)(db, APPOINTMENTS_COLLECTION, appointmentId);
|
|
5430
5452
|
await (0, import_firestore10.updateDoc)(appointmentRef, {
|
|
5431
5453
|
"metadata.extendedProcedures": metadata.extendedProcedures,
|
package/dist/index.mjs
CHANGED
|
@@ -5255,12 +5255,19 @@ async function addExtendedProcedureUtil(db, appointmentId, procedureId) {
|
|
|
5255
5255
|
appointment.practitionerId,
|
|
5256
5256
|
appointment.clinicBranchId
|
|
5257
5257
|
);
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5258
|
+
const existingFormIds = new Set(updatedLinkedFormIds);
|
|
5259
|
+
const newFormIds = formInitResult.allLinkedFormIds.filter((id) => !existingFormIds.has(id));
|
|
5260
|
+
updatedLinkedFormIds = [...updatedLinkedFormIds, ...newFormIds];
|
|
5261
|
+
const existingFormIdsInLinkedForms = new Set(updatedLinkedForms.map((f) => f.formId));
|
|
5262
|
+
const newLinkedForms = formInitResult.initializedFormsInfo.filter(
|
|
5263
|
+
(form) => !existingFormIdsInLinkedForms.has(form.formId)
|
|
5264
|
+
);
|
|
5265
|
+
updatedLinkedForms = [...updatedLinkedForms, ...newLinkedForms];
|
|
5266
|
+
const existingPendingIds = new Set(updatedPendingUserFormsIds);
|
|
5267
|
+
const newPendingIds = formInitResult.pendingUserFormsIds.filter(
|
|
5268
|
+
(id) => !existingPendingIds.has(id)
|
|
5269
|
+
);
|
|
5270
|
+
updatedPendingUserFormsIds = [...updatedPendingUserFormsIds, ...newPendingIds];
|
|
5264
5271
|
}
|
|
5265
5272
|
const extendedProcedures = [...metadata.extendedProcedures || [], extendedProcedureInfo];
|
|
5266
5273
|
const appointmentRef = doc7(db, APPOINTMENTS_COLLECTION, appointmentId);
|
|
@@ -5303,15 +5310,30 @@ async function removeExtendedProcedureUtil(db, appointmentId, procedureId) {
|
|
|
5303
5310
|
`\u{1F5D1}\uFE0F [removeExtendedProcedure] Removed ${productsRemovedFromZones} products from zones for procedure ${procedureId}`
|
|
5304
5311
|
);
|
|
5305
5312
|
const removedFormIds = await removeFormsForExtendedProcedure(db, appointmentId, procedureId);
|
|
5306
|
-
const
|
|
5307
|
-
|
|
5308
|
-
)
|
|
5309
|
-
|
|
5310
|
-
(
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
);
|
|
5313
|
+
const removedFormIdsSet = new Set(removedFormIds);
|
|
5314
|
+
const linkedFormIdsSet = /* @__PURE__ */ new Set();
|
|
5315
|
+
const updatedLinkedFormIds = (appointment.linkedFormIds || []).filter((formId) => {
|
|
5316
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
5317
|
+
if (linkedFormIdsSet.has(formId)) return false;
|
|
5318
|
+
linkedFormIdsSet.add(formId);
|
|
5319
|
+
return true;
|
|
5320
|
+
});
|
|
5321
|
+
const linkedFormsMap = /* @__PURE__ */ new Map();
|
|
5322
|
+
(appointment.linkedForms || []).forEach((form) => {
|
|
5323
|
+
if (!removedFormIdsSet.has(form.formId)) {
|
|
5324
|
+
if (!linkedFormsMap.has(form.formId)) {
|
|
5325
|
+
linkedFormsMap.set(form.formId, form);
|
|
5326
|
+
}
|
|
5327
|
+
}
|
|
5328
|
+
});
|
|
5329
|
+
const updatedLinkedForms = Array.from(linkedFormsMap.values());
|
|
5330
|
+
const pendingIdsSet = /* @__PURE__ */ new Set();
|
|
5331
|
+
const updatedPendingUserFormsIds = (appointment.pendingUserFormsIds || []).filter((formId) => {
|
|
5332
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
5333
|
+
if (pendingIdsSet.has(formId)) return false;
|
|
5334
|
+
pendingIdsSet.add(formId);
|
|
5335
|
+
return true;
|
|
5336
|
+
});
|
|
5315
5337
|
const appointmentRef = doc7(db, APPOINTMENTS_COLLECTION, appointmentId);
|
|
5316
5338
|
await updateDoc5(appointmentRef, {
|
|
5317
5339
|
"metadata.extendedProcedures": metadata.extendedProcedures,
|
package/package.json
CHANGED
|
@@ -174,13 +174,25 @@ export async function addExtendedProcedureUtil(
|
|
|
174
174
|
appointment.clinicBranchId,
|
|
175
175
|
);
|
|
176
176
|
|
|
177
|
-
// Merge form IDs and info
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
177
|
+
// Merge form IDs and info with deduplication
|
|
178
|
+
// Deduplicate linkedFormIds by formId
|
|
179
|
+
const existingFormIds = new Set(updatedLinkedFormIds);
|
|
180
|
+
const newFormIds = formInitResult.allLinkedFormIds.filter(id => !existingFormIds.has(id));
|
|
181
|
+
updatedLinkedFormIds = [...updatedLinkedFormIds, ...newFormIds];
|
|
182
|
+
|
|
183
|
+
// Deduplicate linkedForms by formId (keep existing entries, add only new ones)
|
|
184
|
+
const existingFormIdsInLinkedForms = new Set(updatedLinkedForms.map(f => f.formId));
|
|
185
|
+
const newLinkedForms = formInitResult.initializedFormsInfo.filter(
|
|
186
|
+
form => !existingFormIdsInLinkedForms.has(form.formId)
|
|
187
|
+
);
|
|
188
|
+
updatedLinkedForms = [...updatedLinkedForms, ...newLinkedForms];
|
|
189
|
+
|
|
190
|
+
// Deduplicate pendingUserFormsIds
|
|
191
|
+
const existingPendingIds = new Set(updatedPendingUserFormsIds);
|
|
192
|
+
const newPendingIds = formInitResult.pendingUserFormsIds.filter(
|
|
193
|
+
id => !existingPendingIds.has(id)
|
|
194
|
+
);
|
|
195
|
+
updatedPendingUserFormsIds = [...updatedPendingUserFormsIds, ...newPendingIds];
|
|
184
196
|
}
|
|
185
197
|
|
|
186
198
|
// Add extended procedure
|
|
@@ -259,16 +271,41 @@ export async function removeExtendedProcedureUtil(
|
|
|
259
271
|
// Remove forms associated with this procedure
|
|
260
272
|
const removedFormIds = await removeFormsForExtendedProcedure(db, appointmentId, procedureId);
|
|
261
273
|
|
|
262
|
-
// Update appointment form arrays
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
)
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
274
|
+
// Update appointment form arrays - remove forms that were deleted
|
|
275
|
+
// Also deduplicate to clean up any existing duplicates
|
|
276
|
+
const removedFormIdsSet = new Set(removedFormIds);
|
|
277
|
+
|
|
278
|
+
// Deduplicate and filter linkedFormIds
|
|
279
|
+
const linkedFormIdsSet = new Set<string>();
|
|
280
|
+
const updatedLinkedFormIds = (appointment.linkedFormIds || [])
|
|
281
|
+
.filter(formId => {
|
|
282
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
283
|
+
if (linkedFormIdsSet.has(formId)) return false; // Deduplicate
|
|
284
|
+
linkedFormIdsSet.add(formId);
|
|
285
|
+
return true;
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// Deduplicate and filter linkedForms by formId
|
|
289
|
+
const linkedFormsMap = new Map<string, LinkedFormInfo>();
|
|
290
|
+
(appointment.linkedForms || []).forEach(form => {
|
|
291
|
+
if (!removedFormIdsSet.has(form.formId)) {
|
|
292
|
+
// Keep the first occurrence if duplicates exist
|
|
293
|
+
if (!linkedFormsMap.has(form.formId)) {
|
|
294
|
+
linkedFormsMap.set(form.formId, form);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
const updatedLinkedForms = Array.from(linkedFormsMap.values());
|
|
299
|
+
|
|
300
|
+
// Deduplicate and filter pendingUserFormsIds
|
|
301
|
+
const pendingIdsSet = new Set<string>();
|
|
302
|
+
const updatedPendingUserFormsIds = (appointment.pendingUserFormsIds || [])
|
|
303
|
+
.filter(formId => {
|
|
304
|
+
if (removedFormIdsSet.has(formId)) return false;
|
|
305
|
+
if (pendingIdsSet.has(formId)) return false; // Deduplicate
|
|
306
|
+
pendingIdsSet.add(formId);
|
|
307
|
+
return true;
|
|
308
|
+
});
|
|
272
309
|
|
|
273
310
|
// Update appointment
|
|
274
311
|
const appointmentRef = doc(db, APPOINTMENTS_COLLECTION, appointmentId);
|
|
@@ -168,7 +168,8 @@ export interface ZoneItemData {
|
|
|
168
168
|
notes?: string;
|
|
169
169
|
notesVisibleToPatient?: boolean; // Whether notes are visible to patient (privacy-first, default false)
|
|
170
170
|
subtotal?: number;
|
|
171
|
-
ionNumber?: string;
|
|
171
|
+
ionNumber?: string; // Batch/Lot number
|
|
172
|
+
expiryDate?: string; // ISO date string (YYYY-MM-DD)
|
|
172
173
|
createdAt?: string; // ISO timestamp
|
|
173
174
|
updatedAt?: string; // ISO timestamp
|
|
174
175
|
}
|