日レセAPIの全体像をソースコードから把握する ── ORCAの公開ソースを読む(全137エンドポイント対応表付き)

· 更新日: · · 医療IT, ORCA, API連携, COBOL, ソースコードリーディング

前回の記事では、ORCA(日医標準レセプトソフト)がレセコンであること、そして20年以上ソースコードが公開され続けていることを整理しました。

今回はそのソースコードを実際に読みます。テーマは日レセAPIの全体像を一次情報から把握すること。公式のAPI仕様書を上から読むのではなく、

  1. サーバー側に実在する全エンドポイントをソースから数え上げ、
  2. 1本のAPIを実装からレスポンスXMLの形まで追い、
  3. 公式ドキュメントと突き合わせて差分を検証し、
  4. バージョン間diffでAPIの変化を実測する

という順番でやってみます。記事末尾に、この調査で得られた全137エンドポイントの対応表(URL・COBOLプログラム・機能)を付けました。

本記事の調査対象は、公式公開されている日レセ本体 5.2系ソース(2026年7月1日公開スナップショット) で、比較対象として5.1系(同日公開) も使います。記述はすべてこの2つの版に基づき、再現に必要なコマンドを本文に示します。

目次

  1. まず結論
  2. 前提 ── ソースの入手とバージョン固定
  3. APIディスパッチの仕組み ── URLはlddefで決まる
  4. 発見:APIは「画面業務のAPI版」である ── bindbindapi
  5. 1本のAPIを最後まで追う ── patientgetv2の解剖
  6. 全エンドポイントを数える ── grep一発の調査手順
  7. 公式一覧と突き合わせる ── 一覧にないAPIの例
  8. 未文書化APIの仕様をソースから導出する ── findv3の実例
  9. 版間diffでAPIの変化を実測する ── 5.1系 vs 5.2系
  10. 未文書化APIとの付き合い方 ── 「文書化」は保証ではない
  11. 深追いするときの実務メモ
  12. まとめ
  13. 付録:全137エンドポイント対応表(5.2系・2026年7月版)
  14. 参考資料

