{"openapi":"3.1.0","info":{"title":"KodeMed DataServer API","description":"Classification Data Server API for Swiss Medical Coding.","contact":{"name":"Mieres IT Support","email":"support@kodemed.ch"},"license":{"name":"Proprietary","url":"https://kodemed.ch/license"},"version":"2026.5.15.59502"},"servers":[{"url":"","description":"DataServer"}],"security":[{"openIdConnectAuth":[]}],"tags":[{"name":"Thesaurus","description":"Unified Classification Search & Enrichment API"},{"name":"Import","description":"Classification data import management"},{"name":"DRG Catalog","description":"Multilingual DRG / PCG labels from the Fallpauschalenkatalog"},{"name":"Admin","description":"Administrative operations for managing classification data"},{"name":"Zusatzentgelt","description":"Match patient case trigger codes to imported ZE catalogue entries"},{"name":"Health","description":"Health check endpoints"}],"paths":{"/api/zusatzentgelt/match":{"post":{"tags":["Zusatzentgelt"],"summary":"Look up ZE entries for the given trigger codes under one tariff/version","operationId":"match","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"de"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MatchResponse"}}}}}}},"/api/thesaurus/{version}/validate":{"post":{"tags":["Thesaurus"],"summary":"Validate a set of codes","description":"Validate diagnoses and procedures against plausibility rules and POA requirements","operationId":"validateCodes","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ValidationResponse"}}}}}}},"/api/thesaurus/{version}/search":{"get":{"tags":["Thesaurus"],"summary":"Simple search (GET) with patient context","description":"Simple text search with optional patient context. By default excludes non-codable codes (chapters, blocks).","operationId":"simpleSearch","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Search query","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"type","in":"query","description":"Classification type: ICD10, CHOP","required":false,"schema":{"type":"string","default":"ICD10"}},{"name":"lang","in":"query","description":"Language: de, fr, it","required":false,"schema":{"type":"string","default":"de"}},{"name":"page","in":"query","description":"Page number","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"name":"size","in":"query","description":"Page size","required":false,"schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1}},{"name":"includeSynonyms","in":"query","description":"Include synonyms in search","required":false,"schema":{"type":"boolean","default":true}},{"name":"codableOnly","in":"query","description":"Only return codable entries (excludes chapters/blocks)","required":false,"schema":{"type":"boolean","default":true}},{"name":"ageYears","in":"query","description":"Patient age in years","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ageDays","in":"query","description":"Patient age in days (neonates)","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sex","in":"query","description":"Patient sex: M, F, X","required":false,"schema":{"type":"string","pattern":"^[MFXmfx]?$"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContextualSearchResponse"}}}}}},"post":{"tags":["Thesaurus"],"summary":"Contextual search with patient/coding context","description":"Search codes with optional filtering by patient age/sex and coding context (main diagnosis filtering)","operationId":"contextualSearch","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextualSearchRequest"}}},"required":true},"responses":{"200":{"description":"Search results","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContextualSearchResponse"}}}}}}},"/api/thesaurus/import/coding-rules/{version}":{"post":{"tags":["Thesaurus"],"summary":"Import coding rules from JSON file","operationId":"importCodingRules","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/thesaurus/import/chop-ai/{version}":{"post":{"tags":["Thesaurus"],"summary":"Import CHOP Alphabetical Index","description":"Import CHOP synonyms/search terms from the Alphabetical Index ZIP file. Available in DE, FR, IT. Enhances search by adding permuted text entries.","operationId":"importChopAlphabeticalIndex","parameters":[{"name":"version","in":"path","description":"CHOP version (e.g., 2026)","required":true,"schema":{"type":"string"}},{"name":"lang","in":"query","description":"Language: de, fr, it","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"ZIP file containing CHOP Alphabetical Index CSV"}},"required":["file"]}}}},"responses":{"400":{"description":"Invalid file or parameters","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}},"202":{"description":"Import started","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/import/begleitdokumente/{version}":{"post":{"tags":["Thesaurus"],"summary":"Import SwissDRG Begleitdokumente","description":"Import CCL, plausibility rules, POA requirements from ZIP file containing Begleitdokumente","operationId":"importBegleitdokumente","parameters":[{"name":"version","in":"path","description":"SwissDRG version (e.g., 15.0)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"ZIP file containing Begleitdokumente"}},"required":["file"]}}}},"responses":{"202":{"description":"Import started","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}},"400":{"description":"Invalid file","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/cache/reload/{version}":{"post":{"tags":["Thesaurus"],"summary":"Reload enrichment cache","description":"Reload the in-memory enrichment cache for a specific version. Use this after manual database changes or to refresh the cache.","operationId":"reloadCache","parameters":[{"name":"version","in":"path","description":"Version to reload","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/thesaurus/build/{version}":{"post":{"tags":["Thesaurus"],"summary":"Build/rebuild thesaurus index","description":"Build the thesaurus search index from ICD-10, CHOP, and ATC data. This should be run after importing classification data.","operationId":"buildThesaurus","parameters":[{"name":"version","in":"path","description":"Version to build","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/batch-lookup":{"post":{"tags":["Thesaurus"],"summary":"Batch code lookup (single type)","description":"Look up multiple codes of the same classification type in a single request","operationId":"batchLookup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchLookupRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/CodeSummary"}}}}}}}},"/api/thesaurus/batch-descriptions":{"post":{"tags":["Thesaurus"],"summary":"Batch code descriptions (multi-type)","description":"Look up descriptions for multiple codes of different types (ICD10, CHOP, ATC) in a single request. Much more efficient than individual requests when loading a case with many codes.","operationId":"batchDescriptions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDescriptionsRequest"}}},"required":true},"responses":{"200":{"description":"Descriptions returned","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchDescriptionsResponse"}}}},"400":{"description":"Invalid request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchDescriptionsResponse"}}}}}}},"/api/admin/thesaurus/schedule-rebuild/{version}":{"post":{"tags":["Admin"],"summary":"Schedule thesaurus rebuild with delay","description":"Schedules a thesaurus rebuild to run after a delay. Use this after imports to ensure all data is committed before rebuilding. Default delay is 5 seconds.","operationId":"scheduleThesaurusRebuild","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"delaySeconds","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":5}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/thesaurus/rebuild/{version}":{"post":{"tags":["Admin"],"summary":"Rebuild thesaurus for a version","description":"Deletes and rebuilds the thesaurus search index for a version. Run after reimporting classification data.","operationId":"rebuildThesaurus","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"async","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/references/extract/{systemCode}/{version}":{"post":{"tags":["Admin"],"summary":"Extract code references","description":"Extracts cross-references (dagger/asterisk, exclusions, inclusions) from classification texts. This populates the code_reference table which is used for related codes in search results. Run this AFTER importing classification data if related codes are not appearing.","operationId":"extractReferences","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/scan":{"post":{"tags":["Import"],"summary":"Trigger manual inbox scan","description":"Manually triggers a scan of the inbox folder to process classification files. This is the recommended way to import data in production. Files must be placed in year subdirectories (e.g., inbox/2026/) before triggering the scan. Requires authentication when auth is enabled.","operationId":"triggerScan","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"openIdConnectAuth":[]}]}},"/api/admin/import/scan/reset":{"post":{"tags":["Import"],"summary":"Force reset scan state if stuck","description":"Use this only if a scan appears to be stuck. This will allow new scans to start.","operationId":"forceResetScan","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/medications/excel":{"post":{"tags":["Import"],"summary":"Upload Medications Excel file","operationId":"uploadMedicationsExcel","parameters":[{"name":"year","in":"query","description":"Year for the data (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"language","in":"query","required":false,"schema":{"type":"string","default":"de"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/medications/csv":{"post":{"tags":["Import"],"summary":"Upload Medications CSV file","operationId":"uploadMedicationsCsv","parameters":[{"name":"year","in":"query","description":"Year for the data (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/lock/reset":{"post":{"tags":["Import"],"summary":"Force reset global import lock","description":"USE WITH CAUTION - Force releases the global import lock if stuck. Only use when an import process died without releasing the lock. If lock is held by a running thread, you may need to restart the service.","operationId":"forceResetLock","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"openIdConnectAuth":[]}]}},"/api/admin/import/inbox":{"post":{"tags":["Import"],"summary":"Upload file to inbox (DEPRECATED - use /inbox/{year} instead)","description":"This endpoint is deprecated. Use POST /inbox/{year} to specify the year explicitly.","operationId":"uploadToInboxLegacy","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"deprecated":true}},"/api/admin/import/inbox/{year}":{"post":{"tags":["Import"],"summary":"Upload file to inbox for hot-folder processing","description":"Files are placed in year-specific subdirectories (e.g., inbox/2026/)","operationId":"uploadToInbox","parameters":[{"name":"year","in":"path","description":"Year for the data (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/inbox/{year}/create":{"post":{"tags":["Import"],"summary":"Create year folder in inbox","description":"Creates a year subdirectory in the inbox folder if it doesn't exist","operationId":"createYearFolder","parameters":[{"name":"year","in":"path","description":"Year (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/icd10":{"post":{"tags":["Import"],"summary":"Upload ICD-10 ClaML ZIP file (German)","operationId":"uploadIcd10","parameters":[{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2026"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/icd10/{language}":{"post":{"tags":["Import"],"summary":"Upload ICD-10 ClaML ZIP file with language","description":"Import ICD-10 ClaML for specific language. German (DE) must be imported first, then FR/IT can add translations.","operationId":"uploadIcd10WithLanguage","parameters":[{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2024"}},{"name":"language","in":"path","description":"Language: de, fr, it","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/chop":{"post":{"tags":["Import"],"summary":"Upload CHOP CSV ZIP file","operationId":"uploadChop","parameters":[{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2026"}},{"name":"language","in":"query","required":false,"schema":{"type":"string","default":"de"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/artikelliste":{"post":{"tags":["Import"],"summary":"Upload Artikelliste Excel file","operationId":"uploadArtikelliste","parameters":[{"name":"year","in":"query","description":"Year for the data (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/import/addition-codes":{"post":{"tags":["Import"],"summary":"Upload Technisches Begleitblatt Excel file","operationId":"uploadTechnischesBegleitblatt","parameters":[{"name":"year","in":"query","description":"Year for the data (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/v1/license/status":{"get":{"tags":["license-controller"],"operationId":"status","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/thesaurus/{version}/unacceptable-hd":{"get":{"tags":["Thesaurus"],"summary":"Get codes unacceptable as main diagnosis","description":"Returns list of ICD-10 codes that cannot be used as Hauptdiagnose","operationId":"getUnacceptableMainDiagnoses","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThesaurusEntry"}}}}}}}},"/api/thesaurus/{version}/poa-required":{"get":{"tags":["Thesaurus"],"summary":"Get all codes requiring POA indicator","description":"Returns list of all ICD-10 codes that require POA specification in SPIGES","operationId":"getPoaRequiredCodes","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThesaurusEntry"}}}}}}}},"/api/thesaurus/{version}/info/{type}":{"get":{"tags":["Thesaurus"],"summary":"Get classification info for a type","description":"Returns basic information about a classification type (ICD10, CHOP, ATC)","operationId":"getClassificationInfo","parameters":[{"name":"version","in":"path","description":"Version","required":true,"schema":{"type":"string"}},{"name":"type","in":"path","description":"Classification type: ICD10, CHOP, ATC","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ClassificationInfo"}}}}}}},"/api/thesaurus/{version}/icd10/{code}":{"get":{"tags":["Thesaurus"],"summary":"Get enriched ICD-10 code details","description":"Returns complete thesaurus entry with CCL, POA, plausibility, DRG mapping, and multilingual texts","operationId":"getIcd10Code","parameters":[{"name":"version","in":"path","description":"Classification version (e.g., 2024)","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","description":"ICD-10 code (e.g., A41.0)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Code found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ThesaurusEntry"}}}},"404":{"description":"Code not found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ThesaurusEntry"}}}}}}},"/api/thesaurus/{version}/icd10/{code}/poa":{"get":{"tags":["Thesaurus"],"summary":"Get POA (Present on Admission) details for a code","description":"Returns POA requirement details including SPIGES field specification and U69 code mapping","operationId":"getPoaDetails","parameters":[{"name":"version","in":"path","description":"Classification version","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","description":"ICD-10 code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"POA details returned","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PoaDetailsResponse"}}}}}}},"/api/thesaurus/{version}/chop/{code}":{"get":{"tags":["Thesaurus"],"summary":"Get enriched CHOP code details","description":"Returns complete thesaurus entry with multilingual texts and synonyms","operationId":"getChopCode","parameters":[{"name":"version","in":"path","description":"Classification version (e.g., 2025)","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","description":"CHOP code (e.g., 39.61.11)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ThesaurusEntry"}}}}}}},"/api/thesaurus/statistics":{"get":{"tags":["Thesaurus"],"summary":"Get thesaurus statistics","description":"Get counts of codes and entries by classification type","operationId":"getStatistics","parameters":[{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Statistics"}}}}}}},"/api/thesaurus/search":{"get":{"tags":["Thesaurus"],"summary":"Unified search across all classification types with patient context","description":"Search ICD-10, CHOP, and ATC codes with a single query. Supports optional patient context (age, sex) for plausibility warnings. When filterPlausibility=true, codes incompatible with patient age are excluded.","operationId":"unifiedSearch","parameters":[{"name":"q","in":"query","description":"Search query (text or code)","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"type","in":"query","description":"Classification type filter: ICD10, CHOP, ATC (optional)","required":false,"schema":{"type":"string"}},{"name":"version","in":"query","description":"Version (default: 2026)","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language: de, fr, it","required":false,"schema":{"type":"string","default":"de"}},{"name":"codableOnly","in":"query","description":"Only return codable entries","required":false,"schema":{"type":"boolean","default":false}},{"name":"page","in":"query","description":"Page number","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"name":"size","in":"query","description":"Page size (max 100)","required":false,"schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1}},{"name":"ageYears","in":"query","description":"Patient age in years (for plausibility check)","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ageDays","in":"query","description":"Patient age in days (for neonates)","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sex","in":"query","description":"Patient sex: M (male), F (female), X (unknown)","required":false,"schema":{"type":"string","pattern":"^[MFXmfx]?$"}},{"name":"filterPlausibility","in":"query","description":"Filter out codes incompatible with patient age","required":false,"schema":{"type":"boolean","default":false}},{"name":"isMainDiagnosis","in":"query","description":"Is this for main diagnosis? (excludes unacceptable HD codes)","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/thesaurus/search/icd10":{"get":{"tags":["Thesaurus"],"summary":"Search ICD-10 codes with patient context","description":"Search ICD-10 diagnoses by text or code. Includes synonyms, inclusions, and exclusions. Supports patient context for plausibility warnings and filtering.","operationId":"searchIcd10","parameters":[{"name":"q","in":"query","description":"Search query","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language","required":false,"schema":{"type":"string","default":"de"}},{"name":"codableOnly","in":"query","description":"Only codable","required":false,"schema":{"type":"boolean","default":false}},{"name":"page","in":"query","description":"Page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"name":"size","in":"query","description":"Size","required":false,"schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1}},{"name":"ageYears","in":"query","description":"Patient age in years","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ageDays","in":"query","description":"Patient age in days (neonates)","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sex","in":"query","description":"Patient sex: M, F, X","required":false,"schema":{"type":"string","pattern":"^[MFXmfx]?$"}},{"name":"filterPlausibility","in":"query","description":"Filter incompatible codes","required":false,"schema":{"type":"boolean","default":false}},{"name":"isMainDiagnosis","in":"query","description":"Search for main diagnosis","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/thesaurus/search/chop":{"get":{"tags":["Thesaurus"],"summary":"Search CHOP codes","description":"Search CHOP procedure codes by text or code. Includes synonyms (type B entries).","operationId":"searchChop","parameters":[{"name":"q","in":"query","description":"Search query","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language","required":false,"schema":{"type":"string","default":"de"}},{"name":"codableOnly","in":"query","description":"Only codable","required":false,"schema":{"type":"boolean","default":false}},{"name":"page","in":"query","description":"Page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"name":"size","in":"query","description":"Size","required":false,"schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/thesaurus/search/atc":{"get":{"tags":["Thesaurus"],"summary":"Search ATC/Medication codes","description":"Search high-cost medications by name or ATC code. Filter by tariff system (SWISSDRG, TARPSY, ST_REHA).","operationId":"searchAtc","parameters":[{"name":"q","in":"query","description":"Search query","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language","required":false,"schema":{"type":"string","default":"de"}},{"name":"tariff","in":"query","description":"Tariff system filter (SWISSDRG, TARPSY, ST_REHA)","required":false,"schema":{"type":"string","default":"SWISSDRG"}},{"name":"page","in":"query","description":"Page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"name":"size","in":"query","description":"Size","required":false,"schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}}}}},"/api/thesaurus/rules/{type}":{"get":{"tags":["Thesaurus"],"summary":"List coding rules by type","description":"Returns all coding rules of a given type (ICD_FAQ, CHOP_FAQ, HANDBUCH_G, HANDBUCH_D, HANDBUCH_P, HANDBUCH_SD) for a version","operationId":"getCodingRules","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2026"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CodingRuleInfo"}}}}}}}},"/api/thesaurus/rules/detail/{ruleId}":{"get":{"tags":["Thesaurus"],"summary":"Get full details for a coding rule","operationId":"getCodingRuleDetail","parameters":[{"name":"ruleId","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2026"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CodingRuleInfo"}}}}}}},"/api/thesaurus/rules/code/{classificationType}/{code}":{"get":{"tags":["Thesaurus"],"summary":"Get coding rules for a specific code","operationId":"getCodingRulesForCode","parameters":[{"name":"classificationType","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","default":"2026"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CodingRuleInfo"}}}}}}}},"/api/thesaurus/import/chop-ai/{version}/{lang}/status":{"get":{"tags":["Thesaurus"],"summary":"Get CHOP Alphabetical Index import status","description":"Check the status of an ongoing or completed CHOP-AI import","operationId":"getChopAiImportStatus","parameters":[{"name":"version","in":"path","description":"CHOP version","required":true,"schema":{"type":"string"}},{"name":"lang","in":"path","description":"Language: de, fr, it","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/import/begleitdokumente/{version}/status":{"get":{"tags":["Thesaurus"],"summary":"Get Begleitdokumente import status","description":"Check the status of an ongoing or completed Begleitdokumente import","operationId":"getBegleitdokumenteImportStatus","parameters":[{"name":"version","in":"path","description":"SwissDRG version","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/code/{type}/{code}":{"get":{"tags":["Thesaurus"],"summary":"Get full code details with optional patient context","description":"Get complete details for a code including all texts, synonyms, inclusions, exclusions. When patient context is provided, includes plausibility warnings.","operationId":"getCodeDetails","parameters":[{"name":"type","in":"path","description":"Classification type: ICD10, CHOP, ATC","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","description":"Code","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language","required":false,"schema":{"type":"string","default":"de"}},{"name":"ageYears","in":"query","description":"Patient age in years","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ageDays","in":"query","description":"Patient age in days","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"sex","in":"query","description":"Patient sex: M, F, X","required":false,"schema":{"type":"string","pattern":"^[MFXmfx]?$"}}],"responses":{"404":{"description":"Code not found in thesaurus or medication database","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CodeDetails"}}}},"200":{"description":"Code found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CodeDetails"}}}}}}},"/api/thesaurus/cache/stats":{"get":{"tags":["Thesaurus"],"summary":"Get enrichment cache statistics","description":"View loaded versions and code counts in the in-memory enrichment cache","operationId":"getCacheStats","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/thesaurus/build/{version}/status":{"get":{"tags":["Thesaurus"],"summary":"Get thesaurus build status","operationId":"getBuildStatus","parameters":[{"name":"version","in":"path","description":"Version","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/thesaurus/autocomplete/{type}":{"get":{"tags":["Thesaurus"],"summary":"Autocomplete suggestions","description":"Get autocomplete suggestions for code or text input","operationId":"autocomplete","parameters":[{"name":"type","in":"path","description":"Classification type: ICD10, CHOP, ATC","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","description":"Query","required":true,"schema":{"type":"string","maxLength":500,"minLength":0}},{"name":"version","in":"query","description":"Version","required":false,"schema":{"type":"string","default":"2026"}},{"name":"lang","in":"query","description":"Language","required":false,"schema":{"type":"string","default":"de"}},{"name":"limit","in":"query","description":"Max results","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SuggestionResult"}}}}}}}},"/api/info":{"get":{"tags":["Health"],"summary":"Service info","description":"Returns service information","operationId":"info","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/health":{"get":{"tags":["Health"],"summary":"Health check","description":"Returns service health status","operationId":"health","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/drg-catalog/{tariff}/{version}/{code}/label":{"get":{"tags":["DRG Catalog"],"summary":"Get the multilingual label for a DRG / PCG code","operationId":"getLabel","parameters":[{"name":"tariff","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DrgLabelResponse"}}}}}}},"/api/admin/thesaurus/status/{version}":{"get":{"tags":["Admin"],"summary":"Get thesaurus build status","description":"Check the status of a thesaurus build operation","operationId":"getThesaurusStatus","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/stats":{"get":{"tags":["Admin"],"summary":"Get statistics for all versions","description":"Returns code counts and thesaurus entry counts for all classification versions","operationId":"getAllStats","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/VersionStats"}}}}}}}},"/api/admin/references/stats/{systemCode}/{version}":{"get":{"tags":["Admin"],"summary":"Get code reference statistics","description":"Returns statistics about extracted code references by type.","operationId":"getReferenceStats","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/status":{"get":{"tags":["Import"],"summary":"Get import system status and configuration","operationId":"getAllStatuses","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/status/{key}":{"get":{"tags":["Import"],"summary":"Get specific import status","operationId":"getStatus","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportStatusDTO"}}}}}}},"/api/admin/import/scan/status":{"get":{"tags":["Import"],"summary":"Check if a scan is currently in progress","operationId":"getScanStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/logs/{folder}/{year}/{filename}":{"get":{"tags":["Import"],"summary":"Get specific log file content (with year)","operationId":"getLogContentWithYear","parameters":[{"name":"folder","in":"path","required":true,"schema":{"type":"string"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/admin/import/logs/{folder}/{filename}":{"get":{"tags":["Import"],"summary":"Get specific log file content","operationId":"getLogContent","parameters":[{"name":"folder","in":"path","required":true,"schema":{"type":"string"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/admin/import/logs/success":{"get":{"tags":["Import"],"summary":"Get recent success logs","operationId":"getSuccessLogs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"year","in":"query","description":"Filter by year","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}}}}}},"/api/admin/import/logs/reports":{"get":{"tags":["Import"],"summary":"Get summary reports","operationId":"getReports","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}}}}}},"/api/admin/import/logs/error":{"get":{"tags":["Import"],"summary":"Get recent error logs","operationId":"getErrorLogs","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"year","in":"query","description":"Filter by year","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}}}}}},"/api/admin/import/lock/status":{"get":{"tags":["Import"],"summary":"Get global import lock status","description":"Check if the global import lock is held and by which import","operationId":"getLockStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/folders":{"get":{"tags":["Import"],"summary":"Get folder status and contents","operationId":"getFolderStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/import/folders/inbox/{year}":{"get":{"tags":["Import"],"summary":"Get inbox contents for specific year","operationId":"getInboxForYear","parameters":[{"name":"year","in":"path","description":"Year (e.g., 2026)","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/delete/{systemCode}/{version}/preview":{"get":{"tags":["Admin"],"summary":"Preview deletion","description":"Shows what will be deleted without actually deleting. Use before DELETE.","operationId":"previewDelete","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeleteStatistics"}}}}}}},"/api/admin/clean/{version}":{"get":{"tags":["Admin"],"summary":"Preview clean for a year/version","description":"Shows what would be deleted for ICD10, CHOP, and MEDICATIONS/ATC. Use DELETE with ?confirm=true to actually delete.","operationId":"previewCleanForVersion","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DeleteStatistics"}}}}}}},"delete":{"tags":["Admin"],"summary":"Clean all data for a year/version","description":"Deletes ICD10, CHOP, MEDICATIONS/ATC and thesaurus data for the specified version. Convenient shortcut for cleaning up before reimport. Use GET /api/admin/clean/{version} first to preview.","operationId":"cleanAllForVersion","parameters":[{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DeleteStatistics"}}}}}}}},"/api/thesaurus/cache":{"delete":{"tags":["Thesaurus"],"summary":"Clear all enrichment cache","description":"Clear the entire in-memory enrichment cache for all versions","operationId":"clearAllCache","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/thesaurus/cache/{version}":{"delete":{"tags":["Thesaurus"],"summary":"Clear enrichment cache","description":"Clear the in-memory enrichment cache for a specific version","operationId":"clearCache","parameters":[{"name":"version","in":"path","description":"Version to clear","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/references/delete/{systemCode}/{version}":{"delete":{"tags":["Admin"],"summary":"Delete code references","description":"Deletes all extracted code references for a classification version. Run this before reimporting if you want to regenerate references from scratch.","operationId":"deleteReferences","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/admin/delete/{systemCode}/{version}":{"delete":{"tags":["Admin"],"summary":"Delete classification version data","description":"Deletes ALL data for a classification version: codes, texts, and thesaurus entries. The version record is kept but empty. Use preview endpoint first to see what will be deleted.","operationId":"deleteVersion","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeleteStatistics"}}}}}}},"/api/admin/delete/{systemCode}/{version}/thesaurus-only":{"delete":{"tags":["Admin"],"summary":"Delete only thesaurus entries","description":"Deletes thesaurus entries for a version but keeps classification codes. Useful when you want to rebuild the thesaurus without reimporting codes.","operationId":"deleteThesaurusOnly","parameters":[{"name":"systemCode","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DeleteStatistics"}}}}}}}},"components":{"schemas":{"MatchRequest":{"type":"object","properties":{"tariff":{"type":"string"},"version":{"type":"string"},"codes":{"type":"array","items":{"type":"string"}}}},"MatchResponse":{"type":"object","properties":{"tariff":{"type":"string"},"version":{"type":"string"},"supplements":{"type":"array","items":{"$ref":"#/components/schemas/MatchedSupplement"}}}},"MatchedSupplement":{"type":"object","properties":{"zeCode":{"type":"string"},"chopAtcCode":{"type":"string"},"description":{"type":"string"},"restrictions":{"type":"string"},"amountChf":{"type":"number"},"tier":{"type":"string"},"causedByCode":{"type":"string"}}},"PatientContext":{"type":"object","properties":{"ageYears":{"type":"integer","format":"int32"},"ageDays":{"type":"integer","format":"int32"},"sex":{"type":"string"}}},"ValidationRequest":{"type":"object","properties":{"mainDiagnosis":{"type":"string"},"secondaryDiagnoses":{"type":"array","items":{"type":"string"}},"procedures":{"type":"array","items":{"type":"string"}},"patientContext":{"$ref":"#/components/schemas/PatientContext"}}},"ValidationResponse":{"type":"object","properties":{"valid":{"type":"boolean"},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/ValidationWarning"}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ValidationWarning"}}}},"ValidationWarning":{"type":"object","properties":{"type":{"type":"string"},"severity":{"type":"string"},"messageDe":{"type":"string"},"messageFr":{"type":"string"},"messageIt":{"type":"string"}}},"CodingContext":{"type":"object","properties":{"isMainDiagnosis":{"type":"boolean"},"existingCodes":{"type":"array","items":{"type":"string"}},"mainDiagnosisCode":{"type":"string"}}},"ContextualSearchRequest":{"type":"object","properties":{"query":{"type":"string"},"classificationType":{"type":"string"},"version":{"type":"string"},"language":{"type":"string"},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"patientContext":{"$ref":"#/components/schemas/PatientContext"},"codingContext":{"$ref":"#/components/schemas/CodingContext"},"includeSynonyms":{"type":"boolean"},"includeEnrichment":{"type":"boolean"},"codableOnly":{"type":"boolean"}}},"AgeConflict":{"type":"object","properties":{"type":{"type":"string"},"ageMin":{"type":"integer","format":"int32"},"ageMax":{"type":"integer","format":"int32"},"ageMinDays":{"type":"integer","format":"int32"},"ageMaxDays":{"type":"integer","format":"int32"},"descriptionDe":{"type":"string"},"descriptionFr":{"type":"string"},"descriptionIt":{"type":"string"}}},"CclInfo":{"type":"object","properties":{"operative":{"type":"string"},"medical":{"type":"string"},"operativePrimary":{"type":"integer","format":"int32"},"medicalPrimary":{"type":"integer","format":"int32"}}},"ContextualSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ThesaurusEntry"}},"totalResults":{"type":"integer","format":"int32"},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"byMdc":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}},"byCcl":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}},"byChapter":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"DrgMapping":{"type":"object","properties":{"mdcCodes":{"type":"array","items":{"type":"string"}},"drgsByMdc":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"PlausibilityInfo":{"type":"object","properties":{"isUnacceptableHd":{"type":"boolean"},"ageConflict":{"$ref":"#/components/schemas/AgeConflict"}}},"PoaRequirement":{"type":"object","properties":{"required":{"type":"boolean"},"type":{"type":"string"},"requiresU69":{"type":"boolean"},"spigesField":{"$ref":"#/components/schemas/SpigesPoaField"},"u69Mapping":{"$ref":"#/components/schemas/U69Mapping"},"instructionDe":{"type":"string"},"instructionFr":{"type":"string"},"instructionIt":{"type":"string"}}},"SpigesPoaField":{"type":"object","properties":{"fieldName":{"type":"string"},"validValues":{"type":"array","items":{"$ref":"#/components/schemas/SpigesPoaValue"}},"exempt":{"type":"boolean"}}},"SpigesPoaValue":{"type":"object","properties":{"value":{"type":"string"},"labelDe":{"type":"string"},"labelFr":{"type":"string"},"labelIt":{"type":"string"},"meaning":{"type":"string"}}},"SynonymEntry":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":"string"},"source":{"type":"string"},"isPreferred":{"type":"boolean"}}},"ThesaurusEntry":{"type":"object","properties":{"code":{"type":"string"},"classificationType":{"type":"string"},"version":{"type":"string"},"textDe":{"type":"string"},"textFr":{"type":"string"},"textIt":{"type":"string"},"textLongDe":{"type":"string"},"parentCode":{"type":"string"},"kind":{"type":"string"},"hierarchyLevel":{"type":"integer","format":"int32"},"codable":{"type":"boolean"},"usageMark":{"type":"string"},"inclusionDe":{"type":"string"},"exclusionDe":{"type":"string"},"noteDe":{"type":"string"},"codingHintDe":{"type":"string"},"ccl":{"$ref":"#/components/schemas/CclInfo"},"drgMapping":{"$ref":"#/components/schemas/DrgMapping"},"poa":{"$ref":"#/components/schemas/PoaRequirement"},"plausibility":{"$ref":"#/components/schemas/PlausibilityInfo"},"synonyms":{"type":"array","items":{"$ref":"#/components/schemas/SynonymEntry"}},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/ValidationWarning"}}}},"U69Mapping":{"type":"object","properties":{"poaYes":{"$ref":"#/components/schemas/U69Option"},"poaNo":{"$ref":"#/components/schemas/U69Option"},"poaUnknown":{"$ref":"#/components/schemas/U69Option"}}},"U69Option":{"type":"object","properties":{"spigesValue":{"type":"string"},"u69Code":{"type":"string"},"textDe":{"type":"string"},"textFr":{"type":"string"},"textIt":{"type":"string"},"autoAdd":{"type":"boolean"}}},"ImportStatusDTO":{"type":"object","properties":{"systemCode":{"type":"string"},"version":{"type":"string"},"language":{"type":"string"},"status":{"type":"string"},"totalRecords":{"type":"integer","format":"int32"},"processedRecords":{"type":"integer","format":"int32"},"errorCount":{"type":"integer","format":"int32"},"message":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"integer","format":"int64"}}},"BatchLookupRequest":{"type":"object","properties":{"classificationType":{"type":"string"},"codes":{"type":"array","items":{"type":"string"}},"version":{"type":"string"},"language":{"type":"string"}}},"CodeSummary":{"type":"object","properties":{"code":{"type":"string"},"text":{"type":"string"},"isCodable":{"type":"boolean"},"cclOperative":{"type":"integer","format":"int32"},"cclMedical":{"type":"integer","format":"int32"}}},"BatchDescriptionsRequest":{"type":"object","properties":{"codes":{"type":"array","items":{"$ref":"#/components/schemas/CodeWithType"}},"version":{"type":"string"},"language":{"type":"string"}}},"CodeWithType":{"type":"object","properties":{"code":{"type":"string"},"type":{"type":"string"}}},"BatchDescriptionsResponse":{"type":"object","properties":{"descriptions":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/CodeDescription"}},"found":{"type":"integer","format":"int32"},"notFound":{"type":"integer","format":"int32"},"missing":{"type":"array","items":{"type":"string"}}}},"CodeDescription":{"type":"object","properties":{"code":{"type":"string"},"type":{"type":"string"},"text":{"type":"string"},"isCodable":{"type":"boolean"},"cclOperative":{"type":"integer","format":"int32"},"cclMedical":{"type":"integer","format":"int32"},"poaRequired":{"type":"boolean"}}},"ClassificationInfo":{"type":"object","properties":{"type":{"type":"string"},"version":{"type":"string"},"totalCodes":{"type":"integer","format":"int64"},"codableCodes":{"type":"integer","format":"int64"},"thesaurusEntries":{"type":"integer","format":"int64"},"availableLanguages":{"type":"array","items":{"type":"string"}}}},"PoaDetailsResponse":{"type":"object","properties":{"code":{"type":"string"},"poaRequired":{"type":"boolean"},"poaType":{"type":"string"},"requiresU69":{"type":"boolean"},"spigesField":{"$ref":"#/components/schemas/SpigesPoaField"},"u69Mapping":{"$ref":"#/components/schemas/U69Mapping"},"validationRules":{"type":"array","items":{"$ref":"#/components/schemas/ValidationRule"}},"instructionDe":{"type":"string"},"instructionFr":{"type":"string"},"instructionIt":{"type":"string"}}},"ValidationRule":{"type":"object","properties":{"rule":{"type":"string"},"messageDe":{"type":"string"},"messageFr":{"type":"string"},"messageIt":{"type":"string"}}},"Statistics":{"type":"object","properties":{"version":{"type":"string"},"icd10Codes":{"type":"integer","format":"int64"},"chopCodes":{"type":"integer","format":"int64"},"atcCodes":{"type":"integer","format":"int64"},"totalCodes":{"type":"integer","format":"int64"},"icd10Entries":{"type":"integer","format":"int64"},"chopEntries":{"type":"integer","format":"int64"},"atcEntries":{"type":"integer","format":"int64"}}},"CodingRuleInfo":{"type":"object","properties":{"ruleId":{"type":"string"},"ruleType":{"type":"string"},"titleDe":{"type":"string"},"titleFr":{"type":"string"},"titleIt":{"type":"string"},"descriptionDe":{"type":"string"},"descriptionFr":{"type":"string"},"descriptionIt":{"type":"string"},"sourceUrl":{"type":"string"},"codePattern":{"type":"string"}}},"PatientContextInfo":{"type":"object","properties":{"ageYears":{"type":"integer","format":"int32"},"ageDays":{"type":"integer","format":"int32"},"sex":{"type":"string"},"filteredCount":{"type":"integer","format":"int32"}}},"PlausibilityWarning":{"type":"object","properties":{"type":{"type":"string"},"severity":{"type":"string"},"messageDe":{"type":"string"},"messageFr":{"type":"string"},"messageIt":{"type":"string"},"ageMin":{"type":"integer","format":"int32"},"ageMax":{"type":"integer","format":"int32"},"expectedSex":{"type":"string"}}},"PoaInfo":{"type":"object","properties":{"required":{"type":"boolean"},"type":{"type":"string"},"requiresU69":{"type":"boolean"},"u69PoaCode":{"type":"string"},"u69HaiCode":{"type":"string"},"u69UnknownCode":{"type":"string"}}},"RelatedCode":{"type":"object","properties":{"code":{"type":"string"},"text":{"type":"string"},"relationType":{"type":"string"},"isDagger":{"type":"boolean"},"isAsterisk":{"type":"boolean"},"isExclamation":{"type":"boolean"},"inheritedFrom":{"type":"string"}}},"SearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"totalResults":{"type":"integer","format":"int64"},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"query":{"type":"string"},"patientContext":{"$ref":"#/components/schemas/PatientContextInfo"},"versionWarning":{"$ref":"#/components/schemas/VersionWarning"}}},"SearchResult":{"type":"object","properties":{"classificationType":{"type":"string"},"code":{"type":"string"},"text":{"type":"string"},"textLong":{"type":"string"},"textType":{"type":"string"},"source":{"type":"string"},"isCodable":{"type":"boolean"},"isPreferred":{"type":"boolean"},"parentCode":{"type":"string"},"matchedText":{"type":"string"},"matchedSource":{"type":"string"},"matchingTexts":{"type":"array","items":{"type":"string"}},"typedMatchingTexts":{"type":"array","items":{"$ref":"#/components/schemas/TypedText"}},"relatedCodes":{"type":"array","items":{"$ref":"#/components/schemas/RelatedCode"}},"isDagger":{"type":"boolean"},"isAsterisk":{"type":"boolean"},"isExclamation":{"type":"boolean"},"laterality":{"type":"string"},"ccl":{"$ref":"#/components/schemas/CclInfo"},"poa":{"$ref":"#/components/schemas/PoaInfo"},"plausibility":{"$ref":"#/components/schemas/PlausibilityInfo"},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/PlausibilityWarning"}},"codingRules":{"type":"array","items":{"$ref":"#/components/schemas/CodingRuleInfo"}}}},"TypedText":{"type":"object","properties":{"text":{"type":"string"},"textType":{"type":"string"},"source":{"type":"string"}}},"VersionWarning":{"type":"object","properties":{"code":{"type":"string"},"requestedVersion":{"type":"string"},"classificationType":{"type":"string"},"availableVersions":{"type":"array","items":{"type":"string"}},"messageDe":{"type":"string"},"messageFr":{"type":"string"},"messageIt":{"type":"string"}}},"CodeDetails":{"type":"object","properties":{"classificationType":{"type":"string"},"code":{"type":"string"},"version":{"type":"string"},"language":{"type":"string"},"preferredTerm":{"type":"string"},"longText":{"type":"string"},"isCodable":{"type":"boolean"},"parentCode":{"type":"string"},"hierarchyLevel":{"type":"integer","format":"int32"},"synonyms":{"type":"array","items":{"type":"string"}},"inclusions":{"type":"array","items":{"type":"string"}},"exclusions":{"type":"array","items":{"type":"string"}},"notes":{"type":"array","items":{"type":"string"}},"codingHints":{"type":"array","items":{"type":"string"}},"definitions":{"type":"array","items":{"type":"string"}},"relatedCodes":{"type":"array","items":{"$ref":"#/components/schemas/RelatedCode"}},"isDagger":{"type":"boolean"},"isAsterisk":{"type":"boolean"},"isExclamation":{"type":"boolean"},"ccl":{"$ref":"#/components/schemas/CclInfo"},"poa":{"$ref":"#/components/schemas/PoaInfo"},"plausibility":{"$ref":"#/components/schemas/PlausibilityInfo"},"drg":{"$ref":"#/components/schemas/DrgInfo"},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/PlausibilityWarning"}},"codingRules":{"type":"array","items":{"$ref":"#/components/schemas/CodingRuleInfo"}}}},"DrgInfo":{"type":"object","properties":{"mdcCodes":{"type":"array","items":{"type":"string"}},"drgMappingJson":{"type":"string"}}},"SuggestionResult":{"type":"object","properties":{"classificationType":{"type":"string"},"code":{"type":"string"},"text":{"type":"string"},"isCodable":{"type":"boolean"},"cclOperative":{"type":"integer","format":"int32"},"cclMedical":{"type":"integer","format":"int32"},"poaRequired":{"type":"boolean"},"hasAgeRestriction":{"type":"boolean"},"isUnacceptableHd":{"type":"boolean"}}},"DrgLabelResponse":{"type":"object","properties":{"tariff":{"type":"string"},"version":{"type":"string"},"code":{"type":"string"},"de":{"type":"string"},"fr":{"type":"string"},"it":{"type":"string"}}},"VersionStats":{"type":"object","properties":{"systemCode":{"type":"string"},"version":{"type":"string"},"codeCount":{"type":"integer","format":"int32"},"thesaurusEntryCount":{"type":"integer","format":"int64"},"medicationCount":{"type":"integer","format":"int64"},"versionDate":{"type":"string"}}},"DeleteStatistics":{"type":"object","properties":{"systemCode":{"type":"string"},"version":{"type":"string"},"codesDeleted":{"type":"integer","format":"int64"},"textsDeleted":{"type":"integer","format":"int64"},"thesaurusEntriesDeleted":{"type":"integer","format":"int64"},"durationMs":{"type":"integer","format":"int64"},"message":{"type":"string"},"success":{"type":"boolean"}}}},"securitySchemes":{"openIdConnectAuth":{"type":"openIdConnect","description":"OpenID Connect authentication","openIdConnectUrl":"https://sso.kodemed.ch/realms/kodemed/.well-known/openid-configuration"}}}}