YONAPO RESEARCH
研究記録
MedDSL(仮称)

RESEARCH / RECORD

P2-u:用語の版更新の監査(CPC 2026-09-08 → 2026-10-05)の実装と内部評価

原文 docs/research/84-p2-u-results.md

30 KB

GitHubで見る

版 be280c0

この文書の目次 9項目

作成日:2026-10-21。状態:旧版の参照ごとに、継続の有無と名称・関係・属性の差を、宣言した属性の方針のもとで報告する専用 R5 を実装し、架空の例で契約を固定したうえで、取得済みの RxNorm CPC の2版(81,468概念)に適用。両 Python 版の全体回帰を通過。設計82・手指定期待83 に従いました(利用者の指示:2026-10-21「CPC の版の監査に進みます」。範囲の確認:契約+架空の例+実データの実行、属性は宣言した方針で分類し未宣言は依頼)。82・83 の「未実装」という記載は設計時点の記録として保持します(83 には実装中に1例を足した)。独立確認・評価用正解の凍結は未実施で、independent_review / evaluation_frozen は false のままです。committed な例はすべて架空です。実データの結果(概念の ID・名称・属性値を含む行)は Git 管理外の data/research/r4/ にあり、この文書には集計だけを書きます。外部資料は、設計の段階では新たに取得せず、実装の後(同日)に、利用者の方針に従って NLM の RxNorm 文書3ページ(技術文書・CPC の説明・付録1)を台帳つきで取得し、事実を道具とテストに結びました(§9)。

RxNorm の資料提供:Courtesy of the U.S. National Library of Medicine。NLM による本プロジェクトの推薦を意味しません。

1. 行ったこと

項目 内容
新しい拡張 terminology_audit.py と 仕様(p2-terminology-audit、draft-1)。他の拡張に依存しない単独の R5。旧版・新版の snapshot(概念=出典と id、原子、関係、原子に付く属性)、比較する出典、属性の方針、参照の列を受け、参照ごとの行(presence・audit_state・facets・requests・policy_assumptions・successor)と集計を返す
判定 継続=新版に同じ (出典, id) がある(名称などの一致は使わない)。新版にないときは not_found、successor: not_determined、候補なし、公式の履歴を求める依頼。継続した参照は三つの面(名称・関係・属性)を別に比べ、優先順で changed→needs_information→changed_administrative_only→unchanged_in_scope
属性の方針 呼び出し側の宣言(definitional/administrative)。差のあった属性が未宣言なら分類せず依頼。使われなかった宣言は痕跡を残さない
実行例 88 JSON・1,679必須パス(U 系列27条件、N 系列12条件、B 系列2条件)。87例を実装前に固定し、U27 を実装中に足した(§4)
宣言 義務16(共通4+R5の3+AU-1〜9)。宣言の数は25になった
検査 test_audit.py 14テスト、独立な別計算 audit_oracle.py(集合の演算)、変異23件、検査器の変異 B22 を追加
実データの道具 audit-cpc-versions.py。台帳の SHA-256 と取得状態を確かめた ZIP を読み、同梱の SQL の列の並びから名前で列を引いて正規化し、契約の核の関数を直接呼ぶ。test_audit_cpc.py 9テスト(正規化の写像は架空の RRF 形式の ZIP で確認、実データがあれば既知の値・不変条件・別計算との照合)

他の拡張・実装・仕様・宣言・旧実行例は一つも変えていません。実装の変更は host.py の import と登録の各1行だけです。

2. 予測の結果(設計82の AP1〜AP10)

