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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Agata Naomichi
November 25, 2025
Programming
9.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
9
24k
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
2
710
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
630
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
3
930
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
3
6.1k
The Web Conference 2020 - Participation Report
agatan
1
760
○○2vec 再考
agatan
1
4.7k
Improving "People You May Know" on Directed Social Graph
agatan
4
2.8k
Machine Learning and Feedback
agatan
1
1.5k
Other Decks in Programming
See All in Programming
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1k
Android CLI
fornewid
0
190
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
650
Claude Team Plan導入・ガイド
tk3fftk
0
240
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
410
今さら聞けない .NET CLI
htkym
0
150
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
360
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
250
えっ!!コードを読まずに開発を!?
hananouchi
0
280
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.7k
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
500
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Code Review Best Practice
trishagee
74
20k
How to make the Groovebox
asonas
2
2.3k
Bash Introduction
62gerente
615
220k
Designing Experiences People Love
moore
143
24k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Designing for Timeless Needs
cassininazir
1
410
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
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 プロダクト開発・運営の様子をお届 けするポッドキャストです。