知識マップ: 日レセAPIの全体像をソースコードから把握する ── ORCAの公開ソースを読む(全137エンドポイント対応表付き)
記事「日レセAPIの全体像をソースコードから把握する ── ORCAの公開ソースを読む(全137エンドポイント対応表付き)」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
ORCA(日レセ)はLinux上で動くオープンソースのOLTPモニタMONTSUQIの上で、業務プログラムをCOBOLで実装している。日レセAPIのURLとCOBOLプログラムの対応はlddef/*.ldのLD定義ファイルにbindapi宣言として宣言的に書かれており、テキストのgrepだけで全エンドポイントを列挙できる。5.2系ソースでは137エンドポイントが実在し、公式のAPI仕様一覧に載るのは約50件にとどまるが、残りは未文書化であっても、record/*.dbのレコード定義からリクエスト・レスポンスの仕様を導出できる。使用許諾契約は文書化APIも含めてプログラム全体を無保証としているため、本番で使うAPIには版の固定と月次公開ソースのdiff監視をセットにすることが推奨される。
flowchart LR
accTitle: 日レセAPIの全体像をソースコードから読む知識マップ
accDescr: ORCAのlddefとbindapi宣言、record定義がAPIのディスパッチとXML構造をどう決めるか、そして未文書化APIの発見と月次ソースのdiff監視という運用にどうつながるかを示す図。
orca_api["日レセAPI"]
orca["ORCA(日医標準レセプトソフト/日レセ)"]
montsuqi["MONTSUQI(モンツキ)"]
cobol["COBOL"]
lddef["LD定義ファイル(lddef/*.ld)"]
bindapi_declaration["bindapi宣言"]
bind_declaration["bind宣言"]
record_db_definition["record/*.db(データ構造定義)"]
undocumented_orca_api["未文書化API"]
orca_official_api_list["公式サイトのAPI仕様一覧"]
orca_source_license["ORCA使用許諾契約(無保証条項)"]
orca_source_diff_monitoring["月次スナップショットのdiff監視"]
orca_monthly_source_snapshot["月次ソース公開スナップショット"]
undetected_api_change["検知されないAPI変更"]
orca_api_ruby_library["orca-api(Rubyライブラリ)"]
orca -->|"実装を担う"| orca_api
orca -->|"利用する"| montsuqi
orca -->|"利用する"| cobol
montsuqi -->|"利用する"| lddef
orca_api -->|"に保存される"| lddef
lddef -->|"利用する"| bindapi_declaration
lddef -->|"利用する"| bind_declaration
bindapi_declaration -->|"利用する"| cobol
bind_declaration -->|"利用する"| cobol
bindapi_declaration -->|"利用する"| record_db_definition
orca_api -->|"利用する"| record_db_definition
undocumented_orca_api -->|"利用する"| lddef
undocumented_orca_api -->|"で確認できる"| record_db_definition
orca_official_api_list -->|"で確認できる"| lddef
orca_source_license -.->|"前提とする"| orca_source_diff_monitoring
orca_source_diff_monitoring -->|"前提とする"| orca_monthly_source_snapshot
orca_source_diff_monitoring -->|"軽減する"| undetected_api_change
undocumented_orca_api -.->|"原因になり得る"| undetected_api_change
orca_source_diff_monitoring -->|"推奨される対応"| undocumented_orca_api
orca_api_ruby_library -->|"利用する"| orca_api
概念間の関係(全20件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- ORCA(日医標準レセプトソフト/日レセ)は日レセAPIの実装を担います。
- ORCA(日医標準レセプトソフト/日レセ)はMONTSUQI(モンツキ)を利用します。
- ORCA(日医標準レセプトソフト/日レセ)はCOBOLを利用します。
- MONTSUQI(モンツキ)はLD定義ファイル(lddef/*.ld)を利用します。
- 日レセAPIはLD定義ファイル(lddef/*.ld)に保存されます。
- LD定義ファイル(lddef/*.ld)はbindapi宣言を利用します。
- LD定義ファイル(lddef/*.ld)はbind宣言を利用します。
- bindapi宣言はCOBOLを利用します。
- bind宣言はCOBOLを利用します。
- bindapi宣言はrecord/*.db(データ構造定義)を利用します。
- 日レセAPIはrecord/*.db(データ構造定義)を利用します。
- 未文書化APIはLD定義ファイル(lddef/*.ld)を利用します。
- 未文書化APIはrecord/*.db(データ構造定義)で確認できます。
- 公式サイトのAPI仕様一覧はLD定義ファイル(lddef/*.ld)で確認できます。
- ORCA使用許諾契約(無保証条項)は月次スナップショットのdiff監視を前提とします。
- 月次スナップショットのdiff監視は月次ソース公開スナップショットを前提とします。
- 月次スナップショットのdiff監視は検知されないAPI変更を軽減します。
- 未文書化APIは検知されないAPI変更の原因になることがあります。
- 月次スナップショットのdiff監視は未文書化APIに対する本記事の推奨です。
- orca-api(Rubyライブラリ)は日レセAPIを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。