ID 予測 結果
AP1 他を変えずに実装できる。変更は host.py の2行、手で持つ一覧(P2-q・P2-t と同じ11か所)、道具の追加だけ 成立。既存の仕様・宣言・旧実行例・旧モジュールに差分なし。手で持つ一覧は同じ11ファイル。台帳の追加はなし(新しい資料を取得していないため)
AP2 25宣言・351義務・533防護例、独立な組 232/276 成立。統合評価の値と一致(証拠は checked_native_template 219・finite_check 124・hand_derivation 8)
AP3 各参照がちょうど一つの状態に入る。実データでも成り立つ 成立。192通りの全数・乱数300要求・実データの両方針で、状態別の数の和=参照の数
AP4 継続は (出典, id) だけ。同じ名称・属性・関係の別の ID があっても候補を出さない 成立。別の ID の複製を0〜3件加えても not_found で、結果に複製の ID が現れない
AP5 面は独立。三つの面に差がなければ unchanged_in_scope 成立。192通りの全数が別計算と一致
AP6 未宣言の差は全て依頼。使われなかった宣言は痕跡を残さない 成立
AP7 入れ替えると、継続した参照の各面の差が入れ替わり、not_found と新のみが入れ替わる。逆向きの推定を含まない 成立。乱数120要求で比較した継続の参照 100 件超、実データでも継続 81,298 は同じで、旧のみ170と新のみ322が入れ替わる
AP8 料金の式が全要求で成り立つ。手で導いた値(M=30 など)と一致 成立。30・29・14・13・45・ほか全例が、手で導いた値と初回に一致
AP9 義務は R5 と必須欄で足りる。主題の外の義務は0 成立。16義務はすべて A〜I に収まった。これまでの拡張で必ず出ていた「外部の資料に結んだ事実」の義務は、native が外部の事実を持たないので出なかった(§5 F48)
AP10 affected():この拡張は他に影響されず、他に影響しない 成立。この拡張の変更が列挙するのは自分だけで、他の列挙は変わらない

3. 実データの結果(設計82の RP1〜RP7)

実データの集計は、設計の前に見た値(既知)、設計で固定した予測、予測の外の測定を分けます。実行は台帳の SHA-256 と取得状態を確かめてから行い、決定的です(二度の実行で集計が同一)。全体で約36秒(2版の正規化と2方針の監査)。

3.1 正規化(出典 RXNORM のみ)

項目 9 月版 10 月版
原子(RXNCONSO) 140,841 141,074
属性(RXNSAT、全行が原子に付く) 469,951 469,953
概念間の関係(RXNREL、CUI‐CUI) 552,956 553,500
比較しなかった行:原子対原子の関係 59,391 59,472
比較しなかった行:他の出典(MTHSPL など) 原子 105,400/属性 2,900,511/関係 1,966,106 原子 105,954/属性 2,912,337/関係 1,976,750

重複する行・原子に結べない属性・所有者のない関係・原子に付かない属性は、どちらの版にも0件でした。列の位置は、ZIP に同梱された Table_scripts_mysql_rxn.sql の列の並びから名前で引きました。

3.2 予測と測定

ID 予測 結果
RP1 全81,468参照が一つの状態に入る。not_found=170、新のみ=322、名称の差のある概念=2、原子の変更=0(既知の再現) 成立(既知の値の再現。原子の追加1・削除2も一致)
RP2 続く参照のうち、属性の差が一つ以上ある概念は 1,500〜3,300 外れ(下に外れ)。1,317。予測は属性の行の数(追加1,723・削除1,887)から立てたが、多値の NDC は原子と名前ごとの値の集合として一つの差になり、概念の数はずっと小さい(F44)
RP3 そのうち NDC 以外の属性の差がある概念は 100〜600 外れ(下に外れ)。77(RP2 と同じ単位の取り違え)
RP4 関係の差がある続く参照は 100〜1,300。除かれた関係の対象は全て新版に存在しない 成立。326。除かれた関係422の対象で新版に残るものは0。追加326の対象で旧版にもあったものは0
RP5 新版で未解決かつ旧版に存在した対象は0 成立(0。旧版でも未解決の対象も0)
RP6 P-full の changed は 300〜1,500、unchanged_in_scope は続く参照の95%以上 成立。changed 370、unchanged_in_scope 79,699(続く参照の98.0%)
RP7 P-partial では needs_information が0より大きく、changed の数は P-full と等しい 一部外れ。needs_information は 27(成立)。changed は 343 で P-full の370と等しくない(差は27)。P-full はこの3つの属性名(RXN_AI・RXN_AM・RXN_BOSS_FROM)を定義にあたるとするので、P-partial で未宣言になった参照は changed から needs_information に移る。予測の推論の誤り(F45)

