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
380
ソフトウェアエンジニアとしてモナドを完全に理解する / 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
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1.3k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
120
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
280
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
420
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
210
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
480
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
130
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
0
850
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
460
Goでデータパイプラインを作ろう
sansantech
PRO
0
250
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
140
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The agentic SEO stack - context over prompts
schlessera
0
860
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
Design in an AI World
tapps
1
270
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
480
Believing is Seeing
oripsolob
1
180
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The Invisible Side of Design
smashingmag
301
52k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
230
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
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 レセコン 院内機器 一体型の世界
クラウド最高!
まとめ • レガシー業界では遺産に向き合う必要が ある ◦ 「すべてがモダン」にはならない過渡期 がある • モダンなテクノロジーや設計手法を武器 に少しずつ良くしていっています