@the-cascade-protocol/cli 0.2.4 → 0.3.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.
Files changed (78) hide show
  1. package/dist/commands/convert.d.ts +8 -5
  2. package/dist/commands/convert.d.ts.map +1 -1
  3. package/dist/commands/convert.js +55 -7
  4. package/dist/commands/convert.js.map +1 -1
  5. package/dist/commands/pod/helpers.d.ts +2 -0
  6. package/dist/commands/pod/helpers.d.ts.map +1 -1
  7. package/dist/commands/pod/helpers.js +62 -1
  8. package/dist/commands/pod/helpers.js.map +1 -1
  9. package/dist/commands/pod/import.d.ts +20 -0
  10. package/dist/commands/pod/import.d.ts.map +1 -0
  11. package/dist/commands/pod/import.js +382 -0
  12. package/dist/commands/pod/import.js.map +1 -0
  13. package/dist/commands/pod/index.d.ts.map +1 -1
  14. package/dist/commands/pod/index.js +2 -0
  15. package/dist/commands/pod/index.js.map +1 -1
  16. package/dist/commands/reconcile.d.ts +32 -0
  17. package/dist/commands/reconcile.d.ts.map +1 -0
  18. package/dist/commands/reconcile.js +116 -0
  19. package/dist/commands/reconcile.js.map +1 -0
  20. package/dist/index.js +5 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/fhir-converter/cascade-to-fhir-admin.d.ts +13 -0
  23. package/dist/lib/fhir-converter/cascade-to-fhir-admin.d.ts.map +1 -0
  24. package/dist/lib/fhir-converter/cascade-to-fhir-admin.js +70 -0
  25. package/dist/lib/fhir-converter/cascade-to-fhir-admin.js.map +1 -0
  26. package/dist/lib/fhir-converter/cascade-to-fhir-clinical.d.ts +36 -0
  27. package/dist/lib/fhir-converter/cascade-to-fhir-clinical.d.ts.map +1 -0
  28. package/dist/lib/fhir-converter/cascade-to-fhir-clinical.js +407 -0
  29. package/dist/lib/fhir-converter/cascade-to-fhir-clinical.js.map +1 -0
  30. package/dist/lib/fhir-converter/cascade-to-fhir-demographics.d.ts +15 -0
  31. package/dist/lib/fhir-converter/cascade-to-fhir-demographics.d.ts.map +1 -0
  32. package/dist/lib/fhir-converter/cascade-to-fhir-demographics.js +115 -0
  33. package/dist/lib/fhir-converter/cascade-to-fhir-demographics.js.map +1 -0
  34. package/dist/lib/fhir-converter/cascade-to-fhir.d.ts +9 -3
  35. package/dist/lib/fhir-converter/cascade-to-fhir.d.ts.map +1 -1
  36. package/dist/lib/fhir-converter/cascade-to-fhir.js +69 -290
  37. package/dist/lib/fhir-converter/cascade-to-fhir.js.map +1 -1
  38. package/dist/lib/fhir-converter/converters-clinical-admin.d.ts +16 -0
  39. package/dist/lib/fhir-converter/converters-clinical-admin.d.ts.map +1 -0
  40. package/dist/lib/fhir-converter/converters-clinical-admin.js +166 -0
  41. package/dist/lib/fhir-converter/converters-clinical-admin.js.map +1 -0
  42. package/dist/lib/fhir-converter/converters-clinical.d.ts +28 -0
  43. package/dist/lib/fhir-converter/converters-clinical.d.ts.map +1 -1
  44. package/dist/lib/fhir-converter/converters-clinical.js +436 -11
  45. package/dist/lib/fhir-converter/converters-clinical.js.map +1 -1
  46. package/dist/lib/fhir-converter/converters-demographics.d.ts.map +1 -1
  47. package/dist/lib/fhir-converter/converters-demographics.js +4 -5
  48. package/dist/lib/fhir-converter/converters-demographics.js.map +1 -1
  49. package/dist/lib/fhir-converter/converters-passthrough.d.ts +29 -0
  50. package/dist/lib/fhir-converter/converters-passthrough.d.ts.map +1 -0
  51. package/dist/lib/fhir-converter/converters-passthrough.js +86 -0
  52. package/dist/lib/fhir-converter/converters-passthrough.js.map +1 -0
  53. package/dist/lib/fhir-converter/fhir-to-cascade.d.ts +8 -4
  54. package/dist/lib/fhir-converter/fhir-to-cascade.d.ts.map +1 -1
  55. package/dist/lib/fhir-converter/fhir-to-cascade.js +41 -10
  56. package/dist/lib/fhir-converter/fhir-to-cascade.js.map +1 -1
  57. package/dist/lib/fhir-converter/import-manifest.d.ts +40 -0
  58. package/dist/lib/fhir-converter/import-manifest.d.ts.map +1 -0
  59. package/dist/lib/fhir-converter/import-manifest.js +66 -0
  60. package/dist/lib/fhir-converter/import-manifest.js.map +1 -0
  61. package/dist/lib/fhir-converter/index.d.ts +33 -13
  62. package/dist/lib/fhir-converter/index.d.ts.map +1 -1
  63. package/dist/lib/fhir-converter/index.js +53 -17
  64. package/dist/lib/fhir-converter/index.js.map +1 -1
  65. package/dist/lib/fhir-converter/types.d.ts +12 -1
  66. package/dist/lib/fhir-converter/types.d.ts.map +1 -1
  67. package/dist/lib/fhir-converter/types.js +67 -2
  68. package/dist/lib/fhir-converter/types.js.map +1 -1
  69. package/dist/lib/output.d.ts +5 -0
  70. package/dist/lib/output.d.ts.map +1 -1
  71. package/dist/lib/output.js +6 -1
  72. package/dist/lib/output.js.map +1 -1
  73. package/dist/lib/reconciler.d.ts +45 -0
  74. package/dist/lib/reconciler.d.ts.map +1 -0
  75. package/dist/lib/reconciler.js +397 -0
  76. package/dist/lib/reconciler.js.map +1 -0
  77. package/dist/shapes/checkup.shapes.ttl +10 -0
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"converters-demographics.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-demographics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EACL,KAAK,gBAAgB,EAWtB,MAAM,YAAY,CAAC;AAMpB,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA4EnF;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA4ExF;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA2EpF"}
1
+ {"version":3,"file":"converters-demographics.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-demographics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EACL,KAAK,gBAAgB,EAYtB,MAAM,YAAY,CAAC;AAMpB,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA4EnF;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA4ExF;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CA2EpF"}
@@ -6,14 +6,13 @@
6
6
  * - Immunization -> health:ImmunizationRecord