3.3 方針ごとの状態(81,468参照)

状態 P-full P-partial
unchanged_in_scope 79,699 79,699
changed_administrative_only 1,229 1,229
changed 370 343
needs_information 0 27
not_found 170 170
not_compared 0 0

P-full は NDC を管理上、データに現れる他の全ての属性名(20種)を定義にあたるとした宣言。P-partial は NDC を管理上、強度に関わる名前だけを定義にあたるとし、他を未宣言にした宣言。どちらも作り手の研究上の仮定で、医学的判断ではありません。

3.4 面ごとの変化(P-full)

面 測定
収載 続く 81,298、旧のみ 170、新のみ 322
名称 続く参照のうち名称の面に差があるのは2件(原子の追加1・削除2)。続く 140,535 原子の種類・名称の変更は0
関係 差のある続く参照 326(除去のみ229・追加のみ85・両方12)。除去422、追加326。いずれも、除かれた対象または新しい対象に結ばれている
属性 差が一つ以上ある続く参照 1,317。うち1,229は NDC の差だけで他の面に差がない(管理上の差のみ)。NDC 以外の差が77(RXN_AVAILABLE_STRENGTH のみ50、RXN_BOSS_FROM のみ12、RXN_AI と RXN_AM が12、RXN_AI のみ3)
changed の370の内訳 関係のみ291、定義にあたる属性のみ43、関係と定義にあたる属性34、名称のみ1、名称と関係1

3.5 契約の経路での確認

実データから、契約の限界内の参照を状態ごとに12件ずつ(計48件)抜き出し、host の経路で小さな要求として実行した(対象の存在の旗のため、標本の外の対象346件は空の概念として加えた)。結果は、核の関数の結果と、独立な別計算の両方と全項目で一致し、料金も別計算と一致した。ただし、旧版の 2,042 概念(2.5%)は、host の経路の一つの概念あたりの上限(原子32・関係64・属性32)を超えるため、実データの全体の実行は核の関数を直接呼んでおり、JSON の大きさと予算の上限は架空の例と標本でだけ確かめた。

4. 反例の結果(設計82の Z1〜Z12)

ID 内容 結果
Z1 同じ ID で強度が変わる U03:継続だが changed。ID の継続を意味の同一としない
Z2 管理上の属性だけが変わる U02・U15:changed_administrative_only
Z3 未宣言の属性が変わる U04・U18・U20:needs_information、依頼。分類しない
Z4 旧版の概念が消え、同じ名称・属性・関係の別の ID の概念が現れる U10:not_found、候補なし
Z5 名称の一部だけが変わる U05・U06:changed(名称の面)。含量などの変更と推定しない
Z6 関係の対象が消える/関係だけが落ちる U07・U08・U13:対象の存在の旗が区別する
Z7 出典が比較範囲の外 U11:not_compared。範囲に入れれば比較(U22)
Z8 入れ替え U14・U24と乱数、実データ
Z9 原子が減ると属性も減る U16:属性の差でなく、名称の差に伴う件数
Z10 出典が変わった同じ ID U23・U27:not_found(別の概念)
Z11 並びの違い U21と乱数60要求:差にならない
Z12 同じ版の組/別の用語の組 N06・N05:静的に拒否

