Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin...
Search
Agata Naomichi
November 25, 2025
Programming
9.8k
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
Turning AI into Business Impact / "AI" の事業インパクトを最大化する
agatan
4
750
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
9
24k
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
2
750
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
670
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
3
970
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
3
6.2k
The Web Conference 2020 - Participation Report
agatan
1
770
○○2vec 再考
agatan
1
4.8k
Improving "People You May Know" on Directed Social Graph
agatan
4
2.8k
Other Decks in Programming
See All in Programming
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
310
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
300
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.3k
GraphQL の onError と Nullability のこれから
quramy
0
210
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Event is what happens
moro
2
4k
LLM 101: Exploring LLMs, Starting with Tokens.
dalinaum
0
100
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
小さなアプリを作って公開するまで
onozaty
0
150
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
250
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
320
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
990
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
The agentic SEO stack - context over prompts
schlessera
0
1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
Crafting Experiences
bethany
1
430
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Exploring anti-patterns in Rails
aemeredith
4
560
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
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 プロダクト開発・運営の様子をお届 けするポッドキャストです。