@gefyra/diffyr6-cli 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,6 +8,7 @@ An automated toolkit for comparing FHIR profiles across different versions, anal
8
8
  - 🔄 **FSH Generation** - Converts FHIR resources to FSH using GoFSH
9
9
  - ⬆️ **Profile Upgrade Pipeline** - Automatically upgrades profiles between FHIR versions using SUSHI
10
10
  - 📊 **Profile Comparison** - Compares profile versions using the HL7 FHIR Validator
11
+ - 🎯 **Terminology Binding Analysis** - Compares terminology bindings between versions and checks ValueSet content from local package cache
11
12
  - 📝 **Rule-Based Difference Analysis** - Applies customizable rules to classify and score structural changes
12
13
  - 🎯 **Impact Scoring** - Calculates complexity scores based on breaking changes and migration risks
13
14
  - 🚨 **Removed Resource Detection** - Identifies profiles based on resource types removed in newer FHIR versions
@@ -166,7 +167,7 @@ console.log('Findings:', result.findingsCount);
166
167
 
167
168
  ## Pipeline Steps
168
169
 
169
- The comparison pipeline consists of 4 steps:
170
+ The comparison pipeline consists of 5 steps:
170
171
 
171
172
  ### 1. GoFSH (Optional)
172
173
 
@@ -195,6 +196,19 @@ Applies rules to the comparison HTML files and generates a markdown report with:
195
196
  - Impact score based on breaking changes
196
197
  - Timestamped filename (e.g., `comparison-report-20260123-143052.md`)
197
198
 
199
+ ### 5. Terminology Binding Analysis
200
+
201
+ Compares terminology bindings between R4 and R6 profiles:
202
+ 1. Runs `sushi -s` in both Resources and ResourcesR6 directories to generate snapshots
203
+ 2. Compares `element[].binding.strength` and `valueSet` between R4 and R6 profiles
204
+ 3. For ValueSets with version notation (pipe `|`), loads and compares content from local FHIR package cache:
205
+ - R4: `%USERPROFILE%\.fhir\packages\hl7.fhir.r4.core#4.0.1\package`
206
+ - R6: `%USERPROFILE%\.fhir\packages\hl7.fhir.r6.core#6.0.0-ballot3\package`
207
+ 4. Generates a `terminology-report-<timestamp>.md` with all binding differences
208
+ 5. Includes the report in the ZIP export
209
+
210
+ **Note:** This step continues even if it fails, to ensure the main migration completes.
211
+
198
212
  ## Compare Modes
199
213
 
200
214
  ### Incremental Mode (Default)
@@ -44,6 +44,20 @@
44
44
  ],
45
45
  "template": "For element {{Name}}, the cardinality changed in R6 and it had an MS in R4: {{Comments}}"
46
46
  },
47
+ {
48
+ "name": "Element type changed in R6",
49
+ "description": "The data type of an element has changed between R4 and R6. This may require data transformation during migration.",
50
+ "rank": 15,
51
+ "value": 10,
52
+ "conditions": [
53
+ {
54
+ "column": "L Type",
55
+ "operator": "!equals",
56
+ "valueColumn": "R Type"
57
+ }
58
+ ],
59
+ "template": "The element type switched in R6 at element {{Name}}"
60
+ },
47
61
  {
48
62
  "name": "Element removed in R6",
49
63
  "description": "An element from R4 no longer exists in R6. Data in this element may need to be migrated to another element or discarded.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gefyra/diffyr6-cli",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "FHIR R4 to R6 migration pipeline runner with automated profile comparison and rule-based analysis",
5
5
  "main": "src/index.js",
6
6
  "type": "module",