CareLinker 加算チェッカー 組込ガイド(INTEGRATION GUIDE)
version: v2026.06.11-alpha.9
date: 2026-06-11
対象読者: 介護ソフト・業務システムに本エンジンを組み込む開発者(自社プロダクト/他社ベンダー)
参照: reports/internal/alpha9/alpha9_design.md(設計正本)/ docs/RELEASE_PLAN.md / docs/SALES_READINESS_GATE.md
免責(組込先プロダクトにも転載必須) 本出力は算定可否を法的に保証するものではありません。算定判断は必ず法令・告示原文と保険者への確認に基づいて行ってください。
0. 本ガイドの前提
- 本ガイドのコード例はすべて DEMO データ(架空・synthetic)前提です。例示の dataset_id / office_code は
DEMO-接頭辞の架空IDのみを使います。 - エンジンの判定対象は
regulatory_master/service_registry.jsonに登録されたサービスのみです。statusがdraft/plannedのサービスは算定可能性の判定を行わず、要確認リストの生成までに限定されます(§5参照)。 - 実テナントデータ(実在の職員・利用者に由来する集計値)の投入は、現行の安全ゲート(§1-3)により facts 化されません。解除は社長判断キュー項目です(
docs/SALES_READINESS_GATE.mdJ-new4)。
1. 組込の3形態
| 形態 | 想定組込先 | 通信 | 状態 |
|---|---|---|---|
| ① in-process SDK | Python 製ソフト・社内バッチ | 関数呼び出し | alpha9 実装(alpha10 で extract_evidence() 追加) |
| ② REST API | 言語非依存(Java/.NET/Node 等の介護ソフト) | HTTP/JSON | alpha9 実装(認証はスタブ)+ alpha10: POST /v1/extract=PDFアップロード→抽出→check ワンショット・試作Web UI(GET /) |
| ③ データブリッジ | ケアプランデータ連携CSV(UP1KYO)・他社介護ソフトCSV | CSV→集計JSON(user_summary)→check | alpha10 で UP1KYO 実装(scripts/import_careplan_csv.py・schemas/user_summary.schema.json)。実データの facts 化は sample_policy ゲートにより J-23(社長GO)後。他社独自CSVは R-2 |
1-1. ① in-process SDK(Python 製ソフト向け)
ファサードは scripts/engine_api.py の 2 関数のみ。内部実装(judge_kasan / requirement_dsl / r1_pilot_run)には直接依存しないでください。
import sys
sys.path.insert(0, r"<kasan-manager>/scripts") # 製品ルート配下の scripts/
from engine_api import check, list_services
# 対応サービスの列挙(service_registry.json と同期)
services = list_services()
# 判定リクエスト(dict in / dict out)
response = check({
"service_key": "tsusho_kaigo", # 必須: registry の service_key
"dataset_id": "DEMO-R1-TSUSHO", # 必須: 匿名 dataset_id(DEMO- 接頭辞推奨)
"month": "202604", # 任意: 対象月 YYYYMM
"evidence": None, # 任意: レセプトPDF抽出 evidence JSON(集計値のみ)
"tenant_status": None, # 任意: 体制届出状況(集計値のみ)
"staff_data": None, # 任意: 職員集計 staff.json(集計値のみ)
"user_summary": None, # 任意: 利用者集計 JSON(集計値のみ)
"options": {
"include_report_markdown": True, # Markdown レポートを response に含める
"apply_evidence": False, # evidence を判定に反映するか
},
})
if response["ok"]:
print(response["summary"]) # 件数サマリ
print(response["disclaimer"]) # 免責文(UI 転載必須)
else:
print(response["error"]) # 入力不正・未対応サービス等
request のキー一覧
| キー | 必須 | 型 | 内容 |
|---|---|---|---|
service_key |
必須 | str | registry の service_key(§5の表) |
dataset_id |
必須 | str | 匿名 dataset_id。実事業所コードは使わない |
month |
任意 | str | 対象月 YYYYMM |
evidence |
任意 | dict | レセプトPDF抽出 evidence(集計値のみ) |
tenant_status |
任意 | dict | 体制・届出状況(集計値のみ) |
staff_data |
任意 | dict | 職員集計(集計値のみ・氏名等は禁止) |
user_summary |
任意 | dict | 利用者集計(集計値のみ・氏名等は禁止) |
options.include_report_markdown |
任意 | bool | Markdown レポート同梱 |
options.apply_evidence |
任意 | bool | evidence の判定反映 |
response のキー一覧
| キー | 型 | 内容 | UI での扱い |
|---|---|---|---|
ok |
bool | 成否 | false なら error を表示 |
error |
str/null | エラー内容 | — |
engine_api_version |
str | SDK API バージョン | ログに記録推奨 |
service |
dict | service_key・display_name・status・revision_tag | status を必ず確認(§3) |
summary |
dict | 判定件数サマリ | 一覧画面のヘッダ向け |
judgements |
list | 加算ごとの判定(確認待ち・対象外・不足情報を含む) | 明細表示 |
dsl_results |
list | 要件DSL評価結果(成立ルート・blocked 理由) | 詳細ドリルダウン |
evidence_checklist |
list | 必要書類・確認事項チェックリスト | ToDo 表示 |
draft_warning |
str/null | draft サービス時の警告文 | draft 時は必ず表示(§3) |
kasan_count |
int | 判定対象の加算・減算件数 | — |
pii_scan |
dict | 出力自己スキャン結果(種別・件数のみ) | 検出ありなら表示を中止 |
disclaimer |
str | 免責文 | UI 転載必須 |
report_markdown |
str | Markdown レポート(options 指定時のみ) | 帳票・印刷向け |
スキーマの正本は schemas/check_request.schema.json / schemas/check_response.schema.json です(手動の構造アサーションで検証。jsonschema ライブラリ非依存)。
1-2. ② REST API(言語非依存)
server/app.py(FastAPI)。SDK check() の薄いラッパーであり、エンドポイントとレスポンス構造は SDK と同一契約です。OpenAPI 定義は docs/openapi.json。
| メソッド | パス | 内容 |
|---|---|---|
| GET | /v1/health |
死活確認 |
| GET | /v1/services |
対応サービス一覧(registry 転記) |
| POST | /v1/check |
判定実行(body は §1-1 の request と同一) |
# 死活確認
curl -s http://localhost:8000/v1/health
# サービス一覧
curl -s -H "X-API-Key: <your-key>" http://localhost:8000/v1/services
# 判定実行
curl -s -X POST http://localhost:8000/v1/check \
-H "Content-Type: application/json" \
-H "X-API-Key: <your-key>" \
-d '{
"service_key": "tsusho_kaigo",
"dataset_id": "DEMO-R1-TSUSHO",
"month": "202604",
"options": {"include_report_markdown": false, "apply_evidence": false}
}'
POST /v1/extract(alpha10・PDFアップロードのワンショット)
明細書PDFを multipart でアップロードし、抽出→(既定で)checkまで一括実行します。アップロードPDFはサーバに保存されません。
curl -s -X POST http://127.0.0.1:8787/v1/extract -F "file=@meisaisho.pdf;type=application/pdf" -F "service_key=tsusho_kaigo" -F "dataset_id=DEMO-API-01" -F "run_check=true"
# 応答: {ok, error, extraction: {extraction_summary, evidence, ...}, check: <check_response>, disclaimer}
alpha11: check_response に gap_analysis が追加されました(数値要件の「現在値・基準値・あと何人」。rows[].status = cleared / near / not_met / no_data)。組込先は要件カタログの羅列ではなく ギャップ(現在→基準→残り)を第一に表示してください。no_data は「書類の不足」ではなく「データ未投入」の意味です(誤表示は禁止)。
alpha12: ① /v1/extract に staff_file(職員CSV・任意 multipart)を追加。templates/staff_intake_template.csv 形式(匿名ID・資格・常勤換算・勤続年数・勤務_月〜日)を渡すと、応答の staff_report に体制比率(介護福祉士/常勤/勤続・2種類の分母併記)と曜日×時間帯の資格在席表が返ります(実データはJ-23ゲートにより判定facts化はされず、事実整理として返る)。② check_response.unit_impact を追加(取れた場合の月◯単位・年◯単位概算。/日系は算定中加算の月間回数から延べ日数を推定し根拠を basis に明記。/回・率系は式のみ)。
alpha13: ① 試作UIに職員入力フォームを内蔵(行追加式・資格はチェック選択で表記ゆれゼロ・各資格にどの加算に効くかのヒント表示・曜日×時間帯は候補選択・ブラウザlocalStorageにのみ自動保存・既存CSVテンプレと相互変換)。② POST /v1/staff-report(職員CSVのみ・PDF不要)で体制レポート(比率・曜日×時間帯在席)を即時取得可能。
試作Web UI(GET /)も同じAPIを使用しています(uvicorn 起動後にブラウザで開けます)。
認証は現状スタブです。 環境変数 KASAN_API_KEY を設定した場合のみ X-API-Key ヘッダを照合します。未設定時は認証なしの開発モード(ループバック想定)です。マルチテナント認可は未実装で、R-3 前の必須ゲート項目です(docs/SALES_READINESS_GATE.md 参照)。インターネット公開・複数事業者同居での運用は現段階では行わないでください。
1-3. ③ データブリッジ(CSV → 集計JSON → check)
介護ソフトが出力する利用者・職員 CSV を集計 JSON(user_summary / staff_data)に変換してから check() に渡す経路です。
- alpha10 で第1号変換器を実装済み: ケアプランデータ連携システム標準仕様(厚労省・UP1KYO 第1表)→ 要介護度集計 →
user_summaryJSON。
訪問介護・訪問看護(介護)は請求帳票PDFに要介護度が構造的に載らないため、この経路が要介護度依存加算の判定材料になります。スキーマ正本はpython scripts/import_careplan_csv.py --csv UP1KYO_xxxx.CSV --service houmon_kaigo --dataset-id DEMO-CP-01 --month 202605 # 出力: user_summary JSON(被保険者番号・氏名・フリーテキストは読み捨て・集計値のみ) # → check() の user_summary / r1_pilot_run --user-summary に渡せるschemas/user_summary.schema.json。 - 他社ソフト独自形式の CSV 変換器は R-2 スコープ(未実装)。
- さらに重要な制約として、現行エンジンには
sample_policy == "public_demo_synthetic"の安全ゲートがあり、synthetic(架空)と宣言された集計 JSON 以外は facts 化されません。実テナント由来の集計値を渡しても判定材料にならず、安全側で空扱いになります。 - このゲートの変更(実テナントデータの通し)はセキュリティ設計を伴う社長判断項目(J-23)であり、本ガイドの手順では解除できません。変換器は実データ由来の出力に
sample_policy: "real_aggregate_pending_gate"を自動付与し、ゲート通過まで判定に流れない設計です。 - ブリッジ設計の原則: CSV の個票は変換器の外に出さない。
check()に渡るのは件数・比率・常勤換算合計などの集計値のみ。
2. 接続パターン例(一般化した3類型)
実在のソフト名・事業所名ではなく、一般化した類型で示します。
2-1. ケアプラン作成支援ソフト
| 項目 | 内容 |
|---|---|
| 呼び出しタイミング | ケアプラン確定時・月次モニタリング画面を開いたとき |
| 渡すもの | service_key(kyotaku_shien 等)・month・利用者集計値(user_summary) |
| 表示すべきフィールド | evidence_checklist(必要書類 ToDo)・judgements のうち「確認待ち」「情報不足」分類・disclaimer |
| UI の位置づけ | 「この事業所で次に確認すべきことリスト」。算定可否の断定表示はしない |
2-2. 訪問スケジュール管理ソフト
| 項目 | 内容 |
|---|---|
| 呼び出しタイミング | 月次シフト確定時・職員の入退職/資格情報の集計更新時 |
| 渡すもの | service_key(houmon_kaigo / houmon_kango_kaigo 等)・staff_data(資格別人数・常勤換算合計などの集計値のみ) |
| 表示すべきフィールド | dsl_results(配置要件の成立ルート・不足理由)・summary・disclaimer |
| UI の位置づけ | 「体制要件の現在地」。個人名と紐づく表示はしない |
2-3. 請求ソフト
| 項目 | 内容 |
|---|---|
| 呼び出しタイミング | レセプト確定前のチェック工程(伝送前) |
| 渡すもの | evidence(レセプトPDF抽出の集計 evidence)+ options.apply_evidence: true |
| 表示すべきフィールド | judgements(算定中と推定される加算と要確認項目の突合)・kasan_count・report_markdown(帳票出力)・pii_scan(検出ありなら表示中止)・disclaimer |
| UI の位置づけ | 「伝送前の取り漏れ・要確認の気づき」。PDF 未検出を未算定と断定する表示はしない |
3. 組込先プロダクトの義務
組込先(自社・他社を問わず)は以下を遵守してください。違反構成での提供は許諾しません。
- disclaimer の転載必須 —
response["disclaimer"]をエンドユーザーの見える位置に必ず表示する。最低限、次の文言を含むこと: 「本出力は算定可否を法的に保証するものではありません。算定判断は必ず法令・告示原文と保険者への確認に基づいて行ってください。」 - 算定可否を断定・確約する表現の禁止 — 取得を確約する文言、判定結果を断定として見せる UI(例: 緑チェックのみで注記なし)を使わない。「取得可能性」「要確認」の表現を維持する。
- PII を request に入れない — 氏名・被保険者番号・生年月日・住所・電話番号・メールアドレス等の個票は渡さない。渡してよいのは集計値のみ(件数・比率・常勤換算合計等)。エンジン側にも PII 検出時に facts を生成しない安全弁があるが、これは最後の砦であり、組込側で発生源を断つこと。
- draft サービスの判定結果を「取得可能」と表示しない —
service.statusがdraftの場合、出力は要確認リストの生成までであり、算定可能性の判定ではない。draft_warningを必ず UI に表示する。 pii_scanの検出時は表示を中止 —pii_scanに検出ありが返った場合、そのレポートを表示・保存・転送しない。
4. バージョニングと互換性方針
| 識別子 | 場所 | 意味 |
|---|---|---|
engine_api_version |
response | SDK/REST の API 契約バージョン |
revision_tag |
response の service / 各マスタの _meta |
法令改定の識別子(例: R6_2024_04) |
effective_from |
registry / マスタ | 当該改定の適用開始日 |
互換性方針:
- response へのキー追加は後方互換として扱う。組込側は未知キーを無視できる実装にすること。
- 既存キーの削除・型変更・意味変更は
engine_api_versionのメジャー更新を伴う非互換変更として扱い、事前告知する。 - マスタの revision_tag はレポート・response に必ず含まれる。組込側は表示またはログに記録し、「どの改定時点の要件で判定したか」をエンドユーザーが追跡できるようにすること。
- 法令改定時はマスタのみ更新されることがある(API 契約は不変)。
revision_tagの変化を改定反映の検知に使える。 - 改定履歴の正本は
releases/changelog.md。
5. 対応サービス表(alpha9 時点)
regulatory_master/service_registry.json からの転記(implemented 4 / draft 6 / planned 1)。
| service_key | サービス名 | ドメイン | status | 組込時の扱い |
|---|---|---|---|---|
tsusho_kaigo |
通所介護 | 介護保険 | implemented | 判定可(checked 要件のみ機械評価) |
kyotaku_shien |
居宅介護支援 | 介護保険 | implemented | 判定可(同上) |
houmon_kaigo |
訪問介護 | 介護保険 | implemented | 判定可(同上) |
houmon_kango_kaigo |
訪問看護(介護保険) | 介護保険 | implemented | 判定可(同上) |
shokibo_takino |
小規模多機能型居宅介護 | 介護保険 | draft | 要確認リスト生成のみ(約30項目・全件 source_required・reviewer 検証待ち) |
fukushi_yogu_taiyo |
福祉用具貸与 | 介護保険 | draft | 要確認リスト生成のみ(加算3+減算2・全件 source_required・reviewer 検証待ち・alpha9 新規) |
houmon_kango_iryo |
訪問看護(医療保険) | 医療保険 | draft | 要確認リスト生成のみ |
kyotaku_kaigo_shogai |
居宅介護(障害福祉) | 障害福祉 | draft | 要確認リスト生成のみ |
shugyo_keizoku_a |
就労継続支援A型 | 障害福祉 | draft | 要確認リスト生成のみ |
shugyo_keizoku_b |
就労継続支援B型 | 障害福祉 | draft | 要確認リスト生成のみ |
tokuyo |
特別養護老人ホーム | 介護保険 | planned | 未対応(registry 登録のみ) |
implementedでも、評価されるのは公式根拠確認済み(checked)の要件のみ。未確認要件はnot_evaluated_source_required/not_evaluated_logic_uncheckedとして評価対象外になる安全弁が常時有効。draftサービスは judge-only(要確認リスト生成)であり、clear/currently_claimedを返さないことが回帰テストで固定されている。- 最新の status は必ず
list_services()/GET /v1/servicesで実行時に取得すること(本表は静的転記)。
6. 組込前チェックリスト
-
list_services()で対象サービスのstatusを確認した(draft なら §3-4 の表示制約を実装した) -
disclaimerを UI に転載した - request に個票(氏名・被保険者番号等)が入らない実装になっている(集計値のみ)
-
pii_scan検出時の表示中止フローがある -
revision_tag/engine_api_versionをログまたは画面に記録している - REST 利用時:
KASAN_API_KEYを設定し、インターネット非公開・単一事業者構成で運用している
本出力は算定可否を法的に保証するものではありません。算定判断は必ず法令・告示原文と保険者への確認に基づいて行ってください。