Мне было поручено расширить базу данных медицинской информации, чтобы включить дополнительные функции для поиска данных пациента.Существующая база данных использует Solr для хранения и запроса данных, таких как дата рождения и симптомы:
patient
{
birth date : date
symptoms:
heart disease
diabetes
neuropathy
heart disease onset : date
diabetes onset : date
neuropathy onset : date
}
Мы хотим расширить эту базу данных, включив в нее более детальную информацию по дате посещения, например:
patient
{
birth date : date
symptoms:
heart disease
diabetes
neuropathy
heart disease onset : date
diabetes onset : date
neuropathy onset : date
visit date 1 : date
weight : float
systolic blood pressure : int
HbA1c : float
visit date 2 : date
weight : float
height : float
systolic blood pressure : int
}
Нет никакой гарантии, что все параметры будут присутствовать при всех посещениях.Цель состоит в том, чтобы иметь возможность запрашивать медицинские данные во временных диапазонах, таких как: Возврат всех пациентов с сердечными заболеваниями, у которых систолическое артериальное давление увеличилось на 20 за 5 лет.
Я опытный программист, но новичок в Solr,Похоже, что Solr не поддерживает присоединение поля даты к другим полям.Я думал о трех разных подходах к схеме:
- Поля с несколькими значениями, но я не понимаю, как это также может хранить связанную дату посещения.
field name="weight" type="float" indexed="true" stored="true" multiValued="true"
Многозначные поля посещения с параметрами, сохраненными в посещении.Я не понимаю, как Solr может запрашивать данные в параметре даты.
field name="visit" indexed="true" stored="true" multiValued="true"
visit
{
date
weight : float
systolic blood pressure : int
HbA1c : float
}
Объединить все данные в одно поле с разделителем.
"visit-date:01012019|weight:float|height:float|HbA1c:float"
Любая помощь по схеме будет принята с благодарностью!