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.2k
クラウド電子カルテを支えるテクノロジーの光と闇
Jun Tomioka
October 15, 2018
Tweet
Share
More Decks by Jun Tomioka
See All by Jun Tomioka
Dotty で軽量な DI ライブラリをかいてみた
jooohn
1
300
ソフトウェアエンジニアとしてモナドを完全に理解する / make-perfect-sense-of-monad
jooohn
14
7.5k
ScalaのコンパイラにFizzBuzzを解いてもらう(Dottyもあるよ)
jooohn
1
960
Write stack safe non-tailrec recursive functions
jooohn
4
890
Introduction to Clean Architecture
jooohn
1
530
人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever
jooohn
1
1.6k
Work at M3 USA
jooohn
0
1.2k
怖くないCats
jooohn
0
750
Scalaの型クラスを完全に理解する
jooohn
5
1.8k
Other Decks in Technology
See All in Technology
AWS re:Invent 2024 recap in 20min / JAWSUG 千葉 2025.1.14
shimy
1
100
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
170
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!座学①
siyuanzh09
0
110
技術に触れたり、顔を出そう
maruto
1
150
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
200
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
GoogleのAIエージェント論 Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic
customercloud
PRO
0
130
Building Scalable Backend Services with Firebase
wisdommatt
0
110
商品レコメンドでのexplicit negative feedbackの活用
alpicola
1
340
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
7.5k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Why Our Code Smells
bkeepers
PRO
335
57k
Statistics for Hackers
jakevdp
797
220k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Designing for humans not robots
tammielis
250
25k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Building Adaptive Systems
keathley
38
2.4k
Designing Experiences People Love
moore
139
23k
Documentation Writing (for coders)
carmenintech
67
4.5k
Gamification - CAS2011
davidbonilla
80
5.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
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 レセコン 院内機器 一体型の世界
クラウド最高!
まとめ • レガシー業界では遺産に向き合う必要が ある ◦ 「すべてがモダン」にはならない過渡期 がある • モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています