(function renderWidget() {
var patientField = "Patient"; // Text or link field
var appointmentField = "Appointment"; // Date field
var doneField = "Done"; // Boolean field
var allItems = lib().entries();
var layout = [];
var now = moment().startOf("d");
for (var i = 0; i < allItems.length; i++) {
var item = allItems[i];
// Skip if Done is checked
if (item.field(doneField) === true) continue;
var patientName = item.field(patientField) || "❓ Unknown";
var appointmentDate = item.field(appointmentField);
if (!appointmentDate) continue;
var
appointmentDateStart =
moment(appointmentDate).startOf("d");
var daysAgo = now.diff(appointmentDateStart , 'days');
if (daysAgo > 30) {
layout.push(
ui()
.button("👤 " + patientName + " — " + daysAgo + " days ago")
.action((function(entryCopy, name) {
return function() {
entryCopy.set(appointmentField, Date.now());
return true;
};
message("✅ Updated appointment for: " + name);
renderWidget();
})(item, patientName))
);
}
}
if (layout.length === 0) {
layout.push(ui().text("✅ All relevant patients have recent appointments."));
}
return ui().layout(layout);
})();
К сожалению, как открыть запись - не знаю.
entryCopy.show(); - из виджета не работает.