Сопоставьте нестандартные JSON данные из REST API в FHIR - PullRequest
0 голосов
/ 09 июля 2020
• 1000 1001 *

Иллюстрация API "Мост"

Из-за подробных требований к реализации самого FHIR, я подумал использовать node-fhir-server-core для этого. Где реализовать функции отображения не-FHIR-to-FHIR? Можно ли использовать node-fhir-server-core? Если это не так, как реализовать проверку / поддержку FHIR с помощью простого express приложения?

1 Ответ

0 голосов
/ 21 июля 2020

Краткая версия:

Вам необходимо выяснить, поддерживает ли «https://github.com/Asymmetrik/node-fhir-server-core» то, что

Hapi Fhir Server называет «простым сервером» :: https://hapifhir.io/hapi-fhir/docs/server_plain/introduction.html

и Вонк называет «фасад» :: https://fire.ly/products/vonk/vonk-fhir-facade/

На их диаграмме (внизу ... в правом нижнем углу) я вижу «Поставщики ресурсов», но Я не уверен, что это «ваш пользовательский поставщик ресурсов» или «наш (асимметричный) встроенный поставщик ресурсов».

Я просмотрел часть их документации и не вижу ничего о том, «как реализовать ваш собственный поставщик пользовательских ресурсов ". (Я начал здесь и немного покопался). https://github.com/Asymmetrik/node-fhir-server-core/blob/master/docs/GettingStarted.md

Но, надеюсь, эти хлебные крошки для того, что другие называют такой настройкой ... помогут вашему поиску.

Если вы найдете что-то конкретное, сообщите назад, мне самому любопытно.

Но с hapi или vonk у вас будет установлен сервер fhir, он будет получать запросы (обычно GET), транслировать запрос на ваш (другой) внутренний REST-сервер .. . получить обратно данные, преобразовать их в ресурс fhir (обычно в этот момент r4) ........ и он будет отправлен конечному клиенту. Вкратце, шаблон проектирования «адаптер».

enter image description here

Longer Version:

If you "collect" the data into your proprietary database, that is fine. You will then setup a fhir server to expose that data. Hapi Fhir "plain server" or Vonk (paid product) facade pattern would be the paths to expose that data to the outside world. You will take your proprietary and convert it into fhir objects and expose.

Option 2. Since you have new code, you can try to store you data AS FHIR OBJECTS into your datastore (db or nosql). And then you expose those objects to the outside world.

FHIR is.......a common well known object model. The "language" of healthcare chat.

My personal metaphor is that.. "its like everyone starts talking english with each other, BUT its more of someone talking american english with someone talking british english". What I mean is...its not always perfect. There are fringe cases where the chit-chat is not perfect. But it is close. And much better than having to have a translator for everything.

If you read this article (below) about a "plain server" (a plain fhir server) (this is about converting your EXISTING proprietary data into fhir resources)

https://hapifhir.io/hapi-fhir/docs/server_plain/introduction.html

vs (то, что hapi называет «jpa», но в целом это « all in "fhir server

https://hapifhir.io/hapi-fhir/docs/server_jpa/introduction.html

......

Вы начнете видеть различные варианты настройки сервер fhir.

Если у вас пустое хранилище данных (база данных, номер sql, и т.д. c), есть несколько вариантов настройки сервера fhir.

Hapi Fhir + Хранилище данных с поддержкой JPA.

MS Fhir Server (с открытым исходным кодом) с использованием CosmoDB или Sql Server.

(платный продукт) Vonk "полный" сервер.

" Spark "- более старый (но с открытым исходным кодом) fhir-сервер.

........

Однако большинство людей не могут начать с чистого листа данных.

Тогда у вас есть несколько вариантов.

Hapi Fhir, где вы пишете реализации для IResourceProvider (где вы должны писать PatientResourceProvider, (любые / большинство других ресурсов Fhir) .. et c, et c.

Vonk (платный продукт) имеет ту же концепцию, которую они называют Facade Pattern.

.......

Сейчас я не знаю гибридов. Вы должны выбрать один или другой (хранилище данных с чистого листа ИЛИ шаблон адаптера / iresourceprovider / фасада.

........

Хорошо, если вы хотите создайте fhir-сервер.

........

Возможно, вы просто захотите использовать чужой fhir-сервер. Затем вы захотите посмотреть «fhir-клиенты» для работы с кем-то elses fhir server.

hapi имеет fhir client

https://hapifhir.io/hapi-fhir/docs/client/introduction.html

возможно есть и другие.

... ......

Теперь, в соответствии с вашими c вариантами.

Вы, вероятно, НЕ хотите поддерживать объектную модель. Вы хотите повторно использовать работу других, которые создали объектные модели.

https://www.nuget.org/packages/Hl7.Fhir.R4/2.0.0-beta1

Firely (компания, стоящая за Vonk) предоставляет библиотеку объектов do tnet с открытым исходным кодом. hapi имеет библиотеку объектов java .

, вам следует выбрать язык, который может использовать эти многоразовые библиотеки объектов. Если python имеет один, то я думаю, вы можете использовать python. Лично я бы не стал. Я бы остался с ith do tnet -core (открытый исходный код) или java. может быть библиотека объектной модели python fhir, но если ее нет ... я бы не стал выбирать python. Слишком сложно имитировать c весь этот библиотечный материал. .........

Вот некоторые общие точки начала документации.

https://hapifhir.io/hapi-fhir/docs/model/working_with_resources.html

(возьмите информацию ниже в ссылках ... скептически, часть информации устарела)

https://wiki.hl7.org/Open_Source_FHIR_implementations

https://wiki.hl7.org/Publicly_Available_FHIR_Servers_for_testing

https://en.wikipedia.org/wiki/Fast_Healthcare_Interoperability_Resources

.......

Личные мысли.

Я бы выбрал tnet -core или java для проектов fhir. Опять же, найдите более зрелый язык (и) в fhir (прямо сейчас, а не на будущее).

Вещи, о которых не все говорят: c (иначе говоря, без агрегирования), вы должны подумать о проблеме сопоставления пациентов. Нельзя просто сказать «вот наблюдения». Вы должны иметь возможность сказать: «Вот наблюдения для пациента« Джон Смит »», и я на 99,9999% уверен, что даю вам данные для ( ПРАВИЛЬНО ) Джона Смита. Не недооценивают этот вопрос.

...