Библиотека, веб -сервис и набор инструментов для организационных данных о здравоохранении и уходе в Великобритании.
Справочные данные организации здравоохранения и социальной помощи публикуются NHS Digital в соответствии с стандартным DCB0090.
clods предназначен для предоставления услуг «местоположение» вплоть до гранулярности организационного сайта с использованием этих справочных данных.
clods часть набора поддерживающих основополагающих данных и вычислительных услуг, которые помогают ответить на вопросы о «Кто», «что», «когда», «как» и «почему» данные о здоровье и уходе.
Это программное обеспечение предоставляет как библиотеку, так и веб -сервис. Как библиотека, его можно легко встроить в более широкое приложение. Как микросервис, его можно легко встроить в набор услуг основополагающих платформ. Он обеспечивает как простой API, так и HL7 FHIR API (R4).
Вы можете получить информацию об общей практике для конкретной операции GP, используя ODS в неделю.
Более мелкозернистые услуги местоположения (например, Ward, Bed) предоставляются другими модулями в рамках Объединенной службы местоположения консьержа. Упад и местоположение и состояние статуса, как правило, предоставляются в рамках административной системы пациента, а не для справочных служб данных, но это направлено на предоставление бесшовного интерфейса программирования прикладных программ (API) для надлежащей записи контекста захвата любых клинических данных Полем
По своей сути, программное обеспечение обеспечивает близкое представление исходных исходных данных, а также предоставляет более абстрактный набор систем, которые будут федератируемыми; Это означает, что прикладное программное обеспечение, работающее на международных границах с гармонизацией времени выполнения и абстракциями в многочисленных сервисах.
Данные государственного сектора должны быть открыты, опубликованы и самопровозглашены, с механизмами для разрешения вычисления. Это означает, что мы можем написать программное обеспечение, которое автоматически обновляется против основных индексов ряда важных данных государственного сектора.
При запуске в качестве библиотеки или микросервиса единственная зависимость - это файловая система.
В старые времена мы заботились о отдельных серверах и давали им имена, аналогичные заботе о домашних животных. Они были бы долгоживущими, и мы будем получать услуги на них. У вас будут администраторы вручную входить в систему на обновление на месте, обновляя либо версию программного обеспечения, либо обновляя данные поддержки.
Вы по -прежнему можете использовать эту модель для этой и другого программного обеспечения PatientCare , но более современный подход заключается в том, чтобы рассматривать ваши вычислительные и данные инфраструктуры как скот. В отличие от домашнего животного, вы обычно не называете свой скот, и у вас может быть значительный оборот в этом скоте. Таким образом, вполне разумно раскрыть новые версии этой службы с помощью новых обновленных данных.
Таким образом, это, и другие услуги PatientCare предназначены для автоматизации как можно большего количества шагов.
Вам нужно будет установить Clojure для лучшего опыта, но его можно запустить, используя предварительно построенную JAR. См. Ниже для получения информации о файлах JAR.
Эта служба нуждается в каталоге на файловой системе для работы.
Организационные данные NHS включают информацию об организациях NHS. Чтобы включить географические услуги, clods объединяет эти данные с географическими данными NHS с использованием «каталога почтовых индексов NHS». Вы можете использовать NHSPD в качестве автономного обслуживания, но для удобства clods включает в себя этот инструмент.
В этих примерах мы будем использовать
Вы можете использовать один каталог и обновление на месте или создать новый репозиторий с интервалами. Я предпочитаю только для чтения, неизменные данные по умолчанию по умолчанию, так что предпочитаю последнее.
Нам также необходимо указать временный кэш для загруженных данных.
Для этих примеров мы будем использовать
Возможно, у вас уже есть NHSPD; Используйте индекс, который вы используете для этого.
Если нет, давайте получим одну настройку
$ clj -M:nhspd /var/local/nhspd-2020-11Через несколько минут индекс каталога почтовых индексов NHS будет загружен и импортирован.
Вам понадобится цифровой ключ NHS Digital Trud API.
Войдите в Digital Trud NHS и найдите свой ключ API в вашем профиле. Запишите этот ключ в файл и ссылку на него из командной строки:
$ clj -M:install --nhspd /var/local/nhspd-2020-11 --api-key /path/to/api-key.txt --cache-dir /var/tmp/trud /var/local/ods-2021-02 clods продолжит загружать последние файлы дистрибуции из Trud или использовать существующую загруженную версию в вашем локальном кеше, если доступно, и создайте индекс организации.
Несмотря на то, что вы можете встроить все это в одно изображение Docker для развертывания, вместо этого было бы лучше ссылаться на общую файловую систему только для чтения и просто ссылаться на последние данные бэкэнд.
Чтобы работать как микросервис, вам необходимо включить пути как индекса ANS, а также индекс NHSPD, а также порт для работы.
$ clj -M:serve /var/local/ods-2021-02 /var/local/nhspd-2020-11 8080Есть три конечных точка:
Давайте получим данные почтового индекса NHS о почтовом индексе:
$ curl -H " Accept: application/json " localhost:8080/ods/v1/postcode/CF144XWРезультат:
{ "CANNET" : " N95 " , "PCDS" : " CF14 4XW " , "NHSER" : " W92 " , "SCN" : " N95 " , "PSED" : " 62UBFL16 " , "CTRY" : " W92000004 " , "OA01" : " W00009154 " , "HRO" : " W00 " , "OLDHA" : " QW2 " , "RGN" : " W99999999 " , "OSWARD" : " W05000864 " , "LSOA01" : " W01001770 " , "OSNRTH1M" : 179319 , "CANREG" : " Y1101 " , "OSHLTHAU" : " 7A4 " , "CALNCV" : " W99999999 " , "OSGRDIND" : " 1 " , "MSOA11" : " W02000384 " , "MSOA01" : " W02000384 " , "WARD98" : " 00PTMM " , "OLDHRO" : " W00 " , "CENED" : " TNFL16 " , "OLDPCT" : " 6A8 " , "USERTYPE" : " 0 " , "OSEAST1M" : 317551 , "PCT" : " 7A4 " , "PCD2" : " CF14 4XW " , "NHSRLO" : " W92 " , "OSNRTH100M" : 1793 , "DOTERM" : " " , "STP" : " W92 " , "OSLAUA" : " W06000015 " , "OSHAPREV" : " Q99 " , "EDIND" : " 1 " , "LSOA11" : " W01001770 " , "UR01IND" : " 5 " , "CCG" : " 7A4 " , "OSEAST100M" : 3175 , "DOINTR" : " 199906 " , "PCON" : " W07000051 " , "ODSLAUA" : " 052 " , "OA11" : " W00009154 " , "OSCTY" : " W99999999 " }Давайте получим данные ODS об известной организации:
$ curl -H " Accept: application/json " localhost:8080/ods/v1/organisation/7A4BVДавайте искать организацию:
Простой поиск по имени:
$ curl -H " Accept: application/json " ' localhost:8080/ods/v1/search?s=University%20Hospital%20Wales 'Давайте поиск операций GP в пределах 1000 м от определенного почтового индекса.
$ curl -H " Accept: application/json " ' localhost:8080/ods/v1/search?roles=RO177&from-postcode=CF144XW&range=1000 'Результат (здесь я пропутаю через JQ, чтобы просто дать мне имена):
$ curl -H "Accept: application/json" 'localhost:8080/ods/v1/search?roles=RO177&from-postcode=CF144XW&range=1000' | jq '.[] | .name'
"OUT OF HOURS SERVICE"
"WHITCHURCH ROAD SURGERY"
"CRWYS MEDICAL CENTRE"
"NORTH ROAD MEDICAL PRACTICE"
Результаты будут отсортированы на расстоянии.
Каждый результат аннотирован широтой и долготой WGS84, чтобы облегчить географическую обработку/построение.
$ curl -H " Accept: application/json " ' localhost:8080/ods/v1/search?s=crwys&roles=RO177&from-postcode=CF144XW&range=1000 ' | jq
[
{
" orgId " : {
" root " : " 2.16.840.1.113883.2.1.3.2.4.18.48 " ,
" assigningAuthorityName " : " HSCIC " ,
" extension " : " W97041 "
},
" contacts " : [
{
" type " : " tel " ,
" value " : " 029 20524140 "
}
],
" name " : " CRWYS MEDICAL CENTRE " ,
" operational " : {
" start " : " 1974-04-01 " ,
" end " : null
},
" roles " : [
{
" id " : " RO72 " ,
" isPrimary " : false,
" active " : true,
" startDate " : " 2014-04-15 " ,
" endDate " : null
},
{
" id " : " RO177 " ,
" isPrimary " : true,
" active " : true,
" startDate " : " 1974-04-01 " ,
" endDate " : null
}
],
" orgRecordClass " : " RC1 " ,
" active " : true,
" primaryRole " : {
" id " : " RO177 " ,
" isPrimary " : true,
" active " : true,
" startDate " : " 1974-04-01 " ,
" endDate " : null
},
" relationships " : [
{
" id " : " RE4 " ,
" startDate " : " 1999-04-01 " ,
" endDate " : " 2003-03-31 " ,
" active " : false,
" target " : {
" root " : " 2.16.840.1.113883.2.1.3.2.4.18.48 " ,
" assigningAuthorityName " : " HSCIC " ,
" extension " : " 4WK03 "
}
},
{
" id " : " RE4 " ,
" startDate " : " 2009-10-01 " ,
" endDate " : null,
" active " : true,
" target " : {
" root " : " 2.16.840.1.113883.2.1.3.2.4.18.48 " ,
" assigningAuthorityName " : " HSCIC " ,
" extension " : " 7A4 "
}
},
{
" id " : " RE4 " ,
" startDate " : " 2003-04-01 " ,
" endDate " : " 2009-09-30 " ,
" active " : false,
" target " : {
" root " : " 2.16.840.1.113883.2.1.3.2.4.18.48 " ,
" assigningAuthorityName " : " HSCIC " ,
" extension " : " 6A8 "
}
}
],
" location " : {
" address1 " : " THE CRWYS SURGERY " ,
" address2 " : " WEDAL ROAD " ,
" town " : " CARDIFF " ,
" county " : " SOUTH GLAMORGAN " ,
" postcode " : " CF14 3QX " ,
" country " : " WALES " ,
" uprn " : " 10008905579 " ,
" latlon " : [
52.714814004647714,
-5.273869588498894
]
},
" isReference " : false
}
]$ clj -M:fhir-r4 /var/local/ods-2021-02 /var/local/nhspd-2020-11 8080Попробуем:
$ curl -H " Accept: application/json " ' http://localhost:8080/fhir/Organization/2.16.840.1.113883.2.1.3.2.4.18.48|W93036 ' Результат:
{
"resourceType" : " Organization " ,
"id" : " W93036 " ,
"identifier" : [
{
"use" : " official " ,
"system" : " https://fhir.nhs.uk/Id/ods-organization " ,
"value" : " W93036 "
},
{
"use" : " old " ,
"system" : " urn:oid:2.16.840.1.113883.2.1.3.2.4.18.48 " ,
"value" : " W93036 "
}
],
"active" : true ,
"type" : [
{
"coding" : [
{
"system" : " urn:oid:2.16.840.1.113883.2.1.3.2.4.17.507 " ,
"code" : " RO72 " ,
"display" : " OTHER PRESCRIBING COST CENTRE "
}
]
},
{
"coding" : [
{
"system" : " urn:oid:2.16.840.1.113883.2.1.3.2.4.17.507 " ,
"code" : " RO177 " ,
"display" : " PRESCRIBING COST CENTRE "
},
{
"system" : " http://hl7.org/fhir/ValueSet/organization-type " ,
"code" : " prov " ,
"display" : " Healthcare Provider "
}
]
}
],
"name" : " CASTLE GATE MEDICAL PRACTICE " ,
"telecom" : [
{
"system" : " phone " ,
"value" : " 01600 713811 "
}
],
"address" : [
{
"line" : [
" REAR OF MONNOW STREET "
],
"city" : " MONMOUTH " ,
"district" : " GWENT " ,
"postalCode" : " NP25 3EQ " ,
"country" : " WALES "
}
],
"partOf" : {
"type" : " Organization " ,
"identifier" : {
"use" : " official " ,
"system" : " https://fhir.nhs.uk/Id/ods-organization " ,
"value" : " 7A6 "
},
"display" : " ANEURIN BEVAN UNIVERSITY LHB "
}
}FHIR API также поддерживает поиск по множеству параметров.
Давайте искать общую практику в Монмуте
$ curl -H " Accept: application/json " ' localhost:8080/fhir/Organization?address=monmouth&type=2.16.840.1.113883.2.1.3.2.4.17.507|RO177 'Или поиск именованной операции GP:
$ curl -H " Accept: application/json " ' localhost:8080/fhir/Organization?name=Whitchurch&address=Wales&type=2.16.840.1.113883.2.1.3.2.4.17.507|RO177 'Проверьте устаревшие зависимости:
$ clj -M:outdatedВыполнить проверки компиляции (необязательно)
$ clj -M:fhir-r4:serve:checkВыполнить Linting (необязательно)
$ clj -M:lint/kondo
$ clj -M:lint/eastwoodЧтобы генерировать банку библиотеки:
clj -T:build jarЧтобы установить библиотечную банку в местный репозиторий Maven:
clj -T:build installЧтобы развернуть библиотеку в Clojars:
clj -T:build deployЕсли вы предпочитаете, вы можете генерировать файлы JAR, которые можно легко запустить в командной строке.
Создайте сервер Uberjar и запустите его. Это обеспечивает простой API отдыха.
$ clj -T:build http-server
$ java -jar target/clods-http-server-v1.0.152.jar /var/local/ods-2021-02 /var/local/nhspd-2020-11 8080Создайте сервер FHIR Uberjar и запустите его. Это обеспечивает сервер FHIR R4.
$ clj -T:build fhir-r4-server
$ java -jar target/clods-fhir-r4-server-1.0.152.jar /var/local/ods-2021-02 /var/local/nhspd-2020-11 8080Вы можете передать эти автономные файлы JAR; У них нет зависимостей.
Copyright © 2020-22 Eldrix Ltd и Mark Wardle