5. 分かったこと

  1. この月の更新で、概念の定義にあたる部分はほぼ動いていない。 続く 81,298 概念のうち 98.0% は、名称・関係・属性のどれにも差がない(P-full)。差の大半は、販売・包装の識別子 NDC の入れ替わりだけ(1,229概念)で、定義にあたる属性の差は77概念(0.09%)、名称の差は2概念に留まる。
  2. 関係の面の差は、収載の出入りだけで説明される。 続く概念どうしの間の関係の変化は0で、除かれた関係はすべて除かれた概念に、追加された関係はすべて新しい概念に結ばれていた。1か月の組での測定で、他の月への一般化はしていない。
  3. 後継を決めない・属性を分類しない・比べた範囲を明示する、という規則を実データに当てても、全参照がちょうど一つの状態に入り、核・host の経路・独立な別計算が一致した。 ただし、これは契約が実データの上で一貫していることで、意味が保たれたこと、廃止や置換が起きたこと、NDC の入れ替わりが定義の変化でないことを示すものではない。

新しい発見

ID 発見 根拠 限界
F41 関係の面の差が、収載の出入りの帰結にすぎなかった(この月の組では)。関係の面は、収載の面と独立な情報を足さなかった 除去422・追加326の全てが、除かれた/新しい概念に結ばれる。続く概念どうしの変化0 1組の測定。関係を持つ概念の定義の再編が起きる月には変わりうる
F42 原子が不変(続く 140,535 原子で種類・名称の変更0)なので、名称の面はほぼ空になった。名称の変更を扱う経路は、架空の例(U06・U22)でだけ動いた 実データの atoms_modified=0 原子の識別子の運用(付け替えがない)に依る。別の月・別の体系では異なる
F43 属性の差は NDC に支配される(差のある1,317概念のうち1,229が NDC の差だけで他の面に差がない)。一つの属性名の分類が、状態の分布の大半を決める。一方、分類を宣言しない影響は小さい(P-partial で27概念が changed から needs_information に移るだけ) §3.3・§3.4 方針は作り手の仮定。NDC を管理上とする判断は、専門的な確認を受けていない
F44 予測の単位の取り違え。 属性の行の数(追加1,723・削除1,887)から概念の数の範囲を立てたが、多値の属性は原子と名前ごとの値の集合として一つの差になる。実測は1,317概念で、範囲(1,500〜3,300)の外 RP2・RP3 の外れ 予測は単位(行・概念・差の項目)を明記する必要がある
F45 予測の推論の誤り:P-partial で未宣言になる属性名は P-full で定義にあたるとしたので、changed は減る(370→343)。「優先順の帰結で changed は変わらない」とした予測は誤り RP7 方針の違いが優先順を通して状態の分布に与える効果は、手で導くと間違えやすい
F46 共通の予算の検査器の欄の一覧は、一般的な名前の行の欄と衝突する。 行の欄 state・source・assumptions を一覧に足したところ、p2-temporal・p2-refinement の未完了行で1,073件の偽の違反が出た。行の欄を audit_state・concept_source・policy_assumptions に改めた(設計82・83の名前は設計時点の記録として保持) 統合評価の予算の掃引(違反1,073→0) 一覧が全拡張で共通で、衝突は統合評価でしか見つからない
F47 変異が1件見逃された。 「集計の継続が出典を見ない」変異は、U23(範囲が [S])では、出典が変わった概念が範囲の外になるため、継続の集計に届かず検出されなかった。範囲を [S, X] にした U27 を実装中に足した continuing_ignores_source 変異は実装の後に見つけた。U27 は期待を実行結果から作っていない(83 に手で導いた値を足した)
F48 外部の資料に結んだ事実の義務が出なかった。 これまでの拡張で必ず出ていた「主題の外の義務」は、この拡張の native が外部の事実を持たず(snapshot の文字列は不透明)、事実は道具の側(同梱の SQL の列の並び、NLM の文書の記述)にあるので出なかった。道具の写像は、架空の RRF 形式の ZIP のテストと、局所データの集計、取得した NLM の文書で確かめた(§9) 義務16が全て A〜I 事実の結びつきは道具のテストにあり、契約の義務としては宣言していない
F49 公式の履歴は、CPC ではなく通常のリリースにある。 NLM の技術文書は、退役した RxCUI から現在の RxCUI を引く表(RXNCUI)と RXNCUICHANGES.RRF を通常のリリースのファイルとして記述し、CPC のデータファイルは3つ(RXNCONSO・RXNSAT・RXNREL)だけだと明記する。新版にない170参照の後継を決める公式の根拠は存在するが、取得していない通常のリリースにある F-N7・F-N9・F-N10(§9) 通常のリリースの取得には無償の UMLS ライセンスが要る(個人にだけ発行、年次報告あり)。RXNCUI は用語種別 SCD・SBD・GPCK・BPCK の退役だけを追跡し、170参照のうち50件が該当、120件は載らない。RxNorm API はライセンス不要で履歴の状態を返すが、照会時点の状態(条件の詳細は 03-data-access.md)。取得は利用者の判断で、取得するまで not_found は不明のまま
F50 CPC に不在であることは、廃止の証拠でない。 CPC は「米国で市販されている処方薬の近似」で、抑制・廃止のデータを除く。市販でなくなっただけでも CPC から外れうる。ローカルの実データでは、出典 RXNORM の全行で CVF が 4096、抑制の印がなく、記述と一致した。API の照会(85)で実測した:新版にない170参照のうち70(41%)は RxNorm で有効のまま、100は廃止(同等な有効概念の指定なし)で、置換先の指定は0 F-N5・F-N6・F-N8、85 の F51・F52 説明のページは「最終確認 2019年4月17日」「草案」と記す。記述は取得日のもので、2026年の更新の保証ではない。照会は170参照・1か月の組

