データパック仕様書 ― 分析班に作成を依頼するデータの形
令和8年度 千葉県地域医療提供体制データ分析チーム構築支援事業 / 宛先:データ分析班 / 関連資料:システム構成案(県向け)
分析ツール(Webアプリ)は、分析班が発行する「データパック」だけを入力として動作 します。本書はそのファイル構成・列定義・コード体系・検証ルール・受け渡し手順 を定める、分析班への依頼仕様です。
この形式を守っていただければ、新しい指標・新しい地域分け・年度更新はアプリ改修なしで画面に反映 されます。逆に、この形式にない集計は画面に出せません(追加したい場合は §8 の変更管理で仕様側を更新します)。
1 パック全体構成と共通規約まずここだけ守れば動く
datapack_v2027.04/
├ manifest.json … 版数・発行情報・ファイル一覧とSHA-256(検証ツールが自動生成)
├ geo/ … ① 地図データ(TopoJSON)
├ master/ … ② シートマスタ:axes.csv/datasets.csv の2ファイル
├ values/ … ③ 計測データ
│ ├ surg_rate/ … 年度で切り替える指標=フォルダ(フォルダ名=dataset_id)
│ │ ├ 2024.csv … 年度ごとに1ファイル(ファイル名=年度コード。行に year 列は持たない)
│ │ └ 2025.csv … 年度更新=新年度ファイルを追加するだけ(過去年度は変更しない)
│ └ facilities.csv … 年度に依存しないデータセット=従来どおり単一ファイル
└ glossary.csv … 用語ヘルプ(任意)
共通規約 内容
文字コード・改行 CSVは UTF-8(BOM付き可・なし可、アプリ両対応) 、改行はLF/CRLF両対応。引用符・カンマ含みセルは RFC 4180 準拠のダブルクォート
ヘッダ行 全CSVの1行目は列名(dtype 別の列規約(§3)と完全一致 。列順は自由、余分な列はエラー)
values のファイル命名 filter_axes に year を含む指標=values/{dataset_id}/{年度コード}.csv と年度ごとに1ファイル (年度はファイル名で表現し、行に year 列は持たない 。残っていれば検証エラー)。年度に依存しない指標=values/{dataset_id}.csv の単一ファイル
欠測・秘匿 欠測=空欄 。秘匿セル=空欄+同行の suppressed 列に 1(画面には「*(秘匿)」と表示される)。秘匿閾値未満の実数値をパックに入れない (入っていれば検証エラー)
数値 桁区切りカンマ・単位文字は入れない。割合は datasets.csv の value_format 宣言に従い「%値(例 61.5)」で統一
ID・コードの文字種 半角英数と _ のみ(先頭は英字)。表示名は日本語で自由
版数 フォルダ/zip名は datapack_vYYYY.MM(同月内の再発行は .2 等を付す)
2 ② シートマスタ ― 2ファイルの列定義フォーマットの正
2-1 axes.csv(軸マスタ:地域・がん種・年齢層などドメイン軸 の選択肢)
列名 必須 内容・例
axis_id必須 軸ID。例 med9(二次医療圏9区分)/muni(市町村)/cancer/age。地域軸は geo のファイル名と一致させる。axes.csv はドメイン軸(地域・がん種・年齢層など)専用 で、年度などのカレンダー軸は定義しない——暦から機械的に決まるものに誤記の窓口を作らないため。時間は標準期間コード で扱う(§3「時間の扱い」)。ただし循環的分類軸・シナリオ軸はドメイン軸として定義する (下記)
code必須 選択肢コード。市町村はJIS全国地方公共団体コード5桁 (例 12100=千葉市)、医療圏は県内連番(例 chiba など英字スラッグでも可、パック内で一貫していること)
label必須 表示名(例「東葛南部」)
short_label任意 地図ラベル等の短縮表示名
sort必須 表示順(整数)。同一 axis_id 内で一意 であること、昇順に読む ことだけを規定し、刻み幅は自由 (連番でも10刻みでも、混在していても可)。値の大小で並ぶ図(ランキング等)はデータ側で順序が決まるため、この列が効くのはドロップダウン・凡例・積み上げの段・小倍数の配置・表の既定行順 。決め方: ①県の公式資料の並びに合わせる (二次医療圏は県の保健医療計画の並び、市町村はJISコード順)を最優先 ②大小・程度に意味がある軸(年齢層・重症度)はその順 ③図の読み方が決まっている軸(治療選択=手術→放射線→薬物→無治療、転帰先=自宅→施設→他院)はその順 ④いずれにも当たらない軸は基準を1つ決めて description に明記。あわせて「全体(all)」は先頭 、「その他・不明」は末尾 に置く
parent_axis_id / parent_code任意 ドリルダウン用の親(例 muni の親は med9 の該当圏)。指定すると「医療圏→市町村」の絞り込みが自動で効く
valid_from / valid_to任意 年度(西暦4桁)。市町村合併・区域見直しで選択肢が変わる場合に使用
axes.csv に「書くもの/書かないもの」の線引き:
循環的分類軸は axes.csv に書く。 dow(曜日:mon〜sun)・timeband(時間帯:例「夜間22-8時」「日中8-22時」)は、暦から決まるものではあっても「時系列上の位置」ではなく循環する分類 なので、標準期間コード(時間)ではなくドメイン軸 として定義します。※分析項目一覧 #18「時間帯別・曜日別」、#20/#21「夜間22時〜翌朝8時」が該当
シナリオ軸(scenario)も axes.csv に書く。 将来推計の前提の組合せ(例 base/high/low)は暦ではなく業務判断 で決まるため、ドメイン軸として値集合を定義します(§3「シナリオ機能の方針」参照)
施設軸(facility)は axes.csv に書かない。 施設の選択肢は values/facilities.csv の facility_id から検証ツールが自動導出 します(二重管理=施設の増減を2ファイルに書く手間と不整合を防ぐため)。region_axis_id や to_axis_id に facility と書けば、施設を軸として使えます
2-2 datasets.csv(データ項目カタログ:画面の「指標」1行=1指標)
列名 必須 内容・例
dataset_id必須 例 surg_rate。values/ のフォルダ名(年度分割時)または単一ファイル名 と一致(surg_rate/2024.csv/facilities.csv)
name / unit必須 表示名「手術実施率」/単位「%」
dtype必須 型。single(地域単値)/comp(構成比)/flow(OD フロー)/point(施設点)の4種。使える見せ方(地図/表/グラフ)はこの型から自動判定
region_axis_id必須 地域軸(例 med9)。複数粒度で出せる場合はセミコロン区切り med9;muni。施設軸 facility も指定できる (例 #3「病院×医療圏のクロス集計」。選択肢は facilities.csv から自動導出=§2-1)
from_axis_id / to_axis_idflow型のみ・任意 フローの出発側/到着側の軸 。省略時は両方とも region_axis_id と同じ (従来どおりの医療圏→医療圏)。異なる軸を指定でき、例 from_axis_id=med9/to_axis_id=facility と書けば「住所地(医療圏)→受診先(施設)」のフロー を表現できる。列名も指定した軸に対応する(§3)
filter_axes任意 適用フィルタ軸。例 year;cancer;age。ここに無い軸のフィルタはこの指標では表示されない。values CSV の軸列はこの宣言から自動的に決まる (§3)。year を含む指標は values/{dataset_id}/{年度コード}.csv の年度別ファイル になる(年度はファイル名で表現し、year 列は持たない。§3)。year は年度分割の宣言であり axes.csv には定義しない(年度コードは YYYY=標準期間コード)
year_start任意(既定=04-01) 年度の開始月日 。04-01=年度(会計年度) /01-01=暦年 。ファイル名は同じ 2024 でも、年度か暦年かはこの欄でしか判別できない ——画面ラベルを「2024年度」「2024年」と自動で出し分ける ために使う。想定:DPCデータ・病床機能報告・救急搬送実態調査=04-01、将来推計人口(国勢調査系)・患者調査=01-01。これを書かないと(既定の年度扱いになり)1年ずれた比較が起きる ので、暦年ベースの指標には必ず 01-01 を明記すること
series_type任意(既定=actual) actual=実績 /projection=将来推計 。画面は推計を実績と区別して表示 する(凡例・線種など)。projection のときは values に time 列(対象年の標準期間コード)を必須 とし、ファイル名の年度は「その推計を発行した時点(ヴィンテージ)」 を表す(例 values/pop_proj/2025.csv =2025年に公表された推計。その中の time 列が 2030・2035… の対象年)。推計を作り直したら新しいヴィンテージのファイルを足す=過去の推計値もそのまま残り、後から「当時どう見込んでいたか」を追える
category_axis_idcomp型のみ必須 構成比の内訳(category 列)が参照する軸。例 treatment(手術/放射線/薬物/無治療)
value_columnspoint型のみ必須 施設CSVに持たせる指標列名をセミコロン区切りで列挙。例 beds;dpc_discharges
value_format / decimals必須 int/float/pct、小数桁数
reference_value任意 閾値線・基準線の値 (例「急性期拠点候補の閾値」「目標値」)。画面のグラフ・表にこの値の基準線を引く。空欄=線を引かない (既定)。※どの値を基準とするか、基準線を引くこと自体の妥当性は県との協議事項 であり、本仕様は「宣言された値を描く」仕組みだけを定めます
agg必須 地域を束ねた再集計の可否。sum(件数系=合算可)/none(率・日数系=合算不可、上位粒度は values に別行で用意)
disclosure_threshold必須 秘匿閾値(例 10)。0=秘匿不要(公表値のみ等)
source / updated_at / description必須 出典(例「DPCデータ(様式1)」)、更新日、画面の説明文(用語ヘルプに表示)
「シートマスタフォーマット基準でのデータ再現」= values/ の実CSVが dtype 別の列規約(§3)どおり であること。列仕様を個別に宣言するファイルはありません ——必要な列は datasets.csv の dtype・filter_axes・series_type・category_axis_id・value_columns・from_axis_id/to_axis_id から一意に導出され、検証ツール(§6)が実CSVと機械照合します。datasets.csv の1行と実データが常に一致 するよう更新してください(ずれていれば発行時にエラーになります)。
3 ③ 計測データ(values/)― 年度別ファイルと型別の列規約これが正・1行=1観測
型別の必須列規約(datasets.csv の宣言から一意に決まる。これが検証の照合元)
dtype 必須列(列順自由・列名一致) 例
single(地域単値){filter_axes の year 以外の軸列}, region, value, suppressed ※例 filter_axes=year;cancer;age なら cancer, age, region, value, suppressed(year はファイル名で表現し列に持たない )手術実施率・患者数・救急搬送件数・自給率
comp(構成比){filter_axes の year 以外の軸列}, region, category, value, suppressed ※category のコードは category_axis_id で指定した軸(例 treatment:手術/放射線/薬物/無治療)を参照。地域×フィルタ組合せ内で合計100(±0.5) 治療選択の構成
flow(ODフロー){filter_axes の year 以外の軸列}, from_region, to_region, value, suppressed ※from/to の列名は from_axis_id/to_axis_id で指定した軸に対応(既定は両方とも region_axis_id =列名 from_region/to_region )。異種軸を許容 し、to_axis_id=facility なら列は from_region, to_facility となって「地域→施設」のフローを表現できる受療動向(住所地→受診先の医療圏/施設)
point(施設点)facility_id, name, short_name(任意), region, lat, lon , {value_columns で宣言した指標列}, suppressed(任意) ※座標はWGS84の緯度経度 (現行デモのSVG座標から移行)施設別の病床数・DPC退院患者数・機器保有
規約駆動: values 各CSVの列は上表の規約から機械的に決まるため、列仕様を別ファイルで宣言する必要はありません 。検証ツール(§6)は「dtype 別の必須列がすべて存在し、余分な列がない」ことを照合します(列順は自由)。series_type=projection(将来推計)の指標は、上表の列に加えて time 列(対象年=YYYY)を持ちます ——推計の time は対象年 を表し、ファイル名の年度は推計のヴィンテージ(発行時点) を表します(下の「時間の扱い」参照)。また region_axis_id に施設軸(facility)を指定した指標では、region 列に施設コード(facilities.csv の facility_id)が入ります(例 #3「病院×医療圏のクロス集計」)。
# values/surg_rate/2024.csv(single型の例。年度はファイル名で表現し、行に year 列は持たない)
region,cancer,age,value,suppressed
tokatsu_s,all,all,61.0,
kaiso,lung,85,,1 ← 秘匿:値は空欄+suppressed=1
# values/treatment_mix/2024.csv(comp型)のヘッダ
region,category,value,suppressed
# values/patient_flows/2024.csv(flow型・既定=同一軸)のヘッダ
from_region,to_region,value,suppressed
# values/flows_to_facility/2024.csv(flow型・異種軸 from_axis_id=med9/to_axis_id=facility)のヘッダ
from_region,to_facility,value,suppressed
# values/pop_proj/2025.csv(series_type=projection。ファイル名 2025 =推計のヴィンテージ、time=対象年)
time,region,scenario,value,suppressed
2030,tokatsu_s,base,412000,
2030,tokatsu_s,low,405000,
年度分割の理由と追記オンリー原則: 年度で切り替える指標は「フォルダ=指標(dataset_id)、ファイル=年度(納品単位)」に分割し、年度更新はフォルダに新年度ファイルを追加して新版パックを発行するだけ 。確定した過去年度のファイルは変更しない(追記オンリー) 。検証ツールの「版間差分照合」(§6)が前版との SHA-256 比較で過去年度ファイルの不変を機械照合するため、「過去データを改変していないこと」を機械的に証明できる (監査上の利点)。なお進行中の年度のファイルは版内更新されうる (年度確定前の訂正・追加)。
時間の扱い(年ベース): 本事業で提供されるデータは年ベースのみ (県確認済み・令和8年7月)。したがって時間の粒度は年に限定 し、月次・週次の仕組みは仕様に含めない。時間コードは標準期間コード で YYYY と表記し、表示名(「2024年度」「2024年」)はアプリが自動生成 する——暦から機械的に決まるものに誤記の窓口を作らないため(国際標準 SDMX の TIME_PERIOD(ISO 8601系)・e-Stat の時間軸も固定的コード扱い)。ファイル分割の単位は年(納品単位) で統一し、年に依存しないデータ(施設マスタ等)は単一ファイル。曜日・時間帯は「時系列の粒度」ではなく年内の内訳集計軸 なので、時間コードではなくドメイン軸 として axes.csv に置く(§2-1。分析項目 #18「時間帯別曜日別」・#20/#21「夜間22-8時」が該当)。
年度か暦年かは year_start で宣言する: ファイル名の 2024 は年度(4月始まり)とも暦年(1月始まり)とも読めるため、datasets.csv の year_start(04-01=年度/01-01=暦年、既定 04-01)で判別し、画面ラベルを「2024年度」「2024年」と自動で出し分ける。暦年ベースの指標にこれを書き忘れると、1年ずれた比較が起きる (§2-2)。
シナリオ機能の方針(将来推計): 将来推計のシナリオ機能は静的図表として提供 する(確定)。可変前提を職員がその場で動かすスライダー(param 型)は追加しない 。シナリオは axes.csv のドメイン軸 scenario として値集合(例 base/high/low)を定義し、分析班が前提別の推計値をあらかじめ計算して values に持たせる (scenario を filter_axes に含め、series_type=projection とする)。これにより4型(single/comp/flow/point)を維持したまま全分析項目を収容 でき、前提の妥当性の判断もアプリではなく分析班側に残る。
データ作成上の規約 内容
行の一意性 dim列の組合せは重複不可(重複=検証エラー)
全組合せの明示 フィルタ軸で宣言した組合せは原則全行を出力 (値なし=空欄行)。行ごと省略すると「データなし」と「秘匿」の区別がつかないため
率の再集計禁止 agg=none の指標は、上位粒度(県計・医療圏計)の値も分析側で算出して values に行として持たせる(アプリは率を足し上げない)
秘匿処理の責任分界 秘匿はパック発行前に分析側で完結 させる。アプリは suppressed 表示を行うだけで、閾値判定・二次秘匿(合計からの逆算防止)は行わない
4 ① 地図データ(geo/)地域分けの後入れに対応
項目 仕様
形式 TopoJSON (Topology 1オブジェクト)。ファイル名={axis_id}.topojson(例 med9.topojson)
座標系 WGS84(EPSG:4326)。投影はアプリ側で実施
feature属性 properties.code(axes.csv の code と完全一致・結合キー)/properties.label(予備表示名)
作成元・簡略化 国土数値情報 行政区域データ(N03)を市町村→医療圏に融合(dissolve)。位相を保持したまま簡略化し、1ファイル1MB以下目安 (市町村版は3MB以下)
新しい地域分け axes.csv に新 axis_id 一式+geo/ に同名 TopoJSON を追加し、対象 datasets.csv の region_axis_id に追記するだけで画面に選択肢が出る
5 manifest.json検証ツールが自動生成
{
"schema_version": "1.0", // 本仕様書の版(§8の互換ルールに従う)
"pack_version": "v2027.04", // パック版数(画面フッタに表示)
"issued_at": "2027-04-10",
"issuer": "千葉大学医学部附属病院 データ分析班",
"files": [ {"path":"master/axes.csv","sha256":"…","rows":123},
{"path":"values/surg_rate/2024.csv","sha256":"…","rows":540}, … ],
"notes": "2027年度当初版。がん5指標を2026年度実績に更新、新指標『下り搬送困難率』追加。"
}
手書き不要: manifest は検証ツール(§6)が検証合格時に自動生成します。分析班が手で書くのは master/・values/・geo/ と notes 文のみです。
6 パック検証ツールと発行手順エラーのまま発行できない
検証項目(自動チェック・8分類)
チェック 内容
規約照合 values 各CSVの列名・型が dtype 別の必須列規約(§3) と一致するか(列順自由・不足/余分な列はエラー。年度別ファイルに year 列が残っていればエラー )
コード整合 dim列の全値が axes.csv に存在するか(未知コード・期限切れコードの検出)。ただし施設軸(facility)を使う指標の照合先は axes.csv ではなく values/facilities.csv の facility_id (施設の選択肢は facilities.csv から自動導出=§2-1)。時間(ファイル名の年度・time 列)は axes.csv ではなく標準期間コードのパターン照合 (YYYY)。あわせて year_start の整合 (04-01/01-01 以外はエラー。未記載は年度扱いの既定で解釈されるため暦年系指標には警告)と、series_type=projection の指標に time 列(対象年)があること を照合
地図結合 地域軸の全コードが geo の properties.code と1対1で結合するか(結合率100%)
一意性・網羅性 dim組合せの重複なし/宣言組合せの欠落行の警告。あわせて axes.csv の sort が同一 axis_id 内で重複していないか (重複すると並びが実行環境まかせになり、年度によって順序が変わる再現しにくい不具合になるためエラー。欠番は許容 =刻み幅は自由)
秘匿 suppressed=1 の行に値が残っていないか/閾値未満の実数値が混入していないか。対象は4型すべて(single・comp・flow・point) ——構成比(comp)の内訳区分や施設別の指標列(point)も、実数(分子)が閾値未満なら秘匿対象になりうるため
数値規約 構成比の合計100±0.5/率の0–100範囲/桁区切り文字混入。ただし comp 型で秘匿行(suppressed=1)を含む地域・年度(×フィルタ組合せ)は「合計100±0.5」チェックを免除 し、警告として記録する(秘匿分が欠けるため合計は100に満たない)。※注意:1区分のみを秘匿しても合計から逆算できる ため、二次秘匿(もう1区分も併せて秘匿する等)の要否は分析班の判断 とする(アプリ・検証ツールは判定しない=§3「秘匿処理の責任分界」)
manifest ファイル一覧・SHA-256 の自動生成と、既発行版との版数重複チェック
版間差分照合 前版パックとの SHA-256 比較で、確定した過去年度ファイルが変更されていないこと を照合(追記オンリー原則)。変更があれば「過去データの訂正」として manifest の notes への明記を要求(警告)⇒ 過去データを改変していないことを機械的に証明できる (監査上の利点)。進行中の年度(未確定年度)のファイルの更新は対象外
発行〜受け渡し
集計・秘匿処理 → master/values/geo を更新(年度更新は values/{dataset_id}/ に新年度ファイルを追加するだけ 。確定した過去年度のファイルは変更しない)
validate-pack datapack_v2027.04/ を実行(エラー0件で manifest 自動生成・zip化。エラーがあれば行番号つきレポート)
zipを県指定のファイル転送サービス でアップロード(予備:物理メディア)。GitHub経由は使わない (県回答Q4-2)
県担当者へ版数・変更点(manifest の notes)を連絡 → 県側はサーバの data/ を差し替え
7 現行サンプルデータからの移行対応いま何があるか
現行(apps/shared/data/ の6CSV) 本仕様での置き場所 移行時の変更点
regions.csvmaster/axes.csv(axis_id=med9)列名変更のみ
measures.csvmaster/datasets.csvdtype・region_axis_id・agg・秘匿閾値の列を追加
region_values.csv(ワイド11列)values/{dataset_id}/{年度コード}.csv に指標別・年度別分割(ロング化)フォルダ=指標・ファイル=年度へ(year 列はファイル名で表現)。amb の「がん種別なし」は filter_axes 宣言で表現
treatment_mix.csvvalues/treatment_mix/{年度コード}.csv(comp型)ワイド4列→ category 列のロング形式へ。年度別ファイルに分割
facilities.csvvalues/facilities.csv(point型)map_x/map_y(SVG座標)→ lat/lon(WGS84)へ変換 。年度に依存しないため単一ファイルのまま
patient_flows.csvvalues/patient_flows/{年度コード}.csv(flow型)suppressed 列を追加し、年度別ファイルへ分割(year 列は持たない)
(なし) geo/med9.topojson・geo/muni.topojson国土数値情報N03から新規作成(現行デモのSVGパスは廃止)
8 変更管理(仕様そのものを変えたいとき)schema_version
変更の種類 版数の扱い 例
後方互換の追加(新しい任意列・新しい軸・新しい dtype の追加) マイナー更新(1.0→1.1)。旧アプリでも既存部分は表示可 「時系列型」を将来追加
破壊的変更(必須列の変更・コード体系変更) メジャー更新(1.x→2.0)。アプリ更新とパック更新を同時に搬入 医療圏コード体系の全面変更
運用ルール 仕様変更の要望は分析班⇔開発側の定例で合意→本書を改版→検証ツールを同時更新(ツールが常に仕様の実体)
改訂記録 令和8年7月改訂:formats.csv を廃止し規約駆動へ簡素化(実装前の仕様改訂のため schema_version は 1.0 のまま) 令和8年7月改訂:values を年度別ファイル分割(追記オンリー)へ変更、時間粒度を標準期間コード(ISO 8601/SDMX 準拠の freq・time 列)で一般化 令和8年7月改訂:year_start(年度/暦年)・series_type(実績/推計)・reference_value(基準線)・from_axis_id/to_axis_id(flowの異種軸)を追加。曜日・時間帯・シナリオを循環的分類軸/ドメイン軸として明記、施設軸は facilities.csv から自動導出。秘匿検証を comp・point へ拡張し、秘匿を含む comp の合計チェックを免除。週次は ISO週date と明記(実装前の仕様改訂のため schema_version は 1.0 のまま) 令和8年7月改訂:提供データが年ベースのみと県で確定 したため、freq(A/M/W)欄・月次/週次の time 列・ISO週規約を削除 し、時間の粒度を年に限定。将来、年より細かい粒度が必要になった場合は後方互換の追加としてマイナー更新(1.0→1.1)で規定する (その際は「ISO週は月にネストせず、月の第n週は暦から導けない」等の論点があるため、採用する週の定義を明記すること)
令和8年度 千葉県地域医療提供体制データ分析チーム構築支援事業 千葉大学医学部附属病院 企画情報部 / 資料一覧へ戻る / 県向け:システム構成案 ・技術資料:技術選定書