Project

General

Profile

Wiki » History » Version 2

關山 和丈, 06/26/2025 09:59 AM

1 2 關山 和丈
## Wiki
2
3
### プロダクト構成の概要
4
5
```
6
[EMレセコン PC]
7
   └─ NSIPSテキストファイル出力(.txt)
8
           ↓(SMB共有)
9
[Electronアプリ(ローカル)]
10
   ├─ SMB接続で INDEX/DATA フォルダ を監視
11
   ├─ 条件を満たす .txt を自動で S3(dev: MinIO)にアップロード
12
   └─ アップロード後、Rails API に通知(HMAC署名付きURLで)
13
14
        ▼ POST /api/v1/parse_s3
15
16
[Rails API(Heroku/EC2)]
17
   ├─ NsipsFileParserFromS3 が S3 からtxtファイル取得・UTF-8変換
18
   ├─ NsipsParser により以下を抽出・登録
19
   │     ├─ 患者情報
20
   │     ├─ 処方情報(居宅指導料含む)
21
   │     └─ 薬剤・用法情報
22
   └─ ExternalNotifier で 外部システムに通知(Webhook)
23
24
        ▼ Webhook 送信(HMAC署名付き)
25
26
[Google Apps Script(GAS)]
27
   └─ Rails から受信した prescription_id を使って
28
       /prescriptions/:id にアクセス
29
       外部システムのカレンダーに患者名・予測日を記載
30
31
```
32
33
### アーキテクチャ図
34
35
```
36
┌────────────────────────────┐
37
│ EMレセコン(SMB出力)      │
38
│   - NSIPS形式 .txt         │
39
└────────────┬───────────────┘
40
             │ SMB共有
41
42
┌────────────────────────────┐
43
│ Electronアプリ(ローカル) │
44
│   - SMB監視(INDEX / DATA)│
45
│   - MinIO/S3にアップロード  │
46
│   - Rails APIへ通知         │
47
└────────────┬───────────────┘
48
             │ POST /api/v1/parse_s3
49
50
┌────────────────────────────┐
51
│ Rails API (Heroku/EC2)     │
52
│  - NsipsFileParserFromS3   │
53
│  - NsipsParser              │
54
│    └─ 患者/処方/薬剤DB登録  │
55
│  - ExternalNotifier         │
56
└────────────┬───────────────┘
57
             │ Webhook (署名付)
58
59
    外部システムへ連携
60
┌────────────────────────────┐
61
│ Google Apps Script (GAS)   │
62
│  - prescription取得         │
63
│  - スプレッドシート記載      │
64
└────────────────────────────┘
65
66
```
67 1 關山 和丈
68
smb
69
https://www.npmjs.com/package/smb2?activeTab=readme