ห้องสมุดบริการเว็บและชุดเครื่องมือสำหรับข้อมูลองค์กรด้านสุขภาพและการดูแลของสหราชอาณาจักร
ข้อมูลการอ้างอิงองค์กรด้านสุขภาพและการดูแลสังคมเผยแพร่โดย NHS Digital ภายใต้มาตรฐาน DCB0090
clods ได้รับการออกแบบมาเพื่อให้บริการ "ตำแหน่ง" ลงไปที่ความละเอียดของเว็บไซต์องค์กรโดยใช้ข้อมูลอ้างอิงนี้
clods เป็นส่วนหนึ่งของชุดข้อมูลพื้นฐานและบริการคอมพิวเตอร์ที่ช่วยตอบคำถามเกี่ยวกับ 'Who', 'What', 'เมื่อ', 'How' และ 'ทำไม' ของข้อมูลสุขภาพและการดูแล
ซอฟต์แวร์นี้มีทั้งห้องสมุดและบริการเว็บ ในฐานะห้องสมุดมันสามารถฝังลงในแอปพลิเคชันขนาดใหญ่ได้อย่างง่ายดาย ในฐานะที่เป็น microservice สามารถฝังลงในชุดบริการแพลตฟอร์มพื้นฐานได้อย่างง่ายดาย มันให้ทั้ง REST API ธรรมดาและ HL7 FHIR API (R4)
คุณสามารถรับข้อมูลผู้ปฏิบัติงานทั่วไปสำหรับการผ่าตัด GP ที่เฉพาะเจาะจงโดยใช้ ODS ทุกสัปดาห์
บริการที่ตั้งอย่างละเอียดมากขึ้น (เช่น Ward, Bed) จัดทำโดยโมดูลอื่น ๆ ซึ่งเป็นส่วนหนึ่งของบริการสถานที่ตั้งของเจ้าหน้าที่อำนวยความสะดวกแบบครบวงจร โดยทั่วไปแล้วข้อมูลตำแหน่งและเตียงนอนและสถานะเป็นส่วนหนึ่งของระบบการบริหารผู้ป่วยมากกว่าบริการข้อมูลอ้างอิง แต่สิ่งนี้มีวัตถุประสงค์เพื่อให้อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันที่ไร้รอยต่อ (API) เพื่อบันทึกบริบทของการจับภาพข้อมูลทางคลินิกใด ๆ .
ที่สำคัญคือซอฟต์แวร์ให้การเป็นตัวแทนอย่างใกล้ชิดของข้อมูลต้นฉบับต้นฉบับในขณะที่ยังให้ชุดระบบที่เป็นนามธรรมมากขึ้นซึ่งจะเป็นที่รวมกัน นั่นหมายถึงซอฟต์แวร์แอปพลิเคชันที่ทำงานในขอบเขตระหว่างประเทศด้วยการประสานงานรันไทม์และ abstractions ในบริการแบ็กเอนด์หลายบริการ
ข้อมูลภาครัฐควรเปิดเผยแพร่และอธิบายตัวเองด้วยกลไกเพื่ออนุญาตให้คำนวณได้ นั่นหมายความว่าเราสามารถเขียนซอฟต์แวร์ที่อัปเดตโดยอัตโนมัติกับดัชนีหลักของข้อมูลภาครัฐที่สำคัญ
เมื่อทำงานเป็นไลบรารีหรือ microservice การพึ่งพาเพียงอย่างเดียวคือระบบไฟล์
ในสมัยก่อนเราดูแลเซิร์ฟเวอร์ของแต่ละบุคคลและให้ชื่อพวกเขาคล้ายกับการดูแลสัตว์เลี้ยง พวกเขาจะมีอายุยืนยาวและเราจะให้บริการกับพวกเขา คุณมีผู้ดูแลระบบเข้าสู่ระบบด้วยตนเองเพื่ออัปเดตในสถานที่อัพเกรดซอฟต์แวร์เวอร์ชันหรืออัปเดตข้อมูลสำรอง
คุณยังสามารถใช้โมเดลนี้สำหรับซอฟต์แวร์นี้และซอฟต์แวร์ PatientCare อื่น ๆ แต่วิธีการที่ทันสมัยกว่าคือการรักษาโครงสร้างพื้นฐานการคำนวณและข้อมูลของคุณเป็นวัว ซึ่งแตกต่างจากสัตว์เลี้ยงคุณมักจะไม่ตั้งชื่อวัวของคุณและคุณอาจมีการหมุนเวียนที่สำคัญในวัวเหล่านั้น ดังนั้นจึงมีเหตุผลทั้งหมดที่จะหมุนบริการเวอร์ชันใหม่นี้ด้วยข้อมูลที่ได้รับการปรับปรุงใหม่
ดังนั้นสิ่งนี้และบริการ PatientCare อื่น ๆ ได้รับการออกแบบมาเพื่อให้ขั้นตอนโดยอัตโนมัติให้ได้มากที่สุด
คุณจะต้องติดตั้ง Clojure เพื่อประสบการณ์ที่ดีที่สุด แต่เป็นไปได้ที่จะทำงานโดยใช้ขวดที่สร้างไว้ล่วงหน้า ดูข้อมูลด้านล่างเกี่ยวกับไฟล์ JAR
บริการนี้ต้องการไดเรกทอรีสำหรับระบบไฟล์เพื่อทำงาน
ข้อมูลองค์กรพลุกพล่านรวมถึงข้อมูลเกี่ยวกับองค์กรพลุกพล่าน เพื่อเปิดใช้งานบริการทางภูมิศาสตร์ clods ได้รวมข้อมูลเหล่านี้เข้ากับข้อมูลทางภูมิศาสตร์ของ NHS โดยใช้ 'NHS Postcode Directory' คุณสามารถใช้ NHSPD เป็นบริการแบบสแตนด์อโลน แต่เพื่อความสะดวก clods รวมถึงเครื่องมือนั้น
ในตัวอย่างเหล่านี้เราจะใช้
คุณสามารถเลือกใช้ไดเรกทอรีเดียวและอัปเดตในสถานที่หรือสร้างที่เก็บใหม่เป็นระยะ ฉันชอบข้อมูลสำรองแบบอ่านอย่างเดียวโดยไม่เปลี่ยนรูปโดยค่าเริ่มต้นดังนั้นจึงชอบหลัง
นอกจากนี้เรายังต้องระบุแคชชั่วคราวสำหรับข้อมูลที่ดาวน์โหลด
สำหรับตัวอย่างเหล่านี้เราจะใช้
คุณอาจมี NHSPD ทำงานอยู่แล้ว ใช้ดัชนีที่คุณใช้สำหรับสิ่งนั้น
ถ้าไม่ได้รับการตั้งค่าหนึ่งครั้ง
$ clj -M:nhspd /var/local/nhspd-2020-11หลังจากนั้นไม่กี่นาทีดัชนีไดเรกทอรีรหัสไปรษณีย์ของ NHS จะได้รับการดาวน์โหลดและนำเข้า
คุณจะต้องใช้คีย์ TRUD API Digital Digital
เข้าสู่ระบบไปยัง 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 หรือใช้เวอร์ชันดาวน์โหลดที่มีอยู่ในแคชท้องถิ่นของคุณหากมีและสร้างดัชนีองค์กร
ในขณะที่คุณสามารถฝังสิ่งนี้ทั้งหมดลงในอิมเมจนักเทียบท่าเดียวสำหรับการปรับใช้ แต่อาจเป็นการดีกว่าที่จะเชื่อมโยงไปยังระบบไฟล์แบบอ่านอย่างเดียวที่ใช้ร่วมกันและเชื่อมโยงไปยังข้อมูลแบ็กเอนด์ล่าสุด
ในการทำงานเป็น microservice คุณต้องรวมเส้นทางของดัชนี 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 'มาค้นหาการผ่าตัด GP ภายในระยะ 1,000 เมตรของรหัสไปรษณีย์เฉพาะ
$ 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ในการติดตั้งขวดไลบรารีลงในที่เก็บ 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 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 แบบสแตนด์อโลนเหล่านี้ได้ พวกเขาไม่มีการพึ่งพา
ลิขสิทธิ์© 2020-22 Eldrix Ltd และ Mark Wardle