@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 +15 -1
- package/config/default-rules.json +14 -0
- package/package.json +1 -1
- package/src/compare-terminology.js +976 -0
- package/src/config.js +47 -3
- package/src/index.js +117 -11
- package/src/upgrade-sushi.js +69 -2
- package/src/utils/update-check.js +128 -0
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
|
|
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