1. まず結論

  • 日レセAPIのURLとサーバー側プログラムの対応は、ソースの lddef/*.ld(LD定義ファイル)に宣言的に書かれている。COBOLを読まなくても、テキストのgrepだけでAPIの全体像を列挙できる。
  • 5.2系スナップショットでは、27個のLD定義に合計137個のエンドポイントbindapiで束ねられている。公式サイトのAPI仕様一覧ページに掲載されているのは約50件で、ソース側にはその2倍以上のエンドポイントが実在する
  • XMLリクエスト・レスポンスの構造はrecord/*.dbに宣言されており、XMLタグ名は定義の項目名がそのまま使われる。つまり未文書化APIでも、lddefcobolrecordと辿れば仕様を導出できる。
  • 5.1系との版間diffを取ると、エンドポイントは9件追加・削除0件。追加分はオンライン資格確認(マイナ保険証)関連に集中しており、「APIは制度対応で増える。既存のものは(少なくともこの2系列間では)消えていない」ことが実測できる。
  • 未文書化のAPIは「使ってはいけないAPI」ではない。ORCAはオープンソースであり、ソースそのものを一次仕様として扱える。問題は約束の有無ではなく「変更を自分で検知する運用を持てるか」で、その判断の枠組みを第10章で整理する。

2. 前提 ── ソースの入手とバージョン固定

ソースは公式の技術情報ページからtarボール(zip)でダウンロードできます。毎月1日に前月1日時点のスナップショットへ更新されるため、調査結果は必ず版とセットで記録するのが鉄則です。この記事では次の版を使っています。

  • 入手元: https://ftp.orca.med.or.jp/pub/src/jma-receipt.r_5_2_branch.zip(比較用にr_5_1_branch.zipも)
  • 取得日: 2026-07-17(いずれも2026年7月1日時点のスナップショット)
  • 5.2系のVERSIONファイル: 5.2.0

展開すると約8,200ファイル・237MBで、この記事で使うのは主に次の3ディレクトリです。

ディレクトリ 内容 今回の用途
lddef/ LD定義(ディスパッチ表).ldファイル40本(うち27本にbindapi定義) エンドポイントの全列挙
cobol/ 業務ロジック(COBOL 1,754本・約406万行) 各APIの機能確認・実装読解
record/ データ構造定義 約1,240本(うちXML系274本) リクエスト・レスポンス構造の導出

3. APIディスパッチの仕組み ── URLはlddefで決まる

日レセAPIのURLは /api01rv2/patientgetv2 のように「モジュール名/エンドポイント名」の2段構成です。この対応はlddef/のLD定義ファイルにそのまま現れます。

lddef/api01rv2.ld の冒頭を見てみます。

name	api01rv2;

bindapi	"patientgetv2"	"OpenCOBOL"	"ORAPI012R1V2";
bindapi	"acceptlstv2"	"OpenCOBOL"	"ORAPI011R1V2";
bindapi	"appointlstv2"	"OpenCOBOL"	"ORAPI014R1V2";
...

読み方は素直で、LD名がURLの第1セグメント、bindapiの第1引数が第2セグメント、第3引数が処理を担当するCOBOLプログラム名です。つまり /api01rv2/patientgetv2 へのリクエストは、ORAPI012R1V2 というCOBOLプログラムに渡ります。

GET /api01rv2/patientgetv2?id=患者番号lddef/api01rv2.ldbindapi定義を参照XMLレスポンス連携システム電子カルテなど日レセサーバーMONTSUQIORAPI012R1V2.CBL患者基本情報取得PostgreSQL

LD定義にはこのほか、レスポンスの組み立てに使うXMLレコード群(db "xml2" { ... })や、押さえておくと便利な設定(配列サイズなど)も宣言されています。LDファイルは「そのモジュールが扱う画面・API・データ構造の目次」として読めます。

4. 発見:APIは「画面業務のAPI版」である ── bindbindapi

LD定義を眺めていると、すぐに気づくことがあります。同じファイルにbind(画面)とbindapi(API)が同居しているのです。患者照会モジュールlddef/orca13.ldを見てみます。

name	orca13;

bind	"Q01"		"OpenCOBOL"	"ORCGQ01";     ← 患者照会の対話画面
bind	"Q02"		"OpenCOBOL"	"ORCGQ02";
...
bindapi "findv3"    "OpenCOBOL"	"ORCGQAPI01";  ← そのAPI版
bindapi "findinfv3" "OpenCOBOL"	"ORCGQAPI02";
bindapi "foundv3"   "OpenCOBOL"	"ORCGQAPI03";

Q01〜は医事スタッフが操作する患者照会画面のプログラム、findv3〜はそれと同じモジュールに属するAPIです。プログラム名もORCGQ01(画面)に対してORCGQAPI01(API)と、画面系の名前にAPIを挟んだ形になっています。

つまり日レセAPIは、独立したAPIサーバーとして設計されたものではなく、対話画面と同じ業務プログラム基盤の上に「画面の代わりにXMLで会話する入口」を業務モジュールごとに追加していったものです。この構造が分かると、次の2つが自然に理解できます。

  • URLの第1セグメント(orca13orca42…)が画面の業務番号に由来していて、APIとしては一見無意味な数字に見える理由
  • 「画面でできる業務にはAPI版が存在するかもしれない」という探し方が成立する理由──未文書化APIを探すというのは、実はこの「画面業務のAPI版」を列挙する作業に近い

5. 1本のAPIを最後まで追う ── patientgetv2の解剖

全体像を数える前に、1本のAPIを実装からレスポンスの形まで追ってみます。題材は最も基本的な患者基本情報取得 /api01rv2/patientgetv2 です。

(1) ディスパッチ: lddef/api01rv2.ldbindapi "patientgetv2" → ORAPI012R1V2。実体は cobol/api01rv2/ORAPI012R1V2.CBL(2,163行)。COBOLソースは原則としてLD名と同じディレクトリに置かれるので、lddefが読めれば実装ファイルはほぼ機械的に特定できます(例外もあり、たとえばorca51のAPI群の実体はcobol/orca52/にあります。確実なのはプログラム名でのfind)。

(2) プログラムヘッダ: 冒頭に「コンポーネント名 : 患者基本情報取得(version2対応)」とあり、続く修正履歴には2013年の地域連携ID対応から、2022年の電子処方箋対応、2024年の「保険証による資格有効性返却対応」まで、この1本のAPIが受けてきた制度改定が年表として並んでいます。API仕様書の「更新履歴」より詳細です。

(3) 何を読んでいるか: WORKING-STORAGE SECTIONのCOPY句(取り込む共通定義)を見ると、このAPIが触るデータが分かります。抜粋すると:

COPY "CPPTINF.INC".          *> 患者基本情報(tbl_ptinf)
COPY "CPPTNUM.INC".          *> 患者番号
COPY "CPJYURRK.INC".         *> 受療履歴
COPY "CPPTCARE-HKNINF.INC".  *> 介護保険情報
COPY "CPPTMYNUMBER.INC".     *> 患者個人番号
COPY "CPONSHI-KAKU.INC".     *> オンライン資格確認結果
COPY "CPPATIENTXMLV2RES.INC" *> レスポンス編集用

患者1人を返すだけのAPIが、介護保険・マイナンバー・オンライン資格確認まで30本近い定義を取り込んでいます。「患者基本情報」の意味が制度とともに膨らみ続けてきたことの物証です。

(4) レスポンスの形: レスポンスXMLの構造は record/xml_patientinfov2res.db に宣言されています。

xml_patientinfov2res {
    patientinfores {
        Api_Result          varchar(2);
        Patient_Information {
            Patient_ID          varchar(20);
            WholeName           varchar(100);
            WholeName_inKana    varchar(100);
            BirthDate           varchar(10);
            Sex                 varchar(1);
            Home_Address_Information {
                Address_ZipCode varchar(07);
                ...

日レセAPIを使ったことがある方なら見覚えがあるはずです。APIレスポンスのXMLタグ名(Patient_IDWholeName…)は、このrecord定義の項目名がそのまま使われています。 つまり公式のXML仕様書に書かれている項目表の「原本」がここにある、ということです。項目のサイズ(桁数)まで書かれているので、連携側のバリデーション設計の一次情報としても使えます。

この (1)→(4) が、日レセAPI 1本の解剖手順のテンプレートです。lddefでプログラムを特定し、ヘッダで機能と歴史を掴み、COPY句で触るデータを把握し、recordでメッセージ構造を確定する──COBOL本体のロジックを読み込まなくても、ここまでで実務に必要な情報の大半が揃います。

6. 全エンドポイントを数える ── grep一発の調査手順

仕組みが分かれば、全体の列挙は機械作業です。

# エンドポイント → COBOLプログラムの対応を全列挙
grep -H '^[[:space:]]*bindapi' lddef/*.ld

# モジュール別の件数
for f in lddef/*.ld; do
  n=$(grep -c '^[[:space:]]*bindapi' "$f"); [ "$n" -gt 0 ] && echo "$f: $n"
done

# 各エンドポイントの機能名をCOBOLヘッダから機械抽出
# (ソースはEUC-JPなのでiconvを挟む。プログラムの置き場所は
#  LD名と一致しない例外があるためfindで特定する)
for ld in lddef/*.ld; do
  mod=$(basename "$ld" .ld)
  grep '^[[:space:]]*bindapi' "$ld" | sed 's/"//g; s/;//' \
  | while read -r _ ep _ prog; do
      cbl=$(find cobol -name "$prog.CBL" | head -1)
      comp=$(iconv -f EUC-JP -t UTF-8 "$cbl" 2>/dev/null \
             | grep -m1 'コンポーネント名' \
             | sed 's/.*コンポーネント名[[:space:]]*[::][[:space:]]*//')
      printf '%s\t%s\t%s\t%s\n' "$mod" "$ep" "$prog" "$comp"
    done
