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?Average overall % across empty parity, random parity & random validation per pipeline run (18 runs)
| 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 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 ⚠️ | 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%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 25/25 (100%) | 25/25 (100%) | 23/25 (92%) |
| 📦 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%) | 30/30 (100%) | 23/30 (77%) |
| 📦 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%) |
| 📦 Vitals 1.0.0 | 1/1 (100%) | 15/15 (100%) | 9/15 (60%) |
| 📦 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 ⚠️ | 7/7 (100%) | 6/7 (86%) | 0/7 (0%) |
| Package | Empty Validation Parity | Random Validation Parity | Random Generation Validation + Parity |
|---|---|---|---|
| 📦 Carin Bb 2.2.0 ⚠️ | 6/6 (100%) | 6/6 (100%) | 6/6 (100%) |
| 📦 Davinci Pdex 2.1.0 ⚠️ | 12/12 (100%) | 11/11 (100%) | 11/11 (100%) |
| 🇩🇪 ISiK Basis 4.0.3 ⚠️ | 26/26 (100%) | 26/26 (100%) | 26/26 (100%) |
| 📦 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%) |
| 📦 Physical Activity 1.0.0 ⚠️ | 12/12 (100%) | 12/12 (100%) | 11/12 (92%) |
| 📦 Mcode 4.0.0 ⚠️ | 35/35 (100%) | 35/35 (100%) | 30/35 (86%) |
| 📦 Au Core 2.0.0 ⚠️ | 20/20 (100%) | 20/20 (100%) | 16/20 (80%) |
| 📦 Ndh 1.0.0 ⚠️ | 28/28 (100%) | 28/28 (100%) | 21/28 (75%) |
| 📦 Pixm 3.1.0 | 11/11 (100%) | 11/11 (100%) | 4/11 (36%) |
| 📦 Davinci Cdex 2.1.0 | 7/7 (100%) | 7/7 (100%) | 1/7 (14%) |
| 📦 Ae Research 1.0.1 | 1/1 (100%) | 1/1 (100%) | 0/1 (0%) |
| 📦 Cpg 2.0.0 ⚠️ | 96/96 (100%) | 93/96 (97%) | 76/96 (79%) |
| 🌍 IPS 2.0.1 ⚠️ | 25/25 (100%) | 24/25 (96%) | 24/25 (96%) |
| 📦 Davinci Pas 2.2.1 ⚠️ | 22/22 (100%) | 21/22 (95%) | 15/22 (68%) |
| 📦 Sdoh 2.3.0 ⚠️ | 16/16 (100%) | 15/16 (94%) | 12/16 (75%) |
| 🇨🇭 CH Core 6.0.0 | 29/29 (100%) | 27/29 (93%) | 22/29 (76%) |
| 📦 Sdc 4.0.0 | 34/34 (100%) | 31/34 (91%) | 20/34 (59%) |
| 📦 Davinci Deqm 5.0.0 | 11/11 (100%) | 10/11 (91%) | 5/11 (45%) |
| 📦 Qicore 7.0.2 | 65/65 (100%) | 56/65 (86%) | 50/65 (77%) |
| 📦 Davinci Drug Formulary 2.1.0 ⚠️ | 7/7 (100%) | 6/7 (86%) | 5/7 (71%) |
| 📦 Davinci Dtr 2.2.0 | 14/14 (100%) | 12/14 (86%) | 2/14 (14%) |
| 📦 Cqfmeasures 5.0.0 | 13/13 (100%) | 11/13 (85%) | 6/13 (46%) |
| 📦 Mhd 4.2.4 ⚠️ | 30/30 (100%) | 25/30 (83%) | 10/30 (33%) |
| 📦 Vitals 1.0.0 | 15/15 (100%) | 12/15 (80%) | 13/15 (87%) |
| 📦 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%) | 3/8 (38%) | 0/8 (0%) |
No data available yet.
| Package | Resources | Val Total | Val Avg | Zod Total | Zod Avg | HL7 Total | HL7 Avg | Firely Total | Firely Avg |
|---|---|---|---|---|---|---|---|---|---|
| ae-research | 10 | 0.09s | 9.4ms | 0.02s | 1.7ms | 40.19s | 20092.5ms | 27.76s | 13878ms |
| au-core | 120 | 1.02s | 8.5ms | 0.17s | 1.5ms | 80.12s | 1602.3ms | 40.61s | 812.3ms |
| carin-bb | 44 | 0.99s | 22.6ms | 0.12s | 2.7ms | 124.97s | 3905.3ms | 33.7s | 1053.1ms |
| ch-core | 176 | 1.38s | 7.8ms | 0.2s | 1.1ms | 97.54s | 1681.7ms | 40.33s | 695.4ms |
| cpg | 264 | 0.99s | 3.8ms | 0.42s | 1.6ms | 225.87s | 1140.7ms | 64.53s | 325.9ms |
| cqfmeasures | 88 | 0.78s | 8.8ms | 0.16s | 1.8ms | 65.53s | 2520.5ms | 30.28s | 1164.7ms |
| davinci-alerts | 20 | 0.23s | 11.5ms | 0.05s | 2.4ms | 130.04s | 8127.7ms | 86.53s | 5408.3ms |
| davinci-cdex | 30 | 0.25s | 8.4ms | 0.1s | 3.2ms | 172.23s | 12302.3ms | 114.04s | 8145.6ms |
| davinci-deqm | 68 | 0.7s | 10.3ms | 0.09s | 1.4ms | 114.63s | 5210.5ms | 57.99s | 2636.1ms |
| davinci-drug-formulary | 42 | 0.4s | 9.5ms | 0.06s | 1.5ms | 126.59s | 7912.2ms | 51.09s | 3193.2ms |
| davinci-dtr | 192 | 1.23s | 6.4ms | 0.1s | 0.5ms | 272.9s | 9746.4ms | 65.85s | 2351.9ms |
| davinci-pas | 194 | 1.84s | 9.5ms | 0.23s | 1.2ms | 404.21s | 6969.2ms | 52.95s | 912.9ms |
| davinci-pdex | 118 | 0.47s | 4ms | 0.12s | 1ms | 427.02s | 16423.8ms | 39.64s | 1524.6ms |
| de-basisprofil | 170 | 0.82s | 4.8ms | 0.16s | 0.9ms | 39.38s | 1036.3ms | 40.52s | 1066.3ms |
| emedicinal-product | 30 | 0.17s | 5.8ms | 0.06s | 1.9ms | 45.2s | 1506.6ms | 38.33s | 1277.7ms |
| genomics-reporting | 96 | 0.38s | 4ms | 0.12s | 1.3ms | 73.89s | 2173.3ms | 34.11s | 1003.3ms |
| ips | 76 | 0.37s | 4.8ms | 0.13s | 1.7ms | 58.33s | 1080.3ms | 44.87s | 830.9ms |
| isik-basis | 126 | 2.44s | 19.4ms | 0.17s | 1.3ms | 60.26s | 1076ms | 33.82s | 603.9ms |
| isik-medikation | 32 | 1.01s | 31.6ms | 0.04s | 1.2ms | 61.74s | 3859.1ms | 23.46s | 1466.4ms |
| kbv-erp | 64 | 1.07s | 16.7ms | 0.08s | 1.2ms | 71.34s | 4458.6ms | 43.91s | 2744.1ms |
| mcode | 142 | 0.76s | 5.4ms | 0.21s | 1.5ms | 129.11s | 1698.8ms | 58.76s | 773.1ms |
| mhd | 78 | 0.92s | 11.8ms | 0.16s | 2ms | 169.24s | 2729.6ms | 57.29s | 924ms |
| ndh | 176 | 0.89s | 5.1ms | 0.19s | 1.1ms | 162.72s | 2624.5ms | 38.34s | 618.4ms |
| physical-activity | 38 | 0.54s | 14.1ms | 0.11s | 3ms | 75.49s | 2359.1ms | 57.75s | 1804.6ms |
| pixm | 30 | 0.35s | 11.6ms | 0.1s | 3.3ms | 69.31s | 3150.2ms | 36.69s | 1667.8ms |
| qicore | 172 | 0.8s | 4.6ms | 0.26s | 1.5ms | 275.01s | 2115.4ms | 98.42s | 757.1ms |
| sdc | 320 | 1.63s | 5.1ms | 0.26s | 0.8ms | 120.5s | 1772.1ms | 88.23s | 1297.5ms |
| sdoh | 50 | 0.53s | 10.5ms | 0.1s | 1.9ms | 142.57s | 3564.3ms | 45.56s | 1139ms |
| smart | 18 | 0.44s | 24.2ms | 0.04s | 2.4ms | 56.37s | 4697.4ms | 28.86s | 2405.3ms |
| us-core | 164 | 1.25s | 7.6ms | 0.29s | 1.8ms | 192.64s | 1751.3ms | 113.42s | 1031.1ms |
| vitals | 48 | 0.22s | 4.6ms | 0.07s | 1.5ms | 55.09s | 1836.3ms | 31.42s | 1047.3ms |
| Package | Extract | Init | Resolve | Generate | Compile | Repack | Total |
|---|---|---|---|---|---|---|---|
| ae-research | 0.05s | 3.9s | 4.5s | 0.82s | 3.1s | 0.09s | 13.2s |
| au-core | 0.13s | 4.9s | 11.3s | 1.2s | 11s | 0.49s | 30.6s |
| carin-bb | 0.1s | 4.7s | 12.1s | 1.3s | 9s | 0.33s | 29.5s |
| ch-core | 0.17s | 4.5s | 5.9s | 1.2s | 11.9s | 0.54s | 25.7s |
| cpg | 0.3s | 4.4s | 2.9s | 2.1s | 21.4s | 0.85s | 34.3s |
| cqfmeasures | 0.22s | 4.3s | 7.8s | 1.1s | 9.1s | 0.48s | 23.8s |
| davinci-alerts | 0.05s | 5.6s | 20s | 0.91s | 5.9s | 0.22s | 33.1s |
| davinci-cdex | 0.09s | 5.2s | 38.5s | 0.83s | 6.1s | 0.25s | 51.5s |
| davinci-deqm | 0.13s | 4.8s | 18.7s | 2.3s | 7s | 0.29s | 34.2s |
| davinci-drug-formulary | 0.08s | 4.4s | 13.4s | 1.1s | 5.4s | 0.3s | 27.1s |
| davinci-dtr | 0.07s | 3.8s | 57.5s | 1.5s | 7.9s | 0.31s | 71.4s |
| davinci-pas | 0.2s | 4.3s | 53.7s | 1.6s | 15.1s | 0.6s | 76.3s |
| davinci-pdex | 0.14s | 6s | 57.9s | 1.4s | 10.3s | 0.44s | 77.4s |
| de-basisprofil | 0.11s | 4.3s | 0.57s | 0.88s | 9.6s | 0.34s | 17.8s |
| emedicinal-product | 0.06s | 5.4s | 2.9s | 3.8s | 4.3s | 0.12s | 20.1s |
| genomics-reporting | 0.21s | 4.2s | 2.6s | 0.52s | 9.2s | 0.41s | 18.3s |
| ips | 0.11s | 5.1s | 6.2s | 1.8s | 8.4s | 0.32s | 24.6s |
| isik-basis | 0.12s | 5.8s | 4.5s | 0.44s | 9.4s | 0.35s | 21.5s |
| isik-medikation | 0.05s | 4.2s | 3.9s | 62.8s | 5s | 0.24s | 76.5s |
| kbv-erp | 0.04s | 5.4s | 8s | 0.72s | 6.4s | 0.22s | 21.1s |
| mcode | 0.3s | 4.3s | 17s | 1.4s | 13.4s | 0.6s | 38.7s |
| mhd | 0.17s | 4.4s | 5.9s | 0.87s | 9.9s | 0.41s | 22.4s |
| ndh | 0.33s | 5.6s | 21.8s | 2.7s | 12.6s | 0.76s | 44.7s |
| physical-activity | 0.16s | 4.9s | 18.1s | 1.1s | 8.5s | 0.35s | 34.2s |
| pixm | 0.1s | 5.1s | 4.3s | 1s | 8.4s | 0.28s | 19.6s |
| qicore | 0.13s | 3.9s | 9.6s | 7.8s | 12.3s | 0.47s | 38.1s |
| sdc | 0.25s | 5.2s | 13.4s | 3.1s | 15.8s | 0.67s | 39.5s |
| sdoh | 0.1s | 3.8s | 19.3s | 1.8s | 6.9s | 0.25s | 32.9s |
| smart | 0.03s | 4s | 6.6s | 1.2s | 4.1s | 0.17s | 16.6s |
| us-core | 0.4s | 6.4s | 23.6s | 2.8s | 18.3s | 0.84s | 57.4s |
| vitals | 0.05s | 4.9s | 1.5s | 0.55s | 5.1s | 0.21s | 12.9s |
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) |
|---|---|---|
| Discriminator evaluation failure | 22 | 22 firely |
| Element ordering (parser bug) | 21 | 21 firely |
| Bundled context required | 8 | 8 firely |
| Terminology server limitation | 4 | 4 hl7 |
| Missing snapshot | 4 | 4 hl7 |
| Cross-profile validation | 2 | 2 hl7 |
| SNOMED edition mismatch | 2 | 2 hl7 |
| Failed to parse validator output | 2 | 1 hl7 1 firely |
| # | 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 | 📦 cpg | CHFBodyWeightClass | both | Firely: Discriminator evaluation failure HL7: Cross-profile validation |
empty-parity | Firely: Firely cannot load the chf-bodyweight schema and validates against base Observation, so it reports only status and code HL7: HL7 bp |
| 4 | 📦 au-core | AUCoreBloodPressureClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely cannot use the coding at Observation.component:SystolicBP.code as a discriminator when it is sliced to more than one choice |
| 5 | 📦 au-core | AUCoreConditionClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 6 | 📦 au-core | AUCoreImmunizationClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 7 | 📦 au-core | AUCorePathologyResultClass | firely | Discriminator evaluation failure | empty-parity | Unmatchable value discriminator at Observation.category:specificDiscipline.coding.code; Firely abandons the schema and validates against base Observation |
| 8 | 📦 au-core | AUCoreProcedureClass | hl7 | Terminology server limitation | empty-parity, random-parity, random-validation | tx.fhir.org: Australian ValueSet filter not understood |
| 9 | 📦 au-core | AUCoreSmokingStatusClass | hl7 | SNOMED edition mismatch | empty-parity, random-parity, random-validation | SNOMED AU code not in International Edition |
| 10 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 11 | 📦 carin-bb | C4BBExplanationOfBenefitInpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 12 | 📦 carin-bb | C4BBExplanationOfBenefitOralBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 13 | 📦 carin-bb | C4BBExplanationOfBenefitOralClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 14 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 15 | 📦 carin-bb | C4BBExplanationOfBenefitOutpatientInstitutionalClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 16 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 17 | 📦 carin-bb | C4BBExplanationOfBenefitPharmacyClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 18 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianBasisClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 19 | 📦 carin-bb | C4BBExplanationOfBenefitProfessionalNonClinicianClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 20 | 📦 cpg | CHFO2SatClass | firely | Discriminator evaluation failure | empty-parity | Firely cannot load the chf-oxygensaturation schema and validates against base Observation, so it reports only status and code |
| 21 | 📦 cpg | CHFPotassiumClass | firely | Discriminator evaluation failure | empty-parity | Firely cannot load the chf-potassium schema and validates against base Observation, so it reports only status and code |
| 22 | 📦 cqfmeasures | CQFMPublishableMeasureClass | hl7 | Failed to parse validator output | empty-parity, random-parity, random-validation | HL7 validator crashes — unparseable output |
| 23 | 📦 davinci-alerts | AdmitNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 24 | 📦 davinci-alerts | ADTNotificationCoverageProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 25 | 📦 davinci-alerts | ADTNotificationEncounterProfileClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 26 | 📦 davinci-alerts | DischargeNotificationMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 27 | 📦 davinci-alerts | NotificationsMessageHeaderClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Profile requires aggregation: bundled; standalone parity not meaningful |
| 28 | 📦 davinci-drug-formulary | FormularyDrugClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 29 | 📦 DaVinci PAS | PASClaimBaseClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Claim.careTeam:OverallClaimMember points a value discriminator at a boolean with no fixed[x] or pattern[x] |
| 30 | 📦 DaVinci PAS | PASClaimClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Claim.careTeam:OverallClaimMember points a value discriminator at a boolean with no fixed[x] or pattern[x] |
| 31 | 📦 DaVinci PAS | PASClaimInquiryClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Claim.careTeam:OverallClaimMember points a value discriminator at a boolean with no fixed[x] or pattern[x] |
| 32 | 📦 DaVinci PAS | PASClaimUpdateClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Claim.careTeam:OverallClaimMember points a value discriminator at a boolean with no fixed[x] or pattern[x] |
| 33 | 📦 DaVinci PAS | PASDeviceRequestClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 34 | 📦 DaVinci PAS | PASEncounterClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 35 | 📦 DaVinci PAS | PASTaskClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 36 | 📦 davinci-pdex | PdexMedicationDispenseClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 37 | 📦 davinci-pdex | PDexMultiMemberMatchRequestParametersClass | firely | Discriminator evaluation failure | random-parity, random-validation | Profile bug: hrex-consent policy:hrex slice uses 'value' discriminator without fixed/pattern |
| 38 | 🌍 IPS | CompositionUvIpsClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at Composition.section:sectionMedications.entry:medicationStatementOrRequest, which FHIR R4 permits |
| 39 | 🌍 IPS | DiagnosticReportUvIpsClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at DiagnosticReport.result:observation-results, which FHIR R4 permits |
| 40 | 🇩🇪 ISiK Basis | ISiKAngehoerigerClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | RelatedPerson.name:Name declares a pattern discriminator and sets no pattern[x] to match on |
| 41 | 🇩🇪 ISiK Basis | ISiKDiagnoseClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKDiagnose |
| 42 | 🇩🇪 ISiK Basis | ISiKProzedurClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 43 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisGesetzlichClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisGesetzlich |
| 44 | 🇩🇪 ISiK Basis | ISiKVersicherungsverhaeltnisSelbstzahlerClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile ISiKVersicherungsverhaeltnisSelbstzahler |
| 45 | 📦 kbv-erp | KBVPRERPBundleClass | hl7 | Missing snapshot | empty-parity, random-parity, random-validation | Profile KBV_PR_ERP_Bundle |
| 46 | 📦 mcode | GenomicVariantClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: version vs display |
| 47 | 📦 mcode | LymphomaStageClass | firely | Element ordering (parser bug) | empty-parity, random-parity, random-validation | Firely parser ordering bug: coding vs text |
| 48 | 📦 mcode | TNMStageGroupClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the $this.resolve() discriminator at Observation.hasMember:TNMCategory, which FHIR R4 permits |
| 49 | 📦 mhd | FindDocumentReferencesResponseClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Bundle.entry:DocumentReference has a discriminator that always succeeds, so it cannot separate the slice from any other entry |
| 50 | 📦 ndh | NdhNdApiPractitionerClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Firely snapshot generator internal error on Extension.extension.value[x] (ElementMatcher.constructChoiceTypeMatch) |
| 51 | 📦 ndh | NdhNdApiPractitionerRoleClass | hl7 | SNOMED edition mismatch | random-parity, random-validation | SNOMED code '453091000124108' not in International Edition |
| 52 | 📦 ndh | NdhPnLdApiPractitionerClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Firely snapshot generator internal error on Extension.extension.value[x] (ElementMatcher.constructChoiceTypeMatch) |
| 53 | 📦 ndh | NdhPractitionerClass | firely | Bundled context required | empty-parity, random-parity, random-validation | Firely snapshot generator internal error on Extension.extension.value[x] (ElementMatcher.constructChoiceTypeMatch) |
| 54 | 📦 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 |
| 55 | 📦 physical-activity | PAConditionLowPAClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at Condition.evidence.detail:SupportedDetail, which FHIR R4 permits |
| 56 | 📦 physical-activity | PADiagnosticReportClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at DiagnosticReport.result:SupportedResult, which FHIR R4 permits |
| 57 | 📦 physical-activity | PAGoalClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the $this.resolve() discriminator at Goal.addresses:PAIssues, which FHIR R4 permits |
| 58 | 📦 sdoh | SDOHCCConditionClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at Condition.evidence.detail:SupportedDetail, which FHIR R4 permits |
| 59 | 📦 sdoh | SDOHCCObservationEthnicityOMBClass | firely | Discriminator evaluation failure | empty-parity | Unmatchable value discriminator at Observation.component:EthnicityDescription.value[x]; Firely abandons the schema and validates against base Observation |
| 60 | 📦 sdoh | SDOHCCObservationRaceOMBClass | firely | Discriminator evaluation failure | empty-parity | Unmatchable value discriminator at Observation.component:RaceDescription.value[x]; Firely abandons the schema and validates against base Observation |
| 61 | 📦 sdoh | SDOHCCTaskForPatientClass | firely | Discriminator evaluation failure | empty-parity, random-parity, random-validation | Firely rejects the resolve() discriminator at Task.partOf:SupportedPartOf, which FHIR R4 permits |
| 62 | 🇺🇸 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 | 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 |
| 2 | 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 |
| 3 | 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 |
| 4 | 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 |
| 5 | 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 |
| 6 | 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 |
| 7 | 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 |
| 8 | 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 |
| 9 | 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` |
| 10 | 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 |
| 11 | 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 |
| 12 | 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 |
| 13 | 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 |
| 14 | au-core | AUCoreMedicationStatementClass | hl7 | unclassified | Terminology server limitation | random-parity | tx.fhir.org: Australian ValueSet filter not understood |
| 15 | davinci-pdex | PDexMultiMemberMatchRequestParametersClass | hl7 | constraint | Validation model difference | random-parity | HL7 rejects example.org URLs in Consent.policy.uri via a built-in rule, not a FHIRPath constraint in the SD; reported intermittently |
| 16 | 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 |
| 17 | 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 |
| 18 | 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 |
| 19 | 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 |
| 20 | 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 |
| 21 | 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 |
| 22 | isik-basis | ISiKAngehoerigerClass | hl7 | constraint | Discriminator evaluation failure | random-parity | RelatedPerson.name:Name declares a pattern discriminator and sets no pattern[x], so slice membership cannot be decided |
| 23 | isik-basis | ISiKProzedurClass | hl7 | unclassified | Terminology server limitation | random-parity | tx: OPS code system version in the ValueSet include ("*") does not match the version on the code, which tracks the current OPS year |
| 24 | 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 |
| 25 | 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. |
| 26 | 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. |
| 27 | 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. |
| 28 | sdc | SDCQuestionnaireExtractTemplateClass | hl7 | extension | Empty parity field miss | empty-parity | HL7 misses inherited min=1 on Questionnaire.url (tightened by sdc-questionnaire) |
| 29 | vitals | BodyLengthClass | hl7 | constraint | Cross-profile validation | random-parity | HL7 measures body length (LOINC 8306-3, absent from the core vital-signs value set) against core bodyheight and demands its BodyHeightCode slice, LOINC 8302-2; reported intermittently |
| 30 | vitals | HeadOccipitalFrontalCircumferenceClass | hl7 | constraint | Cross-profile validation | random-parity | HL7 measures head circumference by tape measure (LOINC 8287-5, absent from the core vital-signs value set) against core headcircum and demands its HeadCircumCode slice, LOINC 9843-4; reported intermittently |
| 31 | vitals | BloodPressurePanelClass | hl7 | component | Cross-profile validation | random-parity | HL7 applies core bp (component 2..*, DiastolicBP 1..1) to LOINC 85354-9; blood-pressure-panel itself declares component 1..* with DiastolicBP 0..1 |