7
7
  * - Coverage -> coverage:InsurancePlan
8
8
  */
9
- import { randomUUID } from 'node:crypto';
10
- import { NS, extractCodings, codeableConceptText, tripleStr, tripleInt, tripleType, tripleDateTime, tripleDate, commonTriples, quadsToJsonLd, } from './types.js';
9
+ import { NS, extractCodings, codeableConceptText, tripleStr, tripleInt, tripleType, tripleDateTime, tripleDate, commonTriples, quadsToJsonLd, mintSubjectUri, } from './types.js';
11
10
  // ---------------------------------------------------------------------------
12
11
  // Patient converter
13
12
  // ---------------------------------------------------------------------------
14
13
  export function convertPatient(resource) {
15
14
  const warnings = [];
16
- const subjectUri = `urn:uuid:${randomUUID()}`;
15
+ const subjectUri = mintSubjectUri(resource);
17
16
  const quads = [];
18
17
  quads.push(tripleType(subjectUri, NS.cascade + 'PatientProfile'));
19
18
  quads.push(...commonTriples(subjectUri));
@@ -95,7 +94,7 @@ export function convertPatient(resource) {
95
94
  // ---------------------------------------------------------------------------
96
95
  export function convertImmunization(resource) {
97
96
  const warnings = [];
98
- const subjectUri = `urn:uuid:${randomUUID()}`;
97
+ const subjectUri = mintSubjectUri(resource);
99
98
  const quads = [];
100
99
  quads.push(tripleType(subjectUri, NS.health + 'ImmunizationRecord'));
101
100
  quads.push(...commonTriples(subjectUri));
@@ -165,7 +164,7 @@ export function convertImmunization(resource) {
165
164
  // ---------------------------------------------------------------------------
166
165
  export function convertCoverage(resource) {
167
166
  const warnings = [];
168
- const subjectUri = `urn:uuid:${randomUUID()}`;
167
+ const subjectUri = mintSubjectUri(resource);
169
168
  const quads = [];
170
169
  quads.push(tripleType(subjectUri, NS.coverage + 'InsurancePlan'));
171
170
  quads.push(...commonTriples(subjectUri));
@@ -1 +1 @@
1
- {"version":3,"file":"converters-demographics.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-demographics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters-demographics.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-demographics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Layer 1 FHIR passthrough converter.
3
+ *
4
+ * For any FHIR resource type that doesn't have a full Layer 2 mapping,
5
+ * preserves the original FHIR JSON inline for lossless round-trip export.
6
+ *
7
+ * Modes:
8
+ * full (default) — stores complete FHIR JSON in cascade:fhirJson; round-trip export supported
9
+ * minimal — omits cascade:fhirJson; round-trip export not supported; smaller output
10
+ */
11
+ import type { Quad } from 'n3';
12
+ import { type ConversionResult } from './types.js';
13
+ /**
14
+ * FHIR resource types that are intentionally excluded from conversion.
15
+ * These are never converted or passed through — they are logged in the
16
+ * import manifest with a documented reason and return null.
17
+ */
18
+ export declare const EXCLUDED_TYPES: Set<string>;
19
+ export declare const EXCLUDED_REASONS: Record<string, string>;
20
+ /**
21
+ * Convert any unmapped FHIR resource to a Layer 1 passthrough record.
22
+ *
23
+ * @param resource The FHIR resource object
24
+ * @param minimal If true, omits cascade:fhirJson (smaller output, no round-trip)
25
+ */
26
+ export declare function convertFhirPassthrough(resource: any, minimal?: boolean): ConversionResult & {
27
+ _quads: Quad[];
28
+ };
29
+ //# sourceMappingURL=converters-passthrough.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters-passthrough.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EACL,KAAK,gBAAgB,EAStB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,eAAO,MAAM,cAAc,aAMzB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,UAAQ,GAAG,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAsD5G"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Layer 1 FHIR passthrough converter.
3
+ *
4
+ * For any FHIR resource type that doesn't have a full Layer 2 mapping,
5
+ * preserves the original FHIR JSON inline for lossless round-trip export.
6
+ *
7
+ * Modes:
8
+ * full (default) — stores complete FHIR JSON in cascade:fhirJson; round-trip export supported
9
+ * minimal — omits cascade:fhirJson; round-trip export not supported; smaller output
10
+ */
11
+ import { NS, tripleStr, tripleRef, tripleType, tripleDateTime, commonTriples, quadsToJsonLd, mintSubjectUri, } from './types.js';
12
+ /**
13
+ * FHIR resource types that are intentionally excluded from conversion.
14
+ * These are never converted or passed through — they are logged in the
15
+ * import manifest with a documented reason and return null.
16
+ */
17
+ export const EXCLUDED_TYPES = new Set([
18
+ 'SupplyDelivery', // Logistics artifact — no patient health value
19
+ 'CareTeam', // Personnel registry — captured via encounter provenance
20
+ 'CarePlan', // Complex graph — deferred to future phase
21
+ 'Provenance', // FHIR's own provenance artifacts — Cascade uses PROV-O natively
22
+ 'Medication', // Standalone drug definition — meaning is in MedicationRequest/Statement
23
+ ]);
24
+ export const EXCLUDED_REASONS = {
25
+ SupplyDelivery: 'Logistics artifact (delivery of physical supplies). No patient health value.',
26
+ CareTeam: 'Personnel registry. Care team context is captured via encounter provenance.',
27
+ CarePlan: 'Structured care plans are complex graph objects. Deferred to future phase.',
28
+ Provenance: "FHIR's own provenance artifacts. Cascade uses PROV-O natively.",
29
+ Medication: 'Standalone medication definitional resources. Clinical meaning is in MedicationRequest/Statement.',
30
+ };
31
+ /**
32
+ * Convert any unmapped FHIR resource to a Layer 1 passthrough record.
33
+ *
34
+ * @param resource The FHIR resource object
35
+ * @param minimal If true, omits cascade:fhirJson (smaller output, no round-trip)
36
+ */
37
+ export function convertFhirPassthrough(resource, minimal = false) {
38
+ const warnings = [];
39
+ const resourceType = resource.resourceType ?? 'Unknown';
40
+ const subjectUri = mintSubjectUri(resource);
41
+ const quads = [];
42
+ quads.push(tripleType(subjectUri, NS.fhir + resourceType));
43
+ quads.push(...commonTriples(subjectUri));
44
+ // Layer promotion status — pending Layer 2 mapping
45
+ quads.push(tripleRef(subjectUri, NS.cascade + 'layerPromotionStatus', NS.cascade + 'PendingLayerTwoPromotion'));
46
+ // Resource type string for filtering/display
47
+ quads.push(tripleStr(subjectUri, NS.cascade + 'fhirResourceType', resourceType));
48
+ // Minimal projection triples
49
+ if (resource.id) {
50
+ quads.push(tripleStr(subjectUri, NS.clinical + 'sourceRecordId', resource.id));
51
+ }
52
+ // Best-effort date extraction
53
+ const dateCandidate = resource.effectiveDateTime
54
+ ?? resource.date
55
+ ?? resource.period?.start
56
+ ?? resource.created
57
+ ?? resource.authoredOn
58
+ ?? resource.occurrenceDateTime
59
+ ?? resource.recordedDate;
60
+ if (dateCandidate) {
61
+ try {
62
+ quads.push(tripleDateTime(subjectUri, NS.cascade + 'sourceRecordDate', dateCandidate));
63
+ }
64
+ catch {
65
+ // Skip if date is unparseable
66
+ }
67
+ }
68
+ if (minimal) {
69
+ warnings.push(`${resourceType} preserved as Layer 1 passthrough (minimal mode) — round-trip export not supported`);
70
+ }
71
+ else {
72
+ // Store complete FHIR JSON for lossless round-trip
73
+ quads.push(tripleStr(subjectUri, NS.cascade + 'fhirJson', JSON.stringify(resource)));
74
+ warnings.push(`${resourceType} preserved as Layer 1 passthrough — no Layer 2 mapping yet`);
75
+ }
76
+ const cascadeType = minimal ? `fhir-minimal:${resourceType}` : `fhir:${resourceType}`;
77
+ return {
78
+ turtle: '',
79
+ jsonld: quadsToJsonLd(quads, cascadeType),
80
+ warnings,
81
+ resourceType,
82
+ cascadeType,
83
+ _quads: quads,
84
+ };
85
+ }
86
+ //# sourceMappingURL=converters-passthrough.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters-passthrough.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/converters-passthrough.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,17 @@
5
5
  * provides the main public conversion functions.
6
6
  *
7
7
  * Individual converters are in:
8
- * - converters-clinical.ts Medications, conditions, allergies, observations
9
- * - converters-demographics.ts Patient, immunization, coverage
8
+ * - converters-clinical.ts Medications, conditions, allergies, observations,
9
+ * procedures, encounters, clinical documents, lab reports,
10
+ * medication admin, devices, imaging studies
11
+ * - converters-demographics.ts Patient, immunization, coverage
12
+ * - converters-clinical-admin.ts Claim, ExplanationOfBenefit
13
+ * - converters-passthrough.ts Layer 1 FHIR passthrough for unknown types
10
14
  */
11
15
  import type { Quad } from 'n3';
12
16
  import { type ConversionResult } from './types.js';
13
- export declare function convertFhirResourceToQuads(fhirResource: any): (ConversionResult & {
17
+ export declare function convertFhirResourceToQuads(fhirResource: any, passthroughMinimal?: boolean): (ConversionResult & {
14
18
  _quads: Quad[];
15
19
  }) | null;
16
- export declare function convertFhirToCascade(fhirResource: any): Promise<ConversionResult>;
20
+ export declare function convertFhirToCascade(fhirResource: any, passthroughMinimal?: boolean): Promise<ConversionResult>;
17
21
  //# sourceMappingURL=fhir-to-cascade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fhir-to-cascade.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/fhir-to-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAqBlE,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,GAAG,IAAI,CA0B5G;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmBvF"}
1
+ {"version":3,"file":"fhir-to-cascade.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/fhir-to-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAsClE,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,GAAG,EAAE,kBAAkB,UAAQ,GAAG,CAAC,gBAAgB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,GAAG,IAAI,CAkDxI;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,GAAG,EAAE,kBAAkB,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBnH"}
@@ -5,16 +5,22 @@
5
5
  * provides the main public conversion functions.
6
6
  *
7
7
  * Individual converters are in:
8
- * - converters-clinical.ts Medications, conditions, allergies, observations
9
- * - converters-demographics.ts Patient, immunization, coverage
8
+ * - converters-clinical.ts Medications, conditions, allergies, observations,
9
+ * procedures, encounters, clinical documents, lab reports,
10
+ * medication admin, devices, imaging studies
11
+ * - converters-demographics.ts Patient, immunization, coverage
12
+ * - converters-clinical-admin.ts Claim, ExplanationOfBenefit
13
+ * - converters-passthrough.ts Layer 1 FHIR passthrough for unknown types
10
14
  */
11
15
  import { quadsToTurtle } from './types.js';
12
- import { convertMedicationStatement, convertCondition, convertAllergyIntolerance, isVitalSignObservation, convertObservationLab, convertObservationVital, } from './converters-clinical.js';
16
+ import { convertMedicationStatement, convertCondition, convertAllergyIntolerance, isVitalSignObservation, convertObservationLab, convertObservationVital, convertProcedure, convertClinicalDocument, convertEncounter, convertLaboratoryReport, convertMedicationAdministration, convertDevice, convertImagingStudy, } from './converters-clinical.js';
13
17
  import { convertPatient, convertImmunization, convertCoverage, } from './converters-demographics.js';
18
+ import { convertClaim, convertExplanationOfBenefit, } from './converters-clinical-admin.js';
19
+ import { convertFhirPassthrough, EXCLUDED_TYPES, } from './converters-passthrough.js';
14
20
  // ---------------------------------------------------------------------------
15
21
  // Main dispatcher: single FHIR resource -> Cascade
16
22
  // ---------------------------------------------------------------------------
17
- export function convertFhirResourceToQuads(fhirResource) {
23
+ export function convertFhirResourceToQuads(fhirResource, passthroughMinimal = false) {
18
24
  const resourceType = fhirResource?.resourceType;
19
25
  if (!resourceType)
20
26
  return null;
@@ -37,17 +43,42 @@ export function convertFhirResourceToQuads(fhirResource) {
37
43
  return convertImmunization(fhirResource);
38
44
  case 'Coverage':
39
45
  return convertCoverage(fhirResource);
40
- default:
41
- return null;
46
+ case 'Procedure':
47
+ return convertProcedure(fhirResource);
48
+ case 'DocumentReference':
49
+ return convertClinicalDocument(fhirResource);
50
+ case 'Encounter':
51
+ return convertEncounter(fhirResource);
52
+ case 'DiagnosticReport':
53
+ return convertLaboratoryReport(fhirResource);
54
+ case 'MedicationAdministration':
55
+ return convertMedicationAdministration(fhirResource);
56
+ case 'Device':
57
+ return convertDevice(fhirResource);
58
+ case 'ImagingStudy':
59
+ return convertImagingStudy(fhirResource);
60
+ case 'Claim':
61
+ return convertClaim(fhirResource);
62
+ case 'ExplanationOfBenefit':
63
+ return convertExplanationOfBenefit(fhirResource);
64
+ default: {
65
+ if (EXCLUDED_TYPES.has(resourceType)) {
66
+ // Intentionally excluded — log to manifest as excluded, return null
67
+ return null;
68
+ }
69
+ // Layer 1 passthrough for everything else
70
+ return convertFhirPassthrough(fhirResource, passthroughMinimal);
71
+ }
42
72
  }
43
73
  }
44
- export async function convertFhirToCascade(fhirResource) {
45
- const result = convertFhirResourceToQuads(fhirResource);
74
+ export async function convertFhirToCascade(fhirResource, passthroughMinimal = false) {
75
+ const result = convertFhirResourceToQuads(fhirResource, passthroughMinimal);
46
76
  if (!result) {
77
+ const resourceType = fhirResource?.resourceType ?? 'unknown';
47
78
  return {
48
79
  turtle: '',
49
- warnings: [`Unsupported FHIR resource type: ${fhirResource?.resourceType ?? 'unknown'}`],
50
- resourceType: fhirResource?.resourceType ?? 'unknown',
80
+ warnings: [`Unsupported FHIR resource type: ${resourceType}`],
81
+ resourceType,
51
82
  cascadeType: 'unknown',
52
83
  };
53
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fhir-to-cascade.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/fhir-to-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAyB,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,YAAiB;IAC1D,MAAM,YAAY,GAAG,YAAY,EAAE,YAAkC,CAAC;IACtE,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,mBAAmB;YACtB,OAAO,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAClD,KAAK,WAAW;YACd,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACxC,KAAK,oBAAoB;YACvB,OAAO,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACjD,KAAK,aAAa;YAChB,IAAI,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;QACtC,KAAK,cAAc;YACjB,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC3C,KAAK,UAAU;YACb,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;QACvC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,YAAiB;IAC1D,MAAM,MAAM,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,mCAAmC,YAAY,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC;YACxF,YAAY,EAAE,YAAY,EAAE,YAAY,IAAI,SAAS;YACrD,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fhir-to-cascade.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/fhir-to-cascade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Import manifest types and builder for FHIR -> Cascade conversion.
3
+ *
4
+ * The manifest is built in the CLI command layer (not in the converter library)
5
+ * after BatchConversionResult is returned. It records what was converted,
6
+ * what used Layer 1 passthrough, and what was intentionally excluded.
7
+ */
8
+ import type { BatchConversionResult } from './types.js';
9
+ export interface ManifestEntry {
10
+ count: number;
11
+ strategy: 'mapped' | 'passthrough' | 'passthrough-minimal' | 'excluded';
12
+ reason?: string;
13
+ }
14
+ export interface ImportManifest {
15
+ sourceFile: string;
16
+ sourceSystem: string;
17
+ convertedAt: string;
18
+ summary: {
19
+ total: number;
20
+ fullyMapped: number;
21
+ passthrough: number;
22
+ excluded: number;
23
+ };
24
+ byType: Record<string, ManifestEntry>;
25
+ }
26
+ /**
27
+ * Build an ImportManifest from a BatchConversionResult.
28
+ *
29
+ * Passthrough detection uses cascadeType prefix only:
30
+ * - 'fhir:*' -> full passthrough (fhirJson stored, round-trip supported)
31
+ * - 'fhir-minimal:*' -> minimal passthrough (no fhirJson, round-trip not supported)
32
+ * All other cascadeType values are Layer 2 mapped records.
33
+ *
34
+ * @param result The conversion result from the converter library
35
+ * @param sourceFile The source FHIR file path
36
+ * @param sourceSystem The --source-system CLI argument
37
+ * @param excludedTypes Map of resource types that were excluded with their counts
38
+ */
39
+ export declare function buildImportManifest(result: BatchConversionResult, sourceFile: string, sourceSystem: string, excludedTypes: Record<string, number>): ImportManifest;
40
+ //# sourceMappingURL=import-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-manifest.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/import-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,qBAAqB,GAAG,UAAU,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,qBAAqB,EAC7B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,cAAc,CA8ChB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Import manifest types and builder for FHIR -> Cascade conversion.
3
+ *
4
+ * The manifest is built in the CLI command layer (not in the converter library)
5
+ * after BatchConversionResult is returned. It records what was converted,
6
+ * what used Layer 1 passthrough, and what was intentionally excluded.
7
+ */
8
+ import { EXCLUDED_REASONS } from './converters-passthrough.js';
9
+ /**
10
+ * Build an ImportManifest from a BatchConversionResult.
11
+ *
12
+ * Passthrough detection uses cascadeType prefix only:
13
+ * - 'fhir:*' -> full passthrough (fhirJson stored, round-trip supported)
14
+ * - 'fhir-minimal:*' -> minimal passthrough (no fhirJson, round-trip not supported)
15
+ * All other cascadeType values are Layer 2 mapped records.
16
+ *
17
+ * @param result The conversion result from the converter library
18
+ * @param sourceFile The source FHIR file path
19
+ * @param sourceSystem The --source-system CLI argument
20
+ * @param excludedTypes Map of resource types that were excluded with their counts
21
+ */
22
+ export function buildImportManifest(result, sourceFile, sourceSystem, excludedTypes) {
23
+ const byType = {};
24
+ let fullyMapped = 0;
25
+ let passthrough = 0;
26
+ for (const r of result.results) {
27
+ const isFullPassthrough = r.cascadeType.startsWith('fhir:');
28
+ const isMinimalPassthrough = r.cascadeType.startsWith('fhir-minimal:');
29
+ const strategy = isMinimalPassthrough
30
+ ? 'passthrough-minimal'
31
+ : isFullPassthrough
32
+ ? 'passthrough'
33
+ : 'mapped';
34
+ if (!byType[r.resourceType]) {
35
+ byType[r.resourceType] = { count: 0, strategy };
36
+ }
37
+ byType[r.resourceType].count++;
38
+ if (isFullPassthrough || isMinimalPassthrough)
39
+ passthrough++;
40
+ else
41
+ fullyMapped++;
42
+ }
43
+ // Add excluded types
44
+ let excluded = 0;
45
+ for (const [type, count] of Object.entries(excludedTypes)) {
46
+ byType[type] = {
47
+ count,
48
+ strategy: 'excluded',
49
+ reason: EXCLUDED_REASONS[type] ?? 'Intentionally excluded',
50
+ };
51
+ excluded += count;
52
+ }
53
+ return {
54
+ sourceFile,
55
+ sourceSystem,
56
+ convertedAt: new Date().toISOString(),
57
+ summary: {
58
+ total: fullyMapped + passthrough + excluded,
59
+ fullyMapped,
60
+ passthrough,
61
+ excluded,
62
+ },
63
+ byType,
64
+ };
65
+ }
66
+ //# sourceMappingURL=import-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-manifest.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/import-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAqB/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA6B,EAC7B,UAAkB,EAClB,YAAoB,EACpB,aAAqC;IAErC,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACvE,MAAM,QAAQ,GAA8B,oBAAoB;YAC9D,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,iBAAiB;gBACjB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,iBAAiB,IAAI,oBAAoB;YAAE,WAAW,EAAE,CAAC;;YACxD,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,KAAK;YACL,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,wBAAwB;SAC3D,CAAC;QACF,QAAQ,IAAI,KAAK,CAAC;IACpB,CAAC;IAED,OAAO;QACL,UAAU;QACV,YAAY;QACZ,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,OAAO,EAAE;YACP,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ;YAC3C,WAAW;YACX,WAAW;YACX,QAAQ;SACT;QACD,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -3,23 +3,39 @@
3
3
  *
4
4
  * Converts between FHIR R4 JSON and Cascade Protocol RDF (Turtle/JSON-LD).
5
5
  *
6
- * Supported FHIR R4 resource types:
6
+ * Supported FHIR R4 resource types (Layer 2 — full vocabulary mapping):
7
7
  * - MedicationStatement / MedicationRequest -> health:MedicationRecord
8
- * - Condition -> health:ConditionRecord
9
- * - AllergyIntolerance -> health:AllergyRecord
10
- * - Observation (lab) -> health:LabResultRecord
11
- * - Observation (vital) -> clinical:VitalSign
12
- * - Patient -> cascade:PatientProfile
13
- * - Immunization -> health:ImmunizationRecord
14
- * - Coverage -> coverage:InsurancePlan
8
+ * - Condition -> health:ConditionRecord
9
+ * - AllergyIntolerance -> health:AllergyRecord
10
+ * - Observation (lab) -> health:LabResultRecord
11
+ * - Observation (vital signs) -> clinical:VitalSign
12
+ * - Patient -> cascade:PatientProfile
13
+ * - Immunization -> health:ImmunizationRecord
14
+ * - Coverage -> coverage:InsurancePlan
15
+ * - Procedure -> clinical:Procedure
16
+ * - DocumentReference -> clinical:ClinicalDocument
17
+ * - Encounter -> clinical:Encounter
18
+ * - DiagnosticReport -> clinical:LaboratoryReport
19
+ * - MedicationAdministration -> clinical:MedicationAdministration
20
+ * - Device -> clinical:ImplantedDevice
21
+ * - ImagingStudy -> clinical:ImagingStudy
22
+ * - Claim -> coverage:ClaimRecord
23
+ * - ExplanationOfBenefit -> coverage:BenefitStatement
24
+ *
25
+ * All other resource types receive Layer 1 passthrough (stored as fhir:{Type}).
26
+ * Explicitly excluded types: SupplyDelivery, CareTeam, CarePlan, Provenance, Medication.
15
27
  *
16
28
  * Zero network calls. All conversion is local.
17
29
  *
18
- * This module re-exports all public API for backward compatibility.
30
+ * This module re-exports all public API.
19
31
  * Internal implementation is split across:
20
- * - types.ts Shared types, namespaces, and quad helpers
21
- * - fhir-to-cascade.ts FHIR -> Cascade converters
22
- * - cascade-to-fhir.ts Cascade -> FHIR converters
32
+ * - types.ts Shared types, namespaces, and quad helpers
33
+ * - fhir-to-cascade.ts FHIR -> Cascade dispatcher
34
+ * - converters-clinical.ts Clinical resource converters
35
+ * - converters-demographics.ts Patient, immunization, coverage converters
36
+ * - converters-clinical-admin.ts Claim, EOB converters
37
+ * - converters-passthrough.ts Layer 1 passthrough for unknown types
38
+ * - cascade-to-fhir.ts Cascade -> FHIR reverse converters
23
39
  */
24
40
  import { type InputFormat, type OutputFormat, type ConversionResult, type BatchConversionResult } from './types.js';
25
41
  export type { InputFormat, OutputFormat, ConversionResult, BatchConversionResult };
@@ -27,8 +43,12 @@ export { convertFhirResourceToQuads, convertFhirToCascade } from './fhir-to-casc
27
43
  export { convertCascadeToFhir } from './cascade-to-fhir.js';
28
44
  /**
29
45
  * Convert an entire FHIR input (single resource or Bundle) to Cascade format.
46
+ *
47
+ * @param passthroughMinimal If true, omits cascade:fhirJson from passthrough records.
48
+ * Round-trip export is not supported in minimal mode.
49
+ * Produces smaller output for display-only scenarios.
30
50
  */
31
- export declare function convert(input: string, from: InputFormat, to: OutputFormat, outputSerialization?: 'turtle' | 'jsonld'): Promise<BatchConversionResult>;
51
+ export declare function convert(input: string, from: InputFormat, to: OutputFormat, outputSerialization?: 'turtle' | 'jsonld', sourceSystem?: string, passthroughMinimal?: boolean): Promise<BatchConversionResult>;
32
52
  /**
33
53
  * Detect the format of input data by inspecting its content.
34
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAI3B,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;AAGnF,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;GAEG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,YAAY,EAChB,mBAAmB,GAAE,QAAQ,GAAG,QAAmB,GAClD,OAAO,CAAC,qBAAqB,CAAC,CAsHhC;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA6B9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/fhir-converter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAMH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAI3B,MAAM,YAAY,CAAC;AASpB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;AAGnF,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,YAAY,EAChB,mBAAmB,GAAE,QAAQ,GAAG,QAAmB,EACnD,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,UAAQ,GACzB,OAAO,CAAC,qBAAqB,CAAC,CA0IhC;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA6B9D"}