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

まとめ ● レガシー業界では遺産に向き合う必要が ある ○ 「すべてがモダン」にはならない過渡期 がある ● モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています