From 265bb0976822d5954ec5c0fda32f8ad1dffa5183 Mon Sep 17 00:00:00 2001 From: "Shahid N. Shah" Date: Wed, 3 Jan 2024 19:53:55 -0500 Subject: [PATCH] feat: Introduce SQLPage #6 --- README.md | 4 + deno.jsonc | 6 +- deno.lock | 207 +++++++++ src/ahc-hrsn-elt/screening/deps.ts | 15 +- src/ahc-hrsn-elt/screening/ingest.ts | 8 +- src/ahc-hrsn-elt/screening/mod.ts | 1 + src/ahc-hrsn-elt/screening/sqlpage.ts | 81 ++++ .../screening/results-test-e2e/diagnostics.md | 208 +++++++-- .../results-test-e2e/diagnostics.xlsx | Bin 8686 -> 8692 bytes .../results-test-e2e/ingestion-center.duckdb | Bin 5517312 -> 5779456 bytes .../results-test-e2e/resource.sqlite.db | Bin 45056 -> 49152 bytes .../results-test-e2e/sqlpage/sqlpage.json | 3 + support/bin/doctor.ts | 8 + .../ahc-hrsn-elt/screening/all_symbols.html | 16 + .../lib/ahc-hrsn-elt/screening/index.html | 10 + .../ahc-hrsn-elt/screening/search_index.js | 2 +- .../~/ExcelSheetTodoIngestSource.html | 10 + .../screening/~/ExcelWorkbookSheetName.html | 10 + .../screening/~/IngestEngine.html | 20 + .../screening/~/IngestEngineArgs.html | 10 + .../ahc-hrsn-elt/screening/~/IngestStep.html | 10 + .../screening/~/IngestStepContext.html | 10 + .../screening/~/PotentialIngestSource.html | 10 + .../screening/~/SQLPageNotebook.html | 425 ++++++++++++++++++ .../screening/~/ScreeningAssuranceRules.html | 10 + .../~/ScreeningCsvFileIngestSource.html | 10 + .../~/ScreeningExcelSheetIngestSource.html | 10 + .../screening/~/excelWorkbookSheetNames.html | 10 + .../~/fsPatternIngestSourcesSupplier.html | 10 + .../lib/ahc-hrsn-elt/screening/~/ieDescr.html | 10 + .../lib/ahc-hrsn-elt/screening/~/index.html | 10 + .../~/ingestCsvFilesSourcesSupplier.html | 10 + .../~/ingestExcelSourcesSupplier.html | 10 + 33 files changed, 1106 insertions(+), 58 deletions(-) create mode 100644 src/ahc-hrsn-elt/screening/sqlpage.ts create mode 100644 support/assurance/ahc-hrsn-elt/screening/results-test-e2e/sqlpage/sqlpage.json create mode 100644 support/docs/lib/ahc-hrsn-elt/screening/~/SQLPageNotebook.html diff --git a/README.md b/README.md index ce091bf2..1f5dfa17 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,9 @@ that developers and data analysts do not need to procure or purchase any tools. Javascript runtime and put it in your `PATH`. - Download [DuckDB](https://duckdb.org/docs/installation) 0.9+ for ingestion operations and put it in your `PATH`. +- Download [SQLPage](https://github.com/lovasoa/SQLpage/releases) SQL browser + and put it in your `PATH`. This is not strictly required but highly + recommended for easier diagnostics. The utilities mentioned above are cross-platform single-file binaries and will run on Windows, MacOS, or Linux. Please be sure to get the proper binaries for @@ -88,6 +91,7 @@ $ cd 1115-hub $ deno task # list available tasks in `deno.jsonc` $ deno task doctor # see if dependencies are installed properly $ deno task ahc-hrsn-screening-test-e2e # run the ingestion tasks as end-to-end test +$ deno task ahc-hrsn-screening-test-serve # run the ingestion tasks as end-to-end test and serve with SQLPage $ deno task ahc-hrsn-screening-doc # generate documentation for the library in support/docs/lib/ahc-hrsn-elt/screening ``` diff --git a/deno.jsonc b/deno.jsonc index 61ccd920..b6ff78c4 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -3,6 +3,8 @@ "doctor": "deno run -A ./support/bin/doctor.ts", "ahc-hrsn-screening-test-e2e": "deno run -A ./src/ahc-hrsn-elt/screening/test-e2e.ts", "ahc-hrsn-screening-doc": "deno doc --html --name=\"AHC HRSN Screening\" --output=./support/docs/lib/ahc-hrsn-elt/screening/ ./src/ahc-hrsn-elt/screening/mod.ts", - "prepare-release": "deno task ahc-hrsn-screening-doc" + "prepare-release": "deno task ahc-hrsn-screening-doc", + "sqlpage": "cd support/assurance/ahc-hrsn-elt/screening/results-test-e2e && sqlpage.bin", + "ahc-hrsn-screening-test-serve": "deno task ahc-hrsn-screening-test-e2e && deno task sqlpage" } -} \ No newline at end of file +} diff --git a/deno.lock b/deno.lock index 8ae78990..9326dc0a 100644 --- a/deno.lock +++ b/deno.lock @@ -1261,6 +1261,213 @@ "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/render/graph.ts": "d8de5eae4c60322156d43a0c587b5cb8fc8f8b608093cfd4f380902f4049dec1", "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/render/mod.ts": "a3389f40211e752d77c9877a7b55477dafdb831020c227bcb71a89a1ffb73e01", "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/render/quality-system.ts": "7ec5b0c30eb799d18fa75627de93de490de96166652a298da0ccf648cf09a79f", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/deps.ts": "4827a3829b1c4ab324560d7e6a46549b3b0c8278562e67b91857a95ead722dbc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/duckdb/mod.ts": "caf953151427f9cc8667a821c2704a820db19dde3ec41ea84844728c3ffc9497", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/duckdb/shell.ts": "a3e17459cb009552e2352f93acfa057a1c9128ee8774a6cff1ee985699261ae1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/notebook/chain-of-responsibility.ts": "0b9d38cb753edbe0bac538c210f62985a56da46c591fdf306e6016cd54a3dd64", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/notebook/command.ts": "0c2df89b19ef0d60fb4e65257453f1b79ef8640692b4c73f827bf2b38540a938", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/notebook/deps.ts": "a746118f276b968d4c808478ba3d1bbd51f989f28f0e358d7462e0c7771f3407", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/pre-process/psql/include.ts": "df0ae6d18072dd1fc00a35ee5232475eceac28f85e77fb455fb1a9a2e4218fca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/pre-process/psql/meta-command.ts": "50801350208a17fcb52527636ce13e7717e1882b1f1d108631d73bcba4336d69", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/pre-process/psql/mod.ts": "24d392a2d35691f175a8b2120de8c6ffb0a3d0dadad8768d71ef515a2261a125", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/pre-process/psql/set.ts": "4b1292268db8b7d74947919842cc54461f69eb1cfbbe8faae05a1b300ef3a744", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/quality-system/governance.ts": "899f9129b65790a49a4caa0d0cd38bddd69a7d519ba2f150c095e4e95f041d92", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/quality-system/mod.ts": "4485719eb6bae9e9163fdbd3af0e1c28185775aa10f2300e042651a998a4aeb4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/array.ts": "d657bd5c0d99a4f666d740653721f7fbee754ce63b6f0177387c0cf84b00303c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/flexible-text.ts": "21fb1297fed736b4d80ae6ef9b48acdbc9cfec9575cfb7d9e3aedc858820fe56", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/graph.ts": "091bebe26e9810994d791702fedd6df0caeb7fe3ad8232f4b2d71eec52c297b1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/record.ts": "403be181c0ffc473a131dd606b544a380b1d7f792c85fd57657ea6a557d8bc6e", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/safety.ts": "6a221abc2c355287d354d5d9e3e5652aab7857dba72224fc13588726d4467697", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/sys-info.ts": "98622658e654865fbe1a86bfc77136b4de99041c1fe41fbab833227f93dd42ce", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/whitespace.ts": "303e037f9cf984848933002b6b1ccb5218f030ab6b4661dcc69352733f4f06ff", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/lib/universal/zod-aide.ts": "d1e389936d3b77581ce655aeb5fee21436ed62161a5480bd42bac7e5b717c1ae", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/ingest/duckdb/assurance.ts": "213b47e018cf18e73fb2a4621d8eb1ad00318f005a64957e85105891531efef4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/ingest/duckdb/deps.ts": "8574e3f63209de00d3d7f80ed075f6fda4ab5e1da6c158b46039585d4fd2c186", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/ingest/duckdb/mod.ts": "645e2d4f72109cd0ef3ac30c833b8a0eca96d9d07e3d952ded6819a80b8f70da", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/ingest/duckdb/notebook.ts": "25ec0bbf342124604014b2d45e54ebad1200d9e8aee59cafe39a3923f09c9062", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/sqlpage/mod.ts": "82e20894b295deab5cd8982890fa8b0ea95c3d7e44ea618cfcb6c25117fedddd", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/typical/enum-table.ts": "82f91bb95bdaa1c4ce2a1a6a43e9ae459fe5fd19bf868331087699bd6623bc20", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/typical/mod.ts": "8852e67a308d5a784fac094994832d0a0d16f66512b32193d9c15ba781a464e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/typical/typical-cli.ts": "7df709acf258215c7e63f29ec351d766eb939a9a88e4f2ac9ddd7efe913b7e73", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/pattern/typical/typical.ts": "d2bd05b9dc1c74a4c0bd19b57744246625de939d09c02dd7830cfa97acff2d05", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/mod.ts": "0ea2e3e0b9a8449a029b26633017c59b274e0c3c55f6850c161c345ea6b1bc79", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/schema.ts": "3ae39ff73d6b493768bc06752eda54ac74b6f0fd504e77211ac20697ba41fe94", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/column.ts": "f1c65bae4c4ed3591b2d41ef085400fde6ad8049e8005a0814e414b4a79e76c3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/constraint.ts": "e51e53eb15fd34152967cda6b28c36bfae19b1835bb5847e447270b7d3297c02", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/foreign-key.ts": "5ed0a3ddfe4e264369e776beac196cc56d05fc014bc234d9f5a857d32f629be1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/index.ts": "7399da506094d17324f4b72cefc2a30ffb5e26ef79f152429947fc83a8c2b8dc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/lint.ts": "8d95f5d9b13791f02ab2511148b227298520ea8bd71aeda5fc8cba3b6d60284c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/mod.ts": "eb5e07971125b3cbc9cfdfe9af0bd942bd76f305db82ce4014d4c0584910681c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/primary-key.ts": "882112cf17549784cba8563bcb4cdd65ab5340f7234f60bd32096c19cfa7fbe5", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/record.ts": "f93ae25eddf94a06255af1b5505712e8d3cbad7c0d6c0d360950839ffebdb0e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/select.ts": "43d38132ea1eb92582c28abc85d21d61cea0f981cac1290a8ca8444196951995", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/self-ref.ts": "d0360e77d2d340c55fb611c17461a6e50cda2fd283a140185239d3152c8d92b7", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/table/table.ts": "9f81bf927a02667123bcb9205411546e87e17add1d3ddca7f479ea6236289d00", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/type.ts": "2bd8ed9d5b5cd412fe95a4b67a7dd2eaf3938433f02f7df9529e130214188206", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/ddl/view.ts": "0d5573b707d1292a2229a61e28c246da8bfe74f0b9d3b19e1696f87492699965", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/deps.ts": "f822685ed0ab1e5b2fc76d87c81997555320d2496399684518dc4f52850ffbdb", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/diagram/plantuml-ie-notation.ts": "e5bcfe0585887523ae81a0445abebe15f5896236e1096d6320ed1baef2724788", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/dml/insert.ts": "3b3186d47c398f03f37008a3f590222312dc74911d174cc6ec7e593428ec5b04", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/dml/mod.ts": "8a86dd5a22f2a9690d5a54526caf3d647fa0a85b52da71bed89ae7a8aff734be", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/domain/domain.ts": "2d98ecd92d939e7642e476bcdab92016831853e646021f71ee1863723db20a32", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/domain/domains.ts": "c568e5e7ec2732916ae40a794612dd6204668551dc088af8c1791866956cc7ca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/domain/mod.ts": "976337eb03d15107cef0b6bbf9f19451a9f479d416f8eaf4842d8a780936b3b3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/dql/criteria.ts": "9d91520e78e21ac613fadca2d0d1b00094498aecc22a9fee522a749b3d1dc3d2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/dql/mod.ts": "cabe5089c3d3756fb64fa4165fbcd8a842aa9af5eed2f4e925deb033d3e0abba", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/dql/select.ts": "bc033a1c0e60939a539740440b2693fd64061d276997ea81c05b2e7f447cb35a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/dialect.ts": "a54fe72979d58f97f99280dc202b5b349606182eee73434a3641cae0eb17e345", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/directive.ts": "bf2244d94b61a521d7a00b2fa52c778bc8e217fbd1dd2a7109d723b347e2baa2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/interpolate.ts": "f7e4ddebcb9d9ea0ac5ec8ffd59432e3b04571bf6a27820a8ffe7a258f66cf2a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/js.ts": "b3027a36f19bed035b255b61788aef1747a3c74b264ea31c9eb2ad703648bfc8", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/mod.ts": "392ad0e5affe06d1a386735d85329c9c2b252b73e7ce197c45563572358837f0", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/namespace.ts": "6e15a3fd4af6c9f17af1d94ca9f36764fa7d3306e2b8fc63bb77863edd2d6c50", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/polygenix-notebook.ts": "5bc6cfb72743ba4501331fbb13b25a073902434863cdf58e596c9833120028f9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/polygenix.ts": "ef8b9864ebdf3cc8b8e04540d57f8b50b395b07c329aaeb952e660aa5e52d5d1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/quality-system.ts": "d8fce4ec7eb54cab850c9ceac5be08e21d743b4457eac2ee9d5e51aad35fb989", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/sql-notebook.ts": "94f612eaebc4ae1bbaeaf40c57d9e49991e376d559e7a285bf7e3a421fc3051b", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/emit/sql.ts": "894c5437020139584e5b2b2b397fc93e414d3a66096ba5224b06ae5749f12ca3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/graph.ts": "d8de5eae4c60322156d43a0c587b5cb8fc8f8b608093cfd4f380902f4049dec1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/mod.ts": "a3389f40211e752d77c9877a7b55477dafdb831020c227bcb71a89a1ffb73e01", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.21/render/quality-system.ts": "7ec5b0c30eb799d18fa75627de93de490de96166652a298da0ccf648cf09a79f", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/deps.ts": "4827a3829b1c4ab324560d7e6a46549b3b0c8278562e67b91857a95ead722dbc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/duckdb/mod.ts": "caf953151427f9cc8667a821c2704a820db19dde3ec41ea84844728c3ffc9497", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/duckdb/shell.ts": "a3e17459cb009552e2352f93acfa057a1c9128ee8774a6cff1ee985699261ae1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/notebook/chain-of-responsibility.ts": "0b9d38cb753edbe0bac538c210f62985a56da46c591fdf306e6016cd54a3dd64", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/notebook/command.ts": "0c2df89b19ef0d60fb4e65257453f1b79ef8640692b4c73f827bf2b38540a938", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/notebook/deps.ts": "a746118f276b968d4c808478ba3d1bbd51f989f28f0e358d7462e0c7771f3407", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/pre-process/psql/include.ts": "df0ae6d18072dd1fc00a35ee5232475eceac28f85e77fb455fb1a9a2e4218fca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/pre-process/psql/meta-command.ts": "50801350208a17fcb52527636ce13e7717e1882b1f1d108631d73bcba4336d69", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/pre-process/psql/mod.ts": "24d392a2d35691f175a8b2120de8c6ffb0a3d0dadad8768d71ef515a2261a125", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/pre-process/psql/set.ts": "4b1292268db8b7d74947919842cc54461f69eb1cfbbe8faae05a1b300ef3a744", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/quality-system/governance.ts": "899f9129b65790a49a4caa0d0cd38bddd69a7d519ba2f150c095e4e95f041d92", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/quality-system/mod.ts": "4485719eb6bae9e9163fdbd3af0e1c28185775aa10f2300e042651a998a4aeb4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/array.ts": "d657bd5c0d99a4f666d740653721f7fbee754ce63b6f0177387c0cf84b00303c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/flexible-text.ts": "21fb1297fed736b4d80ae6ef9b48acdbc9cfec9575cfb7d9e3aedc858820fe56", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/graph.ts": "091bebe26e9810994d791702fedd6df0caeb7fe3ad8232f4b2d71eec52c297b1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/record.ts": "403be181c0ffc473a131dd606b544a380b1d7f792c85fd57657ea6a557d8bc6e", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/safety.ts": "6a221abc2c355287d354d5d9e3e5652aab7857dba72224fc13588726d4467697", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/sys-info.ts": "98622658e654865fbe1a86bfc77136b4de99041c1fe41fbab833227f93dd42ce", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/whitespace.ts": "303e037f9cf984848933002b6b1ccb5218f030ab6b4661dcc69352733f4f06ff", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/lib/universal/zod-aide.ts": "d1e389936d3b77581ce655aeb5fee21436ed62161a5480bd42bac7e5b717c1ae", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/ingest/duckdb/assurance.ts": "213b47e018cf18e73fb2a4621d8eb1ad00318f005a64957e85105891531efef4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/ingest/duckdb/deps.ts": "8574e3f63209de00d3d7f80ed075f6fda4ab5e1da6c158b46039585d4fd2c186", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/ingest/duckdb/mod.ts": "645e2d4f72109cd0ef3ac30c833b8a0eca96d9d07e3d952ded6819a80b8f70da", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/ingest/duckdb/notebook.ts": "25ec0bbf342124604014b2d45e54ebad1200d9e8aee59cafe39a3923f09c9062", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/sqlpage/mod.ts": "82e20894b295deab5cd8982890fa8b0ea95c3d7e44ea618cfcb6c25117fedddd", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/typical/enum-table.ts": "82f91bb95bdaa1c4ce2a1a6a43e9ae459fe5fd19bf868331087699bd6623bc20", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/typical/mod.ts": "8852e67a308d5a784fac094994832d0a0d16f66512b32193d9c15ba781a464e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/typical/typical-cli.ts": "7df709acf258215c7e63f29ec351d766eb939a9a88e4f2ac9ddd7efe913b7e73", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/pattern/typical/typical.ts": "d2bd05b9dc1c74a4c0bd19b57744246625de939d09c02dd7830cfa97acff2d05", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/mod.ts": "0ea2e3e0b9a8449a029b26633017c59b274e0c3c55f6850c161c345ea6b1bc79", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/schema.ts": "3ae39ff73d6b493768bc06752eda54ac74b6f0fd504e77211ac20697ba41fe94", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/column.ts": "f1c65bae4c4ed3591b2d41ef085400fde6ad8049e8005a0814e414b4a79e76c3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/constraint.ts": "e51e53eb15fd34152967cda6b28c36bfae19b1835bb5847e447270b7d3297c02", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/foreign-key.ts": "5ed0a3ddfe4e264369e776beac196cc56d05fc014bc234d9f5a857d32f629be1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/index.ts": "7399da506094d17324f4b72cefc2a30ffb5e26ef79f152429947fc83a8c2b8dc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/lint.ts": "8d95f5d9b13791f02ab2511148b227298520ea8bd71aeda5fc8cba3b6d60284c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/mod.ts": "eb5e07971125b3cbc9cfdfe9af0bd942bd76f305db82ce4014d4c0584910681c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/primary-key.ts": "882112cf17549784cba8563bcb4cdd65ab5340f7234f60bd32096c19cfa7fbe5", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/record.ts": "f93ae25eddf94a06255af1b5505712e8d3cbad7c0d6c0d360950839ffebdb0e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/select.ts": "43d38132ea1eb92582c28abc85d21d61cea0f981cac1290a8ca8444196951995", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/self-ref.ts": "d0360e77d2d340c55fb611c17461a6e50cda2fd283a140185239d3152c8d92b7", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/table/table.ts": "9f81bf927a02667123bcb9205411546e87e17add1d3ddca7f479ea6236289d00", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/type.ts": "2bd8ed9d5b5cd412fe95a4b67a7dd2eaf3938433f02f7df9529e130214188206", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/ddl/view.ts": "0d5573b707d1292a2229a61e28c246da8bfe74f0b9d3b19e1696f87492699965", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/deps.ts": "f822685ed0ab1e5b2fc76d87c81997555320d2496399684518dc4f52850ffbdb", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/diagram/plantuml-ie-notation.ts": "e5bcfe0585887523ae81a0445abebe15f5896236e1096d6320ed1baef2724788", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/dml/insert.ts": "3b3186d47c398f03f37008a3f590222312dc74911d174cc6ec7e593428ec5b04", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/dml/mod.ts": "8a86dd5a22f2a9690d5a54526caf3d647fa0a85b52da71bed89ae7a8aff734be", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/domain/domain.ts": "2d98ecd92d939e7642e476bcdab92016831853e646021f71ee1863723db20a32", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/domain/domains.ts": "c568e5e7ec2732916ae40a794612dd6204668551dc088af8c1791866956cc7ca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/domain/mod.ts": "976337eb03d15107cef0b6bbf9f19451a9f479d416f8eaf4842d8a780936b3b3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/dql/criteria.ts": "9d91520e78e21ac613fadca2d0d1b00094498aecc22a9fee522a749b3d1dc3d2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/dql/mod.ts": "cabe5089c3d3756fb64fa4165fbcd8a842aa9af5eed2f4e925deb033d3e0abba", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/dql/select.ts": "bc033a1c0e60939a539740440b2693fd64061d276997ea81c05b2e7f447cb35a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/dialect.ts": "a54fe72979d58f97f99280dc202b5b349606182eee73434a3641cae0eb17e345", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/directive.ts": "bf2244d94b61a521d7a00b2fa52c778bc8e217fbd1dd2a7109d723b347e2baa2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/interpolate.ts": "f7e4ddebcb9d9ea0ac5ec8ffd59432e3b04571bf6a27820a8ffe7a258f66cf2a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/js.ts": "b3027a36f19bed035b255b61788aef1747a3c74b264ea31c9eb2ad703648bfc8", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/mod.ts": "392ad0e5affe06d1a386735d85329c9c2b252b73e7ce197c45563572358837f0", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/namespace.ts": "6e15a3fd4af6c9f17af1d94ca9f36764fa7d3306e2b8fc63bb77863edd2d6c50", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/polygenix-notebook.ts": "5bc6cfb72743ba4501331fbb13b25a073902434863cdf58e596c9833120028f9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/polygenix.ts": "ef8b9864ebdf3cc8b8e04540d57f8b50b395b07c329aaeb952e660aa5e52d5d1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/quality-system.ts": "d8fce4ec7eb54cab850c9ceac5be08e21d743b4457eac2ee9d5e51aad35fb989", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/sql-notebook.ts": "94f612eaebc4ae1bbaeaf40c57d9e49991e376d559e7a285bf7e3a421fc3051b", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/emit/sql.ts": "894c5437020139584e5b2b2b397fc93e414d3a66096ba5224b06ae5749f12ca3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/graph.ts": "d8de5eae4c60322156d43a0c587b5cb8fc8f8b608093cfd4f380902f4049dec1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/mod.ts": "a3389f40211e752d77c9877a7b55477dafdb831020c227bcb71a89a1ffb73e01", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.22/render/quality-system.ts": "7ec5b0c30eb799d18fa75627de93de490de96166652a298da0ccf648cf09a79f", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/deps.ts": "4827a3829b1c4ab324560d7e6a46549b3b0c8278562e67b91857a95ead722dbc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/duckdb/mod.ts": "caf953151427f9cc8667a821c2704a820db19dde3ec41ea84844728c3ffc9497", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/duckdb/shell.ts": "a3e17459cb009552e2352f93acfa057a1c9128ee8774a6cff1ee985699261ae1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/notebook/chain-of-responsibility.ts": "0b9d38cb753edbe0bac538c210f62985a56da46c591fdf306e6016cd54a3dd64", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/notebook/command.ts": "0c2df89b19ef0d60fb4e65257453f1b79ef8640692b4c73f827bf2b38540a938", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/notebook/deps.ts": "a746118f276b968d4c808478ba3d1bbd51f989f28f0e358d7462e0c7771f3407", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/pre-process/psql/include.ts": "df0ae6d18072dd1fc00a35ee5232475eceac28f85e77fb455fb1a9a2e4218fca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/pre-process/psql/meta-command.ts": "50801350208a17fcb52527636ce13e7717e1882b1f1d108631d73bcba4336d69", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/pre-process/psql/mod.ts": "24d392a2d35691f175a8b2120de8c6ffb0a3d0dadad8768d71ef515a2261a125", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/pre-process/psql/set.ts": "4b1292268db8b7d74947919842cc54461f69eb1cfbbe8faae05a1b300ef3a744", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/quality-system/governance.ts": "899f9129b65790a49a4caa0d0cd38bddd69a7d519ba2f150c095e4e95f041d92", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/quality-system/mod.ts": "4485719eb6bae9e9163fdbd3af0e1c28185775aa10f2300e042651a998a4aeb4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/array.ts": "d657bd5c0d99a4f666d740653721f7fbee754ce63b6f0177387c0cf84b00303c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/flexible-text.ts": "21fb1297fed736b4d80ae6ef9b48acdbc9cfec9575cfb7d9e3aedc858820fe56", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/graph.ts": "091bebe26e9810994d791702fedd6df0caeb7fe3ad8232f4b2d71eec52c297b1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/record.ts": "403be181c0ffc473a131dd606b544a380b1d7f792c85fd57657ea6a557d8bc6e", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/safety.ts": "6a221abc2c355287d354d5d9e3e5652aab7857dba72224fc13588726d4467697", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/sys-info.ts": "98622658e654865fbe1a86bfc77136b4de99041c1fe41fbab833227f93dd42ce", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/whitespace.ts": "303e037f9cf984848933002b6b1ccb5218f030ab6b4661dcc69352733f4f06ff", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/zod-aide.ts": "d1e389936d3b77581ce655aeb5fee21436ed62161a5480bd42bac7e5b717c1ae", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/ingest/duckdb/assurance.ts": "213b47e018cf18e73fb2a4621d8eb1ad00318f005a64957e85105891531efef4", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/ingest/duckdb/deps.ts": "8574e3f63209de00d3d7f80ed075f6fda4ab5e1da6c158b46039585d4fd2c186", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/ingest/duckdb/mod.ts": "645e2d4f72109cd0ef3ac30c833b8a0eca96d9d07e3d952ded6819a80b8f70da", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/ingest/duckdb/notebook.ts": "25ec0bbf342124604014b2d45e54ebad1200d9e8aee59cafe39a3923f09c9062", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/sqlpage/component.ts": "92d1305174a27e1e78f1009489ef7c1c0b6e7ad5e89765fe94000414a01bef37", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/sqlpage/content.ts": "de07dfd4f6408e03e72ea0156a3e531bc4226cbbb4577b5d26fa9a0270eda0d1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/sqlpage/mod.ts": "e3dbfe9b78b6acb18572c9dc6a4d4db831279d37adbbd0cacc56a0638e3fab24", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/sqlpage/notebook.ts": "6cc4e3a3f7b116e92731c1a8b75a8b79e07bb1076a46d77a5a65b97c0449a106", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/typical/enum-table.ts": "82f91bb95bdaa1c4ce2a1a6a43e9ae459fe5fd19bf868331087699bd6623bc20", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/typical/mod.ts": "8852e67a308d5a784fac094994832d0a0d16f66512b32193d9c15ba781a464e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/typical/typical-cli.ts": "7df709acf258215c7e63f29ec351d766eb939a9a88e4f2ac9ddd7efe913b7e73", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/typical/typical.ts": "d2bd05b9dc1c74a4c0bd19b57744246625de939d09c02dd7830cfa97acff2d05", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/mod.ts": "0ea2e3e0b9a8449a029b26633017c59b274e0c3c55f6850c161c345ea6b1bc79", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/schema.ts": "3ae39ff73d6b493768bc06752eda54ac74b6f0fd504e77211ac20697ba41fe94", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/column.ts": "f1c65bae4c4ed3591b2d41ef085400fde6ad8049e8005a0814e414b4a79e76c3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/constraint.ts": "e51e53eb15fd34152967cda6b28c36bfae19b1835bb5847e447270b7d3297c02", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/foreign-key.ts": "5ed0a3ddfe4e264369e776beac196cc56d05fc014bc234d9f5a857d32f629be1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/index.ts": "7399da506094d17324f4b72cefc2a30ffb5e26ef79f152429947fc83a8c2b8dc", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/lint.ts": "8d95f5d9b13791f02ab2511148b227298520ea8bd71aeda5fc8cba3b6d60284c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/mod.ts": "eb5e07971125b3cbc9cfdfe9af0bd942bd76f305db82ce4014d4c0584910681c", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/primary-key.ts": "882112cf17549784cba8563bcb4cdd65ab5340f7234f60bd32096c19cfa7fbe5", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/record.ts": "f93ae25eddf94a06255af1b5505712e8d3cbad7c0d6c0d360950839ffebdb0e9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/select.ts": "43d38132ea1eb92582c28abc85d21d61cea0f981cac1290a8ca8444196951995", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/self-ref.ts": "d0360e77d2d340c55fb611c17461a6e50cda2fd283a140185239d3152c8d92b7", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/table/table.ts": "9f81bf927a02667123bcb9205411546e87e17add1d3ddca7f479ea6236289d00", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/type.ts": "2bd8ed9d5b5cd412fe95a4b67a7dd2eaf3938433f02f7df9529e130214188206", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/ddl/view.ts": "0d5573b707d1292a2229a61e28c246da8bfe74f0b9d3b19e1696f87492699965", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/deps.ts": "f822685ed0ab1e5b2fc76d87c81997555320d2496399684518dc4f52850ffbdb", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/diagram/plantuml-ie-notation.ts": "e5bcfe0585887523ae81a0445abebe15f5896236e1096d6320ed1baef2724788", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/dml/insert.ts": "3b3186d47c398f03f37008a3f590222312dc74911d174cc6ec7e593428ec5b04", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/dml/mod.ts": "8a86dd5a22f2a9690d5a54526caf3d647fa0a85b52da71bed89ae7a8aff734be", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/domain/domain.ts": "2d98ecd92d939e7642e476bcdab92016831853e646021f71ee1863723db20a32", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/domain/domains.ts": "c568e5e7ec2732916ae40a794612dd6204668551dc088af8c1791866956cc7ca", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/domain/mod.ts": "976337eb03d15107cef0b6bbf9f19451a9f479d416f8eaf4842d8a780936b3b3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/dql/criteria.ts": "9d91520e78e21ac613fadca2d0d1b00094498aecc22a9fee522a749b3d1dc3d2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/dql/mod.ts": "cabe5089c3d3756fb64fa4165fbcd8a842aa9af5eed2f4e925deb033d3e0abba", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/dql/select.ts": "bc033a1c0e60939a539740440b2693fd64061d276997ea81c05b2e7f447cb35a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/dialect.ts": "a54fe72979d58f97f99280dc202b5b349606182eee73434a3641cae0eb17e345", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/directive.ts": "bf2244d94b61a521d7a00b2fa52c778bc8e217fbd1dd2a7109d723b347e2baa2", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/interpolate.ts": "f7e4ddebcb9d9ea0ac5ec8ffd59432e3b04571bf6a27820a8ffe7a258f66cf2a", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/js.ts": "b3027a36f19bed035b255b61788aef1747a3c74b264ea31c9eb2ad703648bfc8", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/mod.ts": "392ad0e5affe06d1a386735d85329c9c2b252b73e7ce197c45563572358837f0", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/namespace.ts": "6e15a3fd4af6c9f17af1d94ca9f36764fa7d3306e2b8fc63bb77863edd2d6c50", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/polygenix-notebook.ts": "5bc6cfb72743ba4501331fbb13b25a073902434863cdf58e596c9833120028f9", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/polygenix.ts": "ef8b9864ebdf3cc8b8e04540d57f8b50b395b07c329aaeb952e660aa5e52d5d1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/quality-system.ts": "d8fce4ec7eb54cab850c9ceac5be08e21d743b4457eac2ee9d5e51aad35fb989", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/sql-notebook.ts": "94f612eaebc4ae1bbaeaf40c57d9e49991e376d559e7a285bf7e3a421fc3051b", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/emit/sql.ts": "894c5437020139584e5b2b2b397fc93e414d3a66096ba5224b06ae5749f12ca3", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/graph.ts": "d8de5eae4c60322156d43a0c587b5cb8fc8f8b608093cfd4f380902f4049dec1", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/mod.ts": "a3389f40211e752d77c9877a7b55477dafdb831020c227bcb71a89a1ffb73e01", + "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/quality-system.ts": "7ec5b0c30eb799d18fa75627de93de490de96166652a298da0ccf648cf09a79f", "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.6/deps.ts": "4827a3829b1c4ab324560d7e6a46549b3b0c8278562e67b91857a95ead722dbc", "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.6/lib/notebook/chain-of-responsibility.ts": "0b9d38cb753edbe0bac538c210f62985a56da46c591fdf306e6016cd54a3dd64", "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.6/lib/notebook/command.ts": "0c2df89b19ef0d60fb4e65257453f1b79ef8640692b4c73f827bf2b38540a938", diff --git a/src/ahc-hrsn-elt/screening/deps.ts b/src/ahc-hrsn-elt/screening/deps.ts index 90d6109d..b66b8168 100644 --- a/src/ahc-hrsn-elt/screening/deps.ts +++ b/src/ahc-hrsn-elt/screening/deps.ts @@ -8,12 +8,13 @@ export * as dax from "https://deno.land/x/dax@0.36.0/mod.ts"; export * as safeText from "npm:string-ts"; // local: ../../../../../netspective-labs/sql-aide -// remote: https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20 +// remote: https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23 -export * as array from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/lib/universal/array.ts"; -export * as chainNB from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/lib/notebook/chain-of-responsibility.ts"; -export * as duckdb_shell from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/lib/duckdb/mod.ts"; -export * as ws from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/lib/universal/whitespace.ts"; +export * as array from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/array.ts"; +export * as chainNB from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/notebook/chain-of-responsibility.ts"; +export * as duckdb_shell from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/duckdb/mod.ts"; +export * as ws from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/lib/universal/whitespace.ts"; -export * as SQLa from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/render/mod.ts"; -export * as SQLa_ingest_duckdb from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.20/pattern/ingest/duckdb/mod.ts"; +export * as SQLa from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/render/mod.ts"; +export * as SQLa_ingest_duckdb from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/ingest/duckdb/mod.ts"; +export * as SQLa_sqlpage from "https://raw.githubusercontent.com/netspective-labs/sql-aide/v0.11.23/pattern/sqlpage/mod.ts"; diff --git a/src/ahc-hrsn-elt/screening/ingest.ts b/src/ahc-hrsn-elt/screening/ingest.ts index 3b011b59..7b0fb8d7 100644 --- a/src/ahc-hrsn-elt/screening/ingest.ts +++ b/src/ahc-hrsn-elt/screening/ingest.ts @@ -6,6 +6,7 @@ import { SQLa_ingest_duckdb as ddbi, ws, } from "./deps.ts"; +import * as sp from "./sqlpage.ts"; import { ingestCsvFilesSourcesSupplier, @@ -306,7 +307,7 @@ export class IngestEngine { } async emitResources(isc: IngestStepContext) { - const { args: { resourceDb, session } } = this; + const { args: { resourceDb, session }, govn: { emitCtx: ctx } } = this; if (resourceDb) { try { Deno.removeSync(resourceDb); @@ -314,12 +315,14 @@ export class IngestEngine { // ignore errors if file does not exist } + const spc = sp.SQLPageNotebook.create(this.govn); const adminTables = [ this.govn.device, this.govn.ingestSession, this.govn.ingestSessionEntry, this.govn.ingestSessionState, this.govn.ingestSessionIssue, + spc.table, ]; const beforeFinalize = session.sqlCatalogSqlText("before-finalize"); @@ -335,6 +338,9 @@ export class IngestEngine { await this.duckdb.execute(ws.unindentWhitespace(` ${beforeFinalize.length > 0 ? `${beforeFinalize.join(";\n ")};` : "-- no before-finalize SQL provided"} + -- emit all the SQLPage content + ${((await spc.sqlCells()).map(sc => sc.SQL(ctx))).join(";\n\n")}; + ATTACH '${resourceDb}' AS resource_db (TYPE SQLITE); ${adminTables.map(t => `CREATE TABLE resource_db.${t.tableName} AS SELECT * FROM ${t.tableName}`).join(";\n ")}; diff --git a/src/ahc-hrsn-elt/screening/mod.ts b/src/ahc-hrsn-elt/screening/mod.ts index c05307db..2cdbf6bb 100644 --- a/src/ahc-hrsn-elt/screening/mod.ts +++ b/src/ahc-hrsn-elt/screening/mod.ts @@ -2,3 +2,4 @@ export * from "./csv.ts"; export * from "./excel.ts"; export * from "./governance.ts"; export * from "./ingest.ts"; +export * from "./sqlpage.ts"; diff --git a/src/ahc-hrsn-elt/screening/sqlpage.ts b/src/ahc-hrsn-elt/screening/sqlpage.ts new file mode 100644 index 00000000..c78b3411 --- /dev/null +++ b/src/ahc-hrsn-elt/screening/sqlpage.ts @@ -0,0 +1,81 @@ +import { + chainNB, + SQLa_ingest_duckdb as ddbi, + SQLa_sqlpage as sp, +} from "./deps.ts"; + +type SQLPageCell = chainNB.NotebookCell< + SQLPageNotebook, + chainNB.NotebookCellID +>; + +const nbDescr = new chainNB.NotebookDescriptor< + SQLPageNotebook, + SQLPageCell +>(); + +// see https://sql.ophir.dev/documentation.sql?component=debug#component + +export class SQLPageNotebook { + readonly tc: ReturnType>; + readonly comps = sp.typicalComponents(); + + constructor(readonly govn: ddbi.IngestGovernance) { + this.tc = sp.typicalContent(govn.SQL); + } + + @nbDescr.disregard() + shell() { + return this.govn.SQL` + SELECT + 'shell' as component, + 'book' as icon, + 'QCS Ingestion Center' as title, + '/' as link, + 'issues' as menu_item, + 'schema' as menu_item`; + } + + "index.sql"() { + // passing in `chainNB.NotebookCellID` allows us to restrict + // menu hrefs to this notebook's cell names (the pages in SQLPage) + const { list, listItem: li } = sp.typicalComponents< + chainNB.NotebookCellID, + ddbi.IngestEmitContext + >(); + + // deno-fmt-ignore + return this.govn.SQL` + ${this.shell()} + ${list({ items: [ + li({ title: "Ingestion Issues", link: "issues.sql" }), + li({ title: "Ingestion State Schema", link: "schema.sql" }), + ]})}`; + } + + "issues.sql"() { + // deno-fmt-ignore + return this.govn.SQL` + ${this.shell()} + SELECT 'table' as component; + SELECT issue_type, issue_message, invalid_value, remediation + FROM "ingest_session_issue"; + `; + } + + "schema.sql"() { + return this.govn.SQL` + ${this.shell()} + ${this.tc.infoSchemaSQL()} + `; + } + + static create(govn: ddbi.IngestGovernance) { + return sp.sqlPageNotebook( + SQLPageNotebook.prototype, + () => new SQLPageNotebook(govn), + () => govn.emitCtx, + nbDescr, + ); + } +} diff --git a/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.md b/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.md index 448c2626..e2b057d0 100644 --- a/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.md +++ b/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.md @@ -238,40 +238,40 @@ SELECT session_entry_id, ingest_session_issue_id, issue_type, issue_message, inv {"session_entry_id":"7b979b68-7227-53fd-b689-e4fe153afb76","ingest_session_issue_id":"abf5c680-a135-5d89-b871-fa5b9b99aed6","issue_type":"Sheet Missing","issue_message":"Excel workbook sheet 'Screening' not found in 'synthetic-fail-excel-01.xlsx' (available: Sheet1)","invalid_value":"support/assurance/ahc-hrsn-elt/screening/synthetic-content/synthetic-fail-excel-01.xlsx"}, {"session_entry_id":"641dff51-97fd-56b3-8443-c1ed568a6d66","ingest_session_issue_id":"d70a4700-6b40-52fc-a7a2-69ef0d7f69ff","issue_type":"Sheet Missing","issue_message":"Excel workbook sheet 'QE_Admin_Data' not found in 'synthetic-fail-excel-01.xlsx' (available: Sheet1)","invalid_value":"support/assurance/ahc-hrsn-elt/screening/synthetic-content/synthetic-fail-excel-01.xlsx"}, {"session_entry_id":"47277588-99e8-59f5-8384-b24344a86073","ingest_session_issue_id":"58b22e99-5854-53bf-adbe-08e67df99b85","issue_type":"TODO","issue_message":"Excel workbook 'ahc-hrsn-valid-01.xlsx' sheet 'Admin_Demographic' has not been implemented yet.","invalid_value":"support/assurance/ahc-hrsn-elt/screening/synthetic-content/ahc-hrsn-valid-01.xlsx"}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"075edff5-a4e7-4ee3-8d19-cfd113748ac0","issue_type":"Missing Column","issue_message":"Required column FACILITY is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"6ca0effe-2584-4e52-a4c8-f0419e77b764","issue_type":"Missing Column","issue_message":"Required column FIRST_NAME is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"48efe1e7-3744-44e3-89c2-39386800a5ce","issue_type":"Missing Column","issue_message":"Required column LAST_NAME is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"cd51142c-2eb5-468e-bc9b-0ccb3e58bf66","issue_type":"Missing Column","issue_message":"Required column PAT_BIRTH_DATE is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"1c9d1659-2fa2-49a3-a148-175572b163b8","issue_type":"Missing Column","issue_message":"Required column MEDICAID_CIN is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"2545cca8-d5c8-4893-89d2-082b5624ef68","issue_type":"Missing Column","issue_message":"Required column ENCOUNTER_ID is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"96f2ece9-baca-4da9-8e46-d32d6c7a7f79","issue_type":"Missing Column","issue_message":"Required column SURVEY is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"254ea412-be68-44e9-ac29-9cbe4374418b","issue_type":"Missing Column","issue_message":"Required column SURVEY_ID is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"e632a328-5781-4643-9e66-428ae9953f3c","issue_type":"Missing Column","issue_message":"Required column NEED_INDICATED is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"97eb4167-9616-43dc-976a-3686d4b132ba","issue_type":"Missing Column","issue_message":"Required column VISIT_PART_2_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"bc25ec47-3825-45cd-804b-bcd5f7ec0a98","issue_type":"Missing Column","issue_message":"Required column VISIT_OMH_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, -{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"f8aaddfe-ac87-4710-a869-4ff918b7b9d2","issue_type":"Missing Column","issue_message":"Required column VISIT_OPWDD_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"5c3046fa-bb76-4d07-b4d7-2cdfd85193a2","issue_type":"Missing Column","issue_message":"Required column FACILITY is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"4882c6b1-77f1-4cba-ba86-c26e062dab71","issue_type":"Missing Column","issue_message":"Required column FIRST_NAME is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"e6139de2-edd1-4516-a7c0-8828e6a6d4b3","issue_type":"Missing Column","issue_message":"Required column LAST_NAME is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"948d5ddb-caef-4683-af04-a9936974d326","issue_type":"Missing Column","issue_message":"Required column PAT_BIRTH_DATE is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"7f0fd156-d853-438e-a643-62156d1d8f90","issue_type":"Missing Column","issue_message":"Required column MEDICAID_CIN is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"81ac8b91-89c0-4ec2-89ec-fa5d8ee36bc3","issue_type":"Missing Column","issue_message":"Required column ENCOUNTER_ID is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"13a43ce9-da28-48a9-90aa-7a1ff58d7bab","issue_type":"Missing Column","issue_message":"Required column SURVEY is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"a638ff45-26b4-46d9-81b2-ce35f105277f","issue_type":"Missing Column","issue_message":"Required column SURVEY_ID is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"9c1b5ed8-c102-41c4-a8a7-1e9a9b5168a4","issue_type":"Missing Column","issue_message":"Required column NEED_INDICATED is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"f96e38c5-a3e0-483e-ba36-5d5934b9503f","issue_type":"Missing Column","issue_message":"Required column VISIT_PART_2_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"74b39964-6432-456d-8471-338dcd6d42e3","issue_type":"Missing Column","issue_message":"Required column VISIT_OMH_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, +{"session_entry_id":"a26ce332-3ced-5623-861d-23a2ef78e4a9","ingest_session_issue_id":"4000bd76-bd24-49e2-849a-839dabc51be8","issue_type":"Missing Column","issue_message":"Required column VISIT_OPWDD_FLAG is missing in ahc_hrsn_valid_01_screening.","invalid_value":null}, {"session_entry_id":"bc0c03b5-d1ba-5301-850f-5e4c42c1bf09","ingest_session_issue_id":"ae477ba1-c7f1-5f34-847a-50bddb7130aa","issue_type":"TODO","issue_message":"Excel workbook 'ahc-hrsn-valid-01.xlsx' sheet 'QE_Admin_Data' has not been implemented yet.","invalid_value":"support/assurance/ahc-hrsn-elt/screening/synthetic-content/ahc-hrsn-valid-01.xlsx"}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"52ee9024-14c7-4bb7-9052-db9e92bf4ecb","issue_type":"Missing Column","issue_message":"Required column PAT_MRN_ID is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"1349ff77-41c8-4fac-867a-061d8904b9e0","issue_type":"Missing Column","issue_message":"Required column FACILITY is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"b1092e59-9718-42e5-9dc6-616a87edff14","issue_type":"Missing Column","issue_message":"Required column FIRST_NAME is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"668ac1f1-7c0e-44ca-94e9-01a791222d74","issue_type":"Missing Column","issue_message":"Required column LAST_NAME is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"32388b9a-8bcd-4306-9b52-11e640030dcc","issue_type":"Missing Column","issue_message":"Required column PAT_BIRTH_DATE is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"643bb10c-584a-45ef-ac7a-2c378c7b461f","issue_type":"Missing Column","issue_message":"Required column MEDICAID_CIN is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"a212a6ab-1097-4052-af76-640ad3ab449f","issue_type":"Missing Column","issue_message":"Required column ENCOUNTER_ID is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"4f30e487-6b0b-4341-b9ce-d4c37bc3e503","issue_type":"Missing Column","issue_message":"Required column SURVEY is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"8b3142b0-7eed-4b04-af98-f8ad3fd6917e","issue_type":"Missing Column","issue_message":"Required column SURVEY_ID is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"757746fe-3786-4d12-aa38-68a403161dd2","issue_type":"Missing Column","issue_message":"Required column RECORDED_TIME is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"0faf29d3-d45d-4498-847a-d9a1058b0313","issue_type":"Missing Column","issue_message":"Required column QUESTION is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"88b5519e-9d49-4054-892c-1c65948d1e5f","issue_type":"Missing Column","issue_message":"Required column MEAS_VALUE is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"3de7dd13-d26d-4ce5-9297-16e22313ec6a","issue_type":"Missing Column","issue_message":"Required column QUESTION_CODE is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"7b8c600d-6011-43e7-a889-ae51561eda9a","issue_type":"Missing Column","issue_message":"Required column QUESTION_CODE_SYSTEM_NAME is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"c15a925c-8ac1-4fae-82d7-b44ea2ff7551","issue_type":"Missing Column","issue_message":"Required column ANSWER_CODE is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"4c35bd4d-beaa-48ad-b21c-acf0c91c2296","issue_type":"Missing Column","issue_message":"Required column ANSWER_CODE_SYSTEM_NAME is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"f9f053aa-571d-47df-b497-5d2e9006fc4c","issue_type":"Missing Column","issue_message":"Required column SDOH_DOMAIN is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"ec6c0559-785d-407a-8dea-39cfb3c01e7c","issue_type":"Missing Column","issue_message":"Required column NEED_INDICATED is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"7a33a23e-e341-40ae-8b33-4a10c7efcff1","issue_type":"Missing Column","issue_message":"Required column VISIT_PART_2_FLAG is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"1481d6a3-4f03-4121-a2b8-a51708188977","issue_type":"Missing Column","issue_message":"Required column VISIT_OMH_FLAG is missing in synthetic_fail.","invalid_value":null}, -{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"5c7575ce-8ecc-49d8-8d67-3f9a2879a7e5","issue_type":"Missing Column","issue_message":"Required column VISIT_OPWDD_FLAG is missing in synthetic_fail.","invalid_value":null}] +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"5cd2a955-9d69-42e9-aa54-03d3f2e1e1be","issue_type":"Missing Column","issue_message":"Required column PAT_MRN_ID is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"e10797f7-b3cf-42c5-9ffc-f8fa529c89df","issue_type":"Missing Column","issue_message":"Required column FACILITY is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"35190394-6745-4cf5-ac25-7637e9c1d08d","issue_type":"Missing Column","issue_message":"Required column FIRST_NAME is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"9e6b7969-254a-4e5a-a2b4-7844fb3bb0ec","issue_type":"Missing Column","issue_message":"Required column LAST_NAME is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"9a969bf1-b846-4f90-b8bc-995c5cbe0ca1","issue_type":"Missing Column","issue_message":"Required column PAT_BIRTH_DATE is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"20074e00-8db4-4ced-950d-28dfc6a384a6","issue_type":"Missing Column","issue_message":"Required column MEDICAID_CIN is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"7c82d85a-a562-4a4c-be1d-eb3644f85357","issue_type":"Missing Column","issue_message":"Required column ENCOUNTER_ID is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"1f2f3f60-99f7-489c-a320-87ec93cd091e","issue_type":"Missing Column","issue_message":"Required column SURVEY is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"426b3fe4-013b-4d2e-a808-412399b989f4","issue_type":"Missing Column","issue_message":"Required column SURVEY_ID is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"263b09ed-942a-4ab5-a387-7b65798bb7e1","issue_type":"Missing Column","issue_message":"Required column RECORDED_TIME is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"c52dbac0-2f05-461a-9f17-7460c1846953","issue_type":"Missing Column","issue_message":"Required column QUESTION is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"028f272c-4fb9-44b2-a253-ed1957e69daf","issue_type":"Missing Column","issue_message":"Required column MEAS_VALUE is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"7aecbcab-353a-4168-8661-21d361ca2c12","issue_type":"Missing Column","issue_message":"Required column QUESTION_CODE is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"1f05683a-c313-4d6c-ba3c-dab029472ba9","issue_type":"Missing Column","issue_message":"Required column QUESTION_CODE_SYSTEM_NAME is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"a736fbae-3a61-44f9-9a4c-ed4720b91762","issue_type":"Missing Column","issue_message":"Required column ANSWER_CODE is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"76da67c9-4093-44cf-b3c4-5aa5dbe243f1","issue_type":"Missing Column","issue_message":"Required column ANSWER_CODE_SYSTEM_NAME is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"bc1fc326-08ba-4d2b-a7c5-3115ffca70a0","issue_type":"Missing Column","issue_message":"Required column SDOH_DOMAIN is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"6acfa2f1-2f37-4bd9-bd69-166a0bf82363","issue_type":"Missing Column","issue_message":"Required column NEED_INDICATED is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"57d1b10a-da42-45ab-96c7-590470dc3f3e","issue_type":"Missing Column","issue_message":"Required column VISIT_PART_2_FLAG is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"8b063687-59c5-4d4e-ab4b-6313e6c3f08f","issue_type":"Missing Column","issue_message":"Required column VISIT_OMH_FLAG is missing in synthetic_fail.","invalid_value":null}, +{"session_entry_id":"8aad9cfa-b1a2-5fb1-a6ab-613a79a7e839","ingest_session_issue_id":"e2c6ea89-c5e0-4d20-96d1-a2f5cb64efa2","issue_type":"Missing Column","issue_message":"Required column VISIT_OPWDD_FLAG is missing in synthetic_fail.","invalid_value":null}] ``` @@ -301,24 +301,138 @@ INSERT INTO ingest_session_issue (ingest_session_issue_id, session_id, session_e ## emitResources ```sql -INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('8f460419-7b80-516d-8919-84520950f612', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'NONE', 'ENTER(prepareInit)', NULL, 'rsEE.beforeCell', (make_timestamp(2024, 1, 3, 10, 16, 50.55)), NULL); -INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('7bab389e-54af-5a13-a39f-079abdc73a48', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(prepareInit)', 'ENTER(init)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 10, 16, 50.55)), NULL); -INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('168a34c7-d043-5ec4-a84a-c961f1a301ef', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(init)', 'ENTER(ingest)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 10, 16, 50.55)), NULL); -INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('7ef8bdeb-fd56-5eb9-a09b-ef15ce18dc49', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(ingest)', 'ENTER(ensureContent)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 10, 16, 50.55)), NULL); -INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('591191c7-f693-5957-8734-ac87151ca981', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(ensureContent)', 'ENTER(emitResources)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 10, 16, 50.55)), NULL); + INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('8f460419-7b80-516d-8919-84520950f612', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'NONE', 'ENTER(prepareInit)', NULL, 'rsEE.beforeCell', (make_timestamp(2024, 1, 3, 19, 51, 54.220)), NULL); + INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('7bab389e-54af-5a13-a39f-079abdc73a48', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(prepareInit)', 'ENTER(init)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 19, 51, 54.220)), NULL); + INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('168a34c7-d043-5ec4-a84a-c961f1a301ef', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(init)', 'ENTER(ingest)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 19, 51, 54.220)), NULL); + INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('7ef8bdeb-fd56-5eb9-a09b-ef15ce18dc49', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(ingest)', 'ENTER(ensureContent)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 19, 51, 54.220)), NULL); + INSERT INTO "ingest_session_state" ("ingest_session_state_id", "session_id", "session_entry_id", "from_state", "to_state", "transition_result", "transition_reason", "transitioned_at", "elaboration") VALUES ('591191c7-f693-5957-8734-ac87151ca981', '05e8feaa-0bed-5909-a817-39812494b361', NULL, 'EXIT(ensureContent)', 'ENTER(emitResources)', NULL, 'rsEE.afterCell', (make_timestamp(2024, 1, 3, 19, 51, 54.221)), NULL); -ATTACH 'support/assurance/ahc-hrsn-elt/screening/results-test-e2e/resource.sqlite.db' AS resource_db (TYPE SQLITE); + -- emit all the SQLPage content + CREATE TABLE IF NOT EXISTS "sqlpage_files" ( + "path" TEXT PRIMARY KEY NOT NULL, + "contents" TEXT NOT NULL, + "last_modified" DATE +); + +INSERT INTO "sqlpage_files" ("path", "contents", "last_modified") VALUES ('index.sql', 'SELECT + ''shell'' as component, + ''book'' as icon, + ''QCS Ingestion Center'' as title, + ''/'' as link, + ''issues'' as menu_item, + ''schema'' as menu_item; +SELECT ''list'' as component; +SELECT ''Ingestion Issues'' as title, ''issues.sql'' as link; +SELECT ''Ingestion State Schema'' as title, ''schema.sql'' as link;', (CURRENT_TIMESTAMP)) ON CONFLICT(path) DO UPDATE SET contents = EXCLUDED.contents /* TODO: does not work in DuckDB , last_modified = (CURRENT_TIMESTAMP) */; + +INSERT INTO "sqlpage_files" ("path", "contents", "last_modified") VALUES ('issues.sql', 'SELECT + ''shell'' as component, + ''book'' as icon, + ''QCS Ingestion Center'' as title, + ''/'' as link, + ''issues'' as menu_item, + ''schema'' as menu_item; +SELECT ''table'' as component; +SELECT issue_type, issue_message, invalid_value, remediation + FROM "ingest_session_issue"; + ', (CURRENT_TIMESTAMP)) ON CONFLICT(path) DO UPDATE SET contents = EXCLUDED.contents /* TODO: does not work in DuckDB , last_modified = (CURRENT_TIMESTAMP) */; + +INSERT INTO "sqlpage_files" ("path", "contents", "last_modified") VALUES ('schema.sql', 'SELECT + ''shell'' as component, + ''book'' as icon, + ''QCS Ingestion Center'' as title, + ''/'' as link, + ''issues'' as menu_item, + ''schema'' as menu_item; +-- TODO: https://github.com/lovasoa/SQLpage/discussions/109#discussioncomment-7359513 +-- see the above for how to fix for SQLPage but figure out to use the same SQL +-- in and out of SQLPage (maybe do what Ophir said in discussion and create +-- custom output for SQLPage using components?) +WITH TableInfo AS ( + SELECT + m.tbl_name AS table_name, + CASE WHEN c.pk THEN ''*'' ELSE '''' END AS is_primary_key, + c.name AS column_name, + c."type" AS column_type, + CASE WHEN c."notnull" THEN ''*'' ELSE '''' END AS not_null, + COALESCE(c.dflt_value, '''') AS default_value, + COALESCE((SELECT pfkl."table" || ''.'' || pfkl."to" FROM pragma_foreign_key_list(m.tbl_name) AS pfkl WHERE pfkl."from" = c.name), '''') as fk_refs, + ROW_NUMBER() OVER (PARTITION BY m.tbl_name ORDER BY c.cid) AS row_num + FROM sqlite_master m JOIN pragma_table_info(m.tbl_name) c ON 1=1 + WHERE m.type = ''table'' + ORDER BY table_name, row_num +), +Views AS ( + SELECT ''## Views '' AS markdown_output + UNION ALL + SELECT ''| View | Column | Type |'' AS markdown_output + UNION ALL + SELECT ''| ---- | ------ |----- |'' AS markdown_output + UNION ALL + SELECT ''| '' || tbl_name || '' | '' || c.name || '' | '' || c."type" || '' | '' + FROM + sqlite_master m, + pragma_table_info(m.tbl_name) c + WHERE + m.type = ''view'' +), +Indexes AS ( + SELECT ''## Indexes'' AS markdown_output + UNION ALL + SELECT ''| Table | Index | Columns |'' AS markdown_output + UNION ALL + SELECT ''| ----- | ----- | ------- |'' AS markdown_output + UNION ALL + SELECT ''| '' || m.name || '' | '' || il.name || '' | '' || group_concat(ii.name, '', '') || '' |'' AS markdown_output + FROM sqlite_master as m, + pragma_index_list(m.name) AS il, + pragma_index_info(il.name) AS ii + WHERE + m.type = ''table'' + GROUP BY + m.name, + il.name +) +SELECT + ''text'' as component, + ''Information Schema'' as title, + group_concat(markdown_output, '' +'') AS contents_md +FROM + ( + SELECT ''## Tables'' AS markdown_output + UNION ALL + SELECT + CASE WHEN ti.row_num = 1 THEN '' +### `'' || ti.table_name || ''` Table +| PK | Column | Type | Req? | Default | References | +| -- | ------ | ---- | ---- | ------- | ---------- | +'' || + ''| '' || is_primary_key || '' | '' || ti.column_name || '' | '' || ti.column_type || '' | '' || ti.not_null || '' | '' || ti.default_value || '' | '' || ti.fk_refs || '' |'' + ELSE + ''| '' || is_primary_key || '' | '' || ti.column_name || '' | '' || ti.column_type || '' | '' || ti.not_null || '' | '' || ti.default_value || '' | '' || ti.fk_refs || '' |'' + END + FROM TableInfo ti + UNION ALL SELECT '''' + UNION ALL SELECT * FROM Views + UNION ALL SELECT '''' + UNION ALL SELECT * FROM Indexes +); + ', (CURRENT_TIMESTAMP)) ON CONFLICT(path) DO UPDATE SET contents = EXCLUDED.contents /* TODO: does not work in DuckDB , last_modified = (CURRENT_TIMESTAMP) */; + + ATTACH 'support/assurance/ahc-hrsn-elt/screening/results-test-e2e/resource.sqlite.db' AS resource_db (TYPE SQLITE); -CREATE TABLE resource_db.device AS SELECT * FROM device; -CREATE TABLE resource_db.ingest_session AS SELECT * FROM ingest_session; -CREATE TABLE resource_db.ingest_session_entry AS SELECT * FROM ingest_session_entry; -CREATE TABLE resource_db.ingest_session_state AS SELECT * FROM ingest_session_state; -CREATE TABLE resource_db.ingest_session_issue AS SELECT * FROM ingest_session_issue; + CREATE TABLE resource_db.device AS SELECT * FROM device; + CREATE TABLE resource_db.ingest_session AS SELECT * FROM ingest_session; + CREATE TABLE resource_db.ingest_session_entry AS SELECT * FROM ingest_session_entry; + CREATE TABLE resource_db.ingest_session_state AS SELECT * FROM ingest_session_state; + CREATE TABLE resource_db.ingest_session_issue AS SELECT * FROM ingest_session_issue; + CREATE TABLE resource_db.sqlpage_files AS SELECT * FROM sqlpage_files; --- {contentResult.map(cr => `CREATE TABLE resource_db.${cr.iaSqlSupplier.tableName} AS SELECT * FROM ${cr.tableName}`).join(";")}; + -- {contentResult.map(cr => `CREATE TABLE resource_db.${cr.iaSqlSupplier.tableName} AS SELECT * FROM ${cr.tableName}`).join(";")}; -DETACH DATABASE resource_db; --- no after-finalize SQL provided + DETACH DATABASE resource_db; + -- no after-finalize SQL provided ``` diff --git a/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.xlsx b/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/diagnostics.xlsx index 1f96c73da8f42392bb9a30f95928680eca98ccb0..dcb52b3fa899126463b0753954ce318927e5e9ba 100644 GIT binary patch delta 3067 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 j`)|nquPv}yD9I<6+lDkUsDJ6MMNuK*3(|b4) diff --git a/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/resource.sqlite.db b/support/assurance/ahc-hrsn-elt/screening/results-test-e2e/resource.sqlite.db index 191722a2a20a40e614e48ec9f9815c369ab29292..027c9905d659a2ae533fd944c70cbfc9e7102436 100644 GIT binary patch literal 49152 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 (await $.commandExists("sqlpage.bin") + ? { ok: `SQLPage available` } // TODO: sqlpage.bin does not have a --version + : { + suggest: + "SQLPage not found in PATH, install it from https://github.com/lovasoa/SQLpage/releases", + }), + }); }, }; }); diff --git a/support/docs/lib/ahc-hrsn-elt/screening/all_symbols.html b/support/docs/lib/ahc-hrsn-elt/screening/all_symbols.html index 5442908d..7b6b6382 100644 --- a/support/docs/lib/ahc-hrsn-elt/screening/all_symbols.html +++ b/support/docs/lib/ahc-hrsn-elt/screening/all_symbols.html @@ -59,6 +59,22 @@

