/** * German Extension Validator * * Validates German-specific extension requirements: * - Gender extension (gender-amtlich-de) required when gender is "other" * - Other conditional extension requirements for German profiles */ import type { ValidationIssue } from '../types'; interface Extension { url: string; valueCode?: string; valueCoding?: { system?: string; code?: string; }; [key: string]: unknown; } interface PatientResource { resourceType: 'Patient'; gender?: 'male' | 'female' | 'other' | 'unknown'; _gender?: { extension?: Extension[]; }; extension?: Extension[]; } export declare class GermanExtensionValidator { /** * Validate German extension requirements for a resource * * @param resource - FHIR resource to validate * @param profileUrl - Profile URL for issue reporting * @returns Array of validation issues */ validateExtensions(resource: PatientResource, profileUrl: string): ValidationIssue[]; /** * Validate that gender extension is present when gender = "other" * * Per German profiles (MII, KBV), when Patient.gender is "other", * the gender-amtlich-de extension MUST be present to specify the * administrative gender (D = divers, X = unbestimmt). */ private validateGenderExtension; /** * Check if a resource has a specific extension * * Checks multiple locations where extensions can appear: * - Resource.extension (root level) * - Resource._gender.extension (primitive extension) */ private hasExtension; /** * Check if a profile URL suggests German content * Uses same logic as GermanIdentifierValidator for consistency */ isGermanProfile(profileUrl: string): boolean; } export {}; //# sourceMappingURL=german-extension-validator.d.ts.map