@the-cascade-protocol/cli 0.2.3 → 0.2.5

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/dist/index.js CHANGED
@@ -18,13 +18,12 @@
18
18
  import { Command } from 'commander';
19
19
  import { registerValidateCommand } from './commands/validate.js';
20
20
  import { registerConvertCommand } from './commands/convert.js';
21
+ import { registerReconcileCommand } from './commands/reconcile.js';
21
22
  import { registerPodCommand } from './commands/pod/index.js';
22
23
  import { registerConformanceCommand } from './commands/conformance.js';
23
24
  import { registerServeCommand } from './commands/serve.js';
24
25
  import { registerCapabilitiesCommand } from './commands/capabilities.js';
25
- import { createRequire } from 'module';
26
- const require = createRequire(import.meta.url);
27
- const pkg = require('../package.json');
26
+ import pkg from '../package.json' with { type: 'json' };
28
27
  const program = new Command();
29
28
  program
30
29
  .name('cascade')
@@ -35,6 +34,7 @@ program
35
34
  // Register all commands
36
35
  registerValidateCommand(program);
37
36
  registerConvertCommand(program);
37
+ registerReconcileCommand(program);
38
38
  registerPodCommand(program);
39
39
  registerConformanceCommand(program);
40
40
  registerServeCommand(program);
@@ -44,6 +44,8 @@ program.addHelpText('after', `
44
44
  Examples:
45
45
  cascade validate record.ttl
46
46
  cascade convert --from fhir --to cascade patient.json
47
+ cascade convert --from fhir --to cascade --source-system primary-care patient.json
48
+ cascade reconcile system-a.ttl system-b.ttl system-c.ttl --output merged.ttl --report report.json
47
49
  cascade pod init ./my-pod
48
50
  cascade capabilities
49
51
  cascade capabilities --json
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,QAAQ,EAAE,2CAA2C,EAAE,KAAK,CAAC,CAAC;AAExE,wBAAwB;AACxB,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErC,iCAAiC;AACjC,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;;;;;;;CAOD,CACA,CAAC;AAEF,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,QAAQ,EAAE,2CAA2C,EAAE,KAAK,CAAC,CAAC;AAExE,wBAAwB;AACxB,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErC,iCAAiC;AACjC,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;;;;;;;;;CASD,CACA,CAAC;AAEF,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -28,7 +28,7 @@ export { convertCascadeToFhir } from './cascade-to-fhir.js';
28
28
  /**
29
29
  * Convert an entire FHIR input (single resource or Bundle) to Cascade format.
30
30
  */
31
- export declare function convert(input: string, from: InputFormat, to: OutputFormat, outputSerialization?: 'turtle' | 'jsonld'): Promise<BatchConversionResult>;
31
+ export declare function convert(input: string, from: InputFormat, to: OutputFormat, outputSerialization?: 'turtle' | 'jsonld', sourceSystem?: string): Promise<BatchConversionResult>;
32
32
  /**
33
33
  * Detect the format of input data by inspecting its content.
34
34
  */
@@ -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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAMH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAK3B,MAAM,YAAY,CAAC;AAQpB,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,EACnD,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC,CA0IhC;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA6B9D"}
@@ -21,7 +21,9 @@
21
21
  * - fhir-to-cascade.ts FHIR -> Cascade converters
22
22
  * - cascade-to-fhir.ts Cascade -> FHIR converters
23
23
  */
24
- import { SUPPORTED_TYPES, quadsToTurtle, quadsToJsonLd, } from './types.js';
24
+ import { DataFactory } from 'n3';
25
+ import { NS, SUPPORTED_TYPES, quadsToTurtle, quadsToJsonLd, } from './types.js';
26
+ const { namedNode, literal, quad: makeQuad } = DataFactory;
25
27
  import { convertFhirResourceToQuads } from './fhir-to-cascade.js';
26
28
  import { convertCascadeToFhir } from './cascade-to-fhir.js';
27
29
  // Re-export public functions from sub-modules
@@ -33,7 +35,7 @@ export { convertCascadeToFhir } from './cascade-to-fhir.js';
33
35
  /**
34
36
  * Convert an entire FHIR input (single resource or Bundle) to Cascade format.
35
37
  */
36
- export async function convert(input, from, to, outputSerialization = 'turtle') {
38
+ export async function convert(input, from, to, outputSerialization = 'turtle', sourceSystem) {
37
39
  const warnings = [];
38
40
  const errors = [];
39
41
  const results = [];
@@ -91,6 +93,19 @@ export async function convert(input, from, to, outputSerialization = 'turtle') {
91
93
  warnings, errors: ['No convertible FHIR resources found'], results: [],
92
94
  };
93
95
  }
96
+ // Inject cascade:sourceSystem into every record if --source-system was given.
97
+ // We add one triple per unique subject that has an rdf:type (i.e. a real record).
98
+ if (sourceSystem) {
99
+ const recordSubjects = new Set();
100
+ for (const q of allQuads) {
101
+ if (q.predicate.value === NS.rdf + 'type') {
102
+ recordSubjects.add(q.subject.value);
103
+ }
104
+ }
105
+ for (const subjectUri of recordSubjects) {
106
+ allQuads.push(makeQuad(namedNode(subjectUri), namedNode(NS.cascade + 'sourceSystem'), literal(sourceSystem)));
107
+ }
108
+ }
94
109
  // Determine output format
95
110
  let output;
96
111
  if (outputSerialization === 'jsonld' || to === 'jsonld') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/fhir-converter/index.ts"],"names":[],"mappings":"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"}
@@ -476,6 +476,16 @@ checkup:MedicationSummaryShape a sh:NodeShape ;
476
476
  sh:severity sh:Info ;
477
477
  sh:name "Concerns For Doctor" ;
478
478
  sh:message "Concerns patient wants to discuss with provider"
479
+ ] ;
480
+
481
+ # v3.2: Computed supply end date (startDate + supplyDurationDays)
482
+ sh:property [
483
+ sh:path checkup:supplyEndDate ;
484
+ sh:datatype xsd:date ;
485
+ sh:maxCount 1 ;
486
+ sh:severity sh:Info ;
487
+ sh:name "Supply End Date" ;
488
+ sh:message "Computed date when medication supply is expected to be exhausted; used to infer currency when adherenceStatus is absent"
479
489
  ] .
480
490
 
481
491
  # ============================================================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@the-cascade-protocol/cli",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Cascade Protocol CLI - Validate, convert, and manage health data",
5
5
  "bin": {
6
6
  "cascade": "dist/index.js"