emuhealth 0.2.0 → 0.4.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/README.md +2 -0
- package/THIRD_PARTY_NOTICES.md +28 -0
- package/dist/api.d.ts +1 -1
- package/dist/api.js +28 -2
- package/dist/api.js.map +1 -1
- package/dist/{chunk-OFHRZRRG.js → chunk-WKE2IMP5.js} +29 -3
- package/dist/chunk-WKE2IMP5.js.map +1 -0
- package/dist/dist-NSZJMYCW.js +3750 -0
- package/dist/dist-NSZJMYCW.js.map +1 -0
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/project-worker.js +1 -1
- package/package.json +7 -6
- package/dist/chunk-OFHRZRRG.js.map +0 -1
package/README.md
CHANGED
|
@@ -37,6 +37,8 @@ All services listen on IPv4 loopback (`127.0.0.1`) by default. No config file ne
|
|
|
37
37
|
|
|
38
38
|
Health and life science services use a fixed range starting at `http://localhost:4100`. Each health service keeps its port no matter which other services run or how many upstream services exist.
|
|
39
39
|
|
|
40
|
+
- **FHIR R4** on `http://localhost:4100` (create, read, update, JSON Patch, delete, versioning, `_history`, search, batch and transaction Bundles, and a CapabilityStatement at `/metadata`, `Patient/$everything`; starts with 5 generated synthetic patients; SMART App Launch with patient and practitioner pickers, an EHR launch simulator, PKCE, and scope and patient enforcement for presented tokens)
|
|
41
|
+
|
|
40
42
|
Stripe webhooks configured with a secret include a `Stripe-Signature` header signed over the timestamp and raw request body.
|
|
41
43
|
|
|
42
44
|
Slack event callbacks use `X-Slack-Request-Timestamp` and `X-Slack-Signature` when `slack.signing_secret` is configured. The signature is an HMAC-SHA256 over `v0:<timestamp>:<raw-body>`; configure the receiver with the same secret and verify against the unparsed request body. Existing event subscriptions remain unsigned when the secret is absent or empty.
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -37,3 +37,31 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
37
37
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
38
38
|
SOFTWARE.
|
|
39
39
|
```
|
|
40
|
+
|
|
41
|
+
## Clinical terminology
|
|
42
|
+
|
|
43
|
+
The emuhealth synthetic data generator in
|
|
44
|
+
`packages/@emuhealth/fhir-core/src/generator.ts` uses a small number of codes from
|
|
45
|
+
the following code systems to make generated records realistic. No full code
|
|
46
|
+
system is redistributed.
|
|
47
|
+
|
|
48
|
+
### LOINC
|
|
49
|
+
|
|
50
|
+
This material contains content from LOINC (https://loinc.org). LOINC is
|
|
51
|
+
copyright Regenstrief Institute, Inc. and the Logical Observation Identifiers
|
|
52
|
+
Names and Codes (LOINC) Committee and is available at no cost under the license
|
|
53
|
+
at https://loinc.org/license. LOINC® is a registered United States trademark of
|
|
54
|
+
Regenstrief Institute, Inc.
|
|
55
|
+
|
|
56
|
+
### RxNorm
|
|
57
|
+
|
|
58
|
+
This product uses publicly available data from the U.S. National Library of
|
|
59
|
+
Medicine (NLM), National Institutes of Health, Department of Health and Human
|
|
60
|
+
Services; NLM is not responsible for the product and does not endorse or
|
|
61
|
+
recommend this or any other product.
|
|
62
|
+
|
|
63
|
+
### ICD-10-CM and CVX
|
|
64
|
+
|
|
65
|
+
ICD-10-CM codes are published by the National Center for Health Statistics and
|
|
66
|
+
CVX codes by the Centers for Disease Control and Prevention. Both are U.S.
|
|
67
|
+
government works in the public domain.
|
package/dist/api.d.ts
CHANGED
|
@@ -249,7 +249,7 @@ declare function defineConfig<Definitions extends Record<string, EmulatorDefinit
|
|
|
249
249
|
tokens?: EmulateConfig["tokens"];
|
|
250
250
|
}): typeof config;
|
|
251
251
|
|
|
252
|
-
declare const HEALTH_SERVICE_NAME_LIST: readonly [];
|
|
252
|
+
declare const HEALTH_SERVICE_NAME_LIST: readonly ["fhir"];
|
|
253
253
|
type HealthServiceName = (typeof HEALTH_SERVICE_NAME_LIST)[number];
|
|
254
254
|
|
|
255
255
|
declare const SERVICE_NAME_LIST: readonly ["vercel", "github", "google", "slack", "apple", "microsoft", "okta", "aws", "resend", "stripe", "mongoatlas", "clerk", "linear", "twilio"];
|
package/dist/api.js
CHANGED
|
@@ -1940,9 +1940,35 @@ function defineConfig(config) {
|
|
|
1940
1940
|
}
|
|
1941
1941
|
|
|
1942
1942
|
// src/registry-health.ts
|
|
1943
|
-
var HEALTH_SERVICE_NAME_LIST = [];
|
|
1943
|
+
var HEALTH_SERVICE_NAME_LIST = ["fhir"];
|
|
1944
1944
|
var HEALTH_SERVICE_NAMES = HEALTH_SERVICE_NAME_LIST;
|
|
1945
|
-
var HEALTH_SERVICE_REGISTRY = {
|
|
1945
|
+
var HEALTH_SERVICE_REGISTRY = {
|
|
1946
|
+
fhir: {
|
|
1947
|
+
label: "FHIR R4 server emulator",
|
|
1948
|
+
endpoints: "create, read, vread, update (including create on update), JSON Patch, logical delete, _history, search with includes and chaining, batch and transaction Bundles, CapabilityStatement at /metadata, Patient/$everything, SMART App Launch, ETag and If-Match, generated synthetic patients",
|
|
1949
|
+
async load() {
|
|
1950
|
+
const mod = await import("./dist-NSZJMYCW.js");
|
|
1951
|
+
return { plugin: mod.fhirPlugin, seedFromConfig: mod.seedFromConfig };
|
|
1952
|
+
},
|
|
1953
|
+
defaultFallback() {
|
|
1954
|
+
return { login: "fhir-user", id: 1, scopes: [] };
|
|
1955
|
+
},
|
|
1956
|
+
initConfig: {
|
|
1957
|
+
fhir: {
|
|
1958
|
+
generate: { patients: 5, seed: 1 },
|
|
1959
|
+
resources: [
|
|
1960
|
+
{
|
|
1961
|
+
resourceType: "Patient",
|
|
1962
|
+
id: "synthetic-patient-1",
|
|
1963
|
+
name: [{ family: "Example", given: ["Jamie"] }],
|
|
1964
|
+
gender: "female",
|
|
1965
|
+
birthDate: "1980-01-01"
|
|
1966
|
+
}
|
|
1967
|
+
]
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
};
|
|
1946
1972
|
var HEALTH_PORT_OFFSET = 100;
|
|
1947
1973
|
function defaultServicePort(service, basePort, index, healthNames = HEALTH_SERVICE_NAMES) {
|
|
1948
1974
|
const healthIndex = healthNames.indexOf(service);
|