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
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin...
Search
Agata Naomichi
November 25, 2025
Programming
9.2k
2
Share
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
Server-Side Kotlin Night 2025
https://henry.connpass.com/event/373576/
での発表資料です。
Agata Naomichi
November 25, 2025
More Decks by Agata Naomichi
See All by Agata Naomichi
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
23k
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
2
680
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
610
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
3
890
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
3
5.9k
The Web Conference 2020 - Participation Report
agatan
1
750
○○2vec 再考
agatan
1
4.6k
Improving "People You May Know" on Directed Social Graph
agatan
4
2.7k
Machine Learning and Feedback
agatan
1
1.5k
Other Decks in Programming
See All in Programming
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
150
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
160
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
390
飯MCP
yusukebe
0
480
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
240
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
120
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
260
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
AI駆動開発がもたらすパラダイムシフト
ryosuke0911
0
110
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
130
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Done Done
chrislema
186
16k
For a Future-Friendly Web
brad_frost
183
10k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Invisible Side of Design
smashingmag
302
51k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
85
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
510
Transcript
Copyright © Henry, Inc. All rights reserved. Why Kotlin? 電子カルテを
Kotlin で開発する理由 縣 直道 / @agatan_ 2025-11-25 Server-Side Kotlin Night 2025
Copyright © Henry, Inc. All rights reserved. 自己紹介 縣
直道 @agatan_ 株式会社ヘンリー VP of Product • 2022/04 ヘンリーにエンジニアとして入社 • 2025/10 より現職
Copyright © Henry, Inc. All rights reserved. 日本の病院向けに開発された 唯一のクラウドネイティブな電子カルテ 業務改革を実現する基幹システム
レセコン(医事会計システム)も一体化 レセコン一体型電子カルテ「Henry」
Copyright © Henry, Inc. All rights reserved. 病院向け電子カルテの3つの性質 巨大 高密度
変化
Copyright © Henry, Inc. All rights reserved. 性質1:巨大 院内すべての業務の起点でありハブ 電子カルテは、病院という組織の基幹システム
• 医師、看護師、薬剤師、検査技師、医療事務... • 多数のアクターが登場し、電子カルテで 日々業務を行っている
Copyright © Henry, Inc. All rights reserved. 医療は複数の専門職による緊密な連携プレー 12 /
43 性質2:高密度
Copyright © Henry, Inc. All rights reserved. 多様な専門職の業務が、「診療報酬制度」によって横断的に制約されている。 診療報酬制度による業務横断の結合 診療報酬制度とは?
医療行為の価格(点数)を決める公的なルール。 たとえば... • 初診だったら291点(= 2910円) • 短時間の静脈麻酔をやったら120点(= 1200円) 算定するためにカルテに特定の内容が記録されていることを求めたり、定められた様式で診 察内容を記載し患者からの署名をもらうことを求めるようなものもあり、医療の現場での業 務に大きな影響を与えるもの。
Copyright © Henry, Inc. All rights reserved. 定期的かつ強制的な変化 診療報酬制度は2年に1回改定される (次回は2026年6月)
それ以外にも、コロナや政治などの要因で、 制度変更は不定期に訪れる。 性質3: 変化 不確実な変化 制度変更によってコンテキスト同士の関係性・結合度が変わりうる 昨日まで正しかった設計が、制度変更で「間違い」になる
Copyright © Henry, Inc. All rights reserved. Copyright © Henry,
Inc. All rights reserved. 技術選定
Copyright © Henry, Inc. All rights reserved. 構成技術はふつうのWebアプリケーション
Copyright © Henry, Inc. All rights reserved. 構成技術はふつうのWebアプリケーション
Copyright © Henry, Inc. All rights reserved. • バックエンドサービスはほぼ全て Kotlin
で記述 ◦ grpc-java → GraphQL Kotlin (w/ Ktor) ◦ Exposed (DBアクセス) ◦ Koin (DI) ◦ Kotest (Testing) ◦ etc… Server Side Kotlin
Copyright © Henry, Inc. All rights reserved. 1. 安全性 2.
表現力 3. 資産 Why Kotlin?
Copyright © Henry, Inc. All rights reserved. • Null Safety
◦ ワークフローの途中状態として、欠損が容易に生み出される ▪ e.g. • 入院予定を登録する時点では病棟病室は任意項目だが、入院中・退院後は必須 • 患者登録時点では生年月日は任意項目だが、会計上は必須 • 静的型検査やIDE支援によるリファクタリング支援 ◦ 診療報酬改定を筆頭に、強制イベントを乗り越えリファクタリングし 続ける必要性がある 安全性
Copyright © Henry, Inc. All rights reserved. • Sealed Class
/ Data Class ◦ ドメインモデリングの武器として強力 • internal ◦ Gradleモジュールを分割し、モジュール外からのアクセスを禁止する ◦ モジュラーモノリスとしての一定の規律を提供できる 表現力
Copyright © Henry, Inc. All rights reserved. • Java &
JVM の資産は強力 ◦ Java 資産を利用できる ▪ 特に電子カルテにおいては、いわゆる業務っぽい資産が活きる ◦ JVM 運用ノウハウを利用できる • 採用観点 ◦ 「複雑なドメインに向き合う」ことに慣れた人が Java / Kotlin 経験 者には相対的に多い(気がする)(要出典) ◦ モダンな言語を利用している人なら違和感なくとっつきやすい 資産
Copyright © Henry, Inc. All rights reserved. 宣伝 ドメインとの向き合い方について、アーキテクチャConference2025でも 登壇してきました!
Copyright © Henry, Inc. All rights reserved. 採用情報や事業や技術について、積極的に発信しています! 採用情報 採用募集ページ
募集中の採用ポジションや募集要項 がご確認いただけます。 オープンポジションのカジュアル面 談も募集していますので、お気軽に お申し込みください。 技術ブログ はてなブログ ヘンリー製品開発チームが運営する 技術ブログです。 会社公式ブログ note ヘンリーで働く人や医療業界や事業 のことが幅広くしれる公式ブログで す。 CEO の逆瀬川も個人で NOTE を発 信しているのでぜひ! 理想駆動ラジオ Spotify プロダクト開発・運営の様子をお届 けするポッドキャストです。