Создание массива всех показателей веса пациента при разных назначениях - PullRequest
0 голосов
/ 24 мая 2019

Сценарий

Пациенты назначают приемы и приходят в клинику. Прежде чем они будут осмотрены врачом, принимаются их «меры». Этими показателями являются «Вес», «Рост» и «Размер головы». Чтобы завершить необходимые данные, их «возраст» также записывается.


Что я пытаюсь сделать:

Я хочу создать диаграмму, которая показывает, превышает ли вес пациента (например) лимиты / ниже пределов, и для этого Мне нужно создать массив со всеми предыдущими измерениями пациента .


Пример:

- 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). Вес , например, ничего не возвращает, в том числе без ошибок.

Итак, как я могу вернуть эти массивы?

...