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
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クラウド電子カルテを支えるテクノロジーの光と闇
Jun Tomioka
October 15, 2018
More Decks by Jun Tomioka
See All by Jun Tomioka
Dotty で軽量な DI ライブラリをかいてみた
jooohn
1
390
ソフトウェアエンジニアとしてモナドを完全に理解する / make-perfect-sense-of-monad
jooohn
14
8k
ScalaのコンパイラにFizzBuzzを解いてもらう(Dottyもあるよ)
jooohn
1
1.2k
Write stack safe non-tailrec recursive functions
jooohn
4
1k
Introduction to Clean Architecture
jooohn
1
610
人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever
jooohn
1
1.8k
Work at M3 USA
jooohn
0
1.5k
怖くないCats
jooohn
0
930
Scalaの型クラスを完全に理解する
jooohn
5
2.1k
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.5k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
85k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
150
Windows の互換機能 - 古いプログラムはなぜ動作できるのか
murachiakira
PRO
0
100
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
510
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
330
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
410
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
The Django UUID Story - DjangoCon US 2026
pauloxnet
0
260
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
440
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
240
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Claude Code のすすめ
schroneko
67
230k
Discover your Explorer Soul
emna__ayadi
2
1.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Typedesign – Prime Four
hannesfritz
42
3.1k
The Pragmatic Product Professional
lauravandoore
37
7.4k
The agentic SEO stack - context over prompts
schlessera
0
880
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
490
How to Think Like a Performance Engineer
csswizardry
28
2.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
810
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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 レセコン 院内機器 一体型の世界
クラウド最高!
まとめ • レガシー業界では遺産に向き合う必要が ある ◦ 「すべてがモダン」にはならない過渡期 がある • モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています