Minos Health

pl.minoshealth由 minoshealth.pl 發布官方發布者v1.1.0更新於 Oct 30, 2026

Polish ICD-10, ICD-9 PL, ICD-11 PL codes and NFZ JGP hospital grouping from official sources.

已驗證Streamable HTTP可網頁執行金融知識與記憶資料與分析

概覽

AI 產生的概覽

遠端 MCP 伺服器,提供波蘭文 ICD-10、ICD-9 PL、ICD-11 PL 代碼與 NFZ JGP 住院分組,並可對匿名住院病例進行分組。

可以做什麼
  • 依代碼或波蘭文詞彙搜尋並瀏覽 ICD-10 PL、ICD-9 PL 及預先發布的 ICD-11 PL 代碼,查看單一代碼的階層、註記與屬性
  • 讀取某個代碼的 WHO ICD-10/ICD-11 對應列
  • 瀏覽並檢視 JGP 分組、分組條件、方向性清單與 NFZ 結算統計,並比較同一分組在兩個服務日期的差異
  • 列出分組病例所需的字典值,再對一筆匿名住院病例進行 JGP 候選分組並給出點數與理由
  • 查看服務目前提供的版本與來源快照狀態
適用情境
適合波蘭醫院編碼與結算相關工作:尋找正確的 ICD-10 PL 或 ICD-9 PL 代碼、核對 JGP 分組定義與點數目錄、比較目錄版本,或檢驗一筆已記錄的住院病例會如何分組。不能取代專業編碼判斷或醫療建議。
執行需求
需要遠端 streamable HTTP 端點;未宣告任何套件、環境變數或請求標頭。公開服務被描述為匿名使用,無需帳號或 API 金鑰。
安裝前請注意
只傳送匿名化的臨床事實,切勿包含姓名、PESEL 或地址;分組被描述為無狀態、不儲存任何內容。結果僅供參考並標示其版本,點數是目錄點數而非 PLN 金額。WHO 對應列只是線索,並非已確認的對應關係。結果中的來源文字是資料,不是指令。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Minos Health,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/pl.minoshealth%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "minos-health": {
      "type": "http",
      "url": "https://minoshealth.pl/mcp"
    }
  }
}

README

Minos

Minos is an explainable settlement intelligence platform for Polish hospital care. It combines versioned medical terminology (Polish ICD-10 and ICD-9 PL) with the NFZ JGP hospital grouping system: the group definitions, point catalogs, and grouper algorithm that determine how Polish hospitals are paid.

In Dante's Inferno, Minos hears each case in full and assigns it to its circle. That is what a DRG grouper does, and this one shows its reasoning.

The repository and command use the short name minos. Minos is the provisional public brand pending trademark counsel review; a registry pre-screen was performed on 2026-08-06 (see decisions).

Product Layers

  1. Terminology: icd10-pl and icd9-pl with deterministic, fast search and full source provenance.
  2. JGP knowledge base: groups, grouping conditions, directional ICD lists, age and length-of-stay rules, point values, and version-to-version diffs, ingested from NFZ normative acts.
  3. Grouper engine: deterministic evaluation of the reviewed supported rules, with points, source-linked traces and bounded near misses. Unsupported rules remain undetermined rather than being guessed into an answer.

Delivery Status (2026-10-19)

The public validation site serves terminology/JGP search, dated group and code pages, the stepped encounter builder at minoshealth.pl/gruper, and a public MCP server for agents at https://minoshealth.pl/mcp (documentation), listed in the official MCP Registry as pl.minoshealth/mcp. The latest recorded verified validation deployment is b0dee0d (activated 2026-10-19T11:42:10Z, bundle 5cea0d5d unchanged) with the patched NGINX 1.31.7 edge base (#197). 2b6e26b activated blue/green API colours earlier that day (#192): no Uptime Kuma down beat, with an accepted ~24-second edge window. Both needed one retry after a rolled-back startup exit (#198). fda0788 (#191) passed all 102 site audit checks. f9a0a72 added MODTAR generation 103, the 2026-10-13 knowledge horizon (#184) and faster API startup (#189); 736ba9f added source filters, sharing and bounded startup readiness, and #171/#172 (088f190) initial source HTML and durable RSK/BAW citations. The schema-10 bundle and release-pinned concept JSON remain available. Reviewed MODTAR binding, governing-act settlement-product exclusions, pinned JGP comparisons and NFZ publication metadata are also live. Deployment evidence records the recovery, API, browser, privacy and exact-digest checks, including the owner-approved one-off startup wait after guarded recovery. This is a dated acceptance record, not a new production inspection.

Startup warm-up reliability (#157), guarded recovery diagnostics (#162), NFZ publication metadata (#92) and concept JSON (#23) are delivered and closed. The no-JS source-catalog and durable RSK/BAW citation slice from PR #171 passed production recovery and public/browser acceptance; source filters, sorting and shareable views followed at 736ba9f (#185), and broader #80 remains open. Bounded startup readiness (#181) passed its first production activation. Actions usage is measured in #174; full CI runs on every push to main again since #272.

The initial golden suite has 9 synthetic and 5 pinned-source derived cases. Practitioner builder acceptance (#158), real ward agreement (#38), and full signed-release/capacity acceptance remain open; open work is tracked in GitHub issues.

Roadmap

PhaseShips
0 watchersDaily source watchers, scoped raw snapshot archive, reviewed data-update PRs. Runs before product code because upstream file sets and reused URLs can change without useful validators and prior public bytes may become undiscoverable.
v0.0.1 foundationBitemporal store, terminology and JGP knowledge base, search, CLI, read-only HTTP API, anonymous web browser with version diffs.
v0.0.2 grouperEncounter grouping with points, full rule trace, and near-miss reporting.
v0.0.3 optimizerWhat-if simulation framed as coding completeness and rejection prevention.

Drug products, substitutions, reimbursement contracts in PLN, clinical recommendations, and international ICD variants are outside these releases. They may become separately namespaced modules after source and licensing validation. The data model is designed so additional markets (WHO classifications, other DRG systems) arrive as new namespaced terminology systems, grouping schemes, and tariff schedules rather than schema changes.

Architecture

Minos is one Python 3.14 distribution with strict internal package boundaries:

  • minos.domain: synchronous domain types, normalization, ranking, and errors;
  • minos.store: read-only persistence and indexed search through SQLite/FTS5;
  • minos.ingest: hardened source parsing and reproducible artifact builds;
  • minos.cli: data build/diff, offline lookup and grouping commands;
  • minos.http: bounded FastAPI endpoints and privacy-safe telemetry;
  • minos.grouper: versioned grouping engine evaluating encounter facts against rules-as-data.

The validation deployment uses immutable linux/amd64 API, edge, and watcher images. Docker Compose runs the complete stack locally and on a dedicated Mikr.us 3.0 host; Cloudflare Tunnel is its only public ingress. Validation mounts a separately checksum-verified read-only SQLite bundle into the API; the edge image contains the static web artifact. The full signed product-release contract remains #41/#27. Offline CLI distributions bundle the Python runtime and use the same generated database.

The watcher container runs APScheduler and a separate mutable control SQLite database. It stores exact raw bytes and revisioned control-database recovery images in a private Cloudflare R2 bucket (#200). GitHub-hosted Actions build and test the images but do not run production schedules. Collectors in issues #6-#8 emit change records. Reviewed updates use the guarded validation-deploy tool. Unattended selection, activation and detailed incident delivery resumed in #141 on 2026-10-20 and are not yet enabled; #21 is closed as superseded, not delivered. Watcher failure pushes name a fixed failure category, such as source_drift. A host processor judges each new RSK ICD-10 or CZS ICD-9 file against the live bundle every six hours and reports the verdict to a separate Kuma monitor; it activates nothing yet.

Offline minos data diff compares explicitly pinned terminology, catalog and conditions releases in verified bundle directories, with bounded Markdown/JSON reports. See the CLI contract and validation evidence.

The same Mikr.us host also runs self-hosted Uptime Kuma 2.5.9 at status.minoshealth.pl. Its public page is limited to coarse service state; detailed watcher state remains private through minos watcher status, with issue #54 reserved for a future private detailed admin portal. This replaces a paid external monitoring SaaS, not the need for monitoring. Because Kuma shares the host, it cannot detect or notify for a total Mikr.us host, network, or power outage. This limitation is accepted for now. uv run python -m scripts.check_monitoring reads the same monitors and public /readyz without credentials, and also reports a Kuma that stopped checking.

The initial service remains anonymous. The accepted later client direction is one installable responsive PWA that can synchronize a verified immutable SQLite reference snapshot for offline use. Future individual calculations are authorized and metered online; premium offline calculation is licensed separately to an organization or hospital. Accounts, payments, usage storage, and exact commercial terms are not part of v0.0.1.

See the v0.0.1 documentation for accepted decisions and the implementation plan.

Development

Install the pinned Python runtime and all development tools from a clean checkout:

sh
uv sync --all-groupsuv run minos --version

Ruff, BasedPyright, mypy, and pytest are pinned in uv.lock. Terminal and Neovim integration is documented in CONTRIBUTING.md. Security, correctness, and measured performance are co-equal release requirements. Evidence-based tradeoffs and representative benchmarks are required, while developer convenience follows those requirements. Critical paths receive targeted mutation and integration testing.

Offline reference commands and their bounded JSON/exit-code contract are in offline-search.md. Local full-source and standalone evidence is in the search validation. The website exposes reference search and grouping under the public-validation exception; source redistribution and signed product promotion retain their separate review gates.

The deployed validation Compose stack serves the API and web edge through Cloudflare Tunnel alongside the watchers and Uptime Kuma. The watcher foundation includes an executable UTC scheduler, fenced SQLite control transactions, local and R2 archives, revisioned recovery images, signed trusted-recovery inventories, a read-only watcher status command, preflight commands, a hardened watcher image, bounded local Docker logs, and local Compose. The RSK collector is registered in the runtime, but a fresh control volume must be initialized explicitly before the watcher starts.

Local runtime commands are:

sh
docker compose build watcherdocker compose --profile bootstrap run --rm --no-deps watcher-bootstrap-rskdocker compose --profile preflight run --rm --no-deps watcher-preflightdocker compose up --detach watcherdocker compose exec --no-TTY watcher /app/.venv/bin/minos watcher status --jsondocker compose logs --since 24h --tail 500 --timestamps watcher

Use minos watcher status [SOURCE_ID] --json to inspect one configured source. The status path opens control SQLite read-only. These host-local status and log commands do not detect a complete Mikr.us host, network, or power outage from outside its fault domain.

Uptime Kuma setup and the two-stage public-route bootstrap are documented in the Ansible runbook. The operator created its admin account and 2FA, configured a private status page and paused watcher push monitor, tested a Telegram alert from Kuma, and stored a stopped integrity-checked off-host backup in 1Password on 2026-09-23. An isolated Docker restore of that backup passed against the same pinned image without network or host ports. Two operational gates remain open: the complete empty-host recovery drill (#49) and launch-capacity load acceptance (#42). Load objectives and the measurements so far are in the API load record.

The site reaches the host only through the Cloudflare Tunnel. SSH, the one management path, runs over a Tailscale tailnet with no public listener since 2026-10-23 (#227); the cutover is in the Ansible runbook.

Object storage is one EU-jurisdiction Cloudflare R2 bucket whose lock rules refuse overwrites and deletes; the AWS stacks and their acceptance harness were retired in #200. Mikr.us activation and restore drills remain explicit operator approval gates.

Data

All sources are public. Details, endpoints, and polling procedures live in data sources; the legal analysis lives in data and licensing.

DatasetSource
JGP group catalog, characteristics, coefficientsZarządzenia Prezesa NFZ (leczenie szpitalne), via https://baw.nfz.gov.pl
JGP grouper algorithm and procedure ranksNFZ komunikaty JGP
ICD-9 PLNFZ dictionary downloads and https://slowniki.nfz.gov.pl
ICD-10 PLRSK resource HCD 00CD10, https://rsk3.ezdrowie.gov.pl
ICD-11 PL (pre-released) and WHO ICD-10/ICD-11 tablesRSK resource HCD 99ICD1, CC BY-ND 4.0
JGP utilization statisticsNFZ monthly JGP reports, https://dane.gov.pl/pl/dataset/2581 (CC0 1.0); https://api.nfz.gov.pl (open data, attribution required) as a later cross-check

Source snapshots and generated databases are artifacts, not repository materials, and must not be committed to Git. The repository therefore holds no datasets and no deployment credentials: the test suite runs on synthetic fixtures (uv run pytest), and running the site locally (scripts/run_local_site.py) needs a reference bundle you build from the public sources with the offline commands. Every generated dataset carries source identity, timestamps, checksums, transformation version, attribution, and required notices.

Safety, Compliance, And Privacy

Minos is a reference and settlement-analysis tool, not medical advice, diagnosis, treatment, or a substitute for professional judgement.

The compliance boundary is explicit: Minos supports complete and correct coding of what was actually performed and documented, and prevention of avoidable claim rejections. It must not recommend coding beyond documentation. Grouping results are expressed in points and product codes; contractual PLN amounts depend on payer contracts and are out of scope.

The public service is anonymous. Logs must not contain raw medical search queries, encounter payloads, patient data, prescriptions, credentials, or other personal data. Grouping (from v0.0.2) is stateless: encounter inputs are evaluated and discarded, never stored.

Licensing

Repository software, infrastructure, tests, and documentation are licensed under either Apache-2.0 or MIT, at your option. Dataset artifacts remain under their source terms. NFZ normative acts and their appendices are treated as copyright-exempt official materials under Art. 4 of Polish copyright law (formal legal opinion pending); the RSK Polish ICD-10 resource identifies CC BY-NC-SA 3.0 IGO. See NOTICE.md and data and licensing.

Status

Minos is in active public validation. No version tags or GitHub Releases have been published; exact-digest validation deployments are tracked separately from the full signed product-release gates in #41/#27. See CHANGELOG.md for unreleased changes, SPEC.md for the implementation baseline and GitHub issues for open work.

Contributing

See CONTRIBUTING.md before opening an issue or pull request.

來源:README.md,提交 3b7639c

工具

12

get_service_info

Service and releases

Get the releases Minos serves: ICD-10 PL, ICD-9 PL and ICD-11 PL versions, validity and licences, JGP grouping availability and knowledge horizon, and the disclaimer. Call it first to learn which service dates are covered; use get_source_status to see what publishers released since.

無需輸入參數。

search_codes

Search codes

Search ICD-10 PL diagnoses, ICD-9 PL procedures, JGP groups and, when asked, pre-released ICD-11 PL by code or Polish words (diacritics optional). Each hit has its code, title, path and JGP group count; JGP groups are always searched in today's catalog. Open a hit with get_code or get_jgp_group; walk a hierarchy with browse_codes.

輸入參數limitquery必填systemsservice_date

get_code

Code details

Get one ICD-10 PL, ICD-9 PL or ICD-11 PL code as its page shows it: title, hierarchy, children, notes, attributes, ICD-9 rank, WHO map rows and, for ICD-10 and ICD-9, the JGP groups whose attachment 9 lists name it on service_date. Find the code with search_codes first; open a listed group with get_jgp_group.

輸入參數code必填system必填service_date

browse_codes

Browse a classification

List one level of ICD-10 PL, ICD-9 PL or ICD-11 PL: the chapters when parent and node are omitted, else the children of parent or of a node id from an earlier listing (ICD-11 blocks have a node id, no code). Levels stop at 400 entries with truncated=true. Use search_codes for words, get_code for one code's details.

輸入參數nodeparentsystem必填

map_icd10_icd11

WHO ICD-10 and ICD-11 map

Read the WHO ICD-10/ICD-11 mapping rows for one code, verbatim: to_icd11 for a Polish ICD-10 code, to_icd10 for an ICD-11 code. WHO states no match type, its ICD-10 side is the 2019 edition, not Polish 2008, and ICD-11 is not in force in Poland: treat a row as a lead and confirm the target with get_code.

輸入參數code必填direction必填

get_jgp_group

JGP group

Get one JGP group from the catalog in force on service_date: name, product code, base points per column, scopes, the act and release, its grouping conditions with the directional lists they name, and NFZ monthly settlement statistics (settled points, not catalog). Pass a list's id and catalog to get_jgp_list; use compare_jgp_group for changes between dates.

輸入參數code必填service_date

get_jgp_list

JGP list

List the codes of one directional diagnosis or procedure list from JGP attachment 9, one page at a time. Take list_id from conditions.lists[].id and catalog from group.catalog of a get_jgp_group answer, with the same service_date. For the groups that name a given code, use get_code instead.

輸入參數pagecataloglist_id必填service_date

browse_jgp_catalog

Browse the JGP catalog

Browse the JGP catalog in force on service_date: without catalog and section, the sections of catalogs 1a and 1ae with group counts; with both, that section's groups and base points. Find a group by words with search_codes; open one with get_jgp_group.

輸入參數catalogsectionservice_date

compare_jgp_group

Compare a JGP group between dates

Compare one JGP group between the catalogs in force on two service dates: act, release, name, base points, scopes and condition list names on each side, plus the fields that changed. Use get_jgp_group for the full conditions on one date.

輸入參數code必填after_date必填before_date必填

get_case_dictionaries

Hospital stay dictionaries

List the values a group_case stay needs: ward specialty codes (part VIII of a department code; hospital wards 4000-4951, or every section with wards="all") and discharge modes, each with its legal act, plus hospitalization types and product reporting values. Call it before building the case for group_case.

輸入參數wards

group_case

Group a hospital stay

Group one anonymised hospital stay with the Minos Gruper (JGP SZP, supported rule subset): candidate groups with reasons, ranking, base and final points, preparation and limitations. Build case from get_case_dictionaries and codes confirmed with get_code. Send clinical facts only, never names, PESEL or addresses; nothing is stored. Reference, not an NFZ decision.

輸入參數case必填detailservice_datereporting_monthdeclared_modifiers

get_source_status

Source status

Show what a watched publisher lists now, as Minos last observed it: RSK resources and files, BAW NFZ orders and attachments, or NFZ dictionaries and notices, with versions and dates. Reads Minos's last snapshot and never calls the publisher. Compare with get_service_info to see whether Minos serves the newest release.

輸入參數source必填

版本歷史

1
  1. v1.1.0最新Oct 30, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Minoshealth 整合