Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウド電子カルテを支えるテクノロジーの光と闇
Search
Jun Tomioka
October 15, 2018
Technology
0
1.4k
クラウド電子カルテを支えるテクノロジーの光と闇
Jun Tomioka
October 15, 2018
Tweet
Share
More Decks by Jun Tomioka
See All by Jun Tomioka
Dotty で軽量な DI ライブラリをかいてみた
jooohn
1
360
ソフトウェアエンジニアとしてモナドを完全に理解する / make-perfect-sense-of-monad
jooohn
14
7.9k
ScalaのコンパイラにFizzBuzzを解いてもらう(Dottyもあるよ)
jooohn
1
1.1k
Write stack safe non-tailrec recursive functions
jooohn
4
980
Introduction to Clean Architecture
jooohn
1
580
人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever
jooohn
1
1.7k
Work at M3 USA
jooohn
0
1.4k
怖くないCats
jooohn
0
870
Scalaの型クラスを完全に理解する
jooohn
5
2k
Other Decks in Technology
See All in Technology
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.3k
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
210
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
67k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
560
Meshy Proプラン課金した
henjin0
0
240
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
430
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
160
Digitization部 紹介資料
sansan33
PRO
1
6.8k
Databricks Free Edition講座 データサイエンス編
taka_aki
0
290
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
41k
プロポーザルに込める段取り八分
shoheimitani
0
150
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
97
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
320
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2k
Typedesign – Prime Four
hannesfritz
42
2.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Everyday Curiosity
cassininazir
0
130
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
Into the Great Unknown - MozCon
thekraken
40
2.2k
The SEO Collaboration Effect
kristinabergwall1
0
350
Marketing to machines
jonoalderson
1
4.6k
Tell your own story through comics
letsgokoyo
1
800
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
クラウド電子カルテを 支えるテクノロジーの 光と闇 @jooohn1234
M3, Inc. @jooohn1234 • 電子カルテチームリーダー • Scala / FP 好き
• 育休エヴァンジェリスト (社内)
None
None
None
None
電子カルテ
受付 診察 会計
受付 診察 会計 電子カルテ 患者への医療行為を記録
受付 診察 会計 レセコン 会計計算・保険請求
None
今日はなすこと
電子カルテを支える イケてるモダンな 光のテクノロジー
電子カルテを支えるために こうするしかなかった 闇のテクノロジー
光 と 闇 のテクノロジー • クラウド • レセコン
クラウド電子カルテ
クラウドなんていまさら 当たり前では・・・
? ?
?
None
電カル導入の 5%未満 ※と言われている
光 当たり前すぎて見えなかったクラウドの良さ • 更新が容易・迅速 • どこからでもアクセス可(訪問診療) • Multi AZによる対災害性 •
BaaS, PaaS, SaaSの利用 • 集中管理によるコストメリット • etc
None
ただし
良いことばかり ではない
クラウド電子カルテ
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器 ?
うーん・・・
つらい
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器 双方向通信
闇 院内ネットワークで起動するエージェント • 保守のハードルが高い ◦ アプリアップデートの問題 ◦ 調査の問題 • JREの継続的アップデートが必要...
(誰が やるの) ◦ Electronへの移行を検討中 • 過渡期感ある
クラウドまとめ • クラウド最高 • 全部クラウドにできなくて辛い • はやく全部クラウドの世界になってほしい
レセコン
受付 診察 会計 レセコン 会計計算・保険請求
闇 避けては通れないレセコン機能 • カルテの情報をレセコンと同期する機能 はほぼ必須 • 診療報酬点数計算・保険請求 ◦ 複雑な処理の塊で、開発ハードルが高 い
闇 避けては通れないレセコン機能 概要 UX 開発コスト 連携型 サードパーティのレ セコンと連携 悪 中
一体型 自社開発の レセコン 良 激高
闇 避けては通れないレセコン機能 • 2015年 ◦ 連携型としてローンチ ◦ レセコン機能の先行調査開始 • 2017年
◦ 一体型・レセコン単体機能リリー ス
複雑な処理に 立ち向かう
光 複雑な業務知識に立ち向かう • Scala ◦ 管理しやすく(OOP)、堅牢 (FP) • Functional Programming
◦ テスト・再利用が容易 ◦ 点数計算は巨大な関数 • Clean Architecture ...のエッセンスを拝借 ◦ 複雑な計算ルールを作用と分離
https://8thlight.com/blog/uncle-bob/2012/08/13/t he-clean-architecture.html
光 Entities • コアになるビジネスルールを表現 ◦ 会計計算・保険請求用の集計処理 • [FP] 純粋なコンポーネントのみで構成 ◦
定数・不変オブジェクトのみ利用 ◦ IO, Future, Exceptionといった作用無し ◦ テスト・再利用・理解しやすい ▪ ここを一番厚くテストしたい
None
副作用のない純粋な関数 この層で起こるエラーはビジネスルール。 値としてモデリング。
光 Use Cases • 永続化など含むアプリケーション要件 ◦ DBIO, Future が出てくるのはこの層 •
[Scala] for 式による作用の直列処理 ◦ 作用を起こす場所を一箇所に • [Scala] Tagless Final による作用の抽象化 ◦ ...をできたら良いなと思っている ◦ この層もよりtestableに
None
作用の型を宣言。Scalaはここを抽象化すること も可能!(高カインド型パラメータ)
作用を起こす処理。この層ではInterfaceに依存 するようにし、DIするようにするとテストしやすい。 (Dependency Inversion Principle)
for式を用いて、作用の処理を一箇所にまとめ る。ハッピーなケースについてのみ記述
Entities層を利用
光 sbt multi project builds • 依存関係を明記 ◦ UseCases層はEntities層 に依存
◦ Entities層はDBアクセスライブラリに非 依存 • 依存関係のないコードを読めなくなる。
PACS レセコン 院内機器
PACS レセコン 院内機器 連携型の世界
PACS レセコン 院内機器 一体型の世界
クラウド最高!
まとめ • レガシー業界では遺産に向き合う必要が ある ◦ 「すべてがモダン」にはならない過渡期 がある • モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています