Skip to content

Commit 16ad960

Browse files
committed
Update article
1 parent 7691e01 commit 16ad960

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

content/blog/2025-12-24-development-progress.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,46 @@ image: "/blog/2025-12-24-development-progress/ogp.png"
88
draft: false
99
---
1010

11-
メリークリスマス。皆様いかがお過ごしでしょうか。
11+
メリークリスマス🎅。皆様いかがお過ごしでしょうか。
1212

1313
## 事業準備の進捗
1414

1515
着々と事業の準備を進めております。
1616

17-
先日、契約いただけるクリニック様、さらにそのクリニックと提携する医療機関様に足を運びました。なんとかもろもろの契約がまとまりそうで、ホッとしているところです。
17+
先日、ご利用いただけるクリニック様、さらにそのクリニックと提携する医療機関様に足を運びました。なんとかもろもろの契約がまとまりそうで、ホッとしているところです。
1818

1919
## システム開発について
2020

2121
Claude Codeのおかげで、システムは当初計画した範囲を超え、考えうる機能はほぼすべて盛り込むことができました。
2222

23+
技術スタックは以下のようになっております。
24+
2325
- バックエンド: Go + ent + gqlgen(GraphQL)
2426
- フロントエンド: SvelteKit + GraphQL Code Generator
2527

2628
entのスキーマ定義から型情報が一気通貫しています。
2729

2830
3つのフロントエンド(病理医向け、連携機関向けポータル、管理画面)と1つの共用バックエンドAPIで構成されています。
2931

32+
なるべく余計なライブラリを使わないように心がけ、なおかつAPI連携部分などはGraphQLでコンパクトかつ破綻のない構成になっています。
33+
3034
### 主な機能
3135

36+
機能としては以下のようなものを備えています。
37+
3238
- 診断レポートの作成・編集・承認フロー
3339
- 検体・ブロック情報の詳細な管理と、それに紐づいた染色オーダー管理
3440
- PDF形式での報告書出力
3541
- 高度な検索・フィルタリング
42+
- OAuth 2.0による外部システム連携
3643

37-
セキュリティ面では2要素認証、OAuth 2.0による外部システム連携、詳細な権限管理、監査ログなども実装しています
44+
さらにセキュリティ面でも2要素認証、IP制限、監査ログなど3省2ガイドラインに基づいた実装しています
3845

3946
2025年12月現在で、トータルで8万行を超える規模となりました。
4047

4148
18年のプログラミング経験と、短いながらも病理医としての経験を活かし、我ながらどこに出しても恥ずかしくないシステムになっていると自負しています。
4249

43-
ただ、基本的に医療機関向けかつ完全ユーザー登録制のセキュアなシステムであり、使うのは数少ない病理医とその関係者のみです(病理専門医は日本に3000人弱しかいません)。披露する機会が限られているのが悲しい限りですが、せっかく作ったので成果を間接的にでも紹介させてください。
50+
ただ、基本的に医療機関向けかつ完全ユーザー登録制のセキュアなシステムであり、使うのは数少ない病理医とその関係者のみです(病理専門医は日本に3000人弱しかいません😇)。披露する機会が限られているのが悲しい限りですが、せっかく作ったので成果を間接的にでも紹介させてください。
4451

4552

4653
## コードベースの推移

layouts/_default/baseof.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="{{ .Site.LanguageCode }}">
33
<head>
44
<meta charset="UTF-8">
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5+
<meta name="viewport" content="width=device-width, initial-scale=0.9">
66
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
77
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
88
<link rel="icon" href="/favicon.png" type="image/png">

0 commit comments

Comments
 (0)