Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
クラウド電子カルテを支えるテクノロジーの光と闇
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
620
人類には早すぎる、謎の計算ロジックに立ち向かう / 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
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
200
あるけみー式LTスライド作成術
alchemy1115
1
210
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
AI時代、データエンジニアが一番おもろい
genshun9
0
600
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
100
LLMに渡さなかった仕事
nanaism
0
170
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
810
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
320
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
170
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
23
15k
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
470
Featured
See All Featured
Building an army of robots
kneath
307
46k
The Language of Interfaces
destraynor
162
27k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
The Pragmatic Product Professional
lauravandoore
37
7.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 レセコン 院内機器 一体型の世界
クラウド最高!
まとめ • レガシー業界では遺産に向き合う必要が ある ◦ 「すべてがモダン」にはならない過渡期 がある • モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています