@medplum/core 2.0.31 → 2.0.32
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.cjs +1 -1
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +2 -2
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";var ht=Object.defineProperty;var gn=Object.getOwnPropertyDescriptor;var xn=Object.getOwnPropertyNames;var Tn=Object.prototype.hasOwnProperty;var vn=(r,e)=>{for(var t in e)ht(r,t,{get:e[t],enumerable:!0})},bn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xn(e))!Tn.call(r,i)&&i!==t&&ht(r,i,{get:()=>e[i],enumerable:!(n=gn(e,i))||n.enumerable});return r};var Sn=r=>bn(ht({},"__esModule",{value:!0}),r);var ms={};vn(ms,{AccessPolicyInteraction:()=>Wr,AndAtom:()=>Ie,ArithemticOperatorAtom:()=>E,AsAtom:()=>z,BooleanInfixOperatorAtom:()=>v,ClientStorage:()=>Me,ConcatAtom:()=>Ae,ContainsAtom:()=>Ee,ContentType:()=>Y,DEFAULT_SEARCH_COUNT:()=>_i,DotAtom:()=>H,EmptySetAtom:()=>Se,EqualsAtom:()=>Ce,EquivalentAtom:()=>ke,EventTarget:()=>Ne,FHIRPATH_KEYWORDS:()=>ie,FHIRPATH_OPERATORS:()=>oe,FhirFilterComparison:()=>Be,FhirFilterConnective:()=>qe,FhirFilterNegation:()=>Fe,FhirPathAtom:()=>be,FhirSchemaValidator:()=>dt,FunctionAtom:()=>B,Hl7Context:()=>W,Hl7Field:()=>ee,Hl7Message:()=>sr,Hl7Segment:()=>ce,ImpliesAtom:()=>Ue,InAtom:()=>Pe,IndexerAtom:()=>J,InfixOperatorAtom:()=>$,IsAtom:()=>K,LRUCache:()=>_e,LiteralAtom:()=>k,MEDPLUM_VERSION:()=>Do,MedplumClient:()=>nr,MemoryStorage:()=>ut,NotEqualsAtom:()=>we,NotEquivalentAtom:()=>De,OAuthGrantType:()=>on,OAuthTokenType:()=>sn,OperationOutcomeError:()=>m,Operator:()=>Or,OperatorPrecedence:()=>p,OrAtom:()=>Oe,Parser:()=>et,ParserBuilder:()=>ge,PrefixOperatorAtom:()=>ye,PropertyType:()=>j,ReadablePromise:()=>C,SearchParameterType:()=>Wt,SymbolAtom:()=>M,Tokenizer:()=>Q,UnaryOperatorAtom:()=>Re,UnionAtom:()=>X,XorAtom:()=>Ve,accepted:()=>Dn,allOk:()=>Rn,arrayBufferToBase64:()=>Ut,arrayBufferToHex:()=>Vt,arrayify:()=>_t,assertOk:()=>Ln,badRequest:()=>D,booleanToTypedValue:()=>d,buildTypeName:()=>V,calculateAge:()=>pe,calculateAgeString:()=>ni,canReadResourceType:()=>bo,canWriteResource:()=>So,canWriteResourceType:()=>Gr,capitalize:()=>S,checkForNull:()=>lt,convertToTransactionBundle:()=>Ao,createConstraintIssue:()=>Et,createProcessingIssue:()=>Pt,createReference:()=>te,createStructureIssue:()=>h,created:()=>An,decodeBase64:()=>Xt,deepClone:()=>It,deepEquals:()=>fe,deepIncludes:()=>me,encodeBase64:()=>Zt,encryptSHA256:()=>er,evalFhirPath:()=>ae,evalFhirPathTyped:()=>ot,fhirPathArrayEquals:()=>rt,fhirPathArrayEquivalent:()=>nt,fhirPathEquals:()=>qt,fhirPathEquivalent:()=>Br,fhirPathIs:()=>Te,fhirPathNot:()=>tt,findObservationInterval:()=>hi,findObservationReferenceRange:()=>yi,findResourceByCode:()=>Ai,forbidden:()=>Cn,formatAddress:()=>Nn,formatCodeableConcept:()=>gr,formatCoding:()=>xr,formatDate:()=>Fn,formatDateTime:()=>Ge,formatFamilyName:()=>Bn,formatGivenName:()=>Mn,formatHl7DateTime:()=>un,formatHumanName:()=>Ct,formatMoney:()=>zn,formatObservationValue:()=>Tr,formatPeriod:()=>qn,formatQuantity:()=>G,formatRange:()=>Gn,formatSearchQuery:()=>Gi,formatTime:()=>yr,formatTiming:()=>Hn,generateId:()=>tr,getCodeBySystem:()=>Ke,getDataType:()=>je,getDateProperty:()=>ri,getDisplayString:()=>Rr,getElementDefinition:()=>re,getElementDefinitionTypeName:()=>ki,getExpressionForResourceType:()=>po,getExpressionsForResourceType:()=>zt,getExtension:()=>si,getExtensionValue:()=>kt,getIdentifier:()=>oi,getImageSrc:()=>ti,getPropertyDisplayName:()=>Vi,getQuestionnaireAnswers:()=>ii,getRandomString:()=>at,getReferenceString:()=>wt,getResourceTypeSchema:()=>Ii,getResourceTypes:()=>Di,getSearchParameterDetails:()=>Gt,getSearchParameters:()=>Oi,getStatus:()=>Un,getTypedPropertyValue:()=>P,globalSchema:()=>y,gone:()=>wn,indexSearchParameter:()=>Xe,indexSearchParameterBundle:()=>wi,indexStructureDefinition:()=>Ye,indexStructureDefinitionBundle:()=>Ei,initFhirPathParserBuilder:()=>se,isAccepted:()=>In,isEmpty:()=>b,isGone:()=>Vn,isLowerCase:()=>he,isMedplumAccessToken:()=>rr,isNotFound:()=>On,isObject:()=>q,isOk:()=>He,isOperationOutcome:()=>le,isPeriod:()=>Fr,isProfileResource:()=>Sr,isQuantity:()=>R,isQuantityEquivalent:()=>jt,isReference:()=>Nt,isResource:()=>U,isResourceType:()=>dn,isResourceTypeSchema:()=>kr,isStringArray:()=>Ot,isUUID:()=>fi,isValidDate:()=>ze,loadDataTypes:()=>es,matchesAccessPolicy:()=>zr,matchesRange:()=>Lt,matchesSearchRequest:()=>Jt,normalizeErrorString:()=>fr,normalizeOperationOutcome:()=>We,notFound:()=>bt,notModified:()=>En,operationOutcomeIssueToString:()=>mr,operationOutcomeToString:()=>Rt,parseCriteriaAsSearchRequest:()=>Ft,parseFhirPath:()=>it,parseFilterParameter:()=>jo,parseHl7DateTime:()=>$o,parseJWTPayload:()=>ct,parseMappingLanguage:()=>No,parseReference:()=>Xn,parseSearchDefinition:()=>Mi,parseSearchRequest:()=>Ni,parseSearchUrl:()=>Bt,parseStructureDefinition:()=>mt,preciseEquals:()=>bi,preciseGreaterThan:()=>Ri,preciseGreaterThanOrEquals:()=>wr,preciseLessThan:()=>Si,preciseLessThanOrEquals:()=>Cr,preciseRound:()=>vi,projectAdminResourceTypes:()=>Hr,protectedResourceTypes:()=>Qr,publicResourceTypes:()=>$r,removeDuplicates:()=>xe,reorderBundle:()=>Jr,resolveId:()=>Yn,satisfiedAccessPolicy:()=>Ro,serverError:()=>St,setCodeBySystem:()=>mi,singleton:()=>I,sleep:()=>Je,streamToBuffer:()=>Zo,stringify:()=>Dt,subsetResource:()=>ts,toJsBoolean:()=>L,toTypedValue:()=>T,tokenize:()=>Qt,tooManyRequests:()=>kn,unauthorized:()=>Pn,validate:()=>cs,validateResource:()=>zo,validateResourceType:()=>Go,validationError:()=>F});module.exports=Sn(ms);var yt="ok",gt="created",xt="gone",Tt="not-modified",vt="not-found",dr="unauthorized",lr="forbidden",pr="too-many-requests",Qe="accepted",Rn={resourceType:"OperationOutcome",id:yt,issue:[{severity:"information",code:"informational",details:{text:"All OK"}}]},An={resourceType:"OperationOutcome",id:gt,issue:[{severity:"information",code:"informational",details:{text:"Created"}}]},En={resourceType:"OperationOutcome",id:Tt,issue:[{severity:"information",code:"informational",details:{text:"Not Modified"}}]},bt={resourceType:"OperationOutcome",id:vt,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},Pn={resourceType:"OperationOutcome",id:dr,issue:[{severity:"error",code:"login",details:{text:"Unauthorized"}}]},Cn={resourceType:"OperationOutcome",id:lr,issue:[{severity:"error",code:"forbidden",details:{text:"Forbidden"}}]},wn={resourceType:"OperationOutcome",id:xt,issue:[{severity:"error",code:"deleted",details:{text:"Gone"}}]},kn={resourceType:"OperationOutcome",id:pr,issue:[{severity:"error",code:"throttled",details:{text:"Too Many Requests"}}]};function Dn(r){return{resourceType:"OperationOutcome",id:Qe,issue:[{severity:"information",code:"informational",details:{text:"Accepted"},diagnostics:r}]}}function D(r,e){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:r},expression:e?[e]:void 0}]}}function F(r){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"structure",details:{text:r}}]}}function St(r){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"exception",details:{text:"Internal server error"},diagnostics:r.toString()}]}}function le(r){return typeof r=="object"&&r!==null&&r.resourceType==="OperationOutcome"}function He(r){return r.id===yt||r.id===gt||r.id===Tt||r.id===Qe}function In(r){return r.id===Qe}function On(r){return r.id===vt}function Vn(r){return r.id===xt}function Un(r){return r.id===yt?200:r.id===gt?201:r.id===Qe?202:r.id===Tt?304:r.id===dr?401:r.id===lr?403:r.id===vt?404:r.id===xt?410:r.id===pr?429:400}function Ln(r,e){if(!He(r)||e===void 0)throw new m(r)}var m=class extends Error{constructor(t,n){super(Rt(t));this.outcome=t,this.cause=n}};function We(r){return r instanceof m?r.outcome:le(r)?r:D(fr(r))}function fr(r){return r?typeof r=="string"?r:r instanceof Error?r.message:le(r)?Rt(r):typeof r=="object"&&"code"in r&&typeof r.code=="string"?r.code:JSON.stringify(r):"Unknown error"}function Rt(r){let e=r.issue?.map(mr)??[];return e.length>0?e.join("; "):"Unknown error"}function mr(r){let e=r.details?.text??r.diagnostics??"Unknown error";return r.expression?.length&&(e+=` (${r.expression.join(", ")})`),e}function At(r,e,t,n){let i={severity:"error",code:r,details:{text:e},expression:[t]};return n&&(i.diagnostics=JSON.stringify(n)),i}function h(r,e){return At("structure",e,r)}function Et(r,e){return At("invariant",`Constraint ${e.key} not met: ${e.description}`,r,{fhirpath:e.expression})}function Pt(r,e,t,n){return At("processing",e,r,{...n,error:t})}var hr={types:{Element:{display:"Element",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]}}},BackboneElement:{display:"BackboneElement",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]}}},Address:{display:"Address",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},use:{type:[{code:"code"}]},type:{type:[{code:"code"}]},text:{type:[{code:"string"}]},line:{max:"*",type:[{code:"string"}]},city:{type:[{code:"string"}]},district:{type:[{code:"string"}]},state:{type:[{code:"string"}]},postalCode:{type:[{code:"string"}]},country:{type:[{code:"string"}]},period:{type:[{code:"Period"}]}}},Age:{display:"Age",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},comparator:{type:[{code:"code"}]},unit:{type:[{code:"string"}]},system:{type:[{code:"uri"}]},code:{type:[{code:"code"}]}}},Annotation:{display:"Annotation",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},"author[x]":{type:[{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Organization"]},{code:"string"}]},time:{type:[{code:"dateTime"}]},text:{min:1,type:[{code:"markdown"}]}}},Attachment:{display:"Attachment",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},contentType:{type:[{code:"code"}]},language:{type:[{code:"code"}]},data:{type:[{code:"base64Binary"}]},url:{type:[{code:"url"}]},size:{type:[{code:"unsignedInt"}]},hash:{type:[{code:"base64Binary"}]},title:{type:[{code:"string"}]},creation:{type:[{code:"dateTime"}]}}},CodeableConcept:{display:"CodeableConcept",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},coding:{max:"*",type:[{code:"Coding"}]},text:{type:[{code:"string"}]}}},Coding:{display:"Coding",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},system:{type:[{code:"uri"}]},version:{type:[{code:"string"}]},code:{type:[{code:"code"}]},display:{type:[{code:"string"}]},userSelected:{type:[{code:"boolean"}]}}},ContactDetail:{display:"ContactDetail",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},name:{type:[{code:"string"}]},telecom:{max:"*",type:[{code:"ContactPoint"}]}}},ContactPoint:{display:"ContactPoint",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},system:{type:[{code:"code"}]},value:{type:[{code:"string"}]},use:{type:[{code:"code"}]},rank:{type:[{code:"positiveInt"}]},period:{type:[{code:"Period"}]}}},Contributor:{display:"Contributor",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,type:[{code:"code"}]},name:{min:1,type:[{code:"string"}]},contact:{max:"*",type:[{code:"ContactDetail"}]}}},Count:{display:"Count",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},comparator:{type:[{code:"code"}]},unit:{type:[{code:"string"}]},system:{type:[{code:"uri"}]},code:{type:[{code:"code"}]}}},DataRequirement:{display:"DataRequirement",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,type:[{code:"code"}]},profile:{max:"*",type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]}]},"subject[x]":{type:[{code:"CodeableConcept"},{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Group"]}]},mustSupport:{max:"*",type:[{code:"string"}]},codeFilter:{max:"*",type:[{code:"Element"}]},dateFilter:{max:"*",type:[{code:"Element"}]},limit:{type:[{code:"positiveInt"}]},sort:{max:"*",type:[{code:"Element"}]}}},DataRequirementCodeFilter:{display:"DataRequirementCodeFilter",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},path:{type:[{code:"string"}]},searchParam:{type:[{code:"string"}]},valueSet:{type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/ValueSet"]}]},code:{max:"*",type:[{code:"Coding"}]}}},DataRequirementDateFilter:{display:"DataRequirementDateFilter",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},path:{type:[{code:"string"}]},searchParam:{type:[{code:"string"}]},"value[x]":{type:[{code:"dateTime"},{code:"Period"},{code:"Duration"}]}}},DataRequirementSort:{display:"DataRequirementSort",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},path:{min:1,type:[{code:"string"}]},direction:{min:1,type:[{code:"code"}]}}},Distance:{display:"Distance",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},comparator:{type:[{code:"code"}]},unit:{type:[{code:"string"}]},system:{type:[{code:"uri"}]},code:{type:[{code:"code"}]}}},Dosage:{display:"Dosage",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},sequence:{type:[{code:"integer"}]},text:{type:[{code:"string"}]},additionalInstruction:{max:"*",type:[{code:"CodeableConcept"}]},patientInstruction:{type:[{code:"string"}]},timing:{type:[{code:"Timing"}]},"asNeeded[x]":{type:[{code:"boolean"},{code:"CodeableConcept"}]},site:{type:[{code:"CodeableConcept"}]},route:{type:[{code:"CodeableConcept"}]},method:{type:[{code:"CodeableConcept"}]},doseAndRate:{max:"*",type:[{code:"Element"}]},maxDosePerPeriod:{type:[{code:"Ratio"}]},maxDosePerAdministration:{type:[{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]},maxDosePerLifetime:{type:[{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]}}},DosageDoseAndRate:{display:"DosageDoseAndRate",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{type:[{code:"CodeableConcept"}]},"dose[x]":{type:[{code:"Range"},{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]},"rate[x]":{type:[{code:"Ratio"},{code:"Range"},{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]}}},Duration:{display:"Duration",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},comparator:{type:[{code:"code"}]},unit:{type:[{code:"string"}]},system:{type:[{code:"uri"}]},code:{type:[{code:"code"}]}}},ElementDefinition:{display:"ElementDefinition",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},path:{min:1,type:[{code:"string"}]},representation:{max:"*",type:[{code:"code"}]},sliceName:{type:[{code:"string"}]},sliceIsConstraining:{type:[{code:"boolean"}]},label:{type:[{code:"string"}]},code:{max:"*",type:[{code:"Coding"}]},slicing:{type:[{code:"Element"}]},short:{type:[{code:"string"}]},definition:{type:[{code:"markdown"}]},comment:{type:[{code:"markdown"}]},requirements:{type:[{code:"markdown"}]},alias:{max:"*",type:[{code:"string"}]},min:{type:[{code:"unsignedInt"}]},max:{type:[{code:"string"}]},base:{type:[{code:"Element"}]},contentReference:{type:[{code:"uri"}]},type:{max:"*",type:[{code:"Element"}]},"defaultValue[x]":{type:[{code:"base64Binary"},{code:"boolean"},{code:"canonical"},{code:"code"},{code:"date"},{code:"dateTime"},{code:"decimal"},{code:"id"},{code:"instant"},{code:"integer"},{code:"markdown"},{code:"oid"},{code:"positiveInt"},{code:"string"},{code:"time"},{code:"unsignedInt"},{code:"uri"},{code:"url"},{code:"uuid"},{code:"Address"},{code:"Age"},{code:"Annotation"},{code:"Attachment"},{code:"CodeableConcept"},{code:"Coding"},{code:"ContactPoint"},{code:"Count"},{code:"Distance"},{code:"Duration"},{code:"HumanName"},{code:"Identifier"},{code:"Money"},{code:"Period"},{code:"Quantity"},{code:"Range"},{code:"Ratio"},{code:"Reference"},{code:"SampledData"},{code:"Signature"},{code:"Timing"},{code:"ContactDetail"},{code:"Contributor"},{code:"DataRequirement"},{code:"Expression"},{code:"ParameterDefinition"},{code:"RelatedArtifact"},{code:"TriggerDefinition"},{code:"UsageContext"},{code:"Dosage"},{code:"Meta"}]},meaningWhenMissing:{type:[{code:"markdown"}]},orderMeaning:{type:[{code:"string"}]},"fixed[x]":{type:[{code:"base64Binary"},{code:"boolean"},{code:"canonical"},{code:"code"},{code:"date"},{code:"dateTime"},{code:"decimal"},{code:"id"},{code:"instant"},{code:"integer"},{code:"markdown"},{code:"oid"},{code:"positiveInt"},{code:"string"},{code:"time"},{code:"unsignedInt"},{code:"uri"},{code:"url"},{code:"uuid"},{code:"Address"},{code:"Age"},{code:"Annotation"},{code:"Attachment"},{code:"CodeableConcept"},{code:"Coding"},{code:"ContactPoint"},{code:"Count"},{code:"Distance"},{code:"Duration"},{code:"HumanName"},{code:"Identifier"},{code:"Money"},{code:"Period"},{code:"Quantity"},{code:"Range"},{code:"Ratio"},{code:"Reference"},{code:"SampledData"},{code:"Signature"},{code:"Timing"},{code:"ContactDetail"},{code:"Contributor"},{code:"DataRequirement"},{code:"Expression"},{code:"ParameterDefinition"},{code:"RelatedArtifact"},{code:"TriggerDefinition"},{code:"UsageContext"},{code:"Dosage"},{code:"Meta"}]},"pattern[x]":{type:[{code:"base64Binary"},{code:"boolean"},{code:"canonical"},{code:"code"},{code:"date"},{code:"dateTime"},{code:"decimal"},{code:"id"},{code:"instant"},{code:"integer"},{code:"markdown"},{code:"oid"},{code:"positiveInt"},{code:"string"},{code:"time"},{code:"unsignedInt"},{code:"uri"},{code:"url"},{code:"uuid"},{code:"Address"},{code:"Age"},{code:"Annotation"},{code:"Attachment"},{code:"CodeableConcept"},{code:"Coding"},{code:"ContactPoint"},{code:"Count"},{code:"Distance"},{code:"Duration"},{code:"HumanName"},{code:"Identifier"},{code:"Money"},{code:"Period"},{code:"Quantity"},{code:"Range"},{code:"Ratio"},{code:"Reference"},{code:"SampledData"},{code:"Signature"},{code:"Timing"},{code:"ContactDetail"},{code:"Contributor"},{code:"DataRequirement"},{code:"Expression"},{code:"ParameterDefinition"},{code:"RelatedArtifact"},{code:"TriggerDefinition"},{code:"UsageContext"},{code:"Dosage"},{code:"Meta"}]},example:{max:"*",type:[{code:"Element"}]},"minValue[x]":{type:[{code:"date"},{code:"dateTime"},{code:"instant"},{code:"time"},{code:"decimal"},{code:"integer"},{code:"positiveInt"},{code:"unsignedInt"},{code:"Quantity"}]},"maxValue[x]":{type:[{code:"date"},{code:"dateTime"},{code:"instant"},{code:"time"},{code:"decimal"},{code:"integer"},{code:"positiveInt"},{code:"unsignedInt"},{code:"Quantity"}]},maxLength:{type:[{code:"integer"}]},condition:{max:"*",type:[{code:"id"}]},constraint:{max:"*",type:[{code:"Element"}]},mustSupport:{type:[{code:"boolean"}]},isModifier:{type:[{code:"boolean"}]},isModifierReason:{type:[{code:"string"}]},isSummary:{type:[{code:"boolean"}]},binding:{type:[{code:"Element"}]},mapping:{max:"*",type:[{code:"Element"}]}}},ElementDefinitionSlicing:{display:"ElementDefinitionSlicing",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},discriminator:{max:"*",type:[{code:"Element"}]},description:{type:[{code:"string"}]},ordered:{type:[{code:"boolean"}]},rules:{min:1,type:[{code:"code"}]}}},ElementDefinitionSlicingDiscriminator:{display:"ElementDefinitionSlicingDiscriminator",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,type:[{code:"code"}]},path:{min:1,type:[{code:"string"}]}}},ElementDefinitionBase:{display:"ElementDefinitionBase",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},path:{min:1,type:[{code:"string"}]},min:{min:1,type:[{code:"unsignedInt"}]},max:{min:1,type:[{code:"string"}]}}},ElementDefinitionType:{display:"ElementDefinitionType",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},code:{min:1,type:[{code:"uri"}]},profile:{max:"*",type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition","http://hl7.org/fhir/StructureDefinition/ImplementationGuide"]}]},targetProfile:{max:"*",type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition","http://hl7.org/fhir/StructureDefinition/ImplementationGuide"]}]},aggregation:{max:"*",type:[{code:"code"}]},versioning:{type:[{code:"code"}]}}},ElementDefinitionExample:{display:"ElementDefinitionExample",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},label:{min:1,type:[{code:"string"}]},"value[x]":{min:1,type:[{code:"base64Binary"},{code:"boolean"},{code:"canonical"},{code:"code"},{code:"date"},{code:"dateTime"},{code:"decimal"},{code:"id"},{code:"instant"},{code:"integer"},{code:"markdown"},{code:"oid"},{code:"positiveInt"},{code:"string"},{code:"time"},{code:"unsignedInt"},{code:"uri"},{code:"url"},{code:"uuid"},{code:"Address"},{code:"Age"},{code:"Annotation"},{code:"Attachment"},{code:"CodeableConcept"},{code:"Coding"},{code:"ContactPoint"},{code:"Count"},{code:"Distance"},{code:"Duration"},{code:"HumanName"},{code:"Identifier"},{code:"Money"},{code:"Period"},{code:"Quantity"},{code:"Range"},{code:"Ratio"},{code:"Reference"},{code:"SampledData"},{code:"Signature"},{code:"Timing"},{code:"ContactDetail"},{code:"Contributor"},{code:"DataRequirement"},{code:"Expression"},{code:"ParameterDefinition"},{code:"RelatedArtifact"},{code:"TriggerDefinition"},{code:"UsageContext"},{code:"Dosage"},{code:"Meta"}]}}},ElementDefinitionConstraint:{display:"ElementDefinitionConstraint",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},key:{min:1,type:[{code:"id"}]},requirements:{type:[{code:"string"}]},severity:{min:1,type:[{code:"code"}]},human:{min:1,type:[{code:"string"}]},expression:{type:[{code:"string"}]},xpath:{type:[{code:"string"}]},source:{type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]}]}}},ElementDefinitionBinding:{display:"ElementDefinitionBinding",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},strength:{min:1,type:[{code:"code"}]},description:{type:[{code:"string"}]},valueSet:{type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/ValueSet"]}]}}},ElementDefinitionMapping:{display:"ElementDefinitionMapping",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},identity:{min:1,type:[{code:"id"}]},language:{type:[{code:"code"}]},map:{min:1,type:[{code:"string"}]},comment:{type:[{code:"string"}]}}},Expression:{display:"Expression",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},description:{type:[{code:"string"}]},name:{type:[{code:"id"}]},language:{min:1,type:[{code:"code"}]},expression:{type:[{code:"string"}]},reference:{type:[{code:"uri"}]}}},Extension:{display:"Extension",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},url:{min:1,type:[{code:"string"}]},"value[x]":{type:[{code:"base64Binary"},{code:"boolean"},{code:"canonical"},{code:"code"},{code:"date"},{code:"dateTime"},{code:"decimal"},{code:"id"},{code:"instant"},{code:"integer"},{code:"markdown"},{code:"oid"},{code:"positiveInt"},{code:"string"},{code:"time"},{code:"unsignedInt"},{code:"uri"},{code:"url"},{code:"uuid"},{code:"Address"},{code:"Age"},{code:"Annotation"},{code:"Attachment"},{code:"CodeableConcept"},{code:"Coding"},{code:"ContactPoint"},{code:"Count"},{code:"Distance"},{code:"Duration"},{code:"HumanName"},{code:"Identifier"},{code:"Money"},{code:"Period"},{code:"Quantity"},{code:"Range"},{code:"Ratio"},{code:"Reference"},{code:"SampledData"},{code:"Signature"},{code:"Timing"},{code:"ContactDetail"},{code:"Contributor"},{code:"DataRequirement"},{code:"Expression"},{code:"ParameterDefinition"},{code:"RelatedArtifact"},{code:"TriggerDefinition"},{code:"UsageContext"},{code:"Dosage"},{code:"Meta"}]}}},HumanName:{display:"HumanName",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},use:{type:[{code:"code"}]},text:{type:[{code:"string"}]},family:{type:[{code:"string"}]},given:{max:"*",type:[{code:"string"}]},prefix:{max:"*",type:[{code:"string"}]},suffix:{max:"*",type:[{code:"string"}]},period:{type:[{code:"Period"}]}}},Identifier:{display:"Identifier",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},use:{type:[{code:"code"}]},type:{type:[{code:"CodeableConcept"}]},system:{type:[{code:"uri"}]},value:{type:[{code:"string"}]},period:{type:[{code:"Period"}]},assigner:{type:[{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Organization"]}]}}},MarketingStatus:{display:"MarketingStatus",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},country:{min:1,type:[{code:"CodeableConcept"}]},jurisdiction:{type:[{code:"CodeableConcept"}]},status:{min:1,type:[{code:"CodeableConcept"}]},dateRange:{min:1,type:[{code:"Period"}]},restoreDate:{type:[{code:"dateTime"}]}}},Meta:{display:"Meta",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},versionId:{type:[{code:"id"}]},lastUpdated:{type:[{code:"instant"}]},source:{type:[{code:"uri"}]},profile:{max:"*",type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]}]},security:{max:"*",type:[{code:"Coding"}]},tag:{max:"*",type:[{code:"Coding"}]},project:{type:[{code:"uri"}]},author:{type:[{code:"Reference"}]},account:{type:[{code:"Reference"}]},compartment:{max:"*",type:[{code:"Reference"}]}}},Money:{display:"Money",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},currency:{type:[{code:"code"}]}}},Narrative:{display:"Narrative",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},status:{min:1,type:[{code:"code"}]},div:{min:1,type:[{code:"xhtml"}]}}},ParameterDefinition:{display:"ParameterDefinition",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},name:{type:[{code:"code"}]},use:{min:1,type:[{code:"code"}]},min:{type:[{code:"integer"}]},max:{type:[{code:"string"}]},documentation:{type:[{code:"string"}]},type:{min:1,type:[{code:"code"}]},profile:{type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/StructureDefinition"]}]}}},Period:{display:"Period",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},start:{type:[{code:"dateTime"}]},end:{type:[{code:"dateTime"}]}}},Population:{display:"Population",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},"age[x]":{type:[{code:"Range"},{code:"CodeableConcept"}]},gender:{type:[{code:"CodeableConcept"}]},race:{type:[{code:"CodeableConcept"}]},physiologicalCondition:{type:[{code:"CodeableConcept"}]}}},ProdCharacteristic:{display:"ProdCharacteristic",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},height:{type:[{code:"Quantity"}]},width:{type:[{code:"Quantity"}]},depth:{type:[{code:"Quantity"}]},weight:{type:[{code:"Quantity"}]},nominalVolume:{type:[{code:"Quantity"}]},externalDiameter:{type:[{code:"Quantity"}]},shape:{type:[{code:"string"}]},color:{max:"*",type:[{code:"string"}]},imprint:{max:"*",type:[{code:"string"}]},image:{max:"*",type:[{code:"Attachment"}]},scoring:{type:[{code:"CodeableConcept"}]}}},ProductShelfLife:{display:"ProductShelfLife",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},identifier:{type:[{code:"Identifier"}]},type:{min:1,type:[{code:"CodeableConcept"}]},period:{min:1,type:[{code:"Quantity"}]},specialPrecautionsForStorage:{max:"*",type:[{code:"CodeableConcept"}]}}},Quantity:{display:"Quantity",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},value:{type:[{code:"decimal"}]},comparator:{max:"0",type:[{code:"code"}]},unit:{type:[{code:"string"}]},system:{type:[{code:"uri"}]},code:{type:[{code:"code"}]}}},Range:{display:"Range",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},low:{type:[{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]},high:{type:[{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]}}},Ratio:{display:"Ratio",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},numerator:{type:[{code:"Quantity"}]},denominator:{type:[{code:"Quantity"}]}}},Reference:{display:"Reference",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},reference:{type:[{code:"string"}]},type:{type:[{code:"uri"}]},identifier:{type:[{code:"Identifier"}]},display:{type:[{code:"string"}]}}},RelatedArtifact:{display:"RelatedArtifact",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,type:[{code:"code"}]},label:{type:[{code:"string"}]},display:{type:[{code:"string"}]},citation:{type:[{code:"markdown"}]},url:{type:[{code:"url"}]},document:{type:[{code:"Attachment"}]},resource:{type:[{code:"canonical",targetProfile:["http://hl7.org/fhir/StructureDefinition/Resource"]}]}}},SampledData:{display:"SampledData",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},origin:{min:1,type:[{code:"Quantity",profile:["http://hl7.org/fhir/StructureDefinition/SimpleQuantity"]}]},period:{min:1,type:[{code:"decimal"}]},factor:{type:[{code:"decimal"}]},lowerLimit:{type:[{code:"decimal"}]},upperLimit:{type:[{code:"decimal"}]},dimensions:{min:1,type:[{code:"positiveInt"}]},data:{type:[{code:"string"}]}}},Signature:{display:"Signature",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,max:"*",type:[{code:"Coding"}]},when:{min:1,type:[{code:"instant"}]},who:{min:1,type:[{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}]},onBehalfOf:{type:[{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Practitioner","http://hl7.org/fhir/StructureDefinition/PractitionerRole","http://hl7.org/fhir/StructureDefinition/RelatedPerson","http://hl7.org/fhir/StructureDefinition/Patient","http://hl7.org/fhir/StructureDefinition/Device","http://hl7.org/fhir/StructureDefinition/Organization"]}]},targetFormat:{type:[{code:"code"}]},sigFormat:{type:[{code:"code"}]},data:{type:[{code:"base64Binary"}]}}},SubstanceAmount:{display:"SubstanceAmount",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},"amount[x]":{type:[{code:"Quantity"},{code:"Range"},{code:"string"}]},amountType:{type:[{code:"CodeableConcept"}]},amountText:{type:[{code:"string"}]},referenceRange:{type:[{code:"Element"}]}}},SubstanceAmountReferenceRange:{display:"SubstanceAmountReferenceRange",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},lowLimit:{type:[{code:"Quantity"}]},highLimit:{type:[{code:"Quantity"}]}}},Timing:{display:"Timing",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},event:{max:"*",type:[{code:"dateTime"}]},repeat:{type:[{code:"Element"}]},code:{type:[{code:"CodeableConcept"}]}}},TimingRepeat:{display:"TimingRepeat",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},"bounds[x]":{type:[{code:"Duration"},{code:"Range"},{code:"Period"}]},count:{type:[{code:"positiveInt"}]},countMax:{type:[{code:"positiveInt"}]},duration:{type:[{code:"decimal"}]},durationMax:{type:[{code:"decimal"}]},durationUnit:{type:[{code:"code"}]},frequency:{type:[{code:"positiveInt"}]},frequencyMax:{type:[{code:"positiveInt"}]},period:{type:[{code:"decimal"}]},periodMax:{type:[{code:"decimal"}]},periodUnit:{type:[{code:"code"}]},dayOfWeek:{max:"*",type:[{code:"code"}]},timeOfDay:{max:"*",type:[{code:"time"}]},when:{max:"*",type:[{code:"code"}]},offset:{type:[{code:"unsignedInt"}]}}},TriggerDefinition:{display:"TriggerDefinition",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},type:{min:1,type:[{code:"code"}]},name:{type:[{code:"string"}]},"timing[x]":{type:[{code:"Timing"},{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/Schedule"]},{code:"date"},{code:"dateTime"}]},data:{max:"*",type:[{code:"DataRequirement"}]},condition:{type:[{code:"Expression"}]}}},UsageContext:{display:"UsageContext",properties:{id:{type:[{code:"string"}]},extension:{max:"*",type:[{code:"Extension"}]},code:{min:1,type:[{code:"Coding"}]},"value[x]":{min:1,type:[{code:"CodeableConcept"},{code:"Quantity"},{code:"Range"},{code:"Reference",targetProfile:["http://hl7.org/fhir/StructureDefinition/PlanDefinition","http://hl7.org/fhir/StructureDefinition/ResearchStudy","http://hl7.org/fhir/StructureDefinition/InsurancePlan","http://hl7.org/fhir/StructureDefinition/HealthcareService","http://hl7.org/fhir/StructureDefinition/Group","http://hl7.org/fhir/StructureDefinition/Location","http://hl7.org/fhir/StructureDefinition/Organization"]}]}}},MetadataResource:{display:"MetadataResource",properties:{id:{type:[{code:"string"}]},meta:{type:[{code:"Meta"}]},implicitRules:{type:[{code:"uri"}]},language:{type:[{code:"code"}]},text:{type:[{code:"Narrative"}]},contained:{max:"*",type:[{code:"Resource"}]},extension:{max:"*",type:[{code:"Extension"}]},modifierExtension:{max:"*",type:[{code:"Extension"}]},url:{type:[{code:"uri"}]},version:{type:[{code:"string"}]},name:{type:[{code:"string"}]},title:{type:[{code:"string"}]},status:{min:1,type:[{code:"code"}]},experimental:{type:[{code:"boolean"}]},date:{type:[{code:"dateTime"}]},publisher:{type:[{code:"string"}]},contact:{max:"*",type:[{code:"ContactDetail"}]},description:{type:[{code:"markdown"}]},useContext:{max:"*",type:[{code:"UsageContext"}]},jurisdiction:{max:"*",type:[{code:"CodeableConcept"}]}}},IdentityProvider:{display:"IdentityProvider",properties:{authorizeUrl:{min:1,type:[{code:"string"}]},tokenUrl:{min:1,type:[{code:"string"}]},userInfoUrl:{min:1,type:[{code:"string"}]},clientId:{min:1,type:[{code:"string"}]},clientSecret:{min:1,type:[{code:"string"}]},useSubject:{type:[{code:"boolean"}]}}}}};function Nn(r,e){let t=[];if(r.line&&t.push(...r.line),r.city||r.state||r.postalCode){let n=[];r.city&&n.push(r.city),r.state&&n.push(r.state),r.postalCode&&n.push(r.postalCode),t.push(n.join(", "))}return r.use&&(e?.all||e?.use)&&t.push("["+r.use+"]"),t.join(e?.lineSeparator??", ").trim()}function Ct(r,e){let t=[];return r.prefix&&e?.prefix!==!1&&t.push(...r.prefix),r.given&&t.push(...r.given),r.family&&t.push(r.family),r.suffix&&e?.suffix!==!1&&t.push(...r.suffix),r.use&&(e?.all||e?.use)&&t.push("["+r.use+"]"),t.join(" ").trim()}function Mn(r){let e=[];return r.given&&e.push(...r.given),e.join(" ").trim()}function Bn(r){return r.family??""}function ze(r){return r instanceof Date&&!isNaN(r.getTime())}function Fn(r,e,t){if(!r)return"";let n=new Date(r);return ze(n)?(n.setUTCHours(0,0,0,0),n.toLocaleDateString(e,{timeZone:"UTC",...t})):""}function yr(r,e,t){if(!r)return"";let n=new Date("2000-01-01T"+r+"Z");return ze(n)?n.toLocaleTimeString(e,t):""}function Ge(r,e,t){if(!r)return"";let n=new Date(r);return ze(n)?n.toLocaleString(e,t):""}function qn(r,e,t){return!r||!r.start&&!r.end?"":Ge(r.start,e,t)+" - "+Ge(r.end,e,t)}var jn={s:"every second",min:"every minute",h:"hourly",d:"daily",wk:"weekly",mo:"monthly",a:"annually"},$n={s:"second",min:"minute",h:"hour",d:"day",wk:"week",mo:"month",a:"year"},Qn={s:"seconds",min:"minutes",h:"hours",d:"days",wk:"weeks",mo:"months",a:"years"};function Hn(r){if(!r)return"";let e=[];return Wn(e,r.repeat),r.event&&e.push(r.event.map(t=>Ge(t)).join(", ")),S(e.join(" ").trim())}function Wn(r,e){if(!e?.periodUnit)return;let t=e.frequency??1,n=e.period??1,i=e.periodUnit;t===1&&n===1?r.push(jn[i]):(t===1?r.push("once"):r.push(t+" times"),n===1?r.push("per "+$n[i]):r.push("per "+n+" "+Qn[i])),e.dayOfWeek&&r.push("on "+e.dayOfWeek.map(S).join(", ")),e.timeOfDay&&r.push("at "+e.timeOfDay.map(o=>yr(o)).join(", "))}function Gn(r,e,t=!1){if(t&&e===void 0)throw new Error("Precision must be specified for exclusive ranges");let n=r?.low&&{...r.low,comparator:void 0},i=r?.high&&{...r.high,comparator:void 0};return n?.value===void 0&&i?.value===void 0?"":n?.value!==void 0&&i?.value===void 0?t&&e!==void 0?(n.value=Jn(n.value,e),`> ${G(n,e)}`):`>= ${G(n,e)}`:n?.value===void 0&&i?.value!==void 0?t&&e!==void 0?(i.value=Kn(i.value,e),`< ${G(i,e)}`):`<= ${G(i,e)}`:(n?.unit===i?.unit&&delete n?.unit,`${G(n,e)} - ${G(i,e)}`)}function G(r,e){if(!r)return"";let t=[];return r.comparator&&(t.push(r.comparator),t.push(" ")),r.value!==void 0&&(e!==void 0?t.push(r.value.toFixed(e)):t.push(r.value)),r.unit&&(r.unit!=="%"&&t[t.length-1]!==" "&&t.push(" "),t.push(r.unit)),t.join("").trim()}function zn(r){return r?.value===void 0?"":r.value.toLocaleString(void 0,{style:"currency",currency:r.currency??"USD",currencyDisplay:"narrowSymbol"})}function gr(r){return r?r.text?r.text:r.coding?r.coding.map(e=>xr(e)).join(", "):"":""}function xr(r){return r?.display??r?.code??""}function Tr(r){return r?"component"in r?r.component.map(e=>Tr(e)).join(" / "):r.valueQuantity?G(r.valueQuantity):r.valueCodeableConcept?gr(r.valueCodeableConcept):r.valueString?r.valueString:"":""}function Kn(r,e,t=1){return(vr(r,e)+t)*Math.pow(10,-e)}function Jn(r,e,t=1){return(vr(r,e)-t)*Math.pow(10,-e)}function vr(r,e){return e===void 0?r:Math.round(r*Math.pow(10,e))}function te(r){let e=wt(r),t=Rr(r);return t===e?{reference:e}:{reference:e,display:t}}function wt(r){return r.resourceType+"/"+r.id}function Yn(r){return r?.reference?.split("/")[1]}function Xn(r){if(r?.reference===void 0)return;let[e,t]=r.reference.split("/");if(!(e===""||t===""||t===void 0))return[e,t]}function Sr(r){return r.resourceType==="Patient"||r.resourceType==="Practitioner"||r.resourceType==="RelatedPerson"}function Rr(r){if(Sr(r)){let e=Zn(r);if(e)return e}if(r.resourceType==="Device"){let e=ei(r);if(e)return e}return r.resourceType==="Observation"&&"code"in r&&r.code?.text?r.code.text:r.resourceType==="User"&&r.email?r.email:"name"in r&&r.name&&typeof r.name=="string"?r.name:wt(r)}function Zn(r){let e=r.name;if(e&&e.length>0)return Ct(e[0])}function ei(r){let e=r.deviceName;if(e&&e.length>0)return e[0].name}function ti(r){if(!("photo"in r))return;let e=r.photo;if(e)if(Array.isArray(e))for(let t of e){let n=br(t);if(n)return n}else return br(e)}function br(r){if(r.url&&r.contentType&&r.contentType.startsWith("image/"))return r.url}function ri(r){return r?new Date(r):void 0}function pe(r,e){let t=new Date(r);t.setUTCHours(0,0,0,0);let n=e?new Date(e):new Date;n.setUTCHours(0,0,0,0);let i=t.getUTCFullYear(),o=t.getUTCMonth(),s=t.getUTCDate(),a=n.getUTCFullYear(),c=n.getUTCMonth(),f=n.getUTCDate(),l=a-i;(c<o||c===o&&f<s)&&l--;let de=a*12+c-(i*12+o);f<s&&de--;let $e=Math.floor((n.getTime()-t.getTime())/(1e3*60*60*24));return{years:l,months:de,days:$e}}function ni(r,e){let{years:t,months:n,days:i}=pe(r,e);return t>=2?t.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":i.toString().padStart(3,"0")+"D"}function ii(r){let e={};return Ar(r.item,e),e}function Ar(r,e){if(r)for(let t of r)t.linkId&&t.answer&&t.answer.length>0&&(e[t.linkId]=t.answer[0]),Ar(t.item,e)}function oi(r,e){let t=r.identifier;if(!t)return;let n=Array.isArray(t)?t:[t];for(let i of n)if(i.system===e)return i.value}function kt(r,...e){let t=r;for(let n=0;n<e.length&&t;n++)t=t?.extension?.find(i=>i.url===e[n]);return t?.valueString}function si(r,...e){let t=r;for(let n=0;n<e.length&&t;n++)t=t?.extension?.find(i=>i.url===e[n]);return t}function Dt(r,e){return JSON.stringify(r,ai,e?2:void 0)}function ai(r,e){return!ci(r)&&b(e)?void 0:e}function ci(r){return!!/\d+$/.exec(r)}function b(r){if(r==null)return!0;let e=typeof r;return e==="string"&&r===""||e==="object"&&Object.keys(r).length===0}function fe(r,e,t){return r===e||b(r)&&b(e)?!0:b(r)||b(e)?!1:Array.isArray(r)&&Array.isArray(e)?ui(r,e):Array.isArray(r)||Array.isArray(e)?!1:q(r)&&q(e)?di(r,e,t):(q(r)||q(e),!1)}function ui(r,e){if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(!fe(r[t],e[t]))return!1;return!0}function di(r,e,t){let n=new Set;Object.keys(r).forEach(i=>n.add(i)),Object.keys(e).forEach(i=>n.add(i)),t==="meta"&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(let i of n){let o=r[i],s=e[i];if(!fe(o,s,i))return!1}return!0}function me(r,e){return b(r)?!0:b(e)?!1:Array.isArray(r)&&Array.isArray(e)?li(r,e):Array.isArray(r)||Array.isArray(e)?!1:q(r)&&q(e)?pi(r,e):q(r)||q(e)?!1:r===e}function li(r,e){return r.every(t=>e.some(n=>me(t,n)))}function pi(r,e){return Object.entries(r).every(([t,n])=>t in e&&me(n,e[t]))}function It(r){return JSON.parse(JSON.stringify(r))}function fi(r){return!!/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.exec(r)}function q(r){return r!==null&&typeof r=="object"}function Ot(r){return r.every(e=>typeof e=="string")}var Er=[];for(let r=0;r<256;r++)Er.push(r.toString(16).padStart(2,"0"));function Vt(r){let e=new Uint8Array(r),t=new Array(e.length);for(let n=0;n<e.length;n++)t[n]=Er[e[n]];return t.join("")}function Ut(r){let e=new Uint8Array(r),t=[];for(let n=0;n<e.length;n++)t[n]=String.fromCharCode(e[n]);return window.btoa(t.join(""))}function S(r){return r.charAt(0).toUpperCase()+r.substring(1)}function he(r){return r===r.toLowerCase()&&r!==r.toUpperCase()}function Ke(r,e){return r.coding?.find(t=>t.system===e)?.code}function mi(r,e,t){r.coding||(r.coding=[]);let n=r.coding.find(i=>i.system===e);n?n.code=t:r.coding.push({system:e,code:t})}function hi(r,e,t,n){return r.qualifiedInterval?.find(i=>Pr(i,e)&&Ti(i,t,r.quantitativeDetails?.decimalPrecision)&&(n===void 0||i.category===n))}function yi(r,e,t){return r.qualifiedInterval?.find(n=>Pr(n,e)&&t.includes(n.condition))}function Pr(r,e){return gi(r,e)&&xi(r,e)}function gi(r,e){return!r.gender||r.gender===e.gender}function xi(r,e){return!r.age||Lt(pe(e.birthDate).years,r.age)}function Ti(r,e,t){return!!r.range&&Lt(e,r.range,t)}function Lt(r,e,t){return(e.low?.value===void 0||wr(r,e.low.value,t))&&(e.high?.value===void 0||Cr(r,e.high.value,t))}function vi(r,e){return parseFloat(r.toFixed(e))}function bi(r,e,t){return O(r,t)===O(e,t)}function Si(r,e,t){return O(r,t)<O(e,t)}function Ri(r,e,t){return O(r,t)>O(e,t)}function Cr(r,e,t){return O(r,t)<=O(e,t)}function wr(r,e,t){return O(r,t)>=O(e,t)}function O(r,e){return e===void 0?r:Math.round(r*Math.pow(10,e))}function Ai(r,e,t){return r.find(n=>typeof e=="string"?Ke(n.code||{},t)===e:Ke(n.code||{},t)===Ke(e,t))}function _t(r){if(r)return Array.isArray(r)?r:[r]}var Je=r=>new Promise(e=>{setTimeout(e,r)});var j=(u=>(u.Address="Address",u.Age="Age",u.Annotation="Annotation",u.Attachment="Attachment",u.BackboneElement="BackboneElement",u.CodeableConcept="CodeableConcept",u.Coding="Coding",u.ContactDetail="ContactDetail",u.ContactPoint="ContactPoint",u.Contributor="Contributor",u.Count="Count",u.DataRequirement="DataRequirement",u.Distance="Distance",u.Dosage="Dosage",u.Duration="Duration",u.Expression="Expression",u.Extension="Extension",u.HumanName="HumanName",u.Identifier="Identifier",u.MarketingStatus="MarketingStatus",u.Meta="Meta",u.Money="Money",u.Narrative="Narrative",u.ParameterDefinition="ParameterDefinition",u.Period="Period",u.Population="Population",u.ProdCharacteristic="ProdCharacteristic",u.ProductShelfLife="ProductShelfLife",u.Quantity="Quantity",u.Range="Range",u.Ratio="Ratio",u.Reference="Reference",u.RelatedArtifact="RelatedArtifact",u.SampledData="SampledData",u.Signature="Signature",u.SubstanceAmount="SubstanceAmount",u.SystemString="http://hl7.org/fhirpath/System.String",u.Timing="Timing",u.TriggerDefinition="TriggerDefinition",u.UsageContext="UsageContext",u.base64Binary="base64Binary",u.boolean="boolean",u.canonical="canonical",u.code="code",u.date="date",u.dateTime="dateTime",u.decimal="decimal",u.id="id",u.instant="instant",u.integer="integer",u.markdown="markdown",u.oid="oid",u.positiveInt="positiveInt",u.string="string",u.time="time",u.unsignedInt="unsignedInt",u.uri="uri",u.url="url",u.uuid="uuid",u))(j||{});function Ei(r){for(let e of r.entry){let t=e.resource;t.resourceType==="StructureDefinition"&&Ye(t)}}function Ye(r){if(!r.name)return;let t=r.snapshot?.element;t&&(t.forEach(n=>Pi(r,n)),t.forEach(n=>Ci(r,n)))}function Pi(r,e){let t=e.path,n=e.type?.[0]?.code;if(n!==void 0&&n!=="Element"&&n!=="BackboneElement")return;let i=t.split(".");i[0]=r.name;let o=V(i),s=y.types[o];s||(y.types[o]=s={}),s.parentType=s.parentType??V(i.slice(0,i.length-1)),s.display=s.display??o,s.structureDefinition=s.structureDefinition??r,s.elementDefinition=s.elementDefinition??e,s.description=s.description??e.definition,s.properties=s.properties??{}}function Ci(r,e){let n=e.path.split(".");if(n.length===1)return;n[0]=r.name;let i=V(n.slice(0,n.length-1)),o=y.types[i];if(!o)return;let s=n[n.length-1];o.properties[s]=e}function wi(r){for(let e of r.entry){let t=e.resource;t.resourceType==="SearchParameter"&&Xe(t)}}function Xe(r){for(let e of r.base??[]){let t=y.types[e];t&&(t.searchParams||(t.searchParams={_id:{base:[e],code:"_id",type:"token",expression:e+".id"},_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"},_compartment:{base:[e],code:"_compartment",type:"reference",expression:e+".meta.compartment"},_profile:{base:[e],code:"_profile",type:"uri",expression:e+".meta.profile"},_security:{base:[e],code:"_security",type:"token",expression:e+".meta.security"},_source:{base:[e],code:"_source",type:"uri",expression:e+".meta.source"},_tag:{base:[e],code:"_tag",type:"token",expression:e+".meta.tag"}}),t.searchParams[r.code]=r)}}function ki(r){let e=r.type?.[0]?.code;return e==="BackboneElement"||e==="Element"?V(r.path?.split(".")):e}function V(r){return r.length===1?r[0]:r.map(S).join("")}function kr(r){let e=r.structureDefinition;return e&&e.name===r.elementDefinition.path&&e.kind==="resource"&&!e.abstract}function Di(){let r=[];for(let[e,t]of Object.entries(y.types))kr(t)&&r.push(e);return r}function Ii(r){return y.types[r]}function Oi(r){return y.types[r].searchParams}function Vi(r){return r.replaceAll("[x]","").split(".").pop().split(/(?=[A-Z])/).map(Li).join(" ").replace("_"," ").replace(/\s+/g," ")}var Ui=new Set(["ID","IP","PKCE","JWKS","URI","URL"]);function Li(r){let e=r.toUpperCase();return Ui.has(e)?e:e.charAt(0)+r.slice(1)}function re(r,e){let t=y.types[r];if(!t)return;let n=t.properties[e]??t.properties[e+"[x]"];if(n){if(n.contentReference){let i=n.contentReference.substring(1).split("."),o=i.pop(),s=V(i);return re(s,o)}return n}}function U(r){return!!(r&&typeof r=="object"&&"resourceType"in r)}function Nt(r){return!!(r&&typeof r=="object"&&"reference"in r)}var y=hr;var _i=20,Or=(g=>(g.EQUALS="eq",g.NOT_EQUALS="ne",g.GREATER_THAN="gt",g.LESS_THAN="lt",g.GREATER_THAN_OR_EQUALS="ge",g.LESS_THAN_OR_EQUALS="le",g.STARTS_AFTER="sa",g.ENDS_BEFORE="eb",g.APPROXIMATELY="ap",g.CONTAINS="contains",g.EXACT="exact",g.TEXT="text",g.NOT="not",g.ABOVE="above",g.BELOW="below",g.IN="in",g.NOT_IN="not-in",g.OF_TYPE="of-type",g.MISSING="missing",g.IDENTIFIER="identifier",g.ITERATE="iterate",g))(Or||{}),Vr={contains:"contains",exact:"exact",above:"above",below:"below",text:"text",not:"not",in:"in","not-in":"not-in","of-type":"of-type",missing:"missing",identifier:"identifier",iterate:"iterate"},Mt={eq:"eq",ne:"ne",lt:"lt",le:"le",gt:"gt",ge:"ge",sa:"sa",eb:"eb",ap:"ap"};function Ni(r,e){let t=[];for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let o of i)t.push([n,o]);else t.push([n,i??""]);return Ur(r,t)}function Bt(r){let e=r.pathname.split("/").filter(Boolean).pop();return Ur(e,r.searchParams.entries())}function Mi(r){return Bt(new URL(r,"https://example.com/"))}function Ft(r){return Bt(new URL(r,"https://api.medplum.com/"))}function Ur(r,e){let t={resourceType:r};for(let[n,i]of e)Bi(t,n,i);return t}function Bi(r,e,t){let n,i,o=e.indexOf(":");switch(o>=0?(n=e.substring(0,o),i=e.substring(o+1)):(n=e,i=""),n){case"_sort":Fi(r,t);break;case"_count":r.count=parseInt(t,10);break;case"_offset":r.offset=parseInt(t,10);break;case"_total":r.total=t;break;case"_summary":t==="count"?(r.total="accurate",r.count=0):(t==="true"||t==="data"||t==="text")&&(r.summary=t);break;case"_include":{let s=Dr(t);i==="iterate"&&(s.modifier="iterate"),r.include?r.include.push(s):r.include=[s];break}case"_revinclude":{let s=Dr(t);i==="iterate"&&(s.modifier="iterate"),r.revInclude?r.revInclude.push(s):r.revInclude=[s];break}case"_fields":case"_elements":r.fields=t.split(",");break;default:{let s=y.types[r.resourceType]?.searchParams?.[n];s?qi(r,s,i,t):Qi(r,n,i,t)}}}function Fi(r,e){for(let t of e.split(",")){let n,i=!1;t.startsWith("-")?(n=t.substring(1),i=!0):n=t,r.sortRules||(r.sortRules=[]),r.sortRules.push({code:n,descending:i})}}function qi(r,e,t,n){if(t==="missing"){Ze(r,{code:e.code,operator:"missing",value:n});return}switch(e.type){case"number":case"date":case"quantity":ji(r,e,n);break;case"reference":case"string":case"token":case"uri":$i(r,e,t,n);break;default:break}}function ji(r,e,t){let{operator:n,value:i}=Hi(t);Ze(r,{code:e.code,operator:n,value:i})}function $i(r,e,t,n){Ze(r,{code:e.code,operator:Wi(t),value:n})}function Qi(r,e,t,n){let i="eq";if(t)i=t;else if(n.length>=2){let o=n.substring(0,2);o in Mt&&(n.length===2||n.at(2)?.match(/\d/))&&(i=o,n=n.substring(o.length))}Ze(r,{code:e,operator:i,value:n})}function Hi(r){let e=r.substring(0,2),t=Mt[e];return t?{operator:t,value:r.substring(2)}:{operator:"eq",value:r}}function Wi(r){return Vr[r]??"eq"}function Dr(r){let e=r.split(":");if(e.forEach(t=>{if(t==="*")throw new m(D("'*' is not supported as a value for search inclusion parameters"))}),e.length===1)throw new m(D(`Invalid include value '${r}': must be of the form ResourceType:search-parameter`));if(e.length===2)return{resourceType:e[0],searchParam:e[1]};if(e.length===3)return{resourceType:e[0],searchParam:e[1],targetType:e[2]};throw new m(D(`Invalid include value '${r}'`))}function Ze(r,e){r.filters?r.filters.push(e):r.filters=[e]}function Gi(r){let e=[];return r.fields&&e.push("_fields="+r.fields.join(",")),r.filters&&r.filters.forEach(t=>e.push(zi(t))),r.sortRules&&r.sortRules.length>0&&e.push(Ki(r.sortRules)),r.offset!==void 0&&e.push("_offset="+r.offset),r.count!==void 0&&e.push("_count="+r.count),r.total!==void 0&&e.push("_total="+r.total),r.include&&r.include.forEach(t=>e.push(Ir("_include",t))),r.revInclude&&r.revInclude.forEach(t=>e.push(Ir("_revinclude",t))),e.length===0?"":(e.sort((t,n)=>t.localeCompare(n)),"?"+e.join("&"))}function zi(r){let e=r.operator in Vr?":"+r.operator:"",t=r.operator!=="eq"&&r.operator in Mt?r.operator:"";return`${r.code}${e}=${t}${encodeURIComponent(r.value)}`}function Ki(r){return"_sort="+r.map(e=>e.descending?"-"+e.code:e.code).join(",")}function Ir(r,e){return r+"="+e.resourceType+":"+e.searchParam+(e.targetType?":"+e.targetType:"")}var ye=class{constructor(e,t){this.operator=e;this.child=t}toString(){return`${this.operator}(${this.child.toString()})`}},$=class{constructor(e,t,n){this.operator=e;this.left=t;this.right=n}toString(){return`${this.left.toString()} ${this.operator} ${this.right.toString()}`}},ge=class{constructor(){this.prefixParselets={};this.infixParselets={}}registerInfix(e,t){return this.infixParselets[e]=t,this}registerPrefix(e,t){return this.prefixParselets[e]=t,this}prefix(e,t,n){return this.registerPrefix(e,{parse(i,o){let s=i.consumeAndParse(t);return n(o,s)}})}infixLeft(e,t,n){return this.registerInfix(e,{parse(i,o,s){let a=i.consumeAndParse(t);return n(o,s,a)},precedence:t})}construct(e){return new et(e,this.prefixParselets,this.infixParselets)}},et=class{constructor(e,t,n){this.tokens=e,this.prefixParselets=t,this.infixParselets=n}hasMore(){return this.tokens.length>0}match(e){return this.peek()?.id!==e?!1:(this.consume(),!0)}consumeAndParse(e=1/0){let t=this.consume(),n=this.prefixParselets[t.id];if(!n)throw Error(`Parse error at "${t.value}" (line ${t.line}, column ${t.column}). No matching prefix parselet.`);let i=n.parse(this,t);for(;e>this.getPrecedence();){let o=this.consume();i=this.getInfixParselet(o).parse(this,i,o)}return i}getPrecedence(){let e=this.peek();if(!e)return 1/0;let t=this.getInfixParselet(e);return t?t.precedence:1/0}consume(e,t){if(!this.tokens.length)throw Error("Cant consume unknown more tokens.");if(e&&this.peek()?.id!==e){let n=this.peek();throw Error(`Expected ${e} but got "${n.id}" at line ${n.line} column ${n.column}.`)}if(t&&this.peek()?.value!==t){let n=this.peek();throw Error(`Expected "${t}" but got "${n.value}" at line ${n.line} column ${n.column}.`)}return this.tokens.shift()}peek(){return this.tokens.length>0?this.tokens[0]:void 0}removeComments(){this.tokens=this.tokens.filter(e=>e.id!=="Comment")}getInfixParselet(e){return this.infixParselets[e.id==="Symbol"?e.value:e.id]}};var Ji=["year","years","month","months","week","weeks","day","days","hour","hours","minute","minutes","second","seconds","millisecond","milliseconds"],Q=class{constructor(e,t,n,i){this.result=[];this.pos={index:0,line:1,column:0};this.markStack=[];this.str=e,this.keywords=t,this.operators=n,this.dateTimeLiterals=!!i?.dateTimeLiterals,this.symbolRegex=i?.symbolRegex??/[$\w%]/}tokenize(){for(;this.pos.index<this.str.length;){let e=this.consumeToken();e&&this.result.push(e)}return this.result}prevToken(){return this.result.slice(-1)[0]}peekToken(){this.mark();let e=this.consumeToken();return this.reset(),e}consumeToken(){this.consumeWhitespace();let e=this.curr();if(!e)return;this.mark();let t=this.peek();return e==="/"&&t==="*"?this.consumeMultiLineComment():e==="/"&&t==="/"?this.consumeSingleLineComment():e==="'"||e==='"'?this.consumeString(e):e==="`"?this.consumeBacktickSymbol():e==="@"?this.consumeDateTime():/\d/.exec(e)?this.consumeNumber():/\w/.exec(e)?this.consumeSymbol():(e==="$"||e==="%")&&/\w/.exec(t)?this.consumeSymbol():this.consumeOperator()}consumeWhitespace(){this.consumeWhile(()=>/\s/.exec(this.curr()))}consumeMultiLineComment(){let e=this.pos.index;return this.consumeWhile(()=>this.curr()!=="*"||this.peek()!=="/"),this.advance(),this.advance(),this.buildToken("Comment",this.str.substring(e,this.pos.index))}consumeSingleLineComment(){return this.buildToken("Comment",this.consumeWhile(()=>this.curr()!==`
|
|
2
2
|
`))}consumeString(e){this.advance();let t=this.buildToken("String",this.consumeWhile(()=>this.prev()==="\\"||this.curr()!==e));return this.advance(),t}consumeBacktickSymbol(){this.advance();let e=this.buildToken("Symbol",this.consumeWhile(()=>this.curr()!=="`"));return this.advance(),e}consumeDateTime(){this.advance();let e=this.pos.index;return this.consumeWhile(()=>/[\d-]/.exec(this.curr())),this.curr()==="T"&&(this.advance(),this.consumeWhile(()=>/[\d:]/.exec(this.curr())),this.curr()==="."&&/\d/.exec(this.peek())&&(this.advance(),this.consumeWhile(()=>/\d/.exec(this.curr()))),this.curr()==="Z"?this.advance():(this.curr()==="+"||this.curr()==="-")&&(this.advance(),this.consumeWhile(()=>/[\d:]/.exec(this.curr())))),this.buildToken("DateTime",this.str.substring(e,this.pos.index))}consumeNumber(){let e=this.pos.index,t="Number";return this.consumeWhile(()=>/\d/.exec(this.curr())),this.curr()==="."&&/\d/.exec(this.peek())&&(this.advance(),this.consumeWhile(()=>/\d/.exec(this.curr()))),this.curr()==="-"&&this.dateTimeLiterals?(this.pos.index=e-1,this.consumeDateTime()):(this.curr()===" "&&Yi(this.peekToken())&&(t="Quantity",this.consumeToken()),this.buildToken(t,this.str.substring(e,this.pos.index)))}consumeSymbol(){let e=this.consumeWhile(()=>this.symbolRegex.exec(this.curr()));return this.prevToken()?.value!=="."&&this.keywords.includes(e)?this.buildToken(e,e):this.buildToken("Symbol",e)}consumeOperator(){let e=this.curr(),t=this.peek(),n=e+t;return this.operators.includes(n)?(this.advance(),this.advance(),this.buildToken(n,n)):(this.advance(),this.buildToken(e,e))}consumeWhile(e){let t=this.pos.index;for(;this.pos.index<this.str.length&&e();)this.advance();return this.str.substring(t,this.pos.index)}curr(){return this.str[this.pos.index]}prev(){return this.str[this.pos.index-1]??""}peek(){return this.str[this.pos.index+1]??""}mark(){this.markStack.push({...this.pos})}reset(){let e=this.markStack.pop();if(!e)throw new Error("No mark to reset to");this.pos.index=e.index,this.pos.line=e.line,this.pos.column=e.column}advance(){this.pos.index++,this.curr()===`
|
|
3
|
-
`?(this.pos.line++,this.pos.column=0):this.pos.column++}buildToken(e,t){let n=this.markStack.pop();if(!n)throw new Error("No mark for token");return{id:e,value:t,...n}}};function Yi(r){return!!(r&&(r.id==="String"||r.id==="Symbol"&&Ji.includes(r.value)))}function ne(r){if(r.startsWith("T"))return r+"T00:00:00.000Z".substring(r.length);if(r.length<=10)return r;try{return new Date(r).toISOString()}catch{return r}}function d(r){return[{type:"boolean",value:r}]}function T(r){return r==null?{type:"undefined",value:void 0}:Number.isSafeInteger(r)?{type:"integer",value:r}:typeof r=="number"?{type:"decimal",value:r}:typeof r=="boolean"?{type:"boolean",value:r}:typeof r=="string"?{type:"string",value:r}:R(r)?{type:"Quantity",value:r}:U(r)?{type:r.resourceType,value:r}:{type:"BackboneElement",value:r}}function L(r){return r.length===0?!1:!!r[0].value}function I(r,e){if(r.length!==0){if(r.length===1&&(!e||r[0].type===e))return r[0];throw new Error(`Expected singleton of type ${e}, but found ${JSON.stringify(r)}`)}}function P(r,e){if(!r.value)return;let t=re(r.type,e);return t?Xi(r,e,t):Zi(r,e)}function Xi(r,e,t){let n=t.type;if(!n||n.length===0)return;let i,o="undefined";if(n.length===1)i=r.value[e],o=n[0].code;else for(let a of n){let c=e.replace("[x]","")+S(a.code);if(c in r.value){i=r.value[c],o=a.code;break}}let s=r.value["_"+e];if(s&&(Array.isArray(i)?i=i.map((a,c)=>s[c]?Mr(a??{},s[c]):a):i=Mr(i??{},s)),!b(i))return(o==="Element"||o==="BackboneElement")&&(o=V(t.path?.split("."))),Array.isArray(i)?i.map(a=>Lr(a,o)):Lr(i,o)}function Lr(r,e){return e==="Resource"&&U(r)&&(e=r.resourceType),{type:e,value:r}}function Zi(r,e){let t=r.value;if(!t||typeof t!="object")return;let n;if(e in t)n=t[e];else for(let i in j){let o=e+S(i);if(o in t){n=t[o];break}}if(!b(n))return Array.isArray(n)?n.map(T):T(n)}function xe(r){let e=[];for(let t of r){let n=!1;for(let i of e)if(L(qt(t,i))){n=!0;break}n||e.push(t)}return e}function tt(r){return d(!L(r))}function rt(r,e){return r.length===0||e.length===0?[]:r.length!==e.length?d(!1):d(r.every((t,n)=>L(qt(t,e[n]))))}function qt(r,e){let t=r.value?.valueOf(),n=e.value?.valueOf();return typeof t=="number"&&typeof n=="number"?d(Math.abs(t-n)<1e-8):R(t)&&R(n)?d(jt(t,n)):d(typeof t=="object"&&typeof n=="object"?$t(r,e):t===n)}function nt(r,e){return r.length===0&&e.length===0?d(!0):r.length!==e.length?d(!1):(r.sort(_r),e.sort(_r),d(r.every((t,n)=>L(Br(t,e[n])))))}function Br(r,e){let{type:t,value:n}=r,{type:i,value:o}=e,s=n?.valueOf(),a=o?.valueOf();return typeof s=="number"&&typeof a=="number"?d(Math.abs(s-a)<.01):R(s)&&R(a)?d(jt(s,a)):d(t==="Coding"&&i==="Coding"?typeof s!="object"||typeof a!="object"?!1:s.code===a.code&&s.system===a.system:typeof s=="object"&&typeof a=="object"?$t({...s,id:void 0},{...a,id:void 0}):typeof s=="string"&&typeof a=="string"?s.toLowerCase()===a.toLowerCase():s===a)}function _r(r,e){let t=r.value?.valueOf(),n=e.value?.valueOf();return typeof t=="number"&&typeof n=="number"?t-n:typeof t=="string"&&typeof n=="string"?t.localeCompare(n):0}function Te(r,e){let{value:t}=r;if(t==null)return!1;switch(e){case"Boolean":return typeof t=="boolean";case"Decimal":case"Integer":return typeof t=="number";case"Date":return typeof t=="string"&&!!/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t);case"DateTime":return typeof t=="string"&&!!/^\d{4}(-\d{2}(-\d{2})?)?T/.exec(t);case"Time":return typeof t=="string"&&!!/^T\d/.exec(t);case"Period":return Fr(t);case"Quantity":return R(t);default:return typeof t=="object"&&t?.resourceType===e}}function Fr(r){return!!(r&&typeof r=="object"&&"start"in r)}function R(r){return!!(r&&typeof r=="object"&&"value"in r&&typeof r.value=="number")}function jt(r,e){return Math.abs(r.value-e.value)<.01&&(r.unit===e.unit||r.code===e.code||r.unit===e.code||r.code===e.unit)}function $t(r,e){let t=Object.keys(r),n=Object.keys(e);if(t.length!==n.length)return!1;for(let i of t){let o=r[i],s=e[i];if(Nr(o)&&Nr(s)){if(!$t(o,s))return!1}else if(o!==s)return!1}return!0}function Nr(r){return r!==null&&typeof r=="object"}function Mr(r,e){return delete e.__proto__,delete e.constructor,Object.assign(r,e)}var ve=()=>[],A={empty:(r,e)=>d(e.length===0),exists:(r,e,t)=>t?d(e.filter(n=>L(t.eval(r,[n]))).length>0):d(e.length>0),all:(r,e,t)=>d(e.every(n=>L(t.eval(r,[n])))),allTrue:(r,e)=>{for(let t of e)if(!t.value)return d(!1);return d(!0)},anyTrue:(r,e)=>{for(let t of e)if(t.value)return d(!0);return d(!1)},allFalse:(r,e)=>{for(let t of e)if(t.value)return d(!1);return d(!0)},anyFalse:(r,e)=>{for(let t of e)if(!t.value)return d(!0);return d(!1)},subsetOf:ve,supersetOf:ve,count:(r,e)=>[{type:"integer",value:e.length}],distinct:(r,e)=>{let t=[];for(let n of e)t.some(i=>i.value===n.value)||t.push(n);return t},isDistinct:(r,e)=>d(e.length===A.distinct(r,e).length),where:(r,e,t)=>e.filter(n=>L(t.eval(r,[n]))),select:(r,e,t)=>e.map(n=>t.eval(r,[n])).flat(),repeat:ve,ofType:(r,e,t)=>e.filter(n=>n.type===t.name),single:(r,e)=>{if(e.length>1)throw new Error("Expected input length one for single()");return e.length===0?[]:e.slice(0,1)},first:(r,e)=>e.length===0?[]:e.slice(0,1),last:(r,e)=>e.length===0?[]:e.slice(e.length-1,e.length),tail:(r,e)=>e.length===0?[]:e.slice(1,e.length),skip:(r,e,t)=>{let n=t.eval(r,e)[0]?.value;if(typeof n!="number")throw new Error("Expected a number for skip(num)");return n>=e.length?[]:n<=0?e:e.slice(n,e.length)},take:(r,e,t)=>{let n=t.eval(r,e)[0]?.value;if(typeof n!="number")throw new Error("Expected a number for take(num)");return n>=e.length?e:n<=0?[]:e.slice(0,n)},intersect:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e),i=[];for(let o of e)!i.some(s=>s.value===o.value)&&n.some(s=>s.value===o.value)&&i.push(o);return i},exclude:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e),i=[];for(let o of e)n.some(s=>s.value===o.value)||i.push(o);return i},union:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e);return xe([...e,...n])},combine:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e);return[...e,...n]},htmlChecks:(r,e,t)=>[T(!0)],iif:(r,e,t,n,i)=>{let o=t.eval(r,e);if(o.length>1||o.length===1&&typeof o[0].value!="boolean")throw new Error("Expected criterion to evaluate to a Boolean");return L(o)?n.eval(r,e):i?i.eval(r,e):[]},toBoolean:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);if(typeof t=="boolean")return[{type:"boolean",value:t}];if(typeof t=="number"&&(t===0||t===1))return d(!!t);if(typeof t=="string"){let n=t.toLowerCase();if(["true","t","yes","y","1","1.0"].includes(n))return d(!0);if(["false","f","no","n","0","0.0"].includes(n))return d(!1)}return[]},convertsToBoolean:(r,e)=>e.length===0?[]:d(A.toBoolean(r,e).length===1),toInteger:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="number"?[{type:"integer",value:t}]:typeof t=="string"&&/^[+-]?\d+$/.exec(t)?[{type:"integer",value:parseInt(t,10)}]:typeof t=="boolean"?[{type:"integer",value:t?1:0}]:[]},convertsToInteger:(r,e)=>e.length===0?[]:d(A.toInteger(r,e).length===1),toDate:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="string"&&/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t)?[{type:"date",value:ne(t)}]:[]},convertsToDate:(r,e)=>e.length===0?[]:d(A.toDate(r,e).length===1),toDateTime:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="string"&&/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t)?[{type:"dateTime",value:ne(t)}]:[]},convertsToDateTime:(r,e)=>e.length===0?[]:d(A.toDateTime(r,e).length===1),toDecimal:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="number"?[{type:"decimal",value:t}]:typeof t=="string"&&/^-?\d{1,9}(\.\d{1,9})?$/.exec(t)?[{type:"decimal",value:parseFloat(t)}]:typeof t=="boolean"?[{type:"decimal",value:t?1:0}]:[]},convertsToDecimal:(r,e)=>e.length===0?[]:d(A.toDecimal(r,e).length===1),toQuantity:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return R(t)?[{type:"Quantity",value:t}]:typeof t=="number"?[{type:"Quantity",value:{value:t,unit:"1"}}]:typeof t=="string"&&/^-?\d{1,9}(\.\d{1,9})?/.exec(t)?[{type:"Quantity",value:{value:parseFloat(t),unit:"1"}}]:typeof t=="boolean"?[{type:"Quantity",value:{value:t?1:0,unit:"1"}}]:[]},convertsToQuantity:(r,e)=>e.length===0?[]:d(A.toQuantity(r,e).length===1),toString:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return t==null?[]:R(t)?[{type:"string",value:`${t.value} '${t.unit}'`}]:[{type:"string",value:t.toString()}]},convertsToString:(r,e)=>e.length===0?[]:d(A.toString(r,e).length===1),toTime:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);if(typeof t=="string"){let n=/^T?(\d{2}(:\d{2}(:\d{2})?)?)/.exec(t);if(n)return[{type:"time",value:ne("T"+n[1])}]}return[]},convertsToTime:(r,e)=>e.length===0?[]:d(A.toTime(r,e).length===1),indexOf:(r,e,t)=>w((n,i)=>n.indexOf(i),r,e,t),substring:(r,e,t,n)=>w((i,o,s)=>{let a=o,c=s?a+s:i.length;return a<0||a>=i.length?void 0:i.substring(a,c)},r,e,t,n),startsWith:(r,e,t)=>w((n,i)=>n.startsWith(i),r,e,t),endsWith:(r,e,t)=>w((n,i)=>n.endsWith(i),r,e,t),contains:(r,e,t)=>w((n,i)=>n.includes(i),r,e,t),upper:(r,e)=>w(t=>t.toUpperCase(),r,e),lower:(r,e)=>w(t=>t.toLowerCase(),r,e),replace:(r,e,t,n)=>w((i,o,s)=>i.replaceAll(o,s),r,e,t,n),matches:(r,e,t)=>w((n,i)=>!!new RegExp(i).exec(n),r,e,t),replaceMatches:(r,e,t,n)=>w((i,o,s)=>i.replaceAll(o,s),r,e,t,n),length:(r,e)=>w(t=>t.length,r,e),toChars:(r,e)=>w(t=>t?t.split(""):void 0,r,e),abs:(r,e)=>_(Math.abs,r,e),ceiling:(r,e)=>_(Math.ceil,r,e),exp:(r,e)=>_(Math.exp,r,e),floor:(r,e)=>_(Math.floor,r,e),ln:(r,e)=>_(Math.log,r,e),log:(r,e,t)=>_((n,i)=>Math.log(n)/Math.log(i),r,e,t),power:(r,e,t)=>_(Math.pow,r,e,t),round:(r,e)=>_(Math.round,r,e),sqrt:(r,e)=>_(Math.sqrt,r,e),truncate:(r,e)=>_(t=>t|0,r,e),children:ve,descendants:ve,trace:(r,e,t)=>(console.log("trace",e,t),e),now:()=>[{type:"dateTime",value:new Date().toISOString()}],timeOfDay:()=>[{type:"time",value:new Date().toISOString().substring(11)}],today:()=>[{type:"date",value:new Date().toISOString().substring(0,10)}],between:(r,e,t,n,i)=>{let o=A.toDateTime(r,t.eval(r,e));if(o.length===0)throw new Error("Invalid start date");let s=A.toDateTime(r,n.eval(r,e));if(s.length===0)throw new Error("Invalid end date");let a=i.eval(r,e)[0]?.value;if(a!=="years"&&a!=="months"&&a!=="days")throw new Error("Invalid units");let c=pe(o[0].value,s[0].value);return[{type:"Quantity",value:{value:c[a],unit:a}}]},is:(r,e,t)=>{let n="";return t instanceof M?n=t.name:t instanceof H&&(n=t.left.name+"."+t.right.name),n?e.map(i=>({type:"boolean",value:Te(i,n)})):[]},not:(r,e)=>A.toBoolean(r,e).map(t=>({type:"boolean",value:!t.value})),resolve:(r,e)=>e.map(t=>{let n=t.value,i;if(typeof n=="string")i=n;else if(typeof n=="object"){let o=n;if(o.resource)return T(o.resource);o.reference?i=o.reference:o.type&&o.identifier&&(i=`${o.type}?identifier=${o.identifier.system}|${o.identifier.value}`)}if(i?.includes("?")){let[o]=i.split("?");return{type:o,value:{resourceType:o}}}if(i?.includes("/")){let[o,s]=i.split("/");return{type:o,value:{resourceType:o,id:s}}}return{type:"BackboneElement",value:void 0}}).filter(t=>!!t.value),as:(r,e)=>e,type:(r,e)=>e.map(({value:t})=>typeof t=="boolean"?{type:"BackboneElement",value:{namespace:"System",name:"Boolean"}}:typeof t=="number"?{type:"BackboneElement",value:{namespace:"System",name:"Integer"}}:U(t)?{type:"BackboneElement",value:{namespace:"FHIR",name:t.resourceType}}:{type:"BackboneElement",value:null}),conformsTo:(r,e,t)=>{let n=t.eval(r,e)[0].value;if(!n.startsWith("http://hl7.org/fhir/StructureDefinition/"))throw new Error("Expected a StructureDefinition URL");let i=n.replace("http://hl7.org/fhir/StructureDefinition/","");return e.map(o=>({type:"boolean",value:o.value?.resourceType===i}))}};function w(r,e,t,...n){if(t.length===0)return[];let[{value:i}]=N(t,1);if(typeof i!="string")throw new Error("String function cannot be called with non-string");let o=r(i,...n.map(s=>s?.eval(e,t)[0]?.value));return o===void 0?[]:Array.isArray(o)?o.map(T):[T(o)]}function _(r,e,t,...n){if(t.length===0)return[];let[{value:i}]=N(t,1),o=R(i),s=o?i.value:i;if(typeof s!="number")throw new Error("Math function cannot be called with non-number");let a=r(s,...n.map(l=>l.eval(e,t)[0]?.value)),c=o?"Quantity":t[0].type,f=o?{...i,value:a}:a;return[{type:c,value:f}]}function N(r,e){if(r.length!==e)throw new Error(`Expected ${e} arguments`);for(let t of r)if(t==null)throw new Error("Expected non-null argument");return r}var be=class{constructor(e,t){this.original=e;this.child=t}eval(e,t){try{return t.length>0?t.map(n=>this.child.eval(e,[n])).flat():this.child.eval(e,[])}catch(n){throw new Error(`FhirPathError on "${this.original}": ${n}`)}}toString(){return this.child.toString()}},k=class{constructor(e){this.value=e}eval(){return[this.value]}toString(){let e=this.value.value;return typeof e=="string"?`'${e}'`:e.toString()}},M=class{constructor(e){this.name=e}eval(e,t){if(this.name==="$this")return t;if(this.name.startsWith("%")){let n=e.variables[this.name.slice(1)];if(!n)throw new Error(`Undefined variable ${this.name}`);return[n]}return t.flatMap(n=>this.evalValue(n)).filter(n=>n?.value!==void 0)}evalValue(e){let t=e.value;if(!(!t||typeof t!="object"))return U(t)&&t.resourceType===this.name?e:P(e,this.name)}toString(){return this.name}},Se=class{eval(){return[]}toString(){return"{}"}},Re=class extends ye{constructor(t,n,i){super(t,n);this.impl=i}eval(t,n){return this.impl(this.child.eval(t,n))}toString(){return this.operator+this.child.toString()}},z=class extends ${constructor(e,t){super("as",e,t)}eval(e,t){return A.ofType(e,this.left.eval(e,t),this.right)}},v=class extends ${},E=class extends v{constructor(t,n,i,o){super(t,n,i);this.impl=o}eval(t,n){let i=this.left.eval(t,n);if(i.length!==1)return[];let o=this.right.eval(t,n);if(o.length!==1)return[];let s=i[0].value,a=o[0].value,c=R(s)?s.value:s,f=R(a)?a.value:a,l=this.impl(c,f);return typeof l=="boolean"?d(l):R(s)?[{type:"Quantity",value:{...s,value:l}}]:[T(l)]}},Ae=class extends ${constructor(e,t){super("&",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t),o=[...n,...i];return o.length>0&&o.every(s=>typeof s.value=="string")?[{type:"string",value:o.map(s=>s.value).join("")}]:o}},Ee=class extends v{constructor(e,t){super("contains",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return d(n.some(o=>o.value===i[0].value))}},Pe=class extends v{constructor(e,t){super("in",e,t)}eval(e,t){let n=I(this.left.eval(e,t)),i=this.right.eval(e,t);return n?d(i.some(o=>o.value===n.value)):[]}},H=class extends ${constructor(e,t){super(".",e,t)}eval(e,t){return this.right.eval(e,this.left.eval(e,t))}toString(){return`${this.left.toString()}.${this.right.toString()}`}},X=class extends ${constructor(e,t){super("|",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return xe([...n,...i])}},Ce=class extends v{constructor(e,t){super("=",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return rt(n,i)}},we=class extends v{constructor(e,t){super("!=",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return tt(rt(n,i))}},ke=class extends v{constructor(e,t){super("~",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return nt(n,i)}},De=class extends v{constructor(e,t){super("!~",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return tt(nt(n,i))}},K=class extends v{constructor(e,t){super("is",e,t)}eval(e,t){let n=this.left.eval(e,t);if(n.length!==1)return[];let i=this.right.name;return d(Te(n[0],i))}},Ie=class extends v{constructor(e,t){super("and",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return n?.value===!0&&i?.value===!0?d(!0):n?.value===!1||i?.value===!1?d(!1):[]}},Oe=class extends v{constructor(e,t){super("or",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return n?.value===!1&&i?.value===!1?d(!1):n?.value||i?.value?d(!0):[]}},Ve=class extends v{constructor(e,t){super("xor",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return!n||!i?[]:d(n.value!==i.value)}},Ue=class extends v{constructor(e,t){super("implies",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return i?.value===!0||n?.value===!1?d(!0):!n||!i?[]:d(!1)}},B=class{constructor(e,t){this.name=e;this.args=t}eval(e,t){let n=A[this.name];if(!n)throw new Error("Unrecognized function: "+this.name);return n(e,t,...this.args)}toString(){return`${this.name}(${this.args.map(e=>e.toString()).join(", ")})`}},J=class{constructor(e,t){this.left=e;this.expr=t}eval(e,t){let n=this.expr.eval(e,t);if(n.length!==1)return[];let i=n[0].value;if(typeof i!="number")throw new Error("Invalid indexer expression: should return integer}");let o=this.left.eval(e,t);return i in o?[o[i]]:[]}toString(){return`${this.left.toString()}[${this.expr.toString()}]`}};var ie=["true","false"],oe=["!=","!~","<=",">=","{}","->"];function Qt(r){return new Q(r,ie,oe).tokenize()}var p={FunctionCall:0,Dot:1,Indexer:2,UnaryAdd:3,UnarySubtract:3,Multiply:4,Divide:4,IntegerDivide:4,Modulo:4,Add:5,Subtract:5,Ampersand:5,Is:6,As:6,Union:7,GreaterThan:8,GreaterThanOrEquals:8,LessThan:8,LessThanOrEquals:8,Equals:9,Equivalent:9,NotEquals:9,NotEquivalent:9,In:10,Contains:10,And:11,Xor:12,Or:12,Implies:13,Arrow:100,Semicolon:200},eo={parse(r){let e=r.consumeAndParse();if(!r.match(")"))throw new Error("Parse error: expected `)` got `"+r.peek()?.value+"`");return e}},to={parse(r,e){let t=r.consumeAndParse();if(!r.match("]"))throw new Error("Parse error: expected `]`");return new J(e,t)},precedence:p.Indexer},ro={parse(r,e){if(!(e instanceof M))throw new Error("Unexpected parentheses");let t=[];for(;!r.match(")");)t.push(r.consumeAndParse()),r.match(",");return new B(e.name,t)},precedence:p.FunctionCall};function no(r){let e=r.split(" "),t=parseFloat(e[0]),n=e[1];return n?.startsWith("'")&&n.endsWith("'")?n=n.substring(1,n.length-1):n="{"+n+"}",{value:t,unit:n}}function se(){return new ge().registerPrefix("String",{parse:(r,e)=>new k({type:"string",value:e.value})}).registerPrefix("DateTime",{parse:(r,e)=>new k({type:"dateTime",value:ne(e.value)})}).registerPrefix("Quantity",{parse:(r,e)=>new k({type:"Quantity",value:no(e.value)})}).registerPrefix("Number",{parse:(r,e)=>new k({type:"decimal",value:parseFloat(e.value)})}).registerPrefix("true",{parse:()=>new k({type:"boolean",value:!0})}).registerPrefix("false",{parse:()=>new k({type:"boolean",value:!1})}).registerPrefix("Symbol",{parse:(r,e)=>new M(e.value)}).registerPrefix("{}",{parse:()=>new Se}).registerPrefix("(",eo).registerInfix("[",to).registerInfix("(",ro).prefix("+",p.UnaryAdd,(r,e)=>new Re("+",e,t=>t)).prefix("-",p.UnarySubtract,(r,e)=>new E("-",e,e,(t,n)=>-n)).infixLeft(".",p.Dot,(r,e,t)=>new H(r,t)).infixLeft("/",p.Divide,(r,e,t)=>new E("/",r,t,(n,i)=>n/i)).infixLeft("*",p.Multiply,(r,e,t)=>new E("*",r,t,(n,i)=>n*i)).infixLeft("+",p.Add,(r,e,t)=>new E("+",r,t,(n,i)=>n+i)).infixLeft("-",p.Subtract,(r,e,t)=>new E("-",r,t,(n,i)=>n-i)).infixLeft("|",p.Union,(r,e,t)=>new X(r,t)).infixLeft("=",p.Equals,(r,e,t)=>new Ce(r,t)).infixLeft("!=",p.NotEquals,(r,e,t)=>new we(r,t)).infixLeft("~",p.Equivalent,(r,e,t)=>new ke(r,t)).infixLeft("!~",p.NotEquivalent,(r,e,t)=>new De(r,t)).infixLeft("<",p.LessThan,(r,e,t)=>new E("<",r,t,(n,i)=>n<i)).infixLeft("<=",p.LessThanOrEquals,(r,e,t)=>new E("<=",r,t,(n,i)=>n<=i)).infixLeft(">",p.GreaterThan,(r,e,t)=>new E(">",r,t,(n,i)=>n>i)).infixLeft(">=",p.GreaterThanOrEquals,(r,e,t)=>new E(">=",r,t,(n,i)=>n>=i)).infixLeft("&",p.Ampersand,(r,e,t)=>new Ae(r,t)).infixLeft("and",p.And,(r,e,t)=>new Ie(r,t)).infixLeft("as",p.As,(r,e,t)=>new z(r,t)).infixLeft("contains",p.Contains,(r,e,t)=>new Ee(r,t)).infixLeft("div",p.Divide,(r,e,t)=>new E("div",r,t,(n,i)=>n/i|0)).infixLeft("in",p.In,(r,e,t)=>new Pe(r,t)).infixLeft("is",p.Is,(r,e,t)=>new K(r,t)).infixLeft("mod",p.Modulo,(r,e,t)=>new E("mod",r,t,(n,i)=>n%i)).infixLeft("or",p.Or,(r,e,t)=>new Oe(r,t)).infixLeft("xor",p.Xor,(r,e,t)=>new Ve(r,t)).infixLeft("implies",p.Implies,(r,e,t)=>new Ue(r,t))}var io=se();function it(r){return new be(r,io.construct(Qt(r)).consumeAndParse())}function ae(r,e){let t=Array.isArray(e)?e:[e];for(let n=0;n<t.length;n++){let i=t[n];typeof i=="object"&&"type"in i&&"value"in i||(t[n]=T(t[n]))}return ot(r,t).map(n=>n.value)}function ot(r,e,t){let n=t??{};return it(r).eval({variables:n},e).map(o=>({type:o.type,value:o.value?.valueOf()}))}var Wt=(l=>(l.BOOLEAN="BOOLEAN",l.NUMBER="NUMBER",l.QUANTITY="QUANTITY",l.TEXT="TEXT",l.REFERENCE="REFERENCE",l.CANONICAL="CANONICAL",l.DATE="DATE",l.DATETIME="DATETIME",l.PERIOD="PERIOD",l.UUID="UUID",l))(Wt||{});function Gt(r,e){let t=y.types[r].searchParamsDetails?.[e.code];return t||(t=so(r,e)),t}function oo(r,e,t){let n=y.types[r];n.searchParamsDetails||(n.searchParamsDetails={}),n.searchParamsDetails[e]=t}function so(r,e){let t=e.code,n=uo(t),i=zt(r,e.expression),o={elementDefinitions:[],propertyTypes:new Set,array:!1};for(let a of i){let c=Le(a);c.length===1&&c[0]instanceof v?o.propertyTypes.add("boolean"):qr(o,Le(a),r,1)}let s={columnName:n,type:lo(e,o.propertyTypes),elementDefinitions:o.elementDefinitions,array:o.array};return oo(r,t,s),s}function qr(r,e,t,n){let i=e[n];if(i instanceof z){r.propertyTypes.add(i.right.toString());return}if(i instanceof B){ao(r,i);return}let o=i.toString(),s=re(t,o);if(!s)throw new Error(`Element definition not found for ${t} ${o}`);let a=!1,c=n+1;if(c<e.length&&e[c]instanceof J&&(a=!0,c++),s.max!=="0"&&s.max!=="1"&&!a&&(r.array=!0),c>=e.length){r.elementDefinitions.push(s);for(let f of s.type)r.propertyTypes.add(f.code);return}for(let f of s.type){let l=f.code;co(l)&&(l=V(s.path?.split("."))),qr(r,e,l,c)}}function ao(r,e){if(e.name==="as"){r.propertyTypes.add(e.args[0].toString());return}if(e.name==="resolve"){r.propertyTypes.add("string");return}if(e.name==="where"&&e.args[0]instanceof K){r.propertyTypes.add(e.args[0].right.toString());return}throw new Error(`Unhandled FHIRPath function: ${e.name}`)}function co(r){return r==="Element"||r==="BackboneElement"}function uo(r){return r.split("-").reduce((e,t,n)=>e+(n?S(t):t),"")}function lo(r,e){switch(r.type){case"date":return e.size===1&&e.has("date")?"DATE":"DATETIME";case"number":return"NUMBER";case"quantity":return"QUANTITY";case"reference":return e.has("canonical")?"CANONICAL":"REFERENCE";case"token":return e.size===1&&e.has("boolean")?"BOOLEAN":"TEXT";default:return"TEXT"}}function zt(r,e){let t=[],n=it(e);return Ht(r,n.child,t),t}function po(r,e){let t=zt(r,e);if(t.length!==0)return t.map(n=>n.toString()).join(" | ")}function Ht(r,e,t){e instanceof X?(Ht(r,e.left,t),Ht(r,e.right,t)):e.toString().startsWith(r+".")&&t.push(e)}function Le(r){return r instanceof z||r instanceof J?[Le(r.left),r].flat():r instanceof v?[r]:r instanceof H?[Le(r.left),Le(r.right)].flat():r instanceof B&&r.name==="where"&&!(r.args[0]instanceof K)?[]:[r]}function Jt(r,e){if(e.resourceType!==r.resourceType)return!1;if(e.filters){for(let t of e.filters)if(!fo(r,e,t))return!1}return!0}function fo(r,e,t){let n=y.types[e.resourceType].searchParams?.[t.code];switch(n?.type){case"reference":return mo(r,t,n);case"string":case"uri":return jr(r,t,n);case"token":return ho(r,t,n);case"date":return go(r,t,n);default:return!1}}function mo(r,e,t){let n=ae(t.expression,r),i=st(e.operator);if(e.value===""&&n.length===0)return e.operator==="eq";let o=n.map(s=>typeof s=="string"?s:s.reference);for(let s of e.value.split(",")){let a=o.includes(s);if(!a&&e.code==="_compartment"&&(a=o.some(c=>c?.endsWith("/"+s))),a)return!i}return i}function ho(r,e,t){return Gt(r.resourceType,t).type==="BOOLEAN"?yo(r,e,t):jr(r,e,t,!0)}function yo(r,e,t){let n=ae(t.expression,r),i=e.value==="true",o=n.includes(i);return st(e.operator)?!o:o}function jr(r,e,t,n){let i=ae(t.expression,r),o=e.value.split(","),s=st(e.operator);for(let a of i)for(let c of o)if(Kt(a,e.operator,c,n))return!s;return s}function Kt(r,e,t,n){if(n&&t.includes("|")){let[o,s]=t.split("|");return Kt(r,e,o,!1)&&(!s||Kt(r,e,s,!1))}let i="";return r&&(typeof r=="string"?i=r:typeof r=="object"&&(i=JSON.stringify(r))),i.toLowerCase().includes(t.toLowerCase())}function go(r,e,t){let n=ae(t.expression,r),i=e.value.split(","),o=st(e.operator);for(let s of n)for(let a of i)if(xo(s,e.operator,a))return!o;return o}function xo(r,e,t){switch(e){case"sa":case"gt":return r>t;case"ge":return r>=t;case"eb":case"lt":return r<t;case"le":return r<=t;case"eq":case"ne":return r===t;default:return!1}}function st(r){return r==="ne"||r==="not"}var $r=["CapabilityStatement","CompartmentDefinition","ImplementationGuide","OperationDefinition","SearchParameter","StructureDefinition"],To={resourceType:"*"},Qr=["DomainConfiguration","JsonWebKey","Login","User"],Hr=["PasswordChangeRequest","Project","ProjectMembership"],Wr=(x=>(x.READ="read",x.VREAD="vread",x.UPDATE="update",x.PATCH="patch",x.DELETE="delete",x.HISTORY="history",x.HISTORY_INSTANCE="history-instance",x.HISTORY_TYPE="history-type",x.HISTORY_SYSTEM="history-system",x.CREATE="create",x.SEARCH="search",x.SEARCH_TYPE="search-type",x.SEARCH_SYSTEM="search-system",x.SEARCH_COMPARTMENT="search-compartment",x.CAPABILITIES="capabilities",x.TRANSACTION="transaction",x.BATCH="batch",x.OPERATION="operation",x))(Wr||{}),vo=["read","vread","history","history-instance"];function bo(r,e){if(r.resource){for(let t of r.resource)if(Yt(t.resourceType,e))return!0}return!1}function Gr(r,e){if(Qr.includes(e)||$r.includes(e))return!1;if(r.resource){for(let t of r.resource)if(Yt(t.resourceType,e)&&!t.readonly)return!0}return!1}function So(r,e){let t=e.resourceType;return Gr(r,t)?zr(r,e,!1):!1}function zr(r,e,t){if(r.resource){for(let n of r.resource)if(Kr(e,t?"read":"update",n))return!0}return!1}function Ro(r,e,t){if(!t)return To;if(t.resource){for(let n of t.resource)if(Kr(r,e,n))return n}}function Kr(r,e,t){let n=r.resourceType;return!(!Yt(t.resourceType,n)||t.readonly&&!vo.includes(e)||t.compartment&&!r.meta?.compartment?.find(i=>i.reference===t.compartment?.reference)||t.criteria&&!Jt(r,Ft(t.criteria)))}function Yt(r,e){return r===e||r==="*"&&!Hr.includes(e)}function Xt(r){if(typeof window<"u")return window.atob(r);if(typeof Buffer<"u")return Buffer.from(r,"base64").toString("binary");throw new Error("Unable to decode base64")}function Zt(r){if(typeof window<"u")return window.btoa(r);if(typeof Buffer<"u")return Buffer.from(r,"binary").toString("base64");throw new Error("Unable to encode base64")}function at(){let r=new Uint32Array(28);return crypto.getRandomValues(r),Vt(r.buffer)}async function er(r){return crypto.subtle.digest("SHA-256",new TextEncoder().encode(r))}function tr(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let e=Math.random()*16|0;return(r==="x"?e:e&3|8).toString(16)})}function Ao(r){let e={};r=It(r);for(let i of r.entry||[]){delete i.resource?.meta;let o=i.resource?.id;o&&(e[o]=tr(),i.fullUrl="urn:uuid:"+e[o],delete i.resource?.id)}let t=r.entry,n=JSON.stringify({resourceType:"Bundle",type:"transaction",entry:t?.map(i=>({fullUrl:i.fullUrl,request:{method:"POST",url:i.resource.resourceType},resource:i.resource}))},(i,o)=>Eo(i,o,e),2);return Jr(JSON.parse(n))}function Eo(r,e,t){if(r==="reference"&&typeof e=="string"){let n;if(e.includes("/")?n=e.split("/")[1]:e.startsWith("urn:uuid:")&&(n=e.slice(9)),n)return"urn:uuid:"+t[n]}return e}function Jr(r){let e=Co(r),{sorted:t,cycles:n}=Po(e),i={};for(let s of r.entry||[])s.fullUrl&&(i[s.fullUrl]=s);let o=t.map(s=>i[s]);for(let s of n)for(let a of s){let c=i[a],f={...c,request:{...c.request,method:"PUT"}};o.push(f)}return{...r,entry:o}}function Po(r){let e=[],t={},n=[];for(let o of Object.keys(r))t[o]=0;function i(o,s){if(t[o]===2)return!0;if(t[o]===1){let c=s.lastIndexOf(o);return c!==-1&&n.push(s.slice(c)),!0}t[o]=1,s.push(o);let a=!1;for(let c of r[o])i(c,s)||(a=!0);return t[o]=2,s.pop(),e.unshift(o),!a}for(let o in r)t[o]===0&&i(o,[]);return{sorted:e,cycles:n}}function Yr(r,e){for(let t in r)if(r[t]&&typeof r[t]=="object"){let n=r[t];if(Nt(n)){let i=n.reference;i.startsWith("urn:uuid:")&&e(i)}else Yr(n,e)}}function Co(r){let e={};for(let t of r.entry||[])t.fullUrl&&(e[t.fullUrl]=[]);for(let t of r.entry||[]){let n=t.fullUrl;t.resource&&Yr(t.resource,i=>{e[i]&&e[i].push(n)})}return e}var _e=class{constructor(e=10){this.max=e,this.cache=new Map}clear(){this.cache.clear()}get(e){let t=this.cache.get(e);return t&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size>=this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}delete(e){this.cache.delete(e)}keys(){return this.cache.keys()}first(){return this.cache.keys().next().value}};var Y={CSS:"text/css",FAVICON:"image/vnd.microsoft.icon",FHIR_JSON:"application/fhir+json",FORM_URL_ENCODED:"application/x-www-form-urlencoded",HL7_V2:"x-application/hl7-v2+er7",HTML:"text/html",JAVASCRIPT:"text/javascript",JSON:"application/json",JSON_PATCH:"application/json-patch+json",PNG:"image/png",SVG:"image/svg+xml",TEXT:"text/plain",TYPESCRIPT:"text/typescript"};var Ne=class{constructor(){this.listeners={}}addEventListener(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}removeEventListener(e,t){let n=this.listeners[e];if(n){for(let i=0;i<n.length;i++)if(n[i]===t){n.splice(i,1);return}}}dispatchEvent(e){let t=this.listeners[e.type];return t&&t.forEach(n=>n.call(this,e)),!e.defaultPrevented}};function wo(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=Xt(e),n=Array.from(t).reduce((o,s)=>{let a=("00"+s.charCodeAt(0).toString(16)).slice(-2);return`${o}%${a}`},""),i=decodeURIComponent(n);return JSON.parse(i)}function ct(r){let[e,t,n]=r.split(".");return wo(t)}function rr(r){try{return typeof ct(r).login_id=="string"}catch{return!1}}var ko,C=class{constructor(e){this[ko]="ReadablePromise";this.status="pending";this.suspender=e.then(t=>(this.status="success",this.response=t,t),t=>{throw this.status="error",this.error=t,t})}isPending(){return this.status==="pending"}isOk(){return this.status==="success"}read(){switch(this.status){case"pending":throw this.suspender;case"error":throw this.error;default:return this.response}}then(e,t){return this.suspender.then(e,t)}catch(e){return this.suspender.catch(e)}finally(e){return this.suspender.finally(e)}};ko=Symbol.toStringTag;var Me=class{constructor(){this.storage=typeof localStorage<"u"?localStorage:new ut}clear(){this.storage.clear()}getString(e){return this.storage.getItem(e)??void 0}setString(e,t){t?this.storage.setItem(e,t):this.storage.removeItem(e)}getObject(e){let t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?Dt(t):void 0)}},ut=class{constructor(){this.data=new Map}get length(){return this.data.size}clear(){this.data.clear()}getItem(e){return this.data.get(e)??null}setItem(e,t){t?this.data.set(e,t):this.data.delete(e)}removeItem(e){this.data.delete(e)}key(e){return Array.from(this.data.keys())[e]}};var Do="2.0.31-2db7665",Io="https://api.medplum.com/",Oo=1e3,Vo=6e4,Xr="Binary/",Zr={resourceType:"Device",id:"system",deviceName:[{name:"System"}]},on=(o=>(o.ClientCredentials="client_credentials",o.AuthorizationCode="authorization_code",o.RefreshToken="refresh_token",o.JwtBearer="urn:ietf:params:oauth:grant-type:jwt-bearer",o.TokenExchange="urn:ietf:params:oauth:grant-type:token-exchange",o))(on||{}),sn=(o=>(o.AccessToken="urn:ietf:params:oauth:token-type:access_token",o.RefreshToken="urn:ietf:params:oauth:token-type:refresh_token",o.IdToken="urn:ietf:params:oauth:token-type:id_token",o.Saml1Token="urn:ietf:params:oauth:token-type:saml1",o.Saml2Token="urn:ietf:params:oauth:token-type:saml2",o))(sn||{}),nr=class extends Ne{constructor(t){super();if(t?.baseUrl&&!t.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");this.fetch=t?.fetch??Uo(),this.storage=t?.storage??new Me,this.createPdfImpl=t?.createPdf,this.baseUrl=tn(t?.baseUrl)??Io,this.fhirBaseUrl=this.baseUrl+(tn(t?.fhirUrlPath)??"fhir/R4/"),this.clientId=t?.clientId??"",this.clientSecret=t?.clientSecret??"",this.authorizeUrl=t?.authorizeUrl??this.baseUrl+"oauth2/authorize",this.tokenUrl=t?.tokenUrl??this.baseUrl+"oauth2/token",this.logoutUrl=t?.logoutUrl??this.baseUrl+"oauth2/logout",this.onUnauthenticated=t?.onUnauthenticated,this.cacheTime=t?.cacheTime??Vo,this.cacheTime>0?this.requestCache=new _e(t?.resourceCacheSize??Oo):this.requestCache=void 0,t?.autoBatchTime?(this.autoBatchTime=t.autoBatchTime,this.autoBatchQueue=[]):(this.autoBatchTime=0,this.autoBatchQueue=void 0);let n=this.getActiveLogin();n&&(this.setAccessToken(n.accessToken,n.refreshToken),this.refreshProfile().catch(console.log)),this.setupStorageListener()}getBaseUrl(){return this.baseUrl}getAuthorizeUrl(){return this.authorizeUrl}clear(){this.storage.clear(),this.clearActiveLogin()}clearActiveLogin(){this.storage.setString("activeLogin",void 0),this.requestCache?.clear(),this.accessToken=void 0,this.refreshToken=void 0,this.sessionDetails=void 0,this.medplumServer=void 0,this.dispatchEvent({type:"change"})}invalidateUrl(t){t=t.toString(),this.requestCache?.delete(t)}invalidateAll(){this.requestCache?.clear()}invalidateSearches(t){let n=this.fhirBaseUrl+t;if(this.requestCache)for(let i of this.requestCache.keys())(i.endsWith(n)||i.includes(n+"?"))&&this.requestCache.delete(i)}get(t,n={}){t=t.toString();let i=this.getCacheEntry(t,n);if(i)return i.value;let o;t.startsWith(this.fhirBaseUrl)&&this.autoBatchQueue?o=new Promise((a,c)=>{this.autoBatchQueue.push({method:"GET",url:t.replace(this.fhirBaseUrl,""),options:n,resolve:a,reject:c}),this.autoBatchTimerId||(this.autoBatchTimerId=setTimeout(()=>this.executeAutoBatch(),this.autoBatchTime))}):o=this.request("GET",t,n);let s=new C(o);return this.setCacheEntry(t,s),s}post(t,n,i,o={}){return t=t.toString(),n&&this.setRequestBody(o,n),i&&this.setRequestContentType(o,i),this.invalidateUrl(t),this.request("POST",t,o)}put(t,n,i,o={}){return t=t.toString(),n&&this.setRequestBody(o,n),i&&this.setRequestContentType(o,i),this.invalidateUrl(t),this.request("PUT",t,o)}patch(t,n,i={}){return t=t.toString(),this.setRequestBody(i,n),this.setRequestContentType(i,Y.JSON_PATCH),this.invalidateUrl(t),this.request("PATCH",t,i)}delete(t,n){return t=t.toString(),this.invalidateUrl(t),this.request("DELETE",t,n)}async startNewUser(t,n){let{codeChallengeMethod:i,codeChallenge:o}=await this.startPkce();return this.post("auth/newuser",{...t,clientId:t.clientId??this.clientId,codeChallengeMethod:i,codeChallenge:o},void 0,n)}async startNewProject(t,n){return this.post("auth/newproject",t,void 0,n)}async startNewPatient(t,n){return this.post("auth/newpatient",t,void 0,n)}async startLogin(t,n){return this.post("auth/login",{...await this.ensureCodeChallenge(t),clientId:t.clientId??this.clientId,scope:t.scope},void 0,n)}async startGoogleLogin(t,n){return this.post("auth/google",{...await this.ensureCodeChallenge(t),clientId:t.clientId??this.clientId,scope:t.scope},void 0,n)}async ensureCodeChallenge(t){return t.codeChallenge?t:{...t,...await this.startPkce()}}async signOut(){await this.post(this.logoutUrl,{}),this.clear()}async signInWithRedirect(t){let i=new URLSearchParams(window.location.search).get("code");if(i)return this.processCode(i);await this.requestAuthorization(t)}signOutWithRedirect(){window.location.assign(this.logoutUrl)}async signInWithExternalAuth(t,n,i,o){let s=await this.ensureCodeChallenge(o);window.location.assign(this.getExternalAuthRedirectUri(t,n,i,s))}async exchangeExternalAccessToken(t,n){if(n=n??this.clientId,!n)throw new Error("MedplumClient is missing clientId");let i=new URLSearchParams;return i.set("grant_type","urn:ietf:params:oauth:grant-type:token-exchange"),i.set("subject_token_type","urn:ietf:params:oauth:token-type:access_token"),i.set("client_id",n),i.set("subject_token",t),this.fetchTokens(i)}getExternalAuthRedirectUri(t,n,i,o){let s=new URL(t);return s.searchParams.set("response_type","code"),s.searchParams.set("client_id",n),s.searchParams.set("redirect_uri",i),s.searchParams.set("scope","openid profile email"),s.searchParams.set("state",JSON.stringify(o)),s.toString()}fhirUrl(...t){return new URL(this.fhirBaseUrl+t.join("/"))}fhirSearchUrl(t,n){let i=this.fhirUrl(t);return n&&(i.search=new URLSearchParams(n).toString()),i}search(t,n,i){let o=this.fhirSearchUrl(t,n),s=o.toString()+"-search",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C((async()=>{let f=await this.get(o,i);if(f.entry)for(let l of f.entry)this.cacheResource(l.resource);return f})());return this.setCacheEntry(s,c),c}searchOne(t,n,i){let o=this.fhirSearchUrl(t,n);o.searchParams.set("_count","1"),o.searchParams.sort();let s=o.toString()+"-searchOne",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C(this.search(t,o.searchParams,i).then(f=>f.entry?.[0]?.resource));return this.setCacheEntry(s,c),c}searchResources(t,n,i){let s=this.fhirSearchUrl(t,n).toString()+"-searchResources",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C(this.search(t,n,i).then(nn));return this.setCacheEntry(s,c),c}async*searchResourcePages(t,n,i){let o=this.fhirSearchUrl(t,n);for(;o;){let s=new URL(o).searchParams,a=await this.search(t,s,i),c=a.link?.find(f=>f.relation==="next");if(!a.entry?.length&&!c)break;yield nn(a),o=c?.url?new URL(c.url):void 0}}searchValueSet(t,n,i){let o=this.fhirUrl("ValueSet","$expand");return o.searchParams.set("url",t),o.searchParams.set("filter",n),this.get(o.toString(),i)}getCached(t,n){let i=this.requestCache?.get(this.fhirUrl(t,n).toString())?.value;return i?.isOk()?i.read():void 0}getCachedReference(t){let n=t.reference;if(!n)return;if(n==="system")return Zr;let[i,o]=n.split("/");if(!(!i||!o))return this.getCached(i,o)}readResource(t,n,i){return this.get(this.fhirUrl(t,n),i)}readReference(t,n){let i=t.reference;if(!i)return new C(Promise.reject(new Error("Missing reference")));if(i==="system")return new C(Promise.resolve(Zr));let[o,s]=i.split("/");return!o||!s?new C(Promise.reject(new Error("Invalid reference"))):this.readResource(o,s,n)}getSchema(){return y}requestSchema(t){if(t in y.types)return Promise.resolve(y);let n=t+"-requestSchema",i=this.getCacheEntry(n,void 0);if(i)return i.value;let o=new C((async()=>{let s=`{
|
|
3
|
+
`?(this.pos.line++,this.pos.column=0):this.pos.column++}buildToken(e,t){let n=this.markStack.pop();if(!n)throw new Error("No mark for token");return{id:e,value:t,...n}}};function Yi(r){return!!(r&&(r.id==="String"||r.id==="Symbol"&&Ji.includes(r.value)))}function ne(r){if(r.startsWith("T"))return r+"T00:00:00.000Z".substring(r.length);if(r.length<=10)return r;try{return new Date(r).toISOString()}catch{return r}}function d(r){return[{type:"boolean",value:r}]}function T(r){return r==null?{type:"undefined",value:void 0}:Number.isSafeInteger(r)?{type:"integer",value:r}:typeof r=="number"?{type:"decimal",value:r}:typeof r=="boolean"?{type:"boolean",value:r}:typeof r=="string"?{type:"string",value:r}:R(r)?{type:"Quantity",value:r}:U(r)?{type:r.resourceType,value:r}:{type:"BackboneElement",value:r}}function L(r){return r.length===0?!1:!!r[0].value}function I(r,e){if(r.length!==0){if(r.length===1&&(!e||r[0].type===e))return r[0];throw new Error(`Expected singleton of type ${e}, but found ${JSON.stringify(r)}`)}}function P(r,e){if(!r.value)return;let t=re(r.type,e);return t?Xi(r,e,t):Zi(r,e)}function Xi(r,e,t){let n=t.type;if(!n||n.length===0)return;let i,o="undefined";if(n.length===1)i=r.value[e],o=n[0].code;else for(let a of n){let c=e.replace("[x]","")+S(a.code);if(c in r.value){i=r.value[c],o=a.code;break}}let s=r.value["_"+e];if(s&&(Array.isArray(i)?i=i.map((a,c)=>s[c]?Mr(a??{},s[c]):a):i=Mr(i??{},s)),!b(i))return(o==="Element"||o==="BackboneElement")&&(o=V(t.path?.split("."))),Array.isArray(i)?i.map(a=>Lr(a,o)):Lr(i,o)}function Lr(r,e){return e==="Resource"&&U(r)&&(e=r.resourceType),{type:e,value:r}}function Zi(r,e){let t=r.value;if(!t||typeof t!="object")return;let n;if(e in t)n=t[e];else for(let i in j){let o=e+S(i);if(o in t){n=t[o];break}}if(!b(n))return Array.isArray(n)?n.map(T):T(n)}function xe(r){let e=[];for(let t of r){let n=!1;for(let i of e)if(L(qt(t,i))){n=!0;break}n||e.push(t)}return e}function tt(r){return d(!L(r))}function rt(r,e){return r.length===0||e.length===0?[]:r.length!==e.length?d(!1):d(r.every((t,n)=>L(qt(t,e[n]))))}function qt(r,e){let t=r.value?.valueOf(),n=e.value?.valueOf();return typeof t=="number"&&typeof n=="number"?d(Math.abs(t-n)<1e-8):R(t)&&R(n)?d(jt(t,n)):d(typeof t=="object"&&typeof n=="object"?$t(r,e):t===n)}function nt(r,e){return r.length===0&&e.length===0?d(!0):r.length!==e.length?d(!1):(r.sort(_r),e.sort(_r),d(r.every((t,n)=>L(Br(t,e[n])))))}function Br(r,e){let{type:t,value:n}=r,{type:i,value:o}=e,s=n?.valueOf(),a=o?.valueOf();return typeof s=="number"&&typeof a=="number"?d(Math.abs(s-a)<.01):R(s)&&R(a)?d(jt(s,a)):d(t==="Coding"&&i==="Coding"?typeof s!="object"||typeof a!="object"?!1:s.code===a.code&&s.system===a.system:typeof s=="object"&&typeof a=="object"?$t({...s,id:void 0},{...a,id:void 0}):typeof s=="string"&&typeof a=="string"?s.toLowerCase()===a.toLowerCase():s===a)}function _r(r,e){let t=r.value?.valueOf(),n=e.value?.valueOf();return typeof t=="number"&&typeof n=="number"?t-n:typeof t=="string"&&typeof n=="string"?t.localeCompare(n):0}function Te(r,e){let{value:t}=r;if(t==null)return!1;switch(e){case"Boolean":return typeof t=="boolean";case"Decimal":case"Integer":return typeof t=="number";case"Date":return typeof t=="string"&&!!/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t);case"DateTime":return typeof t=="string"&&!!/^\d{4}(-\d{2}(-\d{2})?)?T/.exec(t);case"Time":return typeof t=="string"&&!!/^T\d/.exec(t);case"Period":return Fr(t);case"Quantity":return R(t);default:return typeof t=="object"&&t?.resourceType===e}}function Fr(r){return!!(r&&typeof r=="object"&&"start"in r)}function R(r){return!!(r&&typeof r=="object"&&"value"in r&&typeof r.value=="number")}function jt(r,e){return Math.abs(r.value-e.value)<.01&&(r.unit===e.unit||r.code===e.code||r.unit===e.code||r.code===e.unit)}function $t(r,e){let t=Object.keys(r),n=Object.keys(e);if(t.length!==n.length)return!1;for(let i of t){let o=r[i],s=e[i];if(Nr(o)&&Nr(s)){if(!$t(o,s))return!1}else if(o!==s)return!1}return!0}function Nr(r){return r!==null&&typeof r=="object"}function Mr(r,e){return delete e.__proto__,delete e.constructor,Object.assign(r,e)}var ve=()=>[],A={empty:(r,e)=>d(e.length===0),exists:(r,e,t)=>t?d(e.filter(n=>L(t.eval(r,[n]))).length>0):d(e.length>0),all:(r,e,t)=>d(e.every(n=>L(t.eval(r,[n])))),allTrue:(r,e)=>{for(let t of e)if(!t.value)return d(!1);return d(!0)},anyTrue:(r,e)=>{for(let t of e)if(t.value)return d(!0);return d(!1)},allFalse:(r,e)=>{for(let t of e)if(t.value)return d(!1);return d(!0)},anyFalse:(r,e)=>{for(let t of e)if(!t.value)return d(!0);return d(!1)},subsetOf:ve,supersetOf:ve,count:(r,e)=>[{type:"integer",value:e.length}],distinct:(r,e)=>{let t=[];for(let n of e)t.some(i=>i.value===n.value)||t.push(n);return t},isDistinct:(r,e)=>d(e.length===A.distinct(r,e).length),where:(r,e,t)=>e.filter(n=>L(t.eval(r,[n]))),select:(r,e,t)=>e.map(n=>t.eval(r,[n])).flat(),repeat:ve,ofType:(r,e,t)=>e.filter(n=>n.type===t.name),single:(r,e)=>{if(e.length>1)throw new Error("Expected input length one for single()");return e.length===0?[]:e.slice(0,1)},first:(r,e)=>e.length===0?[]:e.slice(0,1),last:(r,e)=>e.length===0?[]:e.slice(e.length-1,e.length),tail:(r,e)=>e.length===0?[]:e.slice(1,e.length),skip:(r,e,t)=>{let n=t.eval(r,e)[0]?.value;if(typeof n!="number")throw new Error("Expected a number for skip(num)");return n>=e.length?[]:n<=0?e:e.slice(n,e.length)},take:(r,e,t)=>{let n=t.eval(r,e)[0]?.value;if(typeof n!="number")throw new Error("Expected a number for take(num)");return n>=e.length?e:n<=0?[]:e.slice(0,n)},intersect:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e),i=[];for(let o of e)!i.some(s=>s.value===o.value)&&n.some(s=>s.value===o.value)&&i.push(o);return i},exclude:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e),i=[];for(let o of e)n.some(s=>s.value===o.value)||i.push(o);return i},union:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e);return xe([...e,...n])},combine:(r,e,t)=>{if(!t)return e;let n=t.eval(r,e);return[...e,...n]},htmlChecks:(r,e,t)=>[T(!0)],iif:(r,e,t,n,i)=>{let o=t.eval(r,e);if(o.length>1||o.length===1&&typeof o[0].value!="boolean")throw new Error("Expected criterion to evaluate to a Boolean");return L(o)?n.eval(r,e):i?i.eval(r,e):[]},toBoolean:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);if(typeof t=="boolean")return[{type:"boolean",value:t}];if(typeof t=="number"&&(t===0||t===1))return d(!!t);if(typeof t=="string"){let n=t.toLowerCase();if(["true","t","yes","y","1","1.0"].includes(n))return d(!0);if(["false","f","no","n","0","0.0"].includes(n))return d(!1)}return[]},convertsToBoolean:(r,e)=>e.length===0?[]:d(A.toBoolean(r,e).length===1),toInteger:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="number"?[{type:"integer",value:t}]:typeof t=="string"&&/^[+-]?\d+$/.exec(t)?[{type:"integer",value:parseInt(t,10)}]:typeof t=="boolean"?[{type:"integer",value:t?1:0}]:[]},convertsToInteger:(r,e)=>e.length===0?[]:d(A.toInteger(r,e).length===1),toDate:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="string"&&/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t)?[{type:"date",value:ne(t)}]:[]},convertsToDate:(r,e)=>e.length===0?[]:d(A.toDate(r,e).length===1),toDateTime:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="string"&&/^\d{4}(-\d{2}(-\d{2})?)?/.exec(t)?[{type:"dateTime",value:ne(t)}]:[]},convertsToDateTime:(r,e)=>e.length===0?[]:d(A.toDateTime(r,e).length===1),toDecimal:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return typeof t=="number"?[{type:"decimal",value:t}]:typeof t=="string"&&/^-?\d{1,9}(\.\d{1,9})?$/.exec(t)?[{type:"decimal",value:parseFloat(t)}]:typeof t=="boolean"?[{type:"decimal",value:t?1:0}]:[]},convertsToDecimal:(r,e)=>e.length===0?[]:d(A.toDecimal(r,e).length===1),toQuantity:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return R(t)?[{type:"Quantity",value:t}]:typeof t=="number"?[{type:"Quantity",value:{value:t,unit:"1"}}]:typeof t=="string"&&/^-?\d{1,9}(\.\d{1,9})?/.exec(t)?[{type:"Quantity",value:{value:parseFloat(t),unit:"1"}}]:typeof t=="boolean"?[{type:"Quantity",value:{value:t?1:0,unit:"1"}}]:[]},convertsToQuantity:(r,e)=>e.length===0?[]:d(A.toQuantity(r,e).length===1),toString:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);return t==null?[]:R(t)?[{type:"string",value:`${t.value} '${t.unit}'`}]:[{type:"string",value:t.toString()}]},convertsToString:(r,e)=>e.length===0?[]:d(A.toString(r,e).length===1),toTime:(r,e)=>{if(e.length===0)return[];let[{value:t}]=N(e,1);if(typeof t=="string"){let n=/^T?(\d{2}(:\d{2}(:\d{2})?)?)/.exec(t);if(n)return[{type:"time",value:ne("T"+n[1])}]}return[]},convertsToTime:(r,e)=>e.length===0?[]:d(A.toTime(r,e).length===1),indexOf:(r,e,t)=>w((n,i)=>n.indexOf(i),r,e,t),substring:(r,e,t,n)=>w((i,o,s)=>{let a=o,c=s?a+s:i.length;return a<0||a>=i.length?void 0:i.substring(a,c)},r,e,t,n),startsWith:(r,e,t)=>w((n,i)=>n.startsWith(i),r,e,t),endsWith:(r,e,t)=>w((n,i)=>n.endsWith(i),r,e,t),contains:(r,e,t)=>w((n,i)=>n.includes(i),r,e,t),upper:(r,e)=>w(t=>t.toUpperCase(),r,e),lower:(r,e)=>w(t=>t.toLowerCase(),r,e),replace:(r,e,t,n)=>w((i,o,s)=>i.replaceAll(o,s),r,e,t,n),matches:(r,e,t)=>w((n,i)=>!!new RegExp(i).exec(n),r,e,t),replaceMatches:(r,e,t,n)=>w((i,o,s)=>i.replaceAll(o,s),r,e,t,n),length:(r,e)=>w(t=>t.length,r,e),toChars:(r,e)=>w(t=>t?t.split(""):void 0,r,e),abs:(r,e)=>_(Math.abs,r,e),ceiling:(r,e)=>_(Math.ceil,r,e),exp:(r,e)=>_(Math.exp,r,e),floor:(r,e)=>_(Math.floor,r,e),ln:(r,e)=>_(Math.log,r,e),log:(r,e,t)=>_((n,i)=>Math.log(n)/Math.log(i),r,e,t),power:(r,e,t)=>_(Math.pow,r,e,t),round:(r,e)=>_(Math.round,r,e),sqrt:(r,e)=>_(Math.sqrt,r,e),truncate:(r,e)=>_(t=>t|0,r,e),children:ve,descendants:ve,trace:(r,e,t)=>(console.log("trace",e,t),e),now:()=>[{type:"dateTime",value:new Date().toISOString()}],timeOfDay:()=>[{type:"time",value:new Date().toISOString().substring(11)}],today:()=>[{type:"date",value:new Date().toISOString().substring(0,10)}],between:(r,e,t,n,i)=>{let o=A.toDateTime(r,t.eval(r,e));if(o.length===0)throw new Error("Invalid start date");let s=A.toDateTime(r,n.eval(r,e));if(s.length===0)throw new Error("Invalid end date");let a=i.eval(r,e)[0]?.value;if(a!=="years"&&a!=="months"&&a!=="days")throw new Error("Invalid units");let c=pe(o[0].value,s[0].value);return[{type:"Quantity",value:{value:c[a],unit:a}}]},is:(r,e,t)=>{let n="";return t instanceof M?n=t.name:t instanceof H&&(n=t.left.name+"."+t.right.name),n?e.map(i=>({type:"boolean",value:Te(i,n)})):[]},not:(r,e)=>A.toBoolean(r,e).map(t=>({type:"boolean",value:!t.value})),resolve:(r,e)=>e.map(t=>{let n=t.value,i;if(typeof n=="string")i=n;else if(typeof n=="object"){let o=n;if(o.resource)return T(o.resource);o.reference?i=o.reference:o.type&&o.identifier&&(i=`${o.type}?identifier=${o.identifier.system}|${o.identifier.value}`)}if(i?.includes("?")){let[o]=i.split("?");return{type:o,value:{resourceType:o}}}if(i?.includes("/")){let[o,s]=i.split("/");return{type:o,value:{resourceType:o,id:s}}}return{type:"BackboneElement",value:void 0}}).filter(t=>!!t.value),as:(r,e)=>e,type:(r,e)=>e.map(({value:t})=>typeof t=="boolean"?{type:"BackboneElement",value:{namespace:"System",name:"Boolean"}}:typeof t=="number"?{type:"BackboneElement",value:{namespace:"System",name:"Integer"}}:U(t)?{type:"BackboneElement",value:{namespace:"FHIR",name:t.resourceType}}:{type:"BackboneElement",value:null}),conformsTo:(r,e,t)=>{let n=t.eval(r,e)[0].value;if(!n.startsWith("http://hl7.org/fhir/StructureDefinition/"))throw new Error("Expected a StructureDefinition URL");let i=n.replace("http://hl7.org/fhir/StructureDefinition/","");return e.map(o=>({type:"boolean",value:o.value?.resourceType===i}))}};function w(r,e,t,...n){if(t.length===0)return[];let[{value:i}]=N(t,1);if(typeof i!="string")throw new Error("String function cannot be called with non-string");let o=r(i,...n.map(s=>s?.eval(e,t)[0]?.value));return o===void 0?[]:Array.isArray(o)?o.map(T):[T(o)]}function _(r,e,t,...n){if(t.length===0)return[];let[{value:i}]=N(t,1),o=R(i),s=o?i.value:i;if(typeof s!="number")throw new Error("Math function cannot be called with non-number");let a=r(s,...n.map(l=>l.eval(e,t)[0]?.value)),c=o?"Quantity":t[0].type,f=o?{...i,value:a}:a;return[{type:c,value:f}]}function N(r,e){if(r.length!==e)throw new Error(`Expected ${e} arguments`);for(let t of r)if(t==null)throw new Error("Expected non-null argument");return r}var be=class{constructor(e,t){this.original=e;this.child=t}eval(e,t){try{return t.length>0?t.map(n=>this.child.eval(e,[n])).flat():this.child.eval(e,[])}catch(n){throw new Error(`FhirPathError on "${this.original}": ${n}`)}}toString(){return this.child.toString()}},k=class{constructor(e){this.value=e}eval(){return[this.value]}toString(){let e=this.value.value;return typeof e=="string"?`'${e}'`:e.toString()}},M=class{constructor(e){this.name=e}eval(e,t){if(this.name==="$this")return t;if(this.name.startsWith("%")){let n=e.variables[this.name.slice(1)];if(!n)throw new Error(`Undefined variable ${this.name}`);return[n]}return t.flatMap(n=>this.evalValue(n)).filter(n=>n?.value!==void 0)}evalValue(e){let t=e.value;if(!(!t||typeof t!="object"))return U(t)&&t.resourceType===this.name?e:P(e,this.name)}toString(){return this.name}},Se=class{eval(){return[]}toString(){return"{}"}},Re=class extends ye{constructor(t,n,i){super(t,n);this.impl=i}eval(t,n){return this.impl(this.child.eval(t,n))}toString(){return this.operator+this.child.toString()}},z=class extends ${constructor(e,t){super("as",e,t)}eval(e,t){return A.ofType(e,this.left.eval(e,t),this.right)}},v=class extends ${},E=class extends v{constructor(t,n,i,o){super(t,n,i);this.impl=o}eval(t,n){let i=this.left.eval(t,n);if(i.length!==1)return[];let o=this.right.eval(t,n);if(o.length!==1)return[];let s=i[0].value,a=o[0].value,c=R(s)?s.value:s,f=R(a)?a.value:a,l=this.impl(c,f);return typeof l=="boolean"?d(l):R(s)?[{type:"Quantity",value:{...s,value:l}}]:[T(l)]}},Ae=class extends ${constructor(e,t){super("&",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t),o=[...n,...i];return o.length>0&&o.every(s=>typeof s.value=="string")?[{type:"string",value:o.map(s=>s.value).join("")}]:o}},Ee=class extends v{constructor(e,t){super("contains",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return d(n.some(o=>o.value===i[0].value))}},Pe=class extends v{constructor(e,t){super("in",e,t)}eval(e,t){let n=I(this.left.eval(e,t)),i=this.right.eval(e,t);return n?d(i.some(o=>o.value===n.value)):[]}},H=class extends ${constructor(e,t){super(".",e,t)}eval(e,t){return this.right.eval(e,this.left.eval(e,t))}toString(){return`${this.left.toString()}.${this.right.toString()}`}},X=class extends ${constructor(e,t){super("|",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return xe([...n,...i])}},Ce=class extends v{constructor(e,t){super("=",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return rt(n,i)}},we=class extends v{constructor(e,t){super("!=",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return tt(rt(n,i))}},ke=class extends v{constructor(e,t){super("~",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return nt(n,i)}},De=class extends v{constructor(e,t){super("!~",e,t)}eval(e,t){let n=this.left.eval(e,t),i=this.right.eval(e,t);return tt(nt(n,i))}},K=class extends v{constructor(e,t){super("is",e,t)}eval(e,t){let n=this.left.eval(e,t);if(n.length!==1)return[];let i=this.right.name;return d(Te(n[0],i))}},Ie=class extends v{constructor(e,t){super("and",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return n?.value===!0&&i?.value===!0?d(!0):n?.value===!1||i?.value===!1?d(!1):[]}},Oe=class extends v{constructor(e,t){super("or",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return n?.value===!1&&i?.value===!1?d(!1):n?.value||i?.value?d(!0):[]}},Ve=class extends v{constructor(e,t){super("xor",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return!n||!i?[]:d(n.value!==i.value)}},Ue=class extends v{constructor(e,t){super("implies",e,t)}eval(e,t){let n=I(this.left.eval(e,t),"boolean"),i=I(this.right.eval(e,t),"boolean");return i?.value===!0||n?.value===!1?d(!0):!n||!i?[]:d(!1)}},B=class{constructor(e,t){this.name=e;this.args=t}eval(e,t){let n=A[this.name];if(!n)throw new Error("Unrecognized function: "+this.name);return n(e,t,...this.args)}toString(){return`${this.name}(${this.args.map(e=>e.toString()).join(", ")})`}},J=class{constructor(e,t){this.left=e;this.expr=t}eval(e,t){let n=this.expr.eval(e,t);if(n.length!==1)return[];let i=n[0].value;if(typeof i!="number")throw new Error("Invalid indexer expression: should return integer}");let o=this.left.eval(e,t);return i in o?[o[i]]:[]}toString(){return`${this.left.toString()}[${this.expr.toString()}]`}};var ie=["true","false"],oe=["!=","!~","<=",">=","{}","->"];function Qt(r){return new Q(r,ie,oe).tokenize()}var p={FunctionCall:0,Dot:1,Indexer:2,UnaryAdd:3,UnarySubtract:3,Multiply:4,Divide:4,IntegerDivide:4,Modulo:4,Add:5,Subtract:5,Ampersand:5,Is:6,As:6,Union:7,GreaterThan:8,GreaterThanOrEquals:8,LessThan:8,LessThanOrEquals:8,Equals:9,Equivalent:9,NotEquals:9,NotEquivalent:9,In:10,Contains:10,And:11,Xor:12,Or:12,Implies:13,Arrow:100,Semicolon:200},eo={parse(r){let e=r.consumeAndParse();if(!r.match(")"))throw new Error("Parse error: expected `)` got `"+r.peek()?.value+"`");return e}},to={parse(r,e){let t=r.consumeAndParse();if(!r.match("]"))throw new Error("Parse error: expected `]`");return new J(e,t)},precedence:p.Indexer},ro={parse(r,e){if(!(e instanceof M))throw new Error("Unexpected parentheses");let t=[];for(;!r.match(")");)t.push(r.consumeAndParse()),r.match(",");return new B(e.name,t)},precedence:p.FunctionCall};function no(r){let e=r.split(" "),t=parseFloat(e[0]),n=e[1];return n?.startsWith("'")&&n.endsWith("'")?n=n.substring(1,n.length-1):n="{"+n+"}",{value:t,unit:n}}function se(){return new ge().registerPrefix("String",{parse:(r,e)=>new k({type:"string",value:e.value})}).registerPrefix("DateTime",{parse:(r,e)=>new k({type:"dateTime",value:ne(e.value)})}).registerPrefix("Quantity",{parse:(r,e)=>new k({type:"Quantity",value:no(e.value)})}).registerPrefix("Number",{parse:(r,e)=>new k({type:"decimal",value:parseFloat(e.value)})}).registerPrefix("true",{parse:()=>new k({type:"boolean",value:!0})}).registerPrefix("false",{parse:()=>new k({type:"boolean",value:!1})}).registerPrefix("Symbol",{parse:(r,e)=>new M(e.value)}).registerPrefix("{}",{parse:()=>new Se}).registerPrefix("(",eo).registerInfix("[",to).registerInfix("(",ro).prefix("+",p.UnaryAdd,(r,e)=>new Re("+",e,t=>t)).prefix("-",p.UnarySubtract,(r,e)=>new E("-",e,e,(t,n)=>-n)).infixLeft(".",p.Dot,(r,e,t)=>new H(r,t)).infixLeft("/",p.Divide,(r,e,t)=>new E("/",r,t,(n,i)=>n/i)).infixLeft("*",p.Multiply,(r,e,t)=>new E("*",r,t,(n,i)=>n*i)).infixLeft("+",p.Add,(r,e,t)=>new E("+",r,t,(n,i)=>n+i)).infixLeft("-",p.Subtract,(r,e,t)=>new E("-",r,t,(n,i)=>n-i)).infixLeft("|",p.Union,(r,e,t)=>new X(r,t)).infixLeft("=",p.Equals,(r,e,t)=>new Ce(r,t)).infixLeft("!=",p.NotEquals,(r,e,t)=>new we(r,t)).infixLeft("~",p.Equivalent,(r,e,t)=>new ke(r,t)).infixLeft("!~",p.NotEquivalent,(r,e,t)=>new De(r,t)).infixLeft("<",p.LessThan,(r,e,t)=>new E("<",r,t,(n,i)=>n<i)).infixLeft("<=",p.LessThanOrEquals,(r,e,t)=>new E("<=",r,t,(n,i)=>n<=i)).infixLeft(">",p.GreaterThan,(r,e,t)=>new E(">",r,t,(n,i)=>n>i)).infixLeft(">=",p.GreaterThanOrEquals,(r,e,t)=>new E(">=",r,t,(n,i)=>n>=i)).infixLeft("&",p.Ampersand,(r,e,t)=>new Ae(r,t)).infixLeft("and",p.And,(r,e,t)=>new Ie(r,t)).infixLeft("as",p.As,(r,e,t)=>new z(r,t)).infixLeft("contains",p.Contains,(r,e,t)=>new Ee(r,t)).infixLeft("div",p.Divide,(r,e,t)=>new E("div",r,t,(n,i)=>n/i|0)).infixLeft("in",p.In,(r,e,t)=>new Pe(r,t)).infixLeft("is",p.Is,(r,e,t)=>new K(r,t)).infixLeft("mod",p.Modulo,(r,e,t)=>new E("mod",r,t,(n,i)=>n%i)).infixLeft("or",p.Or,(r,e,t)=>new Oe(r,t)).infixLeft("xor",p.Xor,(r,e,t)=>new Ve(r,t)).infixLeft("implies",p.Implies,(r,e,t)=>new Ue(r,t))}var io=se();function it(r){return new be(r,io.construct(Qt(r)).consumeAndParse())}function ae(r,e){let t=Array.isArray(e)?e:[e];for(let n=0;n<t.length;n++){let i=t[n];typeof i=="object"&&"type"in i&&"value"in i||(t[n]=T(t[n]))}return ot(r,t).map(n=>n.value)}function ot(r,e,t){let n=t??{};return it(r).eval({variables:n},e).map(o=>({type:o.type,value:o.value?.valueOf()}))}var Wt=(l=>(l.BOOLEAN="BOOLEAN",l.NUMBER="NUMBER",l.QUANTITY="QUANTITY",l.TEXT="TEXT",l.REFERENCE="REFERENCE",l.CANONICAL="CANONICAL",l.DATE="DATE",l.DATETIME="DATETIME",l.PERIOD="PERIOD",l.UUID="UUID",l))(Wt||{});function Gt(r,e){let t=y.types[r].searchParamsDetails?.[e.code];return t||(t=so(r,e)),t}function oo(r,e,t){let n=y.types[r];n.searchParamsDetails||(n.searchParamsDetails={}),n.searchParamsDetails[e]=t}function so(r,e){let t=e.code,n=uo(t),i=zt(r,e.expression),o={elementDefinitions:[],propertyTypes:new Set,array:!1};for(let a of i){let c=Le(a);c.length===1&&c[0]instanceof v?o.propertyTypes.add("boolean"):qr(o,Le(a),r,1)}let s={columnName:n,type:lo(e,o.propertyTypes),elementDefinitions:o.elementDefinitions,array:o.array};return oo(r,t,s),s}function qr(r,e,t,n){let i=e[n];if(i instanceof z){r.propertyTypes.add(i.right.toString());return}if(i instanceof B){ao(r,i);return}let o=i.toString(),s=re(t,o);if(!s)throw new Error(`Element definition not found for ${t} ${o}`);let a=!1,c=n+1;if(c<e.length&&e[c]instanceof J&&(a=!0,c++),s.max!=="0"&&s.max!=="1"&&!a&&(r.array=!0),c>=e.length){r.elementDefinitions.push(s);for(let f of s.type)r.propertyTypes.add(f.code);return}for(let f of s.type){let l=f.code;co(l)&&(l=V(s.path?.split("."))),qr(r,e,l,c)}}function ao(r,e){if(e.name==="as"){r.propertyTypes.add(e.args[0].toString());return}if(e.name==="resolve"){r.propertyTypes.add("string");return}if(e.name==="where"&&e.args[0]instanceof K){r.propertyTypes.add(e.args[0].right.toString());return}throw new Error(`Unhandled FHIRPath function: ${e.name}`)}function co(r){return r==="Element"||r==="BackboneElement"}function uo(r){return r.split("-").reduce((e,t,n)=>e+(n?S(t):t),"")}function lo(r,e){switch(r.type){case"date":return e.size===1&&e.has("date")?"DATE":"DATETIME";case"number":return"NUMBER";case"quantity":return"QUANTITY";case"reference":return e.has("canonical")?"CANONICAL":"REFERENCE";case"token":return e.size===1&&e.has("boolean")?"BOOLEAN":"TEXT";default:return"TEXT"}}function zt(r,e){let t=[],n=it(e);return Ht(r,n.child,t),t}function po(r,e){let t=zt(r,e);if(t.length!==0)return t.map(n=>n.toString()).join(" | ")}function Ht(r,e,t){e instanceof X?(Ht(r,e.left,t),Ht(r,e.right,t)):e.toString().startsWith(r+".")&&t.push(e)}function Le(r){return r instanceof z||r instanceof J?[Le(r.left),r].flat():r instanceof v?[r]:r instanceof H?[Le(r.left),Le(r.right)].flat():r instanceof B&&r.name==="where"&&!(r.args[0]instanceof K)?[]:[r]}function Jt(r,e){if(e.resourceType!==r.resourceType)return!1;if(e.filters){for(let t of e.filters)if(!fo(r,e,t))return!1}return!0}function fo(r,e,t){let n=y.types[e.resourceType].searchParams?.[t.code];switch(n?.type){case"reference":return mo(r,t,n);case"string":case"uri":return jr(r,t,n);case"token":return ho(r,t,n);case"date":return go(r,t,n);default:return!1}}function mo(r,e,t){let n=ae(t.expression,r),i=st(e.operator);if(e.value===""&&n.length===0)return e.operator==="eq";let o=n.map(s=>typeof s=="string"?s:s.reference);for(let s of e.value.split(",")){let a=o.includes(s);if(!a&&e.code==="_compartment"&&(a=o.some(c=>c?.endsWith("/"+s))),a)return!i}return i}function ho(r,e,t){return Gt(r.resourceType,t).type==="BOOLEAN"?yo(r,e,t):jr(r,e,t,!0)}function yo(r,e,t){let n=ae(t.expression,r),i=e.value==="true",o=n.includes(i);return st(e.operator)?!o:o}function jr(r,e,t,n){let i=ae(t.expression,r),o=e.value.split(","),s=st(e.operator);for(let a of i)for(let c of o)if(Kt(a,e.operator,c,n))return!s;return s}function Kt(r,e,t,n){if(n&&t.includes("|")){let[o,s]=t.split("|");return Kt(r,e,o,!1)&&(!s||Kt(r,e,s,!1))}let i="";return r&&(typeof r=="string"?i=r:typeof r=="object"&&(i=JSON.stringify(r))),i.toLowerCase().includes(t.toLowerCase())}function go(r,e,t){let n=ae(t.expression,r),i=e.value.split(","),o=st(e.operator);for(let s of n)for(let a of i)if(xo(s,e.operator,a))return!o;return o}function xo(r,e,t){switch(e){case"sa":case"gt":return r>t;case"ge":return r>=t;case"eb":case"lt":return r<t;case"le":return r<=t;case"eq":case"ne":return r===t;default:return!1}}function st(r){return r==="ne"||r==="not"}var $r=["CapabilityStatement","CompartmentDefinition","ImplementationGuide","OperationDefinition","SearchParameter","StructureDefinition"],To={resourceType:"*"},Qr=["DomainConfiguration","JsonWebKey","Login","User"],Hr=["PasswordChangeRequest","Project","ProjectMembership"],Wr=(x=>(x.READ="read",x.VREAD="vread",x.UPDATE="update",x.PATCH="patch",x.DELETE="delete",x.HISTORY="history",x.HISTORY_INSTANCE="history-instance",x.HISTORY_TYPE="history-type",x.HISTORY_SYSTEM="history-system",x.CREATE="create",x.SEARCH="search",x.SEARCH_TYPE="search-type",x.SEARCH_SYSTEM="search-system",x.SEARCH_COMPARTMENT="search-compartment",x.CAPABILITIES="capabilities",x.TRANSACTION="transaction",x.BATCH="batch",x.OPERATION="operation",x))(Wr||{}),vo=["read","vread","history","history-instance"];function bo(r,e){if(r.resource){for(let t of r.resource)if(Yt(t.resourceType,e))return!0}return!1}function Gr(r,e){if(Qr.includes(e)||$r.includes(e))return!1;if(r.resource){for(let t of r.resource)if(Yt(t.resourceType,e)&&!t.readonly)return!0}return!1}function So(r,e){let t=e.resourceType;return Gr(r,t)?zr(r,e,!1):!1}function zr(r,e,t){if(r.resource){for(let n of r.resource)if(Kr(e,t?"read":"update",n))return!0}return!1}function Ro(r,e,t){if(!t)return To;if(t.resource){for(let n of t.resource)if(Kr(r,e,n))return n}}function Kr(r,e,t){let n=r.resourceType;return!(!Yt(t.resourceType,n)||t.readonly&&!vo.includes(e)||t.compartment&&!r.meta?.compartment?.find(i=>i.reference===t.compartment?.reference)||t.criteria&&!Jt(r,Ft(t.criteria)))}function Yt(r,e){return r===e||r==="*"&&!Hr.includes(e)}function Xt(r){if(typeof window<"u")return window.atob(r);if(typeof Buffer<"u")return Buffer.from(r,"base64").toString("binary");throw new Error("Unable to decode base64")}function Zt(r){if(typeof window<"u")return window.btoa(r);if(typeof Buffer<"u")return Buffer.from(r,"binary").toString("base64");throw new Error("Unable to encode base64")}function at(){let r=new Uint32Array(28);return crypto.getRandomValues(r),Vt(r.buffer)}async function er(r){return crypto.subtle.digest("SHA-256",new TextEncoder().encode(r))}function tr(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let e=Math.random()*16|0;return(r==="x"?e:e&3|8).toString(16)})}function Ao(r){let e={};r=It(r);for(let i of r.entry||[]){delete i.resource?.meta;let o=i.resource?.id;o&&(e[o]=tr(),i.fullUrl="urn:uuid:"+e[o],delete i.resource?.id)}let t=r.entry,n=JSON.stringify({resourceType:"Bundle",type:"transaction",entry:t?.map(i=>({fullUrl:i.fullUrl,request:{method:"POST",url:i.resource.resourceType},resource:i.resource}))},(i,o)=>Eo(i,o,e),2);return Jr(JSON.parse(n))}function Eo(r,e,t){if(r==="reference"&&typeof e=="string"){let n;if(e.includes("/")?n=e.split("/")[1]:e.startsWith("urn:uuid:")&&(n=e.slice(9)),n)return"urn:uuid:"+t[n]}return e}function Jr(r){let e=Co(r),{sorted:t,cycles:n}=Po(e),i={};for(let s of r.entry||[])s.fullUrl&&(i[s.fullUrl]=s);let o=t.map(s=>i[s]);for(let s of n)for(let a of s){let c=i[a],f={...c,request:{...c.request,method:"PUT"}};o.push(f)}return{...r,entry:o}}function Po(r){let e=[],t={},n=[];for(let o of Object.keys(r))t[o]=0;function i(o,s){if(t[o]===2)return!0;if(t[o]===1){let c=s.lastIndexOf(o);return c!==-1&&n.push(s.slice(c)),!0}t[o]=1,s.push(o);let a=!1;for(let c of r[o])i(c,s)||(a=!0);return t[o]=2,s.pop(),e.unshift(o),!a}for(let o in r)t[o]===0&&i(o,[]);return{sorted:e,cycles:n}}function Yr(r,e){for(let t in r)if(r[t]&&typeof r[t]=="object"){let n=r[t];if(Nt(n)){let i=n.reference;i.startsWith("urn:uuid:")&&e(i)}else Yr(n,e)}}function Co(r){let e={};for(let t of r.entry||[])t.fullUrl&&(e[t.fullUrl]=[]);for(let t of r.entry||[]){let n=t.fullUrl;t.resource&&Yr(t.resource,i=>{e[i]&&e[i].push(n)})}return e}var _e=class{constructor(e=10){this.max=e,this.cache=new Map}clear(){this.cache.clear()}get(e){let t=this.cache.get(e);return t&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size>=this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}delete(e){this.cache.delete(e)}keys(){return this.cache.keys()}first(){return this.cache.keys().next().value}};var Y={CSS:"text/css",FAVICON:"image/vnd.microsoft.icon",FHIR_JSON:"application/fhir+json",FORM_URL_ENCODED:"application/x-www-form-urlencoded",HL7_V2:"x-application/hl7-v2+er7",HTML:"text/html",JAVASCRIPT:"text/javascript",JSON:"application/json",JSON_PATCH:"application/json-patch+json",PNG:"image/png",SVG:"image/svg+xml",TEXT:"text/plain",TYPESCRIPT:"text/typescript"};var Ne=class{constructor(){this.listeners={}}addEventListener(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}removeEventListener(e,t){let n=this.listeners[e];if(n){for(let i=0;i<n.length;i++)if(n[i]===t){n.splice(i,1);return}}}dispatchEvent(e){let t=this.listeners[e.type];return t&&t.forEach(n=>n.call(this,e)),!e.defaultPrevented}};function wo(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=Xt(e),n=Array.from(t).reduce((o,s)=>{let a=("00"+s.charCodeAt(0).toString(16)).slice(-2);return`${o}%${a}`},""),i=decodeURIComponent(n);return JSON.parse(i)}function ct(r){let[e,t,n]=r.split(".");return wo(t)}function rr(r){try{return typeof ct(r).login_id=="string"}catch{return!1}}var ko,C=class{constructor(e){this[ko]="ReadablePromise";this.status="pending";this.suspender=e.then(t=>(this.status="success",this.response=t,t),t=>{throw this.status="error",this.error=t,t})}isPending(){return this.status==="pending"}isOk(){return this.status==="success"}read(){switch(this.status){case"pending":throw this.suspender;case"error":throw this.error;default:return this.response}}then(e,t){return this.suspender.then(e,t)}catch(e){return this.suspender.catch(e)}finally(e){return this.suspender.finally(e)}};ko=Symbol.toStringTag;var Me=class{constructor(){this.storage=typeof localStorage<"u"?localStorage:new ut}clear(){this.storage.clear()}getString(e){return this.storage.getItem(e)??void 0}setString(e,t){t?this.storage.setItem(e,t):this.storage.removeItem(e)}getObject(e){let t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?Dt(t):void 0)}},ut=class{constructor(){this.data=new Map}get length(){return this.data.size}clear(){this.data.clear()}getItem(e){return this.data.get(e)??null}setItem(e,t){t?this.data.set(e,t):this.data.delete(e)}removeItem(e){this.data.delete(e)}key(e){return Array.from(this.data.keys())[e]}};var Do="2.0.32-5671b0f",Io="https://api.medplum.com/",Oo=1e3,Vo=6e4,Xr="Binary/",Zr={resourceType:"Device",id:"system",deviceName:[{name:"System"}]},on=(o=>(o.ClientCredentials="client_credentials",o.AuthorizationCode="authorization_code",o.RefreshToken="refresh_token",o.JwtBearer="urn:ietf:params:oauth:grant-type:jwt-bearer",o.TokenExchange="urn:ietf:params:oauth:grant-type:token-exchange",o))(on||{}),sn=(o=>(o.AccessToken="urn:ietf:params:oauth:token-type:access_token",o.RefreshToken="urn:ietf:params:oauth:token-type:refresh_token",o.IdToken="urn:ietf:params:oauth:token-type:id_token",o.Saml1Token="urn:ietf:params:oauth:token-type:saml1",o.Saml2Token="urn:ietf:params:oauth:token-type:saml2",o))(sn||{}),nr=class extends Ne{constructor(t){super();if(t?.baseUrl&&!t.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");this.fetch=t?.fetch??Uo(),this.storage=t?.storage??new Me,this.createPdfImpl=t?.createPdf,this.baseUrl=tn(t?.baseUrl)??Io,this.fhirBaseUrl=this.baseUrl+(tn(t?.fhirUrlPath)??"fhir/R4/"),this.clientId=t?.clientId??"",this.clientSecret=t?.clientSecret??"",this.authorizeUrl=t?.authorizeUrl??this.baseUrl+"oauth2/authorize",this.tokenUrl=t?.tokenUrl??this.baseUrl+"oauth2/token",this.logoutUrl=t?.logoutUrl??this.baseUrl+"oauth2/logout",this.onUnauthenticated=t?.onUnauthenticated,this.cacheTime=t?.cacheTime??Vo,this.cacheTime>0?this.requestCache=new _e(t?.resourceCacheSize??Oo):this.requestCache=void 0,t?.autoBatchTime?(this.autoBatchTime=t.autoBatchTime,this.autoBatchQueue=[]):(this.autoBatchTime=0,this.autoBatchQueue=void 0);let n=this.getActiveLogin();n&&(this.setAccessToken(n.accessToken,n.refreshToken),this.refreshProfile().catch(console.log)),this.setupStorageListener()}getBaseUrl(){return this.baseUrl}getAuthorizeUrl(){return this.authorizeUrl}clear(){this.storage.clear(),this.clearActiveLogin()}clearActiveLogin(){this.storage.setString("activeLogin",void 0),this.requestCache?.clear(),this.accessToken=void 0,this.refreshToken=void 0,this.sessionDetails=void 0,this.medplumServer=void 0,this.dispatchEvent({type:"change"})}invalidateUrl(t){t=t.toString(),this.requestCache?.delete(t)}invalidateAll(){this.requestCache?.clear()}invalidateSearches(t){let n=this.fhirBaseUrl+t;if(this.requestCache)for(let i of this.requestCache.keys())(i.endsWith(n)||i.includes(n+"?"))&&this.requestCache.delete(i)}get(t,n={}){t=t.toString();let i=this.getCacheEntry(t,n);if(i)return i.value;let o;t.startsWith(this.fhirBaseUrl)&&this.autoBatchQueue?o=new Promise((a,c)=>{this.autoBatchQueue.push({method:"GET",url:t.replace(this.fhirBaseUrl,""),options:n,resolve:a,reject:c}),this.autoBatchTimerId||(this.autoBatchTimerId=setTimeout(()=>this.executeAutoBatch(),this.autoBatchTime))}):o=this.request("GET",t,n);let s=new C(o);return this.setCacheEntry(t,s),s}post(t,n,i,o={}){return t=t.toString(),n&&this.setRequestBody(o,n),i&&this.setRequestContentType(o,i),this.invalidateUrl(t),this.request("POST",t,o)}put(t,n,i,o={}){return t=t.toString(),n&&this.setRequestBody(o,n),i&&this.setRequestContentType(o,i),this.invalidateUrl(t),this.request("PUT",t,o)}patch(t,n,i={}){return t=t.toString(),this.setRequestBody(i,n),this.setRequestContentType(i,Y.JSON_PATCH),this.invalidateUrl(t),this.request("PATCH",t,i)}delete(t,n){return t=t.toString(),this.invalidateUrl(t),this.request("DELETE",t,n)}async startNewUser(t,n){let{codeChallengeMethod:i,codeChallenge:o}=await this.startPkce();return this.post("auth/newuser",{...t,clientId:t.clientId??this.clientId,codeChallengeMethod:i,codeChallenge:o},void 0,n)}async startNewProject(t,n){return this.post("auth/newproject",t,void 0,n)}async startNewPatient(t,n){return this.post("auth/newpatient",t,void 0,n)}async startLogin(t,n){return this.post("auth/login",{...await this.ensureCodeChallenge(t),clientId:t.clientId??this.clientId,scope:t.scope},void 0,n)}async startGoogleLogin(t,n){return this.post("auth/google",{...await this.ensureCodeChallenge(t),clientId:t.clientId??this.clientId,scope:t.scope},void 0,n)}async ensureCodeChallenge(t){return t.codeChallenge?t:{...t,...await this.startPkce()}}async signOut(){await this.post(this.logoutUrl,{}),this.clear()}async signInWithRedirect(t){let i=new URLSearchParams(window.location.search).get("code");if(i)return this.processCode(i);await this.requestAuthorization(t)}signOutWithRedirect(){window.location.assign(this.logoutUrl)}async signInWithExternalAuth(t,n,i,o){let s=await this.ensureCodeChallenge(o);window.location.assign(this.getExternalAuthRedirectUri(t,n,i,s))}async exchangeExternalAccessToken(t,n){if(n=n??this.clientId,!n)throw new Error("MedplumClient is missing clientId");let i=new URLSearchParams;return i.set("grant_type","urn:ietf:params:oauth:grant-type:token-exchange"),i.set("subject_token_type","urn:ietf:params:oauth:token-type:access_token"),i.set("client_id",n),i.set("subject_token",t),this.fetchTokens(i)}getExternalAuthRedirectUri(t,n,i,o){let s=new URL(t);return s.searchParams.set("response_type","code"),s.searchParams.set("client_id",n),s.searchParams.set("redirect_uri",i),s.searchParams.set("scope","openid profile email"),s.searchParams.set("state",JSON.stringify(o)),s.toString()}fhirUrl(...t){return new URL(this.fhirBaseUrl+t.join("/"))}fhirSearchUrl(t,n){let i=this.fhirUrl(t);return n&&(i.search=new URLSearchParams(n).toString()),i}search(t,n,i){let o=this.fhirSearchUrl(t,n),s=o.toString()+"-search",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C((async()=>{let f=await this.get(o,i);if(f.entry)for(let l of f.entry)this.cacheResource(l.resource);return f})());return this.setCacheEntry(s,c),c}searchOne(t,n,i){let o=this.fhirSearchUrl(t,n);o.searchParams.set("_count","1"),o.searchParams.sort();let s=o.toString()+"-searchOne",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C(this.search(t,o.searchParams,i).then(f=>f.entry?.[0]?.resource));return this.setCacheEntry(s,c),c}searchResources(t,n,i){let s=this.fhirSearchUrl(t,n).toString()+"-searchResources",a=this.getCacheEntry(s,i);if(a)return a.value;let c=new C(this.search(t,n,i).then(nn));return this.setCacheEntry(s,c),c}async*searchResourcePages(t,n,i){let o=this.fhirSearchUrl(t,n);for(;o;){let s=new URL(o).searchParams,a=await this.search(t,s,i),c=a.link?.find(f=>f.relation==="next");if(!a.entry?.length&&!c)break;yield nn(a),o=c?.url?new URL(c.url):void 0}}searchValueSet(t,n,i){let o=this.fhirUrl("ValueSet","$expand");return o.searchParams.set("url",t),o.searchParams.set("filter",n),this.get(o.toString(),i)}getCached(t,n){let i=this.requestCache?.get(this.fhirUrl(t,n).toString())?.value;return i?.isOk()?i.read():void 0}getCachedReference(t){let n=t.reference;if(!n)return;if(n==="system")return Zr;let[i,o]=n.split("/");if(!(!i||!o))return this.getCached(i,o)}readResource(t,n,i){return this.get(this.fhirUrl(t,n),i)}readReference(t,n){let i=t.reference;if(!i)return new C(Promise.reject(new Error("Missing reference")));if(i==="system")return new C(Promise.resolve(Zr));let[o,s]=i.split("/");return!o||!s?new C(Promise.reject(new Error("Invalid reference"))):this.readResource(o,s,n)}getSchema(){return y}requestSchema(t){if(t in y.types)return Promise.resolve(y);let n=t+"-requestSchema",i=this.getCacheEntry(n,void 0);if(i)return i.value;let o=new C((async()=>{let s=`{
|
|
4
4
|
StructureDefinitionList(name: "${t}") {
|
|
5
5
|
name,
|
|
6
6
|
description,
|