@medplum/core 0.9.13 → 0.9.16
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/dist/cjs/index.js +184 -173
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/esm/index.js +184 -173
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/types/client.d.ts +12 -0
- package/package.json +2 -2
- package/cody-pdf-test.js +0 -32
- package/wget-log +0 -6
package/dist/cjs/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.core={}))}(this,(function(e){"use strict";function t(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))}function r(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function n(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}var i,s,o,a;class l{constructor(e=10){i.add(this),s.set(this,void 0),o.set(this,void 0),n(this,s,e,"f"),n(this,o,new Map,"f")}clear(){r(this,o,"f").clear()}get(e){const t=r(this,o,"f").get(e);return t&&(r(this,o,"f").delete(e),r(this,o,"f").set(e,t)),t}set(e,t){r(this,o,"f").has(e)?r(this,o,"f").delete(e):r(this,o,"f").size>=r(this,s,"f")&&r(this,o,"f").delete(r(this,i,"m",a).call(this)),r(this,o,"f").set(e,t)}delete(e){r(this,o,"f").delete(e)}keys(){return r(this,o,"f").keys()}}function c(e,t){const r=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&r.push(...e.prefix),e.given&&r.push(...e.given),e.family&&r.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&r.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&r.push("["+e.use+"]"),r.join(" ").trim()}function u(e){const t=h(e),r=d(e);return r===t?{reference:t}:{reference:t,display:r}}function h(e){return e.resourceType+"/"+e.id}function f(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function d(e){var t,r;if(f(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return c(t[0]);return}(e);if(t)return t}if("Device"===e.resourceType){const t=function(e){const t=e.deviceName;if(t&&t.length>0)return t[0].name;return}(e);if(t)return t}return"Observation"===e.resourceType&&"code"in e&&(null===(t=e.code)||void 0===t?void 0:t.text)?null===(r=e.code)||void 0===r?void 0:r.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:h(e)}function p(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function v(e,t){const r=new Date(e);r.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const i=r.getUTCFullYear(),s=r.getUTCMonth(),o=r.getUTCDate(),a=n.getUTCFullYear(),l=n.getUTCMonth(),c=n.getUTCDate();let u=a-i;(l<s||l===s&&c<o)&&u--;let h=12*a+l-(12*i+s);c<o&&h--;return{years:u,months:h,days:Math.floor((n.getTime()-r.getTime())/864e5)}}function g(e,t){if(e)for(const r of e)r.linkId&&r.answer&&r.answer.length>0&&(t[r.linkId]=r.answer[0]),g(r.item,t)}function m(e,t){return JSON.stringify(e,y,t?2:void 0)}function y(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&w(t)?void 0:t}function w(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function T(e,t,r){return e===t||(!(!w(e)||!w(t))||!w(e)&&!w(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!T(e[r],t[r]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(S(e)&&S(t)?function(e,t,r){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===r&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const r of n){if(!T(e[r],t[r],r))return!1}return!0}(e,t,r):(S(e)||S(t),!1))))}function S(e){return null!==e&&"object"==typeof e}function b(e){return e.every((e=>"string"==typeof e))}s=new WeakMap,o=new WeakMap,i=new WeakSet,a=function(){return r(this,o,"f").keys().next().value};const E=[];for(let e=0;e<256;e++)E.push(e.toString(16).padStart(2,"0"));function P(e){const t=new Uint8Array(e),r=new Array(t.length);for(let e=0;e<t.length;e++)r[e]=E[t[e]];return r.join("")}function A(e){const t=new Uint8Array(e),r=[];for(let e=0;e<t.length;e++)r[e]=String.fromCharCode(t[e]);return window.btoa(r.join(""))}function O(e){return e.charAt(0).toUpperCase()+e.substring(1)}function k(e,t,r){var n,i;return(void 0===(null===(n=t.low)||void 0===n?void 0:n.value)||C(e,t.low.value,r))&&(void 0===(null===(i=t.high)||void 0===i?void 0:i.value)||M(e,t.high.value,r))}function x(e,t,r){return r?Math.abs(e-t)<Math.pow(10,-r):e===t}function R(e,t,r){return r?e<t&&Math.abs(e-t)>Math.pow(10,-r):e<t}function U(e,t,r){return r?e>t&&Math.abs(e-t)>Math.pow(10,-r):e>t}function M(e,t,r){return R(e,t,r)||x(e,t,r)}function C(e,t,r){return U(e,t,r)||x(e,t,r)}function L(){const e=new Uint32Array(28);return crypto.getRandomValues(e),P(e.buffer)}var D;function _(e){const t=function(e){if("undefined"!=typeof window)return window.atob(e);if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("binary");throw new Error("Unable to decode base64")}(e.replace(/-/g,"+").replace(/_/g,"/")),r=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(r);return JSON.parse(n)}D=new WeakMap;const I="ok",j="created",N="gone",W="not-modified",B="not-found",F="access-denied",Q={resourceType:"OperationOutcome",id:I,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},$={resourceType:"OperationOutcome",id:j,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},H={resourceType:"OperationOutcome",id:W,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},q={resourceType:"OperationOutcome",id:B,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},z={resourceType:"OperationOutcome",id:N,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},G={resourceType:"OperationOutcome",id:F,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function X(e){return e.id===I||e.id===j||e.id===W}class Y extends Error{constructor(e){var t,r;super(null===(r=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===r?void 0:r.text),this.outcome=e}}var V,K,J,Z,ee,te,re,ne,ie,se,oe,ae,le,ce,ue,he,fe,de,pe,ve,ge,me,ye,we,Te,Se,be,Ee,Pe,Ae,Oe,ke,xe,Re,Ue,Me,Ce,Le,De;class _e{constructor(e){this[ee]="ReadablePromise",V.set(this,void 0),K.set(this,"pending"),J.set(this,void 0),Z.set(this,void 0),n(this,V,e.then((e=>(n(this,K,"success","f"),n(this,J,e,"f"),e)),(e=>{throw n(this,K,"error","f"),n(this,Z,e,"f"),e})),"f")}isPending(){return"pending"===r(this,K,"f")}read(){switch(r(this,K,"f")){case"pending":throw r(this,V,"f");case"error":throw r(this,Z,"f");default:return r(this,J,"f")}}then(e,t){return r(this,V,"f").then(e,t)}catch(e){return r(this,V,"f").catch(e)}finally(e){return r(this,V,"f").finally(e)}}V=new WeakMap,K=new WeakMap,J=new WeakMap,Z=new WeakMap,ee=Symbol.toStringTag;class Ie{constructor(){te.set(this,void 0),n(this,te,"undefined"!=typeof localStorage?localStorage:new je,"f")}clear(){r(this,te,"f").clear()}getString(e){return r(this,te,"f").getItem(e)||void 0}setString(e,t){t?r(this,te,"f").setItem(e,t):r(this,te,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?m(t):void 0)}}te=new WeakMap;class je{constructor(){re.set(this,void 0),n(this,re,new Map,"f")}get length(){return r(this,re,"f").size}clear(){r(this,re,"f").clear()}getItem(e){var t;return null!==(t=r(this,re,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?r(this,re,"f").set(e,t):r(this,re,"f").delete(e)}removeItem(e){r(this,re,"f").delete(e)}key(e){return Array.from(r(this,re,"f").keys())[e]}}function Ne(){return{types:{}}}function We(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function Be(e,t){var r;const n=t.name;if(!n)return;e.types[n]=We(n,t.description);const i=null===(r=t.snapshot)||void 0===r?void 0:r.element;if(i){const t=i.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var r,n;const i=t.path,s=null===(n=null===(r=t.type)||void 0===r?void 0:r[0])||void 0===n?void 0:n.code;if("Element"!==s&&"BackboneElement"!==s)return;const o=i.split("."),a=Qe(o);a in e.types||(e.types[a]=We(a,t.definition),e.types[a].parentType=Qe(o.slice(0,o.length-1)))}(e,t))),t.forEach((t=>function(e,t){const r=t.path.split(".");if(1===r.length)return;const n=Qe(r.slice(0,r.length-1)),i=e.types[n],s=r[r.length-1];i.properties[s]=t}(e,t)))}}function Fe(e,t){if(t.base)for(const r of t.base){const n=e.types[r];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function Qe(e){return e.map(O).join("")}re=new WeakMap,e.PropertyType=void 0,(ne=e.PropertyType||(e.PropertyType={})).Address="Address",ne.Age="Age",ne.Annotation="Annotation",ne.Attachment="Attachment",ne.BackboneElement="BackboneElement",ne.CodeableConcept="CodeableConcept",ne.Coding="Coding",ne.ContactDetail="ContactDetail",ne.ContactPoint="ContactPoint",ne.Contributor="Contributor",ne.Count="Count",ne.DataRequirement="DataRequirement",ne.Distance="Distance",ne.Dosage="Dosage",ne.Duration="Duration",ne.Expression="Expression",ne.Extension="Extension",ne.HumanName="HumanName",ne.Identifier="Identifier",ne.MarketingStatus="MarketingStatus",ne.Meta="Meta",ne.Money="Money",ne.Narrative="Narrative",ne.ParameterDefinition="ParameterDefinition",ne.Period="Period",ne.Population="Population",ne.ProdCharacteristic="ProdCharacteristic",ne.ProductShelfLife="ProductShelfLife",ne.Quantity="Quantity",ne.Range="Range",ne.Ratio="Ratio",ne.Reference="Reference",ne.RelatedArtifact="RelatedArtifact",ne.Resource="Resource",ne.SampledData="SampledData",ne.Signature="Signature",ne.SubstanceAmount="SubstanceAmount",ne.SystemString="http://hl7.org/fhirpath/System.String",ne.Timing="Timing",ne.TriggerDefinition="TriggerDefinition",ne.UsageContext="UsageContext",ne.base64Binary="base64Binary",ne.boolean="boolean",ne.canonical="canonical",ne.code="code",ne.date="date",ne.dateTime="dateTime",ne.decimal="decimal",ne.id="id",ne.instant="instant",ne.integer="integer",ne.markdown="markdown",ne.oid="oid",ne.positiveInt="positiveInt",ne.string="string",ne.time="time",ne.unsignedInt="unsignedInt",ne.uri="uri",ne.url="url",ne.uuid="uuid";const $e="launch/patient openid fhirUser offline_access user/*.*";function He(){return window.location.protocol+"//"+window.location.host+"/"}function qe(t){return[{type:e.PropertyType.boolean,value:t}]}function ze(t){return Number.isSafeInteger(t)?{type:e.PropertyType.integer,value:t}:"number"==typeof t?{type:e.PropertyType.decimal,value:t}:"boolean"==typeof t?{type:e.PropertyType.boolean,value:t}:"string"==typeof t?{type:e.PropertyType.string,value:t}:tt(t)?{type:e.PropertyType.Quantity,value:t}:{type:e.PropertyType.BackboneElement,value:t}}function Ge(e){return 0!==e.length&&!!e[0].value}function Xe(e){const t=[];for(const r of e){let e=!1;for(const n of t)if(Ge(Ke(r,n))){e=!0;break}e||t.push(r)}return t}function Ye(e){return qe(!Ge(e))}function Ve(e,t){return 0===e.length||0===t.length?[]:e.length!==t.length?qe(!1):qe(e.every(((e,r)=>Ge(Ke(e,t[r])))))}function Ke(e,t){const r=e.value,n=t.value;return"number"==typeof r&&"number"==typeof n?qe(Math.abs(r-n)<1e-8):tt(r)&&tt(n)?qe(rt(r,n)):qe("object"==typeof r&&"object"==typeof n?nt(e,t):r===n)}function Je(e,t){return 0===e.length&&0===t.length?qe(!0):e.length!==t.length?qe(!1):(e.sort(Ze),t.sort(Ze),qe(e.every(((e,r)=>Ge(function(e,t){const r=e.value,n=t.value;if("number"==typeof r&&"number"==typeof n)return qe(Math.abs(r-n)<.01);if(tt(r)&&tt(n))return qe(rt(r,n));if("object"==typeof r&&"object"==typeof n)return qe(nt(r,n));if("string"==typeof r&&"string"==typeof n)return qe(r.toLowerCase()===n.toLowerCase());return qe(r===n)}(e,t[r]))))))}function Ze(e,t){const r=e.value,n=t.value;return"number"==typeof r&&"number"==typeof n?r-n:"string"==typeof r&&"string"==typeof n?r.localeCompare(n):0}function et(e,t){const{value:r}=e;if(null==r)return!1;switch(t){case"Boolean":return"boolean"==typeof r;case"Decimal":case"Integer":return"number"==typeof r;case"Date":return"string"==typeof r&&!!r.match(/^\d{4}(-\d{2}(-\d{2})?)?/);case"DateTime":return"string"==typeof r&&!!r.match(/^\d{4}(-\d{2}(-\d{2})?)?T/);case"Time":return"string"==typeof r&&!!r.match(/^T\d/);case"Period":return!(!(n=r)||"object"!=typeof n||!("start"in n));case"Quantity":return tt(r);default:return"object"==typeof r&&(null==r?void 0:r.resourceType)===t}var n}function tt(e){return!(!e||"object"!=typeof e||!("value"in e)||"number"!=typeof e.value)}function rt(e,t){return Math.abs(e.value-t.value)<.01&&(e.unit===t.unit||e.code===t.code||e.unit===t.code||e.code===t.unit)}function nt(e,t){const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const n of r){const r=e[n],i=t[n];if(it(r)&&it(i)){if(!nt(r,i))return!1}else if(r!==i)return!1}return!0}function it(e){return null!==e&&"object"==typeof e}var st,ot;se=new WeakMap,oe=new WeakMap,ae=new WeakMap,le=new WeakMap,ce=new WeakMap,ue=new WeakMap,he=new WeakMap,fe=new WeakMap,de=new WeakMap,pe=new WeakMap,ve=new WeakMap,ge=new WeakMap,me=new WeakMap,ye=new WeakMap,we=new WeakMap,Te=new WeakMap,Se=new WeakMap,ie=new WeakSet,be=function(e){const t=this.getLogins().filter((t=>{var r,n;return(null===(r=t.profile)||void 0===r?void 0:r.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));t.push(e),r(this,ae,"f").setObject("logins",t)},Ee=function(){return t(this,void 0,void 0,(function*(){return n(this,we,new Promise(((e,t)=>{this.get("auth/me").then((t=>{n(this,we,void 0,"f"),n(this,Te,t.profile,"f"),n(this,Se,t.config,"f"),this.dispatchEvent({type:"change"}),e(r(this,Te,"f"))})).catch(t)})),"f"),r(this,we,"f")}))},Pe=function(e,n,i={}){return t(this,void 0,void 0,(function*(){r(this,ye,"f")&&(yield r(this,ye,"f")),n.startsWith("http")||(n=r(this,ue,"f")+n),i.method=e,r(this,ie,"m",Ae).call(this,i);const t=yield r(this,se,"f").call(this,n,i);if(401===t.status)return r(this,ie,"m",xe).call(this,e,n,i);if(204===t.status||304===t.status)return;const s=yield t.json();return"OperationOutcome"!==(null==s?void 0:s.resourceType)||X(s)?s:Promise.reject(s)}))},Ae=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),r(this,ge,"f")&&(t.Authorization="Bearer "+r(this,ge,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Oe=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},ke=function(e,t){"string"==typeof t||"undefined"!=typeof Blob&&t instanceof Blob||"undefined"!=typeof File&&t instanceof File||"undefined"!=typeof Uint8Array&&t instanceof Uint8Array?e.body=t:t&&(e.body=JSON.stringify(t))},xe=function(e,n,i){return t(this,void 0,void 0,(function*(){return r(this,ie,"m",Me).call(this).then((()=>r(this,ie,"m",Pe).call(this,e,n,i))).catch((e=>(this.clear(),r(this,ve,"f")&&r(this,ve,"f").call(this),Promise.reject(e))))}))},Re=function(){return t(this,void 0,void 0,(function*(){const e=L();r(this,ae,"f").setString("pkceState",e);const n=L();r(this,ae,"f").setString("codeVerifier",n);const i=A(yield function(e){return t(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");r(this,ae,"f").setString("codeChallenge",i)}))},Ue=function(){r(this,ie,"m",Re).call(this);const e=new URL(r(this,fe,"f"));e.searchParams.set("response_type","code"),e.searchParams.set("state",r(this,ae,"f").getString("pkceState")),e.searchParams.set("client_id",r(this,he,"f")),e.searchParams.set("redirect_uri",He()),e.searchParams.set("scope",$e),e.searchParams.set("code_challenge_method","S256"),e.searchParams.set("code_challenge",r(this,ae,"f").getString("codeChallenge")),window.location.assign(e.toString())},Me=function(){return t(this,void 0,void 0,(function*(){if(r(this,ye,"f"))return r(this,ye,"f");if(!r(this,me,"f"))throw this.clear(),new Error("Invalid refresh token");const e=new URLSearchParams;e.set("grant_type","refresh_token"),e.set("client_id",r(this,he,"f")),e.set("refresh_token",r(this,me,"f")),n(this,ye,r(this,ie,"m",Ce).call(this,e),"f"),yield r(this,ye,"f")}))},Ce=function(e){return t(this,void 0,void 0,(function*(){return r(this,se,"f").call(this,r(this,de,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>{if(!e.ok)throw new Error("Failed to fetch tokens");return e.json()})).then((e=>r(this,ie,"m",Le).call(this,e))).then((()=>this.getProfile()))}))},Le=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,n=function(e){const[t,r,n]=e.split(".");return _(r)}(t);if(Date.now()>=1e3*n.exp)throw this.clear(),new Error("Token expired");if(r(this,he,"f")&&n.client_id!==r(this,he,"f"))throw this.clear(),new Error("Token was not issued for this audience");yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile})}))},De=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class at{constructor(e,t){this.original=e,this.child=t}eval(e){try{return e.length>0?e.map((e=>this.child.eval([e]))).flat():this.child.eval(e)}catch(e){throw new Error(`FhirPathError on "${this.original}": ${e}`)}}}class lt{constructor(e){this.value=e}eval(){return[this.value]}}class ct{constructor(e){this.name=e,st.add(this)}eval(e){return"$this"===this.name?e:e.map((e=>r(this,st,"m",ot).call(this,e))).flat().filter((e=>void 0!==(null==e?void 0:e.value)))}}st=new WeakSet,ot=function(e){const t=e.value;if(!t||"object"!=typeof t)return;if("resourceType"in t&&t.resourceType===this.name)return e;let r;if(this.name in t)r=t[this.name];else{const e=Object.keys(t).find((e=>e.startsWith(this.name)));e&&(r=t[e])}return void 0!==r?Array.isArray(r)?r.map(ze):[ze(r)]:void 0};class ut{eval(){return[]}}class ht{constructor(e,t){this.child=e,this.impl=t}eval(e){return this.impl(this.child.eval(e))}}class ft{constructor(e,t){this.left=e,this.right=t}eval(e){return this.left.eval(e)}}class dt{constructor(e,t,r){this.left=e,this.right=t,this.impl=r}eval(t){const r=this.left.eval(t);if(1!==r.length)return[];const n=this.right.eval(t);if(1!==n.length)return[];const i=r[0].value,s=n[0].value,o=tt(i)?i.value:i,a=tt(s)?s.value:s,l=this.impl(o,a);return"boolean"==typeof l?qe(l):tt(i)?[{type:e.PropertyType.Quantity,value:Object.assign(Object.assign({},i),{value:l})}]:[ze(l)]}}class pt{constructor(e,t){this.left=e,this.right=t}eval(t){const r=[...this.left.eval(t),...this.right.eval(t)];return r.length>0&&r.every((e=>"string"==typeof e.value))?[{type:e.PropertyType.string,value:r.map((e=>e.value)).join("")}]:r}}class vt{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e),r=this.right.eval(e);return qe(t.some((e=>e.value===r[0].value)))}}class gt{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);return qe(this.right.eval(e).some((e=>e.value===t[0].value)))}}class mt{constructor(e,t){this.left=e,this.right=t}eval(e){return this.right.eval(this.left.eval(e))}}class yt{constructor(e,t){this.left=e,this.right=t}eval(e){return Xe([...this.left.eval(e),...this.right.eval(e)])}}class wt{constructor(e,t){this.left=e,this.right=t}eval(e){return Ve(this.left.eval(e),this.right.eval(e))}}class Tt{constructor(e,t){this.left=e,this.right=t}eval(e){return Ye(Ve(this.left.eval(e),this.right.eval(e)))}}class St{constructor(e,t){this.left=e,this.right=t}eval(e){return Je(this.left.eval(e),this.right.eval(e))}}class bt{constructor(e,t){this.left=e,this.right=t}eval(e){return Ye(Je(this.left.eval(e),this.right.eval(e)))}}class Et{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);if(1!==t.length)return[];const r=this.right.name;return qe(et(t[0],r))}}class Pt{constructor(e,t){this.left=e,this.right=t}eval(e){var t,r,n,i;const s=this.left.eval(e),o=this.right.eval(e);return!0===(null===(t=s[0])||void 0===t?void 0:t.value)&&!0===(null===(r=o[0])||void 0===r?void 0:r.value)?qe(!0):!1===(null===(n=s[0])||void 0===n?void 0:n.value)||!1===(null===(i=o[0])||void 0===i?void 0:i.value)?qe(!1):[]}}class At{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);if(Ge(t))return t;const r=this.right.eval(e);return Ge(r)?r:[]}}class Ot{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e),r=this.right.eval(e);if(0===t.length&&0===r.length)return[];const n=0===t.length?null:t[0].value,i=0===r.length?null:r[0].value;return!0===n&&!0!==i||!0!==n&&!0===i?qe(!0):!0===n&&!0===i||!1===n&&!1===i?qe(!1):[]}}class kt{constructor(e,t,r){this.name=e,this.args=t,this.impl=r}eval(e){return this.impl(e,...this.args)}}class xt{constructor(e,t){this.left=e,this.expr=t}eval(e){const t=this.expr.eval(e);if(1!==t.length)return[];const r=t[0].value;if("number"!=typeof r)throw new Error("Invalid indexer expression: should return integer}");const n=this.left.eval(e);return r in n?[n[r]]:[]}}function Rt(e){if(e.startsWith("T"))return e+"T00:00:00.000Z".substring(e.length);if(e.length<=10)return e;try{return new Date(e).toISOString()}catch(t){return e}}const Ut=()=>[],Mt={empty:e=>qe(0===e.length),exists:(e,t)=>qe(t?e.filter((e=>Ge(t.eval([e])))).length>0:e.length>0),all:(e,t)=>qe(e.every((e=>Ge(t.eval([e]))))),allTrue:e=>{for(const t of e)if(!t.value)return qe(!1);return qe(!0)},anyTrue:e=>{for(const t of e)if(t.value)return qe(!0);return qe(!1)},allFalse:e=>{for(const t of e)if(t.value)return qe(!1);return qe(!0)},anyFalse:e=>{for(const t of e)if(!t.value)return qe(!0);return qe(!1)},subsetOf:Ut,supersetOf:Ut,count:t=>[{type:e.PropertyType.integer,value:t.length}],distinct:e=>{const t=[];for(const r of e)t.some((e=>e.value===r.value))||t.push(r);return t},isDistinct:e=>qe(e.length===Mt.distinct(e).length),where:(e,t)=>e.filter((e=>Ge(t.eval([e])))),select:(e,t)=>e.map((e=>t.eval([e]))).flat(),repeat:Ut,ofType:Ut,single:e=>{if(e.length>1)throw new Error("Expected input length one for single()");return 0===e.length?[]:e.slice(0,1)},first:e=>0===e.length?[]:e.slice(0,1),last:e=>0===e.length?[]:e.slice(e.length-1,e.length),tail:e=>0===e.length?[]:e.slice(1,e.length),skip:(e,t)=>{var r;const n=null===(r=t.eval([])[0])||void 0===r?void 0:r.value;if("number"!=typeof n)throw new Error("Expected a number for skip(num)");return n>=e.length?[]:n<=0?e:e.slice(n,e.length)},take:(e,t)=>{var r;const n=null===(r=t.eval([])[0])||void 0===r?void 0:r.value;if("number"!=typeof n)throw new Error("Expected a number for take(num)");return n>=e.length?e:n<=0?[]:e.slice(0,n)},intersect:(e,t)=>{if(!t)return e;const r=t.eval([]),n=[];for(const t of e)!n.some((e=>e.value===t.value))&&r.some((e=>e.value===t.value))&&n.push(t);return n},exclude:(e,t)=>{if(!t)return e;const r=t.eval([]),n=[];for(const t of e)r.some((e=>e.value===t.value))||n.push(t);return n},union:(e,t)=>{if(!t)return e;const r=t.eval([]);return Xe([...e,...r])},combine:(e,t)=>{if(!t)return e;const r=t.eval([]);return[...e,...r]},iif:(e,t,r,n)=>{const i=t.eval(e);if(i.length>1||1===i.length&&"boolean"!=typeof i[0].value)throw new Error("Expected criterion to evaluate to a Boolean");return Ge(i)?r.eval(e):n?n.eval(e):[]},toBoolean:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);if("boolean"==typeof r)return[{type:e.PropertyType.boolean,value:r}];if("number"==typeof r&&(0===r||1===r))return qe(!!r);if("string"==typeof r){const e=r.toLowerCase();if(["true","t","yes","y","1","1.0"].includes(e))return qe(!0);if(["false","f","no","n","0","0.0"].includes(e))return qe(!1)}return[]},convertsToBoolean:e=>0===e.length?[]:qe(1===Mt.toBoolean(e).length),toInteger:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return"number"==typeof r?[{type:e.PropertyType.integer,value:r}]:"string"==typeof r&&r.match(/^[+-]?\d+$/)?[{type:e.PropertyType.integer,value:parseInt(r,10)}]:"boolean"==typeof r?[{type:e.PropertyType.integer,value:r?1:0}]:[]},convertsToInteger:e=>0===e.length?[]:qe(1===Mt.toInteger(e).length),toDate:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return"string"==typeof r&&r.match(/^\d{4}(-\d{2}(-\d{2})?)?/)?[{type:e.PropertyType.date,value:Rt(r)}]:[]},convertsToDate:e=>0===e.length?[]:qe(1===Mt.toDate(e).length),toDateTime:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return"string"==typeof r&&r.match(/^\d{4}(-\d{2}(-\d{2})?)?/)?[{type:e.PropertyType.dateTime,value:Rt(r)}]:[]},convertsToDateTime:e=>0===e.length?[]:qe(1===Mt.toDateTime(e).length),toDecimal:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return"number"==typeof r?[{type:e.PropertyType.decimal,value:r}]:"string"==typeof r&&r.match(/^-?\d{1,9}(\.\d{1,9})?$/)?[{type:e.PropertyType.decimal,value:parseFloat(r)}]:"boolean"==typeof r?[{type:e.PropertyType.decimal,value:r?1:0}]:[]},convertsToDecimal:e=>0===e.length?[]:qe(1===Mt.toDecimal(e).length),toQuantity:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return tt(r)?[{type:e.PropertyType.Quantity,value:r}]:"number"==typeof r?[{type:e.PropertyType.Quantity,value:{value:r,unit:"1"}}]:"string"==typeof r&&r.match(/^-?\d{1,9}(\.\d{1,9})?/)?[{type:e.PropertyType.Quantity,value:{value:parseFloat(r),unit:"1"}}]:"boolean"==typeof r?[{type:e.PropertyType.Quantity,value:{value:r?1:0,unit:"1"}}]:[]},convertsToQuantity:e=>0===e.length?[]:qe(1===Mt.toQuantity(e).length),toString:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);return null==r?[]:tt(r)?[{type:e.PropertyType.string,value:`${r.value} '${r.unit}'`}]:[{type:e.PropertyType.string,value:r.toString()}]},convertsToString:e=>0===e.length?[]:qe(1===Mt.toString(e).length),toTime:t=>{if(0===t.length)return[];const[{value:r}]=Dt(t,1);if("string"==typeof r){const t=r.match(/^T?(\d{2}(:\d{2}(:\d{2})?)?)/);if(t)return[{type:e.PropertyType.time,value:Rt("T"+t[1])}]}return[]},convertsToTime:e=>0===e.length?[]:qe(1===Mt.toTime(e).length),indexOf:(e,t)=>Ct(((e,t)=>e.indexOf(t)),e,t),substring:(e,t,r)=>Ct(((e,t,r)=>{const n=t,i=r?n+r:e.length;return n<0||n>=e.length?void 0:e.substring(n,i)}),e,t,r),startsWith:(e,t)=>Ct(((e,t)=>e.startsWith(t)),e,t),endsWith:(e,t)=>Ct(((e,t)=>e.endsWith(t)),e,t),contains:(e,t)=>Ct(((e,t)=>e.includes(t)),e,t),upper:e=>Ct((e=>e.toUpperCase()),e),lower:e=>Ct((e=>e.toLowerCase()),e),replace:(e,t,r)=>Ct(((e,t,r)=>e.replaceAll(t,r)),e,t,r),matches:(e,t)=>Ct(((e,t)=>!!e.match(t)),e,t),replaceMatches:(e,t,r)=>Ct(((e,t,r)=>e.replaceAll(t,r)),e,t,r),length:e=>Ct((e=>e.length),e),toChars:e=>Ct((e=>e?e.split(""):void 0),e),abs:e=>Lt(Math.abs,e),ceiling:e=>Lt(Math.ceil,e),exp:e=>Lt(Math.exp,e),floor:e=>Lt(Math.floor,e),ln:e=>Lt(Math.log,e),log:(e,t)=>Lt(((e,t)=>Math.log(e)/Math.log(t)),e,t),power:(e,t)=>Lt(Math.pow,e,t),round:e=>Lt(Math.round,e),sqrt:e=>Lt(Math.sqrt,e),truncate:e=>Lt((e=>0|e),e),children:Ut,descendants:Ut,trace:(e,t)=>(console.log("trace",e,t),e),now:()=>[{type:e.PropertyType.dateTime,value:(new Date).toISOString()}],timeOfDay:()=>[{type:e.PropertyType.time,value:(new Date).toISOString().substring(11)}],today:()=>[{type:e.PropertyType.date,value:(new Date).toISOString().substring(0,10)}],between:(t,r,n,i)=>{const s=Mt.toDateTime(r.eval(t));if(0===s.length)throw new Error("Invalid start date");const o=Mt.toDateTime(n.eval(t));if(0===o.length)throw new Error("Invalid end date");const a=i.eval(t)[0].value;if("years"!==a&&"months"!==a&&"days"!==a)throw new Error("Invalid units");const l=v(s[0].value,o[0].value);return[{type:e.PropertyType.Quantity,value:{value:l[a],unit:a}}]},is:(t,r)=>{let n="";return r instanceof ct?n=r.name:r instanceof mt&&(n=r.left.name+"."+r.right.name),n?t.map((t=>({type:e.PropertyType.boolean,value:et(t,n)}))):[]},not:t=>Mt.toBoolean(t).map((t=>({type:e.PropertyType.boolean,value:!t.value}))),resolve:t=>t.map((t=>{const r=t.value;let n;if("string"==typeof r)n=r;else if("object"==typeof r){const t=r;if(t.resource)return{type:e.PropertyType.BackboneElement,value:t.resource};n=t.reference}if(!n)return{type:e.PropertyType.BackboneElement,value:null};const[i,s]=n.split("/");return{type:e.PropertyType.BackboneElement,value:{resourceType:i,id:s}}})).filter((e=>!!e.value)),as:e=>e,type:t=>t.map((({value:t})=>"boolean"==typeof t?{type:e.PropertyType.BackboneElement,value:{namespace:"System",name:"Boolean"}}:"number"==typeof t?{type:e.PropertyType.BackboneElement,value:{namespace:"System",name:"Integer"}}:t&&"object"==typeof t&&"resourceType"in t?{type:e.PropertyType.BackboneElement,value:{namespace:"FHIR",name:t.resourceType}}:{type:e.PropertyType.BackboneElement,value:null})),conformsTo:(t,r)=>{const n=r.eval([])[0].value;if(!n.startsWith("http://hl7.org/fhir/StructureDefinition/"))throw new Error("Expected a StructureDefinition URL");const i=n.replace("http://hl7.org/fhir/StructureDefinition/","");return t.map((t=>{var r;return{type:e.PropertyType.boolean,value:(null===(r=t.value)||void 0===r?void 0:r.resourceType)===i}}))}};function Ct(e,t,...r){if(0===t.length)return[];const[{value:n}]=Dt(t,1);if("string"!=typeof n)throw new Error("String function cannot be called with non-string");const i=e(n,...r.map((e=>{var r,n;return e&&(null===(n=null===(r=e.eval(t))||void 0===r?void 0:r[0])||void 0===n?void 0:n.value)})));return void 0===i?[]:Array.isArray(i)?i.map(ze):[ze(i)]}function Lt(t,r,...n){if(0===r.length)return[];const[{value:i}]=Dt(r,1),s=tt(i),o=s?i.value:i;if("number"!=typeof o)throw new Error("Math function cannot be called with non-number");const a=t(o,...n.map((e=>{var t,r;return null===(r=null===(t=e.eval([]))||void 0===t?void 0:t[0])||void 0===r?void 0:r.value})));return[{type:s?e.PropertyType.Quantity:r[0].type,value:s?Object.assign(Object.assign({},i),{value:a}):a}]}function Dt(e,t){if(e.length!==t)throw new Error(`Expected ${t} arguments`);for(const t of e)if(null==t)throw new Error("Expected non-null argument");return e}var _t,It,jt,Nt,Wt,Bt,Ft,Qt,$t,Ht,qt,zt,Gt,Xt,Yt,Vt,Kt,Jt;function Zt(e){return new rr(e).tokenize()}const er=["year","years","month","months","week","weeks","day","days","hour","hours","minute","minutes","second","seconds","millisecond","milliseconds"],tr=["!=","!~","<=",">=","{}"];class rr{constructor(e){_t.add(this),It.set(this,void 0),jt.set(this,void 0),n(this,It,e,"f"),n(this,jt,0,"f")}tokenize(){const e=[];for(;r(this,jt,"f")<r(this,It,"f").length;){const t=r(this,_t,"m",Wt).call(this);t&&e.push(t)}return e}}function nr(e,t){return{id:e,value:t}}var ir,sr,or,ar,lr,cr,ur,hr,fr;It=new WeakMap,jt=new WeakMap,_t=new WeakSet,Nt=function(){const e=r(this,jt,"f"),t=r(this,_t,"m",Wt).call(this);return n(this,jt,e,"f"),t},Wt=function(){r(this,_t,"m",Bt).call(this);const e=r(this,_t,"m",Vt).call(this);if(!e)return;const t=r(this,_t,"m",Jt).call(this);return"/"===e&&"*"===t?r(this,_t,"m",Ft).call(this):"/"===e&&"/"===t?r(this,_t,"m",Qt).call(this):"'"===e?r(this,_t,"m",$t).call(this):"`"===e?r(this,_t,"m",Ht).call(this):"@"===e?r(this,_t,"m",qt).call(this):e.match(/\d/)?r(this,_t,"m",zt).call(this):e.match(/\w/)||"$"===e&&t.match(/\w/)?r(this,_t,"m",Gt).call(this):r(this,_t,"m",Xt).call(this)},Bt=function(){return nr("Whitespace",r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/\s/))))},Ft=function(){const e=r(this,jt,"f");return r(this,_t,"m",Yt).call(this,(()=>"*"!==r(this,_t,"m",Vt).call(this)||"/"!==r(this,_t,"m",Jt).call(this))),n(this,jt,r(this,jt,"f")+2,"f"),nr("Comment",r(this,It,"f").substring(e,r(this,jt,"f")))},Qt=function(){return nr("Comment",r(this,_t,"m",Yt).call(this,(()=>"\n"!==r(this,_t,"m",Vt).call(this))))},$t=function(){var e,t;n(this,jt,(e=r(this,jt,"f"),++e),"f");const i=nr("String",r(this,_t,"m",Yt).call(this,(()=>"\\"===r(this,_t,"m",Kt).call(this)||"'"!==r(this,_t,"m",Vt).call(this))));return n(this,jt,(t=r(this,jt,"f"),++t),"f"),i},Ht=function(){var e,t;n(this,jt,(e=r(this,jt,"f"),++e),"f");const i=nr("Symbol",r(this,_t,"m",Yt).call(this,(()=>"`"!==r(this,_t,"m",Vt).call(this))));return n(this,jt,(t=r(this,jt,"f"),++t),"f"),i},qt=function(){var e,t,i,s,o;const a=r(this,jt,"f");return n(this,jt,(e=r(this,jt,"f"),++e),"f"),r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/[\d-]/))),"T"===r(this,_t,"m",Vt).call(this)&&(n(this,jt,(t=r(this,jt,"f"),++t),"f"),r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/[\d:]/))),"."===r(this,_t,"m",Vt).call(this)&&r(this,_t,"m",Jt).call(this).match(/\d/)&&(n(this,jt,(i=r(this,jt,"f"),++i),"f"),r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/[\d]/)))),"Z"===r(this,_t,"m",Vt).call(this)?n(this,jt,(s=r(this,jt,"f"),++s),"f"):"+"!==r(this,_t,"m",Vt).call(this)&&"-"!==r(this,_t,"m",Vt).call(this)||(n(this,jt,(o=r(this,jt,"f"),++o),"f"),r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/[\d:]/))))),nr("DateTime",r(this,It,"f").substring(a+1,r(this,jt,"f")))},zt=function(){var e;const t=r(this,jt,"f");let i="Number";return r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/\d/))),"."===r(this,_t,"m",Vt).call(this)&&r(this,_t,"m",Jt).call(this).match(/\d/)&&(n(this,jt,(e=r(this,jt,"f"),++e),"f"),r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/\d/))))," "===r(this,_t,"m",Vt).call(this)&&function(e){if(e){if("String"===e.id)return!0;if("Symbol"===e.id&&er.includes(e.value))return!0}return!1}(r(this,_t,"m",Nt).call(this))&&(i="Quantity",r(this,_t,"m",Wt).call(this)),nr(i,r(this,It,"f").substring(t,r(this,jt,"f")))},Gt=function(){return nr("Symbol",r(this,_t,"m",Yt).call(this,(()=>r(this,_t,"m",Vt).call(this).match(/[$\w]/))))},Xt=function(){var e;const t=r(this,_t,"m",Vt).call(this),i=t+r(this,_t,"m",Jt).call(this);return tr.includes(i)?(n(this,jt,r(this,jt,"f")+2,"f"),nr(i,i)):(n(this,jt,(e=r(this,jt,"f"),++e),"f"),nr(t,t))},Yt=function(e){var t;const i=r(this,jt,"f");for(;r(this,jt,"f")<r(this,It,"f").length&&e();)n(this,jt,(t=r(this,jt,"f"),++t),"f");return r(this,It,"f").substring(i,r(this,jt,"f"))},Vt=function(){return r(this,It,"f")[r(this,jt,"f")]},Kt=function(){var e;return null!==(e=r(this,It,"f")[r(this,jt,"f")-1])&&void 0!==e?e:""},Jt=function(){var e;return null!==(e=r(this,It,"f")[r(this,jt,"f")+1])&&void 0!==e?e:""};ir=new WeakMap,sr=new WeakMap;class dr{constructor(e,t,r){or.add(this),ar.set(this,void 0),lr.set(this,void 0),cr.set(this,void 0),n(this,ar,e,"f"),n(this,lr,t,"f"),n(this,cr,r,"f")}match(e){const t=r(this,or,"m",fr).call(this);return(null==t?void 0:t.id)===e&&(r(this,or,"m",hr).call(this),!0)}consumeAndParse(e=100){const t=r(this,or,"m",hr).call(this),n=r(this,lr,"f")[t.id];if(!n)throw Error(`Parse error at ${t.value}. No matching prefix parselet.`);let i=n.parse(this,t);for(;e>r(this,or,"m",ur).call(this);){const e=r(this,or,"m",hr).call(this);i=r(this,cr,"f")[e.id].parse(this,i,e)}return i}}ar=new WeakMap,lr=new WeakMap,cr=new WeakMap,or=new WeakSet,ur=function(){const e=r(this,or,"m",fr).call(this);if(!e)return 100;const t=r(this,cr,"f")[e.id];return t?t.precedence:100},hr=function(){if(!r(this,ar,"f").length)throw Error("Cant consume unknown more tokens.");return r(this,ar,"f").shift()},fr=function(){return r(this,ar,"f").length>0?r(this,ar,"f")[0]:void 0};const pr={parse(e){const t=e.consumeAndParse();if(!e.match(")"))throw new Error("Parse error: expected `)`");return t}},vr={parse(e,t){const r=e.consumeAndParse();if(!e.match("]"))throw new Error("Parse error: expected `]`");return new xt(t,r)},precedence:2},gr={parse(e,t){if(!(t instanceof ct))throw new Error("Unexpected parentheses");if(!(t.name in Mt))throw new Error("Unrecognized function: "+t.name);const r=[];for(;!e.match(")");)r.push(e.consumeAndParse()),e.match(",");return new kt(t.name,r,Mt[t.name])},precedence:0};function mr(e){const t=e.split(" "),r=parseFloat(t[0]);let n=t[1];return n=n&&n.startsWith("'")&&n.endsWith("'")?n.substring(1,n.length-1):"{"+n+"}",{value:r,unit:n}}const yr=(new class{constructor(){ir.set(this,{}),sr.set(this,{})}registerInfix(e,t){return r(this,sr,"f")[e]=t,this}registerPrefix(e,t){return r(this,ir,"f")[e]=t,this}prefix(e,t,r){return this.registerPrefix(e,{parse(e,n){const i=e.consumeAndParse(t);return r(n,i)}})}infixLeft(e,t,r){return this.registerInfix(e,{parse(e,n,i){const s=e.consumeAndParse(t);return r(n,i,s)},precedence:t})}construct(e){return new dr(Zt(e),r(this,ir,"f"),r(this,sr,"f"))}}).registerPrefix("String",{parse:(t,r)=>new lt({type:e.PropertyType.string,value:r.value})}).registerPrefix("DateTime",{parse:(t,r)=>new lt({type:e.PropertyType.dateTime,value:Rt(r.value)})}).registerPrefix("Quantity",{parse:(t,r)=>new lt({type:e.PropertyType.Quantity,value:mr(r.value)})}).registerPrefix("Number",{parse:(t,r)=>new lt({type:e.PropertyType.decimal,value:parseFloat(r.value)})}).registerPrefix("Symbol",{parse:(t,r)=>"false"===r.value?new lt({type:e.PropertyType.boolean,value:!1}):"true"===r.value?new lt({type:e.PropertyType.boolean,value:!0}):new ct(r.value)}).registerPrefix("{}",{parse:()=>new ut}).registerPrefix("(",pr).registerInfix("[",vr).registerInfix("(",gr).prefix("+",3,((e,t)=>new ht(t,(e=>e)))).prefix("-",3,((e,t)=>new dt(t,t,((e,t)=>-t)))).infixLeft(".",1,((e,t,r)=>new mt(e,r))).infixLeft("/",4,((e,t,r)=>new dt(e,r,((e,t)=>e/t)))).infixLeft("*",4,((e,t,r)=>new dt(e,r,((e,t)=>e*t)))).infixLeft("+",5,((e,t,r)=>new dt(e,r,((e,t)=>e+t)))).infixLeft("-",5,((e,t,r)=>new dt(e,r,((e,t)=>e-t)))).infixLeft("|",7,((e,t,r)=>new yt(e,r))).infixLeft("=",9,((e,t,r)=>new wt(e,r))).infixLeft("!=",9,((e,t,r)=>new Tt(e,r))).infixLeft("~",9,((e,t,r)=>new St(e,r))).infixLeft("!~",9,((e,t,r)=>new bt(e,r))).infixLeft("<",8,((e,t,r)=>new dt(e,r,((e,t)=>e<t)))).infixLeft("<=",8,((e,t,r)=>new dt(e,r,((e,t)=>e<=t)))).infixLeft(">",8,((e,t,r)=>new dt(e,r,((e,t)=>e>t)))).infixLeft(">=",8,((e,t,r)=>new dt(e,r,((e,t)=>e>=t)))).infixLeft("&",5,((e,t,r)=>new pt(e,r))).infixLeft("Symbol",6,((e,t,r)=>{switch(t.value){case"and":return new Pt(e,r);case"as":return new ft(e,r);case"contains":return new vt(e,r);case"div":return new dt(e,r,((e,t)=>e/t|0));case"in":return new gt(e,r);case"is":return new Et(e,r);case"mod":return new dt(e,r,((e,t)=>e%t));case"or":return new At(e,r);case"xor":return new Ot(e,r);default:throw new Error("Cannot use "+t.value+" as infix operator")}}));function wr(e){try{return new at(e,yr.construct(e).consumeAndParse())}catch(t){throw new Error(`FhirPathError on "${e}": ${t}`)}}class Tr{constructor(e){this.segments=e}get(e){return"number"==typeof e?this.segments[e]:this.segments.find((t=>t.name===e))}getAll(e){return this.segments.filter((t=>t.name===e))}toString(){return this.segments.map((e=>e.toString())).join("\r")}buildAck(){var e,t,r,n,i,s;const o=new Date,a=this.get("MSH"),l=(null===(e=null==a?void 0:a.get(2))||void 0===e?void 0:e.toString())||"",c=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",u=(null===(r=null==a?void 0:a.get(4))||void 0===r?void 0:r.toString())||"",h=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",f=(null===(i=null==a?void 0:a.get(9))||void 0===i?void 0:i.toString())||"",d=(null===(s=null==a?void 0:a.get(12))||void 0===s?void 0:s.toString())||"2.5.1";return new Tr([new Sr(["MSH","^~\\&",u,h,l,c,o.toISOString(),"","ACK",o.getTime().toString(),"P",d]),new Sr(["MSA","AA",f,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new Tr(e.split(/[\r\n]+/).map((e=>Sr.parse(e))))}}class Sr{constructor(e){b(e)?this.fields=e.map((e=>br.parse(e))):this.fields=e,this.name=this.fields[0].components[0]}get(e){return this.fields[e]}toString(){return this.fields.map((e=>e.toString())).join("|")}static parse(e){return new Sr(e.split("|").map((e=>br.parse(e))))}}class br{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new br(e.split("^"))}}var Er;e.Operator=void 0,(Er=e.Operator||(e.Operator={})).EQUALS="eq",Er.NOT_EQUALS="ne",Er.GREATER_THAN="gt",Er.LESS_THAN="lt",Er.GREATER_THAN_OR_EQUALS="ge",Er.LESS_THAN_OR_EQUALS="le",Er.STARTS_AFTER="sa",Er.ENDS_BEFORE="eb",Er.APPROXIMATELY="ap",Er.CONTAINS="contains",Er.EXACT="exact",Er.TEXT="text",Er.ABOVE="above",Er.BELOW="below",Er.IN="in",Er.NOT_IN="not-in",Er.OF_TYPE="of-type";const Pr=[e.Operator.CONTAINS,e.Operator.EXACT,e.Operator.TEXT,e.Operator.ABOVE,e.Operator.BELOW,e.Operator.IN,e.Operator.NOT_IN,e.Operator.OF_TYPE],Ar=[e.Operator.NOT_EQUALS,e.Operator.GREATER_THAN,e.Operator.LESS_THAN,e.Operator.GREATER_THAN_OR_EQUALS,e.Operator.LESS_THAN_OR_EQUALS,e.Operator.STARTS_AFTER,e.Operator.ENDS_BEFORE,e.Operator.APPROXIMATELY];var Or;function kr(e,t){const r=t.split(" | ");for(const t of r){const r=xr(t);if(r.startsWith(e+"."))return r}}function xr(e){let t=e.trim();return t.startsWith("(")&&t.endsWith(")")&&(t=t.substring(1,t.length-1)),t.includes(" as ")&&(t=t.substring(0,t.indexOf(" as "))),t.includes(".where(")&&(t=t.substring(0,t.indexOf(".where("))),t}e.SearchParameterType=void 0,(Or=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",Or.NUMBER="NUMBER",Or.QUANTITY="QUANTITY",Or.TEXT="TEXT",Or.REFERENCE="REFERENCE",Or.DATE="DATE",Or.DATETIME="DATETIME",Or.PERIOD="PERIOD",e.COMPONENT_SEPARATOR="^",e.DEFAULT_SEARCH_COUNT=20,e.FIELD_SEPARATOR="|",e.Hl7Field=br,e.Hl7Message=Tr,e.Hl7Segment=Sr,e.LRUCache=l,e.MedplumClient=class extends class{constructor(){D.set(this,void 0),n(this,D,{},"f")}addEventListener(e,t){r(this,D,"f")[e]||(r(this,D,"f")[e]=[]),r(this,D,"f")[e].push(t)}removeEventListeneer(e,t){const n=r(this,D,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===t)return void n.splice(e,1)}dispatchEvent(e){const t=r(this,D,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t;if(super(),ie.add(this),se.set(this,void 0),oe.set(this,void 0),ae.set(this,void 0),le.set(this,void 0),ce.set(this,void 0),ue.set(this,void 0),he.set(this,void 0),fe.set(this,void 0),de.set(this,void 0),pe.set(this,void 0),ve.set(this,void 0),ge.set(this,void 0),me.set(this,void 0),ye.set(this,void 0),we.set(this,void 0),Te.set(this,void 0),Se.set(this,void 0),null==e?void 0:e.baseUrl){if(!e.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");if(!e.baseUrl.endsWith("/"))throw new Error("Base URL must end with a trailing slash")}n(this,se,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),n(this,oe,null==e?void 0:e.createPdf,"f"),n(this,ae,new Ie,"f"),n(this,le,{types:{}},"f"),n(this,ce,new l(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),n(this,ue,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),n(this,he,(null==e?void 0:e.clientId)||"","f"),n(this,fe,(null==e?void 0:e.authorizeUrl)||r(this,ue,"f")+"oauth2/authorize","f"),n(this,de,(null==e?void 0:e.tokenUrl)||r(this,ue,"f")+"oauth2/token","f"),n(this,pe,(null==e?void 0:e.logoutUrl)||r(this,ue,"f")+"oauth2/logout","f"),n(this,ve,null==e?void 0:e.onUnauthenticated,"f");const i=this.getActiveLogin();i&&(n(this,ge,i.accessToken,"f"),n(this,me,i.refreshToken,"f"),r(this,ie,"m",Ee).call(this).catch(console.log)),r(this,ie,"m",De).call(this)}getBaseUrl(){return r(this,ue,"f")}clear(){r(this,ae,"f").clear(),r(this,ce,"f").clear(),n(this,ge,void 0,"f"),n(this,me,void 0,"f"),n(this,Te,void 0,"f"),n(this,Se,void 0,"f"),this.dispatchEvent({type:"change"})}invalidateUrl(e){e=e.toString(),r(this,ce,"f").delete(e)}invalidateSearches(e){const t="fhir/R4/"+e;for(const e of r(this,ce,"f").keys())(e.endsWith(t)||e.includes(t+"?"))&&r(this,ce,"f").delete(e)}get(e,t={}){if(e=e.toString(),!(null==t?void 0:t.cache)){const t=r(this,ce,"f").get(e);if(t)return t}const n=new _e(r(this,ie,"m",Pe).call(this,"GET",e,t));return r(this,ce,"f").set(e,n),n}post(e,t,n,i={}){return e=e.toString(),t&&r(this,ie,"m",ke).call(this,i,t),n&&r(this,ie,"m",Oe).call(this,i,n),this.invalidateUrl(e),r(this,ie,"m",Pe).call(this,"POST",e,i)}put(e,t,n,i={}){return e=e.toString(),t&&r(this,ie,"m",ke).call(this,i,t),n&&r(this,ie,"m",Oe).call(this,i,n),this.invalidateUrl(e),r(this,ie,"m",Pe).call(this,"PUT",e,i)}patch(e,t,n={}){return e=e.toString(),r(this,ie,"m",ke).call(this,n,t),r(this,ie,"m",Oe).call(this,n,"application/json-patch+json"),this.invalidateUrl(e),r(this,ie,"m",Pe).call(this,"PATCH",e,n)}delete(e,t={}){return e=e.toString(),this.invalidateUrl(e),r(this,ie,"m",Pe).call(this,"DELETE",e,t)}register(e){return t(this,void 0,void 0,(function*(){const t=yield this.post("auth/register",e);yield this.setActiveLogin(t)}))}startLogin(e){return t(this,void 0,void 0,(function*(){return yield r(this,ie,"m",Re).call(this),this.post("auth/login",Object.assign(Object.assign({},e),{clientId:r(this,he,"f"),scope:$e,codeChallengeMethod:"S256",codeChallenge:r(this,ae,"f").getString("codeChallenge")}))}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield r(this,ie,"m",Re).call(this),this.post("auth/google",e)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void r(this,ie,"m",Ue).call(this)}signOutWithRedirect(){window.location.assign(r(this,pe,"f"))}fhirUrl(...e){return new URL(r(this,ue,"f")+"fhir/R4/"+e.join("/"))}fhirSearchUrl(e,t){const r=this.fhirUrl(e);return t&&(r.search=t.toString()),r}search(e,t,r={}){return this.get(this.fhirSearchUrl(e,t),r)}searchOne(e,t,n={}){const i=this.fhirSearchUrl(e,t);i.searchParams.set("_count","1"),i.searchParams.sort();const s=i.toString()+"-searchOne";if(!(null==n?void 0:n.cache)){const e=r(this,ce,"f").get(s);if(e)return e}const o=new _e(this.search(e,i.searchParams,n).then((e=>{var t,r;return null===(r=null===(t=e.entry)||void 0===t?void 0:t[0])||void 0===r?void 0:r.resource})));return r(this,ce,"f").set(s,o),o}searchResources(e,t,n={}){const i=this.fhirSearchUrl(e,t).toString()+"-searchResources";if(!(null==n?void 0:n.cache)){const e=r(this,ce,"f").get(i);if(e)return e}const s=new _e(this.search(e,t,n).then((e=>{var t,r;return null!==(r=null===(t=e.entry)||void 0===t?void 0:t.map((e=>e.resource)))&&void 0!==r?r:[]})));return r(this,ce,"f").set(i,s),s}searchValueSet(e,t,r={}){const n=this.fhirUrl("ValueSet","$expand");return n.searchParams.set("url",e),n.searchParams.set("filter",t),this.get(n.toString(),r)}getCached(e,t){const n=r(this,ce,"f").get(this.fhirUrl(e,t).toString());return n&&!n.isPending()?n.read():void 0}getCachedReference(e){const t=e.reference;if(!t)return;const[r,n]=t.split("/");return r&&n?this.getCached(r,n):void 0}readResource(e,t){return this.get(this.fhirUrl(e,t))}readReference(e){const t=null==e?void 0:e.reference;if(!t)return new _e(Promise.reject(new Error("Missing reference")));const[r,n]=t.split("/");return r&&n?this.readResource(r,n):new _e(Promise.reject(new Error("Invalid reference")))}getSchema(){return r(this,le,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in r(this,le,"f").types)return Promise.resolve(r(this,le,"f"));const t=`{\n StructureDefinitionList(name: "${e}") {\n name,\n description,\n snapshot {\n element {\n id,\n path,\n min,\n max,\n type {\n code,\n targetProfile\n },\n binding {\n valueSet\n },\n definition\n }\n }\n }\n SearchParameterList(base: "${e}", _count: 100) {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(t);for(const e of n.data.StructureDefinitionList)Be(r(this,le,"f"),e);for(const e of n.data.SearchParameterList)Fe(r(this,le,"f"),e);return r(this,le,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,r){return this.get(this.fhirUrl(e,t,"_history",r))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){if(!e.resourceType)throw new Error("Missing resourceType");return this.invalidateSearches(e.resourceType),this.post(this.fhirUrl(e.resourceType),e)}createResourceIfNoneExist(e,r){var n;return t(this,void 0,void 0,(function*(){return null!==(n=yield this.searchOne(e.resourceType,r))&&void 0!==n?n:this.createResource(e)}))}createBinary(e,t,r){const n=this.fhirUrl("Binary");return t&&n.searchParams.set("_filename",t),this.post(n,e,r)}createPdf(e,n,i,s){return t(this,void 0,void 0,(function*(){if(!r(this,oe,"f"))throw new Error("PDF creation not enabled");const t=yield r(this,oe,"f").call(this,e,i,s);return this.createBinary(t,n,"application/pdf")}))}createComment(e,t){const r=this.getProfile();let n,i;return"Encounter"===e.resourceType&&(n=u(e),i=e.subject),"ServiceRequest"===e.resourceType&&(n=e.encounter,i=e.subject),"Patient"===e.resourceType&&(i=u(e)),this.createResource({resourceType:"Communication",basedOn:[u(e)],encounter:n,subject:i,sender:r?u(r):void 0,sent:(new Date).toISOString(),payload:[{contentString:t}]})}updateResource(e){if(!e.resourceType)throw new Error("Missing resourceType");if(!e.id)throw new Error("Missing id");return this.invalidateSearches(e.resourceType),this.put(this.fhirUrl(e.resourceType,e.id),e)}patchResource(e,t,r){return this.invalidateSearches(e),this.patch(this.fhirUrl(e,t),r)}deleteResource(e,t){return this.invalidateSearches(e),this.delete(this.fhirUrl(e,t))}sendEmail(e){return this.post("email/v1/send",e,"application/json")}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return r(this,ae,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){n(this,ge,e.accessToken,"f"),n(this,me,e.refreshToken,"f"),n(this,Te,void 0,"f"),n(this,Se,void 0,"f"),r(this,ae,"f").setObject("activeLogin",e),r(this,ie,"m",be).call(this,e),r(this,ce,"f").clear(),n(this,ye,void 0,"f"),yield r(this,ie,"m",Ee).call(this)}))}getAccessToken(){return r(this,ge,"f")}setAccessToken(e){n(this,ge,e,"f"),n(this,me,void 0,"f"),n(this,Te,void 0,"f"),n(this,Se,void 0,"f")}getLogins(){var e;return null!==(e=r(this,ae,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!r(this,we,"f")}getProfile(){return r(this,Te,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return r(this,we,"f")&&(yield r(this,we,"f")),this.getProfile()}))}getUserConfiguration(){return r(this,Se,"f")}download(e,n={}){return t(this,void 0,void 0,(function*(){r(this,ye,"f")&&(yield r(this,ye,"f")),r(this,ie,"m",Ae).call(this,n);return(yield r(this,se,"f").call(this,e.toString(),n)).blob()}))}processCode(e){if(!r(this,ae,"f").getString("pkceState"))throw this.clear(),new Error("Invalid PCKE state");const t=r(this,ae,"f").getString("codeVerifier");if(!t)throw this.clear(),new Error("Invalid PCKE code verifier");const n=new URLSearchParams;return n.set("grant_type","authorization_code"),n.set("client_id",r(this,he,"f")),n.set("code_verifier",t),n.set("code",e),n.set("redirect_uri",He()),r(this,ie,"m",Ce).call(this,n)}startClientLogin(e,n){return t(this,void 0,void 0,(function*(){const t=new URLSearchParams;return t.set("grant_type","client_credentials"),t.set("client_id",e),t.set("client_secret",n),r(this,ie,"m",Ce).call(this,t)}))}},e.OperationOutcomeError=Y,e.ReadablePromise=_e,e.SEGMENT_SEPARATOR="\r",e.accessDenied=G,e.allOk=Q,e.arrayBufferToBase64=A,e.arrayBufferToHex=P,e.assertOk=function(e,t){if(!X(e)||void 0===t)throw new Y(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=Qe,e.calculateAge=v,e.calculateAgeString=function(e,t){const{years:r,months:n,days:i}=v(e,t);return r>=2?r.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":i.toString().padStart(3,"0")+"D"},e.capitalize=O,e.createReference=u,e.createSchema=Ne,e.createTypeSchema=We,e.created=$,e.deepEquals=T,e.evalFhirPath=function(t,r){Array.isArray(r)||(r=[r]);const n=Array.isArray(r)?r:[r];for(let t=0;t<n.length;t++){const r=n[t];"object"==typeof r&&"type"in r&&"value"in r||(n[t]={type:e.PropertyType.BackboneElement,value:r})}return wr(t).eval(n).map((e=>e.value))},e.findObservationInterval=function(e,t,r,n){var i;return null===(i=e.qualifiedInterval)||void 0===i?void 0:i.find((i=>{var s;return function(e,t){return function(e,t){return!e.gender||e.gender===t.gender}(e,t)&&function(e,t){return!e.age||k(v(t.birthDate).years,e.age)}(e,t)}(i,t)&&function(e,t,r){return!!e.range&&k(t,e.range,r)}(i,r,null===(s=e.quantitativeDetails)||void 0===s?void 0:s.decimalPrecision)&&(void 0===n||i.category===n)}))},e.formatAddress=function(e,t){const r=[];return e.line&&r.push(...e.line),e.city&&r.push(e.city),e.state&&r.push(e.state),e.postalCode&&r.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&r.push("["+e.use+"]"),r.join(", ").trim()},e.formatFamilyName=function(e){return e.family||""},e.formatGivenName=function(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()},e.formatHumanName=c,e.formatSearchQuery=function(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=Pr.includes(e.operator)?":"+e.operator:"",r=Ar.includes(e.operator)?e.operator:"";return`${e.code}${t}=${r}${encodeURIComponent(e.value)}`}(e)))),e.sortRules&&e.sortRules.length>0&&t.push(function(e){if(!e||0===e.length)return"";return"_sort="+e.map((e=>e.descending?"-"+e.code:e.code)).join(",")}(e.sortRules)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+e.total),0===t.length?"":(t.sort(),"?"+t.join("&"))},e.getCodeBySystem=function(e,t){var r,n;return null===(n=null===(r=null==e?void 0:e.coding)||void 0===r?void 0:r.find((e=>e.system===t)))||void 0===n?void 0:n.code},e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=d,e.getExpressionForResourceType=kr,e.getExtensionValue=function(e,...t){var r;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(r=null==n?void 0:n.extension)||void 0===r?void 0:r.find((r=>r.url===t[e]));return null==n?void 0:n.valueString},e.getIdentifier=function(e,t){const r=e.identifier;if(!r)return;const n=Array.isArray(r)?r:[r];for(const e of n)if(e.system===t)return e.value},e.getImageSrc=function(e){if(f(e)){const t=e.photo;if(t)for(const e of t){const t=p(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=p(e.photo);if(t)return t}},e.getPropertyDisplayName=function(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(O).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getQuestionnaireAnswers=function(e){const t={};return g(e.item,t),t},e.getReferenceString=h,e.getSearchParameterDetails=function(t,r,n){var i,s,o,a;if("_lastUpdated"===n.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const l=n.code.split("-").reduce(((e,t,r)=>e+(r?O(t):t)),""),c=null===(i=kr(r,n.expression))||void 0===i?void 0:i.split(".");if(!c)return{columnName:l,type:e.SearchParameterType.TEXT};let u,h,f=r,d=!1;for(let r=1;r<c.length;r++){const n=c[r];if(u=null===(o=null===(s=t.types[f])||void 0===s?void 0:s.properties)||void 0===o?void 0:o[n],!u)return{columnName:l,type:e.SearchParameterType.TEXT,array:d};if("*"===u.max&&(d=!0),h=null===(a=u.type)||void 0===a?void 0:a[0].code,!h)return{columnName:l,type:e.SearchParameterType.TEXT,array:d};r<c.length-1&&("Element"===h||"BackboneElement"===h?f+=O(n):f=h)}const p=function(t,r){let n=e.SearchParameterType.TEXT;switch(t.type){case"date":n=r===e.PropertyType.dateTime||r===e.PropertyType.instant?e.SearchParameterType.DATETIME:e.SearchParameterType.DATE;break;case"number":n=e.SearchParameterType.NUMBER;break;case"quantity":n=e.SearchParameterType.QUANTITY;break;case"reference":n=e.SearchParameterType.REFERENCE;break;case"token":"boolean"===r&&(n=e.SearchParameterType.BOOLEAN)}return n}(n,h);return{columnName:l,type:p,elementDefinition:u,array:d}},e.getStatus=function(e){return e.id===I?200:e.id===j?201:e.id===W?304:e.id===F?403:e.id===B?404:e.id===N?410:400},e.gone=z,e.indexSearchParameter=Fe,e.indexStructureDefinition=Be,e.isGone=function(e){return e.id===N},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===B},e.isObject=S,e.isOk=X,e.isProfileResource=f,e.isStringArray=b,e.isUUID=function(e){return!!e.match(/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i)},e.matchesRange=k,e.notFound=q,e.notModified=H,e.parseFhirPath=wr,e.parseSearchDefinition=function(t){const r=new URL(t,"https://example.com/"),n=r.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let i,s,o,a,l,c;return new URLSearchParams(r.search).forEach(((t,r)=>{"_fields"===r?o=t.split(","):"_offset"===r?a=parseInt(t):"_count"===r?l=parseInt(t):"_total"===r?c=t:"_sort"===r?(s=s||[],s.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(i=i||[],i.push(function(t,r){let n=t,i=e.Operator.EQUALS;for(const e of Pr){const t=n.indexOf(":"+e);-1!==t&&(i=e,n=n.substring(0,t))}for(const e of Ar)r.match(new RegExp("^"+e+"\\d"))&&(i=e,r=r.substring(e.length));return{code:n,operator:i,value:r}}(r,t)))})),{resourceType:n,filters:i,fields:o,offset:a,count:l,total:c,sortRules:s}},e.preciseEquals=x,e.preciseGreaterThan=U,e.preciseGreaterThanOrEquals=C,e.preciseLessThan=R,e.preciseLessThanOrEquals=M,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.setCodeBySystem=function(e,t,r){var n,i;e.coding||(e.coding=[]);const s=null===(n=e.coding)||void 0===n?void 0:n.find((e=>e.system===t));s?s.code=r:null===(i=e.coding)||void 0===i||i.push({system:t,code:r})},e.stringify=m,e.tokenize=Zt,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.core={}))}(this,(function(e){"use strict";function t(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))}function r(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function n(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r}var i,s,o,a;class l{constructor(e=10){i.add(this),s.set(this,void 0),o.set(this,void 0),n(this,s,e,"f"),n(this,o,new Map,"f")}clear(){r(this,o,"f").clear()}get(e){const t=r(this,o,"f").get(e);return t&&(r(this,o,"f").delete(e),r(this,o,"f").set(e,t)),t}set(e,t){r(this,o,"f").has(e)?r(this,o,"f").delete(e):r(this,o,"f").size>=r(this,s,"f")&&r(this,o,"f").delete(r(this,i,"m",a).call(this)),r(this,o,"f").set(e,t)}delete(e){r(this,o,"f").delete(e)}keys(){return r(this,o,"f").keys()}}function c(e,t){const r=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&r.push(...e.prefix),e.given&&r.push(...e.given),e.family&&r.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&r.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&r.push("["+e.use+"]"),r.join(" ").trim()}function u(e){const t=h(e),r=d(e);return r===t?{reference:t}:{reference:t,display:r}}function h(e){return e.resourceType+"/"+e.id}function f(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function d(e){var t,r;if(f(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return c(t[0]);return}(e);if(t)return t}if("Device"===e.resourceType){const t=function(e){const t=e.deviceName;if(t&&t.length>0)return t[0].name;return}(e);if(t)return t}return"Observation"===e.resourceType&&"code"in e&&(null===(t=e.code)||void 0===t?void 0:t.text)?null===(r=e.code)||void 0===r?void 0:r.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:h(e)}function p(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function v(e,t){const r=new Date(e);r.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const i=r.getUTCFullYear(),s=r.getUTCMonth(),o=r.getUTCDate(),a=n.getUTCFullYear(),l=n.getUTCMonth(),c=n.getUTCDate();let u=a-i;(l<s||l===s&&c<o)&&u--;let h=12*a+l-(12*i+s);c<o&&h--;return{years:u,months:h,days:Math.floor((n.getTime()-r.getTime())/864e5)}}function g(e,t){if(e)for(const r of e)r.linkId&&r.answer&&r.answer.length>0&&(t[r.linkId]=r.answer[0]),g(r.item,t)}function m(e,t){return JSON.stringify(e,y,t?2:void 0)}function y(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&w(t)?void 0:t}function w(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function T(e,t,r){return e===t||(!(!w(e)||!w(t))||!w(e)&&!w(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!T(e[r],t[r]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(S(e)&&S(t)?function(e,t,r){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===r&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const r of n){if(!T(e[r],t[r],r))return!1}return!0}(e,t,r):(S(e)||S(t),!1))))}function S(e){return null!==e&&"object"==typeof e}function b(e){return e.every((e=>"string"==typeof e))}s=new WeakMap,o=new WeakMap,i=new WeakSet,a=function(){return r(this,o,"f").keys().next().value};const E=[];for(let e=0;e<256;e++)E.push(e.toString(16).padStart(2,"0"));function P(e){const t=new Uint8Array(e),r=new Array(t.length);for(let e=0;e<t.length;e++)r[e]=E[t[e]];return r.join("")}function A(e){const t=new Uint8Array(e),r=[];for(let e=0;e<t.length;e++)r[e]=String.fromCharCode(t[e]);return window.btoa(r.join(""))}function O(e){return e.charAt(0).toUpperCase()+e.substring(1)}function k(e,t,r){var n,i;return(void 0===(null===(n=t.low)||void 0===n?void 0:n.value)||C(e,t.low.value,r))&&(void 0===(null===(i=t.high)||void 0===i?void 0:i.value)||M(e,t.high.value,r))}function x(e,t,r){return r?Math.abs(e-t)<Math.pow(10,-r):e===t}function R(e,t,r){return r?e<t&&Math.abs(e-t)>Math.pow(10,-r):e<t}function U(e,t,r){return r?e>t&&Math.abs(e-t)>Math.pow(10,-r):e>t}function M(e,t,r){return R(e,t,r)||x(e,t,r)}function C(e,t,r){return U(e,t,r)||x(e,t,r)}function D(){const e=new Uint32Array(28);return crypto.getRandomValues(e),P(e.buffer)}var L,_,I,j,N,W,B,F,Q,$,H,q,z,G,X,Y,V,K,J,Z,ee,te,re,ne,ie,se,oe,ae,le,ce,ue,he,fe,de,pe,ve,ge,me,ye,we,Te,Se,be;function Ee(e){const t=function(e){if("undefined"!=typeof window)return window.atob(e);if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("binary");throw new Error("Unable to decode base64")}(e.replace(/-/g,"+").replace(/_/g,"/")),r=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(r);return JSON.parse(n)}L=new WeakMap;class Pe{constructor(e){this[W]="ReadablePromise",_.set(this,void 0),I.set(this,"pending"),j.set(this,void 0),N.set(this,void 0),n(this,_,e.then((e=>(n(this,I,"success","f"),n(this,j,e,"f"),e)),(e=>{throw n(this,I,"error","f"),n(this,N,e,"f"),e})),"f")}isPending(){return"pending"===r(this,I,"f")}read(){switch(r(this,I,"f")){case"pending":throw r(this,_,"f");case"error":throw r(this,N,"f");default:return r(this,j,"f")}}then(e,t){return r(this,_,"f").then(e,t)}catch(e){return r(this,_,"f").catch(e)}finally(e){return r(this,_,"f").finally(e)}}_=new WeakMap,I=new WeakMap,j=new WeakMap,N=new WeakMap,W=Symbol.toStringTag;class Ae{constructor(){B.set(this,void 0),n(this,B,"undefined"!=typeof localStorage?localStorage:new Oe,"f")}clear(){r(this,B,"f").clear()}getString(e){return r(this,B,"f").getItem(e)||void 0}setString(e,t){t?r(this,B,"f").setItem(e,t):r(this,B,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?m(t):void 0)}}B=new WeakMap;class Oe{constructor(){F.set(this,void 0),n(this,F,new Map,"f")}get length(){return r(this,F,"f").size}clear(){r(this,F,"f").clear()}getItem(e){var t;return null!==(t=r(this,F,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?r(this,F,"f").set(e,t):r(this,F,"f").delete(e)}removeItem(e){r(this,F,"f").delete(e)}key(e){return Array.from(r(this,F,"f").keys())[e]}}function ke(){return{types:{}}}function xe(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function Re(e,t){var r;const n=t.name;if(!n)return;e.types[n]=xe(n,t.description);const i=null===(r=t.snapshot)||void 0===r?void 0:r.element;if(i){const t=i.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var r,n;const i=t.path,s=null===(n=null===(r=t.type)||void 0===r?void 0:r[0])||void 0===n?void 0:n.code;if("Element"!==s&&"BackboneElement"!==s)return;const o=i.split("."),a=Me(o);a in e.types||(e.types[a]=xe(a,t.definition),e.types[a].parentType=Me(o.slice(0,o.length-1)))}(e,t))),t.forEach((t=>function(e,t){const r=t.path.split(".");if(1===r.length)return;const n=Me(r.slice(0,r.length-1)),i=e.types[n],s=r[r.length-1];i.properties[s]=t}(e,t)))}}function Ue(e,t){if(t.base)for(const r of t.base){const n=e.types[r];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function Me(e){return e.map(O).join("")}F=new WeakMap,e.PropertyType=void 0,(Q=e.PropertyType||(e.PropertyType={})).Address="Address",Q.Age="Age",Q.Annotation="Annotation",Q.Attachment="Attachment",Q.BackboneElement="BackboneElement",Q.CodeableConcept="CodeableConcept",Q.Coding="Coding",Q.ContactDetail="ContactDetail",Q.ContactPoint="ContactPoint",Q.Contributor="Contributor",Q.Count="Count",Q.DataRequirement="DataRequirement",Q.Distance="Distance",Q.Dosage="Dosage",Q.Duration="Duration",Q.Expression="Expression",Q.Extension="Extension",Q.HumanName="HumanName",Q.Identifier="Identifier",Q.MarketingStatus="MarketingStatus",Q.Meta="Meta",Q.Money="Money",Q.Narrative="Narrative",Q.ParameterDefinition="ParameterDefinition",Q.Period="Period",Q.Population="Population",Q.ProdCharacteristic="ProdCharacteristic",Q.ProductShelfLife="ProductShelfLife",Q.Quantity="Quantity",Q.Range="Range",Q.Ratio="Ratio",Q.Reference="Reference",Q.RelatedArtifact="RelatedArtifact",Q.Resource="Resource",Q.SampledData="SampledData",Q.Signature="Signature",Q.SubstanceAmount="SubstanceAmount",Q.SystemString="http://hl7.org/fhirpath/System.String",Q.Timing="Timing",Q.TriggerDefinition="TriggerDefinition",Q.UsageContext="UsageContext",Q.base64Binary="base64Binary",Q.boolean="boolean",Q.canonical="canonical",Q.code="code",Q.date="date",Q.dateTime="dateTime",Q.decimal="decimal",Q.id="id",Q.instant="instant",Q.integer="integer",Q.markdown="markdown",Q.oid="oid",Q.positiveInt="positiveInt",Q.string="string",Q.time="time",Q.unsignedInt="unsignedInt",Q.uri="uri",Q.url="url",Q.uuid="uuid";const Ce="launch/patient openid fhirUser offline_access user/*.*";function De(){return window.location.protocol+"//"+window.location.host+"/"}function Le(t){return[{type:e.PropertyType.boolean,value:t}]}function _e(t){return Number.isSafeInteger(t)?{type:e.PropertyType.integer,value:t}:"number"==typeof t?{type:e.PropertyType.decimal,value:t}:"boolean"==typeof t?{type:e.PropertyType.boolean,value:t}:"string"==typeof t?{type:e.PropertyType.string,value:t}:He(t)?{type:e.PropertyType.Quantity,value:t}:{type:e.PropertyType.BackboneElement,value:t}}function Ie(e){return 0!==e.length&&!!e[0].value}function je(e){const t=[];for(const r of e){let e=!1;for(const n of t)if(Ie(Be(r,n))){e=!0;break}e||t.push(r)}return t}function Ne(e){return Le(!Ie(e))}function We(e,t){return 0===e.length||0===t.length?[]:e.length!==t.length?Le(!1):Le(e.every(((e,r)=>Ie(Be(e,t[r])))))}function Be(e,t){const r=e.value,n=t.value;return"number"==typeof r&&"number"==typeof n?Le(Math.abs(r-n)<1e-8):He(r)&&He(n)?Le(qe(r,n)):Le("object"==typeof r&&"object"==typeof n?ze(e,t):r===n)}function Fe(e,t){return 0===e.length&&0===t.length?Le(!0):e.length!==t.length?Le(!1):(e.sort(Qe),t.sort(Qe),Le(e.every(((e,r)=>Ie(function(e,t){const r=e.value,n=t.value;if("number"==typeof r&&"number"==typeof n)return Le(Math.abs(r-n)<.01);if(He(r)&&He(n))return Le(qe(r,n));if("object"==typeof r&&"object"==typeof n)return Le(ze(r,n));if("string"==typeof r&&"string"==typeof n)return Le(r.toLowerCase()===n.toLowerCase());return Le(r===n)}(e,t[r]))))))}function Qe(e,t){const r=e.value,n=t.value;return"number"==typeof r&&"number"==typeof n?r-n:"string"==typeof r&&"string"==typeof n?r.localeCompare(n):0}function $e(e,t){const{value:r}=e;if(null==r)return!1;switch(t){case"Boolean":return"boolean"==typeof r;case"Decimal":case"Integer":return"number"==typeof r;case"Date":return"string"==typeof r&&!!r.match(/^\d{4}(-\d{2}(-\d{2})?)?/);case"DateTime":return"string"==typeof r&&!!r.match(/^\d{4}(-\d{2}(-\d{2})?)?T/);case"Time":return"string"==typeof r&&!!r.match(/^T\d/);case"Period":return!(!(n=r)||"object"!=typeof n||!("start"in n));case"Quantity":return He(r);default:return"object"==typeof r&&(null==r?void 0:r.resourceType)===t}var n}function He(e){return!(!e||"object"!=typeof e||!("value"in e)||"number"!=typeof e.value)}function qe(e,t){return Math.abs(e.value-t.value)<.01&&(e.unit===t.unit||e.code===t.code||e.unit===t.code||e.code===t.unit)}function ze(e,t){const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const n of r){const r=e[n],i=t[n];if(Ge(r)&&Ge(i)){if(!ze(r,i))return!1}else if(r!==i)return!1}return!0}function Ge(e){return null!==e&&"object"==typeof e}var Xe,Ye;H=new WeakMap,q=new WeakMap,z=new WeakMap,G=new WeakMap,X=new WeakMap,Y=new WeakMap,V=new WeakMap,K=new WeakMap,J=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,re=new WeakMap,ne=new WeakMap,ie=new WeakMap,se=new WeakMap,oe=new WeakMap,ae=new WeakMap,$=new WeakSet,le=function(e){const t=this.getLogins().filter((t=>{var r,n;return(null===(r=t.profile)||void 0===r?void 0:r.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));t.push(e),r(this,z,"f").setObject("logins",t)},ce=function(){return t(this,void 0,void 0,(function*(){return n(this,se,new Promise(((e,t)=>{this.get("auth/me").then((t=>{n(this,se,void 0,"f"),n(this,oe,t.profile,"f"),n(this,ae,t.config,"f"),this.dispatchEvent({type:"change"}),e(r(this,oe,"f"))})).catch(t)})),"f"),r(this,se,"f")}))},ue=function(e,t){if(r(this,Y,"f")<=0||"no-cache"===(null==t?void 0:t.cache)||"reload"===(null==t?void 0:t.cache))return;const n=r(this,X,"f").get(e);return!n||n.requestTime+r(this,Y,"f")<Date.now()?void 0:n},he=function(e,t){r(this,Y,"f")>0&&r(this,X,"f").set(e,{requestTime:Date.now(),value:t})},fe=function(e,n,i={}){return t(this,void 0,void 0,(function*(){r(this,ie,"f")&&(yield r(this,ie,"f")),n.startsWith("http")||(n=r(this,V,"f")+n),i.method=e,r(this,$,"m",de).call(this,i);const t=yield r(this,H,"f").call(this,n,i);if(401===t.status)return r(this,$,"m",ge).call(this,e,n,i);if(204===t.status||304===t.status)return;const s=yield t.json();if(t.status>=400)throw s;return s}))},de=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),r(this,re,"f")&&(t.Authorization="Bearer "+r(this,re,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},pe=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},ve=function(e,t){"string"==typeof t||"undefined"!=typeof Blob&&t instanceof Blob||"undefined"!=typeof File&&t instanceof File||"undefined"!=typeof Uint8Array&&t instanceof Uint8Array?e.body=t:t&&(e.body=JSON.stringify(t))},ge=function(e,n,i){return t(this,void 0,void 0,(function*(){return r(this,$,"m",we).call(this).then((()=>r(this,$,"m",fe).call(this,e,n,i))).catch((e=>(this.clear(),r(this,te,"f")&&r(this,te,"f").call(this),Promise.reject(e))))}))},me=function(){return t(this,void 0,void 0,(function*(){const e=D();r(this,z,"f").setString("pkceState",e);const n=D();r(this,z,"f").setString("codeVerifier",n);const i=A(yield function(e){return t(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");r(this,z,"f").setString("codeChallenge",i)}))},ye=function(){r(this,$,"m",me).call(this);const e=new URL(r(this,J,"f"));e.searchParams.set("response_type","code"),e.searchParams.set("state",r(this,z,"f").getString("pkceState")),e.searchParams.set("client_id",r(this,K,"f")),e.searchParams.set("redirect_uri",De()),e.searchParams.set("scope",Ce),e.searchParams.set("code_challenge_method","S256"),e.searchParams.set("code_challenge",r(this,z,"f").getString("codeChallenge")),window.location.assign(e.toString())},we=function(){return t(this,void 0,void 0,(function*(){if(r(this,ie,"f"))return r(this,ie,"f");if(!r(this,ne,"f"))throw this.clear(),new Error("Invalid refresh token");const e=new URLSearchParams;e.set("grant_type","refresh_token"),e.set("client_id",r(this,K,"f")),e.set("refresh_token",r(this,ne,"f")),n(this,ie,r(this,$,"m",Te).call(this,e),"f"),yield r(this,ie,"f")}))},Te=function(e){return t(this,void 0,void 0,(function*(){return r(this,H,"f").call(this,r(this,Z,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>{if(!e.ok)throw new Error("Failed to fetch tokens");return e.json()})).then((e=>r(this,$,"m",Se).call(this,e))).then((()=>this.getProfile()))}))},Se=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,n=function(e){const[t,r,n]=e.split(".");return Ee(r)}(t);if(Date.now()>=1e3*n.exp)throw this.clear(),new Error("Token expired");if(r(this,K,"f")&&n.client_id!==r(this,K,"f"))throw this.clear(),new Error("Token was not issued for this audience");yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile})}))},be=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class Ve{constructor(e,t){this.original=e,this.child=t}eval(e){try{return e.length>0?e.map((e=>this.child.eval([e]))).flat():this.child.eval(e)}catch(e){throw new Error(`FhirPathError on "${this.original}": ${e}`)}}}class Ke{constructor(e){this.value=e}eval(){return[this.value]}}class Je{constructor(e){this.name=e,Xe.add(this)}eval(e){return"$this"===this.name?e:e.map((e=>r(this,Xe,"m",Ye).call(this,e))).flat().filter((e=>void 0!==(null==e?void 0:e.value)))}}Xe=new WeakSet,Ye=function(e){const t=e.value;if(!t||"object"!=typeof t)return;if("resourceType"in t&&t.resourceType===this.name)return e;let r;if(this.name in t)r=t[this.name];else{const e=Object.keys(t).find((e=>e.startsWith(this.name)));e&&(r=t[e])}return void 0!==r?Array.isArray(r)?r.map(_e):[_e(r)]:void 0};class Ze{eval(){return[]}}class et{constructor(e,t){this.child=e,this.impl=t}eval(e){return this.impl(this.child.eval(e))}}class tt{constructor(e,t){this.left=e,this.right=t}eval(e){return this.left.eval(e)}}class rt{constructor(e,t,r){this.left=e,this.right=t,this.impl=r}eval(t){const r=this.left.eval(t);if(1!==r.length)return[];const n=this.right.eval(t);if(1!==n.length)return[];const i=r[0].value,s=n[0].value,o=He(i)?i.value:i,a=He(s)?s.value:s,l=this.impl(o,a);return"boolean"==typeof l?Le(l):He(i)?[{type:e.PropertyType.Quantity,value:Object.assign(Object.assign({},i),{value:l})}]:[_e(l)]}}class nt{constructor(e,t){this.left=e,this.right=t}eval(t){const r=[...this.left.eval(t),...this.right.eval(t)];return r.length>0&&r.every((e=>"string"==typeof e.value))?[{type:e.PropertyType.string,value:r.map((e=>e.value)).join("")}]:r}}class it{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e),r=this.right.eval(e);return Le(t.some((e=>e.value===r[0].value)))}}class st{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);return Le(this.right.eval(e).some((e=>e.value===t[0].value)))}}class ot{constructor(e,t){this.left=e,this.right=t}eval(e){return this.right.eval(this.left.eval(e))}}class at{constructor(e,t){this.left=e,this.right=t}eval(e){return je([...this.left.eval(e),...this.right.eval(e)])}}class lt{constructor(e,t){this.left=e,this.right=t}eval(e){return We(this.left.eval(e),this.right.eval(e))}}class ct{constructor(e,t){this.left=e,this.right=t}eval(e){return Ne(We(this.left.eval(e),this.right.eval(e)))}}class ut{constructor(e,t){this.left=e,this.right=t}eval(e){return Fe(this.left.eval(e),this.right.eval(e))}}class ht{constructor(e,t){this.left=e,this.right=t}eval(e){return Ne(Fe(this.left.eval(e),this.right.eval(e)))}}class ft{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);if(1!==t.length)return[];const r=this.right.name;return Le($e(t[0],r))}}class dt{constructor(e,t){this.left=e,this.right=t}eval(e){var t,r,n,i;const s=this.left.eval(e),o=this.right.eval(e);return!0===(null===(t=s[0])||void 0===t?void 0:t.value)&&!0===(null===(r=o[0])||void 0===r?void 0:r.value)?Le(!0):!1===(null===(n=s[0])||void 0===n?void 0:n.value)||!1===(null===(i=o[0])||void 0===i?void 0:i.value)?Le(!1):[]}}class pt{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e);if(Ie(t))return t;const r=this.right.eval(e);return Ie(r)?r:[]}}class vt{constructor(e,t){this.left=e,this.right=t}eval(e){const t=this.left.eval(e),r=this.right.eval(e);if(0===t.length&&0===r.length)return[];const n=0===t.length?null:t[0].value,i=0===r.length?null:r[0].value;return!0===n&&!0!==i||!0!==n&&!0===i?Le(!0):!0===n&&!0===i||!1===n&&!1===i?Le(!1):[]}}class gt{constructor(e,t,r){this.name=e,this.args=t,this.impl=r}eval(e){return this.impl(e,...this.args)}}class mt{constructor(e,t){this.left=e,this.expr=t}eval(e){const t=this.expr.eval(e);if(1!==t.length)return[];const r=t[0].value;if("number"!=typeof r)throw new Error("Invalid indexer expression: should return integer}");const n=this.left.eval(e);return r in n?[n[r]]:[]}}function yt(e){if(e.startsWith("T"))return e+"T00:00:00.000Z".substring(e.length);if(e.length<=10)return e;try{return new Date(e).toISOString()}catch(t){return e}}const wt=()=>[],Tt={empty:e=>Le(0===e.length),exists:(e,t)=>Le(t?e.filter((e=>Ie(t.eval([e])))).length>0:e.length>0),all:(e,t)=>Le(e.every((e=>Ie(t.eval([e]))))),allTrue:e=>{for(const t of e)if(!t.value)return Le(!1);return Le(!0)},anyTrue:e=>{for(const t of e)if(t.value)return Le(!0);return Le(!1)},allFalse:e=>{for(const t of e)if(t.value)return Le(!1);return Le(!0)},anyFalse:e=>{for(const t of e)if(!t.value)return Le(!0);return Le(!1)},subsetOf:wt,supersetOf:wt,count:t=>[{type:e.PropertyType.integer,value:t.length}],distinct:e=>{const t=[];for(const r of e)t.some((e=>e.value===r.value))||t.push(r);return t},isDistinct:e=>Le(e.length===Tt.distinct(e).length),where:(e,t)=>e.filter((e=>Ie(t.eval([e])))),select:(e,t)=>e.map((e=>t.eval([e]))).flat(),repeat:wt,ofType:wt,single:e=>{if(e.length>1)throw new Error("Expected input length one for single()");return 0===e.length?[]:e.slice(0,1)},first:e=>0===e.length?[]:e.slice(0,1),last:e=>0===e.length?[]:e.slice(e.length-1,e.length),tail:e=>0===e.length?[]:e.slice(1,e.length),skip:(e,t)=>{var r;const n=null===(r=t.eval([])[0])||void 0===r?void 0:r.value;if("number"!=typeof n)throw new Error("Expected a number for skip(num)");return n>=e.length?[]:n<=0?e:e.slice(n,e.length)},take:(e,t)=>{var r;const n=null===(r=t.eval([])[0])||void 0===r?void 0:r.value;if("number"!=typeof n)throw new Error("Expected a number for take(num)");return n>=e.length?e:n<=0?[]:e.slice(0,n)},intersect:(e,t)=>{if(!t)return e;const r=t.eval([]),n=[];for(const t of e)!n.some((e=>e.value===t.value))&&r.some((e=>e.value===t.value))&&n.push(t);return n},exclude:(e,t)=>{if(!t)return e;const r=t.eval([]),n=[];for(const t of e)r.some((e=>e.value===t.value))||n.push(t);return n},union:(e,t)=>{if(!t)return e;const r=t.eval([]);return je([...e,...r])},combine:(e,t)=>{if(!t)return e;const r=t.eval([]);return[...e,...r]},iif:(e,t,r,n)=>{const i=t.eval(e);if(i.length>1||1===i.length&&"boolean"!=typeof i[0].value)throw new Error("Expected criterion to evaluate to a Boolean");return Ie(i)?r.eval(e):n?n.eval(e):[]},toBoolean:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);if("boolean"==typeof r)return[{type:e.PropertyType.boolean,value:r}];if("number"==typeof r&&(0===r||1===r))return Le(!!r);if("string"==typeof r){const e=r.toLowerCase();if(["true","t","yes","y","1","1.0"].includes(e))return Le(!0);if(["false","f","no","n","0","0.0"].includes(e))return Le(!1)}return[]},convertsToBoolean:e=>0===e.length?[]:Le(1===Tt.toBoolean(e).length),toInteger:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return"number"==typeof r?[{type:e.PropertyType.integer,value:r}]:"string"==typeof r&&r.match(/^[+-]?\d+$/)?[{type:e.PropertyType.integer,value:parseInt(r,10)}]:"boolean"==typeof r?[{type:e.PropertyType.integer,value:r?1:0}]:[]},convertsToInteger:e=>0===e.length?[]:Le(1===Tt.toInteger(e).length),toDate:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return"string"==typeof r&&r.match(/^\d{4}(-\d{2}(-\d{2})?)?/)?[{type:e.PropertyType.date,value:yt(r)}]:[]},convertsToDate:e=>0===e.length?[]:Le(1===Tt.toDate(e).length),toDateTime:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return"string"==typeof r&&r.match(/^\d{4}(-\d{2}(-\d{2})?)?/)?[{type:e.PropertyType.dateTime,value:yt(r)}]:[]},convertsToDateTime:e=>0===e.length?[]:Le(1===Tt.toDateTime(e).length),toDecimal:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return"number"==typeof r?[{type:e.PropertyType.decimal,value:r}]:"string"==typeof r&&r.match(/^-?\d{1,9}(\.\d{1,9})?$/)?[{type:e.PropertyType.decimal,value:parseFloat(r)}]:"boolean"==typeof r?[{type:e.PropertyType.decimal,value:r?1:0}]:[]},convertsToDecimal:e=>0===e.length?[]:Le(1===Tt.toDecimal(e).length),toQuantity:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return He(r)?[{type:e.PropertyType.Quantity,value:r}]:"number"==typeof r?[{type:e.PropertyType.Quantity,value:{value:r,unit:"1"}}]:"string"==typeof r&&r.match(/^-?\d{1,9}(\.\d{1,9})?/)?[{type:e.PropertyType.Quantity,value:{value:parseFloat(r),unit:"1"}}]:"boolean"==typeof r?[{type:e.PropertyType.Quantity,value:{value:r?1:0,unit:"1"}}]:[]},convertsToQuantity:e=>0===e.length?[]:Le(1===Tt.toQuantity(e).length),toString:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);return null==r?[]:He(r)?[{type:e.PropertyType.string,value:`${r.value} '${r.unit}'`}]:[{type:e.PropertyType.string,value:r.toString()}]},convertsToString:e=>0===e.length?[]:Le(1===Tt.toString(e).length),toTime:t=>{if(0===t.length)return[];const[{value:r}]=Et(t,1);if("string"==typeof r){const t=r.match(/^T?(\d{2}(:\d{2}(:\d{2})?)?)/);if(t)return[{type:e.PropertyType.time,value:yt("T"+t[1])}]}return[]},convertsToTime:e=>0===e.length?[]:Le(1===Tt.toTime(e).length),indexOf:(e,t)=>St(((e,t)=>e.indexOf(t)),e,t),substring:(e,t,r)=>St(((e,t,r)=>{const n=t,i=r?n+r:e.length;return n<0||n>=e.length?void 0:e.substring(n,i)}),e,t,r),startsWith:(e,t)=>St(((e,t)=>e.startsWith(t)),e,t),endsWith:(e,t)=>St(((e,t)=>e.endsWith(t)),e,t),contains:(e,t)=>St(((e,t)=>e.includes(t)),e,t),upper:e=>St((e=>e.toUpperCase()),e),lower:e=>St((e=>e.toLowerCase()),e),replace:(e,t,r)=>St(((e,t,r)=>e.replaceAll(t,r)),e,t,r),matches:(e,t)=>St(((e,t)=>!!e.match(t)),e,t),replaceMatches:(e,t,r)=>St(((e,t,r)=>e.replaceAll(t,r)),e,t,r),length:e=>St((e=>e.length),e),toChars:e=>St((e=>e?e.split(""):void 0),e),abs:e=>bt(Math.abs,e),ceiling:e=>bt(Math.ceil,e),exp:e=>bt(Math.exp,e),floor:e=>bt(Math.floor,e),ln:e=>bt(Math.log,e),log:(e,t)=>bt(((e,t)=>Math.log(e)/Math.log(t)),e,t),power:(e,t)=>bt(Math.pow,e,t),round:e=>bt(Math.round,e),sqrt:e=>bt(Math.sqrt,e),truncate:e=>bt((e=>0|e),e),children:wt,descendants:wt,trace:(e,t)=>(console.log("trace",e,t),e),now:()=>[{type:e.PropertyType.dateTime,value:(new Date).toISOString()}],timeOfDay:()=>[{type:e.PropertyType.time,value:(new Date).toISOString().substring(11)}],today:()=>[{type:e.PropertyType.date,value:(new Date).toISOString().substring(0,10)}],between:(t,r,n,i)=>{const s=Tt.toDateTime(r.eval(t));if(0===s.length)throw new Error("Invalid start date");const o=Tt.toDateTime(n.eval(t));if(0===o.length)throw new Error("Invalid end date");const a=i.eval(t)[0].value;if("years"!==a&&"months"!==a&&"days"!==a)throw new Error("Invalid units");const l=v(s[0].value,o[0].value);return[{type:e.PropertyType.Quantity,value:{value:l[a],unit:a}}]},is:(t,r)=>{let n="";return r instanceof Je?n=r.name:r instanceof ot&&(n=r.left.name+"."+r.right.name),n?t.map((t=>({type:e.PropertyType.boolean,value:$e(t,n)}))):[]},not:t=>Tt.toBoolean(t).map((t=>({type:e.PropertyType.boolean,value:!t.value}))),resolve:t=>t.map((t=>{const r=t.value;let n;if("string"==typeof r)n=r;else if("object"==typeof r){const t=r;if(t.resource)return{type:e.PropertyType.BackboneElement,value:t.resource};n=t.reference}if(!n)return{type:e.PropertyType.BackboneElement,value:null};const[i,s]=n.split("/");return{type:e.PropertyType.BackboneElement,value:{resourceType:i,id:s}}})).filter((e=>!!e.value)),as:e=>e,type:t=>t.map((({value:t})=>"boolean"==typeof t?{type:e.PropertyType.BackboneElement,value:{namespace:"System",name:"Boolean"}}:"number"==typeof t?{type:e.PropertyType.BackboneElement,value:{namespace:"System",name:"Integer"}}:t&&"object"==typeof t&&"resourceType"in t?{type:e.PropertyType.BackboneElement,value:{namespace:"FHIR",name:t.resourceType}}:{type:e.PropertyType.BackboneElement,value:null})),conformsTo:(t,r)=>{const n=r.eval([])[0].value;if(!n.startsWith("http://hl7.org/fhir/StructureDefinition/"))throw new Error("Expected a StructureDefinition URL");const i=n.replace("http://hl7.org/fhir/StructureDefinition/","");return t.map((t=>{var r;return{type:e.PropertyType.boolean,value:(null===(r=t.value)||void 0===r?void 0:r.resourceType)===i}}))}};function St(e,t,...r){if(0===t.length)return[];const[{value:n}]=Et(t,1);if("string"!=typeof n)throw new Error("String function cannot be called with non-string");const i=e(n,...r.map((e=>{var r,n;return e&&(null===(n=null===(r=e.eval(t))||void 0===r?void 0:r[0])||void 0===n?void 0:n.value)})));return void 0===i?[]:Array.isArray(i)?i.map(_e):[_e(i)]}function bt(t,r,...n){if(0===r.length)return[];const[{value:i}]=Et(r,1),s=He(i),o=s?i.value:i;if("number"!=typeof o)throw new Error("Math function cannot be called with non-number");const a=t(o,...n.map((e=>{var t,r;return null===(r=null===(t=e.eval([]))||void 0===t?void 0:t[0])||void 0===r?void 0:r.value})));return[{type:s?e.PropertyType.Quantity:r[0].type,value:s?Object.assign(Object.assign({},i),{value:a}):a}]}function Et(e,t){if(e.length!==t)throw new Error(`Expected ${t} arguments`);for(const t of e)if(null==t)throw new Error("Expected non-null argument");return e}var Pt,At,Ot,kt,xt,Rt,Ut,Mt,Ct,Dt,Lt,_t,It,jt,Nt,Wt,Bt,Ft;function Qt(e){return new qt(e).tokenize()}const $t=["year","years","month","months","week","weeks","day","days","hour","hours","minute","minutes","second","seconds","millisecond","milliseconds"],Ht=["!=","!~","<=",">=","{}"];class qt{constructor(e){Pt.add(this),At.set(this,void 0),Ot.set(this,void 0),n(this,At,e,"f"),n(this,Ot,0,"f")}tokenize(){const e=[];for(;r(this,Ot,"f")<r(this,At,"f").length;){const t=r(this,Pt,"m",xt).call(this);t&&e.push(t)}return e}}function zt(e,t){return{id:e,value:t}}var Gt,Xt,Yt,Vt,Kt,Jt,Zt,er,tr;At=new WeakMap,Ot=new WeakMap,Pt=new WeakSet,kt=function(){const e=r(this,Ot,"f"),t=r(this,Pt,"m",xt).call(this);return n(this,Ot,e,"f"),t},xt=function(){r(this,Pt,"m",Rt).call(this);const e=r(this,Pt,"m",Wt).call(this);if(!e)return;const t=r(this,Pt,"m",Ft).call(this);return"/"===e&&"*"===t?r(this,Pt,"m",Ut).call(this):"/"===e&&"/"===t?r(this,Pt,"m",Mt).call(this):"'"===e?r(this,Pt,"m",Ct).call(this):"`"===e?r(this,Pt,"m",Dt).call(this):"@"===e?r(this,Pt,"m",Lt).call(this):e.match(/\d/)?r(this,Pt,"m",_t).call(this):e.match(/\w/)||"$"===e&&t.match(/\w/)?r(this,Pt,"m",It).call(this):r(this,Pt,"m",jt).call(this)},Rt=function(){return zt("Whitespace",r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/\s/))))},Ut=function(){const e=r(this,Ot,"f");return r(this,Pt,"m",Nt).call(this,(()=>"*"!==r(this,Pt,"m",Wt).call(this)||"/"!==r(this,Pt,"m",Ft).call(this))),n(this,Ot,r(this,Ot,"f")+2,"f"),zt("Comment",r(this,At,"f").substring(e,r(this,Ot,"f")))},Mt=function(){return zt("Comment",r(this,Pt,"m",Nt).call(this,(()=>"\n"!==r(this,Pt,"m",Wt).call(this))))},Ct=function(){var e,t;n(this,Ot,(e=r(this,Ot,"f"),++e),"f");const i=zt("String",r(this,Pt,"m",Nt).call(this,(()=>"\\"===r(this,Pt,"m",Bt).call(this)||"'"!==r(this,Pt,"m",Wt).call(this))));return n(this,Ot,(t=r(this,Ot,"f"),++t),"f"),i},Dt=function(){var e,t;n(this,Ot,(e=r(this,Ot,"f"),++e),"f");const i=zt("Symbol",r(this,Pt,"m",Nt).call(this,(()=>"`"!==r(this,Pt,"m",Wt).call(this))));return n(this,Ot,(t=r(this,Ot,"f"),++t),"f"),i},Lt=function(){var e,t,i,s,o;const a=r(this,Ot,"f");return n(this,Ot,(e=r(this,Ot,"f"),++e),"f"),r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/[\d-]/))),"T"===r(this,Pt,"m",Wt).call(this)&&(n(this,Ot,(t=r(this,Ot,"f"),++t),"f"),r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/[\d:]/))),"."===r(this,Pt,"m",Wt).call(this)&&r(this,Pt,"m",Ft).call(this).match(/\d/)&&(n(this,Ot,(i=r(this,Ot,"f"),++i),"f"),r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/[\d]/)))),"Z"===r(this,Pt,"m",Wt).call(this)?n(this,Ot,(s=r(this,Ot,"f"),++s),"f"):"+"!==r(this,Pt,"m",Wt).call(this)&&"-"!==r(this,Pt,"m",Wt).call(this)||(n(this,Ot,(o=r(this,Ot,"f"),++o),"f"),r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/[\d:]/))))),zt("DateTime",r(this,At,"f").substring(a+1,r(this,Ot,"f")))},_t=function(){var e;const t=r(this,Ot,"f");let i="Number";return r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/\d/))),"."===r(this,Pt,"m",Wt).call(this)&&r(this,Pt,"m",Ft).call(this).match(/\d/)&&(n(this,Ot,(e=r(this,Ot,"f"),++e),"f"),r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/\d/))))," "===r(this,Pt,"m",Wt).call(this)&&function(e){if(e){if("String"===e.id)return!0;if("Symbol"===e.id&&$t.includes(e.value))return!0}return!1}(r(this,Pt,"m",kt).call(this))&&(i="Quantity",r(this,Pt,"m",xt).call(this)),zt(i,r(this,At,"f").substring(t,r(this,Ot,"f")))},It=function(){return zt("Symbol",r(this,Pt,"m",Nt).call(this,(()=>r(this,Pt,"m",Wt).call(this).match(/[$\w]/))))},jt=function(){var e;const t=r(this,Pt,"m",Wt).call(this),i=t+r(this,Pt,"m",Ft).call(this);return Ht.includes(i)?(n(this,Ot,r(this,Ot,"f")+2,"f"),zt(i,i)):(n(this,Ot,(e=r(this,Ot,"f"),++e),"f"),zt(t,t))},Nt=function(e){var t;const i=r(this,Ot,"f");for(;r(this,Ot,"f")<r(this,At,"f").length&&e();)n(this,Ot,(t=r(this,Ot,"f"),++t),"f");return r(this,At,"f").substring(i,r(this,Ot,"f"))},Wt=function(){return r(this,At,"f")[r(this,Ot,"f")]},Bt=function(){var e;return null!==(e=r(this,At,"f")[r(this,Ot,"f")-1])&&void 0!==e?e:""},Ft=function(){var e;return null!==(e=r(this,At,"f")[r(this,Ot,"f")+1])&&void 0!==e?e:""};Gt=new WeakMap,Xt=new WeakMap;class rr{constructor(e,t,r){Yt.add(this),Vt.set(this,void 0),Kt.set(this,void 0),Jt.set(this,void 0),n(this,Vt,e,"f"),n(this,Kt,t,"f"),n(this,Jt,r,"f")}match(e){const t=r(this,Yt,"m",tr).call(this);return(null==t?void 0:t.id)===e&&(r(this,Yt,"m",er).call(this),!0)}consumeAndParse(e=100){const t=r(this,Yt,"m",er).call(this),n=r(this,Kt,"f")[t.id];if(!n)throw Error(`Parse error at ${t.value}. No matching prefix parselet.`);let i=n.parse(this,t);for(;e>r(this,Yt,"m",Zt).call(this);){const e=r(this,Yt,"m",er).call(this);i=r(this,Jt,"f")[e.id].parse(this,i,e)}return i}}Vt=new WeakMap,Kt=new WeakMap,Jt=new WeakMap,Yt=new WeakSet,Zt=function(){const e=r(this,Yt,"m",tr).call(this);if(!e)return 100;const t=r(this,Jt,"f")[e.id];return t?t.precedence:100},er=function(){if(!r(this,Vt,"f").length)throw Error("Cant consume unknown more tokens.");return r(this,Vt,"f").shift()},tr=function(){return r(this,Vt,"f").length>0?r(this,Vt,"f")[0]:void 0};const nr={parse(e){const t=e.consumeAndParse();if(!e.match(")"))throw new Error("Parse error: expected `)`");return t}},ir={parse(e,t){const r=e.consumeAndParse();if(!e.match("]"))throw new Error("Parse error: expected `]`");return new mt(t,r)},precedence:2},sr={parse(e,t){if(!(t instanceof Je))throw new Error("Unexpected parentheses");if(!(t.name in Tt))throw new Error("Unrecognized function: "+t.name);const r=[];for(;!e.match(")");)r.push(e.consumeAndParse()),e.match(",");return new gt(t.name,r,Tt[t.name])},precedence:0};function or(e){const t=e.split(" "),r=parseFloat(t[0]);let n=t[1];return n=n&&n.startsWith("'")&&n.endsWith("'")?n.substring(1,n.length-1):"{"+n+"}",{value:r,unit:n}}const ar=(new class{constructor(){Gt.set(this,{}),Xt.set(this,{})}registerInfix(e,t){return r(this,Xt,"f")[e]=t,this}registerPrefix(e,t){return r(this,Gt,"f")[e]=t,this}prefix(e,t,r){return this.registerPrefix(e,{parse(e,n){const i=e.consumeAndParse(t);return r(n,i)}})}infixLeft(e,t,r){return this.registerInfix(e,{parse(e,n,i){const s=e.consumeAndParse(t);return r(n,i,s)},precedence:t})}construct(e){return new rr(Qt(e),r(this,Gt,"f"),r(this,Xt,"f"))}}).registerPrefix("String",{parse:(t,r)=>new Ke({type:e.PropertyType.string,value:r.value})}).registerPrefix("DateTime",{parse:(t,r)=>new Ke({type:e.PropertyType.dateTime,value:yt(r.value)})}).registerPrefix("Quantity",{parse:(t,r)=>new Ke({type:e.PropertyType.Quantity,value:or(r.value)})}).registerPrefix("Number",{parse:(t,r)=>new Ke({type:e.PropertyType.decimal,value:parseFloat(r.value)})}).registerPrefix("Symbol",{parse:(t,r)=>"false"===r.value?new Ke({type:e.PropertyType.boolean,value:!1}):"true"===r.value?new Ke({type:e.PropertyType.boolean,value:!0}):new Je(r.value)}).registerPrefix("{}",{parse:()=>new Ze}).registerPrefix("(",nr).registerInfix("[",ir).registerInfix("(",sr).prefix("+",3,((e,t)=>new et(t,(e=>e)))).prefix("-",3,((e,t)=>new rt(t,t,((e,t)=>-t)))).infixLeft(".",1,((e,t,r)=>new ot(e,r))).infixLeft("/",4,((e,t,r)=>new rt(e,r,((e,t)=>e/t)))).infixLeft("*",4,((e,t,r)=>new rt(e,r,((e,t)=>e*t)))).infixLeft("+",5,((e,t,r)=>new rt(e,r,((e,t)=>e+t)))).infixLeft("-",5,((e,t,r)=>new rt(e,r,((e,t)=>e-t)))).infixLeft("|",7,((e,t,r)=>new at(e,r))).infixLeft("=",9,((e,t,r)=>new lt(e,r))).infixLeft("!=",9,((e,t,r)=>new ct(e,r))).infixLeft("~",9,((e,t,r)=>new ut(e,r))).infixLeft("!~",9,((e,t,r)=>new ht(e,r))).infixLeft("<",8,((e,t,r)=>new rt(e,r,((e,t)=>e<t)))).infixLeft("<=",8,((e,t,r)=>new rt(e,r,((e,t)=>e<=t)))).infixLeft(">",8,((e,t,r)=>new rt(e,r,((e,t)=>e>t)))).infixLeft(">=",8,((e,t,r)=>new rt(e,r,((e,t)=>e>=t)))).infixLeft("&",5,((e,t,r)=>new nt(e,r))).infixLeft("Symbol",6,((e,t,r)=>{switch(t.value){case"and":return new dt(e,r);case"as":return new tt(e,r);case"contains":return new it(e,r);case"div":return new rt(e,r,((e,t)=>e/t|0));case"in":return new st(e,r);case"is":return new ft(e,r);case"mod":return new rt(e,r,((e,t)=>e%t));case"or":return new pt(e,r);case"xor":return new vt(e,r);default:throw new Error("Cannot use "+t.value+" as infix operator")}}));function lr(e){try{return new Ve(e,ar.construct(e).consumeAndParse())}catch(t){throw new Error(`FhirPathError on "${e}": ${t}`)}}class cr{constructor(e){this.segments=e}get(e){return"number"==typeof e?this.segments[e]:this.segments.find((t=>t.name===e))}getAll(e){return this.segments.filter((t=>t.name===e))}toString(){return this.segments.map((e=>e.toString())).join("\r")}buildAck(){var e,t,r,n,i,s;const o=new Date,a=this.get("MSH"),l=(null===(e=null==a?void 0:a.get(2))||void 0===e?void 0:e.toString())||"",c=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",u=(null===(r=null==a?void 0:a.get(4))||void 0===r?void 0:r.toString())||"",h=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",f=(null===(i=null==a?void 0:a.get(9))||void 0===i?void 0:i.toString())||"",d=(null===(s=null==a?void 0:a.get(12))||void 0===s?void 0:s.toString())||"2.5.1";return new cr([new ur(["MSH","^~\\&",u,h,l,c,o.toISOString(),"","ACK",o.getTime().toString(),"P",d]),new ur(["MSA","AA",f,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new cr(e.split(/[\r\n]+/).map((e=>ur.parse(e))))}}class ur{constructor(e){b(e)?this.fields=e.map((e=>hr.parse(e))):this.fields=e,this.name=this.fields[0].components[0]}get(e){return this.fields[e]}toString(){return this.fields.map((e=>e.toString())).join("|")}static parse(e){return new ur(e.split("|").map((e=>hr.parse(e))))}}class hr{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new hr(e.split("^"))}}const fr="ok",dr="created",pr="gone",vr="not-modified",gr="not-found",mr="access-denied",yr={resourceType:"OperationOutcome",id:fr,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},wr={resourceType:"OperationOutcome",id:dr,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},Tr={resourceType:"OperationOutcome",id:vr,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},Sr={resourceType:"OperationOutcome",id:gr,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},br={resourceType:"OperationOutcome",id:pr,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},Er={resourceType:"OperationOutcome",id:mr,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function Pr(e){return e.id===fr||e.id===dr||e.id===vr}class Ar extends Error{constructor(e){var t,r;super(null===(r=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===r?void 0:r.text),this.outcome=e}}var Or;e.Operator=void 0,(Or=e.Operator||(e.Operator={})).EQUALS="eq",Or.NOT_EQUALS="ne",Or.GREATER_THAN="gt",Or.LESS_THAN="lt",Or.GREATER_THAN_OR_EQUALS="ge",Or.LESS_THAN_OR_EQUALS="le",Or.STARTS_AFTER="sa",Or.ENDS_BEFORE="eb",Or.APPROXIMATELY="ap",Or.CONTAINS="contains",Or.EXACT="exact",Or.TEXT="text",Or.ABOVE="above",Or.BELOW="below",Or.IN="in",Or.NOT_IN="not-in",Or.OF_TYPE="of-type";const kr=[e.Operator.CONTAINS,e.Operator.EXACT,e.Operator.TEXT,e.Operator.ABOVE,e.Operator.BELOW,e.Operator.IN,e.Operator.NOT_IN,e.Operator.OF_TYPE],xr=[e.Operator.NOT_EQUALS,e.Operator.GREATER_THAN,e.Operator.LESS_THAN,e.Operator.GREATER_THAN_OR_EQUALS,e.Operator.LESS_THAN_OR_EQUALS,e.Operator.STARTS_AFTER,e.Operator.ENDS_BEFORE,e.Operator.APPROXIMATELY];var Rr;function Ur(e,t){const r=t.split(" | ");for(const t of r){const r=Mr(t);if(r.startsWith(e+"."))return r}}function Mr(e){let t=e.trim();return t.startsWith("(")&&t.endsWith(")")&&(t=t.substring(1,t.length-1)),t.includes(" as ")&&(t=t.substring(0,t.indexOf(" as "))),t.includes(".where(")&&(t=t.substring(0,t.indexOf(".where("))),t}e.SearchParameterType=void 0,(Rr=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",Rr.NUMBER="NUMBER",Rr.QUANTITY="QUANTITY",Rr.TEXT="TEXT",Rr.REFERENCE="REFERENCE",Rr.DATE="DATE",Rr.DATETIME="DATETIME",Rr.PERIOD="PERIOD",e.COMPONENT_SEPARATOR="^",e.DEFAULT_SEARCH_COUNT=20,e.FIELD_SEPARATOR="|",e.Hl7Field=hr,e.Hl7Message=cr,e.Hl7Segment=ur,e.LRUCache=l,e.MedplumClient=class extends class{constructor(){L.set(this,void 0),n(this,L,{},"f")}addEventListener(e,t){r(this,L,"f")[e]||(r(this,L,"f")[e]=[]),r(this,L,"f")[e].push(t)}removeEventListeneer(e,t){const n=r(this,L,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===t)return void n.splice(e,1)}dispatchEvent(e){const t=r(this,L,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t,i;if(super(),$.add(this),H.set(this,void 0),q.set(this,void 0),z.set(this,void 0),G.set(this,void 0),X.set(this,void 0),Y.set(this,void 0),V.set(this,void 0),K.set(this,void 0),J.set(this,void 0),Z.set(this,void 0),ee.set(this,void 0),te.set(this,void 0),re.set(this,void 0),ne.set(this,void 0),ie.set(this,void 0),se.set(this,void 0),oe.set(this,void 0),ae.set(this,void 0),null==e?void 0:e.baseUrl){if(!e.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");if(!e.baseUrl.endsWith("/"))throw new Error("Base URL must end with a trailing slash")}n(this,H,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),n(this,q,null==e?void 0:e.createPdf,"f"),n(this,z,new Ae,"f"),n(this,G,{types:{}},"f"),n(this,X,new l(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),n(this,Y,null!==(i=null==e?void 0:e.cacheTime)&&void 0!==i?i:1e4,"f"),n(this,V,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),n(this,K,(null==e?void 0:e.clientId)||"","f"),n(this,J,(null==e?void 0:e.authorizeUrl)||r(this,V,"f")+"oauth2/authorize","f"),n(this,Z,(null==e?void 0:e.tokenUrl)||r(this,V,"f")+"oauth2/token","f"),n(this,ee,(null==e?void 0:e.logoutUrl)||r(this,V,"f")+"oauth2/logout","f"),n(this,te,null==e?void 0:e.onUnauthenticated,"f");const s=this.getActiveLogin();s&&(n(this,re,s.accessToken,"f"),n(this,ne,s.refreshToken,"f"),r(this,$,"m",ce).call(this).catch(console.log)),r(this,$,"m",be).call(this)}getBaseUrl(){return r(this,V,"f")}clear(){r(this,z,"f").clear(),r(this,X,"f").clear(),n(this,re,void 0,"f"),n(this,ne,void 0,"f"),n(this,oe,void 0,"f"),n(this,ae,void 0,"f"),this.dispatchEvent({type:"change"})}invalidateUrl(e){e=e.toString(),r(this,X,"f").delete(e)}invalidateSearches(e){const t="fhir/R4/"+e;for(const e of r(this,X,"f").keys())(e.endsWith(t)||e.includes(t+"?"))&&r(this,X,"f").delete(e)}get(e,t={}){e=e.toString();const n=r(this,$,"m",ue).call(this,e,t);if(n)return n.value;const i=new Pe(r(this,$,"m",fe).call(this,"GET",e,t));return r(this,$,"m",he).call(this,e,i),i}post(e,t,n,i={}){return e=e.toString(),t&&r(this,$,"m",ve).call(this,i,t),n&&r(this,$,"m",pe).call(this,i,n),this.invalidateUrl(e),r(this,$,"m",fe).call(this,"POST",e,i)}put(e,t,n,i={}){return e=e.toString(),t&&r(this,$,"m",ve).call(this,i,t),n&&r(this,$,"m",pe).call(this,i,n),this.invalidateUrl(e),r(this,$,"m",fe).call(this,"PUT",e,i)}patch(e,t,n={}){return e=e.toString(),r(this,$,"m",ve).call(this,n,t),r(this,$,"m",pe).call(this,n,"application/json-patch+json"),this.invalidateUrl(e),r(this,$,"m",fe).call(this,"PATCH",e,n)}delete(e,t={}){return e=e.toString(),this.invalidateUrl(e),r(this,$,"m",fe).call(this,"DELETE",e,t)}register(e){return t(this,void 0,void 0,(function*(){const t=yield this.post("auth/register",e);yield this.setActiveLogin(t)}))}startLogin(e){return t(this,void 0,void 0,(function*(){return yield r(this,$,"m",me).call(this),this.post("auth/login",Object.assign(Object.assign({},e),{clientId:r(this,K,"f"),scope:Ce,codeChallengeMethod:"S256",codeChallenge:r(this,z,"f").getString("codeChallenge")}))}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield r(this,$,"m",me).call(this),this.post("auth/google",e)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void r(this,$,"m",ye).call(this)}signOutWithRedirect(){window.location.assign(r(this,ee,"f"))}fhirUrl(...e){return new URL(r(this,V,"f")+"fhir/R4/"+e.join("/"))}fhirSearchUrl(e,t){const r=this.fhirUrl(e);return t&&(r.search=t.toString()),r}search(e,t,r={}){return this.get(this.fhirSearchUrl(e,t),r)}searchOne(e,t,n={}){const i=this.fhirSearchUrl(e,t);i.searchParams.set("_count","1"),i.searchParams.sort();const s=i.toString()+"-searchOne",o=r(this,$,"m",ue).call(this,s,n);if(o)return o.value;const a=new Pe(this.search(e,i.searchParams,n).then((e=>{var t,r;return null===(r=null===(t=e.entry)||void 0===t?void 0:t[0])||void 0===r?void 0:r.resource})));return r(this,$,"m",he).call(this,s,a),a}searchResources(e,t,n={}){const i=this.fhirSearchUrl(e,t).toString()+"-searchResources",s=r(this,$,"m",ue).call(this,i,n);if(s)return s.value;const o=new Pe(this.search(e,t,n).then((e=>{var t,r;return null!==(r=null===(t=e.entry)||void 0===t?void 0:t.map((e=>e.resource)))&&void 0!==r?r:[]})));return r(this,$,"m",he).call(this,i,o),o}searchValueSet(e,t,r={}){const n=this.fhirUrl("ValueSet","$expand");return n.searchParams.set("url",e),n.searchParams.set("filter",t),this.get(n.toString(),r)}getCached(e,t){var n;const i=null===(n=r(this,X,"f").get(this.fhirUrl(e,t).toString()))||void 0===n?void 0:n.value;return i&&!i.isPending()?i.read():void 0}getCachedReference(e){const t=e.reference;if(!t)return;const[r,n]=t.split("/");return r&&n?this.getCached(r,n):void 0}readResource(e,t){return this.get(this.fhirUrl(e,t))}readReference(e){const t=null==e?void 0:e.reference;if(!t)return new Pe(Promise.reject(new Error("Missing reference")));const[r,n]=t.split("/");return r&&n?this.readResource(r,n):new Pe(Promise.reject(new Error("Invalid reference")))}getSchema(){return r(this,G,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in r(this,G,"f").types)return Promise.resolve(r(this,G,"f"));const t=`{\n StructureDefinitionList(name: "${e}") {\n name,\n description,\n snapshot {\n element {\n id,\n path,\n min,\n max,\n type {\n code,\n targetProfile\n },\n binding {\n valueSet\n },\n definition\n }\n }\n }\n SearchParameterList(base: "${e}", _count: 100) {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(t);for(const e of n.data.StructureDefinitionList)Re(r(this,G,"f"),e);for(const e of n.data.SearchParameterList)Ue(r(this,G,"f"),e);return r(this,G,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,r){return this.get(this.fhirUrl(e,t,"_history",r))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){if(!e.resourceType)throw new Error("Missing resourceType");return this.invalidateSearches(e.resourceType),this.post(this.fhirUrl(e.resourceType),e)}createResourceIfNoneExist(e,r){var n;return t(this,void 0,void 0,(function*(){return null!==(n=yield this.searchOne(e.resourceType,r))&&void 0!==n?n:this.createResource(e)}))}createBinary(e,t,r){const n=this.fhirUrl("Binary");return t&&n.searchParams.set("_filename",t),this.post(n,e,r)}createPdf(e,n,i,s){return t(this,void 0,void 0,(function*(){if(!r(this,q,"f"))throw new Error("PDF creation not enabled");const t=yield r(this,q,"f").call(this,e,i,s);return this.createBinary(t,n,"application/pdf")}))}createComment(e,t){const r=this.getProfile();let n,i;return"Encounter"===e.resourceType&&(n=u(e),i=e.subject),"ServiceRequest"===e.resourceType&&(n=e.encounter,i=e.subject),"Patient"===e.resourceType&&(i=u(e)),this.createResource({resourceType:"Communication",basedOn:[u(e)],encounter:n,subject:i,sender:r?u(r):void 0,sent:(new Date).toISOString(),payload:[{contentString:t}]})}updateResource(e){if(!e.resourceType)throw new Error("Missing resourceType");if(!e.id)throw new Error("Missing id");return this.invalidateSearches(e.resourceType),this.put(this.fhirUrl(e.resourceType,e.id),e)}patchResource(e,t,r){return this.invalidateSearches(e),this.patch(this.fhirUrl(e,t),r)}deleteResource(e,t){return this.invalidateSearches(e),this.delete(this.fhirUrl(e,t))}sendEmail(e){return this.post("email/v1/send",e,"application/json")}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return r(this,z,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){n(this,re,e.accessToken,"f"),n(this,ne,e.refreshToken,"f"),n(this,oe,void 0,"f"),n(this,ae,void 0,"f"),r(this,z,"f").setObject("activeLogin",e),r(this,$,"m",le).call(this,e),r(this,X,"f").clear(),n(this,ie,void 0,"f"),yield r(this,$,"m",ce).call(this)}))}getAccessToken(){return r(this,re,"f")}setAccessToken(e){n(this,re,e,"f"),n(this,ne,void 0,"f"),n(this,oe,void 0,"f"),n(this,ae,void 0,"f")}getLogins(){var e;return null!==(e=r(this,z,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!r(this,se,"f")}getProfile(){return r(this,oe,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return r(this,se,"f")&&(yield r(this,se,"f")),this.getProfile()}))}getUserConfiguration(){return r(this,ae,"f")}download(e,n={}){return t(this,void 0,void 0,(function*(){r(this,ie,"f")&&(yield r(this,ie,"f")),r(this,$,"m",de).call(this,n);return(yield r(this,H,"f").call(this,e.toString(),n)).blob()}))}processCode(e){if(!r(this,z,"f").getString("pkceState"))throw this.clear(),new Error("Invalid PCKE state");const t=r(this,z,"f").getString("codeVerifier");if(!t)throw this.clear(),new Error("Invalid PCKE code verifier");const n=new URLSearchParams;return n.set("grant_type","authorization_code"),n.set("client_id",r(this,K,"f")),n.set("code_verifier",t),n.set("code",e),n.set("redirect_uri",De()),r(this,$,"m",Te).call(this,n)}startClientLogin(e,n){return t(this,void 0,void 0,(function*(){const t=new URLSearchParams;return t.set("grant_type","client_credentials"),t.set("client_id",e),t.set("client_secret",n),r(this,$,"m",Te).call(this,t)}))}},e.OperationOutcomeError=Ar,e.ReadablePromise=Pe,e.SEGMENT_SEPARATOR="\r",e.accessDenied=Er,e.allOk=yr,e.arrayBufferToBase64=A,e.arrayBufferToHex=P,e.assertOk=function(e,t){if(!Pr(e)||void 0===t)throw new Ar(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=Me,e.calculateAge=v,e.calculateAgeString=function(e,t){const{years:r,months:n,days:i}=v(e,t);return r>=2?r.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":i.toString().padStart(3,"0")+"D"},e.capitalize=O,e.createReference=u,e.createSchema=ke,e.createTypeSchema=xe,e.created=wr,e.deepEquals=T,e.evalFhirPath=function(t,r){Array.isArray(r)||(r=[r]);const n=Array.isArray(r)?r:[r];for(let t=0;t<n.length;t++){const r=n[t];"object"==typeof r&&"type"in r&&"value"in r||(n[t]={type:e.PropertyType.BackboneElement,value:r})}return lr(t).eval(n).map((e=>e.value))},e.findObservationInterval=function(e,t,r,n){var i;return null===(i=e.qualifiedInterval)||void 0===i?void 0:i.find((i=>{var s;return function(e,t){return function(e,t){return!e.gender||e.gender===t.gender}(e,t)&&function(e,t){return!e.age||k(v(t.birthDate).years,e.age)}(e,t)}(i,t)&&function(e,t,r){return!!e.range&&k(t,e.range,r)}(i,r,null===(s=e.quantitativeDetails)||void 0===s?void 0:s.decimalPrecision)&&(void 0===n||i.category===n)}))},e.formatAddress=function(e,t){const r=[];return e.line&&r.push(...e.line),e.city&&r.push(e.city),e.state&&r.push(e.state),e.postalCode&&r.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&r.push("["+e.use+"]"),r.join(", ").trim()},e.formatFamilyName=function(e){return e.family||""},e.formatGivenName=function(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()},e.formatHumanName=c,e.formatSearchQuery=function(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=kr.includes(e.operator)?":"+e.operator:"",r=xr.includes(e.operator)?e.operator:"";return`${e.code}${t}=${r}${encodeURIComponent(e.value)}`}(e)))),e.sortRules&&e.sortRules.length>0&&t.push(function(e){if(!e||0===e.length)return"";return"_sort="+e.map((e=>e.descending?"-"+e.code:e.code)).join(",")}(e.sortRules)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+e.total),0===t.length?"":(t.sort(),"?"+t.join("&"))},e.getCodeBySystem=function(e,t){var r,n;return null===(n=null===(r=null==e?void 0:e.coding)||void 0===r?void 0:r.find((e=>e.system===t)))||void 0===n?void 0:n.code},e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=d,e.getExpressionForResourceType=Ur,e.getExtensionValue=function(e,...t){var r;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(r=null==n?void 0:n.extension)||void 0===r?void 0:r.find((r=>r.url===t[e]));return null==n?void 0:n.valueString},e.getIdentifier=function(e,t){const r=e.identifier;if(!r)return;const n=Array.isArray(r)?r:[r];for(const e of n)if(e.system===t)return e.value},e.getImageSrc=function(e){if(f(e)){const t=e.photo;if(t)for(const e of t){const t=p(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=p(e.photo);if(t)return t}},e.getPropertyDisplayName=function(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(O).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getQuestionnaireAnswers=function(e){const t={};return g(e.item,t),t},e.getReferenceString=h,e.getSearchParameterDetails=function(t,r,n){var i,s,o,a;if("_lastUpdated"===n.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const l=n.code.split("-").reduce(((e,t,r)=>e+(r?O(t):t)),""),c=null===(i=Ur(r,n.expression))||void 0===i?void 0:i.split(".");if(!c)return{columnName:l,type:e.SearchParameterType.TEXT};let u,h,f=r,d=!1;for(let r=1;r<c.length;r++){const n=c[r];if(u=null===(o=null===(s=t.types[f])||void 0===s?void 0:s.properties)||void 0===o?void 0:o[n],!u)return{columnName:l,type:e.SearchParameterType.TEXT,array:d};if("*"===u.max&&(d=!0),h=null===(a=u.type)||void 0===a?void 0:a[0].code,!h)return{columnName:l,type:e.SearchParameterType.TEXT,array:d};r<c.length-1&&("Element"===h||"BackboneElement"===h?f+=O(n):f=h)}const p=function(t,r){let n=e.SearchParameterType.TEXT;switch(t.type){case"date":n=r===e.PropertyType.dateTime||r===e.PropertyType.instant?e.SearchParameterType.DATETIME:e.SearchParameterType.DATE;break;case"number":n=e.SearchParameterType.NUMBER;break;case"quantity":n=e.SearchParameterType.QUANTITY;break;case"reference":n=e.SearchParameterType.REFERENCE;break;case"token":"boolean"===r&&(n=e.SearchParameterType.BOOLEAN)}return n}(n,h);return{columnName:l,type:p,elementDefinition:u,array:d}},e.getStatus=function(e){return e.id===fr?200:e.id===dr?201:e.id===vr?304:e.id===mr?403:e.id===gr?404:e.id===pr?410:400},e.gone=br,e.indexSearchParameter=Ue,e.indexStructureDefinition=Re,e.isGone=function(e){return e.id===pr},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===gr},e.isObject=S,e.isOk=Pr,e.isProfileResource=f,e.isStringArray=b,e.isUUID=function(e){return!!e.match(/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i)},e.matchesRange=k,e.notFound=Sr,e.notModified=Tr,e.parseFhirPath=lr,e.parseSearchDefinition=function(t){const r=new URL(t,"https://example.com/"),n=r.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let i,s,o,a,l,c;return new URLSearchParams(r.search).forEach(((t,r)=>{"_fields"===r?o=t.split(","):"_offset"===r?a=parseInt(t):"_count"===r?l=parseInt(t):"_total"===r?c=t:"_sort"===r?(s=s||[],s.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(i=i||[],i.push(function(t,r){let n=t,i=e.Operator.EQUALS;for(const e of kr){const t=n.indexOf(":"+e);-1!==t&&(i=e,n=n.substring(0,t))}for(const e of xr)r.match(new RegExp("^"+e+"\\d"))&&(i=e,r=r.substring(e.length));return{code:n,operator:i,value:r}}(r,t)))})),{resourceType:n,filters:i,fields:o,offset:a,count:l,total:c,sortRules:s}},e.preciseEquals=x,e.preciseGreaterThan=U,e.preciseGreaterThanOrEquals=C,e.preciseLessThan=R,e.preciseLessThanOrEquals=M,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.setCodeBySystem=function(e,t,r){var n,i;e.coding||(e.coding=[]);const s=null===(n=e.coding)||void 0===n?void 0:n.find((e=>e.system===t));s?s.code=r:null===(i=e.coding)||void 0===i||i.push({system:t,code:r})},e.stringify=m,e.tokenize=Qt,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|