A babelfish on TypeScript and FHIR
Validator parity across FHIR R4 & R5 Implementation Guides. Each profile is tested with empty() and random() resource generation, then validated against the HL7 Java Validator, the Firely SDK Validator, and BabelFHIR-TS internal validate() + Zod schemas.
empty() resources?random() resources?random() resources pass reference validator validation with zero errors?validate() and Zod schema agree on empty() resources?validate() and Zod schema agree on random() resources?random() resources pass internal validate() with zero errors?| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 🇨🇭 CH Core 6.0.0 | 28/28 (100%) | 29/29 (100%) | 29/29 (100%) |
| 🌍 IPS 2.0.1 | 27/27 (100%) | 27/27 (100%) | 27/27 (100%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 17/17 (100%) | 17/17 (100%) | 17/17 (100%) |
| 📦 Isik Medikation 4.0.3 ⚠️ | 4/4 (100%) | 4/4 (100%) | 4/4 (100%) |
| 🔐 SMART 2.2.0 | 6/6 (100%) | 6/6 (100%) | 6/6 (100%) |
| 🇺🇸 US Core 9.0.0 ⚠️ | 41/41 (100%) | 54/54 (100%) | 54/54 (100%) |
| 📦 Cpg 2.0.0 ⚠️ | 96/96 (100%) | 98/98 (100%) | 93/98 (95%) |
| 📦 Genomics Reporting 3.0.0 | 17/17 (100%) | 17/17 (100%) | 16/17 (94%) |
| 📦 Sdoh 2.3.0 | 20/20 (100%) | 20/20 (100%) | 18/20 (90%) |
| 📦 Qicore 7.0.2 | 65/65 (100%) | 65/65 (100%) | 58/65 (89%) |
| 📦 Physical Activity 1.0.0 | 16/16 (100%) | 16/16 (100%) | 14/16 (88%) |
| 📦 Mcode 4.0.0 | 37/37 (100%) | 38/38 (100%) | 31/38 (82%) |
| 📦 Au Core 2.0.0 ⚠️ | 13/13 (100%) | 20/20 (100%) | 16/20 (80%) |
| 📦 Davinci Pdex 2.1.0 | 13/13 (100%) | 13/13 (100%) | 10/13 (77%) |
| 📦 Ndh 1.0.0 | 31/31 (100%) | 31/31 (100%) | 23/31 (74%) |
| 📦 Emedicinal Product 1.0.0 | 15/15 (100%) | 15/15 (100%) | 11/15 (73%) |
| 📦 Davinci Pas 2.2.1 | 29/29 (100%) | 29/29 (100%) | 20/29 (69%) |
| 📦 Davinci Drug Formulary 2.1.0 | 8/8 (100%) | 8/8 (100%) | 5/8 (63%) |
| 📦 Sdc 4.0.0 | 34/34 (100%) | 34/34 (100%) | 20/34 (59%) |
| 📦 Cqfmeasures 5.0.0 ⚠️ | 12/12 (100%) | 12/12 (100%) | 6/12 (50%) |
| 📦 Davinci Deqm 5.0.0 | 11/11 (100%) | 11/11 (100%) | 5/11 (45%) |
| 📦 De Basisprofil 1.6.0 | 9/9 (100%) | 19/19 (100%) | 8/19 (42%) |
| 📦 Carin Bb 2.2.0 | 16/16 (100%) | 16/16 (100%) | 6/16 (38%) |
| 📦 Pixm 3.1.0 | 11/11 (100%) | 11/11 (100%) | 4/11 (36%) |
| 📦 Mhd 4.2.4 | 31/31 (100%) | 31/31 (100%) | 11/31 (35%) |
| 📦 Davinci Cdex 2.1.0 | 7/7 (100%) | 7/7 (100%) | 2/7 (29%) |
| 📦 Davinci Dtr 2.2.0 | 14/14 (100%) | 14/14 (100%) | 2/14 (14%) |
| 📦 Davinci Alerts 1.1.0 | 8/8 (100%) | 8/8 (100%) | 1/8 (13%) |
| 📦 Ae Research 1.0.1 | 1/1 (100%) | 1/1 (100%) | 0/1 (0%) |
| 📦 Kbv Erp 1.4.4 ⚠️ | 4/4 (100%) | 4/4 (100%) | 0/4 (0%) |
| 📦 Vitals 1.0.0 | 1/1 (100%) | 9/15 (60%) | 9/15 (60%) |
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Isik Medikation 4.0.3 | 8/8 (100%) | 8/8 (100%) | 8/8 (100%) |
| 🔐 SMART 2.2.0 | 6/6 (100%) | 6/6 (100%) | 6/6 (100%) |
| 🇺🇸 US Core 9.0.0 | 55/55 (100%) | 55/55 (100%) | 55/55 (100%) |
| 📦 Genomics Reporting 3.0.0 | 17/17 (100%) | 17/17 (100%) | 16/17 (94%) |
| 📦 Pixm 3.1.0 | 11/11 (100%) | 11/11 (100%) | 4/11 (36%) |
| 📦 Ae Research 1.0.1 | 1/1 (100%) | 1/1 (100%) | 0/1 (0%) |
| 📦 Cpg 2.0.0 | 99/99 (100%) | 96/99 (97%) | 76/99 (77%) |
| 🇨🇭 CH Core 6.0.0 | 29/29 (100%) | 27/29 (93%) | 22/29 (76%) |
| 📦 Davinci Deqm 5.0.0 | 11/11 (100%) | 10/11 (91%) | 5/11 (45%) |
| 📦 Davinci Drug Formulary 2.1.0 ⚠️ | 7/7 (100%) | 6/7 (86%) | 5/7 (71%) |
| 📦 Cqfmeasures 5.0.0 | 13/13 (100%) | 11/13 (85%) | 6/13 (46%) |
| 📦 De Basisprofil 1.6.0 | 19/19 (100%) | 14/19 (74%) | 8/19 (42%) |
| 📦 Emedicinal Product 1.0.0 | 15/15 (100%) | 11/15 (73%) | 12/15 (80%) |
| 📦 Davinci Alerts 1.1.0 ⚠️ | 3/3 (100%) | 2/3 (67%) | 1/3 (33%) |
| 📦 Kbv Erp 1.4.4 | 8/8 (100%) | 2/8 (25%) | 0/8 (0%) |
| 📦 Mhd 4.2.4 | 30/31 (97%) | 26/31 (84%) | 10/31 (32%) |
| 📦 Au Core 2.0.0 ⚠️ | 21/22 (95%) | 22/22 (100%) | 16/22 (73%) |
| 📦 Qicore 7.0.2 | 62/65 (95%) | 53/65 (82%) | 41/65 (63%) |
| 📦 Davinci Pdex 2.1.0 ⚠️ | 11/12 (92%) | 11/11 (100%) | 10/11 (91%) |
| 🌍 IPS 2.0.1 | 24/27 (89%) | 26/27 (96%) | 23/27 (85%) |
| 📦 Davinci Cdex 2.1.0 | 6/7 (86%) | 5/7 (71%) | 1/7 (14%) |
| 📦 Ndh 1.0.0 | 26/31 (84%) | 31/31 (100%) | 21/31 (68%) |
| 📦 Carin Bb 2.2.0 ⚠️ | 5/6 (83%) | 6/6 (100%) | 5/6 (83%) |
| 📦 Mcode 4.0.0 ⚠️ | 30/36 (83%) | 35/36 (97%) | 27/36 (75%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 22/27 (81%) | 27/27 (100%) | 22/27 (81%) |
| 📦 Davinci Pas 2.2.1 ⚠️ | 20/26 (77%) | 23/26 (88%) | 13/26 (50%) |
| 📦 Physical Activity 1.0.0 ⚠️ | 11/15 (73%) | 13/15 (87%) | 11/15 (73%) |
| 📦 Davinci Dtr 2.2.0 | 10/14 (71%) | 9/14 (64%) | 1/14 (7%) |
| 📦 Sdoh 2.3.0 | 13/20 (65%) | 19/20 (95%) | 3/20 (15%) |
| 📦 Sdc 4.0.0 | 15/34 (44%) | 26/34 (76%) | 7/34 (21%) |
| 📦 Vitals 1.0.0 | 1/15 (7%) | 14/15 (93%) | 1/15 (7%) |
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Ae Research 1.0.1 | 5/5 (100%) | 5/5 (100%) | 3/5 (60%) |
| 🌍 IPS 2.0.1 | 38/38 (100%) | 37/38 (97%) | 37/38 (97%) |
| 📦 Vitals 1.0.0 | 24/24 (100%) | 23/24 (96%) | 23/24 (96%) |
| 🇺🇸 US Core 9.0.0 | 82/82 (100%) | 78/82 (95%) | 77/82 (94%) |
| 📦 Qicore 7.0.2 | 86/86 (100%) | 82/86 (95%) | 74/86 (86%) |
| 🔐 SMART 2.2.0 | 9/9 (100%) | 8/9 (89%) | 8/9 (89%) |
| 📦 Mcode 4.0.0 | 71/71 (100%) | 61/71 (86%) | 59/71 (83%) |
| 📦 Davinci Pdex 2.1.0 | 59/59 (100%) | 49/59 (83%) | 47/59 (80%) |
| 📦 Davinci Dtr 2.2.0 | 96/96 (100%) | 75/96 (78%) | 64/96 (67%) |
| 📦 Genomics Reporting 3.0.0 | 48/48 (100%) | 37/48 (77%) | 47/48 (98%) |
| 📦 Au Core 2.0.0 | 60/60 (100%) | 45/60 (75%) | 40/60 (67%) |
| 📦 De Basisprofil 1.6.0 | 85/85 (100%) | 63/85 (74%) | 63/85 (74%) |
| 📦 Davinci Alerts 1.1.0 | 10/10 (100%) | 6/10 (60%) | 2/10 (20%) |
| 📦 Pixm 3.1.0 | 15/15 (100%) | 8/15 (53%) | 8/15 (53%) |
| 📦 Mhd 4.2.4 | 39/39 (100%) | 17/39 (44%) | 17/39 (44%) |
| 🇨🇭 CH Core 6.0.0 | 87/88 (99%) | 83/88 (94%) | 83/88 (94%) |
| 📦 Cpg 2.0.0 | 130/132 (98%) | 126/132 (95%) | 122/132 (92%) |
| 🇩🇪 ISiK Basis 4.0.3 | 62/63 (98%) | 59/63 (94%) | 58/63 (92%) |
| 📦 Sdc 4.0.0 | 157/160 (98%) | 132/160 (83%) | 119/160 (74%) |
| 📦 Davinci Drug Formulary 2.1.0 | 20/21 (95%) | 18/21 (86%) | 13/21 (62%) |
| 📦 Davinci Pas 2.2.1 | 92/97 (95%) | 59/97 (61%) | 51/97 (53%) |
| 📦 Carin Bb 2.2.0 | 21/22 (95%) | 10/22 (45%) | 10/22 (45%) |
| 📦 Isik Medikation 4.0.3 | 15/16 (94%) | 15/16 (94%) | 15/16 (94%) |
| 📦 Davinci Deqm 5.0.0 | 32/34 (94%) | 26/34 (76%) | 23/34 (68%) |
| 📦 Emedicinal Product 1.0.0 | 14/15 (93%) | 12/15 (80%) | 11/15 (73%) |
| 📦 Ndh 1.0.0 | 79/88 (90%) | 79/88 (90%) | 79/88 (90%) |
| 📦 Physical Activity 1.0.0 | 17/19 (89%) | 17/19 (89%) | 17/19 (89%) |
| 📦 Sdoh 2.3.0 | 22/25 (88%) | 21/25 (84%) | 22/25 (88%) |
| 📦 Davinci Cdex 2.1.0 | 13/15 (87%) | 9/15 (60%) | 8/15 (53%) |
| 📦 Cqfmeasures 5.0.0 | 37/44 (84%) | 34/44 (77%) | 32/44 (73%) |
| 📦 Kbv Erp 1.4.4 | 24/32 (75%) | 21/32 (66%) | 21/32 (66%) |
FHIRPath constraints from StructureDefinitions that could not be translated into Zod runtime validators.
| # | Package | Constraint |
|---|---|---|
| 1 | au-core | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 2 | carin-bb | Care Team Rendering physician's qualifications are from Healthcare Provider Taxonomy Value Set |
| 3 | carin-bb | If Adjudication is present |
| 4 | carin-bb | it must have at least one adjudicationamounttype slice |
| 5 | carin-bb | Institutional EOB: Should have adjudication with adjudicationamounttype slice at the item or header level |
| 6 | carin-bb | but not both |
| 7 | carin-bb | Institutional EOB: Careteam roles refer to a practitioner |
| 8 | carin-bb | Pharmacy EOB: Careteam roles refer to a practitioner |
| 9 | carin-bb | Pharmacy EOB: Careteam roles refer to an organization |
| 10 | carin-bb | Professional EOB: Careteam roles refer to a practitioner |
| 11 | carin-bb | Professional EOB: SupportingInfo repetitions with with transportation category code must be referred to by one or more repetitions of item.informationSequence |
| 12 | cpg | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 13 | cpg | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 14 | davinci-cdex | Date must be to day. |
| 15 | davinci-drug-formulary | All drugs with RxNorm Term Type of Semantic Clinical Drug (SCD) or Semantic Branded Drug (SBD) SHALL have a coding repetition and RxNorm Term Type of Semantic Clinical Drug Group (SCDG) or Semantic Branded Drug Group (SBDG) respectively |
| 16 | davinci-pas | Dates need to be a full date - YYYY-MM-DD |
| 17 | davinci-pas | If reason.coding is present and is not from the extensible value set |
| 18 | davinci-pas | then reason.text must be present |
| 19 | davinci-pdex | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
| 20 | de-basisprofil | Ergebnis muss eine durch 10 teilbare Zahl sein |
| 21 | de-basisprofil | If Observation.effective[x] has a value then that value shall be precise to the day |
| 22 | emedicinal-product | RouteOfAdministration cannot be used when the 'formOf' product already uses MedicinalProductDefinition.route (and vice versa) |
| 23 | ips | Datetime must be at least to day. |
| 24 | kbv-erp | Eine Ressource vom Typ Practitioner wird als verantwortliche Person angegeben |
| 25 | kbv-erp | diese darf aber nur angegeben werden |
| 26 | kbv-erp | wenn es sich bei der ausstellenden Person um einen Arzt in Weiterbildung oder Arzt als Vertreter handelt. |
| 27 | kbv-erp | Eine Ressource vom Typ Practitioner wird als verantwortliche Person angegeben |
| 28 | kbv-erp | diese darf aber nur angegeben werden |
| 29 | kbv-erp | wenn es sich nicht um eine Hebamme oder einen Arzt in Weiterbildung handelt. |
| 30 | kbv-erp | Es wird keine Ressource vom Typ Practitioner als verantwortliche Person angegeben |
| 31 | kbv-erp | dies ist aber eine Pflichtangabe |
| 32 | kbv-erp | wenn es sich bei der ausstellenden oder verschreibenden Person um einen Arzt in Weiterbildung ohne Identifikator handelt. |
| 33 | kbv-erp | In der Ressource vom Typ Practitioner ist der Identifikator der ausstellenden oder verschreibenden Person nicht vorhanden |
| 34 | kbv-erp | dieser ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 35 | kbv-erp | "BG" |
| 36 | kbv-erp | "SKT" |
| 37 | kbv-erp | "UK" oder "PKV" |
| 38 | kbv-erp | wenn es sich um einen Arzt |
| 39 | kbv-erp | Zahnarzt oder Arzt als Vertreter handelt und keine ASV-Fachgruppennummer angegeben ist. |
| 40 | kbv-erp | In der Ressource vom Typ Practitioner ist der Identifikator der verantwortlichen Person nicht vorhanden |
| 41 | kbv-erp | dieser ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 42 | kbv-erp | "BG" |
| 43 | kbv-erp | "SKT" oder "UK" |
| 44 | kbv-erp | wenn es sich um einen Arzt |
| 45 | kbv-erp | Zahnarzt oder Arzt als Vertreter handelt und keine ASV-Fachgruppennummer angegeben ist. |
| 46 | kbv-erp | In einer Ressource vom Typ Organization ist kein Identifikator der Einrichtung (z.B. Betriebsstaettennummer) vorhanden |
| 47 | kbv-erp | diese ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 48 | kbv-erp | "PKV" |
| 49 | kbv-erp | "BG" |
| 50 | kbv-erp | "SKT" oder "UK" |
| 51 | kbv-erp | wenn es sich bei der austellenden/verschreibenden Person um einen Arzt |
| 52 | kbv-erp | Zahnarzt |
| 53 | kbv-erp | Arzt in Weiterbildung oder Arzt als Vertreter handelt. |
| 54 | kbv-erp | In einer Ressource vom Typ Practitioner ist eine ASV-Fachgruppennummer der ausstellenden Person vorhanden |
| 55 | kbv-erp | diese darf aber nur angegeben werden |
| 56 | kbv-erp | wenn die Rechtsgrundlage den Wert "01" oder "11" besitzt und wenn es sich um einen Arzt oder Arzt als Vertreter handelt |
| 57 | kbv-erp | für den kein Identifikator angegeben ist. |
| 58 | kbv-erp | In einer Ressource vom Typ Practitioner ist eine ASV-Fachgruppennummer der verantwortlichen Person vorhanden |
| 59 | kbv-erp | diese darf aber nur angegeben werden |
| 60 | kbv-erp | wenn die Rechtsgrundlage den Wert "01" oder "11" besitzt und wenn es sich um einen Arzt oder Arzt als Vertreter handelt |
| 61 | kbv-erp | für den kein Identifikator angegeben ist. |
| 62 | kbv-erp | Wenn es sich um ein T-Rezept handelt |
| 63 | kbv-erp | darf die ausstellende / verschreibende Person kein Zahnarzt und keine Hebamme sein. |
| 64 | mcode | Datetime must be at least to day. |
| 65 | mcode | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 66 | ndh | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 67 | qicore | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 68 | qicore | Datetime must be at least to day. |
| 69 | sdc | Either code is 'fulfill' |
| 70 | sdc | focus is ServiceRequest and no 'questionnaire' input; or code is 'complete-questionnaire' |
| 71 | sdc | focus is omitted and 'questionnaire' input is present |
| 72 | sdoh | At least one Condition.category SHALL be encounter-diagnosis |
| 73 | sdoh | problem-list-item |
| 74 | sdoh | or health-concern |
| 75 | sdoh | Datetime must be at least to day. |
| 76 | sdoh | If Task.code is "review-material" |
| 77 | sdoh | then Task.focus of DocumentReference is required. |
| 78 | us-core | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 79 | us-core | Datetime must be at least to day. |
| 80 | us-core | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 81 | us-core | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
| 82 | vitals | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| Package | Resources | Val Total | Val Avg | Zod Total | Zod Avg | HL7 Total | HL7 Avg | Firely Total | Firely Avg |
|---|---|---|---|---|---|---|---|---|---|
| ae-research | 10 | 0.08s | 7.9ms | 0.01s | 1.2ms | 46.63s | 23316ms | 32.76s | 16380.5ms |
| au-core | 120 | 0.96s | 8ms | 0.17s | 1.4ms | 94.59s | 1891.9ms | 24.12s | 482.4ms |
| carin-bb | 44 | 1.68s | 38.1ms | 0.28s | 6.5ms | 136.68s | 4271.1ms | 55.03s | 1719.7ms |
| ch-core | 176 | 1.04s | 5.9ms | 0.17s | 1ms | 117.49s | 2025.7ms | 42.41s | 731.2ms |
| cpg | 264 | 1.05s | 4ms | 0.46s | 1.7ms | 191.01s | 964.7ms | 50.5s | 255ms |
| cqfmeasures | 88 | 0.59s | 6.7ms | 0.09s | 1ms | 82.83s | 3185.8ms | 21.61s | 831ms |
| davinci-alerts | 20 | 0.18s | 8.8ms | 0.05s | 2.6ms | 149.83s | 9364.4ms | 73.38s | 4586.1ms |
| davinci-cdex | 30 | 0.18s | 6.1ms | 0.07s | 2.2ms | 157.78s | 11269.8ms | 67.67s | 4833.9ms |
| davinci-deqm | 68 | 0.58s | 8.5ms | 0.08s | 1.2ms | 136.34s | 6197.5ms | 75.22s | 3418.9ms |
| davinci-drug-formulary | 42 | 0.49s | 11.7ms | 0.07s | 1.6ms | 182.87s | 11429.1ms | 52.62s | 3288.7ms |
| davinci-dtr | 192 | 1.05s | 5.5ms | 0.08s | 0.4ms | 362.05s | 12930.3ms | 83.89s | 2995.9ms |
| davinci-pas | 194 | 1.66s | 8.5ms | 0.25s | 1.3ms | 317.4s | 5472.4ms | 80.19s | 1382.5ms |
| davinci-pdex | 118 | 0.38s | 3.2ms | 0.1s | 0.8ms | 454.85s | 17494ms | 95.77s | 3683.3ms |
| de-basisprofil | 170 | 1.09s | 6.4ms | 0.15s | 0.9ms | 61.15s | 1609.2ms | 36.78s | 967.8ms |
| emedicinal-product | 30 | 0.21s | 6.9ms | 0.11s | 3.5ms | 39.82s | 1327.2ms | 23.87s | 795.6ms |
| genomics-reporting | 96 | 0.38s | 4ms | 0.11s | 1.2ms | 88.57s | 2605ms | 16.18s | 475.9ms |
| ips | 76 | 0.28s | 3.7ms | 0.11s | 1.5ms | 62.02s | 1148.4ms | 32.11s | 594.7ms |
| isik-basis | 126 | 2.52s | 20ms | 0.14s | 1.1ms | 56.2s | 1003.5ms | 44.24s | 790ms |
| isik-medikation | 32 | 1.51s | 47.2ms | 0.04s | 1.1ms | 40.07s | 2504.3ms | 43.86s | 2741.2ms |
| kbv-erp | 64 | 0.99s | 15.4ms | 0.05s | 0.7ms | 73.58s | 4598.9ms | 31.49s | 1967.9ms |
| mcode | 142 | 0.61s | 4.3ms | 0.17s | 1.2ms | 127.33s | 1675.4ms | 57.31s | 754.1ms |
| mhd | 78 | 0.83s | 10.7ms | 0.19s | 2.4ms | 161.14s | 2599ms | 40.2s | 648.5ms |
| ndh | 176 | 0.6s | 3.4ms | 0.18s | 1ms | 168.43s | 2716.6ms | 58.33s | 940.9ms |
| physical-activity | 38 | 0.49s | 12.8ms | 0.1s | 2.5ms | 83.55s | 2611ms | 81.41s | 2544.2ms |
| pixm | 30 | 0.19s | 6.3ms | 0.08s | 2.6ms | 64.32s | 2923.6ms | 37.94s | 1724.7ms |
| qicore | 172 | 0.9s | 5.2ms | 0.29s | 1.7ms | 241.13s | 1854.8ms | 67.58s | 519.9ms |
| sdc | 320 | 1.51s | 4.7ms | 0.2s | 0.6ms | 105.94s | 1557.9ms | 59.57s | 876.1ms |
| sdoh | 50 | 0.4s | 8ms | 0.07s | 1.5ms | 131.41s | 3285.2ms | 74.26s | 1856.4ms |
| smart | 18 | 0.73s | 40.7ms | 0.05s | 2.9ms | 59.08s | 4922.9ms | 16.86s | 1405.3ms |
| us-core | 164 | 1.45s | 8.8ms | 0.32s | 1.9ms | 198.79s | 1807.2ms | 81.83s | 743.9ms |
| vitals | 48 | 0.29s | 6.1ms | 0.12s | 2.5ms | 53.75s | 1791.5ms | 44.92s | 1497.3ms |
| Package | Extract | Init | Resolve | Generate | Compile | Repack | Total |
|---|---|---|---|---|---|---|---|
| ae-research | 0.04s | 4.7s | 4.9s | 0.06s | 2s | 0.06s | 12.3s |
| au-core | 0.1s | 5.3s | 11.5s | 1.3s | 8.5s | 0.35s | 29.2s |
| carin-bb | 0.13s | 6.2s | 17.3s | 3.9s | 13.1s | 0.38s | 42.4s |
| ch-core | 0.14s | 3.7s | 5.1s | 0.96s | 9.3s | 0.42s | 23.7s |
| cpg | 0.39s | 4.5s | 2.7s | 1.7s | 20.4s | 0.85s | 32.2s |
| cqfmeasures | 0.12s | 6.1s | 6.3s | 1.4s | 4.9s | 0.3s | 19.3s |
| davinci-alerts | 0.04s | 5.8s | 17.2s | 1.1s | 4.6s | 0.19s | 29.8s |
| davinci-cdex | 0.07s | 4.2s | 33.9s | 0.47s | 4.5s | 0.2s | 44.3s |
| davinci-deqm | 0.14s | 4.9s | 20.5s | 1.6s | 5.5s | 0.28s | 33.5s |
| davinci-drug-formulary | 0.1s | 5.4s | 19.2s | 1.9s | 5.2s | 0.3s | 32.8s |
| davinci-dtr | 0.06s | 4.2s | 41.2s | 1.1s | 5.7s | 0.24s | 52.9s |
| davinci-pas | 0.16s | 4.3s | 48.8s | 6.6s | 12.8s | 0.49s | 77s |
| davinci-pdex | 0.12s | 6s | 50.6s | 1.8s | 7.8s | 0.35s | 67.7s |
| de-basisprofil | 0.12s | 5.8s | 0.82s | 0.73s | 8.9s | 0.39s | 17.8s |
| emedicinal-product | 0.06s | 4.2s | 2.3s | 1.4s | 5.4s | 0.18s | 15.2s |
| genomics-reporting | 0.2s | 5.6s | 3.5s | 0.5s | 7.5s | 0.37s | 19.8s |
| ips | 0.09s | 5.7s | 6.5s | 1.3s | 6.3s | 0.28s | 22.5s |
| isik-basis | 0.08s | 7.1s | 4.7s | 0.43s | 7.3s | 0.28s | 20.7s |
| isik-medikation | 0.04s | 5.9s | 4.1s | 96.9s | 3.5s | 0.17s | 111.1s |
| kbv-erp | 0.02s | 4.9s | 6s | 0.66s | 3.5s | 0.13s | 15.6s |
| mcode | 0.19s | 4.4s | 11.3s | 2.4s | 9.6s | 0.46s | 30s |
| mhd | 0.13s | 5.6s | 5.8s | 0.67s | 7.8s | 0.34s | 21s |
| ndh | 0.2s | 4.1s | 16.9s | 1.7s | 8.7s | 0.44s | 32.4s |
| physical-activity | 0.13s | 4.4s | 16.6s | 1.1s | 6.4s | 0.27s | 29.8s |
| pixm | 0.05s | 4.3s | 3.2s | 0.72s | 4.5s | 0.19s | 15.3s |
| qicore | 0.13s | 4.6s | 9.3s | 6.4s | 12.4s | 0.43s | 36.3s |
| sdc | 0.17s | 3.7s | 9.1s | 2s | 11.8s | 0.5s | 28s |
| sdoh | 0.08s | 4.3s | 15s | 2.3s | 4.8s | 0.21s | 27.7s |
| smart | 0.04s | 6.7s | 8.5s | 0.67s | 4.1s | 0.17s | 20.7s |
| us-core | 0.31s | 5.9s | 20.7s | 1.8s | 16.7s | 0.73s | 51.1s |
| vitals | 0.08s | 5.2s | 2.1s | 0.73s | 6.2s | 0.25s | 15s |
Profiles excluded from parity statistics due to external issues (validator bugs, profile defects, or terminology limitations). BabelFHIR-TS generates valid resources for all of these.
| Pattern | Count | Affected Validator(s) |
|---|---|---|
| Element ordering (parser bug) | 21 | 21 firely |
| Discriminator evaluation failure | 16 | 15 hl7 1 firely |
| Bundled context required | 5 | 5 firely |
| Terminology server limitation | 4 | 4 hl7 |
| Missing snapshot | 4 | 4 hl7 |
| Cross-profile validation | 2 | 2 hl7 |
| Failed to parse validator output | 2 | 1 hl7 1 firely |
| SNOMED edition mismatch | 1 | 1 hl7 |
| # | IG | Profile | Validator | Category | Scope | Error |
|---|---|---|---|---|---|---|
| 1 | 📦 au-core | AUCoreMedicationClass | both | Firely: Element ordering (parser bug) HL7: Terminology server limitation |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: tx.fhir.org: Australian ValueSet filter not understood |
| 2 | 📦 au-core | AUCoreMedicationRequestClass | both | Firely: Element ordering (parser bug) HL7: Terminology server limitation |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: tx.fhir.org: Australian ValueSet filter not understood |
| 3 | 🇩🇪 ISiK Basis | ISiKProzedurClass | both | Firely: Element ordering (parser bug) HL7: Discriminator evaluation failure |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: HL7 slicing: unable to resolve profile CodingOPS |
| 4 | 📦 au-core | AUCoreConditionClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 5 | 📦 au-core | AUCoreImmunizationClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 6 | 📦 au-core | AUCoreProcedureClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 7 | 📦 au-core | AUCoreSmokingStatusClass | hl7 | SNOMED edition mismatch | empty-parity, random-parity, random-validation | SNOMED AU code not in International Edition |
| 8 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 9 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 10 | 📦 carin-bb | C4BBExplanationOfBenefitOralBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 11 | 📦 carin-bb | C4BBExplanationOfBenefitOralClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 12 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 13 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 14 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 15 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 16 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 17 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 18 | 📦 cpg | CHFBodyWeightClass | hl7 | Cross-profile validation | empty-parity, random-parity, random-validation | HL7 bp |
| 19 | 📦 cqfmeasures | CQFMPublishableMeasureClass | hl7 | Failed to parse validator output | empty-parity, random-parity, random-validation | HL7 validator crashes — unparseable output |
| 20 | 📦 davinci-alerts | AdmitNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 21 | 📦 davinci-alerts | ADTNotificationCoverageProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 22 | 📦 davinci-alerts | ADTNotificationEncounterProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 23 | 📦 davinci-alerts | DischargeNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 24 | 📦 davinci-alerts | NotificationsMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 25 | 📦 davinci-drug-formulary | FormularyDrugClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 26 | 📦 DaVinci PAS | PASDeviceRequestClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 27 | 📦 DaVinci PAS | PASEncounterClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 28 | 📦 DaVinci PAS | PASTaskClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 29 | 📦 davinci-pdex | PdexMedicationDispenseClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 30 | 📦 davinci-pdex | PDexMultiMemberMatchRequestParametersClass | firely | Discriminator evaluation failure | random-parity, random-validation | Profile bug: hrex-consent policy:hrex slice uses 'value' discriminator without fixed/pattern |
| 31 | 🇩🇪 ISiK Basis | ISiKAbrechnungsfallClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-abrechnungsnummer |
| 32 | 🇩🇪 ISiK Basis | ISiKAllergieUnvertraeglichkeitClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile CodingASK |
| 33 | 🇩🇪 ISiK Basis | ISiKAngehoerigerClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile address-de-basis |
| 34 | 🇩🇪 ISiK Basis | ISiKDiagnoseClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKDiagnose |
| 35 | 🇩🇪 ISiK Basis | ISiKOrganisationClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-iknr |
| 36 | 🇩🇪 ISiK Basis | ISiKOrganisationFachabteilungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-iknr |
| 37 | 🇩🇪 ISiK Basis | ISiKPatientClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-kvid-10 |
| 38 | 🇩🇪 ISiK Basis | ISiKPersonImGesundheitsberufClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-lanr |
| 39 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisGesetzlichClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisGesetzlich |
| 40 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisSelbstzahlerClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisSelbstzahler |
| 41 | 📦 isik-medikation | ISiKMedikamentClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 42 | 📦 isik-medikation | ISiKMedikationsInformationClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 43 | 📦 isik-medikation | ISiKMedikationsVerabreichungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 44 | 📦 isik-medikation | ISiKMedikationsVerordnungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 45 | 📦 kbv-erp | KBVPRERPBundleClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile KBV_PR_ERP_Bundle |
| 46 | 📦 kbv-erp | KBVPRERPMedicationFreeTextClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_Base_Medication_Type |
| 47 | 📦 kbv-erp | KBVPRERPMedicationIngredientClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_Base_Medication_Type |
| 48 | 📦 kbv-erp | KBVPRERPPrescriptionClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_FOR_StatusCoPayment |
| 49 | 📦 mcode | GenomicVariantClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: version vs display |
| 50 | 📦 mcode | LymphomaStageClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 51 | 📦 physical-activity | PACarePlanClass | firely | Failed to parse validator output | empty-parity, random-parity, random-validation | Firely SDK internal XML parsing error on generated JSON resource |
| 52 | 🇺🇸 US Core | USCoreVitalSignsProfileClass | hl7 | Cross-profile validation | empty-parity, random-parity, random-validation | HL7 bp |
Specific fields excluded from parity comparison because validators report them incorrectly. The profile still passes, but these fields are tolerated.
| # | IG | Profile | Validator | Field(s) | Category | Scope | Reason |
|---|---|---|---|---|---|---|---|
| 1 | au-core | AUCorePathologyResultClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 2 | au-core | AUCoreBloodPressureClass | firely | component | Discriminator evaluation failure | random-parity | Firely cannot use a coding sliced to more than one choice as a discriminator, so it abandons the schema and reports none of the four required slices we report |
| 3 | au-core | AUCorePatientClass | firely | country, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 4 | au-core | AUCorePractitionerClass | firely | country, type, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 5 | au-core | AUCorePractitionerRoleClass | firely | type, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 6 | au-core | AUCoreRelatedPersonClass | firely | country, type, system, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 7 | carin-bb | C4BBPatientClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 8 | cpg | CHFBodyWeightClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 9 | cpg | CHFO2SatClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 10 | cpg | CHFPotassiumClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 11 | cpg | CPGCommunicationRequestClass | firely | modifierextension | Validation model difference | empty-parity | Firely reports min=0 mustSupport slice modifierExtension:intent as a required slice; the SD sets min=0 max=1 |
| 12 | cqfmeasures | CQFMRatioMeasureClass | firely | population, unclassified | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 13 | cqfmeasures | CQFMContinuousVariableMeasureClass | firely | population, unclassified | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 14 | davinci-cdex | CDexTaskAttachmentRequestClass | firely | code, constraint, contained, resourceType, reference | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 15 | davinci-pas | PASMedicationRequestClass | firely | authoredon | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on authoredon |
| 16 | davinci-pas | PASBeneficiaryClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 17 | davinci-pas | PASSubscriberClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 18 | de-basisprofil | VitalSignDEKoerpergroesseClass | firely | coding | Discriminator evaluation failure | random-parity | Firely $this discriminator limitation: reports coding:loinc slice error despite correct LOINC code present |
| 19 | isik-basis | ISiKKontaktGesundheitseinrichtungClass | firely | unclassified | Empty parity field miss | empty-parity | Firely fires `implies` FHIRPath constraints on empty Encounter; per spec, empty antecedent = not applicable |
| 20 | kbv-erp | KBVPRERPBundleClass | firely | pattern | Validation model difference | empty-parity | Both validators report the meta.profile fixed-value mismatch; Firely anchors it to no element so it classifies as `pattern` while ours classifies as `meta` |
| 21 | mcode | ALLRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 22 | mcode | BodySurfaceAreaClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 23 | mcode | CancerRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 24 | mcode | CancerStageClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 25 | mcode | ComorbiditiesClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 26 | mcode | ECOGPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 27 | mcode | GenomicRegionStudiedClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 28 | mcode | HistologicBehaviorAndTypeClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 29 | mcode | HistologicGradeClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 30 | mcode | HistoryOfMetastaticCancerClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 31 | mcode | KarnofskyPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 32 | mcode | LanskyPlayPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 33 | mcode | RhabdomyosarcomaRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 34 | mcode | TumorMarkerTestClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 35 | mcode | TumorMorphologyClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 36 | mcode | TNMCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 37 | mcode | TNMDistantMetastasesCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 38 | mcode | TNMPrimaryTumorCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 39 | mcode | TNMRegionalNodesCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 40 | qicore | QICoreNonPatientObservationClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 41 | qicore | QICorePatientClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 42 | sdoh | SDOHCCObservationPersonalCharacteristicClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 43 | sdoh | SDOHCCObservationEthnicityOMBClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 44 | sdoh | SDOHCCObservationGenderIdentityClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 45 | sdoh | SDOHCCObservationPersonalPronounsClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 46 | sdoh | SDOHCCObservationRaceOMBClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 47 | sdoh | SDOHCCObservationSexualOrientationClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 48 | au-core | AUCorePatientClass | hl7 | country | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 49 | au-core | AUCorePractitionerClass | hl7 | country, type, unclassified | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 50 | au-core | AUCorePractitionerRoleClass | hl7 | type | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 51 | au-core | AUCoreRelatedPersonClass | hl7 | country, type, system, unclassified | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 52 | au-core | AUCoreMedicationStatementClass | hl7 | unclassified | Terminology server limitation | random-parity | tx.fhir.org: Australian ValueSet filter not understood |
| 53 | cqfmeasures | CQFMRatioMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 54 | cqfmeasures | CQFMContinuousVariableMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 55 | cqfmeasures | CQFMCohortMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 56 | cqfmeasures | CQFMProportionMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 57 | davinci-dtr | DTRQuestionnaireResponseClass | hl7 | code | SNOMED edition mismatch | random-parity | HL7 tx.fhir.org resolves CRD CodeSystem/temp to 2.2.0-ballot which lacks code "withpa"; DTR 2.1.0 package includes it in local ValueSet-DocReason — cross-package version mismatch on terminology server |
| 58 | davinci-pdex | PDexMultiMemberMatchRequestParametersClass | hl7 | constraint | Validation model difference | random-parity | HL7 rejects example.org URLs in Consent.policy.uri via built-in rule (not a FHIRPath constraint in the SD) |
| 59 | de-basisprofil | VitalSignDEClass | hl7 | constraint | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: "Could not match discriminator ($this) for slice Observation.code.coding:loinc/snomed" — HL7 cannot evaluate $this pattern discriminator without fixed value or binding assertions |
| 60 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungPulsoximetrieClass | hl7 | coding | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: undercounts coding:loinc slice matches (reports min=2 found=1 despite 3 LOINC codings present) due to faulty $this pattern evaluation inherited from base VitalSignDE profile |
| 61 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungPulsoximetrieClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 62 | de-basisprofil | VitalSignDEAtemfrequenzClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 63 | de-basisprofil | VitalSignDEHerzfrequenzClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 64 | de-basisprofil | VitalSignDEKoerperkerntemperaturClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 65 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 66 | mhd | ProvideDocumentBundleResponseClass | hl7 | unclassified | Bundled context required | random-parity | bdl-8 FHIRPath empty propagation: fullUrl.contains(/_history/).not() yields empty when fullUrl absent; fhirpath.js all() returns false, HL7 returns true |
| 67 | mhd | ComprehensiveDocumentReferenceClass | hl7 | constraint, code | Bundled context required | random-parity | Standalone validation of bundled-context profile: HL7 reports unresolvable reference for context.sourcePatientInfo; HL7 terminology server rejects DICOM codes not in loaded CodeSystem (non-deterministic) |
| 68 | mhd | UnContainedComprehensiveDocumentReferenceClass | hl7 | code | Bundled context required | random-parity | HL7 terminology server rejects DICOM ontology codes not in loaded CodeSystem (non-deterministic depending on random code generation) |
| 69 | mhd | ComprehensiveProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 70 | mhd | MinimalProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 71 | mhd | UnContainedComprehensiveProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 72 | mhd | AuditFindDocumentReferencesConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 73 | mhd | AuditFindDocumentReferencesResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 74 | mhd | AuditFindDocumentListsConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 75 | mhd | AuditFindDocumentListsResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 76 | mhd | AuditRetrieveDocumentConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 77 | mhd | AuditRetrieveDocumentResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 78 | pixm | AuditPixmFeedManagerUpdateClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 79 | pixm | AuditPixmFeedSourceUpdateClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 80 | pixm | AuditPixmQueryConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 81 | pixm | AuditPixmQueryManagerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 82 | qicore | QICoreImmunizationNotDoneClass | hl7 | code | Bundled context required | random-parity | HL7 validates fixedCode "not-done" against sibling qicore-immunization ValueSet (qicore-non-negative-immunization-status) which excludes it; the profile's own binding (immunization-status) includes it |
| 83 | sdc | SDCQuestionnaireExtractTemplateClass | hl7 | extension | Empty parity field miss | empty-parity | HL7 misses inherited min=1 on Questionnaire.url (tightened by sdc-questionnaire) |
| 84 | sdoh | SDOHCCConditionClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:screening-assessment slice from a binding-only discriminator (no fixed/pattern) |
| 85 | sdoh | SDOHCCObservationAssessmentClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:us-core slice from a binding-only discriminator (no fixed/pattern) |
| 86 | sdoh | SDOHCCObservationScreeningResponseClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:screening-assessment slice from a binding-only discriminator (no fixed/pattern) |
Average overall % across empty parity, random parity & random validation per pipeline run (50 runs)
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Vitals 1.0.0 | 1/1 (100%) | 9/15 (60%) | 9/15 (60%) |
| 📦 Ae Research 1.0.1 | 1/1 (100%) | 1/1 (100%) | 0/1 (0%) |
| 📦 Kbv Erp 1.4.4 ⚠️ | 4/4 (100%) | 4/4 (100%) | 0/4 (0%) |
| 📦 Davinci Alerts 1.1.0 | 8/8 (100%) | 8/8 (100%) | 1/8 (13%) |
| 📦 Davinci Dtr 2.2.0 | 14/14 (100%) | 14/14 (100%) | 2/14 (14%) |
| 📦 Davinci Cdex 2.1.0 | 7/7 (100%) | 7/7 (100%) | 2/7 (29%) |
| 📦 Mhd 4.2.4 | 31/31 (100%) | 31/31 (100%) | 11/31 (35%) |
| 📦 Pixm 3.1.0 | 11/11 (100%) | 11/11 (100%) | 4/11 (36%) |
| 📦 Carin Bb 2.2.0 | 16/16 (100%) | 16/16 (100%) | 6/16 (38%) |
| 📦 De Basisprofil 1.6.0 | 9/9 (100%) | 19/19 (100%) | 8/19 (42%) |
| 📦 Davinci Deqm 5.0.0 | 11/11 (100%) | 11/11 (100%) | 5/11 (45%) |
| 📦 Cqfmeasures 5.0.0 ⚠️ | 12/12 (100%) | 12/12 (100%) | 6/12 (50%) |
| 📦 Sdc 4.0.0 | 34/34 (100%) | 34/34 (100%) | 20/34 (59%) |
| 📦 Davinci Drug Formulary 2.1.0 | 8/8 (100%) | 8/8 (100%) | 5/8 (63%) |
| 📦 Davinci Pas 2.2.1 | 29/29 (100%) | 29/29 (100%) | 20/29 (69%) |
| 📦 Emedicinal Product 1.0.0 | 15/15 (100%) | 15/15 (100%) | 11/15 (73%) |
| 📦 Ndh 1.0.0 | 31/31 (100%) | 31/31 (100%) | 23/31 (74%) |
| 📦 Davinci Pdex 2.1.0 | 13/13 (100%) | 13/13 (100%) | 10/13 (77%) |
| 📦 Au Core 2.0.0 ⚠️ | 13/13 (100%) | 20/20 (100%) | 16/20 (80%) |
| 📦 Mcode 4.0.0 | 37/37 (100%) | 38/38 (100%) | 31/38 (82%) |
| 📦 Physical Activity 1.0.0 | 16/16 (100%) | 16/16 (100%) | 14/16 (88%) |
| 📦 Qicore 7.0.2 | 65/65 (100%) | 65/65 (100%) | 58/65 (89%) |
| 📦 Sdoh 2.3.0 | 20/20 (100%) | 20/20 (100%) | 18/20 (90%) |
| 📦 Genomics Reporting 3.0.0 | 17/17 (100%) | 17/17 (100%) | 16/17 (94%) |
| 📦 Cpg 2.0.0 ⚠️ | 96/96 (100%) | 98/98 (100%) | 93/98 (95%) |
| 🇨🇭 CH Core 6.0.0 | 28/28 (100%) | 29/29 (100%) | 29/29 (100%) |
| 🌍 IPS 2.0.1 | 27/27 (100%) | 27/27 (100%) | 27/27 (100%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 17/17 (100%) | 17/17 (100%) | 17/17 (100%) |
| 📦 Isik Medikation 4.0.3 ⚠️ | 4/4 (100%) | 4/4 (100%) | 4/4 (100%) |
| 🔐 SMART 2.2.0 | 6/6 (100%) | 6/6 (100%) | 6/6 (100%) |
| 🇺🇸 US Core 9.0.0 ⚠️ | 41/41 (100%) | 54/54 (100%) | 54/54 (100%) |
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Vitals 1.0.0 | 1/15 (7%) | 14/15 (93%) | 1/15 (7%) |
| 📦 Sdc 4.0.0 | 15/34 (44%) | 23/34 (68%) | 5/34 (15%) |
| 📦 Sdoh 2.3.0 | 13/20 (65%) | 19/20 (95%) | 3/20 (15%) |
| 📦 Davinci Dtr 2.2.0 | 10/14 (71%) | 12/14 (86%) | 2/14 (14%) |
| 📦 Physical Activity 1.0.0 ⚠️ | 11/15 (73%) | 13/15 (87%) | 11/15 (73%) |
| 📦 Davinci Pas 2.2.1 ⚠️ | 20/26 (77%) | 23/26 (88%) | 13/26 (50%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 22/27 (81%) | 27/27 (100%) | 22/27 (81%) |
| 📦 Pixm 3.1.0 | 9/11 (82%) | 11/11 (100%) | 4/11 (36%) |
| 📦 Mcode 4.0.0 ⚠️ | 30/36 (83%) | 34/36 (94%) | 6/36 (17%) |
| 📦 Carin Bb 2.2.0 ⚠️ | 5/6 (83%) | 6/6 (100%) | 5/6 (83%) |
| 📦 Mhd 4.2.4 | 26/31 (84%) | 26/31 (84%) | 10/31 (32%) |
| 📦 Ndh 1.0.0 | 26/31 (84%) | 31/31 (100%) | 19/31 (61%) |
| 📦 Davinci Cdex 2.1.0 | 6/7 (86%) | 5/7 (71%) | 1/7 (14%) |
| 🌍 IPS 2.0.1 | 24/27 (89%) | 26/27 (96%) | 24/27 (89%) |
| 📦 Davinci Pdex 2.1.0 ⚠️ | 11/12 (92%) | 11/12 (92%) | 9/12 (75%) |
| 📦 Qicore 7.0.2 | 62/65 (95%) | 53/65 (82%) | 41/65 (63%) |
| 📦 Au Core 2.0.0 ⚠️ | 21/22 (95%) | 22/22 (100%) | 16/22 (73%) |
| 📦 Kbv Erp 1.4.4 | 8/8 (100%) | 2/8 (25%) | 0/8 (0%) |
| 📦 Davinci Alerts 1.1.0 ⚠️ | 3/3 (100%) | 2/3 (67%) | 1/3 (33%) |
| 📦 Emedicinal Product 1.0.0 | 15/15 (100%) | 10/15 (67%) | 11/15 (73%) |
| 📦 De Basisprofil 1.6.0 | 19/19 (100%) | 14/19 (74%) | 8/19 (42%) |
| 📦 Cqfmeasures 5.0.0 | 13/13 (100%) | 11/13 (85%) | 6/13 (46%) |
| 📦 Davinci Drug Formulary 2.1.0 ⚠️ | 7/7 (100%) | 6/7 (86%) | 5/7 (71%) |
| 📦 Davinci Deqm 5.0.0 | 11/11 (100%) | 10/11 (91%) | 5/11 (45%) |
| 🇨🇭 CH Core 6.0.0 | 29/29 (100%) | 27/29 (93%) | 22/29 (76%) |
| 📦 Cpg 2.0.0 | 99/99 (100%) | 96/99 (97%) | 76/99 (77%) |
| 📦 Ae Research 1.0.1 | 1/1 (100%) | 1/1 (100%) | 0/1 (0%) |
| 📦 Genomics Reporting 3.0.0 | 17/17 (100%) | 17/17 (100%) | 16/17 (94%) |
| 📦 Isik Medikation 4.0.3 | 8/8 (100%) | 8/8 (100%) | 8/8 (100%) |
| 🔐 SMART 2.2.0 | 6/6 (100%) | 6/6 (100%) | 6/6 (100%) |
| 🇺🇸 US Core 9.0.0 | 55/55 (100%) | 55/55 (100%) | 55/55 (100%) |
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Kbv Erp 1.4.4 | 24/32 (75%) | 21/32 (66%) | 21/32 (66%) |
| 📦 Cqfmeasures 5.0.0 | 37/44 (84%) | 34/44 (77%) | 32/44 (73%) |
| 📦 Davinci Cdex 2.1.0 | 13/15 (87%) | 9/15 (60%) | 8/15 (53%) |
| 📦 Sdoh 2.3.0 | 22/25 (88%) | 21/25 (84%) | 22/25 (88%) |
| 📦 Physical Activity 1.0.0 | 17/19 (89%) | 17/19 (89%) | 17/19 (89%) |
| 📦 Ndh 1.0.0 | 79/88 (90%) | 79/88 (90%) | 79/88 (90%) |
| 📦 Emedicinal Product 1.0.0 | 14/15 (93%) | 12/15 (80%) | 11/15 (73%) |
| 📦 Davinci Deqm 5.0.0 | 32/34 (94%) | 26/34 (76%) | 23/34 (68%) |
| 📦 Isik Medikation 4.0.3 | 15/16 (94%) | 15/16 (94%) | 15/16 (94%) |
| 📦 Carin Bb 2.2.0 | 21/22 (95%) | 10/22 (45%) | 10/22 (45%) |
| 📦 Davinci Pas 2.2.1 | 92/97 (95%) | 59/97 (61%) | 51/97 (53%) |
| 📦 Davinci Drug Formulary 2.1.0 | 20/21 (95%) | 18/21 (86%) | 13/21 (62%) |
| 📦 Sdc 4.0.0 | 157/160 (98%) | 132/160 (83%) | 119/160 (74%) |
| 🇩🇪 ISiK Basis 4.0.3 | 62/63 (98%) | 59/63 (94%) | 58/63 (92%) |
| 📦 Cpg 2.0.0 | 130/132 (98%) | 126/132 (95%) | 122/132 (92%) |
| 🇨🇭 CH Core 6.0.0 | 87/88 (99%) | 83/88 (94%) | 83/88 (94%) |
| 📦 Mhd 4.2.4 | 39/39 (100%) | 17/39 (44%) | 17/39 (44%) |
| 📦 Pixm 3.1.0 | 15/15 (100%) | 8/15 (53%) | 8/15 (53%) |
| 📦 Davinci Alerts 1.1.0 | 10/10 (100%) | 6/10 (60%) | 2/10 (20%) |
| 📦 De Basisprofil 1.6.0 | 85/85 (100%) | 63/85 (74%) | 63/85 (74%) |
| 📦 Au Core 2.0.0 | 60/60 (100%) | 45/60 (75%) | 40/60 (67%) |
| 📦 Genomics Reporting 3.0.0 | 48/48 (100%) | 37/48 (77%) | 47/48 (98%) |
| 📦 Davinci Dtr 2.2.0 | 96/96 (100%) | 75/96 (78%) | 64/96 (67%) |
| 📦 Davinci Pdex 2.1.0 | 59/59 (100%) | 49/59 (83%) | 47/59 (80%) |
| 📦 Mcode 4.0.0 | 71/71 (100%) | 61/71 (86%) | 59/71 (83%) |
| 🔐 SMART 2.2.0 | 9/9 (100%) | 8/9 (89%) | 8/9 (89%) |
| 📦 Qicore 7.0.2 | 86/86 (100%) | 82/86 (95%) | 74/86 (86%) |
| 🇺🇸 US Core 9.0.0 | 82/82 (100%) | 78/82 (95%) | 77/82 (94%) |
| 📦 Vitals 1.0.0 | 24/24 (100%) | 23/24 (96%) | 23/24 (96%) |
| 🌍 IPS 2.0.1 | 38/38 (100%) | 37/38 (97%) | 37/38 (97%) |
| 📦 Ae Research 1.0.1 | 5/5 (100%) | 5/5 (100%) | 3/5 (60%) |
FHIRPath constraints from StructureDefinitions that could not be translated into Zod runtime validators.
| # | Package | Constraint |
|---|---|---|
| 1 | au-core | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 2 | carin-bb | Care Team Rendering physician's qualifications are from Healthcare Provider Taxonomy Value Set |
| 3 | carin-bb | If Adjudication is present |
| 4 | carin-bb | it must have at least one adjudicationamounttype slice |
| 5 | carin-bb | Institutional EOB: Should have adjudication with adjudicationamounttype slice at the item or header level |
| 6 | carin-bb | but not both |
| 7 | carin-bb | Institutional EOB: Careteam roles refer to a practitioner |
| 8 | carin-bb | Pharmacy EOB: Careteam roles refer to a practitioner |
| 9 | carin-bb | Pharmacy EOB: Careteam roles refer to an organization |
| 10 | carin-bb | Professional EOB: Careteam roles refer to a practitioner |
| 11 | carin-bb | Professional EOB: SupportingInfo repetitions with with transportation category code must be referred to by one or more repetitions of item.informationSequence |
| 12 | cpg | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 13 | cpg | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 14 | davinci-cdex | Date must be to day. |
| 15 | davinci-drug-formulary | All drugs with RxNorm Term Type of Semantic Clinical Drug (SCD) or Semantic Branded Drug (SBD) SHALL have a coding repetition and RxNorm Term Type of Semantic Clinical Drug Group (SCDG) or Semantic Branded Drug Group (SBDG) respectively |
| 16 | davinci-pas | Dates need to be a full date - YYYY-MM-DD |
| 17 | davinci-pas | If reason.coding is present and is not from the extensible value set |
| 18 | davinci-pas | then reason.text must be present |
| 19 | davinci-pdex | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
| 20 | de-basisprofil | Ergebnis muss eine durch 10 teilbare Zahl sein |
| 21 | de-basisprofil | If Observation.effective[x] has a value then that value shall be precise to the day |
| 22 | emedicinal-product | RouteOfAdministration cannot be used when the 'formOf' product already uses MedicinalProductDefinition.route (and vice versa) |
| 23 | ips | Datetime must be at least to day. |
| 24 | kbv-erp | Eine Ressource vom Typ Practitioner wird als verantwortliche Person angegeben |
| 25 | kbv-erp | diese darf aber nur angegeben werden |
| 26 | kbv-erp | wenn es sich bei der ausstellenden Person um einen Arzt in Weiterbildung oder Arzt als Vertreter handelt. |
| 27 | kbv-erp | Eine Ressource vom Typ Practitioner wird als verantwortliche Person angegeben |
| 28 | kbv-erp | diese darf aber nur angegeben werden |
| 29 | kbv-erp | wenn es sich nicht um eine Hebamme oder einen Arzt in Weiterbildung handelt. |
| 30 | kbv-erp | Es wird keine Ressource vom Typ Practitioner als verantwortliche Person angegeben |
| 31 | kbv-erp | dies ist aber eine Pflichtangabe |
| 32 | kbv-erp | wenn es sich bei der ausstellenden oder verschreibenden Person um einen Arzt in Weiterbildung ohne Identifikator handelt. |
| 33 | kbv-erp | In der Ressource vom Typ Practitioner ist der Identifikator der ausstellenden oder verschreibenden Person nicht vorhanden |
| 34 | kbv-erp | dieser ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 35 | kbv-erp | "BG" |
| 36 | kbv-erp | "SKT" |
| 37 | kbv-erp | "UK" oder "PKV" |
| 38 | kbv-erp | wenn es sich um einen Arzt |
| 39 | kbv-erp | Zahnarzt oder Arzt als Vertreter handelt und keine ASV-Fachgruppennummer angegeben ist. |
| 40 | kbv-erp | In der Ressource vom Typ Practitioner ist der Identifikator der verantwortlichen Person nicht vorhanden |
| 41 | kbv-erp | dieser ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 42 | kbv-erp | "BG" |
| 43 | kbv-erp | "SKT" oder "UK" |
| 44 | kbv-erp | wenn es sich um einen Arzt |
| 45 | kbv-erp | Zahnarzt oder Arzt als Vertreter handelt und keine ASV-Fachgruppennummer angegeben ist. |
| 46 | kbv-erp | In einer Ressource vom Typ Organization ist kein Identifikator der Einrichtung (z.B. Betriebsstaettennummer) vorhanden |
| 47 | kbv-erp | diese ist aber eine Pflichtangabe bei den Kostentraegern der Typen "GKV" |
| 48 | kbv-erp | "PKV" |
| 49 | kbv-erp | "BG" |
| 50 | kbv-erp | "SKT" oder "UK" |
| 51 | kbv-erp | wenn es sich bei der austellenden/verschreibenden Person um einen Arzt |
| 52 | kbv-erp | Zahnarzt |
| 53 | kbv-erp | Arzt in Weiterbildung oder Arzt als Vertreter handelt. |
| 54 | kbv-erp | In einer Ressource vom Typ Practitioner ist eine ASV-Fachgruppennummer der ausstellenden Person vorhanden |
| 55 | kbv-erp | diese darf aber nur angegeben werden |
| 56 | kbv-erp | wenn die Rechtsgrundlage den Wert "01" oder "11" besitzt und wenn es sich um einen Arzt oder Arzt als Vertreter handelt |
| 57 | kbv-erp | für den kein Identifikator angegeben ist. |
| 58 | kbv-erp | In einer Ressource vom Typ Practitioner ist eine ASV-Fachgruppennummer der verantwortlichen Person vorhanden |
| 59 | kbv-erp | diese darf aber nur angegeben werden |
| 60 | kbv-erp | wenn die Rechtsgrundlage den Wert "01" oder "11" besitzt und wenn es sich um einen Arzt oder Arzt als Vertreter handelt |
| 61 | kbv-erp | für den kein Identifikator angegeben ist. |
| 62 | kbv-erp | Wenn es sich um ein T-Rezept handelt |
| 63 | kbv-erp | darf die ausstellende / verschreibende Person kein Zahnarzt und keine Hebamme sein. |
| 64 | mcode | Datetime must be at least to day. |
| 65 | mcode | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 66 | ndh | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 67 | qicore | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 68 | qicore | Datetime must be at least to day. |
| 69 | sdc | Either code is 'fulfill' |
| 70 | sdc | focus is ServiceRequest and no 'questionnaire' input; or code is 'complete-questionnaire' |
| 71 | sdc | focus is omitted and 'questionnaire' input is present |
| 72 | sdoh | At least one Condition.category SHALL be encounter-diagnosis |
| 73 | sdoh | problem-list-item |
| 74 | sdoh | or health-concern |
| 75 | sdoh | Datetime must be at least to day. |
| 76 | sdoh | If Task.code is "review-material" |
| 77 | sdoh | then Task.focus of DocumentReference is required. |
| 78 | us-core | CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner |
| 79 | us-core | Datetime must be at least to day. |
| 80 | us-core | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| 81 | us-core | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
| 82 | vitals | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day |
| Package | Resources | Val Total | Val Avg | Zod Total | Zod Avg | HL7 Total | HL7 Avg | Firely Total | Firely Avg |
|---|---|---|---|---|---|---|---|---|---|
| ae-research | 10 | 0.1s | 9.5ms | 0.02s | 2.1ms | 33.85s | 16926ms | 21.79s | 10895.5ms |
| au-core | 120 | 0.82s | 6.8ms | 0.13s | 1ms | 66.58s | 1331.6ms | 22.29s | 445.8ms |
| carin-bb | 44 | 1.53s | 34.8ms | 0.17s | 4ms | 102.53s | 3204.2ms | 47.5s | 1484.4ms |
| ch-core | 176 | 1.05s | 6ms | 0.15s | 0.9ms | 74.31s | 1281.1ms | 40.16s | 692.4ms |
| cpg | 264 | 1.05s | 4ms | 0.49s | 1.9ms | 166.66s | 841.7ms | 53.39s | 269.6ms |
| cqfmeasures | 88 | 0.77s | 8.8ms | 0.13s | 1.5ms | 50.6s | 1946.3ms | 21.55s | 828.8ms |
| davinci-alerts | 20 | 0.12s | 6.2ms | 0.03s | 1.7ms | 83.7s | 5231.1ms | 67.5s | 4218.9ms |
| davinci-cdex | 30 | 0.14s | 4.6ms | 0.05s | 1.7ms | 88.2s | 6299.9ms | 74.71s | 5336.4ms |
| davinci-deqm | 68 | 0.33s | 4.9ms | 0.05s | 0.8ms | 107.45s | 4884.3ms | 81.49s | 3704.1ms |
| davinci-drug-formulary | 42 | 0.34s | 8.2ms | 0.05s | 1.2ms | 108.33s | 6770.8ms | 53.26s | 3328.8ms |
| davinci-dtr | 192 | 0.97s | 5.1ms | 0.13s | 0.7ms | 184.96s | 6605.8ms | 76.34s | 2726.5ms |
| davinci-pas | 194 | 2.41s | 12.4ms | 0.22s | 1.1ms | 262.92s | 4533.1ms | 75.75s | 1306.1ms |
| davinci-pdex | 118 | 0.4s | 3.4ms | 0.1s | 0.9ms | 377.9s | 14534.5ms | 100.55s | 3867.3ms |
| de-basisprofil | 170 | 0.91s | 5.4ms | 0.13s | 0.7ms | 38.52s | 1013.8ms | 27.49s | 723.4ms |
| emedicinal-product | 30 | 0.24s | 7.9ms | 0.11s | 3.6ms | 34.38s | 1145.9ms | 15.74s | 524.7ms |
| genomics-reporting | 96 | 0.33s | 3.4ms | 0.1s | 1ms | 57.37s | 1687.4ms | 15.22s | 447.7ms |
| ips | 76 | 0.4s | 5.2ms | 0.16s | 2.1ms | 37.72s | 698.4ms | 33.83s | 626.4ms |
| isik-basis | 126 | 1.26s | 10ms | 0.13s | 1ms | 40.31s | 719.8ms | 31.29s | 558.8ms |
| isik-medikation | 32 | 1.37s | 42.9ms | 0.03s | 0.9ms | 30.98s | 1936.3ms | 15.25s | 952.9ms |
| kbv-erp | 64 | 0.69s | 10.9ms | 0.06s | 1ms | 52.55s | 3284.7ms | 33.69s | 2105.3ms |
| mcode | 142 | 0.65s | 4.6ms | 0.18s | 1.3ms | 73.99s | 973.5ms | 56.95s | 749.3ms |
| mhd | 78 | 0.83s | 10.7ms | 0.16s | 2ms | 132.29s | 2133.6ms | 43.54s | 702.3ms |
| ndh | 176 | 0.69s | 3.9ms | 0.21s | 1.2ms | 139.06s | 2242.8ms | 61.87s | 997.8ms |
| physical-activity | 38 | 0.49s | 12.8ms | 0.11s | 2.9ms | 53.39s | 1668.5ms | 67.27s | 2102.3ms |
| pixm | 30 | 0.21s | 6.9ms | 0.08s | 2.8ms | 53.69s | 2440.4ms | 35.51s | 1614.2ms |
| qicore | 172 | 0.82s | 4.8ms | 0.27s | 1.6ms | 326.73s | 2513.3ms | 73.03s | 561.8ms |
| sdc | 320 | 1.32s | 4.1ms | 0.15s | 0.5ms | 119.51s | 1757.5ms | 59.34s | 872.7ms |
| sdoh | 50 | 0.53s | 10.5ms | 0.12s | 2.5ms | 94.88s | 2372ms | 65.36s | 1634ms |
| smart | 18 | 0.47s | 26.1ms | 0.04s | 2.5ms | 48.04s | 4003.7ms | 12.89s | 1074.3ms |
| us-core | 164 | 1.15s | 7ms | 0.28s | 1.7ms | 160.66s | 1460.5ms | 78.26s | 711.5ms |
| vitals | 48 | 0.19s | 4ms | 0.08s | 1.6ms | 31.36s | 1045.2ms | 41.07s | 1369ms |
| Package | Extract | Init | Resolve | Generate | Compile | Repack | Total |
|---|---|---|---|---|---|---|---|
| ae-research | 0.05s | 4s | 4.7s | 2.8s | 2.5s | 0.08s | 14.8s |
| au-core | 0.08s | 4.2s | 8.4s | 1.8s | 6.6s | 0.26s | 23.3s |
| carin-bb | 0.09s | 4.6s | 13.7s | 3.6s | 9.2s | 0.24s | 32.2s |
| ch-core | 0.11s | 3.9s | 4.7s | 1s | 8.9s | 0.39s | 20.6s |
| cpg | 0.39s | 5.4s | 3.2s | 1.9s | 21s | 0.86s | 34.3s |
| cqfmeasures | 0.16s | 5.5s | 8s | 2.3s | 6.7s | 0.4s | 23.6s |
| davinci-alerts | 0.03s | 5.3s | 13.4s | 1.9s | 3.3s | 0.14s | 25.1s |
| davinci-cdex | 0.06s | 4.9s | 35.3s | 0.81s | 3.4s | 0.15s | 45.2s |
| davinci-deqm | 0.1s | 4.2s | 14.7s | 1.4s | 3.6s | 0.18s | 24.5s |
| davinci-drug-formulary | 0.07s | 4.6s | 14.3s | 1.3s | 3.7s | 0.23s | 25.1s |
| davinci-dtr | 0.07s | 4.3s | 47s | 1.7s | 7.6s | 0.31s | 61.5s |
| davinci-pas | 0.16s | 5.8s | 50.6s | 5.4s | 12.2s | 0.48s | 76.1s |
| davinci-pdex | 0.12s | 5.7s | 50.4s | 2.1s | 7.8s | 0.35s | 67.5s |
| de-basisprofil | 0.1s | 3.7s | 0.66s | 0.77s | 8.4s | 0.34s | 14.6s |
| emedicinal-product | 0.08s | 5.1s | 3.2s | 3.7s | 5.6s | 0.18s | 20.5s |
| genomics-reporting | 0.17s | 4.6s | 2.7s | 0.45s | 7.2s | 0.33s | 16.2s |
| ips | 0.12s | 5.6s | 6.9s | 1.2s | 7.7s | 0.34s | 23.2s |
| isik-basis | 0.07s | 4s | 3s | 0.42s | 6.8s | 0.24s | 15.2s |
| isik-medikation | 0.04s | 5.3s | 4.1s | 101.9s | 2.9s | 0.12s | 114.8s |
| kbv-erp | 0.03s | 3.9s | 6.5s | 0.53s | 4.6s | 0.17s | 16.2s |
| mcode | 0.19s | 3.9s | 11s | 1.8s | 9.8s | 0.51s | 28.5s |
| mhd | 0.12s | 4s | 4.4s | 0.63s | 7.5s | 0.32s | 19.4s |
| ndh | 0.25s | 5.8s | 18.7s | 3.3s | 9.9s | 0.54s | 39.3s |
| physical-activity | 0.13s | 4.4s | 15.9s | 0.95s | 6.5s | 0.31s | 28.6s |
| pixm | 0.06s | 3.9s | 3.1s | 0.5s | 4.6s | 0.19s | 12.8s |
| qicore | 0.14s | 3.6s | 9.2s | 5.4s | 13.4s | 0.54s | 35.1s |
| sdc | 0.13s | 4.4s | 8.9s | 2.4s | 9.2s | 0.39s | 26.9s |
| sdoh | 0.1s | 4.5s | 19.8s | 2.3s | 7.3s | 0.32s | 35.3s |
| smart | 0.04s | 4.2s | 6.2s | 2.8s | 3.7s | 0.15s | 17.3s |
| us-core | 0.29s | 5.2s | 20.3s | 2.3s | 15.5s | 0.7s | 48.8s |
| vitals | 0.05s | 4.9s | 1.8s | 0.66s | 4.5s | 0.18s | 12.3s |
Profiles excluded from parity statistics due to external issues (validator bugs, profile defects, or terminology limitations). BabelFHIR-TS generates valid resources for all of these.
| Pattern | Count | Affected Validator(s) |
|---|---|---|
| Element ordering (parser bug) | 21 | 21 firely |
| Discriminator evaluation failure | 15 | 15 hl7 |
| Bundled context required | 5 | 5 firely |
| Terminology server limitation | 4 | 4 hl7 |
| Missing snapshot | 4 | 4 hl7 |
| Cross-profile validation | 2 | 2 hl7 |
| Failed to parse validator output | 2 | 1 hl7 1 firely |
| SNOMED edition mismatch | 1 | 1 hl7 |
| # | IG | Profile | Validator | Category | Scope | Error |
|---|---|---|---|---|---|---|
| 1 | 📦 au-core | AUCoreMedicationClass | both | Firely: Element ordering (parser bug) HL7: Terminology server limitation |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: tx.fhir.org: Australian ValueSet filter not understood |
| 2 | 📦 au-core | AUCoreMedicationRequestClass | both | Firely: Element ordering (parser bug) HL7: Terminology server limitation |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: tx.fhir.org: Australian ValueSet filter not understood |
| 3 | 🇩🇪 ISiK Basis | ISiKProzedurClass | both | Firely: Element ordering (parser bug) HL7: Discriminator evaluation failure |
empty-parity, random-parity, random-validation | Firely: Firely parser ordering bug: coding vs text HL7: HL7 slicing: unable to resolve profile CodingOPS |
| 4 | 📦 au-core | AUCoreConditionClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 5 | 📦 au-core | AUCoreImmunizationClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 6 | 📦 au-core | AUCoreProcedureClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 7 | 📦 au-core | AUCoreSmokingStatusClass | hl7 | SNOMED edition mismatch | empty-parity, random-parity, random-validation | SNOMED AU code not in International Edition |
| 8 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 9 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 10 | 📦 carin-bb | C4BBExplanationOfBenefitOralBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 11 | 📦 carin-bb | C4BBExplanationOfBenefitOralClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 12 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 13 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 14 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 15 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 16 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 17 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 18 | 📦 cpg | CHFBodyWeightClass | hl7 | Cross-profile validation | empty-parity, random-parity, random-validation | HL7 bp |
| 19 | 📦 cqfmeasures | CQFMPublishableMeasureClass | hl7 | Failed to parse validator output | empty-parity, random-parity, random-validation | HL7 validator crashes — unparseable output |
| 20 | 📦 davinci-alerts | AdmitNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 21 | 📦 davinci-alerts | ADTNotificationCoverageProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 22 | 📦 davinci-alerts | ADTNotificationEncounterProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 23 | 📦 davinci-alerts | DischargeNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 24 | 📦 davinci-alerts | NotificationsMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 25 | 📦 davinci-drug-formulary | FormularyDrugClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 26 | 📦 DaVinci PAS | PASDeviceRequestClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 27 | 📦 DaVinci PAS | PASEncounterClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 28 | 📦 DaVinci PAS | PASTaskClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 29 | 📦 davinci-pdex | PdexMedicationDispenseClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 30 | 🇩🇪 ISiK Basis | ISiKAbrechnungsfallClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-abrechnungsnummer |
| 31 | 🇩🇪 ISiK Basis | ISiKAllergieUnvertraeglichkeitClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile CodingASK |
| 32 | 🇩🇪 ISiK Basis | ISiKAngehoerigerClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile address-de-basis |
| 33 | 🇩🇪 ISiK Basis | ISiKDiagnoseClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKDiagnose |
| 34 | 🇩🇪 ISiK Basis | ISiKOrganisationClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-iknr |
| 35 | 🇩🇪 ISiK Basis | ISiKOrganisationFachabteilungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-iknr |
| 36 | 🇩🇪 ISiK Basis | ISiKPatientClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-kvid-10 |
| 37 | 🇩🇪 ISiK Basis | ISiKPersonImGesundheitsberufClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile identifier-lanr |
| 38 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisGesetzlichClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisGesetzlich |
| 39 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisSelbstzahlerClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisSelbstzahler |
| 40 | 📦 isik-medikation | ISiKMedikamentClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 41 | 📦 isik-medikation | ISiKMedikationsInformationClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 42 | 📦 isik-medikation | ISiKMedikationsVerabreichungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 43 | 📦 isik-medikation | ISiKMedikationsVerordnungClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile ISiKPZNCoding |
| 44 | 📦 kbv-erp | KBVPRERPBundleClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile KBV_PR_ERP_Bundle |
| 45 | 📦 kbv-erp | KBVPRERPMedicationFreeTextClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_Base_Medication_Type |
| 46 | 📦 kbv-erp | KBVPRERPMedicationIngredientClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_Base_Medication_Type |
| 47 | 📦 kbv-erp | KBVPRERPPrescriptionClass | hl7 | Discriminator evaluation failure | empty-parity, random-parity, random-validation | HL7 slicing: unable to resolve profile KBV_EX_FOR_StatusCoPayment |
| 48 | 📦 mcode | GenomicVariantClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: version vs display |
| 49 | 📦 mcode | LymphomaStageClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 50 | 📦 physical-activity | PACarePlanClass | firely | Failed to parse validator output | empty-parity, random-parity, random-validation | Firely SDK internal XML parsing error on generated JSON resource |
| 51 | 🇺🇸 US Core | USCoreVitalSignsProfileClass | hl7 | Cross-profile validation | empty-parity, random-parity, random-validation | HL7 bp |
Specific fields excluded from parity comparison because validators report them incorrectly. The profile still passes, but these fields are tolerated.
| # | IG | Profile | Validator | Field(s) | Category | Scope | Reason |
|---|---|---|---|---|---|---|---|
| 1 | au-core | AUCorePathologyResultClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 2 | au-core | AUCoreBloodPressureClass | firely | component | Discriminator evaluation failure | random-parity | Firely cannot use a coding sliced to more than one choice as a discriminator, so it abandons the schema and reports none of the four required slices we report |
| 3 | au-core | AUCorePatientClass | firely | country, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 4 | au-core | AUCorePractitionerClass | firely | country, type, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 5 | au-core | AUCorePractitionerRoleClass | firely | type, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 6 | au-core | AUCoreRelatedPersonClass | firely | country, type, system, pattern, unclassified | Discriminator evaluation failure | random-parity | Firely validates against an identifier slice whose discriminator the instance does not satisfy, and omits the fixed country and system we report |
| 7 | carin-bb | C4BBPatientClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 8 | cpg | CHFBodyWeightClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 9 | cpg | CHFO2SatClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 10 | cpg | CHFPotassiumClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 11 | cpg | CPGCommunicationRequestClass | firely | modifierextension | Validation model difference | empty-parity | Firely reports min=0 mustSupport slice modifierExtension:intent as a required slice; the SD sets min=0 max=1 |
| 12 | cqfmeasures | CQFMRatioMeasureClass | firely | population, unclassified | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 13 | cqfmeasures | CQFMContinuousVariableMeasureClass | firely | population, unclassified | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 14 | davinci-cdex | CDexTaskAttachmentRequestClass | firely | code, constraint, contained, resourceType, reference | Validation model difference | random-parity | Firely aborts at the first structure it cannot parse, so it never evaluates the further findings we report on the same resource |
| 15 | davinci-pas | PASMedicationRequestClass | firely | authoredon | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on authoredon |
| 16 | davinci-pas | PASBeneficiaryClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 17 | davinci-pas | PASSubscriberClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 18 | de-basisprofil | VitalSignDEKoerpergroesseClass | firely | coding | Discriminator evaluation failure | random-parity | Firely $this discriminator limitation: reports coding:loinc slice error despite correct LOINC code present |
| 19 | isik-basis | ISiKKontaktGesundheitseinrichtungClass | firely | unclassified | Empty parity field miss | empty-parity | Firely fires `implies` FHIRPath constraints on empty Encounter; per spec, empty antecedent = not applicable |
| 20 | kbv-erp | KBVPRERPBundleClass | firely | pattern | Validation model difference | empty-parity | Both validators report the meta.profile fixed-value mismatch; Firely anchors it to no element so it classifies as `pattern` while ours classifies as `meta` |
| 21 | mcode | ALLRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 22 | mcode | BodySurfaceAreaClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 23 | mcode | CancerRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 24 | mcode | CancerStageClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 25 | mcode | ComorbiditiesClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 26 | mcode | ECOGPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 27 | mcode | GenomicRegionStudiedClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 28 | mcode | HistologicBehaviorAndTypeClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 29 | mcode | HistologicGradeClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 30 | mcode | HistoryOfMetastaticCancerClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 31 | mcode | KarnofskyPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 32 | mcode | LanskyPlayPerformanceStatusClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 33 | mcode | RhabdomyosarcomaRiskAssessmentClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 34 | mcode | TumorMarkerTestClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 35 | mcode | TumorMorphologyClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 36 | mcode | TNMCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 37 | mcode | TNMDistantMetastasesCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 38 | mcode | TNMPrimaryTumorCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 39 | mcode | TNMRegionalNodesCategoryClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 40 | qicore | QICoreNonPatientObservationClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 41 | qicore | QICorePatientClass | firely | gender | Empty parity field miss | empty-parity | Firely misses profile-level min=1 on gender (inherited from US Core) |
| 42 | sdoh | SDOHCCObservationPersonalCharacteristicClass | firely | category, subject | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 43 | sdoh | SDOHCCObservationEthnicityOMBClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 44 | sdoh | SDOHCCObservationGenderIdentityClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 45 | sdoh | SDOHCCObservationPersonalPronounsClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 46 | sdoh | SDOHCCObservationRaceOMBClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 47 | sdoh | SDOHCCObservationSexualOrientationClass | firely | category, subject, method | Empty parity field miss | empty-parity | Firely does not report this profile's own required elements on an empty resource; verified required in the StructureDefinition, by min=1 or by a subject.exists() invariant |
| 48 | au-core | AUCorePatientClass | hl7 | country | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 49 | au-core | AUCorePractitionerClass | hl7 | country, type, unclassified | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 50 | au-core | AUCorePractitionerRoleClass | hl7 | type | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 51 | au-core | AUCoreRelatedPersonClass | hl7 | country, type, system, unclassified | Validation model difference | random-parity | HL7 resolves au-address and au-base but does not report the fixed country, fixed identifier system or required type they pin |
| 52 | au-core | AUCoreMedicationStatementClass | hl7 | unclassified | Terminology server limitation | random-parity | tx.fhir.org: Australian ValueSet filter not understood |
| 53 | cqfmeasures | CQFMRatioMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 54 | cqfmeasures | CQFMContinuousVariableMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 55 | cqfmeasures | CQFMCohortMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 56 | cqfmeasures | CQFMProportionMeasureClass | hl7 | population | Empty parity field miss | empty-parity | HL7 misses slice-level min=1 for Measure.group.population |
| 57 | davinci-dtr | DTRQuestionnaireResponseClass | hl7 | code | SNOMED edition mismatch | random-parity | HL7 tx.fhir.org resolves CRD CodeSystem/temp to 2.2.0-ballot which lacks code "withpa"; DTR 2.1.0 package includes it in local ValueSet-DocReason — cross-package version mismatch on terminology server |
| 58 | davinci-pdex | PDexMultiMemberMatchRequestParametersClass | hl7 | constraint | Validation model difference | random-parity | HL7 rejects example.org URLs in Consent.policy.uri via built-in rule (not a FHIRPath constraint in the SD) |
| 59 | de-basisprofil | VitalSignDEClass | hl7 | constraint | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: "Could not match discriminator ($this) for slice Observation.code.coding:loinc/snomed" — HL7 cannot evaluate $this pattern discriminator without fixed value or binding assertions |
| 60 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungPulsoximetrieClass | hl7 | coding | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: undercounts coding:loinc slice matches (reports min=2 found=1 despite 3 LOINC codings present) due to faulty $this pattern evaluation inherited from base VitalSignDE profile |
| 61 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungPulsoximetrieClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 62 | de-basisprofil | VitalSignDEAtemfrequenzClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 63 | de-basisprofil | VitalSignDEHerzfrequenzClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 64 | de-basisprofil | VitalSignDEKoerperkerntemperaturClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 65 | de-basisprofil | VitalSignDEArterielleSauerstoffsaettigungClass | hl7 | pattern | Validation model difference | random-parity | HL7 reports one fixed-value violation twice, anchored to both profiles that pin the unit; we report it once |
| 66 | mhd | ProvideDocumentBundleResponseClass | hl7 | unclassified | Bundled context required | random-parity | bdl-8 FHIRPath empty propagation: fullUrl.contains(/_history/).not() yields empty when fullUrl absent; fhirpath.js all() returns false, HL7 returns true |
| 67 | mhd | ComprehensiveDocumentReferenceClass | hl7 | constraint, code | Bundled context required | random-parity | Standalone validation of bundled-context profile: HL7 reports unresolvable reference for context.sourcePatientInfo; HL7 terminology server rejects DICOM codes not in loaded CodeSystem (non-deterministic) |
| 68 | mhd | UnContainedComprehensiveDocumentReferenceClass | hl7 | code | Bundled context required | random-parity | HL7 terminology server rejects DICOM ontology codes not in loaded CodeSystem (non-deterministic depending on random code generation) |
| 69 | mhd | ComprehensiveProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 70 | mhd | MinimalProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 71 | mhd | UnContainedComprehensiveProvideDocumentBundleClass | hl7 | constraint, entry, pattern | Validation model difference | random-parity | Bundle entry slice validation model difference: our validator matches entries by resourceType and delegates to sub-profile validators (catching code+extension errors), while HL7 uses conformsTo-based matching and reports entry-level slice rejection + pattern mismatch. Both detect the same underlying issues (wrong code, missing extensions) but organize errors across different field categories. |
| 72 | mhd | AuditFindDocumentReferencesConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 73 | mhd | AuditFindDocumentReferencesResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 74 | mhd | AuditFindDocumentListsConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 75 | mhd | AuditFindDocumentListsResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 76 | mhd | AuditRetrieveDocumentConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 77 | mhd | AuditRetrieveDocumentResponderClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 78 | pixm | AuditPixmFeedManagerUpdateClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 79 | pixm | AuditPixmFeedSourceUpdateClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 80 | pixm | AuditPixmQueryConsumerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 81 | pixm | AuditPixmQueryManagerClass | hl7 | subtype | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match subtype:anySearch slice from a binding-only discriminator (no fixed/pattern) |
| 82 | qicore | QICoreImmunizationNotDoneClass | hl7 | code | Bundled context required | random-parity | HL7 validates fixedCode "not-done" against sibling qicore-immunization ValueSet (qicore-non-negative-immunization-status) which excludes it; the profile's own binding (immunization-status) includes it |
| 83 | sdc | SDCQuestionnaireExtractTemplateClass | hl7 | extension | Empty parity field miss | empty-parity | HL7 misses inherited min=1 on Questionnaire.url (tightened by sdc-questionnaire) |
| 84 | sdoh | SDOHCCConditionClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:screening-assessment slice from a binding-only discriminator (no fixed/pattern) |
| 85 | sdoh | SDOHCCObservationAssessmentClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:us-core slice from a binding-only discriminator (no fixed/pattern) |
| 86 | sdoh | SDOHCCObservationScreeningResponseClass | hl7 | category | Discriminator evaluation failure | random-parity | HL7 $this discriminator limitation: cannot match category:screening-assessment slice from a binding-only discriminator (no fixed/pattern) |