done

この版での集計結果は次のとおりです(全137件の個票は付録に掲載)。

LD定義(=URL第1セグメント) 件数 業務領域
api01rv2 52 読み取り系全般(患者・受付・予約・診療・入院・帳票データ)
api21 16 診療行為の登録・チェック・削除(外来/入院)
orca51 12 マスタ・患者データの一括返却(病名・点数・住所ほか)
orca14 10 予約登録+オンライン資格確認(マイナ保険証)系
orca12 8 患者情報の登録・更新(基本/保険/労災/介護…)
orca71 8 オンライン資格確認の追加系(OCR画像・医療扶助ほか)
orca31 4 入退院登録・入院会計
orca13 / orca22 / orca42 / orca44 各2〜3 患者照会 / 病名登録 / レセプト作成・印刷 / レセ電データ作成
その他(受付・収納・帳票印刷・ユーザ管理・ログイン等) 残り
合計(27モジュール) 137

読み取り系(api01rv2)に約4割が集まる一方、更新系は業務モジュール単位(患者=orca12、受付=orca11、診療行為=api21…)で分かれています。第4章の「画面業務のAPI版」という構造が、この分布にもそのまま現れています。

もうひとつ注目したいのはsessionモジュールのsession_start(ログイン認証)やorca00print(印刷)のような、業務APIというより基盤機能のAPIが混ざっていることです。公式仕様書の一覧をどれだけ眺めても、この層の存在には気づけません。

7. 公式一覧と突き合わせる ── 一覧にないAPIの例

次に、公式サイトの「日医標準レセプトソフトAPI仕様」一覧ページに掲載されているAPI(約50件)と、ソースから抽出した137件を突き合わせます。すると、一覧ページに載っていないエンドポイントがソース側に多数実在することがわかります。機能領域ごとに例を挙げます(機能名はいずれもCOBOLヘッダの「コンポーネント名」から確認したものです)。

領域 エンドポイント例 担当プログラム ヘッダ記載の機能
患者検索 /orca13/findv3 ORCGQAPI01 患者照会
レセプト業務 /orca42/receiptmakev3 ORAPI042R1V3 レセプト作成(xml2)
レセプト業務 /orca44/receiptdatamakev3 ORAPI044R1V3 レセ電データ作成(xml2)
点検業務 /orca41/datacheckv3 ORCGDAPI01 データチェック
請求管理 /orca43/claimedmanagementv3 ORAPI043R1V3 請求管理登録
基盤 /session/session_start ORCGSESSTART ログイン認証

つまり、受付や患者情報のような日常連携だけでなく、月次のレセプト業務(作成→点検→レセ電データ出力→請求管理)を外部から駆動できるAPI群が実装として存在するわけです。電子カルテ連携しか知らないと見えない層です。

ここで大事な注意が2つあります。

  1. 「一覧にない=未文書化」と即断しない。 たとえば帳票データ取得(formdatagetv2)のようにPushAPI側のドキュメントで文書化されているAPIもあり、一覧ページは全APIの網羅を保証していません。個別のドキュメントページやサイト内検索まで確認した上で「文書が見つからない」と言うべきです(上の表はその確認をした結果ですが、それでも「公開された文書が存在しない」ことの完全な証明にはなりません)。
  2. サードパーティの実装も突き合わせ材料になる。 日レセAPIをRubyから使うorca-apiライブラリのようなOSSは、実務で使われてきたエンドポイントのカタログとして参考になります。

