MOSS, Japan主催の「
第15回医療オープンソースソフトウェア協議会セミナー」にて、「OSSで加速するオープンデータの社会実装とシビックテック」と題して情報提供。「FSH(フィッシュ)」という医療データ固有言語を中心に、オープンソースで開発が進む、医療データ活用の取り組みを知りました。
「MOSS, Japan」
ちょうど15回目、参加者15人!
デジタル化する課題はどの業界も共通。セキュリティとプライバシーと信頼性を安く楽しく実現することが、いままでの慣習からの脱却の鍵!
「HL7.FHIR.UV.SHORTHAND\FHIR Shorthand - FHIR v4.0.1」
データ共有の肝は、使う用語の統一!
FHIR(= Fast Healthcare Interoperability Resources、ファイアーと呼ばれる)は、手早く設計し導入できる保健医療分野の相互運⽤性リソース。
FSH(= FHIR Shorthand、短縮版FHIR、フィッシュと呼ばれる)は、医療に関する各データをシンプルなテキスト形式で表記する。
RDFによる表現も定義されており、5つ星オープンデータとも相互運用が可能!
ひとまずFSHに触れてみるため、簡単なオープンソースづくりからスタートします。FSHで記述されたかんたんな患者データサンプルですが、JSON表現への変換ができました。
もとになるFSH(FHIRのJp Core実装のための開発用レポジトリのJP_Patient_Example.fshより)
Instance: jp-patient-example-1
InstanceOf: Patient
Usage: #example
* meta.profile = "http://jpfhir.jp/fhir/core/StructureDefinition/JP_Patient"
* identifier.system = "urn:oid:1.2.392.100495.20.3.51.11311234567"
* identifier.value = "00000010"
* name[0].extension.url = "http://hl7.org/fhir/StructureDefinition/iso21090-EN-representation"
* name[=].extension.valueCode = #IDE
* name[=].use = #usual
* name[=].text = "山田 太郎"
* name[=].family = "山田"
* name[=].given = "太郎"
* name[+].extension.url = "http://hl7.org/fhir/StructureDefinition/iso21090-EN-representation"
* name[=].extension.valueCode = #SYL
* name[=].use = #usual
* name[=].text = "ヤマダ タロウ"
* name[=].family = "ヤマダ"
* name[=].given = "タロウ"
* telecom.system = #phone
* telecom.value = "0312345678"
* telecom.use = #home
* gender = #male
* birthDate = "1970-01-01"
* address.postalCode = "1600023"
* address.text = "東京都新宿区"
* extension[0].url = "http://hl7.org/fhir/StructureDefinition/patient-religion"
* extension[=].valueCodeableConcept = http://terminology.hl7.org/CodeSystem/v3-ReligiousAffiliation#1046 "Shinto"
* extension[+].url = "http://hl7.org/fhir/StructureDefinition/patient-birthPlace"
* extension[=].valueAddress.state = "東京"
* extension[+].url = "http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Patient_Race"
* extension[=].valueCodeableConcept = http://terminology.hl7.org/CodeSystem/v3-Race#2039-6 "Japanese"
[0]や[+]などを使った配列データの記載方法がおもしろい!
下記が、変換したJSON
{
"resourceType": "Patient",
"id": "jp-patient-example-1",
"meta": {
"profile": [
"http://jpfhir.jp/fhir/core/StructureDefinition/JP_Patient"
]
},
"identifier": [
{
"system": "urn:oid:1.2.392.100495.20.3.51.11311234567",
"value": "00000010"
}
],
"name": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/iso21090-EN-representation",
"valueCode": "IDE"
}
],
"use": "usual",
"text": "山田 太郎",
"family": "山田",
"given": [
"太郎"
]
},
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/iso21090-EN-representation",
"valueCode": "SYL"
}
],
"use": "usual",
"text": "ヤマダ タロウ",
"family": "ヤマダ",
"given": [
"タロウ"
]
}
],
"telecom": [
{
"system": "phone",
"value": "0312345678",
"use": "home"
}
],
"gender": "male",
"birthDate": "1970-01-01",
"address": [
{
"postalCode": "1600023",
"text": "東京都新宿区"
}
],
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-religion",
"valueCodeableConcept": {
"coding": [
{
"code": "1046",
"system": "http://terminology.hl7.org/CodeSystem/v3-ReligiousAffiliation",
"display": "Shinto"
}
]
}
},
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
"valueAddress": {
"state": "東京"
}
},
{
"url": "http://jpfhir.jp/fhir/core/Extension/StructureDefinition/JP_Patient_Race",
"valueCodeableConcept": {
"coding": [
{
"code": "2039-6",
"system": "http://terminology.hl7.org/CodeSystem/v3-Race",
"display": "Japanese"
}
]
}
}
]
}
「code4fukui/FSH - src on GitHub」
JavaScript、99行でできた、FSH.js 1ファイルで実現する FSH.toJSON、2つのサンプルファイルの変換がうまくいっているかテストする FSH.test.js で動作を確認しています。
links
- 医療とオープンソース、DPCリスト、診断群分類 by 厚生労働省