Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
クラウド電子カルテを 支えるテクノロジーの 光と闇 @jooohn1234
Slide 2
Slide 2 text
M3, Inc. @jooohn1234 ● 電子カルテチームリーダー ● Scala / FP 好き ● 育休エヴァンジェリスト (社内)
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
電子カルテ
Slide 8
Slide 8 text
受付 診察 会計
Slide 9
Slide 9 text
受付 診察 会計 電子カルテ 患者への医療行為を記録
Slide 10
Slide 10 text
受付 診察 会計 レセコン 会計計算・保険請求
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
今日はなすこと
Slide 13
Slide 13 text
電子カルテを支える イケてるモダンな 光のテクノロジー
Slide 14
Slide 14 text
電子カルテを支えるために こうするしかなかった 闇のテクノロジー
Slide 15
Slide 15 text
光 と 闇 のテクノロジー ● クラウド ● レセコン
Slide 16
Slide 16 text
クラウド電子カルテ
Slide 17
Slide 17 text
クラウドなんていまさら 当たり前では・・・
Slide 18
Slide 18 text
? ?
Slide 19
Slide 19 text
?
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
電カル導入の 5%未満 ※と言われている
Slide 22
Slide 22 text
光 当たり前すぎて見えなかったクラウドの良さ ● 更新が容易・迅速 ● どこからでもアクセス可(訪問診療) ● Multi AZによる対災害性 ● BaaS, PaaS, SaaSの利用 ● 集中管理によるコストメリット ● etc
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
ただし
Slide 25
Slide 25 text
良いことばかり ではない
Slide 26
Slide 26 text
クラウド電子カルテ
Slide 27
Slide 27 text
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器
Slide 28
Slide 28 text
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器 ?
Slide 29
Slide 29 text
うーん・・・
Slide 30
Slide 30 text
つらい
Slide 31
Slide 31 text
クラウド電子カルテ 院内ネットワーク PACS レセコン 院内機器 双方向通信
Slide 32
Slide 32 text
闇 院内ネットワークで起動するエージェント ● 保守のハードルが高い ○ アプリアップデートの問題 ○ 調査の問題 ● JREの継続的アップデートが必要... (誰が やるの) ○ Electronへの移行を検討中 ● 過渡期感ある
Slide 33
Slide 33 text
クラウドまとめ ● クラウド最高 ● 全部クラウドにできなくて辛い ● はやく全部クラウドの世界になってほしい
Slide 34
Slide 34 text
レセコン
Slide 35
Slide 35 text
受付 診察 会計 レセコン 会計計算・保険請求
Slide 36
Slide 36 text
闇 避けては通れないレセコン機能 ● カルテの情報をレセコンと同期する機能 はほぼ必須 ● 診療報酬点数計算・保険請求 ○ 複雑な処理の塊で、開発ハードルが高 い
Slide 37
Slide 37 text
闇 避けては通れないレセコン機能 概要 UX 開発コスト 連携型 サードパーティのレ セコンと連携 悪 中 一体型 自社開発の レセコン 良 激高
Slide 38
Slide 38 text
闇 避けては通れないレセコン機能 ● 2015年 ○ 連携型としてローンチ ○ レセコン機能の先行調査開始 ● 2017年 ○ 一体型・レセコン単体機能リリー ス
Slide 39
Slide 39 text
複雑な処理に 立ち向かう
Slide 40
Slide 40 text
光 複雑な業務知識に立ち向かう ● Scala ○ 管理しやすく(OOP)、堅牢 (FP) ● Functional Programming ○ テスト・再利用が容易 ○ 点数計算は巨大な関数 ● Clean Architecture ...のエッセンスを拝借 ○ 複雑な計算ルールを作用と分離
Slide 41
Slide 41 text
https://8thlight.com/blog/uncle-bob/2012/08/13/t he-clean-architecture.html
Slide 42
Slide 42 text
光 Entities ● コアになるビジネスルールを表現 ○ 会計計算・保険請求用の集計処理 ● [FP] 純粋なコンポーネントのみで構成 ○ 定数・不変オブジェクトのみ利用 ○ IO, Future, Exceptionといった作用無し ○ テスト・再利用・理解しやすい ■ ここを一番厚くテストしたい
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
副作用のない純粋な関数 この層で起こるエラーはビジネスルール。 値としてモデリング。
Slide 45
Slide 45 text
光 Use Cases ● 永続化など含むアプリケーション要件 ○ DBIO, Future が出てくるのはこの層 ● [Scala] for 式による作用の直列処理 ○ 作用を起こす場所を一箇所に ● [Scala] Tagless Final による作用の抽象化 ○ ...をできたら良いなと思っている ○ この層もよりtestableに
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
作用の型を宣言。Scalaはここを抽象化すること も可能!(高カインド型パラメータ)
Slide 48
Slide 48 text
作用を起こす処理。この層ではInterfaceに依存 するようにし、DIするようにするとテストしやすい。 (Dependency Inversion Principle)
Slide 49
Slide 49 text
for式を用いて、作用の処理を一箇所にまとめ る。ハッピーなケースについてのみ記述
Slide 50
Slide 50 text
Entities層を利用
Slide 51
Slide 51 text
光 sbt multi project builds ● 依存関係を明記 ○ UseCases層はEntities層 に依存 ○ Entities層はDBアクセスライブラリに非 依存 ● 依存関係のないコードを読めなくなる。
Slide 52
Slide 52 text
PACS レセコン 院内機器
Slide 53
Slide 53 text
PACS レセコン 院内機器 連携型の世界
Slide 54
Slide 54 text
PACS レセコン 院内機器 一体型の世界
Slide 55
Slide 55 text
クラウド最高!
Slide 56
Slide 56 text
まとめ ● レガシー業界では遺産に向き合う必要が ある ○ 「すべてがモダン」にはならない過渡期 がある ● モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています