2024-06-22
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 厚生労働省

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS