Socket
Socket
Sign inDemoInstall

@medplum/core

Package Overview
Dependencies
Maintainers
1
Versions
186
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@medplum/core - npm Package Compare versions

Comparing version 0.9.0 to 0.9.1

dist/types/hl7.d.ts

16

dist/cjs/index.min.js

@@ -1,16 +0,2 @@

!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";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function t(e,t,i,r){return new(i||(i=Promise))((function(n,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function i(e,t,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(e):r?r.value:t.get(e)}function r(e,t,i,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,i):n?n.value=i:t.set(e,i),i}var n,o,s,a;class c{constructor(e=10){n.add(this),o.set(this,void 0),s.set(this,void 0),r(this,o,e,"f"),r(this,s,new Map,"f")}clear(){i(this,s,"f").clear()}get(e){const t=i(this,s,"f").get(e);return t&&(i(this,s,"f").delete(e),i(this,s,"f").set(e,t)),t}set(e,t){i(this,s,"f").has(e)?i(this,s,"f").delete(e):i(this,s,"f").size>=i(this,o,"f")&&i(this,s,"f").delete(i(this,n,"m",a).call(this)),i(this,s,"f").set(e,t)}}function u(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function h(e){return e.resourceType+"/"+e.id}function d(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function l(e){var t,i;if(d(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return u(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===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:h(e)}function f(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function p(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const r=t?new Date(t):new Date;r.setUTCHours(0,0,0,0);const n=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),a=r.getUTCFullYear(),c=r.getUTCMonth(),u=r.getUTCDate();let h=a-n;(c<o||c===o&&u<s)&&h--;let d=12*a+c-(12*n+o);u<s&&d--;return{years:h,months:d,days:Math.floor((r.getTime()-i.getTime())/864e5)}}function m(e,t){return JSON.stringify(e,v,t?2:void 0)}function v(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&function(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}(t)?void 0:t}function g(e){return null!==e&&"object"==typeof e}o=new WeakMap,s=new WeakMap,n=new WeakSet,a=function(){return i(this,s,"f").keys().next().value};const y=[];for(let e=0;e<256;e++)y.push(e.toString(16).padStart(2,"0"));function T(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=y[t[e]];return i.join("")}function E(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function w(e){return e.charAt(0).toUpperCase()+e.substr(1)}function S(){const e=new Uint32Array(28);return crypto.getRandomValues(e),T(e.buffer)}var R;function O(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,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),r=decodeURIComponent(i);return JSON.parse(r)}R=new WeakMap;const C="ok",P="created",U="gone",A="not-modified",b="not-found",k="access-denied",_={resourceType:"OperationOutcome",id:C,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},I={resourceType:"OperationOutcome",id:P,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},N={resourceType:"OperationOutcome",id:A,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},M={resourceType:"OperationOutcome",id:b,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},x={resourceType:"OperationOutcome",id:U,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},L={resourceType:"OperationOutcome",id:k,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function j(e){return e.id===C||e.id===P||e.id===A}class D extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var W;e.Operator=void 0,(W=e.Operator||(e.Operator={})).EQUALS="eq",W.NOT_EQUALS="ne",W.GREATER_THAN="gt",W.LESS_THAN="lt",W.GREATER_THAN_OR_EQUALS="ge",W.LESS_THAN_OR_EQUALS="le",W.STARTS_AFTER="sa",W.ENDS_BEFORE="eb",W.APPROXIMATELY="ap",W.CONTAINS="contains",W.EXACT="exact",W.TEXT="text",W.ABOVE="above",W.BELOW="below",W.IN="in",W.NOT_IN="not-in",W.OF_TYPE="of-type";const B=[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],H=[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];function F(t){const i=new URL(t,"https://example.com/"),r=i.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let n,o,s,a,c,u;return new URLSearchParams(i.search).forEach(((t,i)=>{"_fields"===i?s=t.split(","):"_page"===i?a=parseInt(t):"_count"===i?c=parseInt(t):"_total"===i?u=t:"_sort"===i?(o=o||[],o.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(n=n||[],n.push(function(t,i){let r=t,n=e.Operator.EQUALS;for(const e of B){const t=r.indexOf(":"+e);-1!==t&&(n=e,r=r.substring(0,t))}for(const e of H)i.match(new RegExp("^"+e+"\\d"))&&(n=e,i=i.substring(e.length));return{code:r,operator:n,value:i}}(i,t)))})),{resourceType:r,filters:n,fields:s,page:a,count:c,total:u,sortRules:o}}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=B.includes(e.operator)?":"+e.operator:"",i=H.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${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)),e.page&&e.page>0&&t.push("_page="+e.page),e.count&&e.count>0&&t.push("_count="+e.count),e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var Q,X,q,V,Y,z,G,J,K,Z,ee,te,ie,re,ne,oe,se,ae,ce,ue,he,de,le,fe,pe,me,ve,ge,ye,Te,Ee,we,Se;class Re{constructor(){Q.set(this,void 0),r(this,Q,"undefined"!=typeof localStorage?localStorage:new Oe,"f")}clear(){i(this,Q,"f").clear()}getString(e){return i(this,Q,"f").getItem(e)||void 0}setString(e,t){t?i(this,Q,"f").setItem(e,t):i(this,Q,"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)}}Q=new WeakMap;class Oe{constructor(){X.set(this,void 0),r(this,X,new Map,"f")}get length(){return i(this,X,"f").size}clear(){i(this,X,"f").clear()}getItem(e){var t;return null!==(t=i(this,X,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?i(this,X,"f").set(e,t):i(this,X,"f").delete(e)}removeItem(e){i(this,X,"f").delete(e)}key(e){return Array.from(i(this,X,"f").keys())[e]}}function Ce(){return{types:{}}}function Pe(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function Ue(e,t){var i;const r=t.name;if(!r)return;e.types[r]=Pe(r,t.description);const n=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(n){const t=n.filter((e=>e.path!==r&&e.path));t.forEach((t=>function(e,t){var i,r;const n=t.path,o=null===(r=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===r?void 0:r.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=n.split("."),a=be(s);a in e.types||(e.types[a]=Pe(a,t.definition),e.types[a].parentType=be(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const r=be(i.slice(0,i.length-1)),n=e.types[r],o=i[i.length-1];n.properties[o]=t}(e,t)))}}function Ae(e,t){if(t.base)for(const i of t.base){const r=e.types[i];r&&(r.searchParams||(r.searchParams={}),r.searchParams[t.code]=t)}}function be(e){return e.map(w).join("")}X=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 ke="launch/patient openid fhirUser offline_access user/*.*";function _e(){return window.location.protocol+"//"+window.location.host+"/"}var Ie,Ne;Y=new WeakMap,z=new WeakMap,G=new WeakMap,J=new WeakMap,K=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ie=new WeakMap,re=new WeakMap,ne=new WeakMap,oe=new WeakMap,se=new WeakMap,ae=new WeakMap,ce=new WeakMap,ue=new WeakMap,V=new WeakSet,he=function(e){const t=this.getLogins().filter((t=>{var i,r;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(r=e.profile)||void 0===r?void 0:r.reference)}));t.push(e),i(this,z,"f").setObject("logins",t)},de=function(){return t(this,void 0,void 0,(function*(){return r(this,ae,new Promise(((e,t)=>{this.get("auth/me").then((t=>{r(this,ae,void 0,"f"),r(this,ce,t.profile,"f"),r(this,ue,t.config,"f"),this.dispatchEvent({type:"change"}),e(i(this,ce,"f"))})).catch(t)})),"f"),i(this,ae,"f")}))},le=function(e,r,n={}){return t(this,void 0,void 0,(function*(){i(this,se,"f")&&(yield i(this,se,"f")),r.startsWith("http")||(r=i(this,K,"f")+r),n.method=e,i(this,V,"m",fe).call(this,n);const t=yield i(this,Y,"f").call(this,r,n);if(401===t.status)return i(this,V,"m",ve).call(this,e,r,n);if(204===t.status||304===t.status)return;const o=yield t.json();return"OperationOutcome"!==o.resourceType||j(o)?o:Promise.reject(o)}))},fe=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),i(this,ne,"f")&&(t.Authorization="Bearer "+i(this,ne,"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},me=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=m(t))},ve=function(e,r,n){return t(this,void 0,void 0,(function*(){return i(this,V,"m",Te).call(this).then((()=>i(this,V,"m",le).call(this,e,r,n))).catch((e=>(this.clear(),i(this,re,"f")&&i(this,re,"f").call(this),Promise.reject(e))))}))},ge=function(){return t(this,void 0,void 0,(function*(){const e=S();i(this,z,"f").setString("pkceState",e);const r=S();i(this,z,"f").setString("codeVerifier",r);const n=E(yield function(e){return t(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))}))}(r)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");i(this,z,"f").setString("codeChallenge",n)}))},ye=function(){return t(this,void 0,void 0,(function*(){if(!i(this,ee,"f"))return Promise.reject("Missing authorize URL");i(this,V,"m",ge).call(this),window.location.assign(i(this,ee,"f")+"?response_type=code&state="+encodeURIComponent(i(this,z,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(i(this,Z,"f"))+"&redirect_uri="+encodeURIComponent(_e())+"&scope="+encodeURIComponent(ke)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(i(this,z,"f").getString("codeChallenge")))}))},Te=function(){return t(this,void 0,void 0,(function*(){return i(this,se,"f")?i(this,se,"f"):i(this,oe,"f")?(r(this,se,i(this,V,"m",Ee).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(i(this,Z,"f"))+"&refresh_token="+encodeURIComponent(i(this,oe,"f"))),"f"),void(yield i(this,se,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},Ee=function(e){return t(this,void 0,void 0,(function*(){return i(this,te,"f")?i(this,Y,"f").call(this,i(this,te,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>i(this,V,"m",we).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},we=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,r=function(e){const[t,i,r]=e.split(".");return O(i)}(t);return Date.now()>=1e3*r.exp?(this.clear(),Promise.reject("Token expired")):i(this,Z,"f")&&r.client_id!==i(this,Z,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile}))}))},Se=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};function Me(e,t){const i=t.split(" | ");for(const t of i){const i=xe(t);if(i.startsWith(e+"."))return i}}function xe(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}Ie=new WeakMap,e.SearchParameterType=void 0,(Ne=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",Ne.NUMBER="NUMBER",Ne.QUANTITY="QUANTITY",Ne.TEXT="TEXT",Ne.REFERENCE="REFERENCE",Ne.DATE="DATE",Ne.DATETIME="DATETIME",Ne.PERIOD="PERIOD",e.LegacyRepositoryClient=class{constructor(e){Ie.set(this,void 0),r(this,Ie,e,"f")}createResource(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").createResource(e);return[I,t]}catch(e){return[e,void 0]}}))}readResource(e,r){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").readResource(e,r);return[_,t]}catch(e){return[e,void 0]}}))}readReference(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").readReference(e);return[_,t]}catch(e){return[e,void 0]}}))}readHistory(e,r){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").readHistory(e,r);return[_,t]}catch(e){return[e,void 0]}}))}readVersion(e,r,n){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").readVersion(e,r,n);return[_,t]}catch(e){return[e,void 0]}}))}updateResource(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").updateResource(e);return[_,t]}catch(e){return[e,void 0]}}))}deleteResource(e,r){return t(this,void 0,void 0,(function*(){try{return yield i(this,Ie,"f").deleteResource(e,r),[_,void 0]}catch(e){return[e,void 0]}}))}patchResource(e,r,n){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,Ie,"f").patchResource(e,r,n);return[_,t]}catch(e){return[e,void 0]}}))}search(e){return t(this,void 0,void 0,(function*(){const t="string"==typeof e?F(e):e;try{const e=yield i(this,Ie,"f").search(t);return[_,e]}catch(e){return[e,void 0]}}))}},e.MedplumClient=class extends class{constructor(){R.set(this,void 0),r(this,R,{},"f")}addEventListener(e,t){i(this,R,"f")[e]||(i(this,R,"f")[e]=[]),i(this,R,"f")[e].push(t)}removeEventListeneer(e,t){const r=i(this,R,"f")[e];if(r)for(let e=0;e<r.length;e++)if(r[e]===t)return void r.splice(e,1)}dispatchEvent(e){const t=i(this,R,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t;if(super(),V.add(this),Y.set(this,void 0),z.set(this,void 0),G.set(this,void 0),J.set(this,void 0),K.set(this,void 0),Z.set(this,void 0),ee.set(this,void 0),te.set(this,void 0),ie.set(this,void 0),re.set(this,void 0),ne.set(this,void 0),oe.set(this,void 0),se.set(this,void 0),ae.set(this,void 0),ce.set(this,void 0),ue.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")}r(this,Y,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),r(this,z,new Re,"f"),r(this,G,{types:{}},"f"),r(this,J,new c(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),r(this,K,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),r(this,Z,(null==e?void 0:e.clientId)||"","f"),r(this,ee,(null==e?void 0:e.authorizeUrl)||i(this,K,"f")+"oauth2/authorize","f"),r(this,te,(null==e?void 0:e.tokenUrl)||i(this,K,"f")+"oauth2/token","f"),r(this,ie,(null==e?void 0:e.logoutUrl)||i(this,K,"f")+"oauth2/logout","f"),r(this,re,null==e?void 0:e.onUnauthenticated,"f");const n=this.getActiveLogin();n&&(r(this,ne,n.accessToken,"f"),r(this,oe,n.refreshToken,"f"),i(this,V,"m",de).call(this).catch(console.log)),i(this,V,"m",Se).call(this)}clear(){i(this,z,"f").clear(),i(this,J,"f").clear(),r(this,ne,void 0,"f"),r(this,oe,void 0,"f"),r(this,ce,void 0,"f"),r(this,ue,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,t={}){return i(this,V,"m",le).call(this,"GET",e,t)}post(e,t,r,n={}){return t&&i(this,V,"m",me).call(this,n,t),r&&i(this,V,"m",pe).call(this,n,r),i(this,V,"m",le).call(this,"POST",e,n)}put(e,t,r,n={}){return t&&i(this,V,"m",me).call(this,n,t),r&&i(this,V,"m",pe).call(this,n,r),i(this,V,"m",le).call(this,"PUT",e,n)}patch(e,t,r={}){return i(this,V,"m",me).call(this,r,t),i(this,V,"m",pe).call(this,r,"application/json-patch+json"),i(this,V,"m",le).call(this,"PATCH",e,r)}delete(e,t={}){return i(this,V,"m",le).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,r,n){return t(this,void 0,void 0,(function*(){return yield i(this,V,"m",ge).call(this),this.post("auth/login",{clientId:i(this,Z,"f"),scope:ke,codeChallengeMethod:"S256",codeChallenge:i(this,z,"f").getString("codeChallenge"),email:e,password:r,remember:!!n})}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield i(this,V,"m",ge).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 i(this,V,"m",ye).call(this)}signOutWithRedirect(){window.location.assign(i(this,ie,"f"))}fhirUrl(...e){const t=[i(this,K,"f"),"fhir/R4"];return e.forEach((e=>t.push("/",encodeURIComponent(e)))),t.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+$(e),t)}searchOne(e,i={}){var r,n;return t(this,void 0,void 0,(function*(){const t="string"==typeof e?F(e):e;t.count=1;const o=yield this.search(t,i);return null===(n=null===(r=o.entry)||void 0===r?void 0:r[0])||void 0===n?void 0:n.resource}))}searchResources(e,i={}){var r,n;return t(this,void 0,void 0,(function*(){const t=yield this.search(e,i);return null!==(n=null===(r=t.entry)||void 0===r?void 0:r.map((e=>e.resource)))&&void 0!==n?n:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,t){const r=i(this,J,"f").get(e+"/"+t);if(r&&!("then"in r))return r}getCachedReference(e){const t=i(this,J,"f").get(e.reference);if(t&&!("then"in t))return t}readResource(e,t){const r=e+"/"+t,n=this.get(this.fhirUrl(e,t)).then((e=>(i(this,J,"f").set(r,e),e)));return i(this,J,"f").set(r,n),n}readCached(e,t){const r=i(this,J,"f").get(e+"/"+t);return r?Promise.resolve(r):this.readResource(e,t)}readReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,r]=t.split("/");return this.readResource(i,r)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,r]=t.split("/");return this.readCached(i,r)}getSchema(){return i(this,G,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in i(this,G,"f").types)return Promise.resolve(i(this,G,"f"));const t=`{\n StructureDefinitionList(name: "${encodeURIComponent(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: "${encodeURIComponent(e)}") {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),r=yield this.graphql(t);for(const e of r.data.StructureDefinitionList)Ue(i(this,G,"f"),e);for(const e of r.data.SearchParameterList)Ae(i(this,G,"f"),e);return i(this,G,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createBinary(e,t,i){return this.post(this.fhirUrl("Binary")+"?_filename="+encodeURIComponent(t),e,i)}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return i(this,z,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){r(this,ne,e.accessToken,"f"),r(this,oe,e.refreshToken,"f"),r(this,ce,void 0,"f"),r(this,ue,void 0,"f"),i(this,z,"f").setObject("activeLogin",e),i(this,V,"m",he).call(this,e),i(this,J,"f").clear(),r(this,se,void 0,"f"),yield i(this,V,"m",de).call(this)}))}setAccessToken(e){r(this,ne,e,"f"),r(this,oe,void 0,"f"),r(this,ce,void 0,"f"),r(this,ue,void 0,"f")}getLogins(){var e;return null!==(e=i(this,z,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!i(this,ae,"f")}getProfile(){return i(this,ce,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return i(this,ae,"f")&&(yield i(this,ae,"f")),this.getProfile()}))}getUserConfiguration(){return i(this,ue,"f")}download(e,r={}){return t(this,void 0,void 0,(function*(){i(this,se,"f")&&(yield i(this,se,"f")),i(this,V,"m",fe).call(this,r);return(yield i(this,Y,"f").call(this,e,r)).blob()}))}processCode(e){if(!i(this,z,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const t=i(this,z,"f").getString("codeVerifier");return t?i(this,V,"m",Ee).call(this,"grant_type=authorization_code"+(i(this,Z,"f")?"&client_id="+encodeURIComponent(i(this,Z,"f")):"")+"&code_verifier="+encodeURIComponent(t)+"&redirect_uri="+encodeURIComponent(_e())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(e,r){return t(this,void 0,void 0,(function*(){return i(this,V,"m",Ee).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(e)+"&client_secret="+encodeURIComponent(r))}))}},e.OperationOutcomeError=D,e.accessDenied=L,e.allOk=_,e.arrayBufferToBase64=E,e.arrayBufferToHex=T,e.assertOk=function(e,t){if(!j(e)||void 0===t)throw new D(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=be,e.calculateAge=p,e.calculateAgeString=function(e,t){const{years:i,months:r,days:n}=p(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":r>=1?r.toString().padStart(3,"0")+"M":n.toString().padStart(3,"0")+"D"},e.capitalize=w,e.createReference=function(e){const t=h(e),i=l(e);return i===t?{reference:t}:{reference:t,display:i}},e.createSchema=Ce,e.createTypeSchema=Pe,e.created=I,e.deepEquals=function e(t,i,r){let n=Object.keys(t),o=Object.keys(i);if("meta"===r&&(n=n.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e)),o=o.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e))),n.length!==o.length)return!1;for(const r of n){const n=t[r],o=i[r];if(g(n)&&g(o)){if(!e(n,o,r))return!1}else if(n!==o)return!1}return!0},e.formatAddress=function(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.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=u,e.formatSearchQuery=$,e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=l,e.getExpressionForResourceType=Me,e.getImageSrc=function(e){if(d(e)){const t=e.photo;if(t)for(const e of t){const t=f(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=f(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(w).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getReferenceString=h,e.getSearchParameterDetails=function(t,i,r){var n,o,s,a;if("_lastUpdated"===r.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const c=r.code.split("-").reduce(((e,t,i)=>e+(i?w(t):t)),""),u=null===(n=Me(i,r.expression))||void 0===n?void 0:n.split(".");if(!u)return{columnName:c,type:e.SearchParameterType.TEXT};let h,d,l=i,f=!1;for(let i=1;i<u.length;i++){const r=u[i];if(h=null===(s=null===(o=t.types[l])||void 0===o?void 0:o.properties)||void 0===s?void 0:s[r],!h)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};if("*"===h.max&&(f=!0),d=null===(a=h.type)||void 0===a?void 0:a[0].code,!d)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};i<u.length-1&&("Element"===d||"BackboneElement"===d?l+=w(r):l=d)}const p=function(t,i){let r=e.SearchParameterType.TEXT;switch(t.type){case"date":r=e.SearchParameterType.DATE;break;case"number":r=e.SearchParameterType.NUMBER;break;case"quantity":r=e.SearchParameterType.QUANTITY;break;case"reference":r=e.SearchParameterType.REFERENCE;break;case"token":"boolean"===i&&(r=e.SearchParameterType.BOOLEAN)}return r}(r,d);return{columnName:c,type:p,elementDefinition:h,array:f}},e.getStatus=function(e){return e.id===C?200:e.id===P?201:e.id===A?304:e.id===k?403:e.id===b?404:e.id===U?410:400},e.gone=x,e.indexSearchParameter=Ae,e.indexStructureDefinition=Ue,e.isGone=function(e){return e.id===U},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===b},e.isOk=j,e.isProfileResource=d,e.notFound=M,e.notModified=N,e.parseSearchDefinition=F,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.stringify=m,Object.defineProperty(e,"__esModule",{value:!0})}));
!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,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function i(e,t,i,n){if("a"===i&&!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"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function n(e,t,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,i):r?r.value=i:t.set(e,i),i}var r,o,s,a;class c{constructor(e=10){r.add(this),o.set(this,void 0),s.set(this,void 0),n(this,o,e,"f"),n(this,s,new Map,"f")}clear(){i(this,s,"f").clear()}get(e){const t=i(this,s,"f").get(e);return t&&(i(this,s,"f").delete(e),i(this,s,"f").set(e,t)),t}set(e,t){i(this,s,"f").has(e)?i(this,s,"f").delete(e):i(this,s,"f").size>=i(this,o,"f")&&i(this,s,"f").delete(i(this,r,"m",a).call(this)),i(this,s,"f").set(e,t)}}function u(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function l(e){return e.resourceType+"/"+e.id}function d(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function h(e){var t,i;if(d(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return u(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===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:l(e)}function f(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function p(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const r=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),a=n.getUTCFullYear(),c=n.getUTCMonth(),u=n.getUTCDate();let l=a-r;(c<o||c===o&&u<s)&&l--;let d=12*a+c-(12*r+o);u<s&&d--;return{years:l,months:d,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function v(e,t){if(e)for(const i of e)i.linkId&&i.answer&&i.answer.length>0&&(t[i.linkId]=i.answer[0]),v(i.item,t)}function g(e,t){return JSON.stringify(e,m,t?2:void 0)}function m(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&function(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}(t)?void 0:t}function y(e){return null!==e&&"object"==typeof e}function T(e){return e.every((e=>"string"==typeof e))}o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){return i(this,s,"f").keys().next().value};const S=[];for(let e=0;e<256;e++)S.push(e.toString(16).padStart(2,"0"));function E(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=S[t[e]];return i.join("")}function w(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function R(e){return e.charAt(0).toUpperCase()+e.substr(1)}function O(){const e=new Uint32Array(28);return crypto.getRandomValues(e),E(e.buffer)}var A;function P(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,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(i);return JSON.parse(n)}A=new WeakMap;const C="ok",U="created",b="gone",k="not-modified",_="not-found",I="access-denied",M={resourceType:"OperationOutcome",id:C,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},N={resourceType:"OperationOutcome",id:U,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},x={resourceType:"OperationOutcome",id:k,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},L={resourceType:"OperationOutcome",id:_,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},j={resourceType:"OperationOutcome",id:b,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},D={resourceType:"OperationOutcome",id:I,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function W(e){return e.id===C||e.id===U||e.id===k}class B extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var H;e.Operator=void 0,(H=e.Operator||(e.Operator={})).EQUALS="eq",H.NOT_EQUALS="ne",H.GREATER_THAN="gt",H.LESS_THAN="lt",H.GREATER_THAN_OR_EQUALS="ge",H.LESS_THAN_OR_EQUALS="le",H.STARTS_AFTER="sa",H.ENDS_BEFORE="eb",H.APPROXIMATELY="ap",H.CONTAINS="contains",H.EXACT="exact",H.TEXT="text",H.ABOVE="above",H.BELOW="below",H.IN="in",H.NOT_IN="not-in",H.OF_TYPE="of-type";const F=[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],Q=[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];function $(t){const i=new URL(t,"https://example.com/"),n=i.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let r,o,s,a,c,u;return new URLSearchParams(i.search).forEach(((t,i)=>{"_fields"===i?s=t.split(","):"_page"===i?a=parseInt(t):"_count"===i?c=parseInt(t):"_total"===i?u=t:"_sort"===i?(o=o||[],o.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(r=r||[],r.push(function(t,i){let n=t,r=e.Operator.EQUALS;for(const e of F){const t=n.indexOf(":"+e);-1!==t&&(r=e,n=n.substring(0,t))}for(const e of Q)i.match(new RegExp("^"+e+"\\d"))&&(r=e,i=i.substring(e.length));return{code:n,operator:r,value:i}}(i,t)))})),{resourceType:n,filters:r,fields:s,page:a,count:c,total:u,sortRules:o}}function X(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=F.includes(e.operator)?":"+e.operator:"",i=Q.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${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)),e.page&&e.page>0&&t.push("_page="+e.page),e.count&&e.count>0&&t.push("_count="+e.count),e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var q,V,G,Y,z,K,J,Z,ee,te,ie,ne,re,oe,se,ae,ce,ue,le,de,he,fe,pe,ve,ge,me,ye,Te,Se,Ee,we,Re,Oe;class Ae{constructor(){q.set(this,void 0),n(this,q,"undefined"!=typeof localStorage?localStorage:new Pe,"f")}clear(){i(this,q,"f").clear()}getString(e){return i(this,q,"f").getItem(e)||void 0}setString(e,t){t?i(this,q,"f").setItem(e,t):i(this,q,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?g(t):void 0)}}q=new WeakMap;class Pe{constructor(){V.set(this,void 0),n(this,V,new Map,"f")}get length(){return i(this,V,"f").size}clear(){i(this,V,"f").clear()}getItem(e){var t;return null!==(t=i(this,V,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?i(this,V,"f").set(e,t):i(this,V,"f").delete(e)}removeItem(e){i(this,V,"f").delete(e)}key(e){return Array.from(i(this,V,"f").keys())[e]}}function Ce(){return{types:{}}}function Ue(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 i;const n=t.name;if(!n)return;e.types[n]=Ue(n,t.description);const r=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(r){const t=r.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var i,n;const r=t.path,o=null===(n=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===n?void 0:n.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=r.split("."),a=_e(s);a in e.types||(e.types[a]=Ue(a,t.definition),e.types[a].parentType=_e(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const n=_e(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function ke(e,t){if(t.base)for(const i of t.base){const n=e.types[i];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function _e(e){return e.map(R).join("")}V=new WeakMap,e.PropertyType=void 0,(G=e.PropertyType||(e.PropertyType={})).Address="Address",G.Age="Age",G.Annotation="Annotation",G.Attachment="Attachment",G.BackboneElement="BackboneElement",G.CodeableConcept="CodeableConcept",G.Coding="Coding",G.ContactDetail="ContactDetail",G.ContactPoint="ContactPoint",G.Contributor="Contributor",G.Count="Count",G.DataRequirement="DataRequirement",G.Distance="Distance",G.Dosage="Dosage",G.Duration="Duration",G.Expression="Expression",G.Extension="Extension",G.HumanName="HumanName",G.Identifier="Identifier",G.MarketingStatus="MarketingStatus",G.Meta="Meta",G.Money="Money",G.Narrative="Narrative",G.ParameterDefinition="ParameterDefinition",G.Period="Period",G.Population="Population",G.ProdCharacteristic="ProdCharacteristic",G.ProductShelfLife="ProductShelfLife",G.Quantity="Quantity",G.Range="Range",G.Ratio="Ratio",G.Reference="Reference",G.RelatedArtifact="RelatedArtifact",G.Resource="Resource",G.SampledData="SampledData",G.Signature="Signature",G.SubstanceAmount="SubstanceAmount",G.SystemString="http://hl7.org/fhirpath/System.String",G.Timing="Timing",G.TriggerDefinition="TriggerDefinition",G.UsageContext="UsageContext",G.base64Binary="base64Binary",G.boolean="boolean",G.canonical="canonical",G.code="code",G.date="date",G.dateTime="dateTime",G.decimal="decimal",G.id="id",G.instant="instant",G.integer="integer",G.markdown="markdown",G.oid="oid",G.positiveInt="positiveInt",G.string="string",G.time="time",G.unsignedInt="unsignedInt",G.uri="uri",G.url="url",G.uuid="uuid";const Ie="launch/patient openid fhirUser offline_access user/*.*";function Me(){return window.location.protocol+"//"+window.location.host+"/"}z=new WeakMap,K=new WeakMap,J=new WeakMap,Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ie=new WeakMap,ne=new WeakMap,re=new WeakMap,oe=new WeakMap,se=new WeakMap,ae=new WeakMap,ce=new WeakMap,ue=new WeakMap,le=new WeakMap,de=new WeakMap,Y=new WeakSet,he=function(e){const t=this.getLogins().filter((t=>{var i,n;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));t.push(e),i(this,K,"f").setObject("logins",t)},fe=function(){return t(this,void 0,void 0,(function*(){return n(this,ue,new Promise(((e,t)=>{this.get("auth/me").then((t=>{n(this,ue,void 0,"f"),n(this,le,t.profile,"f"),n(this,de,t.config,"f"),this.dispatchEvent({type:"change"}),e(i(this,le,"f"))})).catch(t)})),"f"),i(this,ue,"f")}))},pe=function(e,n,r={}){return t(this,void 0,void 0,(function*(){i(this,ce,"f")&&(yield i(this,ce,"f")),n.startsWith("http")||(n=i(this,ee,"f")+n),r.method=e,i(this,Y,"m",ve).call(this,r);const t=yield i(this,z,"f").call(this,n,r);if(401===t.status)return i(this,Y,"m",ye).call(this,e,n,r);if(204===t.status||304===t.status)return;const o=yield t.json();return"OperationOutcome"!==o.resourceType||W(o)?o:Promise.reject(o)}))},ve=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),i(this,se,"f")&&(t.Authorization="Bearer "+i(this,se,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},ge=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},me=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=g(t))},ye=function(e,n,r){return t(this,void 0,void 0,(function*(){return i(this,Y,"m",Ee).call(this).then((()=>i(this,Y,"m",pe).call(this,e,n,r))).catch((e=>(this.clear(),i(this,oe,"f")&&i(this,oe,"f").call(this),Promise.reject(e))))}))},Te=function(){return t(this,void 0,void 0,(function*(){const e=O();i(this,K,"f").setString("pkceState",e);const n=O();i(this,K,"f").setString("codeVerifier",n);const r=w(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,"");i(this,K,"f").setString("codeChallenge",r)}))},Se=function(){return t(this,void 0,void 0,(function*(){if(!i(this,ie,"f"))return Promise.reject("Missing authorize URL");i(this,Y,"m",Te).call(this),window.location.assign(i(this,ie,"f")+"?response_type=code&state="+encodeURIComponent(i(this,K,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(i(this,te,"f"))+"&redirect_uri="+encodeURIComponent(Me())+"&scope="+encodeURIComponent(Ie)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(i(this,K,"f").getString("codeChallenge")))}))},Ee=function(){return t(this,void 0,void 0,(function*(){return i(this,ce,"f")?i(this,ce,"f"):i(this,ae,"f")?(n(this,ce,i(this,Y,"m",we).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(i(this,te,"f"))+"&refresh_token="+encodeURIComponent(i(this,ae,"f"))),"f"),void(yield i(this,ce,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},we=function(e){return t(this,void 0,void 0,(function*(){return i(this,ne,"f")?i(this,z,"f").call(this,i(this,ne,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>i(this,Y,"m",Re).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},Re=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,n=function(e){const[t,i,n]=e.split(".");return P(i)}(t);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):i(this,te,"f")&&n.client_id!==i(this,te,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile}))}))},Oe=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class Ne{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,i,n,r,o;const s=new Date,a=this.get("MSH"),c=(null===(e=null==a?void 0:a.get(2))||void 0===e?void 0:e.toString())||"",u=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",l=(null===(i=null==a?void 0:a.get(4))||void 0===i?void 0:i.toString())||"",d=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",h=(null===(r=null==a?void 0:a.get(9))||void 0===r?void 0:r.toString())||"",f=(null===(o=null==a?void 0:a.get(12))||void 0===o?void 0:o.toString())||"2.5.1";return new Ne([new xe(["MSH","^~\\&",l,d,c,u,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new xe(["MSA","AA",h,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new Ne(e.split(/[\r\n]+/).map((e=>xe.parse(e))))}}class xe{constructor(e){T(e)?this.fields=e.map((e=>Le.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 xe(e.split("|").map((e=>Le.parse(e))))}}class Le{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new Le(e.split("^"))}}var je,De;function We(e,t){const i=t.split(" | ");for(const t of i){const i=Be(t);if(i.startsWith(e+"."))return i}}function Be(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}je=new WeakMap,e.SearchParameterType=void 0,(De=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",De.NUMBER="NUMBER",De.QUANTITY="QUANTITY",De.TEXT="TEXT",De.REFERENCE="REFERENCE",De.DATE="DATE",De.DATETIME="DATETIME",De.PERIOD="PERIOD",e.COMPONENT_SEPARATOR="^",e.FIELD_SEPARATOR="|",e.Hl7Field=Le,e.Hl7Message=Ne,e.Hl7Segment=xe,e.LegacyRepositoryClient=class{constructor(e){je.set(this,void 0),n(this,je,e,"f")}createResource(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").createResource(e);return[N,t]}catch(e){return[e,void 0]}}))}readResource(e,n){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").readResource(e,n);return[M,t]}catch(e){return[e,void 0]}}))}readReference(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").readReference(e);return[M,t]}catch(e){return[e,void 0]}}))}readHistory(e,n){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").readHistory(e,n);return[M,t]}catch(e){return[e,void 0]}}))}readVersion(e,n,r){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").readVersion(e,n,r);return[M,t]}catch(e){return[e,void 0]}}))}updateResource(e){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").updateResource(e);return[M,t]}catch(e){return[e,void 0]}}))}deleteResource(e,n){return t(this,void 0,void 0,(function*(){try{return yield i(this,je,"f").deleteResource(e,n),[M,void 0]}catch(e){return[e,void 0]}}))}patchResource(e,n,r){return t(this,void 0,void 0,(function*(){try{const t=yield i(this,je,"f").patchResource(e,n,r);return[M,t]}catch(e){return[e,void 0]}}))}search(e){return t(this,void 0,void 0,(function*(){const t="string"==typeof e?$(e):e;try{const e=yield i(this,je,"f").search(t);return[M,e]}catch(e){return[e,void 0]}}))}},e.MedplumClient=class extends class{constructor(){A.set(this,void 0),n(this,A,{},"f")}addEventListener(e,t){i(this,A,"f")[e]||(i(this,A,"f")[e]=[]),i(this,A,"f")[e].push(t)}removeEventListeneer(e,t){const n=i(this,A,"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=i(this,A,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t;if(super(),Y.add(this),z.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),ie.set(this,void 0),ne.set(this,void 0),re.set(this,void 0),oe.set(this,void 0),se.set(this,void 0),ae.set(this,void 0),ce.set(this,void 0),ue.set(this,void 0),le.set(this,void 0),de.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,z,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),n(this,K,new Ae,"f"),n(this,J,{types:{}},"f"),n(this,Z,new c(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),n(this,ee,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),n(this,te,(null==e?void 0:e.clientId)||"","f"),n(this,ie,(null==e?void 0:e.authorizeUrl)||i(this,ee,"f")+"oauth2/authorize","f"),n(this,ne,(null==e?void 0:e.tokenUrl)||i(this,ee,"f")+"oauth2/token","f"),n(this,re,(null==e?void 0:e.logoutUrl)||i(this,ee,"f")+"oauth2/logout","f"),n(this,oe,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(n(this,se,r.accessToken,"f"),n(this,ae,r.refreshToken,"f"),i(this,Y,"m",fe).call(this).catch(console.log)),i(this,Y,"m",Oe).call(this)}clear(){i(this,K,"f").clear(),i(this,Z,"f").clear(),n(this,se,void 0,"f"),n(this,ae,void 0,"f"),n(this,le,void 0,"f"),n(this,de,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,t={}){return i(this,Y,"m",pe).call(this,"GET",e,t)}post(e,t,n,r={}){return t&&i(this,Y,"m",me).call(this,r,t),n&&i(this,Y,"m",ge).call(this,r,n),i(this,Y,"m",pe).call(this,"POST",e,r)}put(e,t,n,r={}){return t&&i(this,Y,"m",me).call(this,r,t),n&&i(this,Y,"m",ge).call(this,r,n),i(this,Y,"m",pe).call(this,"PUT",e,r)}patch(e,t,n={}){return i(this,Y,"m",me).call(this,n,t),i(this,Y,"m",ge).call(this,n,"application/json-patch+json"),i(this,Y,"m",pe).call(this,"PATCH",e,n)}delete(e,t={}){return i(this,Y,"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,n,r){return t(this,void 0,void 0,(function*(){return yield i(this,Y,"m",Te).call(this),this.post("auth/login",{clientId:i(this,te,"f"),scope:Ie,codeChallengeMethod:"S256",codeChallenge:i(this,K,"f").getString("codeChallenge"),email:e,password:n,remember:!!r})}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield i(this,Y,"m",Te).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 i(this,Y,"m",Se).call(this)}signOutWithRedirect(){window.location.assign(i(this,re,"f"))}fhirUrl(...e){const t=[i(this,ee,"f"),"fhir/R4"];return e.forEach((e=>t.push("/",encodeURIComponent(e)))),t.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+X(e),t)}searchOne(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t="string"==typeof e?$(e):e;t.count=1;const o=yield this.search(t,i);return null===(r=null===(n=o.entry)||void 0===n?void 0:n[0])||void 0===r?void 0:r.resource}))}searchResources(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t=yield this.search(e,i);return null!==(r=null===(n=t.entry)||void 0===n?void 0:n.map((e=>e.resource)))&&void 0!==r?r:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,t){const n=i(this,Z,"f").get(e+"/"+t);if(n&&!("then"in n))return n}getCachedReference(e){const t=i(this,Z,"f").get(e.reference);if(t&&!("then"in t))return t}readResource(e,t){const n=e+"/"+t,r=this.get(this.fhirUrl(e,t)).then((e=>(i(this,Z,"f").set(n,e),e)));return i(this,Z,"f").set(n,r),r}readCached(e,t){const n=i(this,Z,"f").get(e+"/"+t);return n?Promise.resolve(n):this.readResource(e,t)}readReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readResource(i,n)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return i(this,J,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in i(this,J,"f").types)return Promise.resolve(i(this,J,"f"));const t=`{\n StructureDefinitionList(name: "${encodeURIComponent(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: "${encodeURIComponent(e)}") {\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(i(this,J,"f"),e);for(const e of n.data.SearchParameterList)ke(i(this,J,"f"),e);return i(this,J,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createBinary(e,t,i){return this.post(this.fhirUrl("Binary")+"?_filename="+encodeURIComponent(t),e,i)}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return i(this,K,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){n(this,se,e.accessToken,"f"),n(this,ae,e.refreshToken,"f"),n(this,le,void 0,"f"),n(this,de,void 0,"f"),i(this,K,"f").setObject("activeLogin",e),i(this,Y,"m",he).call(this,e),i(this,Z,"f").clear(),n(this,ce,void 0,"f"),yield i(this,Y,"m",fe).call(this)}))}setAccessToken(e){n(this,se,e,"f"),n(this,ae,void 0,"f"),n(this,le,void 0,"f"),n(this,de,void 0,"f")}getLogins(){var e;return null!==(e=i(this,K,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!i(this,ue,"f")}getProfile(){return i(this,le,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return i(this,ue,"f")&&(yield i(this,ue,"f")),this.getProfile()}))}getUserConfiguration(){return i(this,de,"f")}download(e,n={}){return t(this,void 0,void 0,(function*(){i(this,ce,"f")&&(yield i(this,ce,"f")),i(this,Y,"m",ve).call(this,n);return(yield i(this,z,"f").call(this,e,n)).blob()}))}processCode(e){if(!i(this,K,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const t=i(this,K,"f").getString("codeVerifier");return t?i(this,Y,"m",we).call(this,"grant_type=authorization_code"+(i(this,te,"f")?"&client_id="+encodeURIComponent(i(this,te,"f")):"")+"&code_verifier="+encodeURIComponent(t)+"&redirect_uri="+encodeURIComponent(Me())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(e,n){return t(this,void 0,void 0,(function*(){return i(this,Y,"m",we).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(e)+"&client_secret="+encodeURIComponent(n))}))}},e.OperationOutcomeError=B,e.SEGMENT_SEPARATOR="\r",e.accessDenied=D,e.allOk=M,e.arrayBufferToBase64=w,e.arrayBufferToHex=E,e.assertOk=function(e,t){if(!W(e)||void 0===t)throw new B(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=_e,e.calculateAge=p,e.calculateAgeString=function(e,t){const{years:i,months:n,days:r}=p(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":r.toString().padStart(3,"0")+"D"},e.capitalize=R,e.createReference=function(e){const t=l(e),i=h(e);return i===t?{reference:t}:{reference:t,display:i}},e.createSchema=Ce,e.createTypeSchema=Ue,e.created=N,e.deepEquals=function e(t,i,n){let r=Object.keys(t),o=Object.keys(i);if("meta"===n&&(r=r.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e)),o=o.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e))),r.length!==o.length)return!1;for(const n of r){const r=t[n],o=i[n];if(y(r)&&y(o)){if(!e(r,o,n))return!1}else if(r!==o)return!1}return!0},e.formatAddress=function(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.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=u,e.formatSearchQuery=X,e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=h,e.getExpressionForResourceType=We,e.getExtensionValue=function(e,...t){var i;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(i=null==n?void 0:n.extension)||void 0===i?void 0:i.find((i=>i.url===t[e]));return null==n?void 0:n.valueString},e.getImageSrc=function(e){if(d(e)){const t=e.photo;if(t)for(const e of t){const t=f(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=f(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(R).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getQuestionnaireAnswers=function(e){const t={};return v(e.item,t),t},e.getReferenceString=l,e.getSearchParameterDetails=function(t,i,n){var r,o,s,a;if("_lastUpdated"===n.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const c=n.code.split("-").reduce(((e,t,i)=>e+(i?R(t):t)),""),u=null===(r=We(i,n.expression))||void 0===r?void 0:r.split(".");if(!u)return{columnName:c,type:e.SearchParameterType.TEXT};let l,d,h=i,f=!1;for(let i=1;i<u.length;i++){const n=u[i];if(l=null===(s=null===(o=t.types[h])||void 0===o?void 0:o.properties)||void 0===s?void 0:s[n],!l)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};if("*"===l.max&&(f=!0),d=null===(a=l.type)||void 0===a?void 0:a[0].code,!d)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};i<u.length-1&&("Element"===d||"BackboneElement"===d?h+=R(n):h=d)}const p=function(t,i){let n=e.SearchParameterType.TEXT;switch(t.type){case"date":n=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"===i&&(n=e.SearchParameterType.BOOLEAN)}return n}(n,d);return{columnName:c,type:p,elementDefinition:l,array:f}},e.getStatus=function(e){return e.id===C?200:e.id===U?201:e.id===k?304:e.id===I?403:e.id===_?404:e.id===b?410:400},e.gone=j,e.indexSearchParameter=ke,e.indexStructureDefinition=be,e.isGone=function(e){return e.id===b},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===_},e.isObject=y,e.isOk=W,e.isProfileResource=d,e.isStringArray=T,e.notFound=L,e.notModified=x,e.parseSearchDefinition=$,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.stringify=g,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.min.js.map

@@ -1,16 +0,2 @@

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function e(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{a(n.next(e))}catch(e){o(e)}}function c(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))}function t(e,t,i,n){if("a"===i&&!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"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function i(e,t,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,i):r?r.value=i:t.set(e,i),i}var n,r,o,s;class c{constructor(e=10){n.add(this),r.set(this,void 0),o.set(this,void 0),i(this,r,e,"f"),i(this,o,new Map,"f")}clear(){t(this,o,"f").clear()}get(e){const i=t(this,o,"f").get(e);return i&&(t(this,o,"f").delete(e),t(this,o,"f").set(e,i)),i}set(e,i){t(this,o,"f").has(e)?t(this,o,"f").delete(e):t(this,o,"f").size>=t(this,r,"f")&&t(this,o,"f").delete(t(this,n,"m",s).call(this)),t(this,o,"f").set(e,i)}}function a(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(", ").trim()}function u(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function h(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()}function d(e){return e.family||""}function l(e){const t=f(e),i=g(e);return i===t?{reference:t}:{reference:t,display:i}}function f(e){return e.resourceType+"/"+e.id}function p(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]}function v(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function g(e){var t,i;if(v(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return u(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===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:f(e)}function m(e){if(v(e)){const t=e.photo;if(t)for(const e of t){const t=y(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=y(e.photo);if(t)return t}}function y(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function T(e){return e?new Date(e):void 0}function E(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const r=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),c=n.getUTCFullYear(),a=n.getUTCMonth(),u=n.getUTCDate();let h=c-r;(a<o||a===o&&u<s)&&h--;let d=12*c+a-(12*r+o);u<s&&d--;return{years:h,months:d,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function w(e,t){const{years:i,months:n,days:r}=E(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":r.toString().padStart(3,"0")+"D"}function R(e,t){return JSON.stringify(e,U,t?2:void 0)}function U(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&function(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}(t)?void 0:t}function S(e,t,i){let n=Object.keys(e),r=Object.keys(t);if("meta"===i&&(n=n.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e)),r=r.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e))),n.length!==r.length)return!1;for(const i of n){const n=e[i],r=t[i];if(C(n)&&C(r)){if(!S(n,r,i))return!1}else if(n!==r)return!1}return!0}function C(e){return null!==e&&"object"==typeof e}r=new WeakMap,o=new WeakMap,n=new WeakSet,s=function(){return t(this,o,"f").keys().next().value};const A=[];for(let e=0;e<256;e++)A.push(e.toString(16).padStart(2,"0"));function b(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=A[t[e]];return i.join("")}function k(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function P(e){return e.charAt(0).toUpperCase()+e.substr(1)}function _(e){return e===e.toLowerCase()}function O(){const e=new Uint32Array(28);return crypto.getRandomValues(e),b(e.buffer)}var I;function M(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,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(i);return JSON.parse(n)}I=new WeakMap;const L={resourceType:"OperationOutcome",id:"ok",issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},N={resourceType:"OperationOutcome",id:"created",issue:[{severity:"information",code:"information",details:{text:"Created"}}]},j={resourceType:"OperationOutcome",id:"not-modified",issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},x={resourceType:"OperationOutcome",id:"not-found",issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},D={resourceType:"OperationOutcome",id:"gone",issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},W={resourceType:"OperationOutcome",id:"access-denied",issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function B(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}}function H(e){return"ok"===e.id||"created"===e.id||"not-modified"===e.id}function $(e){return"not-found"===e.id}function F(e){return"gone"===e.id}function Q(e){return"ok"===e.id?200:"created"===e.id?201:"not-modified"===e.id?304:"access-denied"===e.id?403:"not-found"===e.id?404:"gone"===e.id?410:400}function X(e,t){if(!H(e)||void 0===t)throw new V(e)}class V extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var Y;!function(e){e.EQUALS="eq",e.NOT_EQUALS="ne",e.GREATER_THAN="gt",e.LESS_THAN="lt",e.GREATER_THAN_OR_EQUALS="ge",e.LESS_THAN_OR_EQUALS="le",e.STARTS_AFTER="sa",e.ENDS_BEFORE="eb",e.APPROXIMATELY="ap",e.CONTAINS="contains",e.EXACT="exact",e.TEXT="text",e.ABOVE="above",e.BELOW="below",e.IN="in",e.NOT_IN="not-in",e.OF_TYPE="of-type"}(Y||(Y={}));const q=[Y.CONTAINS,Y.EXACT,Y.TEXT,Y.ABOVE,Y.BELOW,Y.IN,Y.NOT_IN,Y.OF_TYPE],z=[Y.NOT_EQUALS,Y.GREATER_THAN,Y.LESS_THAN,Y.GREATER_THAN_OR_EQUALS,Y.LESS_THAN_OR_EQUALS,Y.STARTS_AFTER,Y.ENDS_BEFORE,Y.APPROXIMATELY];function G(e){const t=new URL(e,"https://example.com/"),i=t.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let n,r,o,s,c,a;return new URLSearchParams(t.search).forEach(((e,t)=>{"_fields"===t?o=e.split(","):"_page"===t?s=parseInt(e):"_count"===t?c=parseInt(e):"_total"===t?a=e:"_sort"===t?(r=r||[],r.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(e))):(n=n||[],n.push(function(e,t){let i=e,n=Y.EQUALS;for(const e of q){const t=i.indexOf(":"+e);-1!==t&&(n=e,i=i.substring(0,t))}for(const e of z)t.match(new RegExp("^"+e+"\\d"))&&(n=e,t=t.substring(e.length));return{code:i,operator:n,value:t}}(t,e)))})),{resourceType:i,filters:n,fields:o,page:s,count:c,total:a,sortRules:r}}function J(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=q.includes(e.operator)?":"+e.operator:"",i=z.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${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)),e.page&&e.page>0&&t.push("_page="+e.page),e.count&&e.count>0&&t.push("_count="+e.count),e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var K,Z,ee,te,ie,ne,re,oe,se,ce,ae,ue,he,de,le,fe,pe,ve,ge,me,ye,Te,Ee,we,Re,Ue,Se,Ce,Ae,be,ke,Pe,_e;class Oe{constructor(){K.set(this,void 0),i(this,K,"undefined"!=typeof localStorage?localStorage:new Ie,"f")}clear(){t(this,K,"f").clear()}getString(e){return t(this,K,"f").getItem(e)||void 0}setString(e,i){i?t(this,K,"f").setItem(e,i):t(this,K,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?R(t):void 0)}}K=new WeakMap;class Ie{constructor(){Z.set(this,void 0),i(this,Z,new Map,"f")}get length(){return t(this,Z,"f").size}clear(){t(this,Z,"f").clear()}getItem(e){var i;return null!==(i=t(this,Z,"f").get(e))&&void 0!==i?i:null}setItem(e,i){i?t(this,Z,"f").set(e,i):t(this,Z,"f").delete(e)}removeItem(e){t(this,Z,"f").delete(e)}key(e){return Array.from(t(this,Z,"f").keys())[e]}}function Me(){return{types:{}}}function Le(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function Ne(e,t){var i;const n=t.name;if(!n)return;e.types[n]=Le(n,t.description);const r=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(r){const t=r.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var i,n;const r=t.path,o=null===(n=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===n?void 0:n.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=r.split("."),c=xe(s);c in e.types||(e.types[c]=Le(c,t.definition),e.types[c].parentType=xe(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const n=xe(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function je(e,t){if(t.base)for(const i of t.base){const n=e.types[i];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function xe(e){return e.map(P).join("")}function De(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(P).join(" ").replace("_"," ").replace(/\s+/g," ")}Z=new WeakMap,function(e){e.Address="Address",e.Age="Age",e.Annotation="Annotation",e.Attachment="Attachment",e.BackboneElement="BackboneElement",e.CodeableConcept="CodeableConcept",e.Coding="Coding",e.ContactDetail="ContactDetail",e.ContactPoint="ContactPoint",e.Contributor="Contributor",e.Count="Count",e.DataRequirement="DataRequirement",e.Distance="Distance",e.Dosage="Dosage",e.Duration="Duration",e.Expression="Expression",e.Extension="Extension",e.HumanName="HumanName",e.Identifier="Identifier",e.MarketingStatus="MarketingStatus",e.Meta="Meta",e.Money="Money",e.Narrative="Narrative",e.ParameterDefinition="ParameterDefinition",e.Period="Period",e.Population="Population",e.ProdCharacteristic="ProdCharacteristic",e.ProductShelfLife="ProductShelfLife",e.Quantity="Quantity",e.Range="Range",e.Ratio="Ratio",e.Reference="Reference",e.RelatedArtifact="RelatedArtifact",e.Resource="Resource",e.SampledData="SampledData",e.Signature="Signature",e.SubstanceAmount="SubstanceAmount",e.SystemString="http://hl7.org/fhirpath/System.String",e.Timing="Timing",e.TriggerDefinition="TriggerDefinition",e.UsageContext="UsageContext",e.base64Binary="base64Binary",e.boolean="boolean",e.canonical="canonical",e.code="code",e.date="date",e.dateTime="dateTime",e.decimal="decimal",e.id="id",e.instant="instant",e.integer="integer",e.markdown="markdown",e.oid="oid",e.positiveInt="positiveInt",e.string="string",e.time="time",e.unsignedInt="unsignedInt",e.uri="uri",e.url="url",e.uuid="uuid"}(ee||(ee={}));const We="launch/patient openid fhirUser offline_access user/*.*";class Be extends class{constructor(){I.set(this,void 0),i(this,I,{},"f")}addEventListener(e,i){t(this,I,"f")[e]||(t(this,I,"f")[e]=[]),t(this,I,"f")[e].push(i)}removeEventListeneer(e,i){const n=t(this,I,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===i)return void n.splice(e,1)}dispatchEvent(e){const i=t(this,I,"f")[e.type];return i&&i.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var n;if(super(),te.add(this),ie.set(this,void 0),ne.set(this,void 0),re.set(this,void 0),oe.set(this,void 0),se.set(this,void 0),ce.set(this,void 0),ae.set(this,void 0),ue.set(this,void 0),he.set(this,void 0),de.set(this,void 0),le.set(this,void 0),fe.set(this,void 0),pe.set(this,void 0),ve.set(this,void 0),ge.set(this,void 0),me.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")}i(this,ie,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),i(this,ne,new Oe,"f"),i(this,re,{types:{}},"f"),i(this,oe,new c(null!==(n=null==e?void 0:e.resourceCacheSize)&&void 0!==n?n:1e3),"f"),i(this,se,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),i(this,ce,(null==e?void 0:e.clientId)||"","f"),i(this,ae,(null==e?void 0:e.authorizeUrl)||t(this,se,"f")+"oauth2/authorize","f"),i(this,ue,(null==e?void 0:e.tokenUrl)||t(this,se,"f")+"oauth2/token","f"),i(this,he,(null==e?void 0:e.logoutUrl)||t(this,se,"f")+"oauth2/logout","f"),i(this,de,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(i(this,le,r.accessToken,"f"),i(this,fe,r.refreshToken,"f"),t(this,te,"m",Te).call(this).catch(console.log)),t(this,te,"m",_e).call(this)}clear(){t(this,ne,"f").clear(),t(this,oe,"f").clear(),i(this,le,void 0,"f"),i(this,fe,void 0,"f"),i(this,ge,void 0,"f"),i(this,me,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,i={}){return t(this,te,"m",Ee).call(this,"GET",e,i)}post(e,i,n,r={}){return i&&t(this,te,"m",Ue).call(this,r,i),n&&t(this,te,"m",Re).call(this,r,n),t(this,te,"m",Ee).call(this,"POST",e,r)}put(e,i,n,r={}){return i&&t(this,te,"m",Ue).call(this,r,i),n&&t(this,te,"m",Re).call(this,r,n),t(this,te,"m",Ee).call(this,"PUT",e,r)}patch(e,i,n={}){return t(this,te,"m",Ue).call(this,n,i),t(this,te,"m",Re).call(this,n,"application/json-patch+json"),t(this,te,"m",Ee).call(this,"PATCH",e,n)}delete(e,i={}){return t(this,te,"m",Ee).call(this,"DELETE",e,i)}register(t){return e(this,void 0,void 0,(function*(){const e=yield this.post("auth/register",t);yield this.setActiveLogin(e)}))}startLogin(i,n,r){return e(this,void 0,void 0,(function*(){return yield t(this,te,"m",Ce).call(this),this.post("auth/login",{clientId:t(this,ce,"f"),scope:We,codeChallengeMethod:"S256",codeChallenge:t(this,ne,"f").getString("codeChallenge"),email:i,password:n,remember:!!r})}))}startGoogleLogin(i){return e(this,void 0,void 0,(function*(){return yield t(this,te,"m",Ce).call(this),this.post("auth/google",i)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void t(this,te,"m",Ae).call(this)}signOutWithRedirect(){window.location.assign(t(this,he,"f"))}fhirUrl(...e){const i=[t(this,se,"f"),"fhir/R4"];return e.forEach((e=>i.push("/",encodeURIComponent(e)))),i.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+J(e),t)}searchOne(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e="string"==typeof t?G(t):t;e.count=1;const o=yield this.search(e,i);return null===(r=null===(n=o.entry)||void 0===n?void 0:n[0])||void 0===r?void 0:r.resource}))}searchResources(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e=yield this.search(t,i);return null!==(r=null===(n=e.entry)||void 0===n?void 0:n.map((e=>e.resource)))&&void 0!==r?r:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,i){const n=t(this,oe,"f").get(e+"/"+i);if(n&&!("then"in n))return n}getCachedReference(e){const i=t(this,oe,"f").get(e.reference);if(i&&!("then"in i))return i}readResource(e,i){const n=e+"/"+i,r=this.get(this.fhirUrl(e,i)).then((e=>(t(this,oe,"f").set(n,e),e)));return t(this,oe,"f").set(n,r),r}readCached(e,i){const n=t(this,oe,"f").get(e+"/"+i);return n?Promise.resolve(n):this.readResource(e,i)}readReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readResource(i,n)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return t(this,re,"f")}requestSchema(i){return e(this,void 0,void 0,(function*(){if(i in t(this,re,"f").types)return Promise.resolve(t(this,re,"f"));const e=`{\n StructureDefinitionList(name: "${encodeURIComponent(i)}") {\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: "${encodeURIComponent(i)}") {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(e);for(const e of n.data.StructureDefinitionList)Ne(t(this,re,"f"),e);for(const e of n.data.SearchParameterList)je(t(this,re,"f"),e);return t(this,re,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createBinary(e,t,i){return this.post(this.fhirUrl("Binary")+"?_filename="+encodeURIComponent(t),e,i)}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return t(this,ne,"f").getObject("activeLogin")}setActiveLogin(n){return e(this,void 0,void 0,(function*(){i(this,le,n.accessToken,"f"),i(this,fe,n.refreshToken,"f"),i(this,ge,void 0,"f"),i(this,me,void 0,"f"),t(this,ne,"f").setObject("activeLogin",n),t(this,te,"m",ye).call(this,n),t(this,oe,"f").clear(),i(this,pe,void 0,"f"),yield t(this,te,"m",Te).call(this)}))}setAccessToken(e){i(this,le,e,"f"),i(this,fe,void 0,"f"),i(this,ge,void 0,"f"),i(this,me,void 0,"f")}getLogins(){var e;return null!==(e=t(this,ne,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!t(this,ve,"f")}getProfile(){return t(this,ge,"f")}getProfileAsync(){return e(this,void 0,void 0,(function*(){return t(this,ve,"f")&&(yield t(this,ve,"f")),this.getProfile()}))}getUserConfiguration(){return t(this,me,"f")}download(i,n={}){return e(this,void 0,void 0,(function*(){t(this,pe,"f")&&(yield t(this,pe,"f")),t(this,te,"m",we).call(this,n);return(yield t(this,ie,"f").call(this,i,n)).blob()}))}processCode(e){if(!t(this,ne,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const i=t(this,ne,"f").getString("codeVerifier");return i?t(this,te,"m",ke).call(this,"grant_type=authorization_code"+(t(this,ce,"f")?"&client_id="+encodeURIComponent(t(this,ce,"f")):"")+"&code_verifier="+encodeURIComponent(i)+"&redirect_uri="+encodeURIComponent(He())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(i,n){return e(this,void 0,void 0,(function*(){return t(this,te,"m",ke).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(i)+"&client_secret="+encodeURIComponent(n))}))}}function He(){return window.location.protocol+"//"+window.location.host+"/"}var $e,Fe;ie=new WeakMap,ne=new WeakMap,re=new WeakMap,oe=new WeakMap,se=new WeakMap,ce=new WeakMap,ae=new WeakMap,ue=new WeakMap,he=new WeakMap,de=new WeakMap,le=new WeakMap,fe=new WeakMap,pe=new WeakMap,ve=new WeakMap,ge=new WeakMap,me=new WeakMap,te=new WeakSet,ye=function(e){const i=this.getLogins().filter((t=>{var i,n;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));i.push(e),t(this,ne,"f").setObject("logins",i)},Te=function(){return e(this,void 0,void 0,(function*(){return i(this,ve,new Promise(((e,n)=>{this.get("auth/me").then((n=>{i(this,ve,void 0,"f"),i(this,ge,n.profile,"f"),i(this,me,n.config,"f"),this.dispatchEvent({type:"change"}),e(t(this,ge,"f"))})).catch(n)})),"f"),t(this,ve,"f")}))},Ee=function(i,n,r={}){return e(this,void 0,void 0,(function*(){t(this,pe,"f")&&(yield t(this,pe,"f")),n.startsWith("http")||(n=t(this,se,"f")+n),r.method=i,t(this,te,"m",we).call(this,r);const e=yield t(this,ie,"f").call(this,n,r);if(401===e.status)return t(this,te,"m",Se).call(this,i,n,r);if(204===e.status||304===e.status)return;const o=yield e.json();return"OperationOutcome"!==o.resourceType||H(o)?o:Promise.reject(o)}))},we=function(e){e.headers||(e.headers={});const i=e.headers;i["Content-Type"]||(i["Content-Type"]="application/fhir+json"),t(this,le,"f")&&(i.Authorization="Bearer "+t(this,le,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Re=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},Ue=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=R(t))},Se=function(i,n,r){return e(this,void 0,void 0,(function*(){return t(this,te,"m",be).call(this).then((()=>t(this,te,"m",Ee).call(this,i,n,r))).catch((e=>(this.clear(),t(this,de,"f")&&t(this,de,"f").call(this),Promise.reject(e))))}))},Ce=function(){return e(this,void 0,void 0,(function*(){const i=O();t(this,ne,"f").setString("pkceState",i);const n=O();t(this,ne,"f").setString("codeVerifier",n);const r=k(yield function(t){return e(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");t(this,ne,"f").setString("codeChallenge",r)}))},Ae=function(){return e(this,void 0,void 0,(function*(){if(!t(this,ae,"f"))return Promise.reject("Missing authorize URL");t(this,te,"m",Ce).call(this),window.location.assign(t(this,ae,"f")+"?response_type=code&state="+encodeURIComponent(t(this,ne,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(t(this,ce,"f"))+"&redirect_uri="+encodeURIComponent(He())+"&scope="+encodeURIComponent(We)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(t(this,ne,"f").getString("codeChallenge")))}))},be=function(){return e(this,void 0,void 0,(function*(){return t(this,pe,"f")?t(this,pe,"f"):t(this,fe,"f")?(i(this,pe,t(this,te,"m",ke).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(t(this,ce,"f"))+"&refresh_token="+encodeURIComponent(t(this,fe,"f"))),"f"),void(yield t(this,pe,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},ke=function(i){return e(this,void 0,void 0,(function*(){return t(this,ue,"f")?t(this,ie,"f").call(this,t(this,ue,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>t(this,te,"m",Pe).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},Pe=function(i){return e(this,void 0,void 0,(function*(){const e=i.access_token,n=function(e){const[t,i,n]=e.split(".");return M(i)}(e);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):t(this,ce,"f")&&n.client_id!==t(this,ce,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:e,refreshToken:i.refresh_token,project:i.project,profile:i.profile}))}))},_e=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class Qe{constructor(e){$e.set(this,void 0),i(this,$e,e,"f")}createResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").createResource(i);return[N,e]}catch(e){return[e,void 0]}}))}readResource(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").readResource(i,n);return[L,e]}catch(e){return[e,void 0]}}))}readReference(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").readReference(i);return[L,e]}catch(e){return[e,void 0]}}))}readHistory(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").readHistory(i,n);return[L,e]}catch(e){return[e,void 0]}}))}readVersion(i,n,r){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").readVersion(i,n,r);return[L,e]}catch(e){return[e,void 0]}}))}updateResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").updateResource(i);return[L,e]}catch(e){return[e,void 0]}}))}deleteResource(i,n){return e(this,void 0,void 0,(function*(){try{return yield t(this,$e,"f").deleteResource(i,n),[L,void 0]}catch(e){return[e,void 0]}}))}patchResource(i,n,r){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,$e,"f").patchResource(i,n,r);return[L,e]}catch(e){return[e,void 0]}}))}search(i){return e(this,void 0,void 0,(function*(){const e="string"==typeof i?G(i):i;try{const i=yield t(this,$e,"f").search(e);return[L,i]}catch(e){return[e,void 0]}}))}}function Xe(e,t,i){var n,r,o,s;if("_lastUpdated"===i.code)return{columnName:"lastUpdated",type:Fe.DATETIME};const c=i.code.split("-").reduce(((e,t,i)=>e+(i?P(t):t)),"");const a=null===(n=Ve(t,i.expression))||void 0===n?void 0:n.split(".");if(!a)return{columnName:c,type:Fe.TEXT};let u,h,d=t,l=!1;for(let t=1;t<a.length;t++){const i=a[t];if(u=null===(o=null===(r=e.types[d])||void 0===r?void 0:r.properties)||void 0===o?void 0:o[i],!u)return{columnName:c,type:Fe.TEXT,array:l};if("*"===u.max&&(l=!0),h=null===(s=u.type)||void 0===s?void 0:s[0].code,!h)return{columnName:c,type:Fe.TEXT,array:l};t<a.length-1&&("Element"===h||"BackboneElement"===h?d+=P(i):d=h)}const f=function(e,t){let i=Fe.TEXT;switch(e.type){case"date":i=Fe.DATE;break;case"number":i=Fe.NUMBER;break;case"quantity":i=Fe.QUANTITY;break;case"reference":i=Fe.REFERENCE;break;case"token":"boolean"===t&&(i=Fe.BOOLEAN)}return i}(i,h);return{columnName:c,type:f,elementDefinition:u,array:l}}function Ve(e,t){const i=t.split(" | ");for(const t of i){const i=Ye(t);if(i.startsWith(e+"."))return i}}function Ye(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=new WeakMap,function(e){e.BOOLEAN="BOOLEAN",e.NUMBER="NUMBER",e.QUANTITY="QUANTITY",e.TEXT="TEXT",e.REFERENCE="REFERENCE",e.DATE="DATE",e.DATETIME="DATETIME",e.PERIOD="PERIOD"}(Fe||(Fe={}));export{Qe as LegacyRepositoryClient,Be as MedplumClient,V as OperationOutcomeError,Y as Operator,ee as PropertyType,Fe as SearchParameterType,W as accessDenied,L as allOk,k as arrayBufferToBase64,b as arrayBufferToHex,X as assertOk,B as badRequest,xe as buildTypeName,E as calculateAge,w as calculateAgeString,P as capitalize,l as createReference,Me as createSchema,Le as createTypeSchema,N as created,S as deepEquals,a as formatAddress,d as formatFamilyName,h as formatGivenName,u as formatHumanName,J as formatSearchQuery,T as getDateProperty,g as getDisplayString,Ve as getExpressionForResourceType,m as getImageSrc,De as getPropertyDisplayName,f as getReferenceString,Xe as getSearchParameterDetails,Q as getStatus,D as gone,je as indexSearchParameter,Ne as indexStructureDefinition,F as isGone,_ as isLowerCase,$ as isNotFound,H as isOk,v as isProfileResource,x as notFound,j as notModified,G as parseSearchDefinition,p as resolveId,R as stringify};
function e(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{a(n.next(e))}catch(e){o(e)}}function c(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))}function t(e,t,i,n){if("a"===i&&!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"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function i(e,t,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,i):r?r.value=i:t.set(e,i),i}var n,r,o,s;class c{constructor(e=10){n.add(this),r.set(this,void 0),o.set(this,void 0),i(this,r,e,"f"),i(this,o,new Map,"f")}clear(){t(this,o,"f").clear()}get(e){const i=t(this,o,"f").get(e);return i&&(t(this,o,"f").delete(e),t(this,o,"f").set(e,i)),i}set(e,i){t(this,o,"f").has(e)?t(this,o,"f").delete(e):t(this,o,"f").size>=t(this,r,"f")&&t(this,o,"f").delete(t(this,n,"m",s).call(this)),t(this,o,"f").set(e,i)}}function a(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(", ").trim()}function u(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function d(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()}function h(e){return e.family||""}function l(e){const t=f(e),i=g(e);return i===t?{reference:t}:{reference:t,display:i}}function f(e){return e.resourceType+"/"+e.id}function p(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]}function v(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function g(e){var t,i;if(v(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return u(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===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:f(e)}function m(e){if(v(e)){const t=e.photo;if(t)for(const e of t){const t=y(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=y(e.photo);if(t)return t}}function y(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function T(e){return e?new Date(e):void 0}function w(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const r=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),c=n.getUTCFullYear(),a=n.getUTCMonth(),u=n.getUTCDate();let d=c-r;(a<o||a===o&&u<s)&&d--;let h=12*c+a-(12*r+o);u<s&&h--;return{years:d,months:h,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function E(e,t){const{years:i,months:n,days:r}=w(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":r.toString().padStart(3,"0")+"D"}function S(e){const t={};return R(e.item,t),t}function R(e,t){if(e)for(const i of e)i.linkId&&i.answer&&i.answer.length>0&&(t[i.linkId]=i.answer[0]),R(i.item,t)}function U(e,...t){var i;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(i=null==n?void 0:n.extension)||void 0===i?void 0:i.find((i=>i.url===t[e]));return null==n?void 0:n.valueString}function C(e,t){return JSON.stringify(e,A,t?2:void 0)}function A(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&function(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}(t)?void 0:t}function b(e,t,i){let n=Object.keys(e),r=Object.keys(t);if("meta"===i&&(n=n.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e)),r=r.filter((e=>"versionId"!==e&&"lastUpdated"!==e&&"author"!==e))),n.length!==r.length)return!1;for(const i of n){const n=e[i],r=t[i];if(k(n)&&k(r)){if(!b(n,r,i))return!1}else if(n!==r)return!1}return!0}function k(e){return null!==e&&"object"==typeof e}function P(e){return e.every((e=>"string"==typeof e))}r=new WeakMap,o=new WeakMap,n=new WeakSet,s=function(){return t(this,o,"f").keys().next().value};const O=[];for(let e=0;e<256;e++)O.push(e.toString(16).padStart(2,"0"));function _(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=O[t[e]];return i.join("")}function I(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function M(e){return e.charAt(0).toUpperCase()+e.substr(1)}function L(e){return e===e.toLowerCase()}function j(){const e=new Uint32Array(28);return crypto.getRandomValues(e),_(e.buffer)}var N;function x(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,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(i);return JSON.parse(n)}N=new WeakMap;const D={resourceType:"OperationOutcome",id:"ok",issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},W={resourceType:"OperationOutcome",id:"created",issue:[{severity:"information",code:"information",details:{text:"Created"}}]},B={resourceType:"OperationOutcome",id:"not-modified",issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},H={resourceType:"OperationOutcome",id:"not-found",issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},$={resourceType:"OperationOutcome",id:"gone",issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},F={resourceType:"OperationOutcome",id:"access-denied",issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function Q(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}}function X(e){return"ok"===e.id||"created"===e.id||"not-modified"===e.id}function V(e){return"not-found"===e.id}function Y(e){return"gone"===e.id}function q(e){return"ok"===e.id?200:"created"===e.id?201:"not-modified"===e.id?304:"access-denied"===e.id?403:"not-found"===e.id?404:"gone"===e.id?410:400}function z(e,t){if(!X(e)||void 0===t)throw new G(e)}class G extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var K;!function(e){e.EQUALS="eq",e.NOT_EQUALS="ne",e.GREATER_THAN="gt",e.LESS_THAN="lt",e.GREATER_THAN_OR_EQUALS="ge",e.LESS_THAN_OR_EQUALS="le",e.STARTS_AFTER="sa",e.ENDS_BEFORE="eb",e.APPROXIMATELY="ap",e.CONTAINS="contains",e.EXACT="exact",e.TEXT="text",e.ABOVE="above",e.BELOW="below",e.IN="in",e.NOT_IN="not-in",e.OF_TYPE="of-type"}(K||(K={}));const J=[K.CONTAINS,K.EXACT,K.TEXT,K.ABOVE,K.BELOW,K.IN,K.NOT_IN,K.OF_TYPE],Z=[K.NOT_EQUALS,K.GREATER_THAN,K.LESS_THAN,K.GREATER_THAN_OR_EQUALS,K.LESS_THAN_OR_EQUALS,K.STARTS_AFTER,K.ENDS_BEFORE,K.APPROXIMATELY];function ee(e){const t=new URL(e,"https://example.com/"),i=t.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let n,r,o,s,c,a;return new URLSearchParams(t.search).forEach(((e,t)=>{"_fields"===t?o=e.split(","):"_page"===t?s=parseInt(e):"_count"===t?c=parseInt(e):"_total"===t?a=e:"_sort"===t?(r=r||[],r.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(e))):(n=n||[],n.push(function(e,t){let i=e,n=K.EQUALS;for(const e of J){const t=i.indexOf(":"+e);-1!==t&&(n=e,i=i.substring(0,t))}for(const e of Z)t.match(new RegExp("^"+e+"\\d"))&&(n=e,t=t.substring(e.length));return{code:i,operator:n,value:t}}(t,e)))})),{resourceType:i,filters:n,fields:o,page:s,count:c,total:a,sortRules:r}}function te(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=J.includes(e.operator)?":"+e.operator:"",i=Z.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${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)),e.page&&e.page>0&&t.push("_page="+e.page),e.count&&e.count>0&&t.push("_count="+e.count),e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var ie,ne,re,oe,se,ce,ae,ue,de,he,le,fe,pe,ve,ge,me,ye,Te,we,Ee,Se,Re,Ue,Ce,Ae,be,ke,Pe,Oe,_e,Ie,Me,Le;class je{constructor(){ie.set(this,void 0),i(this,ie,"undefined"!=typeof localStorage?localStorage:new Ne,"f")}clear(){t(this,ie,"f").clear()}getString(e){return t(this,ie,"f").getItem(e)||void 0}setString(e,i){i?t(this,ie,"f").setItem(e,i):t(this,ie,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?C(t):void 0)}}ie=new WeakMap;class Ne{constructor(){ne.set(this,void 0),i(this,ne,new Map,"f")}get length(){return t(this,ne,"f").size}clear(){t(this,ne,"f").clear()}getItem(e){var i;return null!==(i=t(this,ne,"f").get(e))&&void 0!==i?i:null}setItem(e,i){i?t(this,ne,"f").set(e,i):t(this,ne,"f").delete(e)}removeItem(e){t(this,ne,"f").delete(e)}key(e){return Array.from(t(this,ne,"f").keys())[e]}}function xe(){return{types:{}}}function De(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function We(e,t){var i;const n=t.name;if(!n)return;e.types[n]=De(n,t.description);const r=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(r){const t=r.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var i,n;const r=t.path,o=null===(n=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===n?void 0:n.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=r.split("."),c=He(s);c in e.types||(e.types[c]=De(c,t.definition),e.types[c].parentType=He(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const n=He(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function Be(e,t){if(t.base)for(const i of t.base){const n=e.types[i];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function He(e){return e.map(M).join("")}function $e(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(M).join(" ").replace("_"," ").replace(/\s+/g," ")}ne=new WeakMap,function(e){e.Address="Address",e.Age="Age",e.Annotation="Annotation",e.Attachment="Attachment",e.BackboneElement="BackboneElement",e.CodeableConcept="CodeableConcept",e.Coding="Coding",e.ContactDetail="ContactDetail",e.ContactPoint="ContactPoint",e.Contributor="Contributor",e.Count="Count",e.DataRequirement="DataRequirement",e.Distance="Distance",e.Dosage="Dosage",e.Duration="Duration",e.Expression="Expression",e.Extension="Extension",e.HumanName="HumanName",e.Identifier="Identifier",e.MarketingStatus="MarketingStatus",e.Meta="Meta",e.Money="Money",e.Narrative="Narrative",e.ParameterDefinition="ParameterDefinition",e.Period="Period",e.Population="Population",e.ProdCharacteristic="ProdCharacteristic",e.ProductShelfLife="ProductShelfLife",e.Quantity="Quantity",e.Range="Range",e.Ratio="Ratio",e.Reference="Reference",e.RelatedArtifact="RelatedArtifact",e.Resource="Resource",e.SampledData="SampledData",e.Signature="Signature",e.SubstanceAmount="SubstanceAmount",e.SystemString="http://hl7.org/fhirpath/System.String",e.Timing="Timing",e.TriggerDefinition="TriggerDefinition",e.UsageContext="UsageContext",e.base64Binary="base64Binary",e.boolean="boolean",e.canonical="canonical",e.code="code",e.date="date",e.dateTime="dateTime",e.decimal="decimal",e.id="id",e.instant="instant",e.integer="integer",e.markdown="markdown",e.oid="oid",e.positiveInt="positiveInt",e.string="string",e.time="time",e.unsignedInt="unsignedInt",e.uri="uri",e.url="url",e.uuid="uuid"}(re||(re={}));const Fe="launch/patient openid fhirUser offline_access user/*.*";class Qe extends class{constructor(){N.set(this,void 0),i(this,N,{},"f")}addEventListener(e,i){t(this,N,"f")[e]||(t(this,N,"f")[e]=[]),t(this,N,"f")[e].push(i)}removeEventListeneer(e,i){const n=t(this,N,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===i)return void n.splice(e,1)}dispatchEvent(e){const i=t(this,N,"f")[e.type];return i&&i.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var n;if(super(),oe.add(this),se.set(this,void 0),ce.set(this,void 0),ae.set(this,void 0),ue.set(this,void 0),de.set(this,void 0),he.set(this,void 0),le.set(this,void 0),fe.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),Te.set(this,void 0),we.set(this,void 0),Ee.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")}i(this,se,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),i(this,ce,new je,"f"),i(this,ae,{types:{}},"f"),i(this,ue,new c(null!==(n=null==e?void 0:e.resourceCacheSize)&&void 0!==n?n:1e3),"f"),i(this,de,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),i(this,he,(null==e?void 0:e.clientId)||"","f"),i(this,le,(null==e?void 0:e.authorizeUrl)||t(this,de,"f")+"oauth2/authorize","f"),i(this,fe,(null==e?void 0:e.tokenUrl)||t(this,de,"f")+"oauth2/token","f"),i(this,pe,(null==e?void 0:e.logoutUrl)||t(this,de,"f")+"oauth2/logout","f"),i(this,ve,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(i(this,ge,r.accessToken,"f"),i(this,me,r.refreshToken,"f"),t(this,oe,"m",Re).call(this).catch(console.log)),t(this,oe,"m",Le).call(this)}clear(){t(this,ce,"f").clear(),t(this,ue,"f").clear(),i(this,ge,void 0,"f"),i(this,me,void 0,"f"),i(this,we,void 0,"f"),i(this,Ee,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,i={}){return t(this,oe,"m",Ue).call(this,"GET",e,i)}post(e,i,n,r={}){return i&&t(this,oe,"m",be).call(this,r,i),n&&t(this,oe,"m",Ae).call(this,r,n),t(this,oe,"m",Ue).call(this,"POST",e,r)}put(e,i,n,r={}){return i&&t(this,oe,"m",be).call(this,r,i),n&&t(this,oe,"m",Ae).call(this,r,n),t(this,oe,"m",Ue).call(this,"PUT",e,r)}patch(e,i,n={}){return t(this,oe,"m",be).call(this,n,i),t(this,oe,"m",Ae).call(this,n,"application/json-patch+json"),t(this,oe,"m",Ue).call(this,"PATCH",e,n)}delete(e,i={}){return t(this,oe,"m",Ue).call(this,"DELETE",e,i)}register(t){return e(this,void 0,void 0,(function*(){const e=yield this.post("auth/register",t);yield this.setActiveLogin(e)}))}startLogin(i,n,r){return e(this,void 0,void 0,(function*(){return yield t(this,oe,"m",Pe).call(this),this.post("auth/login",{clientId:t(this,he,"f"),scope:Fe,codeChallengeMethod:"S256",codeChallenge:t(this,ce,"f").getString("codeChallenge"),email:i,password:n,remember:!!r})}))}startGoogleLogin(i){return e(this,void 0,void 0,(function*(){return yield t(this,oe,"m",Pe).call(this),this.post("auth/google",i)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void t(this,oe,"m",Oe).call(this)}signOutWithRedirect(){window.location.assign(t(this,pe,"f"))}fhirUrl(...e){const i=[t(this,de,"f"),"fhir/R4"];return e.forEach((e=>i.push("/",encodeURIComponent(e)))),i.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+te(e),t)}searchOne(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e="string"==typeof t?ee(t):t;e.count=1;const o=yield this.search(e,i);return null===(r=null===(n=o.entry)||void 0===n?void 0:n[0])||void 0===r?void 0:r.resource}))}searchResources(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e=yield this.search(t,i);return null!==(r=null===(n=e.entry)||void 0===n?void 0:n.map((e=>e.resource)))&&void 0!==r?r:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,i){const n=t(this,ue,"f").get(e+"/"+i);if(n&&!("then"in n))return n}getCachedReference(e){const i=t(this,ue,"f").get(e.reference);if(i&&!("then"in i))return i}readResource(e,i){const n=e+"/"+i,r=this.get(this.fhirUrl(e,i)).then((e=>(t(this,ue,"f").set(n,e),e)));return t(this,ue,"f").set(n,r),r}readCached(e,i){const n=t(this,ue,"f").get(e+"/"+i);return n?Promise.resolve(n):this.readResource(e,i)}readReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readResource(i,n)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return Promise.reject("Missing reference");const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return t(this,ae,"f")}requestSchema(i){return e(this,void 0,void 0,(function*(){if(i in t(this,ae,"f").types)return Promise.resolve(t(this,ae,"f"));const e=`{\n StructureDefinitionList(name: "${encodeURIComponent(i)}") {\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: "${encodeURIComponent(i)}") {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(e);for(const e of n.data.StructureDefinitionList)We(t(this,ae,"f"),e);for(const e of n.data.SearchParameterList)Be(t(this,ae,"f"),e);return t(this,ae,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createBinary(e,t,i){return this.post(this.fhirUrl("Binary")+"?_filename="+encodeURIComponent(t),e,i)}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return t(this,ce,"f").getObject("activeLogin")}setActiveLogin(n){return e(this,void 0,void 0,(function*(){i(this,ge,n.accessToken,"f"),i(this,me,n.refreshToken,"f"),i(this,we,void 0,"f"),i(this,Ee,void 0,"f"),t(this,ce,"f").setObject("activeLogin",n),t(this,oe,"m",Se).call(this,n),t(this,ue,"f").clear(),i(this,ye,void 0,"f"),yield t(this,oe,"m",Re).call(this)}))}setAccessToken(e){i(this,ge,e,"f"),i(this,me,void 0,"f"),i(this,we,void 0,"f"),i(this,Ee,void 0,"f")}getLogins(){var e;return null!==(e=t(this,ce,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!t(this,Te,"f")}getProfile(){return t(this,we,"f")}getProfileAsync(){return e(this,void 0,void 0,(function*(){return t(this,Te,"f")&&(yield t(this,Te,"f")),this.getProfile()}))}getUserConfiguration(){return t(this,Ee,"f")}download(i,n={}){return e(this,void 0,void 0,(function*(){t(this,ye,"f")&&(yield t(this,ye,"f")),t(this,oe,"m",Ce).call(this,n);return(yield t(this,se,"f").call(this,i,n)).blob()}))}processCode(e){if(!t(this,ce,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const i=t(this,ce,"f").getString("codeVerifier");return i?t(this,oe,"m",Ie).call(this,"grant_type=authorization_code"+(t(this,he,"f")?"&client_id="+encodeURIComponent(t(this,he,"f")):"")+"&code_verifier="+encodeURIComponent(i)+"&redirect_uri="+encodeURIComponent(Xe())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(i,n){return e(this,void 0,void 0,(function*(){return t(this,oe,"m",Ie).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(i)+"&client_secret="+encodeURIComponent(n))}))}}function Xe(){return window.location.protocol+"//"+window.location.host+"/"}se=new WeakMap,ce=new WeakMap,ae=new WeakMap,ue=new WeakMap,de=new WeakMap,he=new WeakMap,le=new WeakMap,fe=new WeakMap,pe=new WeakMap,ve=new WeakMap,ge=new WeakMap,me=new WeakMap,ye=new WeakMap,Te=new WeakMap,we=new WeakMap,Ee=new WeakMap,oe=new WeakSet,Se=function(e){const i=this.getLogins().filter((t=>{var i,n;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));i.push(e),t(this,ce,"f").setObject("logins",i)},Re=function(){return e(this,void 0,void 0,(function*(){return i(this,Te,new Promise(((e,n)=>{this.get("auth/me").then((n=>{i(this,Te,void 0,"f"),i(this,we,n.profile,"f"),i(this,Ee,n.config,"f"),this.dispatchEvent({type:"change"}),e(t(this,we,"f"))})).catch(n)})),"f"),t(this,Te,"f")}))},Ue=function(i,n,r={}){return e(this,void 0,void 0,(function*(){t(this,ye,"f")&&(yield t(this,ye,"f")),n.startsWith("http")||(n=t(this,de,"f")+n),r.method=i,t(this,oe,"m",Ce).call(this,r);const e=yield t(this,se,"f").call(this,n,r);if(401===e.status)return t(this,oe,"m",ke).call(this,i,n,r);if(204===e.status||304===e.status)return;const o=yield e.json();return"OperationOutcome"!==o.resourceType||X(o)?o:Promise.reject(o)}))},Ce=function(e){e.headers||(e.headers={});const i=e.headers;i["Content-Type"]||(i["Content-Type"]="application/fhir+json"),t(this,ge,"f")&&(i.Authorization="Bearer "+t(this,ge,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Ae=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},be=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=C(t))},ke=function(i,n,r){return e(this,void 0,void 0,(function*(){return t(this,oe,"m",_e).call(this).then((()=>t(this,oe,"m",Ue).call(this,i,n,r))).catch((e=>(this.clear(),t(this,ve,"f")&&t(this,ve,"f").call(this),Promise.reject(e))))}))},Pe=function(){return e(this,void 0,void 0,(function*(){const i=j();t(this,ce,"f").setString("pkceState",i);const n=j();t(this,ce,"f").setString("codeVerifier",n);const r=I(yield function(t){return e(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");t(this,ce,"f").setString("codeChallenge",r)}))},Oe=function(){return e(this,void 0,void 0,(function*(){if(!t(this,le,"f"))return Promise.reject("Missing authorize URL");t(this,oe,"m",Pe).call(this),window.location.assign(t(this,le,"f")+"?response_type=code&state="+encodeURIComponent(t(this,ce,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(t(this,he,"f"))+"&redirect_uri="+encodeURIComponent(Xe())+"&scope="+encodeURIComponent(Fe)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(t(this,ce,"f").getString("codeChallenge")))}))},_e=function(){return e(this,void 0,void 0,(function*(){return t(this,ye,"f")?t(this,ye,"f"):t(this,me,"f")?(i(this,ye,t(this,oe,"m",Ie).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(t(this,he,"f"))+"&refresh_token="+encodeURIComponent(t(this,me,"f"))),"f"),void(yield t(this,ye,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},Ie=function(i){return e(this,void 0,void 0,(function*(){return t(this,fe,"f")?t(this,se,"f").call(this,t(this,fe,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>t(this,oe,"m",Me).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},Me=function(i){return e(this,void 0,void 0,(function*(){const e=i.access_token,n=function(e){const[t,i,n]=e.split(".");return x(i)}(e);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):t(this,he,"f")&&n.client_id!==t(this,he,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:e,refreshToken:i.refresh_token,project:i.project,profile:i.profile}))}))},Le=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};const Ve="\r",Ye="|",qe="^";class ze{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,i,n,r,o;const s=new Date,c=this.get("MSH"),a=(null===(e=null==c?void 0:c.get(2))||void 0===e?void 0:e.toString())||"",u=(null===(t=null==c?void 0:c.get(3))||void 0===t?void 0:t.toString())||"",d=(null===(i=null==c?void 0:c.get(4))||void 0===i?void 0:i.toString())||"",h=(null===(n=null==c?void 0:c.get(5))||void 0===n?void 0:n.toString())||"",l=(null===(r=null==c?void 0:c.get(9))||void 0===r?void 0:r.toString())||"",f=(null===(o=null==c?void 0:c.get(12))||void 0===o?void 0:o.toString())||"2.5.1";return new ze([new Ge(["MSH","^~\\&",d,h,a,u,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new Ge(["MSA","AA",l,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new ze(e.split(/[\r\n]+/).map((e=>Ge.parse(e))))}}class Ge{constructor(e){P(e)?this.fields=e.map((e=>Ke.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 Ge(e.split("|").map((e=>Ke.parse(e))))}}class Ke{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new Ke(e.split("^"))}}var Je,Ze;class et{constructor(e){Je.set(this,void 0),i(this,Je,e,"f")}createResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").createResource(i);return[W,e]}catch(e){return[e,void 0]}}))}readResource(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").readResource(i,n);return[D,e]}catch(e){return[e,void 0]}}))}readReference(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").readReference(i);return[D,e]}catch(e){return[e,void 0]}}))}readHistory(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").readHistory(i,n);return[D,e]}catch(e){return[e,void 0]}}))}readVersion(i,n,r){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").readVersion(i,n,r);return[D,e]}catch(e){return[e,void 0]}}))}updateResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").updateResource(i);return[D,e]}catch(e){return[e,void 0]}}))}deleteResource(i,n){return e(this,void 0,void 0,(function*(){try{return yield t(this,Je,"f").deleteResource(i,n),[D,void 0]}catch(e){return[e,void 0]}}))}patchResource(i,n,r){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,Je,"f").patchResource(i,n,r);return[D,e]}catch(e){return[e,void 0]}}))}search(i){return e(this,void 0,void 0,(function*(){const e="string"==typeof i?ee(i):i;try{const i=yield t(this,Je,"f").search(e);return[D,i]}catch(e){return[e,void 0]}}))}}function tt(e,t,i){var n,r,o,s;if("_lastUpdated"===i.code)return{columnName:"lastUpdated",type:Ze.DATETIME};const c=i.code.split("-").reduce(((e,t,i)=>e+(i?M(t):t)),"");const a=null===(n=it(t,i.expression))||void 0===n?void 0:n.split(".");if(!a)return{columnName:c,type:Ze.TEXT};let u,d,h=t,l=!1;for(let t=1;t<a.length;t++){const i=a[t];if(u=null===(o=null===(r=e.types[h])||void 0===r?void 0:r.properties)||void 0===o?void 0:o[i],!u)return{columnName:c,type:Ze.TEXT,array:l};if("*"===u.max&&(l=!0),d=null===(s=u.type)||void 0===s?void 0:s[0].code,!d)return{columnName:c,type:Ze.TEXT,array:l};t<a.length-1&&("Element"===d||"BackboneElement"===d?h+=M(i):h=d)}const f=function(e,t){let i=Ze.TEXT;switch(e.type){case"date":i=Ze.DATE;break;case"number":i=Ze.NUMBER;break;case"quantity":i=Ze.QUANTITY;break;case"reference":i=Ze.REFERENCE;break;case"token":"boolean"===t&&(i=Ze.BOOLEAN)}return i}(i,d);return{columnName:c,type:f,elementDefinition:u,array:l}}function it(e,t){const i=t.split(" | ");for(const t of i){const i=nt(t);if(i.startsWith(e+"."))return i}}function nt(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}Je=new WeakMap,function(e){e.BOOLEAN="BOOLEAN",e.NUMBER="NUMBER",e.QUANTITY="QUANTITY",e.TEXT="TEXT",e.REFERENCE="REFERENCE",e.DATE="DATE",e.DATETIME="DATETIME",e.PERIOD="PERIOD"}(Ze||(Ze={}));export{qe as COMPONENT_SEPARATOR,Ye as FIELD_SEPARATOR,Ke as Hl7Field,ze as Hl7Message,Ge as Hl7Segment,et as LegacyRepositoryClient,Qe as MedplumClient,G as OperationOutcomeError,K as Operator,re as PropertyType,Ve as SEGMENT_SEPARATOR,Ze as SearchParameterType,F as accessDenied,D as allOk,I as arrayBufferToBase64,_ as arrayBufferToHex,z as assertOk,Q as badRequest,He as buildTypeName,w as calculateAge,E as calculateAgeString,M as capitalize,l as createReference,xe as createSchema,De as createTypeSchema,W as created,b as deepEquals,a as formatAddress,h as formatFamilyName,d as formatGivenName,u as formatHumanName,te as formatSearchQuery,T as getDateProperty,g as getDisplayString,it as getExpressionForResourceType,U as getExtensionValue,m as getImageSrc,$e as getPropertyDisplayName,S as getQuestionnaireAnswers,f as getReferenceString,tt as getSearchParameterDetails,q as getStatus,$ as gone,Be as indexSearchParameter,We as indexStructureDefinition,Y as isGone,L as isLowerCase,V as isNotFound,k as isObject,X as isOk,v as isProfileResource,P as isStringArray,H as notFound,B as notModified,ee as parseSearchDefinition,p as resolveId,C as stringify};
//# sourceMappingURL=index.min.js.map
import { Binary, Bundle, Project, ProjectMembership, Reference, Resource, UserConfiguration, ValueSet } from '@medplum/fhirtypes';
import { Operation } from 'fast-json-patch';
import type { Operation } from 'fast-json-patch';
import { EventTarget } from './eventtarget';

@@ -4,0 +4,0 @@ import { SearchRequest } from './search';

export * from './client';
export * from './format';
export * from './hl7';
export * from './outcomes';

@@ -4,0 +5,0 @@ export * from './repo';

@@ -1,2 +0,2 @@

import { Patient, Practitioner, Reference, RelatedPerson, Resource } from '@medplum/fhirtypes';
import { Patient, Practitioner, QuestionnaireResponse, QuestionnaireResponseItemAnswer, Reference, RelatedPerson, Resource } from '@medplum/fhirtypes';
export declare type ProfileResource = Patient | Practitioner | RelatedPerson;

@@ -69,2 +69,15 @@ /**

/**
* Returns all questionnaire answers as a map by link ID.
* @param response The questionnaire response resource.
* @returns Questionnaire answers mapped by link ID.
*/
export declare function getQuestionnaireAnswers(response: QuestionnaireResponse): Record<string, QuestionnaireResponseItemAnswer>;
/**
* Returns an extension value by extension URLs.
* @param resource The base resource.
* @param urls Array of extension URLs. Each entry represents a nested extension.
* @returns The extension value if found; undefined otherwise.
*/
export declare function getExtensionValue(resource: Resource, ...urls: string[]): string | undefined;
/**
* FHIR JSON stringify.

@@ -89,2 +102,14 @@ * Removes properties with empty string values.

/**
* Returns true if the input is an object.
* @param object The candidate object.
* @returns True if the input is a non-null non-undefined object.
*/
export declare function isObject(obj: unknown): obj is object;
/**
* Returns true if the input array is an array of strings.
* @param arr Input array.
* @returns True if the input array is an array of strings.
*/
export declare function isStringArray(arr: any[]): arr is string[];
/**
* Converts an ArrayBuffer to hex string.

@@ -91,0 +116,0 @@ * See: https://stackoverflow.com/a/55200387

{
"name": "@medplum/core",
"version": "0.9.0",
"version": "0.9.1",
"description": "Medplum TS/JS Library",

@@ -20,3 +20,3 @@ "author": "Medplum <hello@medplum.com>",

"devDependencies": {
"@medplum/fhirtypes": "0.9.0",
"@medplum/fhirtypes": "0.9.1",
"fast-json-patch": "3.1.1"

@@ -23,0 +23,0 @@ },

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc