도서관, 웹 서비스 및 영국 건강 및 관리 조직 데이터를위한 도구 세트.
보건 사회 복지 조직 참조 데이터는 표준 DCB0090에 따라 NHS Digital에 의해 게시됩니다.
clods 이 참조 데이터를 사용하여 조직 사이트의 세분성까지 "위치"서비스를 제공하도록 설계되었습니다.
'WHO', 'What', 'When', 'How' clods 'Why'및 'Why'및 'Why'및 'Why'및 'Why'에 대한 질문에 대답하는 데 도움이되는 기본 데이터 및 컴퓨팅 서비스를 지원하는 지원 서비스의 일부를 보유하고 있습니다.
이 소프트웨어는 라이브러리 및 웹 서비스를 모두 제공합니다. 라이브러리로서 더 큰 응용 프로그램에 쉽게 내장 할 수 있습니다. 마이크로 서비스는 기초 플랫폼 서비스 제품군에 쉽게 내장 될 수 있습니다. HL7 FHIR API (R4)뿐만 아니라 평범한 REST API를 제공합니다.
ODS 주간을 사용하여 특정 GP 수술에 대한 일반 개업의 정보를 얻을 수 있습니다.
보다 세밀한 위치 서비스 (예 : Ward, Bed)는 통합 컨시어지 위치 서비스의 일부로 다른 모듈에서 제공합니다. 와드 및 침대 위치 및 상태 데이터는 일반적으로 참조 데이터 서비스보다는 환자 관리 시스템의 일부로 제공되지만 이는 임상 데이터의 캡처 컨텍스트를 적절하게 기록하기 위해 API (Seamless Application Programming Interface)를 제공하는 것을 목표로합니다. .
이 소프트웨어는 원래 소스 데이터를 면밀히 표현하는 동시에 연합이 될 수있는보다 추상적 인 시스템 세트를 제공합니다. 즉, 런타임 조화 및 여러 백엔드 서비스에 대한 추상화로 국제 경계에서 작동하는 응용 프로그램 소프트웨어가 의미합니다.
공공 부문 데이터는 계산 가능성을 허용하는 메커니즘으로 개방, 게시 및 자체 설명이어야합니다. 즉, 다양한 중요한 공공 부문 데이터의 마스터 인덱스에 대해 자동으로 업데이트되는 소프트웨어를 작성할 수 있습니다.
라이브러리 또는 마이크로 서비스로 실행할 때 유일한 종속성은 파일 시스템입니다.
옛날에, 우리는 개인 서버를 돌보고 애완 동물을 돌보는 것과 유사한 이름을 주었다. 그들은 오래 지속되었고 우리는 그들에게 서비스를 운영 할 것입니다. 관리자가 수동으로 업데이트에 로그인하여 소프트웨어 버전을 업그레이드하거나 백업 데이터를 업데이트하도록합니다.
이 모델과 다른 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 키가 필요합니다.
NHS Digital Trud에 로그인하고 프로필에서 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 이미지에 포함시킬 수 있지만 대신 공유 읽기 전용 파일 시스템에 링크하고 단순히 최신 백엔드 데이터에 연결하는 것이 좋습니다.
마이크로 서비스로 실행하려면 ODS 인덱스의 경로와 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 '특정 우편 번호에서 1000m 이내에 GP 수술을 검색해 봅시다.
$ 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는 또한 다양한 매개 변수로 검색을 지원합니다.
Monmouth의 일반적인 관행을 검색합시다
$ 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라인 수행 (선택 사항)
$ clj -M:lint/kondo
$ clj -M:lint/eastwood라이브러리 용기를 생성하려면 :
clj -T:build jar라이브러리 JAR을 로컬 Maven 저장소에 설치하려면 :
clj -T:build install라이브러리를 Clojars에 배포하려면 :
clj -T:build deploy원하는 경우 명령 줄에서 쉽게 실행할 수있는 JAR 파일을 생성 할 수 있습니다.
서버 Uberjar를 구축하고 실행하십시오. 이것은 간단한 REST 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 8080fhir 서버 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