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
2
8.4k
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
Server-Side Kotlin Night 2025
https://henry.connpass.com/event/373576/
での発表資料です。
Agata Naomichi
November 25, 2025
Tweet
Share
More Decks by Agata Naomichi
See All by Agata Naomichi
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
22k
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
2
640
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
580
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
3
870
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
3
5.8k
The Web Conference 2020 - Participation Report
agatan
1
730
○○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
CSC307 Lecture 05
javiergs
PRO
0
480
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.5k
Data-Centric Kaggle
isax1015
2
630
AIエージェントの設計で注意するべきポイント6選
har1101
6
3.2k
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
380
Basic Architectures
denyspoltorak
0
420
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
130
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
310
gunshi
kazupon
1
140
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
380
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.2k
Featured
See All Featured
Making Projects Easy
brettharned
120
6.5k
The Curious Case for Waylosing
cassininazir
0
220
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
70
RailsConf 2023
tenderlove
30
1.3k
Writing Fast Ruby
sferik
630
62k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
890
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
2.9k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
190
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
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 プロダクト開発・運営の様子をお届 けするポッドキャストです。