@openhi/types 0.0.45 → 0.0.46
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.
|
@@ -22,5 +22,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
* platform (`hl7.openhi.org`) namespacing via a future data migration.
|
|
23
23
|
*/
|
|
24
24
|
__exportStar(require("./appointment-series"), exports);
|
|
25
|
+
__exportStar(require("./supply-request-deliver-for"), exports);
|
|
25
26
|
__exportStar(require("./supply-request-encounter"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXh0ZW5zaW9ucy9vbi1zaXRlLW1lZGljYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7R0FNRztBQUNILHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsNkRBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXN0b21lci1uYW1lc3BhY2VkIChgb24tc2l0ZS1tZWRpY2FsLmFwcGApIGV4dGVuc2lvbiBhbmQgaWRlbnRpZmllclxuICogY29udHJhY3RzLiBIYW5kLWF1dGhvcmVkLCBsaWtlIGAuLi9vcGVuaGlgLiBTZWUgdGhlIHByb3ZlbmFuY2Ugbm90ZSBpblxuICogZWFjaCBtb2R1bGUg4oCUIHRoZXNlIGFyZSBmcm96ZW4gd2lyZSBjb250cmFjdHMgc2hhcmVkIGJ5IHRoZSBPcGVuSElcbiAqIGJhY2tlbmQgYW5kIHRoZSBvbi1zaXRlLW1lZGljYWwgZnJvbnRlbmQsIGNhbmRpZGF0ZXMgZm9yIHByb21vdGlvbiB0b1xuICogcGxhdGZvcm0gKGBobDcub3BlbmhpLm9yZ2ApIG5hbWVzcGFjaW5nIHZpYSBhIGZ1dHVyZSBkYXRhIG1pZ3JhdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vYXBwb2ludG1lbnQtc2VyaWVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdXBwbHktcmVxdWVzdC1kZWxpdmVyLWZvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3VwcGx5LXJlcXVlc3QtZW5jb3VudGVyXCI7XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R5 pre-add: `SupplyRequest.deliverFor` — the patient a supply order is *for*.
|
|
3
|
+
*
|
|
4
|
+
* **The gap this fills.** FHIR R4 `SupplyRequest` has no patient-identification
|
|
5
|
+
* element (no `subject`, no `patient`). Its only delivery field is `deliverTo`
|
|
6
|
+
* (`Reference(Patient|Location|Organization)`) — "where the supplies physically
|
|
7
|
+
* ship". For home-care `deliverTo` happens to be the Patient, but for facility
|
|
8
|
+
* orders it is a `Location`, so `deliverTo` cannot answer "whose order is this".
|
|
9
|
+
*
|
|
10
|
+
* **The fix.** FHIR R5 added `SupplyRequest.deliverFor` (`Reference(Patient)` —
|
|
11
|
+
* "who the supplies are for") to close exactly this gap. Because we own our
|
|
12
|
+
* FHIR model and DB, we **pre-adopt that R5 field now** rather than inventing a
|
|
13
|
+
* bespoke extension. This module declares `deliverFor` on the (otherwise
|
|
14
|
+
* R4-generated) `SupplyRequest` type via module augmentation so consumers can
|
|
15
|
+
* read/write it with full type safety; at runtime it round-trips through the
|
|
16
|
+
* `passthrough` schema untouched. The OpenHI backend registers
|
|
17
|
+
* `SupplyRequest ?patient=` against `$.deliverFor` (not `$.deliverTo`).
|
|
18
|
+
*
|
|
19
|
+
* When we eventually upgrade to/support R5, `deliverFor` becomes native and
|
|
20
|
+
* this augmentation is deleted — a rename of nothing, since the field name and
|
|
21
|
+
* shape already match the R5 spec.
|
|
22
|
+
*
|
|
23
|
+
* Sibling contract: the encounter half of the same patient/encounter linkage
|
|
24
|
+
* is a custom extension (no `encounter` element exists in R4 or R5) — see
|
|
25
|
+
* [[supply-request-encounter]].
|
|
26
|
+
*
|
|
27
|
+
* @see https://hl7.org/fhir/R5/supplyrequest.html#SupplyRequest.deliverFor
|
|
28
|
+
*/
|
|
29
|
+
import type { Reference } from "../../data/reference";
|
|
30
|
+
import type { SupplyRequest } from "../../data/supplyrequest";
|
|
31
|
+
declare module "../../data/supplyrequest" {
|
|
32
|
+
interface SupplyRequest {
|
|
33
|
+
/**
|
|
34
|
+
* R5 pre-add. The patient the supplies are for (`Reference(Patient)`).
|
|
35
|
+
* Distinct from `deliverTo` (the shipping destination). Carries patient
|
|
36
|
+
* identity for `?patient=` search and for facility orders whose
|
|
37
|
+
* `deliverTo` is a `Location`.
|
|
38
|
+
*/
|
|
39
|
+
deliverFor?: Reference;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** Build the `deliverFor` reference for a supply order's patient. */
|
|
43
|
+
export declare function buildSupplyRequestDeliverFor(patient: Reference): Reference;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the patient reference (`Patient/<id>`) a SupplyRequest is for, read
|
|
46
|
+
* from the R5-backport `deliverFor` field, or null when it is absent.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSupplyRequestPatient(supplyRequest: SupplyRequest): string | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSupplyRequestDeliverFor = buildSupplyRequestDeliverFor;
|
|
4
|
+
exports.getSupplyRequestPatient = getSupplyRequestPatient;
|
|
5
|
+
/** Build the `deliverFor` reference for a supply order's patient. */
|
|
6
|
+
function buildSupplyRequestDeliverFor(patient) {
|
|
7
|
+
return patient;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Returns the patient reference (`Patient/<id>`) a SupplyRequest is for, read
|
|
11
|
+
* from the R5-backport `deliverFor` field, or null when it is absent.
|
|
12
|
+
*/
|
|
13
|
+
function getSupplyRequestPatient(supplyRequest) {
|
|
14
|
+
return supplyRequest.deliverFor?.reference ?? null;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcGx5LXJlcXVlc3QtZGVsaXZlci1mb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXh0ZW5zaW9ucy9vbi1zaXRlLW1lZGljYWwvc3VwcGx5LXJlcXVlc3QtZGVsaXZlci1mb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE0Q0Esb0VBRUM7QUFNRCwwREFJQztBQWJELHFFQUFxRTtBQUNyRSxTQUFnQiw0QkFBNEIsQ0FBQyxPQUFrQjtJQUM3RCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLGFBQTRCO0lBRTVCLE9BQU8sYUFBYSxDQUFDLFVBQVUsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFI1IHByZS1hZGQ6IGBTdXBwbHlSZXF1ZXN0LmRlbGl2ZXJGb3JgIOKAlCB0aGUgcGF0aWVudCBhIHN1cHBseSBvcmRlciBpcyAqZm9yKi5cbiAqXG4gKiAqKlRoZSBnYXAgdGhpcyBmaWxscy4qKiBGSElSIFI0IGBTdXBwbHlSZXF1ZXN0YCBoYXMgbm8gcGF0aWVudC1pZGVudGlmaWNhdGlvblxuICogZWxlbWVudCAobm8gYHN1YmplY3RgLCBubyBgcGF0aWVudGApLiBJdHMgb25seSBkZWxpdmVyeSBmaWVsZCBpcyBgZGVsaXZlclRvYFxuICogKGBSZWZlcmVuY2UoUGF0aWVudHxMb2NhdGlvbnxPcmdhbml6YXRpb24pYCkg4oCUIFwid2hlcmUgdGhlIHN1cHBsaWVzIHBoeXNpY2FsbHlcbiAqIHNoaXBcIi4gRm9yIGhvbWUtY2FyZSBgZGVsaXZlclRvYCBoYXBwZW5zIHRvIGJlIHRoZSBQYXRpZW50LCBidXQgZm9yIGZhY2lsaXR5XG4gKiBvcmRlcnMgaXQgaXMgYSBgTG9jYXRpb25gLCBzbyBgZGVsaXZlclRvYCBjYW5ub3QgYW5zd2VyIFwid2hvc2Ugb3JkZXIgaXMgdGhpc1wiLlxuICpcbiAqICoqVGhlIGZpeC4qKiBGSElSIFI1IGFkZGVkIGBTdXBwbHlSZXF1ZXN0LmRlbGl2ZXJGb3JgIChgUmVmZXJlbmNlKFBhdGllbnQpYCDigJRcbiAqIFwid2hvIHRoZSBzdXBwbGllcyBhcmUgZm9yXCIpIHRvIGNsb3NlIGV4YWN0bHkgdGhpcyBnYXAuIEJlY2F1c2Ugd2Ugb3duIG91clxuICogRkhJUiBtb2RlbCBhbmQgREIsIHdlICoqcHJlLWFkb3B0IHRoYXQgUjUgZmllbGQgbm93KiogcmF0aGVyIHRoYW4gaW52ZW50aW5nIGFcbiAqIGJlc3Bva2UgZXh0ZW5zaW9uLiBUaGlzIG1vZHVsZSBkZWNsYXJlcyBgZGVsaXZlckZvcmAgb24gdGhlIChvdGhlcndpc2VcbiAqIFI0LWdlbmVyYXRlZCkgYFN1cHBseVJlcXVlc3RgIHR5cGUgdmlhIG1vZHVsZSBhdWdtZW50YXRpb24gc28gY29uc3VtZXJzIGNhblxuICogcmVhZC93cml0ZSBpdCB3aXRoIGZ1bGwgdHlwZSBzYWZldHk7IGF0IHJ1bnRpbWUgaXQgcm91bmQtdHJpcHMgdGhyb3VnaCB0aGVcbiAqIGBwYXNzdGhyb3VnaGAgc2NoZW1hIHVudG91Y2hlZC4gVGhlIE9wZW5ISSBiYWNrZW5kIHJlZ2lzdGVyc1xuICogYFN1cHBseVJlcXVlc3QgP3BhdGllbnQ9YCBhZ2FpbnN0IGAkLmRlbGl2ZXJGb3JgIChub3QgYCQuZGVsaXZlclRvYCkuXG4gKlxuICogV2hlbiB3ZSBldmVudHVhbGx5IHVwZ3JhZGUgdG8vc3VwcG9ydCBSNSwgYGRlbGl2ZXJGb3JgIGJlY29tZXMgbmF0aXZlIGFuZFxuICogdGhpcyBhdWdtZW50YXRpb24gaXMgZGVsZXRlZCDigJQgYSByZW5hbWUgb2Ygbm90aGluZywgc2luY2UgdGhlIGZpZWxkIG5hbWUgYW5kXG4gKiBzaGFwZSBhbHJlYWR5IG1hdGNoIHRoZSBSNSBzcGVjLlxuICpcbiAqIFNpYmxpbmcgY29udHJhY3Q6IHRoZSBlbmNvdW50ZXIgaGFsZiBvZiB0aGUgc2FtZSBwYXRpZW50L2VuY291bnRlciBsaW5rYWdlXG4gKiBpcyBhIGN1c3RvbSBleHRlbnNpb24gKG5vIGBlbmNvdW50ZXJgIGVsZW1lbnQgZXhpc3RzIGluIFI0IG9yIFI1KSDigJQgc2VlXG4gKiBbW3N1cHBseS1yZXF1ZXN0LWVuY291bnRlcl1dLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9obDcub3JnL2ZoaXIvUjUvc3VwcGx5cmVxdWVzdC5odG1sI1N1cHBseVJlcXVlc3QuZGVsaXZlckZvclxuICovXG5pbXBvcnQgdHlwZSB7IFJlZmVyZW5jZSB9IGZyb20gXCIuLi8uLi9kYXRhL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHR5cGUgeyBTdXBwbHlSZXF1ZXN0IH0gZnJvbSBcIi4uLy4uL2RhdGEvc3VwcGx5cmVxdWVzdFwiO1xuXG5kZWNsYXJlIG1vZHVsZSBcIi4uLy4uL2RhdGEvc3VwcGx5cmVxdWVzdFwiIHtcbiAgaW50ZXJmYWNlIFN1cHBseVJlcXVlc3Qge1xuICAgIC8qKlxuICAgICAqIFI1IHByZS1hZGQuIFRoZSBwYXRpZW50IHRoZSBzdXBwbGllcyBhcmUgZm9yIChgUmVmZXJlbmNlKFBhdGllbnQpYCkuXG4gICAgICogRGlzdGluY3QgZnJvbSBgZGVsaXZlclRvYCAodGhlIHNoaXBwaW5nIGRlc3RpbmF0aW9uKS4gQ2FycmllcyBwYXRpZW50XG4gICAgICogaWRlbnRpdHkgZm9yIGA/cGF0aWVudD1gIHNlYXJjaCBhbmQgZm9yIGZhY2lsaXR5IG9yZGVycyB3aG9zZVxuICAgICAqIGBkZWxpdmVyVG9gIGlzIGEgYExvY2F0aW9uYC5cbiAgICAgKi9cbiAgICBkZWxpdmVyRm9yPzogUmVmZXJlbmNlO1xuICB9XG59XG5cbi8qKiBCdWlsZCB0aGUgYGRlbGl2ZXJGb3JgIHJlZmVyZW5jZSBmb3IgYSBzdXBwbHkgb3JkZXIncyBwYXRpZW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU3VwcGx5UmVxdWVzdERlbGl2ZXJGb3IocGF0aWVudDogUmVmZXJlbmNlKTogUmVmZXJlbmNlIHtcbiAgcmV0dXJuIHBhdGllbnQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGF0aWVudCByZWZlcmVuY2UgKGBQYXRpZW50LzxpZD5gKSBhIFN1cHBseVJlcXVlc3QgaXMgZm9yLCByZWFkXG4gKiBmcm9tIHRoZSBSNS1iYWNrcG9ydCBgZGVsaXZlckZvcmAgZmllbGQsIG9yIG51bGwgd2hlbiBpdCBpcyBhYnNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdXBwbHlSZXF1ZXN0UGF0aWVudChcbiAgc3VwcGx5UmVxdWVzdDogU3VwcGx5UmVxdWVzdCxcbik6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gc3VwcGx5UmVxdWVzdC5kZWxpdmVyRm9yPy5yZWZlcmVuY2UgPz8gbnVsbDtcbn1cbiJdfQ==
|
package/package.json
CHANGED