Project

General

Profile

Actions

Wiki

プロダクト構成の概要

[EMレセコン PC]
   └─ NSIPSテキストファイル出力(.txt)
           ↓(SMB共有)
[Electronアプリ(ローカル)]
   ├─ SMB接続で INDEX/DATA フォルダ を監視
   ├─ 条件を満たす .txt を自動で S3(dev: MinIO)にアップロード
   └─ アップロード後、Rails API に通知(HMAC署名付きURLで)

        ▼ POST /api/v1/parse_s3

[Rails API(Heroku/EC2)]
   ├─ NsipsFileParserFromS3 が S3 からtxtファイル取得・UTF-8変換
   ├─ NsipsParser により以下を抽出・登録
   │     ├─ 患者情報
   │     ├─ 処方情報(居宅指導料含む)
   │     └─ 薬剤・用法情報
   └─ ExternalNotifier で 外部システムに通知(Webhook)

        ▼ Webhook 送信(HMAC署名付き)

[Google Apps Script(GAS)]
   └─ Rails から受信した prescription_id を使って
       /prescriptions/:id にアクセス
       外部システムのカレンダーに患者名・予測日を記載

アーキテクチャ図

┌────────────────────────────┐
│ EMレセコン(SMB出力)      │
│   - NSIPS形式 .txt         │
└────────────┬───────────────┘
             │ SMB共有
             ▼
┌────────────────────────────┐
│ Electronアプリ(ローカル) │
│   - SMB監視(INDEX / DATA)│
│   - MinIO/S3にアップロード  │
│   - Rails APIへ通知         │
└────────────┬───────────────┘
             │ POST /api/v1/parse_s3
             ▼
┌────────────────────────────┐
│ Rails API (Heroku/EC2)     │
│  - NsipsFileParserFromS3   │
│  - NsipsParser              │
│    └─ 患者/処方/薬剤DB登録  │
│  - ExternalNotifier         │
└────────────┬───────────────┘
             │ Webhook (署名付)
             ▼
    外部システムへ連携
┌────────────────────────────┐
│ Google Apps Script (GAS)   │
│  - prescription取得         │
│  - スプレッドシート記載      │
└────────────────────────────┘

smb
https://www.npmjs.com/package/smb2?activeTab=readme

Updated by 關山 和丈 8 months ago · 2 revisions