@medplum/core 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +155 -235
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/esm/index.js +153 -235
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/types/cache.d.ts +1 -0
- package/dist/types/client.d.ts +32 -7
- package/dist/types/index.d.ts +2 -1
- package/dist/types/readablepromise.d.ts +43 -0
- package/dist/types/utils.d.ts +6 -0
- package/package.json +2 -2
- package/dist/types/repo.d.ts +0 -116
package/dist/esm/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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 A(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 U(e,t){return JSON.stringify(e,C,t?2:void 0)}function C(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&b(t)?void 0:t}function b(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function k(e,t,i){return e===t||(!(!b(e)||!b(t))||!b(e)&&!b(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!k(e[i],t[i]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(P(e)&&P(t)?function(e,t,i){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===i&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const i of n){if(!k(e[i],t[i],i))return!1}return!0}(e,t,i):(P(e)||P(t),!1))))}function P(e){return null!==e&&"object"==typeof e}function O(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 _=[];for(let e=0;e<256;e++)_.push(e.toString(16).padStart(2,"0"));function I(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=_[t[e]];return i.join("")}function M(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 L(e){return e.charAt(0).toUpperCase()+e.substr(1)}function j(e){return e===e.toLowerCase()}function N(){const e=new Uint32Array(28);return crypto.getRandomValues(e),I(e.buffer)}var x;function D(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)}x=new WeakMap;const W={resourceType:"OperationOutcome",id:"ok",issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},B={resourceType:"OperationOutcome",id:"created",issue:[{severity:"information",code:"information",details:{text:"Created"}}]},H={resourceType:"OperationOutcome",id:"not-modified",issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},$={resourceType:"OperationOutcome",id:"not-found",issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},F={resourceType:"OperationOutcome",id:"gone",issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},Q={resourceType:"OperationOutcome",id:"access-denied",issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function X(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}}function V(e){return"ok"===e.id||"created"===e.id||"not-modified"===e.id}function Y(e){return"not-found"===e.id}function q(e){return"gone"===e.id}function z(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 G(e,t){if(!V(e)||void 0===t)throw new K(e)}class K 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}}const J=20;var Z;!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"}(Z||(Z={}));const ee=[Z.CONTAINS,Z.EXACT,Z.TEXT,Z.ABOVE,Z.BELOW,Z.IN,Z.NOT_IN,Z.OF_TYPE],te=[Z.NOT_EQUALS,Z.GREATER_THAN,Z.LESS_THAN,Z.GREATER_THAN_OR_EQUALS,Z.LESS_THAN_OR_EQUALS,Z.STARTS_AFTER,Z.ENDS_BEFORE,Z.APPROXIMATELY];function ie(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(","):"_offset"===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=Z.EQUALS;for(const e of ee){const t=i.indexOf(":"+e);-1!==t&&(n=e,i=i.substring(0,t))}for(const e of te)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,offset:s,count:c,total:a,sortRules:r}}function ne(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=ee.includes(e.operator)?":"+e.operator:"",i=te.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)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var re,oe,se,ce,ae,ue,de,he,le,fe,pe,ve,ge,me,ye,Te,we,Ee,Se,Re,Ae,Ue,Ce,be,ke,Pe,Oe,_e,Ie,Me,Le,je,Ne;class xe{constructor(){re.set(this,void 0),i(this,re,"undefined"!=typeof localStorage?localStorage:new De,"f")}clear(){t(this,re,"f").clear()}getString(e){return t(this,re,"f").getItem(e)||void 0}setString(e,i){i?t(this,re,"f").setItem(e,i):t(this,re,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?U(t):void 0)}}re=new WeakMap;class De{constructor(){oe.set(this,void 0),i(this,oe,new Map,"f")}get length(){return t(this,oe,"f").size}clear(){t(this,oe,"f").clear()}getItem(e){var i;return null!==(i=t(this,oe,"f").get(e))&&void 0!==i?i:null}setItem(e,i){i?t(this,oe,"f").set(e,i):t(this,oe,"f").delete(e)}removeItem(e){t(this,oe,"f").delete(e)}key(e){return Array.from(t(this,oe,"f").keys())[e]}}function We(){return{types:{}}}function Be(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function He(e,t){var i;const n=t.name;if(!n)return;e.types[n]=Be(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=Fe(s);c in e.types||(e.types[c]=Be(c,t.definition),e.types[c].parentType=Fe(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=Fe(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function $e(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 Fe(e){return e.map(L).join("")}function Qe(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(L).join(" ").replace("_"," ").replace(/\s+/g," ")}oe=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"}(se||(se={}));const Xe="launch/patient openid fhirUser offline_access user/*.*";class Ve extends class{constructor(){x.set(this,void 0),i(this,x,{},"f")}addEventListener(e,i){t(this,x,"f")[e]||(t(this,x,"f")[e]=[]),t(this,x,"f")[e].push(i)}removeEventListeneer(e,i){const n=t(this,x,"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,x,"f")[e.type];return i&&i.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var n;if(super(),ce.add(this),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),Se.set(this,void 0),Re.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,ae,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),i(this,ue,new xe,"f"),i(this,de,{types:{}},"f"),i(this,he,new c(null!==(n=null==e?void 0:e.resourceCacheSize)&&void 0!==n?n:1e3),"f"),i(this,le,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),i(this,fe,(null==e?void 0:e.clientId)||"","f"),i(this,pe,(null==e?void 0:e.authorizeUrl)||t(this,le,"f")+"oauth2/authorize","f"),i(this,ve,(null==e?void 0:e.tokenUrl)||t(this,le,"f")+"oauth2/token","f"),i(this,ge,(null==e?void 0:e.logoutUrl)||t(this,le,"f")+"oauth2/logout","f"),i(this,me,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(i(this,ye,r.accessToken,"f"),i(this,Te,r.refreshToken,"f"),t(this,ce,"m",Ue).call(this).catch(console.log)),t(this,ce,"m",Ne).call(this)}clear(){t(this,ue,"f").clear(),t(this,he,"f").clear(),i(this,ye,void 0,"f"),i(this,Te,void 0,"f"),i(this,Se,void 0,"f"),i(this,Re,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,i={}){return t(this,ce,"m",Ce).call(this,"GET",e,i)}post(e,i,n,r={}){return i&&t(this,ce,"m",Pe).call(this,r,i),n&&t(this,ce,"m",ke).call(this,r,n),t(this,ce,"m",Ce).call(this,"POST",e,r)}put(e,i,n,r={}){return i&&t(this,ce,"m",Pe).call(this,r,i),n&&t(this,ce,"m",ke).call(this,r,n),t(this,ce,"m",Ce).call(this,"PUT",e,r)}patch(e,i,n={}){return t(this,ce,"m",Pe).call(this,n,i),t(this,ce,"m",ke).call(this,n,"application/json-patch+json"),t(this,ce,"m",Ce).call(this,"PATCH",e,n)}delete(e,i={}){return t(this,ce,"m",Ce).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,ce,"m",_e).call(this),this.post("auth/login",{clientId:t(this,fe,"f"),scope:Xe,codeChallengeMethod:"S256",codeChallenge:t(this,ue,"f").getString("codeChallenge"),email:i,password:n,remember:!!r})}))}startGoogleLogin(i){return e(this,void 0,void 0,(function*(){return yield t(this,ce,"m",_e).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,ce,"m",Ie).call(this)}signOutWithRedirect(){window.location.assign(t(this,ge,"f"))}fhirUrl(...e){const i=[t(this,le,"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)+ne(e),t)}searchOne(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e="string"==typeof t?ie(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,he,"f").get(e+"/"+i);if(n&&!("then"in n))return n}getCachedReference(e){const i=t(this,he,"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,he,"f").set(n,e),e)));return t(this,he,"f").set(n,r),r}readCached(e,i){const n=t(this,he,"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,de,"f")}requestSchema(i){return e(this,void 0,void 0,(function*(){if(i in t(this,de,"f").types)return Promise.resolve(t(this,de,"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)He(t(this,de,"f"),e);for(const e of n.data.SearchParameterList)$e(t(this,de,"f"),e);return t(this,de,"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,ue,"f").getObject("activeLogin")}setActiveLogin(n){return e(this,void 0,void 0,(function*(){i(this,ye,n.accessToken,"f"),i(this,Te,n.refreshToken,"f"),i(this,Se,void 0,"f"),i(this,Re,void 0,"f"),t(this,ue,"f").setObject("activeLogin",n),t(this,ce,"m",Ae).call(this,n),t(this,he,"f").clear(),i(this,we,void 0,"f"),yield t(this,ce,"m",Ue).call(this)}))}setAccessToken(e){i(this,ye,e,"f"),i(this,Te,void 0,"f"),i(this,Se,void 0,"f"),i(this,Re,void 0,"f")}getLogins(){var e;return null!==(e=t(this,ue,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!t(this,Ee,"f")}getProfile(){return t(this,Se,"f")}getProfileAsync(){return e(this,void 0,void 0,(function*(){return t(this,Ee,"f")&&(yield t(this,Ee,"f")),this.getProfile()}))}getUserConfiguration(){return t(this,Re,"f")}download(i,n={}){return e(this,void 0,void 0,(function*(){t(this,we,"f")&&(yield t(this,we,"f")),t(this,ce,"m",be).call(this,n);return(yield t(this,ae,"f").call(this,i,n)).blob()}))}processCode(e){if(!t(this,ue,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const i=t(this,ue,"f").getString("codeVerifier");return i?t(this,ce,"m",Le).call(this,"grant_type=authorization_code"+(t(this,fe,"f")?"&client_id="+encodeURIComponent(t(this,fe,"f")):"")+"&code_verifier="+encodeURIComponent(i)+"&redirect_uri="+encodeURIComponent(Ye())+"&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,ce,"m",Le).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(i)+"&client_secret="+encodeURIComponent(n))}))}}function Ye(){return window.location.protocol+"//"+window.location.host+"/"}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,Se=new WeakMap,Re=new WeakMap,ce=new WeakSet,Ae=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,ue,"f").setObject("logins",i)},Ue=function(){return e(this,void 0,void 0,(function*(){return i(this,Ee,new Promise(((e,n)=>{this.get("auth/me").then((n=>{i(this,Ee,void 0,"f"),i(this,Se,n.profile,"f"),i(this,Re,n.config,"f"),this.dispatchEvent({type:"change"}),e(t(this,Se,"f"))})).catch(n)})),"f"),t(this,Ee,"f")}))},Ce=function(i,n,r={}){return e(this,void 0,void 0,(function*(){t(this,we,"f")&&(yield t(this,we,"f")),n.startsWith("http")||(n=t(this,le,"f")+n),r.method=i,t(this,ce,"m",be).call(this,r);const e=yield t(this,ae,"f").call(this,n,r);if(401===e.status)return t(this,ce,"m",Oe).call(this,i,n,r);if(204===e.status||304===e.status)return;const o=yield e.json();return"OperationOutcome"!==(null==o?void 0:o.resourceType)||V(o)?o:Promise.reject(o)}))},be=function(e){e.headers||(e.headers={});const i=e.headers;i["Content-Type"]||(i["Content-Type"]="application/fhir+json"),t(this,ye,"f")&&(i.Authorization="Bearer "+t(this,ye,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},ke=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},Pe=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=U(t))},Oe=function(i,n,r){return e(this,void 0,void 0,(function*(){return t(this,ce,"m",Me).call(this).then((()=>t(this,ce,"m",Ce).call(this,i,n,r))).catch((e=>(this.clear(),t(this,me,"f")&&t(this,me,"f").call(this),Promise.reject(e))))}))},_e=function(){return e(this,void 0,void 0,(function*(){const i=N();t(this,ue,"f").setString("pkceState",i);const n=N();t(this,ue,"f").setString("codeVerifier",n);const r=M(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,ue,"f").setString("codeChallenge",r)}))},Ie=function(){return e(this,void 0,void 0,(function*(){if(!t(this,pe,"f"))return Promise.reject("Missing authorize URL");t(this,ce,"m",_e).call(this),window.location.assign(t(this,pe,"f")+"?response_type=code&state="+encodeURIComponent(t(this,ue,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(t(this,fe,"f"))+"&redirect_uri="+encodeURIComponent(Ye())+"&scope="+encodeURIComponent(Xe)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(t(this,ue,"f").getString("codeChallenge")))}))},Me=function(){return e(this,void 0,void 0,(function*(){return t(this,we,"f")?t(this,we,"f"):t(this,Te,"f")?(i(this,we,t(this,ce,"m",Le).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(t(this,fe,"f"))+"&refresh_token="+encodeURIComponent(t(this,Te,"f"))),"f"),void(yield t(this,we,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},Le=function(i){return e(this,void 0,void 0,(function*(){return t(this,ve,"f")?t(this,ae,"f").call(this,t(this,ve,"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,ce,"m",je).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},je=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 D(i)}(e);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):t(this,fe,"f")&&n.client_id!==t(this,fe,"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}))}))},Ne=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};const qe="\r",ze="|",Ge="^";class Ke{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 Ke([new Je(["MSH","^~\\&",d,h,a,u,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new Je(["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 Ke(e.split(/[\r\n]+/).map((e=>Je.parse(e))))}}class Je{constructor(e){O(e)?this.fields=e.map((e=>Ze.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 Je(e.split("|").map((e=>Ze.parse(e))))}}class Ze{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new Ze(e.split("^"))}}var et,tt;class it{constructor(e){et.set(this,void 0),i(this,et,e,"f")}createResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,et,"f").createResource(i);return[B,e]}catch(e){return[e,void 0]}}))}readResource(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,et,"f").readResource(i,n);return[W,e]}catch(e){return[e,void 0]}}))}readReference(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,et,"f").readReference(i);return[W,e]}catch(e){return[e,void 0]}}))}readHistory(i,n){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,et,"f").readHistory(i,n);return[W,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,et,"f").readVersion(i,n,r);return[W,e]}catch(e){return[e,void 0]}}))}updateResource(i){return e(this,void 0,void 0,(function*(){try{const e=yield t(this,et,"f").updateResource(i);return[W,e]}catch(e){return[e,void 0]}}))}deleteResource(i,n){return e(this,void 0,void 0,(function*(){try{return yield t(this,et,"f").deleteResource(i,n),[W,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,et,"f").patchResource(i,n,r);return[W,e]}catch(e){return[e,void 0]}}))}search(i){return e(this,void 0,void 0,(function*(){const e="string"==typeof i?ie(i):i;try{const i=yield t(this,et,"f").search(e);return[W,i]}catch(e){return[e,void 0]}}))}}function nt(e,t,i){var n,r,o,s;if("_lastUpdated"===i.code)return{columnName:"lastUpdated",type:tt.DATETIME};const c=i.code.split("-").reduce(((e,t,i)=>e+(i?L(t):t)),"");const a=null===(n=rt(t,i.expression))||void 0===n?void 0:n.split(".");if(!a)return{columnName:c,type:tt.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:tt.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:tt.TEXT,array:l};t<a.length-1&&("Element"===d||"BackboneElement"===d?h+=L(i):h=d)}const f=function(e,t){let i=tt.TEXT;switch(e.type){case"date":i=tt.DATE;break;case"number":i=tt.NUMBER;break;case"quantity":i=tt.QUANTITY;break;case"reference":i=tt.REFERENCE;break;case"token":"boolean"===t&&(i=tt.BOOLEAN)}return i}(i,d);return{columnName:c,type:f,elementDefinition:u,array:l}}function rt(e,t){const i=t.split(" | ");for(const t of i){const i=ot(t);if(i.startsWith(e+"."))return i}}function ot(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}et=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"}(tt||(tt={}));export{Ge as COMPONENT_SEPARATOR,J as DEFAULT_SEARCH_COUNT,ze as FIELD_SEPARATOR,Ze as Hl7Field,Ke as Hl7Message,Je as Hl7Segment,it as LegacyRepositoryClient,Ve as MedplumClient,K as OperationOutcomeError,Z as Operator,se as PropertyType,qe as SEGMENT_SEPARATOR,tt as SearchParameterType,Q as accessDenied,W as allOk,M as arrayBufferToBase64,I as arrayBufferToHex,G as assertOk,X as badRequest,Fe as buildTypeName,w as calculateAge,E as calculateAgeString,L as capitalize,l as createReference,We as createSchema,Be as createTypeSchema,B as created,k as deepEquals,a as formatAddress,h as formatFamilyName,d as formatGivenName,u as formatHumanName,ne as formatSearchQuery,T as getDateProperty,g as getDisplayString,rt as getExpressionForResourceType,A as getExtensionValue,m as getImageSrc,Qe as getPropertyDisplayName,S as getQuestionnaireAnswers,f as getReferenceString,nt as getSearchParameterDetails,z as getStatus,F as gone,$e as indexSearchParameter,He as indexStructureDefinition,q as isGone,j as isLowerCase,Y as isNotFound,P as isObject,V as isOk,v as isProfileResource,O as isStringArray,$ as notFound,H as notModified,ie as parseSearchDefinition,p as resolveId,U as stringify};
|
|
1
|
+
function e(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 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 a{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)}delete(e){t(this,o,"f").delete(e)}}function c(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 l(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 u(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()}function h(e){return e.family||""}function d(e){const t=f(e),i=v(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 g(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function v(e){var t,i;if(g(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return l(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(g(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 w(e){return e?new Date(e):void 0}function T(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(),l=n.getUTCDate();let u=a-r;(c<o||c===o&&l<s)&&u--;let h=12*a+c-(12*r+o);l<s&&h--;return{years:u,months:h,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function E(e,t){const{years:i,months:n,days:r}=T(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 A(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 U(e,t){return JSON.stringify(e,C,t?2:void 0)}function C(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&b(t)?void 0:t}function b(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function k(e,t,i){return e===t||(!(!b(e)||!b(t))||!b(e)&&!b(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!k(e[i],t[i]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(_(e)&&_(t)?function(e,t,i){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===i&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const i of n){if(!k(e[i],t[i],i))return!1}return!0}(e,t,i):(_(e)||_(t),!1))))}function P(e){return!!e.match(/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i)}function _(e){return null!==e&&"object"==typeof e}function O(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 I=[];for(let e=0;e<256;e++)I.push(e.toString(16).padStart(2,"0"));function M(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=I[t[e]];return i.join("")}function j(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 L(e){return e.charAt(0).toUpperCase()+e.substring(1)}function N(e){return e===e.toLowerCase()}function x(){const e=new Uint32Array(28);return crypto.getRandomValues(e),M(e.buffer)}var D;function W(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)}D=new WeakMap;const B={resourceType:"OperationOutcome",id:"ok",issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},H={resourceType:"OperationOutcome",id:"created",issue:[{severity:"information",code:"information",details:{text:"Created"}}]},$={resourceType:"OperationOutcome",id:"not-modified",issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},F={resourceType:"OperationOutcome",id:"not-found",issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},Q={resourceType:"OperationOutcome",id:"gone",issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},X={resourceType:"OperationOutcome",id:"access-denied",issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function Y(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}}function q(e){return"ok"===e.id||"created"===e.id||"not-modified"===e.id}function z(e){return"not-found"===e.id}function V(e){return"gone"===e.id}function G(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 K(e,t){if(!q(e)||void 0===t)throw new J(e)}class J 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 Z,ee,te,ie,ne;class re{constructor(e){this[ne]="ReadablePromise",Z.set(this,void 0),ee.set(this,"pending"),te.set(this,void 0),ie.set(this,void 0),i(this,Z,e.then((e=>(i(this,ee,"success","f"),i(this,te,e,"f"),e)),(e=>{throw i(this,ee,"error","f"),i(this,ie,e,"f"),e})),"f")}isPending(){return"pending"===t(this,ee,"f")}read(){switch(t(this,ee,"f")){case"pending":throw t(this,Z,"f");case"error":throw t(this,ie,"f");default:return t(this,te,"f")}}then(e,i){return t(this,Z,"f").then(e,i)}catch(e){return t(this,Z,"f").catch(e)}finally(e){return t(this,Z,"f").finally(e)}}Z=new WeakMap,ee=new WeakMap,te=new WeakMap,ie=new WeakMap,ne=Symbol.toStringTag;const oe=20;var se;!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"}(se||(se={}));const ae=[se.CONTAINS,se.EXACT,se.TEXT,se.ABOVE,se.BELOW,se.IN,se.NOT_IN,se.OF_TYPE],ce=[se.NOT_EQUALS,se.GREATER_THAN,se.LESS_THAN,se.GREATER_THAN_OR_EQUALS,se.LESS_THAN_OR_EQUALS,se.STARTS_AFTER,se.ENDS_BEFORE,se.APPROXIMATELY];function le(e){const t=new URL(e,"https://example.com/"),i=t.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let n,r,o,s,a,c;return new URLSearchParams(t.search).forEach(((e,t)=>{"_fields"===t?o=e.split(","):"_offset"===t?s=parseInt(e):"_count"===t?a=parseInt(e):"_total"===t?c=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=se.EQUALS;for(const e of ae){const t=i.indexOf(":"+e);-1!==t&&(n=e,i=i.substring(0,t))}for(const e of ce)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,offset:s,count:a,total:c,sortRules:r}}function ue(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=ae.includes(e.operator)?":"+e.operator:"",i=ce.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)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var he,de,fe,pe,ge,ve,me,ye,we,Te,Ee,Se,Re,Ae,Ue,Ce,be,ke,Pe,_e,Oe,Ie,Me,je,Le,Ne,xe,De,We,Be,He,$e,Fe;class Qe{constructor(){he.set(this,void 0),i(this,he,"undefined"!=typeof localStorage?localStorage:new Xe,"f")}clear(){t(this,he,"f").clear()}getString(e){return t(this,he,"f").getItem(e)||void 0}setString(e,i){i?t(this,he,"f").setItem(e,i):t(this,he,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?U(t):void 0)}}he=new WeakMap;class Xe{constructor(){de.set(this,void 0),i(this,de,new Map,"f")}get length(){return t(this,de,"f").size}clear(){t(this,de,"f").clear()}getItem(e){var i;return null!==(i=t(this,de,"f").get(e))&&void 0!==i?i:null}setItem(e,i){i?t(this,de,"f").set(e,i):t(this,de,"f").delete(e)}removeItem(e){t(this,de,"f").delete(e)}key(e){return Array.from(t(this,de,"f").keys())[e]}}function Ye(){return{types:{}}}function qe(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function ze(e,t){var i;const n=t.name;if(!n)return;e.types[n]=qe(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=Ge(s);a in e.types||(e.types[a]=qe(a,t.definition),e.types[a].parentType=Ge(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=Ge(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function Ve(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 Ge(e){return e.map(L).join("")}function Ke(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(L).join(" ").replace("_"," ").replace(/\s+/g," ")}de=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"}(fe||(fe={}));const Je="launch/patient openid fhirUser offline_access user/*.*";class Ze extends class{constructor(){D.set(this,void 0),i(this,D,{},"f")}addEventListener(e,i){t(this,D,"f")[e]||(t(this,D,"f")[e]=[]),t(this,D,"f")[e].push(i)}removeEventListeneer(e,i){const n=t(this,D,"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,D,"f")[e.type];return i&&i.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var n;if(super(),pe.add(this),ge.set(this,void 0),ve.set(this,void 0),me.set(this,void 0),ye.set(this,void 0),we.set(this,void 0),Te.set(this,void 0),Ee.set(this,void 0),Se.set(this,void 0),Re.set(this,void 0),Ae.set(this,void 0),Ue.set(this,void 0),Ce.set(this,void 0),be.set(this,void 0),ke.set(this,void 0),Pe.set(this,void 0),_e.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,ge,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),i(this,ve,new Qe,"f"),i(this,me,{types:{}},"f"),i(this,ye,new a(null!==(n=null==e?void 0:e.resourceCacheSize)&&void 0!==n?n:1e3),"f"),i(this,we,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),i(this,Te,(null==e?void 0:e.clientId)||"","f"),i(this,Ee,(null==e?void 0:e.authorizeUrl)||t(this,we,"f")+"oauth2/authorize","f"),i(this,Se,(null==e?void 0:e.tokenUrl)||t(this,we,"f")+"oauth2/token","f"),i(this,Re,(null==e?void 0:e.logoutUrl)||t(this,we,"f")+"oauth2/logout","f"),i(this,Ae,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(i(this,Ue,r.accessToken,"f"),i(this,Ce,r.refreshToken,"f"),t(this,pe,"m",Ie).call(this).catch(console.log)),t(this,pe,"m",Fe).call(this)}clear(){t(this,ve,"f").clear(),t(this,ye,"f").clear(),i(this,Ue,void 0,"f"),i(this,Ce,void 0,"f"),i(this,Pe,void 0,"f"),i(this,_e,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,i={}){if(!(null==i?void 0:i.cache)){const i=t(this,ye,"f").get(e);if(i)return i}const n=new re(t(this,pe,"m",Me).call(this,"GET",e,i));return t(this,ye,"f").set(e,n),n}post(e,i,n,r={}){return i&&t(this,pe,"m",Ne).call(this,r,i),n&&t(this,pe,"m",Le).call(this,r,n),t(this,ye,"f").delete(e),t(this,pe,"m",Me).call(this,"POST",e,r)}put(e,i,n,r={}){return i&&t(this,pe,"m",Ne).call(this,r,i),n&&t(this,pe,"m",Le).call(this,r,n),t(this,ye,"f").delete(e),t(this,pe,"m",Me).call(this,"PUT",e,r)}patch(e,i,n={}){return t(this,pe,"m",Ne).call(this,n,i),t(this,pe,"m",Le).call(this,n,"application/json-patch+json"),t(this,ye,"f").delete(e),t(this,pe,"m",Me).call(this,"PATCH",e,n)}delete(e,i={}){return t(this,ye,"f").delete(e),t(this,pe,"m",Me).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,pe,"m",De).call(this),this.post("auth/login",{clientId:t(this,Te,"f"),scope:Je,codeChallengeMethod:"S256",codeChallenge:t(this,ve,"f").getString("codeChallenge"),email:i,password:n,remember:!!r})}))}startGoogleLogin(i){return e(this,void 0,void 0,(function*(){return yield t(this,pe,"m",De).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,pe,"m",We).call(this)}signOutWithRedirect(){window.location.assign(t(this,Re,"f"))}fhirUrl(...e){const i=[t(this,we,"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)+ue(e),t)}searchOne(t,i={}){var n,r;return e(this,void 0,void 0,(function*(){const e="string"==typeof t?le(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,ye,"f").get(this.fhirUrl(e,i));return n&&!n.isPending()?n.read():void 0}getCachedReference(e){const t=e.reference,[i,n]=t.split("/");return this.getCached(i,n)}readResource(e,t){return this.get(this.fhirUrl(e,t))}readCached(e,t){return this.get(this.fhirUrl(e,t))}readReference(e){const t=null==e?void 0:e.reference;if(!t)return new re(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 new re(Promise.reject("Missing reference"));const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return t(this,me,"f")}requestSchema(i){return e(this,void 0,void 0,(function*(){if(i in t(this,me,"f").types)return Promise.resolve(t(this,me,"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)ze(t(this,me,"f"),e);for(const e of n.data.SearchParameterList)Ve(t(this,me,"f"),e);return t(this,me,"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){let n=this.fhirUrl("Binary");return t&&(n+="?_filename="+encodeURIComponent(t)),this.post(n,e,i)}createPdf(e,t){let i=this.fhirUrl("Binary")+"/$pdf";return t&&(i+="?_filename="+encodeURIComponent(t)),this.post(i,e,"application/json")}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,ve,"f").getObject("activeLogin")}setActiveLogin(n){return e(this,void 0,void 0,(function*(){i(this,Ue,n.accessToken,"f"),i(this,Ce,n.refreshToken,"f"),i(this,Pe,void 0,"f"),i(this,_e,void 0,"f"),t(this,ve,"f").setObject("activeLogin",n),t(this,pe,"m",Oe).call(this,n),t(this,ye,"f").clear(),i(this,be,void 0,"f"),yield t(this,pe,"m",Ie).call(this)}))}setAccessToken(e){i(this,Ue,e,"f"),i(this,Ce,void 0,"f"),i(this,Pe,void 0,"f"),i(this,_e,void 0,"f")}getLogins(){var e;return null!==(e=t(this,ve,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!t(this,ke,"f")}getProfile(){return t(this,Pe,"f")}getProfileAsync(){return e(this,void 0,void 0,(function*(){return t(this,ke,"f")&&(yield t(this,ke,"f")),this.getProfile()}))}getUserConfiguration(){return t(this,_e,"f")}download(i,n={}){return e(this,void 0,void 0,(function*(){t(this,be,"f")&&(yield t(this,be,"f")),t(this,pe,"m",je).call(this,n);return(yield t(this,ge,"f").call(this,i,n)).blob()}))}processCode(e){if(!t(this,ve,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const i=t(this,ve,"f").getString("codeVerifier");return i?t(this,pe,"m",He).call(this,"grant_type=authorization_code"+(t(this,Te,"f")?"&client_id="+encodeURIComponent(t(this,Te,"f")):"")+"&code_verifier="+encodeURIComponent(i)+"&redirect_uri="+encodeURIComponent(et())+"&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,pe,"m",He).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(i)+"&client_secret="+encodeURIComponent(n))}))}}function et(){return window.location.protocol+"//"+window.location.host+"/"}ge=new WeakMap,ve=new WeakMap,me=new WeakMap,ye=new WeakMap,we=new WeakMap,Te=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Re=new WeakMap,Ae=new WeakMap,Ue=new WeakMap,Ce=new WeakMap,be=new WeakMap,ke=new WeakMap,Pe=new WeakMap,_e=new WeakMap,pe=new WeakSet,Oe=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,ve,"f").setObject("logins",i)},Ie=function(){return e(this,void 0,void 0,(function*(){return i(this,ke,new Promise(((e,n)=>{this.get("auth/me").then((n=>{i(this,ke,void 0,"f"),i(this,Pe,n.profile,"f"),i(this,_e,n.config,"f"),this.dispatchEvent({type:"change"}),e(t(this,Pe,"f"))})).catch(n)})),"f"),t(this,ke,"f")}))},Me=function(i,n,r={}){return e(this,void 0,void 0,(function*(){t(this,be,"f")&&(yield t(this,be,"f")),n.startsWith("http")||(n=t(this,we,"f")+n),r.method=i,t(this,pe,"m",je).call(this,r);const e=yield t(this,ge,"f").call(this,n,r);if(401===e.status)return t(this,pe,"m",xe).call(this,i,n,r);if(204===e.status||304===e.status)return;const o=yield e.json();return"OperationOutcome"!==(null==o?void 0:o.resourceType)||q(o)?o:Promise.reject(o)}))},je=function(e){e.headers||(e.headers={});const i=e.headers;i["Content-Type"]||(i["Content-Type"]="application/fhir+json"),t(this,Ue,"f")&&(i.Authorization="Bearer "+t(this,Ue,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Le=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},Ne=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=U(t))},xe=function(i,n,r){return e(this,void 0,void 0,(function*(){return t(this,pe,"m",Be).call(this).then((()=>t(this,pe,"m",Me).call(this,i,n,r))).catch((e=>(this.clear(),t(this,Ae,"f")&&t(this,Ae,"f").call(this),Promise.reject(e))))}))},De=function(){return e(this,void 0,void 0,(function*(){const i=x();t(this,ve,"f").setString("pkceState",i);const n=x();t(this,ve,"f").setString("codeVerifier",n);const r=j(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,ve,"f").setString("codeChallenge",r)}))},We=function(){return e(this,void 0,void 0,(function*(){if(!t(this,Ee,"f"))return Promise.reject("Missing authorize URL");t(this,pe,"m",De).call(this),window.location.assign(t(this,Ee,"f")+"?response_type=code&state="+encodeURIComponent(t(this,ve,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(t(this,Te,"f"))+"&redirect_uri="+encodeURIComponent(et())+"&scope="+encodeURIComponent(Je)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(t(this,ve,"f").getString("codeChallenge")))}))},Be=function(){return e(this,void 0,void 0,(function*(){return t(this,be,"f")?t(this,be,"f"):t(this,Ce,"f")?(i(this,be,t(this,pe,"m",He).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(t(this,Te,"f"))+"&refresh_token="+encodeURIComponent(t(this,Ce,"f"))),"f"),void(yield t(this,be,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},He=function(i){return e(this,void 0,void 0,(function*(){return t(this,Se,"f")?t(this,ge,"f").call(this,t(this,Se,"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,pe,"m",$e).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},$e=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 W(i)}(e);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):t(this,Te,"f")&&n.client_id!==t(this,Te,"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}))}))},Fe=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};const tt="\r",it="|",nt="^";class rt{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())||"",l=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",u=(null===(i=null==a?void 0:a.get(4))||void 0===i?void 0:i.toString())||"",h=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",d=(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 rt([new ot(["MSH","^~\\&",u,h,c,l,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new ot(["MSA","AA",d,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new rt(e.split(/[\r\n]+/).map((e=>ot.parse(e))))}}class ot{constructor(e){O(e)?this.fields=e.map((e=>st.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 ot(e.split("|").map((e=>st.parse(e))))}}class st{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new st(e.split("^"))}}var at;function ct(e,t,i){var n,r,o,s;if("_lastUpdated"===i.code)return{columnName:"lastUpdated",type:at.DATETIME};const a=i.code.split("-").reduce(((e,t,i)=>e+(i?L(t):t)),"");const c=null===(n=lt(t,i.expression))||void 0===n?void 0:n.split(".");if(!c)return{columnName:a,type:at.TEXT};let l,u,h=t,d=!1;for(let t=1;t<c.length;t++){const i=c[t];if(l=null===(o=null===(r=e.types[h])||void 0===r?void 0:r.properties)||void 0===o?void 0:o[i],!l)return{columnName:a,type:at.TEXT,array:d};if("*"===l.max&&(d=!0),u=null===(s=l.type)||void 0===s?void 0:s[0].code,!u)return{columnName:a,type:at.TEXT,array:d};t<c.length-1&&("Element"===u||"BackboneElement"===u?h+=L(i):h=u)}const f=function(e,t){let i=at.TEXT;switch(e.type){case"date":i=at.DATE;break;case"number":i=at.NUMBER;break;case"quantity":i=at.QUANTITY;break;case"reference":i=at.REFERENCE;break;case"token":"boolean"===t&&(i=at.BOOLEAN)}return i}(i,u);return{columnName:a,type:f,elementDefinition:l,array:d}}function lt(e,t){const i=t.split(" | ");for(const t of i){const i=ut(t);if(i.startsWith(e+"."))return i}}function ut(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}!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"}(at||(at={}));export{nt as COMPONENT_SEPARATOR,oe as DEFAULT_SEARCH_COUNT,it as FIELD_SEPARATOR,st as Hl7Field,rt as Hl7Message,ot as Hl7Segment,a as LRUCache,Ze as MedplumClient,J as OperationOutcomeError,se as Operator,fe as PropertyType,re as ReadablePromise,tt as SEGMENT_SEPARATOR,at as SearchParameterType,X as accessDenied,B as allOk,j as arrayBufferToBase64,M as arrayBufferToHex,K as assertOk,Y as badRequest,Ge as buildTypeName,T as calculateAge,E as calculateAgeString,L as capitalize,d as createReference,Ye as createSchema,qe as createTypeSchema,H as created,k as deepEquals,c as formatAddress,h as formatFamilyName,u as formatGivenName,l as formatHumanName,ue as formatSearchQuery,w as getDateProperty,v as getDisplayString,lt as getExpressionForResourceType,A as getExtensionValue,m as getImageSrc,Ke as getPropertyDisplayName,S as getQuestionnaireAnswers,f as getReferenceString,ct as getSearchParameterDetails,G as getStatus,Q as gone,Ve as indexSearchParameter,ze as indexStructureDefinition,V as isGone,N as isLowerCase,z as isNotFound,_ as isObject,q as isOk,g as isProfileResource,O as isStringArray,P as isUUID,F as notFound,$ as notModified,le as parseSearchDefinition,p as resolveId,U as stringify};
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|