8. 未文書化APIの仕様をソースから導出する ── findv3の実例

「一覧にないAPIが在る」ことが分かっても、リクエストの形が分からなければ調査もできません。ここで第5章のテンプレートが効きます。findv3(患者照会)でやってみます。

リクエスト構造は record/xml_findv3req.db にあります(抜粋)。

xml_findv3req {
  findv3req {
    Request_Number               varchar(2);
    Patient_Information {
      BirthDate    { First varchar(10); Last varchar(10); };
      Sex                        varchar(1);
      LastVisit_Date { First varchar(10); Last varchar(10); };
      Doctor_Code                varchar(05);
      Department_Code            varchar(2);
      Death_Class                varchar(1);
      Patient_ID   { First varchar(20); Last varchar(20); };
      TestPatient_Class          varchar(1);
      WholeName                  varchar(100)[5];
      ...

定義を読むだけで、これが生年月日範囲・性別・最終来院日範囲・担当医・診療科・死亡区分・患者番号範囲・氏名(複数指定可)などを組み合わせられる、かなり高機能な患者検索APIだと分かります。公式一覧に載っている患者検索系API(patientlst1v2〜)は患者番号範囲や氏名など単機能の検索が中心なので、画面の患者照会と同等の複合条件検索ができるこのAPIは、機能面でははっきり上位互換です。

レスポンス構造も同様に record/xml_findv3res.db にあり、対応するCOBOL(ORCGQAPI01.CBL)を読めば細かい挙動(件数上限や並び順など)も確認できます。「未文書化API」は、ソースが公開されているORCAにおいては「自分でドキュメントを起こせるAPI」なのです。

こうして導出した仕様を、本番でどこまで信頼して使うか──それが次章のテーマです。

9. 版間diffでAPIの変化を実測する ── 5.1系 vs 5.2系

未文書化APIのリスクを議論する前に、「APIはどれくらい変わるものなのか」を実測しておきます。同日公開の5.1系スナップショットとbindapi定義をdiffした結果:

比較項目 結果
5.1系のエンドポイント総数 128
5.2系のエンドポイント総数 137
5.2系で追加 9件
5.2系で削除 0件

追加された9件の内訳は、オンライン資格確認関連が6件(onlinequa10onlinequa11onlinequaapp13onlineaidlstreq1)、患者メモ登録(patientmemomodv2)、入力コード一括返却(inputcodelstv3)、入力・診療コード情報取得(medicationgetv2)の計9件です。制度対応(マイナ保険証まわり)がAPIの増設として現れていることがはっきり見えます。

この観察から言えるのは次の2点です。

  • エンドポイントの「面」は安定している(この2系列間で削除ゼロ)。恐れるべきは消滅より、個々のAPIの項目追加・挙動変更(第5章で見た修正履歴のような変化)。
  • ソースが毎月公開されるため、この種の変更検知は自動化できる。連携システムを保守しているなら、月次スナップショットのlddefrecordをdiffするだけで、来月のバージョンアップで何が変わるかの早期警戒網になる。これはソース公開ならではの、他のレセコンでは得がたい保守手段です。

10. 未文書化APIとの付き合い方 ── 「文書化」は保証ではない

まず前提を正しておきます。日医オープンソース使用許諾契約は第2章第5条で、支障なく動作することや瑕疵の不存在などについて、プログラム全体を無保証としています。これは文書化されたAPIにも等しく適用されます。互換性についても、文書化APIを「変えない」と約束する明文の規定が公式文書にあるわけではなく、実際、第5章で見たとおり、文書化APIの代表であるpatientgetv2ですら制度対応のたびに項目が追加され続けてきました。

つまり「文書化/未文書化」の違いは保証の有無ではありません。実質的な差は、突き詰めると次の2点だけです。

  1. 変更が公式ドキュメントの更新として現れやすいか(未文書化APIの変更は、ソースを読まない限り見えない)
  2. サポート事業者との会話の土俵に乗りやすいか

そしてORCAは、ソースが毎月公開されています。1点目の差はソースのdiff監視で埋められます。ソースこそが一次仕様であり、文書はその抄訳にすぎない──オープンソースに対する正しい態度はこちらです。文書とソースが食い違ったとき、実際に動くのはソースの方です。

その上で、レセプト請求という金銭に直結するシステムを扱う以上、文書化されているかどうかに関わらず、本番フローに組み込むAPIには次の運用をセットにすべきです。

やること 目的
版の固定と記録(取得日・SHA-256・稼働パッケージとの対応) 調査・検証結果をいつでも再現できるようにする。サポート事業者の独自パッチが入る環境では公開ソースとの差分も確認する
月次スナップショットのdiff監視(lddef/record+利用APIの担当COBOL) 変更の早期検知。インタフェースの変更はlddef/recordに、挙動の変更はCOBOL側に現れる。未文書化APIの変更は公式ドキュメントに現れないため、ソースdiffが実質的な検知手段になる
バージョンアップ手順に検証環境での回帰確認を組み込む 改定月に「静かに壊れる」ことの防止
未文書化APIは自前のAPIドキュメントを起こして保守する 第8章の方法で導出した仕様をチームの資産にする
サポート事業者に利用構成を共有しておく 障害時の切り分けを速くする

ひとつ運用上の注意があります。公開スナップショットは前月1日時点の内容なので、パッケージの更新を先に本番へ当ててしまうと、対応するソースを読めるのは適用後になります。この監視を早期警戒として機能させるには、対応するソースの公開と検証を待ってからバージョンアップする、という順序に倒す必要があります。

逆に言えば、この運用を持てない体制は、文書化APIだけを使っていても安全ではありません。無保証のオープンソースを業務の基幹に据えるというのは、そういうことです。

11. 深追いするときの実務メモ

個々のAPIをソースで深追いする段階の、細かいつまずきポイントです。

  • 文字コードはEUC-JP。 COBOLソースやコメントはEUC-JPなので、iconv -f EUC-JP -t UTF-8 を通してから読む。ライセンス文書(doc/license.html)はISO-2022-JP。grepもiconvを挟まないと日本語キーワードでヒットしない。
  • プログラム名の規約を覚えると速い。 API系はORAPI+業務番号+R(参照)/S(更新)+版(V2/V3)が基本形で、画面系のAPI版はORCG〜API〜。COBOLソースは原則cobol/<LD名>/配下だが例外がある(orca51のAPI実体はcobol/orca52/)ので、迷ったらプログラム名でfindする。
  • 入口はGET系とPOST+XML系の2種類。 LD定義のdb "xml2"ブロックにリクエスト用レコード(〜req)が無いAPI(例: patientgetv2)はGETパラメータ型、有るものはPOST+XML型と見当がつく。最終確認はCOBOL側の入力処理で。
  • データ項目の意味はrecord/+公式テーブル定義書の突き合わせで。 レスポンス項目の「原本」はrecord/*.db、DB側の意味は公式公開のテーブル定義書。両方を並べると確度が上がる。なお一部の定義にはWebORCA用の.db.weborcaが併存し、配列上限などが異なる(例: xml_acceptlstv2resは1,000件→1,500件)。WebORCA連携の設計ではそちらを確認する。
  • 動作確認は検証環境で。 公式のお試しサーバーや、コミュニティのDocker環境を使えば、実機のレセコンに触れずにAPIを叩いて確認できる。本番機での「試し打ち」は禁物。

12. まとめ

  • 日レセAPIの全体像はlddef/*.ldbindapi定義に集約されており、grepだけで137エンドポイント(5.2系・2026年7月版)を列挙できる
  • 日レセAPIの正体は「画面業務のAPI版」bind(画面)とbindapi(API)が同じLD定義に同居し、URLのモジュール名は画面の業務番号に由来する。
  • 1本のAPIは lddef(ディスパッチ)→COBOLヘッダ(機能・歴史)→COPY句(触るデータ)→record/*.db(XML構造の原本)の順で解剖できる。XMLタグ名はrecord定義の項目名そのもの
  • 公式一覧(約50件)とソース(137件)の差分には、レセプト作成・レセ電データ作成・データチェックといった月次業務を駆動できるAPI群が含まれる。ただし「一覧にない=未文書化」とは即断せず、一件ずつ検証する。
  • 5.1系とのdiff実測では追加9件(オン資関連が中心)・削除0件。月次スナップショットのdiffは、連携保守の早期警戒網として使える。
  • 使用許諾契約は文書化APIも含めて無保証を明言しており、「文書化=安全」ではない。ソースこそが一次仕様。文書化/未文書化を問わず、本番で使うなら版固定・月次diff監視・回帰確認・自前ドキュメントの整備をセットにする。

仕様書から入るのではなくソースから入る、という今回の順番は、ORCAに限らず「ドキュメントが実装に追いついていない長寿の業務システム」全般で使える調査手法です。幸いORCAはソースが公開されているので、この手法を合法的に、しかも毎月最新の状態で実践できます。

13. 付録:全137エンドポイント対応表(5.2系・2026年7月版)

lddef/*.ldbindapi定義から機械抽出した全エンドポイントです。機能名は各COBOLプログラムのヘッダの「コンポーネント名」欄をそのまま転記しています(表記ゆれ・全角括弧等も原文ママ)。この表は2026年7月1日時点の5.2系スナップショットの事実の記録であり、各エンドポイントの利用可否・サポート状況を示すものではありません。

URL COBOLプログラム ヘッダ記載の機能
/api01rv2/patientgetv2 ORAPI012R1V2 患者基本情報取得
/api01rv2/acceptlstv2 ORAPI011R1V2 受付一覧
/api01rv2/appointlstv2 ORAPI014R1V2 予約一覧 (xml2)
/api01rv2/patientlst1v2 ORAPI012R2V2 患者番号一覧取得処理
/api01rv2/patientlst2v2 ORAPI012R3V2 患者情報一覧取得
/api01rv2/patientlst3v2 ORAPI012R4V2 患者情報一覧取得(氏名指定)
/api01rv2/system01lstv2 ORAPI101R1V2 システム管理 診療科・ドクター一覧取得処理
/api01rv2/medicalgetv2 ORAPI021R1V2 診療行為返却1 (xml2)
/api01rv2/diseasegetv2 ORAPI022R1V2 患者病名返却
/api01rv2/appointlst2v2 ORAPI014R2V2 患者予約状況 (xml2)
/api01rv2/acsimulatev2 ORAPI023R1V2 請求額シュミレーション
/api01rv2/visitptlstv2 ORAPI021R2V2 来院患者一覧 (xml2)
/api01rv2/hsconfbasev2 ORAPI031RC1V2 入院基本情報取得
/api01rv2/hsconfwardv2 ORAPI031RC2V2 入院病棟情報取得
/api01rv2/tmedicalgetv2 ORAPI021R3V2 中途データ一覧 (xml2)
/api01rv2/hsmealv2 ORAPI032R1V2 入院食事情報取得
/api01rv2/insprogetv2 ORAPI105R1V2 保険者マスタ一覧 (xml2)
/api01rv2/hsptevalv2 ORAPI032R2V2 入院医療区分・ADL点数情報取得
/api01rv2/hsptinfv2 ORAPI031R1V2 入院患者基本取得
/api01rv2/hsacsimulatev2 ORAPI034R1V2 退院仮計算
/api01rv2/incomeinfv2 ORAPI023R2V2 収納情報取得
/api01rv2/systeminfv2 ORAPI000R1V2 システム情報取得
/api01rv2/insuranceinf1v2 ORAPI012R5V2 保険番号マスタ(保険公費の種類)、補助区分取得
/api01rv2/receiptinf1v2 ORAPI042R1V2 レセプト情報(レセプトの枚数、点数)取得
/api01rv2/claimfrontv2 ORAPICLAIMR1V2 CLAIM受付送信(xml2)
/api01rv2/claimaccountv2 ORAPICLAIMR2V2 CLAIM請求確認送信(xml2)
/api01rv2/formdatagetv2 ORAPI001R1V2 帳票データ取得
/api01rv2/contraindicationcheckv2 ORAPI021R4V2 併用禁忌薬剤情報返却 (xml2)
/api01rv2/okusurigetv2 ORAPIRELR1V2 患者お薬手帳情報 (xml2)
/api01rv2/okusuriputv2 ORAPIRELR2V2 患者お薬手帳情報 (xml2)
/api01rv2/imagegetv2 ORAPI000R2V2 画像データ取得
/api01rv2/patientlst6v2 ORAPI012R6V2 患者 保険組合せ取得
/api01rv2/prescriptionv2 ORAPI001R2V2 処方箋印刷
/api01rv2/medicinenotebookv2 ORAPI001R3V2 お薬手帳印刷
/api01rv2/subjectiveslstv2 ORAPI025R1V2 症状詳記情報取得(取得) (xml2)
/api01rv2/system01dailyv2 ORAPI101R2V2 システム管理 患者登録・診療行為設定情報取得
/api01rv2/pusheventgetv2 ORAPI000R3V2 Push通知取得
/api01rv2/apiversiongetv2 ORAPI000R4V2 APIバージョン取得
/api01rv2/karteno1v2 ORAPI001R4V2 カルテ1号紙(外来)印刷
/api01rv2/karteno1hv2 ORAPI001R5V2 カルテ1号紙(入院)印刷
/api01rv2/karteno3v2 ORAPI001R6V2 カルテ3号紙(外来)印刷
/api01rv2/karteno3hv2 ORAPI001R7V2 カルテ3号紙(入院)印刷
/api01rv2/patientlst7v2 ORAPI012R7V2 患者 メモ内容取得
/api01rv2/invoicereceiptv2 ORAPI001R8V2 外来請求書兼領収書
/api01rv2/statementv2 ORAPI001R9V2 外来診療費明細書
/api01rv2/invoicereceipthv2 ORAPI001R10V2 入院請求書兼領収書
/api01rv2/statementhv2 ORAPI001R11V2 入院診療費明細書
/api01rv2/onlinedruggetv2 ORAPIONSHIR1V2 API 資格確認薬剤情報取得処理
/api01rv2/onlinespecgetv2 ORAPIONSHIR2V2 API 資格確認特定検診情報取得処理
/api01rv2/patientlst8v2 ORAPI012R8V2 旧姓履歴情報情報取得
/api01rv2/onlinemedgetv2 ORAPIONSHIR3V2 API 資格確認診療情報取得処理
/api01rv2/medicationgetv2 ORAPI102R1V2 入力・診療コード情報取得
/api21/medicalmodv2 ORAPI021S1V2 診療行為 登録 (xml2)
/api21/medicalmodv31 ORAPI021S1V3 診療行為 診察料返却 (入力一体化)
/api21/medicalmodv32 ORAPI021S2V3 診療行為 診療内容チェック (入力一体化)
/api21/medicalmodv33 ORAPI021S3V3 診療行為 診療行為登録 (入力一体化)
/api21/medicalmodv34 ORAPI021S4V3 診療行為 削除 (入力一体化)
/api21/claimreceivev2 ORAPICLAIM21S1V2 CLAIM 診療行為 登録 (xml2)
/api21/medicalmodv35 ORAPI021S5V3 診療行為 リハビリ開始日・コメント登録
/api21/medicalmodv36 ORAPI021S6V3 診療行為 保険一括変更処理
/api21/tmedicalmodv2 ORAPI021S2V2 中途データ取得、削除 (xml2)
/api21/medicalmodv37 ORAPI021S7V3 排他制御 解除処理
/api21/medicalmodav31 ORAPI021NS1V3 入院診療行為 初期返却 (入力一体化)
/api21/medicalmodav32 ORAPI021NS2V3 入院診療行為 診療内容チェック
/api21/medicalmodav33 ORAPI021NS3V3 入院診療行為 診療行為登録 (入力一体化)
/api21/medicalmodav34 ORAPI021NS4V3 入院診療行為 削除 (入力一体化)
/api21/medicalmodv23 ORAPI021S3V2 初診算定日登録処理
/api21/medicalmodav35 ORAPI021NS5V3 入院診療行為 入院調剤料更新(入力一体化)
/orca00/print ORCGMPRT 印刷APIモジュール
/orca01/reprintv3 ORAPI001R1V3 再印刷取得 (xml2)
/orca02/jobmanagev3 ORAPI002R1V3 ジョブ一覧返却(xml2)
/orca06/patientmemomodv2 ORAPI006S1V2 患者メモ内容登録処理
/orca07/statisticsdatav3 ORAPI007R1V3 CSV出力選択画面(日次月次統計データ取得)
/orca101/manageusersv2 ORCGWAPI01 ユーザ管理
/orca102/medicatonmodv2 ORAPI102S1V2 ユーザ点数マスタ登録(xml)
/orca11/acceptmodv2 ORAPI011S1V2 受付登録 (xml2)
/orca12/patientmodv2 ORAPI012S1V2 患者基本情報設定(登録・削除)(xml2)
/orca12/patientmodv31 ORAPI012S1V3 患者基本情報設定(登録・削除)(V3)
/orca12/patientmodv32 ORAPI012S2V3 患者保険・公費情報設定(登録・削除)(V3)
/orca12/patientmodv33 ORAPI012S3V3 患者労災・自賠責設定(登録・削除)(V3)
/orca12/patientmodv34 ORAPI012S4V3 患者 所得者情報・特記事項・個別情報等設定
/orca12/patientmodv35 ORAPI012S5V3 患者 公費負担額情報等設定
/orca12/patientmodv36 ORAPI012S6V3 患者 介護保険情報・介護認定情報等設定
/orca12/patientmodv37 ORAPI012S7V3 患者 患者禁忌薬剤設定
/orca13/findv3 ORCGQAPI01 患者照会
/orca13/findinfv3 ORCGQAPI02 患者照会
/orca13/foundv3 ORCGQAPI03 患者照会(印刷)
/orca14/appointmodv2 ORAPI014S1V2 予約登録 (xml2)
/orca14/onlinequa1 ORAPION001R1V2 オンライン資格確認
/orca14/onlinequa2 ORAPION002R1V2 顔認証資格確認登録、更新処理
/orca14/onlinequa3 ORAPION003R1V2 保険証資格確認登録、更新処理
/orca14/onlinedrug1 ORAPION004R1V2 資格確認薬剤情報登録、更新処理
/orca14/onlinespec1 ORAPION005R1V2 資格確認特定検診登録、更新処理
/orca14/onlinerefall1 ORAPION006R1V2 照会番号一括登録
/orca14/onlinequa4 ORAPION007R1V2 公費確認登録、更新処理
/orca14/onlinequaapp1 ORAPION008R1V2 予約患者一括資格確認照会処理
/orca14/onlinequaapp2 ORAPION009R1V2 予約患者一括資格確認照会処理
/orca21/medicalsetv2 ORAPI021SETV2 診療行為 セット登録 (xml2)
/orca22/diseasev2 ORAPI022R1V3 患者病名登録(xml2)
/orca22/diseasev3 ORAPI022R2V3 患者病名登録(xml2)
/orca23/incomev3 ORCGSAPI01 収納(請求一覧)
/orca25/subjectivesv2 ORAPI025S1V2 症状詳記コメント登録 (xml2)
/orca31/hsptinfmodv2 ORCGI0API01 入院登録
/orca31/birthdeliveryv2 ORCGI0API02 出産育児一時金
/orca31/hsacctmodv2 ORCGI4API02 入院会計登録
/orca31/hspmmv2 ORCGI4API03 入院会計最終診療年月返却
/orca32/hsptevalmodv2 ORCGI4API01 医療区分・ADL点数登録
/orca36/hsfindv3 ORCGI2API01 入院患者照会
/orca41/datacheckv3 ORCGDAPI01 データチェック
/orca42/receiptmakev3 ORAPI042R1V3 レセプト作成(xml2)
/orca42/receiptprintv3 ORAPI042R2V3 レセプト印刷(xml2)
/orca42/unclaimedv3 ORAPI042R3V3 未請求設定
/orca43/claimedmanagementv3 ORAPI043R1V3 請求管理登録
/orca44/receiptdatamakev3 ORAPI044R1V3 レセ電データ作成(xml2)
/orca44/receiptdatacheckmakev3 ORAPI044R2V3 チェック用レセ電データ作成(xml2)
/orca44/receiptdatapatientmakev3 ORAPI044R3V3 個別レセ電データ作成(xml2)
/orca51/diseasemasterlstv3 ORAPI052R1V3 病名マスタ返却 (xml2)
/orca51/medicationmasterlstv3 ORAPI052R2V3 点数マスタ返却 (xml2)
/orca51/stock1v2 ORAPI052R3V3 在庫管理情報返却 (xml2)
/orca51/patientbasisallv3 ORAPI052R4V3 患者基本情報一括返却 (xml2)
/orca51/patientdiseaseallv3 ORAPI052R5V3 患者病名マスタ返却 (xml2)
/orca51/masterlastupdatev3 ORAPI052R6V3 マスタ最終更新日返却
/orca51/patientmedicalallv3 ORAPI052R7V3 患者診療行為一括返却 (xml2)
/orca51/addressmasterlstv3 ORAPI052R8V3 住所マスタ返却 (xml2)
/orca51/tempmedicaladdv3 ORAPI051R1V3 中途データ一括登録 (xml2)
/orca51/statisticsformv3 ORAPI051R2V3 日次月次統計一覧取得 (xml2)
/orca51/masterexportv3 ORAPI052R9V3 マスタ取得
/orca51/inputcodelstv3 ORAPI052R10V3 入力コード一括返却 (xml2)
/orca71/onshicond ORAPIONCONDR1V2 オンライン資格確認
/orca71/onlineimg1 ORAPION011R1V2 資格確認 保険証OCR画像登録処理
/orca71/onlinemedical1 ORAPION010R1V2 資格確認 診療情報登録、更新処理
/orca71/onlinemedical2 ORAPION012R1V2 資格確認 歯科診療情報登録、更新処理
/orca71/onlineaidlstreq1 ORAPION013R1V2 資格確認 医療扶助交付番号登録処理
/orca71/onlinequaapp3 ORAPION014R1V2 訪問診療患者一括資格確認照会処理
/orca71/onlinequa10 ORAPION015R1V2 医療費助成情報登録、更新処理
/orca71/onlinequa11 ORAPION016R1V2 訪問診療/オンライン診療登録登録、更新処理
/session/session_start ORCGSESSTART ログイン認証

14. 参考資料

同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。

このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。

この記事は次のサービスページにつながります。近い入口からご覧ください。

よくある質問

この記事のテーマについて、相談時によくある質問をまとめています。

日レセAPIのエンドポイントは全部でいくつありますか?
公式サイトのAPI仕様一覧ページには約50件が掲載されていますが、公開ソースコード(5.2系・2026年7月スナップショット)のLD定義ファイルを数えると、bindapiで束ねられたエンドポイントは137件あります。差分の中には帳票系のように別ページで文書化されているものも含まれるため「一覧にない=未文書化」と即断はできませんが、ソース側を数えることでAPIの全体像を一次情報として把握できます。本記事に全137件の対応表を載せています。
公式ドキュメントにないAPIを本番で使ってもいいですか?
使えます。ORCAはソースコードが公開されており、実装そのものを一次仕様として確認できるからです。そもそも使用許諾契約は文書化APIを含むプログラム全体について無保証を明言しているので、「文書化されていれば安全」という前提の方が誤りです。文書化との実質的な差は「変更が公式ドキュメントに現れやすいか」と「サポート事業者との会話の土俵に乗りやすいか」の2点で、前者は月次公開ソースのdiff監視で埋められますが、後者(未文書化APIはサポート対象になりにくいこと)は残ります。本番で使うなら、版の固定、diff監視、検証環境での回帰確認、自前ドキュメントの整備、サポート事業者への構成共有をセットにしてください。これは文書化APIを使う場合でも本来同じです。
APIのリクエストやレスポンスの形式もソースから分かりますか?
分かります。日レセのXMLリクエスト・レスポンスの構造はrecord/ディレクトリの定義ファイル(例: record/xml_patientinfov2res.db)に宣言的に書かれており、XMLのタグ名はこの定義の項目名がそのまま使われます。未文書化のAPIでも、LD定義から担当プログラムを特定し、対応するrecord定義を読めば、リクエスト・レスポンスの全項目を導出できます。
COBOLが読めなくても調査できますか?
エンドポイントの全体像を把握するだけならCOBOLの読解はほぼ不要です。LD定義ファイル(lddef/*.ld)とデータ構造定義(record/*.db)はテキストで、URLとプログラムとXML構造の対応が宣言的に書かれています。個々のAPIの内部挙動を深追いする段階で初めてCOBOLを読むことになりますが、プログラムヘッダのコメント(日本語)と修正履歴だけでも多くの情報が得られます。

著者プロフィール

記事の著者プロフィールページです。

小村 豪

合同会社小村ソフト 代表

Windows ソフト開発、技術相談、不具合調査を中心に、既存資産が残る案件や原因が見えにくい障害調査に強みがあります。

ブログ一覧に戻る