# This is the minimal rule series - action: parse name: parse-fhir-resources status: "Checking if all FHIR Resource files can be parsed" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/fsh-index.json" - "!/**/fhirpkg.lock.json" - "!/**/menu.xml" - "!/**/medizininformatikinitiative-modulperson-implementationguide-1.x-DE.xml" - "!/**/medizininformatikinitiative-modulperson-implementationguide-1.x-en.xml" - "!/**/MII_IG_Person_DE_v2024.json" - "!/**/MII_IG_Person_EN_v2024.json" - name: version-filled filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists() # Excluding NamingSystem as they have no version status: "Checking if all resources have version filled" predicate: version.exists() and (version in ('2025.0.0')) error-message: "version not filled (correctly)" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/icd10who*.json" - "!/**/medizininformatikinitiative-modulperson-implementationguide-1.x-DE.xml" - "!/**/medizininformatikinitiative-modulperson-implementationguide-1.x-en.xml" - "!/**/MII_IG_Person_DE_v2024.json" - "!/**/MII_IG_Person_EN_v2024.json" - action: Check for valid ids # See https://github.com/FirelyTeam/firely-net-sdk/issues/1773 predicate: id.matches('^[A-Za-z0-9\\-\\.]{1,64}$') error: The resource must have a valid id - name: naming-convention-id status: "Checking if all resource ids follow the naming convention" predicate: id.matches('^mii-(pr|ex|lm|vs|cs|cm|sm|ns|sp|cps|od|ig|exa)-person') error-message: "resource id naming convention mismatch" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/icd10who*.json" - name: naming-convention-name filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists() status: "Checking if all resource names follow the naming convention" predicate: name.exists() implies name.matches('^MII_(PR|EX|LM|VS|CS|CM|SM|NS|SP|CPS|OD|IG|EXA)_Person') error-message: "resource name naming convention mismatch" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/icd10who*.json" - name: naming-convention-title filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists() status: "Checking if all resource titles follow the naming convention" predicate: title.exists() implies title.matches('^MII (PR|EX|LM|VS|CS|CM|SM|NS|SP|CPS|OD|IG|EXA) Person') error-message: "resource name naming convention mismatch" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/icd10who*.json" - name: naming-convention-url filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists() status: "Checking if all resource urls follow the naming convention" predicate: url.exists() implies url.matches('^https://www.medizininformatik-initiative.de/fhir/core/modul-person/') error-message: "resource url naming convention mismatch" files: - /**/*.xml - /**/*.json - "!package.json" - "!/**/*icd10who*.json"