実装の最中に直した誤り

  • 実装の誤り:0件。手指定の期待87件と手で導いた料金は、初回にすべて満たされた。
  • 検査側の調整:(1)U27 の追加(F47)。(2)行の欄の改名(F46)。(3)継承の検査の数(独立な組+23、疑いの数)を測定値に更新(予測できたのは独立な組の増加23)。独立な組を数えるテストは、新しい拡張との組が他の拡張の集合にも入る数え方の誤りで1回失敗し、新しい拡張との組を除いて数えるよう直した。疑いの数は仮の値を置いて失敗し、測定値(182)に直した。(4)単独の仕様を再固定の連鎖(数量の仕様が根)に足したところ、連鎖の検査(連鎖の仕様は別の仕様の hash を含む)が拒否した。単独の仕様は連鎖に載せない。(5)予測の外れ(RP2・RP3・RP7)は、予測を直さず、上の表に残した。

6. 検査の強さ

  • 全数:名称の差×関係の差×属性の差の部分集合(8)×方針(3)×継続/不在=192要求を、別計算と照合した。
  • 乱数:概念6〜15、原子・関係・属性・出典・概念の追加と除去の乱数の変更、方針と範囲の乱数の300要求を別計算と比べた。全ての状態が現れた。
  • 入れ替え・並び:乱数120要求の入れ替え、60要求の並びの入れ替え(概念・原子・関係・属性・参照・方針)。
  • 変異:23件を検出(実装の後に U27 を足して全件)。検査器の変異:B22 を追加し、B17〜B21 とともに実行して検出を確かめた(§7)。
  • 実データ:既知の値の再現、全参照の分割、方針ごとの測定の再現、入れ替え、48参照の host 経路・別計算との照合。

7. 検証

Python 3.14.4 と 3.11.17 で、全テスト系列と統合評価を実行しました(実装・検査・文書を加えた作業ツリーで実行。コミット前)。全検証の実行は3回目で、1回目は検査側の数え方の誤り2件、2回目は再固定の連鎖の登録の誤り1件で P2 系列が失敗した(§5。直して最初から回し直した)。以下は最終の木の結果です。

