Сценарий
Пациенты назначают приемы и приходят в клинику. Прежде чем они будут осмотрены врачом, принимаются их «меры».
Этими показателями являются «Вес», «Рост» и «Размер головы». Чтобы завершить необходимые данные, их «возраст» также записывается.
Что я пытаюсь сделать:
Я хочу создать диаграмму, которая показывает, превышает ли вес пациента (например) лимиты / ниже пределов, и для этого Мне нужно создать массив со всеми предыдущими измерениями пациента .
Пример:
- John (id:12) comes to appointment#1 (id:55) on jan,1 2019; he have 1 month age; his Measures (id:47): Weight=30kg, Height=120cm, Head=[not taken];
- John (id:12) comes to appointment#2 (id:67) on feb,3 2019; he have 2 month age; his Measures (id:72): Weight=35kg, Height=127cm, Head=[not taken];
- John (id:12) comes to appointment#3 (id:89) on mar,9 2019; he have 3 month age; and none of his Measures are taken;
- John (id:12) comes to appointment#4 (id:99) on apr,5 2019; he have 4 month age; his Measures (id:93): Weight=42kg, Height=135cm, Head=[not taken];
Требуется результат:
weightArray = {"30","35",,"42"}
heightArray = {"120","127",,"135"}
headArray = {,,,}
Легенда:
имя-массива = { мера с возрастом один месяц , мера с возрастом два месяца , мера с возрастом три месяца , и т. Д. ...}
Структура источников данных:
app.datasources.Patients.item.idPatient
.Name
app.datasources.Appointments.item.idAppointment
.Date
.Time
.relations.Measures.item.idMeasure (one to one)
.Weight
.Height
.Head
.Age
.relations.Patients (many to one)
Workflow:
- Мы создаем новых пациентов непосредственно в источнике данных " Patients ";
- Когда создается Назначение , мы выбираем запись « Пациенты » для отношения « Назначения> Пациенты »;
- Когда пациент поступает в клинику, мы создаем запись " Показатели " внутри отношения " Назначения> Измерения ".
Код на стороне клиента
(я пробовал много разных кодов, но безуспешно, это была моя последняя неудачная попытка):
function getHistoryPatient (patientId){
var weightArr = [], heightArr = [], headArr = [], ageArr = [];
var dataSource = app.datasources.Appointments;
dataSource.query.filters.Patients.idPatient._equals = patientId;
dataSource.load(function (){
var appointmentItems = dataSource.items.forEach(function (appointment){
var data = appointment.Measures;
weightArr.push(data.Weight);
heightArr.push(data.Height);
headArr.push(data.Head);
ageArr.push(data.Age);
});
});
return {Age: ageArr, Weight: weightArr, Height: heightArr, Head: headArr};
}
На самом деле, вызов: getHistoryPatient (PatientId). Вес , например, ничего не возвращает, в том числе без ошибок.
Итак, как я могу вернуть эти массивы?