@cosyte/terminology 0.1.5 → 0.1.7
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 +44 -0
- package/README.md +3 -0
- package/dist/index.cjs +430 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +56 -38
- package/dist/index.d.ts +56 -38
- package/dist/index.mjs +430 -106
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c688d91: Faster value set membership and translation, and leaner CSV, GEM and UCUM reading. Every answer,
|
|
8
|
+
loaded model, warning and error is unchanged, and no signature changes. One thing is deliberately
|
|
9
|
+
different: within one `loadGems` result, the entries that carry the same five flag digits now share
|
|
10
|
+
one frozen `flags` object rather than each holding its own. Every field reads the same; only
|
|
11
|
+
`entryA.flags === entryB.flags` is now `true` for two such entries. If you told entries apart by
|
|
12
|
+
the identity of their `flags`, compare the entries themselves, or their fields, instead.
|
|
13
|
+
|
|
14
|
+
- `validateCodeInValueSet` builds a loaded release's hierarchy index on the first membership
|
|
15
|
+
question over a filter and reuses it, rather than walking the whole release for every code. A code
|
|
16
|
+
system whose `concepts` you assembled by hand is still indexed afresh on every call, so a change
|
|
17
|
+
you make to it between two calls is read.
|
|
18
|
+
- `translate` finds a loaded ConceptMap's elements through an index of each group by source code,
|
|
19
|
+
built on the first translation through the group, rather than reading every element for each code.
|
|
20
|
+
A map you assembled by hand is still read element by element.
|
|
21
|
+
- `loadCodeSystem` reads a CSV release row by row and builds only the configured columns, so a long
|
|
22
|
+
column you did not configure costs no memory. The strings a loaded model keeps are copied out of
|
|
23
|
+
the release text, so the model does not keep that text alive after the load; the same holds for
|
|
24
|
+
`parseCsv` and `loadGems`.
|
|
25
|
+
- `loadGems` reads each line in place instead of splitting the file into lines and each line into
|
|
26
|
+
fields, and decodes each distinct flag field once per load (the shared `flags` object above).
|
|
27
|
+
- `validateUcum`, `ucumEqual` and `parseUcum` match a unit against the atoms and prefixes that start
|
|
28
|
+
with the same character, from an index of the unit table built once, rather than against the whole
|
|
29
|
+
table.
|
|
30
|
+
|
|
31
|
+
The indexes are kept with the loaded release or map and go when it does. A source coding with no
|
|
32
|
+
`code` is still matched against a loaded map's elements that have none, as before.
|
|
33
|
+
|
|
34
|
+
The package's npm keywords also gain `snomed`, `icd10` and `cpt`, so a search on those terms finds
|
|
35
|
+
it.
|
|
36
|
+
|
|
37
|
+
## 0.1.6
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- 43eea2f: An internal tidy with no change to any result, warning, or diagnostic. The value set diagnostic factories now take the path every caller already gives them, a few expressions became statements so a coverage note can name the one arm no input reaches, and those arms now carry that note.
|
|
42
|
+
- 43eea2f: A CSV source whose `columns.properties` list has a hole now fails with the typed `TERM_CODESYSTEM_MALFORMED` fatal for a missing property column, the same as an explicit `undefined` entry, instead of a `TypeError` from inside the loader.
|
|
43
|
+
- 0cb5b88: Doc comments, which your editor shows on hover and the generated API reference prints, now match the code. `resolveSystem` lists the forms it accepts in the order it tries them, and no longer says it accepts a `v2-0203` mnemonic on its own (it does not; pass the table's OID or URI). `SYSTEM_IDENTITIES` and `resolveSystem` no longer say every accepted mnemonic comes from HL7 Table 0396: aliases such as `LOINC` and `CPT` are accepted too but are not Table 0396 codes. `NdcStatus` says that `loadRxNormGraph` reads no NDC history, so every NDC it resolves is `active`. `RxNormGraph.concepts` says a concept is typed by its first defining atom. The complex-map outcome types and `MAP_CATEGORIES.AMBIGUOUS` no longer say an ambiguous or context-dependent category stops a group on its own: the group's rules decide. Links that printed as a source path, such as `../crosswalk/gems.invertGem`, now link the symbol. No code changes.
|
|
44
|
+
- e16570e: An RRF or fixed-width source whose property list has an entry that is not an object (a hole, `undefined`, or `null`) now fails with the typed `TERM_CODESYSTEM_MALFORMED` fatal, as a CSV source with a hole in its property columns does, instead of a `TypeError` from inside the loader.
|
|
45
|
+
- 43eea2f: `validateCodeInValueSet` no longer admits a code through a `compose` component that selects nothing. A component with no `system`, `concept`, `filter`, or referenced value set (the loader accepts one with an empty `valueSet` list) matched every code, so an include admitted any code and an exclude removed every code, while `expand` gave the same component no members. Membership now agrees with `expand`: such a component matches no code, and a `valueSet` list that yields no reference is an intersection with nothing.
|
|
46
|
+
|
|
3
47
|
## 0.1.5
|
|
4
48
|
|
|
5
49
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -379,6 +379,9 @@ Questions, bug reports, and an answer the engine got wrong go in
|
|
|
379
379
|
system, map, or value set that reproduces it. Use synthetic data only: a code in patient context can
|
|
380
380
|
be PHI. [SUPPORT.md](https://github.com/cosyte/.github/blob/main/SUPPORT.md) says where to ask what.
|
|
381
381
|
|
|
382
|
+
Need a terminology integration built, or hosted and run for you? See our
|
|
383
|
+
[integration services](https://cosyte.com/integration-services).
|
|
384
|
+
|
|
382
385
|
## Security
|
|
383
386
|
|
|
384
387
|
Report a vulnerability privately, never in a public issue, and with no real patient data in it:
|