系列 件数 Python 3.14.4 Python 3.11.17
開発 231 通過 通過
追加レビュー系列 52 通過 通過
保存監査 8 通過 通過
P2 498(P2-t の475に、P2-u の監査14テストと道具9テストを追加)。スキップなし。実データの照合を含む 通過 通過
統合評価 P1/P0・拡張・全P2・予算・版比較(3記録) 通過 通過
P1-d の CLI 照合・保存監査・登録検査 P1 20条件・80 JSON・417必須パス、別枠 P0 の37 JSON・221必須パス、監査600+256+32+1、登録25/拒否0 通過 通過
検査器の変異(B17〜B22、対照 Z0) 対照の失敗0、B17〜B22 は各1件の失敗で検出 3.14 で実行 —
統合評価の対象 P2-u 追加後の分母
登録・義務・防護例 25宣言・351義務・533防護例参照(P2-t の24・335・517から、1宣言・16義務・防護例16を追加)。防護例のない義務は3(変更なし)
証拠の強さ checked_native_template 219、finite_check 124、hand_derivation 8
独立な拡張の組 232/276(P2-t の209/253から、23組が独立に増えた)
実行例の系列 P2-u 88 JSON・1,679必須パス。他は変更なし
予算 1,612要求・掃引35,102回、違反0(P2-t は1,525要求・33,555回)。掃引の回数は実測で、予測ではない。両 Python 版で一致

予測した分母(義務・防護例・独立な組・例と必須パスの数〔U27 の1例を足した後〕・要求の数・各要求の料金)は、実行の前に手で導いた値が一致しました(掃引の回数と、共有の語彙を数える探索の疑いの数182だけは実測)。旧い挙動の digest(22,052件)の回帰と、生成器による全例・宣言のバイト一致の検査は P2 系列に含まれ、通過しました。実データの照合(既知の値、全参照の分割、方針ごとの測定値、入れ替え、48参照の host 経路・別計算との照合)は、台帳どおりの CPC 二版が手元にある環境で、両 Python 版とも通過しました。固定対象に、設計82・期待83・新しい実装・仕様・宣言・検査・道具・実行例を加えました。作成者 snapshot で、independent_review / evaluation_frozen は false です。

  • 新 native 仕様 hash(先頭8桁):P2-u 8291f2df…。他の仕様は変更なし。単独の仕様なので、再固定の連鎖には載せない
  • 追加前(8c6d600、P2-t の追加後):1,827ファイル、manifest 94d5eabe…、束 e2cd5929…
  • 追加後(この作業のコミット):1,926ファイル、manifest 69bcbd45…、束 df218a3b…(完全な値は examples/p1-evaluation/manifest.json とその hash)。この文書と概要文書の更新で固定対象は変わらない(再スナップしても同じ束)

8. 限界と次

  • 1か月の組(2026-09-08 → 10-05)の測定です。他の月に変化の量が一般化することは示していません。設計の固定後に未見の月次版を加えて測ることは、新しい月次版が公表されてから別に行います。
  • 属性の方針は作り手の研究上の仮定で、医学的判断ではありません。NDC を管理上とすることを含め、専門的な確認を受けていません。
  • 意味の同一・廃止・置換は、監査の契約としては決めていません。 新版にない170概念の公式の状態は、追補の API の照会(85)で別に調べた:70は RxNorm で有効のまま(CPC の範囲から外れただけ)、100は廃止(同等な有効概念の指定なし)、置換先の指定は0。この状態は監査の結果には取り込んでいない(契約は履歴を入力として受けない)。
  • 比較していないもの:原子対原子の関係(59,472行)、SUPPRESS・CVF、RXNORM 以外の出典、週次更新、全体版。(出典, id) の同一性なので、出典が変わった同じ ID は別の概念として報告される(F47 の U27)。
  • host の経路の限界:旧版の 2.5% の概念は上限を超え、実データの全体の実行は核の関数を直接呼ぶ。
  • 設計者・実装者・検査の作成者が同一で、独立確認はありません。薬剤用語の専門確認者は未割当です。
  • 次の候補は、未見の月次版への適用(公表後)、公式の履歴(API で照会した状態)を、監査の入力として受ける契約の拡張(not_found を「有効のまま・廃止・置換」に分ける。85 の結果が材料)、通常のリリース(無償の UMLS ライセンス。利用者は保留)の取得、複数の出力先への射影の拡張です。着手前に利用者の確認を取ります。独立確認は将来の英語の別リポジトリで行います。