Classe + + + + + + + + + + diff --git a/support/docs/lib/ahc-hrsn-elt/screening/index.html b/support/docs/lib/ahc-hrsn-elt/screening/index.html index 4a6f9796..45b3f3ed 100644 --- a/support/docs/lib/ahc-hrsn-elt/screening/index.html +++ b/support/docs/lib/ahc-hrsn-elt/screening/index.html @@ -48,6 +48,16 @@

Class

+
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • diff --git a/support/docs/lib/ahc-hrsn-elt/screening/search_index.js b/support/docs/lib/ahc-hrsn-elt/screening/search_index.js index 7715a79f..a31f906b 100644 --- a/support/docs/lib/ahc-hrsn-elt/screening/search_index.js +++ b/support/docs/lib/ahc-hrsn-elt/screening/search_index.js @@ -1,3 +1,3 @@ (function () { - window.DENO_DOC_SEARCH_INDEX = {"nodes":[{"kind":"class","name":"ScreeningCsvFileIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/csv.ts","line":4,"col":0},"declarationKind":"export"},{"kind":"function","name":"ingestCsvFilesSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/csv.ts","line":62,"col":0},"declarationKind":"export"},{"kind":"variable","name":"excelWorkbookSheetNames","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":7,"col":13},"declarationKind":"export"},{"kind":"typeAlias","name":"ExcelWorkbookSheetName","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":12,"col":0},"declarationKind":"export"},{"kind":"class","name":"ExcelSheetTodoIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":14,"col":0},"declarationKind":"export"},{"kind":"class","name":"ScreeningExcelSheetIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":45,"col":0},"declarationKind":"export"},{"kind":"function","name":"ingestExcelSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":109,"col":0},"declarationKind":"export"},{"kind":"class","name":"ScreeningAssuranceRules","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/governance.ts","line":3,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"PotentialIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":21,"col":0},"declarationKind":"export"},{"kind":"function","name":"fsPatternIngestSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":27,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"IngestStep","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":59,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"IngestStepContext","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":63,"col":0},"declarationKind":"export"},{"kind":"variable","name":"ieDescr","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":67,"col":13},"declarationKind":"export"},{"kind":"interface","name":"IngestEngineArgs","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":72,"col":0},"declarationKind":"export"},{"kind":"class","name":"IngestEngine","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":97,"col":0},"declarationKind":"export"}]}; + window.DENO_DOC_SEARCH_INDEX = {"nodes":[{"kind":"class","name":"ScreeningCsvFileIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/csv.ts","line":4,"col":0},"declarationKind":"export"},{"kind":"function","name":"ingestCsvFilesSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/csv.ts","line":62,"col":0},"declarationKind":"export"},{"kind":"variable","name":"excelWorkbookSheetNames","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":7,"col":13},"declarationKind":"export"},{"kind":"typeAlias","name":"ExcelWorkbookSheetName","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":12,"col":0},"declarationKind":"export"},{"kind":"class","name":"ExcelSheetTodoIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":14,"col":0},"declarationKind":"export"},{"kind":"class","name":"ScreeningExcelSheetIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":45,"col":0},"declarationKind":"export"},{"kind":"function","name":"ingestExcelSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/excel.ts","line":109,"col":0},"declarationKind":"export"},{"kind":"class","name":"ScreeningAssuranceRules","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/governance.ts","line":3,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"PotentialIngestSource","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":22,"col":0},"declarationKind":"export"},{"kind":"function","name":"fsPatternIngestSourcesSupplier","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":28,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"IngestStep","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":60,"col":0},"declarationKind":"export"},{"kind":"typeAlias","name":"IngestStepContext","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":64,"col":0},"declarationKind":"export"},{"kind":"variable","name":"ieDescr","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":68,"col":13},"declarationKind":"export"},{"kind":"interface","name":"IngestEngineArgs","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":73,"col":0},"declarationKind":"export"},{"kind":"class","name":"IngestEngine","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/ingest.ts","line":98,"col":0},"declarationKind":"export"},{"kind":"class","name":"SQLPageNotebook","file":"","nsQualifiers":"","location":{"filename":"/home/snshah/workspaces/github.com/qe-collaborative-services/1115-hub/src/ahc-hrsn-elt/screening/sqlpage.ts","line":17,"col":0},"declarationKind":"export"}]}; })() \ No newline at end of file diff --git a/support/docs/lib/ahc-hrsn-elt/screening/~/ExcelSheetTodoIngestSource.html b/support/docs/lib/ahc-hrsn-elt/screening/~/ExcelSheetTodoIngestSource.html index 5e5273b6..2a104242 100644 --- a/support/docs/lib/ahc-hrsn-elt/screening/~/ExcelSheetTodoIngestSource.html +++ b/support/docs/lib/ahc-hrsn-elt/screening/~/ExcelSheetTodoIngestSource.html @@ -39,6 +39,16 @@

    Class

  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • @@ -383,6 +393,10 @@

    Variable

    (meaning they were successfully ingested), prepare all cleansing, validation, transformation and other SQL and then execute entire SQL as a single DuckDB instance call.

    +

    The content SQL is separated from structural SQL to avoid syntax errors +when a table or table column does not exist (which can happen if the format +or structure of an ingested CSV, Excel, Parquet, or other source does not +match our expectations).

    @@ -408,6 +422,12 @@

    Variable

    DuckDB call. Then, for each successful execution (any ingestions that do not create issues in the issue table) prepare the list of subsequent steps for further cleansing, validation, transformations, etc.

    +

    The reason why we separate initial ingestion and structural validation from +content validation, cleansing, and transformations is because content +SQL relies on table names and table column names in CTEs and other SQL +which must exist otherwise they cause syntax errors. Once we validate the +structure and columns of ingested data, then the remainder of the SQL for +cleansing, validation, or transformations will not cause syntax errors.

  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • diff --git a/support/docs/lib/ahc-hrsn-elt/screening/~/SQLPageNotebook.html b/support/docs/lib/ahc-hrsn-elt/screening/~/SQLPageNotebook.html new file mode 100644 index 00000000..619ca8ce --- /dev/null +++ b/support/docs/lib/ahc-hrsn-elt/screening/~/SQLPageNotebook.html @@ -0,0 +1,425 @@ + + + + SQLPageNotebook - AHC HRSN Screening documentation + + + + + + + + + + + + +
    + ← Back to index + + +
    + +
    +
    +
    +
    + class SQLPageNotebook +
    +
    + + + + + + + +
    +
    +
    +
    +
    + Constructors +
    +
    + + +
    🔗
    +
    + +
    + + + SQLPageNotebook() + + +
    + +
    + +
    +
    + Properties +
    +
    + + +
    🔗
    +
    + +
    + + + comps + + +
    + +
    +
    + + +
    🔗
    +
    + +
    + + + tc: ReturnType<sp.typicalContent> + + +
    + +
    + +
    +
    + Methods +
    +
    + + +
    🔗
    +
    + +
    + + + index.sql() + + +
    + +
    +
    + + +
    🔗
    +
    + +
    + + + issues.sql() + + +
    + +
    +
    + + +
    🔗
    +
    + +
    + + + schema.sql() + + +
    + +
    +
    + + +
    🔗
    +
    + +
    + + + shell() + + +
    + +
    + +
    +
    + Static Methods +
    +
    + + +
    🔗
    +
    + +
    + + + create(govn: ddbi.IngestGovernance) + + +
    + +
    + +
    +
    +
    +
    + +
    + + +
    +
    + + + + + + diff --git a/support/docs/lib/ahc-hrsn-elt/screening/~/ScreeningAssuranceRules.html b/support/docs/lib/ahc-hrsn-elt/screening/~/ScreeningAssuranceRules.html index c7fe4333..cf28172b 100644 --- a/support/docs/lib/ahc-hrsn-elt/screening/~/ScreeningAssuranceRules.html +++ b/support/docs/lib/ahc-hrsn-elt/screening/~/ScreeningAssuranceRules.html @@ -39,6 +39,16 @@

    Class

  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +
  • +
  • + +
    + c +
    + + SQLPageNotebook +
    +
  • +