Мы пытаемся реализовать FHIR Rest Server для нашего приложения. В нашей текущей модели данных (и, следовательно, оперативных данных) несколько ресурсов FHIR представлены несколькими таблицами, например. что бы все наблюдения хранились в таблицах для жизненных показателей, лабораторных показателей и диагностики. Каждая таблица имеет независимый первичный идентификатор с автоматическим увеличением, поэтому в разных таблицах есть записи с одинаковым идентификатором. Но для вызовов GET или DELETE на сервер FHIR необходим уникальный идентификатор. Что было бы наиболее разумным способом справиться с этим?
Поиск не выявил встроенного способа сделать это, поэтому я рассматриваю эти два варианта:
- Добавьте префикс ко всем (или только проблемным) идентификаторам таблиц, например, lab-123 и vit-123.
- Добавьте UUID в каждую таблицу и используйте его в качестве логического идентификатора.
У обоих есть недостатки: для первого необходим синтаксический анализатор идентификаторов, а для второго требуется несколько вызовов базы данных для определения правильной записи.
Есть ли способ FHIR, который позволяет разделить ресурс на несколько подресурсов, даже в URL-адресе Rest? В идеале я бы получил что-то вроде GET server:port/Observation/laboratory/123