9. 追補:NLM の文書3ページを台帳つきで取得し、事実を結んだ(同日)

設計82の U1(NLM の文書のページを台帳つきで取得するか)に対する利用者の方針(「NLM の技術文書の該当ページを、台帳つきで取得する」)に従い、D03 が公式資料として挙げていた3ページを取得した。HTTP 200、リダイレクトなし、data/research/r3/(Git 管理外)に保存し、台帳(03-materials.json)に nlm-rxnorm-technical-documentation(131,478バイト、SHA-256 1f05a1f6…)、nlm-rxnorm-cpc-description(20,916バイト、da895512…)、nlm-rxnorm-appendix-1(44,177バイト、7dd0fe70…)を記録した。取得の手順と制限は 03-acquisition.md。

道具 audit-cpc-versions.py に、事実の表 NLM_FACTS(F-N1〜F-N10。台帳の項目・ハッシュ・目印の語)を持たせ、テスト で、台帳の取得状態とハッシュ、ページのハッシュ、目印の語の存在を確かめた(手元にページがあるとき10件全て一致。事実・ハッシュ・出典の変更は検出される)。

事実 内容 局所データとの照合
F-N1・F-N4 RXNREL の関係は、RXCUI2 が RXCUI1 に対して持つ関係。付録1の表も RXCUI2 の用語種別、RELA、RXCUI1 の用語種別の順 設計の前の用語種別の組の集計と一致。has_ingredient で、対象が成分(IN)で所有者が成分でない関係が 28,026、逆が 0
F-N2・F-N3 非対称の関係は向きごとに1行。RELA は任意の追加ラベル 道具は RELA が空なら REL を使う
F-N5・F-N6・F-N8 CPC は抑制・廃止を除き、市販の処方薬の近似。完全版では CVF=4096 の印 出典 RXNORM の全行(概念・関係・属性、両版)で、抑制の印の行 0、CVF が 4096 でない行 0
F-N7・F-N9・F-N10 CPC のデータファイルは3つ。退役した RxCUI の表と RXNCUICHANGES.RRF は通常のリリース 取得済みの CPC に履歴のファイルはない(ZIP の構成と一致)

設計82の「向きは局所データの集計で裏付けた、NLM の文書は未取得」という記載は、設計時点の記録として保持する。取得により、向きは文書の記述と局所データの両方で裏付けられた。ページの記述は取得日のもので、CPC の説明ページは最終確認が2019年4月17日と記すため、2026年の更新を保証しない。

追補の検証

追補(台帳・検査器・道具・テスト・文書の更新)の後、影響する範囲を Python 3.14.4 と 3.11.17 で実行した。P2-u の道具と監査、事実の表を台帳から引く Provenance・Observation・接地・ライブラリのテスト(90テスト)、道具・契約・継承のテスト(97テスト)、保存監査(8テスト)、版比較つき統合評価、P1-d の CLI 照合(P1 20条件・80 JSON・417必須パス、P0 37 JSON・221必須パス)、保存監査(600+256+32+1)、登録検査(25/拒否0)は、両 Python 版とも全て通過した。固定対象は 1,926ファイル、manifest 758e6e83…、束 35ea6ecb…(テストの test_audit_cpc.py の更新による。全系列の再実行は行っていない:変更は道具とそのテスト、台帳、文書に限り、契約・実装・他の拡張は変えていない)。

P2-u

同じ区分の文書