@cosyte/synth 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/README.md +21 -12
- package/dist/astm/index.cjs +18 -6
- package/dist/astm/index.cjs.map +1 -1
- package/dist/astm/index.d.cts +2 -2
- package/dist/astm/index.d.ts +2 -2
- package/dist/astm/index.mjs +18 -6
- package/dist/astm/index.mjs.map +1 -1
- package/dist/ccda/index.cjs +23 -7
- package/dist/ccda/index.cjs.map +1 -1
- package/dist/ccda/index.d.cts +2 -2
- package/dist/ccda/index.d.ts +2 -2
- package/dist/ccda/index.mjs +23 -7
- package/dist/ccda/index.mjs.map +1 -1
- package/dist/deid/index.cjs +26 -8
- package/dist/deid/index.cjs.map +1 -1
- package/dist/deid/index.d.cts +2 -2
- package/dist/deid/index.d.ts +2 -2
- package/dist/deid/index.mjs +26 -8
- package/dist/deid/index.mjs.map +1 -1
- package/dist/fhir/index.cjs +174 -7
- package/dist/fhir/index.cjs.map +1 -1
- package/dist/fhir/index.d.cts +163 -2
- package/dist/fhir/index.d.ts +163 -2
- package/dist/fhir/index.mjs +171 -9
- package/dist/fhir/index.mjs.map +1 -1
- package/dist/hl7/index.cjs +18 -6
- package/dist/hl7/index.cjs.map +1 -1
- package/dist/hl7/index.d.cts +2 -2
- package/dist/hl7/index.d.ts +2 -2
- package/dist/hl7/index.mjs +18 -6
- package/dist/hl7/index.mjs.map +1 -1
- package/dist/index.cjs +37 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +172 -38
- package/dist/index.d.ts +172 -38
- package/dist/index.mjs +36 -7
- package/dist/index.mjs.map +1 -1
- package/dist/ncpdp/index.cjs +18 -6
- package/dist/ncpdp/index.cjs.map +1 -1
- package/dist/ncpdp/index.d.cts +1 -1
- package/dist/ncpdp/index.d.ts +1 -1
- package/dist/ncpdp/index.mjs +18 -6
- package/dist/ncpdp/index.mjs.map +1 -1
- package/dist/{providers-B9uVinAe.d.cts → providers-BQtPk3PN.d.cts} +18 -4
- package/dist/{providers-B9uVinAe.d.ts → providers-BQtPk3PN.d.ts} +18 -4
- package/dist/{quirk-HZdznAkM.d.ts → quirk-Bzx9g8KG.d.ts} +1 -1
- package/dist/{quirk-IaHp4z7N.d.cts → quirk-C_lZrspq.d.cts} +1 -1
- package/dist/x12/index.cjs +18 -6
- package/dist/x12/index.cjs.map +1 -1
- package/dist/x12/index.d.cts +1 -1
- package/dist/x12/index.d.ts +1 -1
- package/dist/x12/index.mjs +18 -6
- package/dist/x12/index.mjs.map +1 -1
- package/package.json +54 -30
package/dist/deid/index.cjs
CHANGED
|
@@ -59,8 +59,7 @@ var SYNTH_FATAL_CODES = {
|
|
|
59
59
|
* see `resolveKind`: a selector union is erased at run time, and a selector that falls through
|
|
60
60
|
* either mislabels the fixture or hands the value to a peer builder that quotes it back.
|
|
61
61
|
*/
|
|
62
|
-
SYNTH_UNSUPPORTED_KIND: "SYNTH_UNSUPPORTED_KIND"
|
|
63
|
-
};
|
|
62
|
+
SYNTH_UNSUPPORTED_KIND: "SYNTH_UNSUPPORTED_KIND"};
|
|
64
63
|
var SYNTH_FATAL_MESSAGES = Object.freeze({
|
|
65
64
|
SYNTH_UNSUPPORTED_FORMAT: "The requested format is not generable by this build. A generator has no byte fallback: it builds through a parser's own serializer or it refuses.",
|
|
66
65
|
SYNTH_UNSUPPORTED_QUIRK: "The requested vendor quirk is not in the target format's quirk registry. Compare the request against that format's exported registry (HL7_QUIRKS, CCDA_QUIRKS, ASTM_QUIRKS).",
|
|
@@ -71,7 +70,8 @@ var SYNTH_FATAL_MESSAGES = Object.freeze({
|
|
|
71
70
|
SYNTH_INVALID_RANGE: "An integer range was requested with its maximum below its minimum.",
|
|
72
71
|
SYNTH_EMPTY_POOL: "A value was drawn from an empty pool.",
|
|
73
72
|
SYNTH_INVALID_PROFILE: "defineSynthProfile requires a non-empty string name.",
|
|
74
|
-
SYNTH_UNSUPPORTED_KIND: "The requested kind, document type, corpus mix entry, variant or profile is not one this generator supports. The supported set is the exported union for that option."
|
|
73
|
+
SYNTH_UNSUPPORTED_KIND: "The requested kind, document type, corpus mix entry, variant or profile is not one this generator supports. The supported set is the exported union for that option.",
|
|
74
|
+
SYNTH_PROFILE_NOT_GENERATED: "The requested profile is published by the adopted implementation guide, and this build does not generate it. The coverage surface reports, per adopted profile, whether it is generated."
|
|
75
75
|
});
|
|
76
76
|
var SynthError = class extends Error {
|
|
77
77
|
/** The stable fatal code. */
|
|
@@ -136,7 +136,7 @@ function componentsField(components) {
|
|
|
136
136
|
var SYNTHETIC_ASSIGNING_AUTHORITY = Object.freeze({
|
|
137
137
|
/** The human-readable assigning-authority namespace id (HL7 HD.1). */
|
|
138
138
|
namespaceId: "COSYTE-SYNTH",
|
|
139
|
-
/** The universal id, an OID under
|
|
139
|
+
/** The universal id, an OID this package chose under the root `2.16.840.1.113883.19` (HD.2). */
|
|
140
140
|
universalId: "2.16.840.1.113883.19.999",
|
|
141
141
|
/** The universal id type (HD.3). */
|
|
142
142
|
universalIdType: "ISO"
|
|
@@ -155,6 +155,18 @@ var TEST_NET_V4_PREFIXES = Object.freeze([
|
|
|
155
155
|
// TEST-NET-3
|
|
156
156
|
]);
|
|
157
157
|
var DOC_V6_PREFIX = "2001:db8";
|
|
158
|
+
var ITIN_GROUP_RANGES = Object.freeze([
|
|
159
|
+
Object.freeze({ min: 50, max: 65 }),
|
|
160
|
+
Object.freeze({ min: 70, max: 88 }),
|
|
161
|
+
Object.freeze({ min: 90, max: 92 }),
|
|
162
|
+
Object.freeze({ min: 94, max: 99 })
|
|
163
|
+
]);
|
|
164
|
+
var ITIN_EXCLUDED_GROUPS = Object.freeze([89, 93]);
|
|
165
|
+
var SSN_SYNTHETIC_GROUPS = Object.freeze(
|
|
166
|
+
Array.from({ length: 100 }, (_unused, group) => group).filter(
|
|
167
|
+
(group) => !ITIN_GROUP_RANGES.some((range) => group >= range.min && group <= range.max) && !ITIN_EXCLUDED_GROUPS.includes(group)
|
|
168
|
+
).map((group) => String(group).padStart(2, "0"))
|
|
169
|
+
);
|
|
158
170
|
var NPI_LUHN_PREFIX = "80840";
|
|
159
171
|
function luhnMod10(digits) {
|
|
160
172
|
let sum = 0;
|
|
@@ -263,10 +275,10 @@ var SYNTHETIC_CITY_NAMES = Object.freeze([
|
|
|
263
275
|
// src/safe/providers.ts
|
|
264
276
|
function ssn(rng, block = "never-issued") {
|
|
265
277
|
if (block === "advertising") {
|
|
266
|
-
return `987-
|
|
278
|
+
return `987-00-432${String(rng.int(0, 9))}`;
|
|
267
279
|
}
|
|
268
280
|
const area = rng.int(900, 999);
|
|
269
|
-
const group = rng.
|
|
281
|
+
const group = rng.pick(SSN_SYNTHETIC_GROUPS);
|
|
270
282
|
const serial = rng.digits(4);
|
|
271
283
|
return `${String(area)}-${group}-${serial}`;
|
|
272
284
|
}
|
|
@@ -814,7 +826,9 @@ var US_CORE_PROFILE = Object.freeze({
|
|
|
814
826
|
/** US Core AllergyIntolerance. */
|
|
815
827
|
ALLERGY_INTOLERANCE: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
|
|
816
828
|
/** US Core Procedure. */
|
|
817
|
-
PROCEDURE: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"
|
|
829
|
+
PROCEDURE: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure",
|
|
830
|
+
/** US Core Provenance. */
|
|
831
|
+
PROVENANCE: "http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance"
|
|
818
832
|
});
|
|
819
833
|
var US_CORE_RACE_EXTENSION = "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race";
|
|
820
834
|
var US_CORE_ETHNICITY_EXTENSION = "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity";
|
|
@@ -851,7 +865,11 @@ var SYSTEM = Object.freeze({
|
|
|
851
865
|
/** HL7 Terminology `allergyintolerance-clinical`, `AllergyIntolerance.clinicalStatus`. */
|
|
852
866
|
ALLERGY_CLINICAL: "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
|
|
853
867
|
/** HL7 Terminology `allergyintolerance-verification`, `AllergyIntolerance.verificationStatus`. */
|
|
854
|
-
ALLERGY_VERIFICATION: "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification"
|
|
868
|
+
ALLERGY_VERIFICATION: "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
|
|
869
|
+
/** HL7 Terminology `provenance-participant-type`, `Provenance.agent.type` (`author`). */
|
|
870
|
+
PROVENANCE_PARTICIPANT_TYPE: "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
|
|
871
|
+
/** US Core `us-core-provenance-participant-type`, `Provenance.agent.type` (`transmitter`). */
|
|
872
|
+
US_CORE_PROVENANCE_PARTICIPANT_TYPE: "http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type"
|
|
855
873
|
});
|
|
856
874
|
|
|
857
875
|
// src/fhir/builder.ts
|